
void __cxa_rethrow(void)

{
  int *piVar1;
  int iVar2;
  uint uVar3;
  
  piVar1 = (int *)__cxa_get_globals();
  iVar2 = *piVar1;
  piVar1[1] = piVar1[1] + 1;
  if (iVar2 != 0) {
    uVar3 = *(uint *)(iVar2 + 0x34) + 0xbcd4d500;
    if (((uint)(uVar3 < *(uint *)(iVar2 + 0x34)) + *(int *)(iVar2 + 0x30) + -0x474e5544 == 0) &&
       (uVar3 < 2)) {
      *(int *)(iVar2 + 0x14) = -*(int *)(iVar2 + 0x14);
    }
    else {
      *piVar1 = 0;
    }
    (*(code *)PTR__Unwind_Resume_or_Rethrow_00435ce0)(iVar2 + 0x30);
    __cxa_begin_catch(iVar2 + 0x30);
  }
                    /* WARNING: Subroutine does not return */
  std::terminate();
}



void __cxa_rethrow(void)

{
  int *piVar1;
  int iVar2;
  uint uVar3;
  
  piVar1 = (int *)__cxa_get_globals();
  iVar2 = *piVar1;
  piVar1[1] = piVar1[1] + 1;
  if (iVar2 != 0) {
    uVar3 = *(uint *)(iVar2 + 0x34) + 0xbcd4d500;
    if (((uint)(uVar3 < *(uint *)(iVar2 + 0x34)) + *(int *)(iVar2 + 0x30) + -0x474e5544 == 0) &&
       (uVar3 < 2)) {
      *(int *)(iVar2 + 0x14) = -*(int *)(iVar2 + 0x14);
    }
    else {
      *piVar1 = 0;
    }
    (*(code *)PTR_FUN_00435ce0)(iVar2 + 0x30);
    __cxa_begin_catch(iVar2 + 0x30);
  }
                    /* WARNING: Subroutine does not return */
  std::terminate();
}


lui gp,0x18
addiu gp,gp,0x619c
addu gp,gp,t9
addiu sp,sp,-0x20
lw t9,-0x44fc(gp)
sw gp,0x10(sp)
sw ra,0x1c(sp)
bal 0x002b5180
_sw s0,0x18(sp)
lw v1,0x4(v0)
lw a0,0x0(v0)
lw gp,0x10(sp)
addiu v1,v1,0x1
beq a0,zero,0x002b40c8
_sw v1,0x4(v0)
lw v1,0x34(a0)
lui a1,0xbcd4
lw a2,0x30(a0)
lui a3,0xb8b1
ori a1,a1,0xd500
addu a1,v1,a1
ori a3,a3,0xaabc
addu a2,a2,a3
sltu v1,a1,v1
addu v1,v1,a2
beq v1,zero,0x002b40d4
_sltiu a1,a1,0x2
sw zero,0x0(v0)
lw t9,-0x44f0(gp)
addiu s0,a0,0x30
jalr t9
_or a0,s0,zero
lw gp,0x10(sp)
lw t9,-0x77b4(gp)
bal 0x002b5398
_or a0,s0,zero
lw gp,0x10(sp)
lw t9,-0x6abc(gp)
bal 0x002b4190
_nop
beq a1,zero,0x002b40a0
_nop
lw v0,0x14(a0)
subu v0,zero,v0
b 0x002b40a4
_sw v0,0x14(a0)
(translation_unit "void __cxa_rethrow(void)\n\n{\n  int *piVar1;\n  int iVar2;\n  uint uVar3;\n  \n  piVar1 = (int *)__cxa_get_globals();\n  iVar2 = *piVar1;\n  piVar1[1] = piVar1[1] + 1;\n  if (iVar2 != 0) {\n    uVar3 = *(uint *)(iVar2 + 0x34) + 0xbcd4d500;\n    if (((uint)(uVar3 < *(uint *)(iVar2 + 0x34)) + *(int *)(iVar2 + 0x30) + -0x474e5544 == 0) &&\n       (uVar3 < 2)) {\n      *(int *)(iVar2 + 0x14) = -*(int *)(iVar2 + 0x14);\n    }\n    else {\n      *piVar1 = 0;\n    }\n    (*(code *)PTR_FUN_00435ce0)(iVar2 + 0x30);\n    __cxa_begin_catch(iVar2 + 0x30);\n  }\n                    /* WARNING: Subroutine does not return */\n  std::terminate();\n}\n\n" (function_definition "void __cxa_rethrow(void)\n\n{\n  int *piVar1;\n  int iVar2;\n  uint uVar3;\n  \n  piVar1 = (int *)__cxa_get_globals();\n  iVar2 = *piVar1;\n  piVar1[1] = piVar1[1] + 1;\n  if (iVar2 != 0) {\n    uVar3 = *(uint *)(iVar2 + 0x34) + 0xbcd4d500;\n    if (((uint)(uVar3 < *(uint *)(iVar2 + 0x34)) + *(int *)(iVar2 + 0x30) + -0x474e5544 == 0) &&\n       (uVar3 < 2)) {\n      *(int *)(iVar2 + 0x14) = -*(int *)(iVar2 + 0x14);\n    }\n    else {\n      *piVar1 = 0;\n    }\n    (*(code *)PTR_FUN_00435ce0)(iVar2 + 0x30);\n    __cxa_begin_catch(iVar2 + 0x30);\n  }\n                    /* WARNING: Subroutine does not return */\n  std::terminate();\n}" primitive_type (function_declarator "__cxa_rethrow(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int *piVar1;\n  int iVar2;\n  uint uVar3;\n  \n  piVar1 = (int *)__cxa_get_globals();\n  iVar2 = *piVar1;\n  piVar1[1] = piVar1[1] + 1;\n  if (iVar2 != 0) {\n    uVar3 = *(uint *)(iVar2 + 0x34) + 0xbcd4d500;\n    if (((uint)(uVar3 < *(uint *)(iVar2 + 0x34)) + *(int *)(iVar2 + 0x30) + -0x474e5544 == 0) &&\n       (uVar3 < 2)) {\n      *(int *)(iVar2 + 0x14) = -*(int *)(iVar2 + 0x14);\n    }\n    else {\n      *piVar1 = 0;\n    }\n    (*(code *)PTR_FUN_00435ce0)(iVar2 + 0x30);\n    __cxa_begin_catch(iVar2 + 0x30);\n  }\n                    /* WARNING: Subroutine does not return */\n  std::terminate();\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (expression_statement "piVar1 = (int *)__cxa_get_globals();" (assignment_expression "piVar1 = (int *)__cxa_get_globals()" identifier = (cast_expression "(int *)__cxa_get_globals()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "__cxa_get_globals()" identifier (argument_list "()" ( ))))) ;) (expression_statement "iVar2 = *piVar1;" (assignment_expression "iVar2 = *piVar1" identifier = (pointer_expression "*piVar1" * identifier)) ;) (expression_statement "piVar1[1] = piVar1[1] + 1;" (assignment_expression "piVar1[1] = piVar1[1] + 1" (subscript_expression "piVar1[1]" identifier [ number_literal ]) = (binary_expression "piVar1[1] + 1" (subscript_expression "piVar1[1]" identifier [ number_literal ]) + number_literal)) ;) (if_statement "if (iVar2 != 0) {\n    uVar3 = *(uint *)(iVar2 + 0x34) + 0xbcd4d500;\n    if (((uint)(uVar3 < *(uint *)(iVar2 + 0x34)) + *(int *)(iVar2 + 0x30) + -0x474e5544 == 0) &&\n       (uVar3 < 2)) {\n      *(int *)(iVar2 + 0x14) = -*(int *)(iVar2 + 0x14);\n    }\n    else {\n      *piVar1 = 0;\n    }\n    (*(code *)PTR_FUN_00435ce0)(iVar2 + 0x30);\n    __cxa_begin_catch(iVar2 + 0x30);\n  }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar3 = *(uint *)(iVar2 + 0x34) + 0xbcd4d500;\n    if (((uint)(uVar3 < *(uint *)(iVar2 + 0x34)) + *(int *)(iVar2 + 0x30) + -0x474e5544 == 0) &&\n       (uVar3 < 2)) {\n      *(int *)(iVar2 + 0x14) = -*(int *)(iVar2 + 0x14);\n    }\n    else {\n      *piVar1 = 0;\n    }\n    (*(code *)PTR_FUN_00435ce0)(iVar2 + 0x30);\n    __cxa_begin_catch(iVar2 + 0x30);\n  }" { (expression_statement "uVar3 = *(uint *)(iVar2 + 0x34) + 0xbcd4d500;" (assignment_expression "uVar3 = *(uint *)(iVar2 + 0x34) + 0xbcd4d500" identifier = (binary_expression "*(uint *)(iVar2 + 0x34) + 0xbcd4d500" (pointer_expression "*(uint *)(iVar2 + 0x34)" * (cast_expression "(uint *)(iVar2 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x34)" ( (binary_expression "iVar2 + 0x34" identifier + number_literal) )))) + number_literal)) ;) (if_statement "if (((uint)(uVar3 < *(uint *)(iVar2 + 0x34)) + *(int *)(iVar2 + 0x30) + -0x474e5544 == 0) &&\n       (uVar3 < 2)) {\n      *(int *)(iVar2 + 0x14) = -*(int *)(iVar2 + 0x14);\n    }\n    else {\n      *piVar1 = 0;\n    }" if (parenthesized_expression "(((uint)(uVar3 < *(uint *)(iVar2 + 0x34)) + *(int *)(iVar2 + 0x30) + -0x474e5544 == 0) &&\n       (uVar3 < 2))" ( (binary_expression "((uint)(uVar3 < *(uint *)(iVar2 + 0x34)) + *(int *)(iVar2 + 0x30) + -0x474e5544 == 0) &&\n       (uVar3 < 2)" (parenthesized_expression "((uint)(uVar3 < *(uint *)(iVar2 + 0x34)) + *(int *)(iVar2 + 0x30) + -0x474e5544 == 0)" ( (binary_expression "(uint)(uVar3 < *(uint *)(iVar2 + 0x34)) + *(int *)(iVar2 + 0x30) + -0x474e5544 == 0" (binary_expression "(uint)(uVar3 < *(uint *)(iVar2 + 0x34)) + *(int *)(iVar2 + 0x30) + -0x474e5544" (binary_expression "(uint)(uVar3 < *(uint *)(iVar2 + 0x34)) + *(int *)(iVar2 + 0x30)" (call_expression "(uint)(uVar3 < *(uint *)(iVar2 + 0x34))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar3 < *(uint *)(iVar2 + 0x34))" ( (binary_expression "uVar3 < *(uint *)(iVar2 + 0x34)" identifier < (pointer_expression "*(uint *)(iVar2 + 0x34)" * (cast_expression "(uint *)(iVar2 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x34)" ( (binary_expression "iVar2 + 0x34" identifier + number_literal) ))))) ))) + (pointer_expression "*(int *)(iVar2 + 0x30)" * (cast_expression "(int *)(iVar2 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x30)" ( (binary_expression "iVar2 + 0x30" identifier + number_literal) ))))) + number_literal) == number_literal) )) && (parenthesized_expression "(uVar3 < 2)" ( (binary_expression "uVar3 < 2" identifier < number_literal) ))) )) (compound_statement "{\n      *(int *)(iVar2 + 0x14) = -*(int *)(iVar2 + 0x14);\n    }" { (expression_statement "*(int *)(iVar2 + 0x14) = -*(int *)(iVar2 + 0x14);" (assignment_expression "*(int *)(iVar2 + 0x14) = -*(int *)(iVar2 + 0x14)" (pointer_expression "*(int *)(iVar2 + 0x14)" * (cast_expression "(int *)(iVar2 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x14)" ( (binary_expression "iVar2 + 0x14" identifier + number_literal) )))) = (unary_expression "-*(int *)(iVar2 + 0x14)" - (pointer_expression "*(int *)(iVar2 + 0x14)" * (cast_expression "(int *)(iVar2 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x14)" ( (binary_expression "iVar2 + 0x14" identifier + number_literal) )))))) ;) }) (else_clause "else {\n      *piVar1 = 0;\n    }" else (compound_statement "{\n      *piVar1 = 0;\n    }" { (expression_statement "*piVar1 = 0;" (assignment_expression "*piVar1 = 0" (pointer_expression "*piVar1" * identifier) = number_literal) ;) }))) (expression_statement "(*(code *)PTR_FUN_00435ce0)(iVar2 + 0x30);" (call_expression "(*(code *)PTR_FUN_00435ce0)(iVar2 + 0x30)" (parenthesized_expression "(*(code *)PTR_FUN_00435ce0)" ( (pointer_expression "*(code *)PTR_FUN_00435ce0" * (cast_expression "(code *)PTR_FUN_00435ce0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar2 + 0x30)" ( (binary_expression "iVar2 + 0x30" identifier + number_literal) ))) ;) (expression_statement "__cxa_begin_catch(iVar2 + 0x30);" (call_expression "__cxa_begin_catch(iVar2 + 0x30)" identifier (argument_list "(iVar2 + 0x30)" ( (binary_expression "iVar2 + 0x30" identifier + number_literal) ))) ;) })) comment (labeled_statement "std::terminate();" statement_identifier : (ERROR ":" :) (expression_statement "terminate();" (call_expression "terminate()" identifier (argument_list "()" ( ))) ;)) })))
(translation_unit "void __cxa_rethrow(void)\n\n{\n  int *piVar1;\n  int iVar2;\n  uint uVar3;\n  \n  piVar1 = (int *)__cxa_get_globals();\n  iVar2 = *piVar1;\n  piVar1[1] = piVar1[1] + 1;\n  if (iVar2 != 0) {\n    uVar3 = *(uint *)(iVar2 + 0x34) + 0xbcd4d500;\n    if (((uint)(uVar3 < *(uint *)(iVar2 + 0x34)) + *(int *)(iVar2 + 0x30) + -0x474e5544 == 0) &&\n       (uVar3 < 2)) {\n      *(int *)(iVar2 + 0x14) = -*(int *)(iVar2 + 0x14);\n    }\n    else {\n      *piVar1 = 0;\n    }\n    (*(code *)PTR__Unwind_Resume_or_Rethrow_00435ce0)(iVar2 + 0x30);\n    __cxa_begin_catch(iVar2 + 0x30);\n  }\n                    /* WARNING: Subroutine does not return */\n  std::terminate();\n}\n\n" (function_definition "void __cxa_rethrow(void)\n\n{\n  int *piVar1;\n  int iVar2;\n  uint uVar3;\n  \n  piVar1 = (int *)__cxa_get_globals();\n  iVar2 = *piVar1;\n  piVar1[1] = piVar1[1] + 1;\n  if (iVar2 != 0) {\n    uVar3 = *(uint *)(iVar2 + 0x34) + 0xbcd4d500;\n    if (((uint)(uVar3 < *(uint *)(iVar2 + 0x34)) + *(int *)(iVar2 + 0x30) + -0x474e5544 == 0) &&\n       (uVar3 < 2)) {\n      *(int *)(iVar2 + 0x14) = -*(int *)(iVar2 + 0x14);\n    }\n    else {\n      *piVar1 = 0;\n    }\n    (*(code *)PTR__Unwind_Resume_or_Rethrow_00435ce0)(iVar2 + 0x30);\n    __cxa_begin_catch(iVar2 + 0x30);\n  }\n                    /* WARNING: Subroutine does not return */\n  std::terminate();\n}" primitive_type (function_declarator "__cxa_rethrow(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int *piVar1;\n  int iVar2;\n  uint uVar3;\n  \n  piVar1 = (int *)__cxa_get_globals();\n  iVar2 = *piVar1;\n  piVar1[1] = piVar1[1] + 1;\n  if (iVar2 != 0) {\n    uVar3 = *(uint *)(iVar2 + 0x34) + 0xbcd4d500;\n    if (((uint)(uVar3 < *(uint *)(iVar2 + 0x34)) + *(int *)(iVar2 + 0x30) + -0x474e5544 == 0) &&\n       (uVar3 < 2)) {\n      *(int *)(iVar2 + 0x14) = -*(int *)(iVar2 + 0x14);\n    }\n    else {\n      *piVar1 = 0;\n    }\n    (*(code *)PTR__Unwind_Resume_or_Rethrow_00435ce0)(iVar2 + 0x30);\n    __cxa_begin_catch(iVar2 + 0x30);\n  }\n                    /* WARNING: Subroutine does not return */\n  std::terminate();\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (expression_statement "piVar1 = (int *)__cxa_get_globals();" (assignment_expression "piVar1 = (int *)__cxa_get_globals()" identifier = (cast_expression "(int *)__cxa_get_globals()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "__cxa_get_globals()" identifier (argument_list "()" ( ))))) ;) (expression_statement "iVar2 = *piVar1;" (assignment_expression "iVar2 = *piVar1" identifier = (pointer_expression "*piVar1" * identifier)) ;) (expression_statement "piVar1[1] = piVar1[1] + 1;" (assignment_expression "piVar1[1] = piVar1[1] + 1" (subscript_expression "piVar1[1]" identifier [ number_literal ]) = (binary_expression "piVar1[1] + 1" (subscript_expression "piVar1[1]" identifier [ number_literal ]) + number_literal)) ;) (if_statement "if (iVar2 != 0) {\n    uVar3 = *(uint *)(iVar2 + 0x34) + 0xbcd4d500;\n    if (((uint)(uVar3 < *(uint *)(iVar2 + 0x34)) + *(int *)(iVar2 + 0x30) + -0x474e5544 == 0) &&\n       (uVar3 < 2)) {\n      *(int *)(iVar2 + 0x14) = -*(int *)(iVar2 + 0x14);\n    }\n    else {\n      *piVar1 = 0;\n    }\n    (*(code *)PTR__Unwind_Resume_or_Rethrow_00435ce0)(iVar2 + 0x30);\n    __cxa_begin_catch(iVar2 + 0x30);\n  }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar3 = *(uint *)(iVar2 + 0x34) + 0xbcd4d500;\n    if (((uint)(uVar3 < *(uint *)(iVar2 + 0x34)) + *(int *)(iVar2 + 0x30) + -0x474e5544 == 0) &&\n       (uVar3 < 2)) {\n      *(int *)(iVar2 + 0x14) = -*(int *)(iVar2 + 0x14);\n    }\n    else {\n      *piVar1 = 0;\n    }\n    (*(code *)PTR__Unwind_Resume_or_Rethrow_00435ce0)(iVar2 + 0x30);\n    __cxa_begin_catch(iVar2 + 0x30);\n  }" { (expression_statement "uVar3 = *(uint *)(iVar2 + 0x34) + 0xbcd4d500;" (assignment_expression "uVar3 = *(uint *)(iVar2 + 0x34) + 0xbcd4d500" identifier = (binary_expression "*(uint *)(iVar2 + 0x34) + 0xbcd4d500" (pointer_expression "*(uint *)(iVar2 + 0x34)" * (cast_expression "(uint *)(iVar2 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x34)" ( (binary_expression "iVar2 + 0x34" identifier + number_literal) )))) + number_literal)) ;) (if_statement "if (((uint)(uVar3 < *(uint *)(iVar2 + 0x34)) + *(int *)(iVar2 + 0x30) + -0x474e5544 == 0) &&\n       (uVar3 < 2)) {\n      *(int *)(iVar2 + 0x14) = -*(int *)(iVar2 + 0x14);\n    }\n    else {\n      *piVar1 = 0;\n    }" if (parenthesized_expression "(((uint)(uVar3 < *(uint *)(iVar2 + 0x34)) + *(int *)(iVar2 + 0x30) + -0x474e5544 == 0) &&\n       (uVar3 < 2))" ( (binary_expression "((uint)(uVar3 < *(uint *)(iVar2 + 0x34)) + *(int *)(iVar2 + 0x30) + -0x474e5544 == 0) &&\n       (uVar3 < 2)" (parenthesized_expression "((uint)(uVar3 < *(uint *)(iVar2 + 0x34)) + *(int *)(iVar2 + 0x30) + -0x474e5544 == 0)" ( (binary_expression "(uint)(uVar3 < *(uint *)(iVar2 + 0x34)) + *(int *)(iVar2 + 0x30) + -0x474e5544 == 0" (binary_expression "(uint)(uVar3 < *(uint *)(iVar2 + 0x34)) + *(int *)(iVar2 + 0x30) + -0x474e5544" (binary_expression "(uint)(uVar3 < *(uint *)(iVar2 + 0x34)) + *(int *)(iVar2 + 0x30)" (call_expression "(uint)(uVar3 < *(uint *)(iVar2 + 0x34))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar3 < *(uint *)(iVar2 + 0x34))" ( (binary_expression "uVar3 < *(uint *)(iVar2 + 0x34)" identifier < (pointer_expression "*(uint *)(iVar2 + 0x34)" * (cast_expression "(uint *)(iVar2 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x34)" ( (binary_expression "iVar2 + 0x34" identifier + number_literal) ))))) ))) + (pointer_expression "*(int *)(iVar2 + 0x30)" * (cast_expression "(int *)(iVar2 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x30)" ( (binary_expression "iVar2 + 0x30" identifier + number_literal) ))))) + number_literal) == number_literal) )) && (parenthesized_expression "(uVar3 < 2)" ( (binary_expression "uVar3 < 2" identifier < number_literal) ))) )) (compound_statement "{\n      *(int *)(iVar2 + 0x14) = -*(int *)(iVar2 + 0x14);\n    }" { (expression_statement "*(int *)(iVar2 + 0x14) = -*(int *)(iVar2 + 0x14);" (assignment_expression "*(int *)(iVar2 + 0x14) = -*(int *)(iVar2 + 0x14)" (pointer_expression "*(int *)(iVar2 + 0x14)" * (cast_expression "(int *)(iVar2 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x14)" ( (binary_expression "iVar2 + 0x14" identifier + number_literal) )))) = (unary_expression "-*(int *)(iVar2 + 0x14)" - (pointer_expression "*(int *)(iVar2 + 0x14)" * (cast_expression "(int *)(iVar2 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x14)" ( (binary_expression "iVar2 + 0x14" identifier + number_literal) )))))) ;) }) (else_clause "else {\n      *piVar1 = 0;\n    }" else (compound_statement "{\n      *piVar1 = 0;\n    }" { (expression_statement "*piVar1 = 0;" (assignment_expression "*piVar1 = 0" (pointer_expression "*piVar1" * identifier) = number_literal) ;) }))) (expression_statement "(*(code *)PTR__Unwind_Resume_or_Rethrow_00435ce0)(iVar2 + 0x30);" (call_expression "(*(code *)PTR__Unwind_Resume_or_Rethrow_00435ce0)(iVar2 + 0x30)" (parenthesized_expression "(*(code *)PTR__Unwind_Resume_or_Rethrow_00435ce0)" ( (pointer_expression "*(code *)PTR__Unwind_Resume_or_Rethrow_00435ce0" * (cast_expression "(code *)PTR__Unwind_Resume_or_Rethrow_00435ce0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar2 + 0x30)" ( (binary_expression "iVar2 + 0x30" identifier + number_literal) ))) ;) (expression_statement "__cxa_begin_catch(iVar2 + 0x30);" (call_expression "__cxa_begin_catch(iVar2 + 0x30)" identifier (argument_list "(iVar2 + 0x30)" ( (binary_expression "iVar2 + 0x30" identifier + number_literal) ))) ;) })) comment (labeled_statement "std::terminate();" statement_identifier : (ERROR ":" :) (expression_statement "terminate();" (call_expression "terminate()" identifier (argument_list "()" ( ))) ;)) })))
(translation_unit "void __cxa_rethrow(void)\n\n{\n  int *piVar1;\n  int iVar2;\n  uint uVar3;\n  \n  piVar1 = (int *)__cxa_get_globals();\n  iVar2 = *piVar1;\n  piVar1[1] = piVar1[1] + 1;\n  if (iVar2 != 0) {\n    uVar3 = *(uint *)(iVar2 + 0x34) + 0xbcd4d500;\n    if (((uint)(uVar3 < *(uint *)(iVar2 + 0x34)) + *(int *)(iVar2 + 0x30) + -0x474e5544 == 0) &&\n       (uVar3 < 2)) {\n      *(int *)(iVar2 + 0x14) = -*(int *)(iVar2 + 0x14);\n    }\n    else {\n      *piVar1 = 0;\n    }\n    (*(code *)PTR_FUN_00435ce0)(iVar2 + 0x30);\n    __cxa_begin_catch(iVar2 + 0x30);\n  }\n                    \n  std::terminate();\n}\n\n" (function_definition "void __cxa_rethrow(void)\n\n{\n  int *piVar1;\n  int iVar2;\n  uint uVar3;\n  \n  piVar1 = (int *)__cxa_get_globals();\n  iVar2 = *piVar1;\n  piVar1[1] = piVar1[1] + 1;\n  if (iVar2 != 0) {\n    uVar3 = *(uint *)(iVar2 + 0x34) + 0xbcd4d500;\n    if (((uint)(uVar3 < *(uint *)(iVar2 + 0x34)) + *(int *)(iVar2 + 0x30) + -0x474e5544 == 0) &&\n       (uVar3 < 2)) {\n      *(int *)(iVar2 + 0x14) = -*(int *)(iVar2 + 0x14);\n    }\n    else {\n      *piVar1 = 0;\n    }\n    (*(code *)PTR_FUN_00435ce0)(iVar2 + 0x30);\n    __cxa_begin_catch(iVar2 + 0x30);\n  }\n                    \n  std::terminate();\n}" primitive_type (function_declarator "__cxa_rethrow(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int *piVar1;\n  int iVar2;\n  uint uVar3;\n  \n  piVar1 = (int *)__cxa_get_globals();\n  iVar2 = *piVar1;\n  piVar1[1] = piVar1[1] + 1;\n  if (iVar2 != 0) {\n    uVar3 = *(uint *)(iVar2 + 0x34) + 0xbcd4d500;\n    if (((uint)(uVar3 < *(uint *)(iVar2 + 0x34)) + *(int *)(iVar2 + 0x30) + -0x474e5544 == 0) &&\n       (uVar3 < 2)) {\n      *(int *)(iVar2 + 0x14) = -*(int *)(iVar2 + 0x14);\n    }\n    else {\n      *piVar1 = 0;\n    }\n    (*(code *)PTR_FUN_00435ce0)(iVar2 + 0x30);\n    __cxa_begin_catch(iVar2 + 0x30);\n  }\n                    \n  std::terminate();\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (expression_statement "piVar1 = (int *)__cxa_get_globals();" (assignment_expression "piVar1 = (int *)__cxa_get_globals()" identifier = (cast_expression "(int *)__cxa_get_globals()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "__cxa_get_globals()" identifier (argument_list "()" ( ))))) ;) (expression_statement "iVar2 = *piVar1;" (assignment_expression "iVar2 = *piVar1" identifier = (pointer_expression "*piVar1" * identifier)) ;) (expression_statement "piVar1[1] = piVar1[1] + 1;" (assignment_expression "piVar1[1] = piVar1[1] + 1" (subscript_expression "piVar1[1]" identifier [ number_literal ]) = (binary_expression "piVar1[1] + 1" (subscript_expression "piVar1[1]" identifier [ number_literal ]) + number_literal)) ;) (if_statement "if (iVar2 != 0) {\n    uVar3 = *(uint *)(iVar2 + 0x34) + 0xbcd4d500;\n    if (((uint)(uVar3 < *(uint *)(iVar2 + 0x34)) + *(int *)(iVar2 + 0x30) + -0x474e5544 == 0) &&\n       (uVar3 < 2)) {\n      *(int *)(iVar2 + 0x14) = -*(int *)(iVar2 + 0x14);\n    }\n    else {\n      *piVar1 = 0;\n    }\n    (*(code *)PTR_FUN_00435ce0)(iVar2 + 0x30);\n    __cxa_begin_catch(iVar2 + 0x30);\n  }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar3 = *(uint *)(iVar2 + 0x34) + 0xbcd4d500;\n    if (((uint)(uVar3 < *(uint *)(iVar2 + 0x34)) + *(int *)(iVar2 + 0x30) + -0x474e5544 == 0) &&\n       (uVar3 < 2)) {\n      *(int *)(iVar2 + 0x14) = -*(int *)(iVar2 + 0x14);\n    }\n    else {\n      *piVar1 = 0;\n    }\n    (*(code *)PTR_FUN_00435ce0)(iVar2 + 0x30);\n    __cxa_begin_catch(iVar2 + 0x30);\n  }" { (expression_statement "uVar3 = *(uint *)(iVar2 + 0x34) + 0xbcd4d500;" (assignment_expression "uVar3 = *(uint *)(iVar2 + 0x34) + 0xbcd4d500" identifier = (binary_expression "*(uint *)(iVar2 + 0x34) + 0xbcd4d500" (pointer_expression "*(uint *)(iVar2 + 0x34)" * (cast_expression "(uint *)(iVar2 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x34)" ( (binary_expression "iVar2 + 0x34" identifier + number_literal) )))) + number_literal)) ;) (if_statement "if (((uint)(uVar3 < *(uint *)(iVar2 + 0x34)) + *(int *)(iVar2 + 0x30) + -0x474e5544 == 0) &&\n       (uVar3 < 2)) {\n      *(int *)(iVar2 + 0x14) = -*(int *)(iVar2 + 0x14);\n    }\n    else {\n      *piVar1 = 0;\n    }" if (parenthesized_expression "(((uint)(uVar3 < *(uint *)(iVar2 + 0x34)) + *(int *)(iVar2 + 0x30) + -0x474e5544 == 0) &&\n       (uVar3 < 2))" ( (binary_expression "((uint)(uVar3 < *(uint *)(iVar2 + 0x34)) + *(int *)(iVar2 + 0x30) + -0x474e5544 == 0) &&\n       (uVar3 < 2)" (parenthesized_expression "((uint)(uVar3 < *(uint *)(iVar2 + 0x34)) + *(int *)(iVar2 + 0x30) + -0x474e5544 == 0)" ( (binary_expression "(uint)(uVar3 < *(uint *)(iVar2 + 0x34)) + *(int *)(iVar2 + 0x30) + -0x474e5544 == 0" (binary_expression "(uint)(uVar3 < *(uint *)(iVar2 + 0x34)) + *(int *)(iVar2 + 0x30) + -0x474e5544" (binary_expression "(uint)(uVar3 < *(uint *)(iVar2 + 0x34)) + *(int *)(iVar2 + 0x30)" (call_expression "(uint)(uVar3 < *(uint *)(iVar2 + 0x34))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar3 < *(uint *)(iVar2 + 0x34))" ( (binary_expression "uVar3 < *(uint *)(iVar2 + 0x34)" identifier < (pointer_expression "*(uint *)(iVar2 + 0x34)" * (cast_expression "(uint *)(iVar2 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x34)" ( (binary_expression "iVar2 + 0x34" identifier + number_literal) ))))) ))) + (pointer_expression "*(int *)(iVar2 + 0x30)" * (cast_expression "(int *)(iVar2 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x30)" ( (binary_expression "iVar2 + 0x30" identifier + number_literal) ))))) + number_literal) == number_literal) )) && (parenthesized_expression "(uVar3 < 2)" ( (binary_expression "uVar3 < 2" identifier < number_literal) ))) )) (compound_statement "{\n      *(int *)(iVar2 + 0x14) = -*(int *)(iVar2 + 0x14);\n    }" { (expression_statement "*(int *)(iVar2 + 0x14) = -*(int *)(iVar2 + 0x14);" (assignment_expression "*(int *)(iVar2 + 0x14) = -*(int *)(iVar2 + 0x14)" (pointer_expression "*(int *)(iVar2 + 0x14)" * (cast_expression "(int *)(iVar2 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x14)" ( (binary_expression "iVar2 + 0x14" identifier + number_literal) )))) = (unary_expression "-*(int *)(iVar2 + 0x14)" - (pointer_expression "*(int *)(iVar2 + 0x14)" * (cast_expression "(int *)(iVar2 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x14)" ( (binary_expression "iVar2 + 0x14" identifier + number_literal) )))))) ;) }) (else_clause "else {\n      *piVar1 = 0;\n    }" else (compound_statement "{\n      *piVar1 = 0;\n    }" { (expression_statement "*piVar1 = 0;" (assignment_expression "*piVar1 = 0" (pointer_expression "*piVar1" * identifier) = number_literal) ;) }))) (expression_statement "(*(code *)PTR_FUN_00435ce0)(iVar2 + 0x30);" (call_expression "(*(code *)PTR_FUN_00435ce0)(iVar2 + 0x30)" (parenthesized_expression "(*(code *)PTR_FUN_00435ce0)" ( (pointer_expression "*(code *)PTR_FUN_00435ce0" * (cast_expression "(code *)PTR_FUN_00435ce0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar2 + 0x30)" ( (binary_expression "iVar2 + 0x30" identifier + number_literal) ))) ;) (expression_statement "__cxa_begin_catch(iVar2 + 0x30);" (call_expression "__cxa_begin_catch(iVar2 + 0x30)" identifier (argument_list "(iVar2 + 0x30)" ( (binary_expression "iVar2 + 0x30" identifier + number_literal) ))) ;) })) (labeled_statement "std::terminate();" statement_identifier : (ERROR ":" :) (expression_statement "terminate();" (call_expression "terminate()" identifier (argument_list "()" ( ))) ;)) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) == LIT) )) && (parenthesized_expression ( (binary_expression IDENT < LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (unary_expression - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))) ;) })) (labeled_statement statement_identifier : (ERROR :) (expression_statement (call_expression IDENT (argument_list ( ))) ;)) })))
(function_definition "void __cxa_rethrow(void)\n\n{\n  int *piVar1;\n  int iVar2;\n  uint uVar3;\n  \n  piVar1 = (int *)__cxa_get_globals();\n  iVar2 = *piVar1;\n  piVar1[1] = piVar1[1] + 1;\n  if (iVar2 != 0) {\n    uVar3 = *(uint *)(iVar2 + 0x34) + 0xbcd4d500;\n    if (((uint)(uVar3 < *(uint *)(iVar2 + 0x34)) + *(int *)(iVar2 + 0x30) + -0x474e5544 == 0) &&\n       (uVar3 < 2)) {\n      *(int *)(iVar2 + 0x14) = -*(int *)(iVar2 + 0x14);\n    }\n    else {\n      *piVar1 = 0;\n    }\n    (*(code *)PTR_FUN_00435ce0)(iVar2 + 0x30);\n    __cxa_begin_catch(iVar2 + 0x30);\n  }\n                    \n  std::terminate();\n}" (primitive_type "void") (function_declarator "__cxa_rethrow(void)" (identifier "__cxa_rethrow") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  int *piVar1;\n  int iVar2;\n  uint uVar3;\n  \n  piVar1 = (int *)__cxa_get_globals();\n  iVar2 = *piVar1;\n  piVar1[1] = piVar1[1] + 1;\n  if (iVar2 != 0) {\n    uVar3 = *(uint *)(iVar2 + 0x34) + 0xbcd4d500;\n    if (((uint)(uVar3 < *(uint *)(iVar2 + 0x34)) + *(int *)(iVar2 + 0x30) + -0x474e5544 == 0) &&\n       (uVar3 < 2)) {\n      *(int *)(iVar2 + 0x14) = -*(int *)(iVar2 + 0x14);\n    }\n    else {\n      *piVar1 = 0;\n    }\n    (*(code *)PTR_FUN_00435ce0)(iVar2 + 0x30);\n    __cxa_begin_catch(iVar2 + 0x30);\n  }\n                    \n  std::terminate();\n}" ({ "{") (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (expression_statement "piVar1 = (int *)__cxa_get_globals();" (assignment_expression "piVar1 = (int *)__cxa_get_globals()" (identifier "piVar1") (= "=") (cast_expression "(int *)__cxa_get_globals()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "__cxa_get_globals()" (identifier "__cxa_get_globals") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "iVar2 = *piVar1;" (assignment_expression "iVar2 = *piVar1" (identifier "iVar2") (= "=") (pointer_expression "*piVar1" (* "*") (identifier "piVar1"))) (; ";")) (expression_statement "piVar1[1] = piVar1[1] + 1;" (assignment_expression "piVar1[1] = piVar1[1] + 1" (subscript_expression "piVar1[1]" (identifier "piVar1") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "piVar1[1] + 1" (subscript_expression "piVar1[1]" (identifier "piVar1") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iVar2 != 0) {\n    uVar3 = *(uint *)(iVar2 + 0x34) + 0xbcd4d500;\n    if (((uint)(uVar3 < *(uint *)(iVar2 + 0x34)) + *(int *)(iVar2 + 0x30) + -0x474e5544 == 0) &&\n       (uVar3 < 2)) {\n      *(int *)(iVar2 + 0x14) = -*(int *)(iVar2 + 0x14);\n    }\n    else {\n      *piVar1 = 0;\n    }\n    (*(code *)PTR_FUN_00435ce0)(iVar2 + 0x30);\n    __cxa_begin_catch(iVar2 + 0x30);\n  }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar3 = *(uint *)(iVar2 + 0x34) + 0xbcd4d500;\n    if (((uint)(uVar3 < *(uint *)(iVar2 + 0x34)) + *(int *)(iVar2 + 0x30) + -0x474e5544 == 0) &&\n       (uVar3 < 2)) {\n      *(int *)(iVar2 + 0x14) = -*(int *)(iVar2 + 0x14);\n    }\n    else {\n      *piVar1 = 0;\n    }\n    (*(code *)PTR_FUN_00435ce0)(iVar2 + 0x30);\n    __cxa_begin_catch(iVar2 + 0x30);\n  }" ({ "{") (expression_statement "uVar3 = *(uint *)(iVar2 + 0x34) + 0xbcd4d500;" (assignment_expression "uVar3 = *(uint *)(iVar2 + 0x34) + 0xbcd4d500" (identifier "uVar3") (= "=") (binary_expression "*(uint *)(iVar2 + 0x34) + 0xbcd4d500" (pointer_expression "*(uint *)(iVar2 + 0x34)" (* "*") (cast_expression "(uint *)(iVar2 + 0x34)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x34)" (( "(") (binary_expression "iVar2 + 0x34" (identifier "iVar2") (+ "+") (number_literal "0x34")) () ")")))) (+ "+") (number_literal "0xbcd4d500"))) (; ";")) (if_statement "if (((uint)(uVar3 < *(uint *)(iVar2 + 0x34)) + *(int *)(iVar2 + 0x30) + -0x474e5544 == 0) &&\n       (uVar3 < 2)) {\n      *(int *)(iVar2 + 0x14) = -*(int *)(iVar2 + 0x14);\n    }\n    else {\n      *piVar1 = 0;\n    }" (if "if") (parenthesized_expression "(((uint)(uVar3 < *(uint *)(iVar2 + 0x34)) + *(int *)(iVar2 + 0x30) + -0x474e5544 == 0) &&\n       (uVar3 < 2))" (( "(") (binary_expression "((uint)(uVar3 < *(uint *)(iVar2 + 0x34)) + *(int *)(iVar2 + 0x30) + -0x474e5544 == 0) &&\n       (uVar3 < 2)" (parenthesized_expression "((uint)(uVar3 < *(uint *)(iVar2 + 0x34)) + *(int *)(iVar2 + 0x30) + -0x474e5544 == 0)" (( "(") (binary_expression "(uint)(uVar3 < *(uint *)(iVar2 + 0x34)) + *(int *)(iVar2 + 0x30) + -0x474e5544 == 0" (binary_expression "(uint)(uVar3 < *(uint *)(iVar2 + 0x34)) + *(int *)(iVar2 + 0x30) + -0x474e5544" (binary_expression "(uint)(uVar3 < *(uint *)(iVar2 + 0x34)) + *(int *)(iVar2 + 0x30)" (call_expression "(uint)(uVar3 < *(uint *)(iVar2 + 0x34))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar3 < *(uint *)(iVar2 + 0x34))" (( "(") (binary_expression "uVar3 < *(uint *)(iVar2 + 0x34)" (identifier "uVar3") (< "<") (pointer_expression "*(uint *)(iVar2 + 0x34)" (* "*") (cast_expression "(uint *)(iVar2 + 0x34)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x34)" (( "(") (binary_expression "iVar2 + 0x34" (identifier "iVar2") (+ "+") (number_literal "0x34")) () ")"))))) () ")"))) (+ "+") (pointer_expression "*(int *)(iVar2 + 0x30)" (* "*") (cast_expression "(int *)(iVar2 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x30)" (( "(") (binary_expression "iVar2 + 0x30" (identifier "iVar2") (+ "+") (number_literal "0x30")) () ")"))))) (+ "+") (number_literal "-0x474e5544")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(uVar3 < 2)" (( "(") (binary_expression "uVar3 < 2" (identifier "uVar3") (< "<") (number_literal "2")) () ")"))) () ")")) (compound_statement "{\n      *(int *)(iVar2 + 0x14) = -*(int *)(iVar2 + 0x14);\n    }" ({ "{") (expression_statement "*(int *)(iVar2 + 0x14) = -*(int *)(iVar2 + 0x14);" (assignment_expression "*(int *)(iVar2 + 0x14) = -*(int *)(iVar2 + 0x14)" (pointer_expression "*(int *)(iVar2 + 0x14)" (* "*") (cast_expression "(int *)(iVar2 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x14)" (( "(") (binary_expression "iVar2 + 0x14" (identifier "iVar2") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (unary_expression "-*(int *)(iVar2 + 0x14)" (- "-") (pointer_expression "*(int *)(iVar2 + 0x14)" (* "*") (cast_expression "(int *)(iVar2 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x14)" (( "(") (binary_expression "iVar2 + 0x14" (identifier "iVar2") (+ "+") (number_literal "0x14")) () ")")))))) (; ";")) (} "}")) (else_clause "else {\n      *piVar1 = 0;\n    }" (else "else") (compound_statement "{\n      *piVar1 = 0;\n    }" ({ "{") (expression_statement "*piVar1 = 0;" (assignment_expression "*piVar1 = 0" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "(*(code *)PTR_FUN_00435ce0)(iVar2 + 0x30);" (call_expression "(*(code *)PTR_FUN_00435ce0)(iVar2 + 0x30)" (parenthesized_expression "(*(code *)PTR_FUN_00435ce0)" (( "(") (pointer_expression "*(code *)PTR_FUN_00435ce0" (* "*") (cast_expression "(code *)PTR_FUN_00435ce0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_00435ce0"))) () ")")) (argument_list "(iVar2 + 0x30)" (( "(") (binary_expression "iVar2 + 0x30" (identifier "iVar2") (+ "+") (number_literal "0x30")) () ")"))) (; ";")) (expression_statement "__cxa_begin_catch(iVar2 + 0x30);" (call_expression "__cxa_begin_catch(iVar2 + 0x30)" (identifier "__cxa_begin_catch") (argument_list "(iVar2 + 0x30)" (( "(") (binary_expression "iVar2 + 0x30" (identifier "iVar2") (+ "+") (number_literal "0x30")) () ")"))) (; ";")) (} "}"))) (labeled_statement "std::terminate();" (statement_identifier "std") (: ":") (ERROR ":" (: ":")) (expression_statement "terminate();" (call_expression "terminate()" (identifier "terminate") (argument_list "()" (( "(") () ")"))) (; ";"))) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type)))) body: (compound_statement (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (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))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal)) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (unary_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) (labeled_statement label: (statement_identifier) (ERROR) (expression_statement (call_expression function: (identifier) arguments: (argument_list)))))))

void MASKED(void)

{
  int *piVar1;
  int iVar2;
  uint uVar3;
  
  piVar1 = (int *)__cxa_get_globals();
  iVar2 = *piVar1;
  piVar1[1] = piVar1[1] + 1;
  if (iVar2 != 0) {
    uVar3 = *(uint *)(iVar2 + 0x34) + 0xbcd4d500;
    if (((uint)(uVar3 < *(uint *)(iVar2 + 0x34)) + *(int *)(iVar2 + 0x30) + -0x474e5544 == 0) &&
       (uVar3 < 2)) {
      *(int *)(iVar2 + 0x14) = -*(int *)(iVar2 + 0x14);
    }
    else {
      *piVar1 = 0;
    }
    (*(code *)PTR_FUN_00435ce0)(iVar2 + 0x30);
    __cxa_begin_catch(iVar2 + 0x30);
  }
                    /* WARNING: Subroutine does not return */
  std::terminate();
}

