
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: Reloc_section * rel_irelative(Output_data_plt_arm<true> * this,
   Symbol_table * symtab, Layout * layout) */

Reloc_section * __thiscall
anon_unknown.dwarf_91258a::Output_data_plt_arm<true>::rel_irelative
          (Output_data_plt_arm<true> *this,Symbol_table *symtab,Layout *layout)

{
}



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

int __regparm3 FUN_00112b50(int *param_1,undefined4 param_2)

{
  int iVar1;
  
  if (*param_1 != 0) {
    return *param_1;
  }
  iVar1 = *(int *)(DAT_005ea7c8 + 0xc);
  if (iVar1 == 0) {
    FUN_0010d780();
  }
  else {
    if ((*(int *)(*(int *)(iVar1 + 4) + 8) != 0x28) || (*(char *)(*(int *)(iVar1 + 4) + 4) == '\0'))
    goto LAB_00112c2e;
    iVar1 = FUN_00110bd0();
    *param_1 = iVar1;
    if (*(char *)(DAT_005ea7c8 + 0x10) != '\0') {
      if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {
        return iVar1;
      }
      FUN_0034f750(param_2,"__rel_iplt_start",0,5,iVar1,0,0,0,0,0,1,2,0,0,1);
      FUN_0034f750(param_2,"__rel_iplt_end",0,5,*param_1,0,0,0,0,0,1,2,0,1,1);
      return *param_1;
    }
  }
  iVar1 = FUN_0010caf0();
LAB_00112c2e:
                    /* WARNING: Subroutine does not return */
  FUN_002446e0("../../gold/arm.cc",0x988,"default_target",iVar1);
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00050b50
ADD EBX,0x4d74a7
SUB ESP,0x1c
MOV ESI,dword ptr [EAX]
TEST ESI,ESI
JZ 0x00112b78
ADD ESP,0x1c
MOV EAX,ESI
POP EBX
POP ESI
POP EDI
POP EBP
RET
LEA EBP,[EBX + 0x7c8]
MOV EDI,EAX
MOV dword ptr [ESP + 0xc],EDX
MOV EAX,dword ptr [EBP]
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JZ 0x00112c24
MOV EDX,dword ptr [EAX + 0x4]
CMP dword ptr [EDX + 0x8],0x28
JNZ 0x00112c2e
CMP byte ptr [EDX + 0x4],0x0
JZ 0x00112c2e
MOV EDX,ECX
CALL 0x00110bd0
MOV ESI,EAX
MOV dword ptr [EDI],EAX
MOV EAX,dword ptr [EBP]
CMP byte ptr [EAX + 0x10],0x0
JZ 0x00112c29
CMP byte ptr [EAX + 0x11],0x0
JZ 0x00112b68
SUB ESP,0x4
LEA EAX,[EBX + 0xffe63494]
PUSH 0x1
PUSH 0x0
PUSH 0x0
PUSH 0x2
PUSH 0x1
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH ESI
PUSH 0x5
PUSH 0x0
PUSH EAX
MOV ESI,dword ptr [ESP + 0x48]
PUSH ESI
CALL 0x0034f750
ADD ESP,0x3c
LEA EAX,[EBX + 0xffe634a5]
PUSH 0x1
PUSH 0x1
PUSH 0x0
PUSH 0x2
PUSH 0x1
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH dword ptr [EDI]
PUSH 0x5
PUSH 0x0
PUSH EAX
PUSH ESI
CALL 0x0034f750
MOV ESI,dword ptr [EDI]
ADD ESP,0x40
JMP 0x00112b68
CALL 0x0010d780
CALL 0x0010caf0
PUSH EAX
LEA EAX,[EBX + 0xffe80434]
PUSH EAX
LEA EAX,[EBX + 0xffe7d346]
PUSH 0x988
PUSH EAX
CALL 0x002446e0
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nint __regparm3 FUN_00112b50(int *param_1,undefined4 param_2)\n\n{\n  int iVar1;\n  \n  if (*param_1 != 0) {\n    return *param_1;\n  }\n  iVar1 = *(int *)(DAT_005ea7c8 + 0xc);\n  if (iVar1 == 0) {\n    FUN_0010d780();\n  }\n  else {\n    if ((*(int *)(*(int *)(iVar1 + 4) + 8) != 0x28) || (*(char *)(*(int *)(iVar1 + 4) + 4) == '\0'))\n    goto LAB_00112c2e;\n    iVar1 = FUN_00110bd0();\n    *param_1 = iVar1;\n    if (*(char *)(DAT_005ea7c8 + 0x10) != '\0') {\n      if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n        return iVar1;\n      }\n      FUN_0034f750(param_2,"__rel_iplt_start",0,5,iVar1,0,0,0,0,0,1,2,0,0,1);\n      FUN_0034f750(param_2,"__rel_iplt_end",0,5,*param_1,0,0,0,0,0,1,2,0,1,1);\n      return *param_1;\n    }\n  }\n  iVar1 = FUN_0010caf0();\nLAB_00112c2e:\n                    /* WARNING: Subroutine does not return */\n  FUN_002446e0("../../gold/arm.cc",0x988,"default_target",iVar1);\n}\n\n" comment (function_definition "int __regparm3 FUN_00112b50(int *param_1,undefined4 param_2)\n\n{\n  int iVar1;\n  \n  if (*param_1 != 0) {\n    return *param_1;\n  }\n  iVar1 = *(int *)(DAT_005ea7c8 + 0xc);\n  if (iVar1 == 0) {\n    FUN_0010d780();\n  }\n  else {\n    if ((*(int *)(*(int *)(iVar1 + 4) + 8) != 0x28) || (*(char *)(*(int *)(iVar1 + 4) + 4) == '\0'))\n    goto LAB_00112c2e;\n    iVar1 = FUN_00110bd0();\n    *param_1 = iVar1;\n    if (*(char *)(DAT_005ea7c8 + 0x10) != '\0') {\n      if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n        return iVar1;\n      }\n      FUN_0034f750(param_2,"__rel_iplt_start",0,5,iVar1,0,0,0,0,0,1,2,0,0,1);\n      FUN_0034f750(param_2,"__rel_iplt_end",0,5,*param_1,0,0,0,0,0,1,2,0,1,1);\n      return *param_1;\n    }\n  }\n  iVar1 = FUN_0010caf0();\nLAB_00112c2e:\n                    /* WARNING: Subroutine does not return */\n  FUN_002446e0("../../gold/arm.cc",0x988,"default_target",iVar1);\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00112b50(int *param_1,undefined4 param_2)" identifier (parameter_list "(int *param_1,undefined4 param_2)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  \n  if (*param_1 != 0) {\n    return *param_1;\n  }\n  iVar1 = *(int *)(DAT_005ea7c8 + 0xc);\n  if (iVar1 == 0) {\n    FUN_0010d780();\n  }\n  else {\n    if ((*(int *)(*(int *)(iVar1 + 4) + 8) != 0x28) || (*(char *)(*(int *)(iVar1 + 4) + 4) == '\0'))\n    goto LAB_00112c2e;\n    iVar1 = FUN_00110bd0();\n    *param_1 = iVar1;\n    if (*(char *)(DAT_005ea7c8 + 0x10) != '\0') {\n      if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n        return iVar1;\n      }\n      FUN_0034f750(param_2,"__rel_iplt_start",0,5,iVar1,0,0,0,0,0,1,2,0,0,1);\n      FUN_0034f750(param_2,"__rel_iplt_end",0,5,*param_1,0,0,0,0,0,1,2,0,1,1);\n      return *param_1;\n    }\n  }\n  iVar1 = FUN_0010caf0();\nLAB_00112c2e:\n                    /* WARNING: Subroutine does not return */\n  FUN_002446e0("../../gold/arm.cc",0x988,"default_target",iVar1);\n}" { (declaration "int iVar1;" primitive_type identifier ;) (if_statement "if (*param_1 != 0) {\n    return *param_1;\n  }" if (parenthesized_expression "(*param_1 != 0)" ( (binary_expression "*param_1 != 0" (pointer_expression "*param_1" * identifier) != number_literal) )) (compound_statement "{\n    return *param_1;\n  }" { (return_statement "return *param_1;" return (pointer_expression "*param_1" * identifier) ;) })) (expression_statement "iVar1 = *(int *)(DAT_005ea7c8 + 0xc);" (assignment_expression "iVar1 = *(int *)(DAT_005ea7c8 + 0xc)" identifier = (pointer_expression "*(int *)(DAT_005ea7c8 + 0xc)" * (cast_expression "(int *)(DAT_005ea7c8 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_005ea7c8 + 0xc)" ( (binary_expression "DAT_005ea7c8 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (iVar1 == 0) {\n    FUN_0010d780();\n  }\n  else {\n    if ((*(int *)(*(int *)(iVar1 + 4) + 8) != 0x28) || (*(char *)(*(int *)(iVar1 + 4) + 4) == '\0'))\n    goto LAB_00112c2e;\n    iVar1 = FUN_00110bd0();\n    *param_1 = iVar1;\n    if (*(char *)(DAT_005ea7c8 + 0x10) != '\0') {\n      if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n        return iVar1;\n      }\n      FUN_0034f750(param_2,"__rel_iplt_start",0,5,iVar1,0,0,0,0,0,1,2,0,0,1);\n      FUN_0034f750(param_2,"__rel_iplt_end",0,5,*param_1,0,0,0,0,0,1,2,0,1,1);\n      return *param_1;\n    }\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    FUN_0010d780();\n  }" { (expression_statement "FUN_0010d780();" (call_expression "FUN_0010d780()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n    if ((*(int *)(*(int *)(iVar1 + 4) + 8) != 0x28) || (*(char *)(*(int *)(iVar1 + 4) + 4) == '\0'))\n    goto LAB_00112c2e;\n    iVar1 = FUN_00110bd0();\n    *param_1 = iVar1;\n    if (*(char *)(DAT_005ea7c8 + 0x10) != '\0') {\n      if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n        return iVar1;\n      }\n      FUN_0034f750(param_2,"__rel_iplt_start",0,5,iVar1,0,0,0,0,0,1,2,0,0,1);\n      FUN_0034f750(param_2,"__rel_iplt_end",0,5,*param_1,0,0,0,0,0,1,2,0,1,1);\n      return *param_1;\n    }\n  }" else (compound_statement "{\n    if ((*(int *)(*(int *)(iVar1 + 4) + 8) != 0x28) || (*(char *)(*(int *)(iVar1 + 4) + 4) == '\0'))\n    goto LAB_00112c2e;\n    iVar1 = FUN_00110bd0();\n    *param_1 = iVar1;\n    if (*(char *)(DAT_005ea7c8 + 0x10) != '\0') {\n      if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n        return iVar1;\n      }\n      FUN_0034f750(param_2,"__rel_iplt_start",0,5,iVar1,0,0,0,0,0,1,2,0,0,1);\n      FUN_0034f750(param_2,"__rel_iplt_end",0,5,*param_1,0,0,0,0,0,1,2,0,1,1);\n      return *param_1;\n    }\n  }" { (if_statement "if ((*(int *)(*(int *)(iVar1 + 4) + 8) != 0x28) || (*(char *)(*(int *)(iVar1 + 4) + 4) == '\0'))\n    goto LAB_00112c2e;" if (parenthesized_expression "((*(int *)(*(int *)(iVar1 + 4) + 8) != 0x28) || (*(char *)(*(int *)(iVar1 + 4) + 4) == '\0'))" ( (binary_expression "(*(int *)(*(int *)(iVar1 + 4) + 8) != 0x28) || (*(char *)(*(int *)(iVar1 + 4) + 4) == '\0')" (parenthesized_expression "(*(int *)(*(int *)(iVar1 + 4) + 8) != 0x28)" ( (binary_expression "*(int *)(*(int *)(iVar1 + 4) + 8) != 0x28" (pointer_expression "*(int *)(*(int *)(iVar1 + 4) + 8)" * (cast_expression "(int *)(*(int *)(iVar1 + 4) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar1 + 4) + 8)" ( (binary_expression "*(int *)(iVar1 + 4) + 8" (pointer_expression "*(int *)(iVar1 + 4)" * (cast_expression "(int *)(iVar1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 4)" ( (binary_expression "iVar1 + 4" identifier + number_literal) )))) + number_literal) )))) != number_literal) )) || (parenthesized_expression "(*(char *)(*(int *)(iVar1 + 4) + 4) == '\0')" ( (binary_expression "*(char *)(*(int *)(iVar1 + 4) + 4) == '\0'" (pointer_expression "*(char *)(*(int *)(iVar1 + 4) + 4)" * (cast_expression "(char *)(*(int *)(iVar1 + 4) + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar1 + 4) + 4)" ( (binary_expression "*(int *)(iVar1 + 4) + 4" (pointer_expression "*(int *)(iVar1 + 4)" * (cast_expression "(int *)(iVar1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 4)" ( (binary_expression "iVar1 + 4" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_00112c2e;" goto statement_identifier ;)) (expression_statement "iVar1 = FUN_00110bd0();" (assignment_expression "iVar1 = FUN_00110bd0()" identifier = (call_expression "FUN_00110bd0()" identifier (argument_list "()" ( )))) ;) (expression_statement "*param_1 = iVar1;" (assignment_expression "*param_1 = iVar1" (pointer_expression "*param_1" * identifier) = identifier) ;) (if_statement "if (*(char *)(DAT_005ea7c8 + 0x10) != '\0') {\n      if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n        return iVar1;\n      }\n      FUN_0034f750(param_2,"__rel_iplt_start",0,5,iVar1,0,0,0,0,0,1,2,0,0,1);\n      FUN_0034f750(param_2,"__rel_iplt_end",0,5,*param_1,0,0,0,0,0,1,2,0,1,1);\n      return *param_1;\n    }" if (parenthesized_expression "(*(char *)(DAT_005ea7c8 + 0x10) != '\0')" ( (binary_expression "*(char *)(DAT_005ea7c8 + 0x10) != '\0'" (pointer_expression "*(char *)(DAT_005ea7c8 + 0x10)" * (cast_expression "(char *)(DAT_005ea7c8 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_005ea7c8 + 0x10)" ( (binary_expression "DAT_005ea7c8 + 0x10" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n        return iVar1;\n      }\n      FUN_0034f750(param_2,"__rel_iplt_start",0,5,iVar1,0,0,0,0,0,1,2,0,0,1);\n      FUN_0034f750(param_2,"__rel_iplt_end",0,5,*param_1,0,0,0,0,0,1,2,0,1,1);\n      return *param_1;\n    }" { (if_statement "if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n        return iVar1;\n      }" if (parenthesized_expression "(*(char *)(DAT_005ea7c8 + 0x11) == '\0')" ( (binary_expression "*(char *)(DAT_005ea7c8 + 0x11) == '\0'" (pointer_expression "*(char *)(DAT_005ea7c8 + 0x11)" * (cast_expression "(char *)(DAT_005ea7c8 + 0x11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_005ea7c8 + 0x11)" ( (binary_expression "DAT_005ea7c8 + 0x11" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        return iVar1;\n      }" { (return_statement "return iVar1;" return identifier ;) })) (expression_statement "FUN_0034f750(param_2,"__rel_iplt_start",0,5,iVar1,0,0,0,0,0,1,2,0,0,1);" (call_expression "FUN_0034f750(param_2,"__rel_iplt_start",0,5,iVar1,0,0,0,0,0,1,2,0,0,1)" identifier (argument_list "(param_2,"__rel_iplt_start",0,5,iVar1,0,0,0,0,0,1,2,0,0,1)" ( identifier , (string_literal ""__rel_iplt_start"" " string_content ") , number_literal , number_literal , identifier , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal ))) ;) (expression_statement "FUN_0034f750(param_2,"__rel_iplt_end",0,5,*param_1,0,0,0,0,0,1,2,0,1,1);" (call_expression "FUN_0034f750(param_2,"__rel_iplt_end",0,5,*param_1,0,0,0,0,0,1,2,0,1,1)" identifier (argument_list "(param_2,"__rel_iplt_end",0,5,*param_1,0,0,0,0,0,1,2,0,1,1)" ( identifier , (string_literal ""__rel_iplt_end"" " string_content ") , number_literal , number_literal , (pointer_expression "*param_1" * identifier) , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal ))) ;) (return_statement "return *param_1;" return (pointer_expression "*param_1" * identifier) ;) })) }))) (expression_statement "iVar1 = FUN_0010caf0();" (assignment_expression "iVar1 = FUN_0010caf0()" identifier = (call_expression "FUN_0010caf0()" identifier (argument_list "()" ( )))) ;) (labeled_statement "LAB_00112c2e:\n                    /* WARNING: Subroutine does not return */\n  FUN_002446e0("../../gold/arm.cc",0x988,"default_target",iVar1);" statement_identifier : comment (expression_statement "FUN_002446e0("../../gold/arm.cc",0x988,"default_target",iVar1);" (call_expression "FUN_002446e0("../../gold/arm.cc",0x988,"default_target",iVar1)" identifier (argument_list "("../../gold/arm.cc",0x988,"default_target",iVar1)" ( (string_literal ""../../gold/arm.cc"" " string_content ") , number_literal , (string_literal ""default_target"" " string_content ") , identifier ))) ;)) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* DWARF original prototype: Reloc_section * rel_irelative(Output_data_plt_arm<true> * this,\n   Symbol_table * symtab, Layout * layout) */\n\nReloc_section * __thiscall\nanon_unknown.dwarf_91258a::Output_data_plt_arm<true>::rel_irelative\n          (Output_data_plt_arm<true> *this,Symbol_table *symtab,Layout *layout)\n\n{\n}\n\n" comment comment comment (ERROR "Reloc_section * __thiscall\nanon_unknown.dwarf_91258a::Output_data_plt_arm<true>::rel_irelative\n          (Output_data_plt_arm<true> *this,Symbol_table *symtab,Layout *layout)" (binary_expression "Reloc_section * __thiscall\nanon_unknown.dwarf_91258a::Output_data_plt_arm<true>::rel_irelative\n          (Output_data_plt_arm<true> *this,Symbol_table *symtab,Layout *layout)" (binary_expression "Reloc_section * __thiscall\nanon_unknown.dwarf_91258a::Output_data_plt_arm<true" (binary_expression "Reloc_section * __thiscall\nanon_unknown.dwarf_91258a" identifier * (ERROR "__thiscall" identifier) (field_expression "anon_unknown.dwarf_91258a" identifier . field_identifier)) (ERROR "::Output_data_plt_arm" : : identifier) < true) > (ERROR "::" : :) (call_expression "rel_irelative\n          (Output_data_plt_arm<true> *this,Symbol_table *symtab,Layout *layout)" identifier (argument_list "(Output_data_plt_arm<true> *this,Symbol_table *symtab,Layout *layout)" ( (binary_expression "Output_data_plt_arm<true> *this" (binary_expression "Output_data_plt_arm<true" identifier < true) > (pointer_expression "*this" * identifier)) , (binary_expression "Symbol_table *symtab" identifier * identifier) , (binary_expression "Layout *layout" identifier * identifier) ))))) (compound_statement "{\n}" { }))
(translation_unit "int __regparm3 FUN_00112b50(int *param_1,undefined4 param_2)\n\n{\n  int iVar1;\n  \n  if (*param_1 != 0) {\n    return *param_1;\n  }\n  iVar1 = *(int *)(DAT_005ea7c8 + 0xc);\n  if (iVar1 == 0) {\n    FUN_0010d780();\n  }\n  else {\n    if ((*(int *)(*(int *)(iVar1 + 4) + 8) != 0x28) || (*(char *)(*(int *)(iVar1 + 4) + 4) == '\0'))\n    goto LAB_00112c2e;\n    iVar1 = FUN_00110bd0();\n    *param_1 = iVar1;\n    if (*(char *)(DAT_005ea7c8 + 0x10) != '\0') {\n      if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n        return iVar1;\n      }\n      FUN_0034f750(param_2,"__rel_iplt_start",0,5,iVar1,0,0,0,0,0,1,2,0,0,1);\n      FUN_0034f750(param_2,"__rel_iplt_end",0,5,*param_1,0,0,0,0,0,1,2,0,1,1);\n      return *param_1;\n    }\n  }\n  iVar1 = FUN_0010caf0();\nLAB_00112c2e:\n                    \n  FUN_002446e0("../../gold/arm.cc",0x988,"default_target",iVar1);\n}\n\n" (function_definition "int __regparm3 FUN_00112b50(int *param_1,undefined4 param_2)\n\n{\n  int iVar1;\n  \n  if (*param_1 != 0) {\n    return *param_1;\n  }\n  iVar1 = *(int *)(DAT_005ea7c8 + 0xc);\n  if (iVar1 == 0) {\n    FUN_0010d780();\n  }\n  else {\n    if ((*(int *)(*(int *)(iVar1 + 4) + 8) != 0x28) || (*(char *)(*(int *)(iVar1 + 4) + 4) == '\0'))\n    goto LAB_00112c2e;\n    iVar1 = FUN_00110bd0();\n    *param_1 = iVar1;\n    if (*(char *)(DAT_005ea7c8 + 0x10) != '\0') {\n      if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n        return iVar1;\n      }\n      FUN_0034f750(param_2,"__rel_iplt_start",0,5,iVar1,0,0,0,0,0,1,2,0,0,1);\n      FUN_0034f750(param_2,"__rel_iplt_end",0,5,*param_1,0,0,0,0,0,1,2,0,1,1);\n      return *param_1;\n    }\n  }\n  iVar1 = FUN_0010caf0();\nLAB_00112c2e:\n                    \n  FUN_002446e0("../../gold/arm.cc",0x988,"default_target",iVar1);\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00112b50(int *param_1,undefined4 param_2)" identifier (parameter_list "(int *param_1,undefined4 param_2)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  \n  if (*param_1 != 0) {\n    return *param_1;\n  }\n  iVar1 = *(int *)(DAT_005ea7c8 + 0xc);\n  if (iVar1 == 0) {\n    FUN_0010d780();\n  }\n  else {\n    if ((*(int *)(*(int *)(iVar1 + 4) + 8) != 0x28) || (*(char *)(*(int *)(iVar1 + 4) + 4) == '\0'))\n    goto LAB_00112c2e;\n    iVar1 = FUN_00110bd0();\n    *param_1 = iVar1;\n    if (*(char *)(DAT_005ea7c8 + 0x10) != '\0') {\n      if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n        return iVar1;\n      }\n      FUN_0034f750(param_2,"__rel_iplt_start",0,5,iVar1,0,0,0,0,0,1,2,0,0,1);\n      FUN_0034f750(param_2,"__rel_iplt_end",0,5,*param_1,0,0,0,0,0,1,2,0,1,1);\n      return *param_1;\n    }\n  }\n  iVar1 = FUN_0010caf0();\nLAB_00112c2e:\n                    \n  FUN_002446e0("../../gold/arm.cc",0x988,"default_target",iVar1);\n}" { (declaration "int iVar1;" primitive_type identifier ;) (if_statement "if (*param_1 != 0) {\n    return *param_1;\n  }" if (parenthesized_expression "(*param_1 != 0)" ( (binary_expression "*param_1 != 0" (pointer_expression "*param_1" * identifier) != number_literal) )) (compound_statement "{\n    return *param_1;\n  }" { (return_statement "return *param_1;" return (pointer_expression "*param_1" * identifier) ;) })) (expression_statement "iVar1 = *(int *)(DAT_005ea7c8 + 0xc);" (assignment_expression "iVar1 = *(int *)(DAT_005ea7c8 + 0xc)" identifier = (pointer_expression "*(int *)(DAT_005ea7c8 + 0xc)" * (cast_expression "(int *)(DAT_005ea7c8 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_005ea7c8 + 0xc)" ( (binary_expression "DAT_005ea7c8 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (iVar1 == 0) {\n    FUN_0010d780();\n  }\n  else {\n    if ((*(int *)(*(int *)(iVar1 + 4) + 8) != 0x28) || (*(char *)(*(int *)(iVar1 + 4) + 4) == '\0'))\n    goto LAB_00112c2e;\n    iVar1 = FUN_00110bd0();\n    *param_1 = iVar1;\n    if (*(char *)(DAT_005ea7c8 + 0x10) != '\0') {\n      if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n        return iVar1;\n      }\n      FUN_0034f750(param_2,"__rel_iplt_start",0,5,iVar1,0,0,0,0,0,1,2,0,0,1);\n      FUN_0034f750(param_2,"__rel_iplt_end",0,5,*param_1,0,0,0,0,0,1,2,0,1,1);\n      return *param_1;\n    }\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    FUN_0010d780();\n  }" { (expression_statement "FUN_0010d780();" (call_expression "FUN_0010d780()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n    if ((*(int *)(*(int *)(iVar1 + 4) + 8) != 0x28) || (*(char *)(*(int *)(iVar1 + 4) + 4) == '\0'))\n    goto LAB_00112c2e;\n    iVar1 = FUN_00110bd0();\n    *param_1 = iVar1;\n    if (*(char *)(DAT_005ea7c8 + 0x10) != '\0') {\n      if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n        return iVar1;\n      }\n      FUN_0034f750(param_2,"__rel_iplt_start",0,5,iVar1,0,0,0,0,0,1,2,0,0,1);\n      FUN_0034f750(param_2,"__rel_iplt_end",0,5,*param_1,0,0,0,0,0,1,2,0,1,1);\n      return *param_1;\n    }\n  }" else (compound_statement "{\n    if ((*(int *)(*(int *)(iVar1 + 4) + 8) != 0x28) || (*(char *)(*(int *)(iVar1 + 4) + 4) == '\0'))\n    goto LAB_00112c2e;\n    iVar1 = FUN_00110bd0();\n    *param_1 = iVar1;\n    if (*(char *)(DAT_005ea7c8 + 0x10) != '\0') {\n      if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n        return iVar1;\n      }\n      FUN_0034f750(param_2,"__rel_iplt_start",0,5,iVar1,0,0,0,0,0,1,2,0,0,1);\n      FUN_0034f750(param_2,"__rel_iplt_end",0,5,*param_1,0,0,0,0,0,1,2,0,1,1);\n      return *param_1;\n    }\n  }" { (if_statement "if ((*(int *)(*(int *)(iVar1 + 4) + 8) != 0x28) || (*(char *)(*(int *)(iVar1 + 4) + 4) == '\0'))\n    goto LAB_00112c2e;" if (parenthesized_expression "((*(int *)(*(int *)(iVar1 + 4) + 8) != 0x28) || (*(char *)(*(int *)(iVar1 + 4) + 4) == '\0'))" ( (binary_expression "(*(int *)(*(int *)(iVar1 + 4) + 8) != 0x28) || (*(char *)(*(int *)(iVar1 + 4) + 4) == '\0')" (parenthesized_expression "(*(int *)(*(int *)(iVar1 + 4) + 8) != 0x28)" ( (binary_expression "*(int *)(*(int *)(iVar1 + 4) + 8) != 0x28" (pointer_expression "*(int *)(*(int *)(iVar1 + 4) + 8)" * (cast_expression "(int *)(*(int *)(iVar1 + 4) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar1 + 4) + 8)" ( (binary_expression "*(int *)(iVar1 + 4) + 8" (pointer_expression "*(int *)(iVar1 + 4)" * (cast_expression "(int *)(iVar1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 4)" ( (binary_expression "iVar1 + 4" identifier + number_literal) )))) + number_literal) )))) != number_literal) )) || (parenthesized_expression "(*(char *)(*(int *)(iVar1 + 4) + 4) == '\0')" ( (binary_expression "*(char *)(*(int *)(iVar1 + 4) + 4) == '\0'" (pointer_expression "*(char *)(*(int *)(iVar1 + 4) + 4)" * (cast_expression "(char *)(*(int *)(iVar1 + 4) + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar1 + 4) + 4)" ( (binary_expression "*(int *)(iVar1 + 4) + 4" (pointer_expression "*(int *)(iVar1 + 4)" * (cast_expression "(int *)(iVar1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 4)" ( (binary_expression "iVar1 + 4" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_00112c2e;" goto statement_identifier ;)) (expression_statement "iVar1 = FUN_00110bd0();" (assignment_expression "iVar1 = FUN_00110bd0()" identifier = (call_expression "FUN_00110bd0()" identifier (argument_list "()" ( )))) ;) (expression_statement "*param_1 = iVar1;" (assignment_expression "*param_1 = iVar1" (pointer_expression "*param_1" * identifier) = identifier) ;) (if_statement "if (*(char *)(DAT_005ea7c8 + 0x10) != '\0') {\n      if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n        return iVar1;\n      }\n      FUN_0034f750(param_2,"__rel_iplt_start",0,5,iVar1,0,0,0,0,0,1,2,0,0,1);\n      FUN_0034f750(param_2,"__rel_iplt_end",0,5,*param_1,0,0,0,0,0,1,2,0,1,1);\n      return *param_1;\n    }" if (parenthesized_expression "(*(char *)(DAT_005ea7c8 + 0x10) != '\0')" ( (binary_expression "*(char *)(DAT_005ea7c8 + 0x10) != '\0'" (pointer_expression "*(char *)(DAT_005ea7c8 + 0x10)" * (cast_expression "(char *)(DAT_005ea7c8 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_005ea7c8 + 0x10)" ( (binary_expression "DAT_005ea7c8 + 0x10" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n        return iVar1;\n      }\n      FUN_0034f750(param_2,"__rel_iplt_start",0,5,iVar1,0,0,0,0,0,1,2,0,0,1);\n      FUN_0034f750(param_2,"__rel_iplt_end",0,5,*param_1,0,0,0,0,0,1,2,0,1,1);\n      return *param_1;\n    }" { (if_statement "if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n        return iVar1;\n      }" if (parenthesized_expression "(*(char *)(DAT_005ea7c8 + 0x11) == '\0')" ( (binary_expression "*(char *)(DAT_005ea7c8 + 0x11) == '\0'" (pointer_expression "*(char *)(DAT_005ea7c8 + 0x11)" * (cast_expression "(char *)(DAT_005ea7c8 + 0x11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_005ea7c8 + 0x11)" ( (binary_expression "DAT_005ea7c8 + 0x11" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        return iVar1;\n      }" { (return_statement "return iVar1;" return identifier ;) })) (expression_statement "FUN_0034f750(param_2,"__rel_iplt_start",0,5,iVar1,0,0,0,0,0,1,2,0,0,1);" (call_expression "FUN_0034f750(param_2,"__rel_iplt_start",0,5,iVar1,0,0,0,0,0,1,2,0,0,1)" identifier (argument_list "(param_2,"__rel_iplt_start",0,5,iVar1,0,0,0,0,0,1,2,0,0,1)" ( identifier , (string_literal ""__rel_iplt_start"" " string_content ") , number_literal , number_literal , identifier , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal ))) ;) (expression_statement "FUN_0034f750(param_2,"__rel_iplt_end",0,5,*param_1,0,0,0,0,0,1,2,0,1,1);" (call_expression "FUN_0034f750(param_2,"__rel_iplt_end",0,5,*param_1,0,0,0,0,0,1,2,0,1,1)" identifier (argument_list "(param_2,"__rel_iplt_end",0,5,*param_1,0,0,0,0,0,1,2,0,1,1)" ( identifier , (string_literal ""__rel_iplt_end"" " string_content ") , number_literal , number_literal , (pointer_expression "*param_1" * identifier) , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal ))) ;) (return_statement "return *param_1;" return (pointer_expression "*param_1" * identifier) ;) })) }))) (expression_statement "iVar1 = FUN_0010caf0();" (assignment_expression "iVar1 = FUN_0010caf0()" identifier = (call_expression "FUN_0010caf0()" identifier (argument_list "()" ( )))) ;) (labeled_statement "LAB_00112c2e:\n                    \n  FUN_002446e0("../../gold/arm.cc",0x988,"default_target",iVar1);" statement_identifier : (expression_statement "FUN_002446e0("../../gold/arm.cc",0x988,"default_target",iVar1);" (call_expression "FUN_002446e0("../../gold/arm.cc",0x988,"default_target",iVar1)" identifier (argument_list "("../../gold/arm.cc",0x988,"default_target",iVar1)" ( (string_literal ""../../gold/arm.cc"" " string_content ") , number_literal , (string_literal ""default_target"" " string_content ") , identifier ))) ;)) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (return_statement return (pointer_expression * IDENT) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) != LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == (char_literal ' escape_sequence ')) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , LIT , LIT , IDENT , LIT , LIT , LIT , LIT , LIT , LIT , LIT , LIT , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , LIT , LIT , (pointer_expression * IDENT) , LIT , LIT , LIT , LIT , LIT , LIT , LIT , LIT , LIT , LIT ))) ;) (return_statement return (pointer_expression * IDENT) ;) })) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;)) })))
(function_definition "int __regparm3 FUN_00112b50(int *param_1,undefined4 param_2)\n\n{\n  int iVar1;\n  \n  if (*param_1 != 0) {\n    return *param_1;\n  }\n  iVar1 = *(int *)(DAT_005ea7c8 + 0xc);\n  if (iVar1 == 0) {\n    FUN_0010d780();\n  }\n  else {\n    if ((*(int *)(*(int *)(iVar1 + 4) + 8) != 0x28) || (*(char *)(*(int *)(iVar1 + 4) + 4) == '\0'))\n    goto LAB_00112c2e;\n    iVar1 = FUN_00110bd0();\n    *param_1 = iVar1;\n    if (*(char *)(DAT_005ea7c8 + 0x10) != '\0') {\n      if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n        return iVar1;\n      }\n      FUN_0034f750(param_2,"__rel_iplt_start",0,5,iVar1,0,0,0,0,0,1,2,0,0,1);\n      FUN_0034f750(param_2,"__rel_iplt_end",0,5,*param_1,0,0,0,0,0,1,2,0,1,1);\n      return *param_1;\n    }\n  }\n  iVar1 = FUN_0010caf0();\nLAB_00112c2e:\n                    \n  FUN_002446e0("../../gold/arm.cc",0x988,"default_target",iVar1);\n}" (primitive_type "int") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_00112b50(int *param_1,undefined4 param_2)" (identifier "FUN_00112b50") (parameter_list "(int *param_1,undefined4 param_2)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) () ")"))) (compound_statement "{\n  int iVar1;\n  \n  if (*param_1 != 0) {\n    return *param_1;\n  }\n  iVar1 = *(int *)(DAT_005ea7c8 + 0xc);\n  if (iVar1 == 0) {\n    FUN_0010d780();\n  }\n  else {\n    if ((*(int *)(*(int *)(iVar1 + 4) + 8) != 0x28) || (*(char *)(*(int *)(iVar1 + 4) + 4) == '\0'))\n    goto LAB_00112c2e;\n    iVar1 = FUN_00110bd0();\n    *param_1 = iVar1;\n    if (*(char *)(DAT_005ea7c8 + 0x10) != '\0') {\n      if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n        return iVar1;\n      }\n      FUN_0034f750(param_2,"__rel_iplt_start",0,5,iVar1,0,0,0,0,0,1,2,0,0,1);\n      FUN_0034f750(param_2,"__rel_iplt_end",0,5,*param_1,0,0,0,0,0,1,2,0,1,1);\n      return *param_1;\n    }\n  }\n  iVar1 = FUN_0010caf0();\nLAB_00112c2e:\n                    \n  FUN_002446e0("../../gold/arm.cc",0x988,"default_target",iVar1);\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (if_statement "if (*param_1 != 0) {\n    return *param_1;\n  }" (if "if") (parenthesized_expression "(*param_1 != 0)" (( "(") (binary_expression "*param_1 != 0" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    return *param_1;\n  }" ({ "{") (return_statement "return *param_1;" (return "return") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (; ";")) (} "}"))) (expression_statement "iVar1 = *(int *)(DAT_005ea7c8 + 0xc);" (assignment_expression "iVar1 = *(int *)(DAT_005ea7c8 + 0xc)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(DAT_005ea7c8 + 0xc)" (* "*") (cast_expression "(int *)(DAT_005ea7c8 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_005ea7c8 + 0xc)" (( "(") (binary_expression "DAT_005ea7c8 + 0xc" (identifier "DAT_005ea7c8") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (iVar1 == 0) {\n    FUN_0010d780();\n  }\n  else {\n    if ((*(int *)(*(int *)(iVar1 + 4) + 8) != 0x28) || (*(char *)(*(int *)(iVar1 + 4) + 4) == '\0'))\n    goto LAB_00112c2e;\n    iVar1 = FUN_00110bd0();\n    *param_1 = iVar1;\n    if (*(char *)(DAT_005ea7c8 + 0x10) != '\0') {\n      if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n        return iVar1;\n      }\n      FUN_0034f750(param_2,"__rel_iplt_start",0,5,iVar1,0,0,0,0,0,1,2,0,0,1);\n      FUN_0034f750(param_2,"__rel_iplt_end",0,5,*param_1,0,0,0,0,0,1,2,0,1,1);\n      return *param_1;\n    }\n  }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_0010d780();\n  }" ({ "{") (expression_statement "FUN_0010d780();" (call_expression "FUN_0010d780()" (identifier "FUN_0010d780") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n    if ((*(int *)(*(int *)(iVar1 + 4) + 8) != 0x28) || (*(char *)(*(int *)(iVar1 + 4) + 4) == '\0'))\n    goto LAB_00112c2e;\n    iVar1 = FUN_00110bd0();\n    *param_1 = iVar1;\n    if (*(char *)(DAT_005ea7c8 + 0x10) != '\0') {\n      if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n        return iVar1;\n      }\n      FUN_0034f750(param_2,"__rel_iplt_start",0,5,iVar1,0,0,0,0,0,1,2,0,0,1);\n      FUN_0034f750(param_2,"__rel_iplt_end",0,5,*param_1,0,0,0,0,0,1,2,0,1,1);\n      return *param_1;\n    }\n  }" (else "else") (compound_statement "{\n    if ((*(int *)(*(int *)(iVar1 + 4) + 8) != 0x28) || (*(char *)(*(int *)(iVar1 + 4) + 4) == '\0'))\n    goto LAB_00112c2e;\n    iVar1 = FUN_00110bd0();\n    *param_1 = iVar1;\n    if (*(char *)(DAT_005ea7c8 + 0x10) != '\0') {\n      if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n        return iVar1;\n      }\n      FUN_0034f750(param_2,"__rel_iplt_start",0,5,iVar1,0,0,0,0,0,1,2,0,0,1);\n      FUN_0034f750(param_2,"__rel_iplt_end",0,5,*param_1,0,0,0,0,0,1,2,0,1,1);\n      return *param_1;\n    }\n  }" ({ "{") (if_statement "if ((*(int *)(*(int *)(iVar1 + 4) + 8) != 0x28) || (*(char *)(*(int *)(iVar1 + 4) + 4) == '\0'))\n    goto LAB_00112c2e;" (if "if") (parenthesized_expression "((*(int *)(*(int *)(iVar1 + 4) + 8) != 0x28) || (*(char *)(*(int *)(iVar1 + 4) + 4) == '\0'))" (( "(") (binary_expression "(*(int *)(*(int *)(iVar1 + 4) + 8) != 0x28) || (*(char *)(*(int *)(iVar1 + 4) + 4) == '\0')" (parenthesized_expression "(*(int *)(*(int *)(iVar1 + 4) + 8) != 0x28)" (( "(") (binary_expression "*(int *)(*(int *)(iVar1 + 4) + 8) != 0x28" (pointer_expression "*(int *)(*(int *)(iVar1 + 4) + 8)" (* "*") (cast_expression "(int *)(*(int *)(iVar1 + 4) + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar1 + 4) + 8)" (( "(") (binary_expression "*(int *)(iVar1 + 4) + 8" (pointer_expression "*(int *)(iVar1 + 4)" (* "*") (cast_expression "(int *)(iVar1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 4)" (( "(") (binary_expression "iVar1 + 4" (identifier "iVar1") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (!= "!=") (number_literal "0x28")) () ")")) (|| "||") (parenthesized_expression "(*(char *)(*(int *)(iVar1 + 4) + 4) == '\0')" (( "(") (binary_expression "*(char *)(*(int *)(iVar1 + 4) + 4) == '\0'" (pointer_expression "*(char *)(*(int *)(iVar1 + 4) + 4)" (* "*") (cast_expression "(char *)(*(int *)(iVar1 + 4) + 4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar1 + 4) + 4)" (( "(") (binary_expression "*(int *)(iVar1 + 4) + 4" (pointer_expression "*(int *)(iVar1 + 4)" (* "*") (cast_expression "(int *)(iVar1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 4)" (( "(") (binary_expression "iVar1 + 4" (identifier "iVar1") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (goto_statement "goto LAB_00112c2e;" (goto "goto") (statement_identifier "LAB_00112c2e") (; ";"))) (expression_statement "iVar1 = FUN_00110bd0();" (assignment_expression "iVar1 = FUN_00110bd0()" (identifier "iVar1") (= "=") (call_expression "FUN_00110bd0()" (identifier "FUN_00110bd0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*param_1 = iVar1;" (assignment_expression "*param_1 = iVar1" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "iVar1")) (; ";")) (if_statement "if (*(char *)(DAT_005ea7c8 + 0x10) != '\0') {\n      if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n        return iVar1;\n      }\n      FUN_0034f750(param_2,"__rel_iplt_start",0,5,iVar1,0,0,0,0,0,1,2,0,0,1);\n      FUN_0034f750(param_2,"__rel_iplt_end",0,5,*param_1,0,0,0,0,0,1,2,0,1,1);\n      return *param_1;\n    }" (if "if") (parenthesized_expression "(*(char *)(DAT_005ea7c8 + 0x10) != '\0')" (( "(") (binary_expression "*(char *)(DAT_005ea7c8 + 0x10) != '\0'" (pointer_expression "*(char *)(DAT_005ea7c8 + 0x10)" (* "*") (cast_expression "(char *)(DAT_005ea7c8 + 0x10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_005ea7c8 + 0x10)" (( "(") (binary_expression "DAT_005ea7c8 + 0x10" (identifier "DAT_005ea7c8") (+ "+") (number_literal "0x10")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n        return iVar1;\n      }\n      FUN_0034f750(param_2,"__rel_iplt_start",0,5,iVar1,0,0,0,0,0,1,2,0,0,1);\n      FUN_0034f750(param_2,"__rel_iplt_end",0,5,*param_1,0,0,0,0,0,1,2,0,1,1);\n      return *param_1;\n    }" ({ "{") (if_statement "if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n        return iVar1;\n      }" (if "if") (parenthesized_expression "(*(char *)(DAT_005ea7c8 + 0x11) == '\0')" (( "(") (binary_expression "*(char *)(DAT_005ea7c8 + 0x11) == '\0'" (pointer_expression "*(char *)(DAT_005ea7c8 + 0x11)" (* "*") (cast_expression "(char *)(DAT_005ea7c8 + 0x11)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_005ea7c8 + 0x11)" (( "(") (binary_expression "DAT_005ea7c8 + 0x11" (identifier "DAT_005ea7c8") (+ "+") (number_literal "0x11")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        return iVar1;\n      }" ({ "{") (return_statement "return iVar1;" (return "return") (identifier "iVar1") (; ";")) (} "}"))) (expression_statement "FUN_0034f750(param_2,"__rel_iplt_start",0,5,iVar1,0,0,0,0,0,1,2,0,0,1);" (call_expression "FUN_0034f750(param_2,"__rel_iplt_start",0,5,iVar1,0,0,0,0,0,1,2,0,0,1)" (identifier "FUN_0034f750") (argument_list "(param_2,"__rel_iplt_start",0,5,iVar1,0,0,0,0,0,1,2,0,0,1)" (( "(") (identifier "param_2") (, ",") (string_literal ""__rel_iplt_start"" (" """) (string_content "__rel_iplt_start") (" """)) (, ",") (number_literal "0") (, ",") (number_literal "5") (, ",") (identifier "iVar1") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "1") (, ",") (number_literal "2") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "FUN_0034f750(param_2,"__rel_iplt_end",0,5,*param_1,0,0,0,0,0,1,2,0,1,1);" (call_expression "FUN_0034f750(param_2,"__rel_iplt_end",0,5,*param_1,0,0,0,0,0,1,2,0,1,1)" (identifier "FUN_0034f750") (argument_list "(param_2,"__rel_iplt_end",0,5,*param_1,0,0,0,0,0,1,2,0,1,1)" (( "(") (identifier "param_2") (, ",") (string_literal ""__rel_iplt_end"" (" """) (string_content "__rel_iplt_end") (" """)) (, ",") (number_literal "0") (, ",") (number_literal "5") (, ",") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "1") (, ",") (number_literal "2") (, ",") (number_literal "0") (, ",") (number_literal "1") (, ",") (number_literal "1") () ")"))) (; ";")) (return_statement "return *param_1;" (return "return") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (; ";")) (} "}"))) (} "}")))) (expression_statement "iVar1 = FUN_0010caf0();" (assignment_expression "iVar1 = FUN_0010caf0()" (identifier "iVar1") (= "=") (call_expression "FUN_0010caf0()" (identifier "FUN_0010caf0") (argument_list "()" (( "(") () ")")))) (; ";")) (labeled_statement "LAB_00112c2e:\n                    \n  FUN_002446e0("../../gold/arm.cc",0x988,"default_target",iVar1);" (statement_identifier "LAB_00112c2e") (: ":") (expression_statement "FUN_002446e0("../../gold/arm.cc",0x988,"default_target",iVar1);" (call_expression "FUN_002446e0("../../gold/arm.cc",0x988,"default_target",iVar1)" (identifier "FUN_002446e0") (argument_list "("../../gold/arm.cc",0x988,"default_target",iVar1)" (( "(") (string_literal ""../../gold/arm.cc"" (" """) (string_content "../../gold/arm.cc") (" """)) (, ",") (number_literal "0x988") (, ",") (string_literal ""default_target"" (" """) (string_content "default_target") (" """)) (, ",") (identifier "iVar1") () ")"))) (; ";"))) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: Reloc_section * rel_irelative(Output_data_plt_arm<true> * this,
   Symbol_table * symtab, Layout * layout) */

Reloc_section * __thiscall
anon_unknown.dwarf_91258a::Output_data_plt_arm<true>::rel_irelative
          (Output_data_plt_arm<true> *this,Symbol_table *symtab,Layout *layout)

{
}


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

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

int __regparm3 MASKED(int *param_1,undefined4 param_2)

{
  int iVar1;
  
  if (*param_1 != 0) {
    return *param_1;
  }
  iVar1 = *(int *)(DAT_005ea7c8 + 0xc);
  if (iVar1 == 0) {
    FUN_0010d780();
  }
  else {
    if ((*(int *)(*(int *)(iVar1 + 4) + 8) != 0x28) || (*(char *)(*(int *)(iVar1 + 4) + 4) == '\0'))
    goto LAB_00112c2e;
    iVar1 = FUN_00110bd0();
    *param_1 = iVar1;
    if (*(char *)(DAT_005ea7c8 + 0x10) != '\0') {
      if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {
        return iVar1;
      }
      FUN_0034f750(param_2,"__rel_iplt_start",0,5,iVar1,0,0,0,0,0,1,2,0,0,1);
      FUN_0034f750(param_2,"__rel_iplt_end",0,5,*param_1,0,0,0,0,0,1,2,0,1,1);
      return *param_1;
    }
  }
  iVar1 = FUN_0010caf0();
LAB_00112c2e:
                    /* WARNING: Subroutine does not return */
  FUN_002446e0("../../gold/arm.cc",0x988,"default_target",iVar1);
}

