
bfd_boolean debug_write_name(debug_handle *info,debug_write_fns *fns,void *fhandle,debug_name *n)

{
  bfd_boolean bVar1;
  
  if (n->kind < (DEBUG_OBJECT_TYPED_CONSTANT|DEBUG_OBJECT_TAG)) {
                    /* WARNING: Could not emulate address calculation at 0x00020448 */
                    /* WARNING: Treating indirect jump as call */
    bVar1 = (*(code *)(&_gp + *(int *)(PTR_DAT_0004d8bc + n->kind * 4 + -0x58bc)))();
    return bVar1;
  }
  bVar1 = (*(code *)PTR_abort_0004da64)();
  return bVar1;
}



void FUN_000203f0(void)

{
  int in_a3;
  
  if (*(uint *)(in_a3 + 0xc) < 7) {
                    /* WARNING: Could not emulate address calculation at 0x00020448 */
                    /* WARNING: Treating indirect jump as call */
    (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0004d8bc + *(uint *)(in_a3 + 0xc) * 4 + -0x58bc)))();
    return;
  }
  (*(code *)PTR_abort_0004da64)();
  return;
}


lui gp,0x3
addiu gp,gp,0x5480
addu gp,gp,t9
addiu sp,sp,-0x40
lw v0,0xc(a3)
sltiu v1,v0,0x7
sw gp,0x18(sp)
sw ra,0x3c(sp)
sw s6,0x38(sp)
sw s5,0x34(sp)
sw s4,0x30(sp)
sw s3,0x2c(sp)
sw s2,0x28(sp)
sw s1,0x24(sp)
beq v1,zero,0x000207cc
_sw s0,0x20(sp)
sll v1,v0,0x2
lw v0,-0x7fb4(gp)
or s0,a3,zero
or s3,a0,zero
addiu v0,v0,-0x58bc
or s1,a1,zero
addu v0,v0,v1
lw v0,0x0(v0)
addu v0,v0,gp
jr v0
_or s2,a2,zero
lw t9,0x8c(a1)
or a0,a2,zero
lw a1,0x4(s0)
lw a2,0x18(s0)
lw ra,0x3c(sp)
lw s6,0x38(sp)
lw s5,0x34(sp)
lw s4,0x30(sp)
lw s3,0x2c(sp)
lw s2,0x28(sp)
lw s1,0x24(sp)
lw s0,0x20(sp)
lw a3,0x1c(a3)
jr t9
_addiu sp,sp,0x40
lw v0,0x18(a3)
lw t9,-0x7fa4(gp)
lw a3,0x0(v0)
addiu t9,t9,-0x944
bal 0x0001f6bc
_sw zero,0x10(sp)
beq v0,zero,0x000206ec
_lw gp,0x18(sp)
lw v0,0x18(s0)
or a0,s2,zero
lw t9,0x90(s1)
lw a1,0x4(s0)
lw ra,0x3c(sp)
lw s6,0x38(sp)
lw s5,0x34(sp)
lw s4,0x30(sp)
lw s3,0x2c(sp)
lw s2,0x28(sp)
lw s1,0x24(sp)
lw s0,0x20(sp)
lw a3,0xc(v0)
lw a2,0x8(v0)
jr t9
_addiu sp,sp,0x40
lw t9,-0x7fa4(gp)
lw a3,0x18(a3)
addiu t9,t9,-0x944
bal 0x0001f6bc
_sw s0,0x10(sp)
beq v0,zero,0x000206f0
_or v0,zero,zero
lw t9,0x80(s1)
or a0,s2,zero
jalr t9
_lw a1,0x4(s0)
sltu v0,zero,v0
lw ra,0x3c(sp)
lw s6,0x38(sp)
lw s5,0x34(sp)
lw s4,0x30(sp)
lw s3,0x2c(sp)
lw s2,0x28(sp)
lw s1,0x24(sp)
lw s0,0x20(sp)
jr ra
_addiu sp,sp,0x40
lw t9,-0x7fa4(gp)
lw a3,0x18(a3)
addiu t9,t9,-0x944
bal 0x0001f6bc
_sw s0,0x10(sp)
beq v0,zero,0x000206ec
_lw gp,0x18(sp)
lw t9,0x84(s1)
or a0,s2,zero
lw a1,0x4(s0)
lw ra,0x3c(sp)
lw s6,0x38(sp)
lw s5,0x34(sp)
lw s4,0x30(sp)
lw s3,0x2c(sp)
lw s2,0x28(sp)
lw s1,0x24(sp)
lw s0,0x20(sp)
jr t9
_addiu sp,sp,0x40
lw v0,0x18(a3)
lw t9,-0x7fa4(gp)
lw a3,0x4(v0)
addiu t9,t9,-0x944
bal 0x0001f6bc
_sw zero,0x10(sp)
beq v0,zero,0x000206ec
_nop
lw v0,0x18(s0)
or a0,s2,zero
lw t9,0x94(s1)
lw a1,0x4(s0)
lw a2,0x0(v0)
lw v1,0xc(v0)
lw v0,0x8(v0)
sw v1,0x14(sp)
jalr t9
_sw v0,0x10(sp)
b 0x0002052c
_lw ra,0x3c(sp)
lw s5,0x18(a3)
addiu a2,a1,0xac
lw t9,-0x7fa4(gp)
addiu a1,a0,0x28
addiu a0,a0,0x24
lw s6,0x4(a3)
lw s0,0x10(s0)
or a3,s2,zero
lw v0,0x8(s5)
addiu t9,t9,-0x1748
lw v1,0x14(v0)
lw v0,0x10(v0)
sw v1,0x14(sp)
bal 0x0001e8b8
_sw v0,0x10(sp)
beq v0,zero,0x000206ec
_lw gp,0x18(sp)
lw s4,-0x7fa4(gp)
or a2,s2,zero
lw a3,0x0(s5)
or a1,s1,zero
sw zero,0x10(sp)
addiu s4,s4,-0x944
or t9,s4,zero
bal 0x0001f6bc
_or a0,s3,zero
beq v0,zero,0x000206ec
_xori a2,s0,0x2
lw t9,0x98(s1)
sltiu a2,a2,0x1
or a1,s6,zero
jalr t9
_or a0,s2,zero
beq v0,zero,0x000206ec
_lw gp,0x18(sp)
lw s0,0x4(s5)
bne s0,zero,0x000206c8
_nop
b 0x00020758
_lw s0,0x8(s5)
lw v1,0x14(s0)
or a0,s2,zero
lw v0,0x10(s0)
lw t9,0x9c(s1)
lw a2,0xc(s0)
lw a1,0x4(s0)
sw v1,0x14(sp)
jalr t9
_sw v0,0x10(sp)
beq v0,zero,0x000206ec
_lw gp,0x18(sp)
lw s0,0x0(s0)
beq s0,zero,0x00020754
_nop
lw a3,0x8(s0)
or a2,s2,zero
sw zero,0x10(sp)
or a1,s1,zero
or t9,s4,zero
bal 0x0001f6bc
_or a0,s3,zero
bne v0,zero,0x00020690
_nop
or v0,zero,zero
lw ra,0x3c(sp)
lw s6,0x38(sp)
lw s5,0x34(sp)
lw s4,0x30(sp)
lw s3,0x2c(sp)
lw s2,0x28(sp)
lw s1,0x24(sp)
lw s0,0x20(sp)
jr ra
_addiu sp,sp,0x40
lw t9,0x88(a1)
or a0,a2,zero
lw a1,0x4(s0)
lw a2,0x18(s0)
lw ra,0x3c(sp)
lw s6,0x38(sp)
lw s5,0x34(sp)
lw s4,0x30(sp)
lw s3,0x2c(sp)
lw s2,0x28(sp)
lw s1,0x24(sp)
lw s0,0x20(sp)
lw a3,0x1c(a3)
jr t9
_addiu sp,sp,0x40
lw s0,0x8(s5)
beq s0,zero,0x0002079c
_lw s4,-0x7fa4(gp)
b 0x00020774
_addiu s4,s4,0x7d8
lw s0,0x0(s0)
beq s0,zero,0x0002079c
_nop
or a3,s0,zero
or a2,s2,zero
or a1,s1,zero
or t9,s4,zero
bal 0x000207d8
_or a0,s3,zero
bne v0,zero,0x00020768
_lw gp,0x18(sp)
b 0x000206f0
_or v0,zero,zero
lw t9,0xa8(s1)
or a0,s2,zero
lw ra,0x3c(sp)
lw s6,0x38(sp)
lw s5,0x34(sp)
lw s4,0x30(sp)
lw s3,0x2c(sp)
lw s2,0x28(sp)
lw s1,0x24(sp)
lw s0,0x20(sp)
jr t9
_addiu sp,sp,0x40
lw t9,-0x7e0c(gp)
jalr t9
_nop
(translation_unit "void FUN_000203f0(void)\n\n{\n  int in_a3;\n  \n  if (*(uint *)(in_a3 + 0xc) < 7) {\n                    /* WARNING: Could not emulate address calculation at 0x00020448 */\n                    /* WARNING: Treating indirect jump as call */\n    (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0004d8bc + *(uint *)(in_a3 + 0xc) * 4 + -0x58bc)))();\n    return;\n  }\n  (*(code *)PTR_abort_0004da64)();\n  return;\n}\n\n" (function_definition "void FUN_000203f0(void)\n\n{\n  int in_a3;\n  \n  if (*(uint *)(in_a3 + 0xc) < 7) {\n                    /* WARNING: Could not emulate address calculation at 0x00020448 */\n                    /* WARNING: Treating indirect jump as call */\n    (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0004d8bc + *(uint *)(in_a3 + 0xc) * 4 + -0x58bc)))();\n    return;\n  }\n  (*(code *)PTR_abort_0004da64)();\n  return;\n}" primitive_type (function_declarator "FUN_000203f0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int in_a3;\n  \n  if (*(uint *)(in_a3 + 0xc) < 7) {\n                    /* WARNING: Could not emulate address calculation at 0x00020448 */\n                    /* WARNING: Treating indirect jump as call */\n    (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0004d8bc + *(uint *)(in_a3 + 0xc) * 4 + -0x58bc)))();\n    return;\n  }\n  (*(code *)PTR_abort_0004da64)();\n  return;\n}" { (declaration "int in_a3;" primitive_type identifier ;) (if_statement "if (*(uint *)(in_a3 + 0xc) < 7) {\n                    /* WARNING: Could not emulate address calculation at 0x00020448 */\n                    /* WARNING: Treating indirect jump as call */\n    (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0004d8bc + *(uint *)(in_a3 + 0xc) * 4 + -0x58bc)))();\n    return;\n  }" if (parenthesized_expression "(*(uint *)(in_a3 + 0xc) < 7)" ( (binary_expression "*(uint *)(in_a3 + 0xc) < 7" (pointer_expression "*(uint *)(in_a3 + 0xc)" * (cast_expression "(uint *)(in_a3 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_a3 + 0xc)" ( (binary_expression "in_a3 + 0xc" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not emulate address calculation at 0x00020448 */\n                    /* WARNING: Treating indirect jump as call */\n    (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0004d8bc + *(uint *)(in_a3 + 0xc) * 4 + -0x58bc)))();\n    return;\n  }" { comment comment (expression_statement "(*(code *)(&_gp_1 + *(int *)(PTR_DAT_0004d8bc + *(uint *)(in_a3 + 0xc) * 4 + -0x58bc)))();" (call_expression "(*(code *)(&_gp_1 + *(int *)(PTR_DAT_0004d8bc + *(uint *)(in_a3 + 0xc) * 4 + -0x58bc)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(PTR_DAT_0004d8bc + *(uint *)(in_a3 + 0xc) * 4 + -0x58bc)))" ( (pointer_expression "*(code *)(&_gp_1 + *(int *)(PTR_DAT_0004d8bc + *(uint *)(in_a3 + 0xc) * 4 + -0x58bc))" * (cast_expression "(code *)(&_gp_1 + *(int *)(PTR_DAT_0004d8bc + *(uint *)(in_a3 + 0xc) * 4 + -0x58bc))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp_1 + *(int *)(PTR_DAT_0004d8bc + *(uint *)(in_a3 + 0xc) * 4 + -0x58bc))" ( (binary_expression "&_gp_1 + *(int *)(PTR_DAT_0004d8bc + *(uint *)(in_a3 + 0xc) * 4 + -0x58bc)" (pointer_expression "&_gp_1" & identifier) + (pointer_expression "*(int *)(PTR_DAT_0004d8bc + *(uint *)(in_a3 + 0xc) * 4 + -0x58bc)" * (cast_expression "(int *)(PTR_DAT_0004d8bc + *(uint *)(in_a3 + 0xc) * 4 + -0x58bc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0004d8bc + *(uint *)(in_a3 + 0xc) * 4 + -0x58bc)" ( (binary_expression "PTR_DAT_0004d8bc + *(uint *)(in_a3 + 0xc) * 4 + -0x58bc" (binary_expression "PTR_DAT_0004d8bc + *(uint *)(in_a3 + 0xc) * 4" identifier + (binary_expression "*(uint *)(in_a3 + 0xc) * 4" (pointer_expression "*(uint *)(in_a3 + 0xc)" * (cast_expression "(uint *)(in_a3 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_a3 + 0xc)" ( (binary_expression "in_a3 + 0xc" identifier + number_literal) )))) * number_literal)) + number_literal) ))))) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "(*(code *)PTR_abort_0004da64)();" (call_expression "(*(code *)PTR_abort_0004da64)()" (parenthesized_expression "(*(code *)PTR_abort_0004da64)" ( (pointer_expression "*(code *)PTR_abort_0004da64" * (cast_expression "(code *)PTR_abort_0004da64" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit "bfd_boolean debug_write_name(debug_handle *info,debug_write_fns *fns,void *fhandle,debug_name *n)\n\n{\n  bfd_boolean bVar1;\n  \n  if (n->kind < (DEBUG_OBJECT_TYPED_CONSTANT|DEBUG_OBJECT_TAG)) {\n                    /* WARNING: Could not emulate address calculation at 0x00020448 */\n                    /* WARNING: Treating indirect jump as call */\n    bVar1 = (*(code *)(&_gp + *(int *)(PTR_DAT_0004d8bc + n->kind * 4 + -0x58bc)))();\n    return bVar1;\n  }\n  bVar1 = (*(code *)PTR_abort_0004da64)();\n  return bVar1;\n}\n\n" (function_definition "bfd_boolean debug_write_name(debug_handle *info,debug_write_fns *fns,void *fhandle,debug_name *n)\n\n{\n  bfd_boolean bVar1;\n  \n  if (n->kind < (DEBUG_OBJECT_TYPED_CONSTANT|DEBUG_OBJECT_TAG)) {\n                    /* WARNING: Could not emulate address calculation at 0x00020448 */\n                    /* WARNING: Treating indirect jump as call */\n    bVar1 = (*(code *)(&_gp + *(int *)(PTR_DAT_0004d8bc + n->kind * 4 + -0x58bc)))();\n    return bVar1;\n  }\n  bVar1 = (*(code *)PTR_abort_0004da64)();\n  return bVar1;\n}" type_identifier (function_declarator "debug_write_name(debug_handle *info,debug_write_fns *fns,void *fhandle,debug_name *n)" identifier (parameter_list "(debug_handle *info,debug_write_fns *fns,void *fhandle,debug_name *n)" ( (parameter_declaration "debug_handle *info" type_identifier (pointer_declarator "*info" * identifier)) , (parameter_declaration "debug_write_fns *fns" type_identifier (pointer_declarator "*fns" * identifier)) , (parameter_declaration "void *fhandle" primitive_type (pointer_declarator "*fhandle" * identifier)) , (parameter_declaration "debug_name *n" type_identifier (pointer_declarator "*n" * identifier)) ))) (compound_statement "{\n  bfd_boolean bVar1;\n  \n  if (n->kind < (DEBUG_OBJECT_TYPED_CONSTANT|DEBUG_OBJECT_TAG)) {\n                    /* WARNING: Could not emulate address calculation at 0x00020448 */\n                    /* WARNING: Treating indirect jump as call */\n    bVar1 = (*(code *)(&_gp + *(int *)(PTR_DAT_0004d8bc + n->kind * 4 + -0x58bc)))();\n    return bVar1;\n  }\n  bVar1 = (*(code *)PTR_abort_0004da64)();\n  return bVar1;\n}" { (declaration "bfd_boolean bVar1;" type_identifier identifier ;) (if_statement "if (n->kind < (DEBUG_OBJECT_TYPED_CONSTANT|DEBUG_OBJECT_TAG)) {\n                    /* WARNING: Could not emulate address calculation at 0x00020448 */\n                    /* WARNING: Treating indirect jump as call */\n    bVar1 = (*(code *)(&_gp + *(int *)(PTR_DAT_0004d8bc + n->kind * 4 + -0x58bc)))();\n    return bVar1;\n  }" if (parenthesized_expression "(n->kind < (DEBUG_OBJECT_TYPED_CONSTANT|DEBUG_OBJECT_TAG))" ( (binary_expression "n->kind < (DEBUG_OBJECT_TYPED_CONSTANT|DEBUG_OBJECT_TAG)" (field_expression "n->kind" identifier -> field_identifier) < (parenthesized_expression "(DEBUG_OBJECT_TYPED_CONSTANT|DEBUG_OBJECT_TAG)" ( (binary_expression "DEBUG_OBJECT_TYPED_CONSTANT|DEBUG_OBJECT_TAG" identifier | identifier) ))) )) (compound_statement "{\n                    /* WARNING: Could not emulate address calculation at 0x00020448 */\n                    /* WARNING: Treating indirect jump as call */\n    bVar1 = (*(code *)(&_gp + *(int *)(PTR_DAT_0004d8bc + n->kind * 4 + -0x58bc)))();\n    return bVar1;\n  }" { comment comment (expression_statement "bVar1 = (*(code *)(&_gp + *(int *)(PTR_DAT_0004d8bc + n->kind * 4 + -0x58bc)))();" (assignment_expression "bVar1 = (*(code *)(&_gp + *(int *)(PTR_DAT_0004d8bc + n->kind * 4 + -0x58bc)))()" identifier = (call_expression "(*(code *)(&_gp + *(int *)(PTR_DAT_0004d8bc + n->kind * 4 + -0x58bc)))()" (parenthesized_expression "(*(code *)(&_gp + *(int *)(PTR_DAT_0004d8bc + n->kind * 4 + -0x58bc)))" ( (pointer_expression "*(code *)(&_gp + *(int *)(PTR_DAT_0004d8bc + n->kind * 4 + -0x58bc))" * (cast_expression "(code *)(&_gp + *(int *)(PTR_DAT_0004d8bc + n->kind * 4 + -0x58bc))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp + *(int *)(PTR_DAT_0004d8bc + n->kind * 4 + -0x58bc))" ( (binary_expression "&_gp + *(int *)(PTR_DAT_0004d8bc + n->kind * 4 + -0x58bc)" (pointer_expression "&_gp" & identifier) + (pointer_expression "*(int *)(PTR_DAT_0004d8bc + n->kind * 4 + -0x58bc)" * (cast_expression "(int *)(PTR_DAT_0004d8bc + n->kind * 4 + -0x58bc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0004d8bc + n->kind * 4 + -0x58bc)" ( (binary_expression "PTR_DAT_0004d8bc + n->kind * 4 + -0x58bc" (binary_expression "PTR_DAT_0004d8bc + n->kind * 4" identifier + (binary_expression "n->kind * 4" (field_expression "n->kind" identifier -> field_identifier) * number_literal)) + number_literal) ))))) )))) )) (argument_list "()" ( )))) ;) (return_statement "return bVar1;" return identifier ;) })) (expression_statement "bVar1 = (*(code *)PTR_abort_0004da64)();" (assignment_expression "bVar1 = (*(code *)PTR_abort_0004da64)()" identifier = (call_expression "(*(code *)PTR_abort_0004da64)()" (parenthesized_expression "(*(code *)PTR_abort_0004da64)" ( (pointer_expression "*(code *)PTR_abort_0004da64" * (cast_expression "(code *)PTR_abort_0004da64" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (return_statement "return bVar1;" return identifier ;) })))
(translation_unit "void FUN_000203f0(void)\n\n{\n  int in_a3;\n  \n  if (*(uint *)(in_a3 + 0xc) < 7) {\n                    \n                    \n    (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0004d8bc + *(uint *)(in_a3 + 0xc) * 4 + -0x58bc)))();\n    return;\n  }\n  (*(code *)PTR_abort_0004da64)();\n  return;\n}\n\n" (function_definition "void FUN_000203f0(void)\n\n{\n  int in_a3;\n  \n  if (*(uint *)(in_a3 + 0xc) < 7) {\n                    \n                    \n    (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0004d8bc + *(uint *)(in_a3 + 0xc) * 4 + -0x58bc)))();\n    return;\n  }\n  (*(code *)PTR_abort_0004da64)();\n  return;\n}" primitive_type (function_declarator "FUN_000203f0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int in_a3;\n  \n  if (*(uint *)(in_a3 + 0xc) < 7) {\n                    \n                    \n    (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0004d8bc + *(uint *)(in_a3 + 0xc) * 4 + -0x58bc)))();\n    return;\n  }\n  (*(code *)PTR_abort_0004da64)();\n  return;\n}" { (declaration "int in_a3;" primitive_type identifier ;) (if_statement "if (*(uint *)(in_a3 + 0xc) < 7) {\n                    \n                    \n    (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0004d8bc + *(uint *)(in_a3 + 0xc) * 4 + -0x58bc)))();\n    return;\n  }" if (parenthesized_expression "(*(uint *)(in_a3 + 0xc) < 7)" ( (binary_expression "*(uint *)(in_a3 + 0xc) < 7" (pointer_expression "*(uint *)(in_a3 + 0xc)" * (cast_expression "(uint *)(in_a3 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_a3 + 0xc)" ( (binary_expression "in_a3 + 0xc" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n                    \n                    \n    (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0004d8bc + *(uint *)(in_a3 + 0xc) * 4 + -0x58bc)))();\n    return;\n  }" { (expression_statement "(*(code *)(&_gp_1 + *(int *)(PTR_DAT_0004d8bc + *(uint *)(in_a3 + 0xc) * 4 + -0x58bc)))();" (call_expression "(*(code *)(&_gp_1 + *(int *)(PTR_DAT_0004d8bc + *(uint *)(in_a3 + 0xc) * 4 + -0x58bc)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(PTR_DAT_0004d8bc + *(uint *)(in_a3 + 0xc) * 4 + -0x58bc)))" ( (pointer_expression "*(code *)(&_gp_1 + *(int *)(PTR_DAT_0004d8bc + *(uint *)(in_a3 + 0xc) * 4 + -0x58bc))" * (cast_expression "(code *)(&_gp_1 + *(int *)(PTR_DAT_0004d8bc + *(uint *)(in_a3 + 0xc) * 4 + -0x58bc))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp_1 + *(int *)(PTR_DAT_0004d8bc + *(uint *)(in_a3 + 0xc) * 4 + -0x58bc))" ( (binary_expression "&_gp_1 + *(int *)(PTR_DAT_0004d8bc + *(uint *)(in_a3 + 0xc) * 4 + -0x58bc)" (pointer_expression "&_gp_1" & identifier) + (pointer_expression "*(int *)(PTR_DAT_0004d8bc + *(uint *)(in_a3 + 0xc) * 4 + -0x58bc)" * (cast_expression "(int *)(PTR_DAT_0004d8bc + *(uint *)(in_a3 + 0xc) * 4 + -0x58bc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0004d8bc + *(uint *)(in_a3 + 0xc) * 4 + -0x58bc)" ( (binary_expression "PTR_DAT_0004d8bc + *(uint *)(in_a3 + 0xc) * 4 + -0x58bc" (binary_expression "PTR_DAT_0004d8bc + *(uint *)(in_a3 + 0xc) * 4" identifier + (binary_expression "*(uint *)(in_a3 + 0xc) * 4" (pointer_expression "*(uint *)(in_a3 + 0xc)" * (cast_expression "(uint *)(in_a3 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_a3 + 0xc)" ( (binary_expression "in_a3 + 0xc" identifier + number_literal) )))) * number_literal)) + number_literal) ))))) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "(*(code *)PTR_abort_0004da64)();" (call_expression "(*(code *)PTR_abort_0004da64)()" (parenthesized_expression "(*(code *)PTR_abort_0004da64)" ( (pointer_expression "*(code *)PTR_abort_0004da64" * (cast_expression "(code *)PTR_abort_0004da64" ( (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) ))) (compound_statement { (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) + LIT) ))))) )))) )) (argument_list ( ))) ;) (return_statement return ;) })) (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 FUN_000203f0(void)\n\n{\n  int in_a3;\n  \n  if (*(uint *)(in_a3 + 0xc) < 7) {\n                    \n                    \n    (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0004d8bc + *(uint *)(in_a3 + 0xc) * 4 + -0x58bc)))();\n    return;\n  }\n  (*(code *)PTR_abort_0004da64)();\n  return;\n}" (primitive_type "void") (function_declarator "FUN_000203f0(void)" (identifier "FUN_000203f0") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  int in_a3;\n  \n  if (*(uint *)(in_a3 + 0xc) < 7) {\n                    \n                    \n    (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0004d8bc + *(uint *)(in_a3 + 0xc) * 4 + -0x58bc)))();\n    return;\n  }\n  (*(code *)PTR_abort_0004da64)();\n  return;\n}" ({ "{") (declaration "int in_a3;" (primitive_type "int") (identifier "in_a3") (; ";")) (if_statement "if (*(uint *)(in_a3 + 0xc) < 7) {\n                    \n                    \n    (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0004d8bc + *(uint *)(in_a3 + 0xc) * 4 + -0x58bc)))();\n    return;\n  }" (if "if") (parenthesized_expression "(*(uint *)(in_a3 + 0xc) < 7)" (( "(") (binary_expression "*(uint *)(in_a3 + 0xc) < 7" (pointer_expression "*(uint *)(in_a3 + 0xc)" (* "*") (cast_expression "(uint *)(in_a3 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_a3 + 0xc)" (( "(") (binary_expression "in_a3 + 0xc" (identifier "in_a3") (+ "+") (number_literal "0xc")) () ")")))) (< "<") (number_literal "7")) () ")")) (compound_statement "{\n                    \n                    \n    (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0004d8bc + *(uint *)(in_a3 + 0xc) * 4 + -0x58bc)))();\n    return;\n  }" ({ "{") (expression_statement "(*(code *)(&_gp_1 + *(int *)(PTR_DAT_0004d8bc + *(uint *)(in_a3 + 0xc) * 4 + -0x58bc)))();" (call_expression "(*(code *)(&_gp_1 + *(int *)(PTR_DAT_0004d8bc + *(uint *)(in_a3 + 0xc) * 4 + -0x58bc)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(PTR_DAT_0004d8bc + *(uint *)(in_a3 + 0xc) * 4 + -0x58bc)))" (( "(") (pointer_expression "*(code *)(&_gp_1 + *(int *)(PTR_DAT_0004d8bc + *(uint *)(in_a3 + 0xc) * 4 + -0x58bc))" (* "*") (cast_expression "(code *)(&_gp_1 + *(int *)(PTR_DAT_0004d8bc + *(uint *)(in_a3 + 0xc) * 4 + -0x58bc))" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&_gp_1 + *(int *)(PTR_DAT_0004d8bc + *(uint *)(in_a3 + 0xc) * 4 + -0x58bc))" (( "(") (binary_expression "&_gp_1 + *(int *)(PTR_DAT_0004d8bc + *(uint *)(in_a3 + 0xc) * 4 + -0x58bc)" (pointer_expression "&_gp_1" (& "&") (identifier "_gp_1")) (+ "+") (pointer_expression "*(int *)(PTR_DAT_0004d8bc + *(uint *)(in_a3 + 0xc) * 4 + -0x58bc)" (* "*") (cast_expression "(int *)(PTR_DAT_0004d8bc + *(uint *)(in_a3 + 0xc) * 4 + -0x58bc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0004d8bc + *(uint *)(in_a3 + 0xc) * 4 + -0x58bc)" (( "(") (binary_expression "PTR_DAT_0004d8bc + *(uint *)(in_a3 + 0xc) * 4 + -0x58bc" (binary_expression "PTR_DAT_0004d8bc + *(uint *)(in_a3 + 0xc) * 4" (identifier "PTR_DAT_0004d8bc") (+ "+") (binary_expression "*(uint *)(in_a3 + 0xc) * 4" (pointer_expression "*(uint *)(in_a3 + 0xc)" (* "*") (cast_expression "(uint *)(in_a3 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_a3 + 0xc)" (( "(") (binary_expression "in_a3 + 0xc" (identifier "in_a3") (+ "+") (number_literal "0xc")) () ")")))) (* "*") (number_literal "4"))) (+ "+") (number_literal "-0x58bc")) () ")"))))) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_abort_0004da64)();" (call_expression "(*(code *)PTR_abort_0004da64)()" (parenthesized_expression "(*(code *)PTR_abort_0004da64)" (( "(") (pointer_expression "*(code *)PTR_abort_0004da64" (* "*") (cast_expression "(code *)PTR_abort_0004da64" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_abort_0004da64"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))
(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: (identifier)) (if_statement condition: (parenthesized_expression (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))) 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: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (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))) right: (number_literal)))))))))) arguments: (argument_list))) (return_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))) (return_statement))))

void MASKED(void)

{
  int in_a3;
  
  if (*(uint *)(in_a3 + 0xc) < 7) {
                    /* WARNING: Could not emulate address calculation at 0x00020448 */
                    /* WARNING: Treating indirect jump as call */
    (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0004d8bc + *(uint *)(in_a3 + 0xc) * 4 + -0x58bc)))();
    return;
  }
  (*(code *)PTR_abort_0004da64)();
  return;
}

