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

bfd_reloc_code_real_type __regparm3
ia64_gen_real_reloc_type(symbol *sym,bfd_reloc_code_real_type r_type)

{
  bfd_reloc_code_real_type bVar1;
  int iVar2;
  valueT vVar3;
  
  vVar3 = S_GET_VALUE(sym);
  iVar2 = (int)(vVar3 >> 0x20);
  if (iVar2 == 0 && (uint)(0x10 < (uint)vVar3) <= (uint)-iVar2) {
                    /* WARNING: Could not recover jumptable at 0x0004b87a. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    bVar1 = (*(code *)(*(int *)(&DAT_00060d4c + (uint)vVar3 * 4) + 0x7e000))();
    return bVar1;
  }
                    /* WARNING: Subroutine does not return */
  as_abort("../../gas/config/tc-ia64.c",0x2c37,"ia64_gen_real_reloc_type");
}



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

void __regparm3 FUN_0004b840(undefined4 param_1)

{
  int iVar1;
  undefined8 uVar2;
  
  uVar2 = FUN_000375e0(param_1);
  iVar1 = (int)((ulonglong)uVar2 >> 0x20);
  if (iVar1 == 0 && (uint)(0x10 < (uint)uVar2) <= (uint)-iVar1) {
                    /* WARNING: Could not recover jumptable at 0x0004b87a. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (*(code *)(*(int *)(&DAT_00060d4c + (uint)uVar2 * 4) + 0x7e000))();
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_00029670("../../gas/config/tc-ia64.c",0x2c37,"ia64_gen_real_reloc_type",iVar1);
}


PUSH EBP
PUSH EDI
PUSH ESI
MOV ESI,EDX
PUSH EBX
CALL 0x00016030
ADD EBX,0x327b5
SUB ESP,0x28
PUSH EAX
CALL 0x000375e0
MOV ECX,0x10
ADD ESP,0x10
CMP ECX,EAX
MOV ECX,0x0
SBB ECX,EDX
JC 0x0004bf70
MOV EDI,dword ptr [EBX + EAX*0x4 + 0xfffe2d4c]
ADD EDI,EBX
JMP EDI
LEA EAX,[EBX + 0xfffe3410]
PUSH EDX
PUSH EAX
LEA EAX,[EBX + 0xfffe5447]
PUSH 0x2c37
PUSH EAX
CALL 0x00029670
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid __regparm3 FUN_0004b840(undefined4 param_1)\n\n{\n  int iVar1;\n  undefined8 uVar2;\n  \n  uVar2 = FUN_000375e0(param_1);\n  iVar1 = (int)((ulonglong)uVar2 >> 0x20);\n  if (iVar1 == 0 && (uint)(0x10 < (uint)uVar2) <= (uint)-iVar1) {\n                    /* WARNING: Could not recover jumptable at 0x0004b87a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (*(code *)(*(int *)(&DAT_00060d4c + (uint)uVar2 * 4) + 0x7e000))();\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00029670("../../gas/config/tc-ia64.c",0x2c37,"ia64_gen_real_reloc_type",iVar1);\n}\n\n" comment (function_definition "void __regparm3 FUN_0004b840(undefined4 param_1)\n\n{\n  int iVar1;\n  undefined8 uVar2;\n  \n  uVar2 = FUN_000375e0(param_1);\n  iVar1 = (int)((ulonglong)uVar2 >> 0x20);\n  if (iVar1 == 0 && (uint)(0x10 < (uint)uVar2) <= (uint)-iVar1) {\n                    /* WARNING: Could not recover jumptable at 0x0004b87a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (*(code *)(*(int *)(&DAT_00060d4c + (uint)uVar2 * 4) + 0x7e000))();\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00029670("../../gas/config/tc-ia64.c",0x2c37,"ia64_gen_real_reloc_type",iVar1);\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_0004b840(undefined4 param_1)" identifier (parameter_list "(undefined4 param_1)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined8 uVar2;\n  \n  uVar2 = FUN_000375e0(param_1);\n  iVar1 = (int)((ulonglong)uVar2 >> 0x20);\n  if (iVar1 == 0 && (uint)(0x10 < (uint)uVar2) <= (uint)-iVar1) {\n                    /* WARNING: Could not recover jumptable at 0x0004b87a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (*(code *)(*(int *)(&DAT_00060d4c + (uint)uVar2 * 4) + 0x7e000))();\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00029670("../../gas/config/tc-ia64.c",0x2c37,"ia64_gen_real_reloc_type",iVar1);\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (expression_statement "uVar2 = FUN_000375e0(param_1);" (assignment_expression "uVar2 = FUN_000375e0(param_1)" identifier = (call_expression "FUN_000375e0(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "iVar1 = (int)((ulonglong)uVar2 >> 0x20);" (assignment_expression "iVar1 = (int)((ulonglong)uVar2 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)uVar2 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar2 >> 0x20)" ( (binary_expression "(ulonglong)uVar2 >> 0x20" (cast_expression "(ulonglong)uVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (iVar1 == 0 && (uint)(0x10 < (uint)uVar2) <= (uint)-iVar1) {\n                    /* WARNING: Could not recover jumptable at 0x0004b87a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (*(code *)(*(int *)(&DAT_00060d4c + (uint)uVar2 * 4) + 0x7e000))();\n    return;\n  }" if (parenthesized_expression "(iVar1 == 0 && (uint)(0x10 < (uint)uVar2) <= (uint)-iVar1)" ( (binary_expression "iVar1 == 0 && (uint)(0x10 < (uint)uVar2) <= (uint)-iVar1" (binary_expression "iVar1 == 0" identifier == number_literal) && (binary_expression "(uint)(0x10 < (uint)uVar2) <= (uint)-iVar1" (call_expression "(uint)(0x10 < (uint)uVar2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0x10 < (uint)uVar2)" ( (binary_expression "0x10 < (uint)uVar2" number_literal < (cast_expression "(uint)uVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) <= (binary_expression "(uint)-iVar1" (parenthesized_expression "(uint)" ( identifier )) - identifier))) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0004b87a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (*(code *)(*(int *)(&DAT_00060d4c + (uint)uVar2 * 4) + 0x7e000))();\n    return;\n  }" { comment comment (expression_statement "(*(code *)(*(int *)(&DAT_00060d4c + (uint)uVar2 * 4) + 0x7e000))();" (call_expression "(*(code *)(*(int *)(&DAT_00060d4c + (uint)uVar2 * 4) + 0x7e000))()" (parenthesized_expression "(*(code *)(*(int *)(&DAT_00060d4c + (uint)uVar2 * 4) + 0x7e000))" ( (pointer_expression "*(code *)(*(int *)(&DAT_00060d4c + (uint)uVar2 * 4) + 0x7e000)" * (cast_expression "(code *)(*(int *)(&DAT_00060d4c + (uint)uVar2 * 4) + 0x7e000)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(&DAT_00060d4c + (uint)uVar2 * 4) + 0x7e000)" ( (binary_expression "*(int *)(&DAT_00060d4c + (uint)uVar2 * 4) + 0x7e000" (pointer_expression "*(int *)(&DAT_00060d4c + (uint)uVar2 * 4)" * (cast_expression "(int *)(&DAT_00060d4c + (uint)uVar2 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00060d4c + (uint)uVar2 * 4)" ( (binary_expression "&DAT_00060d4c + (uint)uVar2 * 4" (pointer_expression "&DAT_00060d4c" & identifier) + (binary_expression "(uint)uVar2 * 4" (cast_expression "(uint)uVar2" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) )))) + number_literal) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) comment (expression_statement "FUN_00029670("../../gas/config/tc-ia64.c",0x2c37,"ia64_gen_real_reloc_type",iVar1);" (call_expression "FUN_00029670("../../gas/config/tc-ia64.c",0x2c37,"ia64_gen_real_reloc_type",iVar1)" identifier (argument_list "("../../gas/config/tc-ia64.c",0x2c37,"ia64_gen_real_reloc_type",iVar1)" ( (string_literal ""../../gas/config/tc-ia64.c"" " string_content ") , number_literal , (string_literal ""ia64_gen_real_reloc_type"" " string_content ") , identifier ))) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nbfd_reloc_code_real_type __regparm3\nia64_gen_real_reloc_type(symbol *sym,bfd_reloc_code_real_type r_type)\n\n{\n  bfd_reloc_code_real_type bVar1;\n  int iVar2;\n  valueT vVar3;\n  \n  vVar3 = S_GET_VALUE(sym);\n  iVar2 = (int)(vVar3 >> 0x20);\n  if (iVar2 == 0 && (uint)(0x10 < (uint)vVar3) <= (uint)-iVar2) {\n                    /* WARNING: Could not recover jumptable at 0x0004b87a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    bVar1 = (*(code *)(*(int *)(&DAT_00060d4c + (uint)vVar3 * 4) + 0x7e000))();\n    return bVar1;\n  }\n                    /* WARNING: Subroutine does not return */\n  as_abort("../../gas/config/tc-ia64.c",0x2c37,"ia64_gen_real_reloc_type");\n}\n\n" comment (function_definition "bfd_reloc_code_real_type __regparm3\nia64_gen_real_reloc_type(symbol *sym,bfd_reloc_code_real_type r_type)\n\n{\n  bfd_reloc_code_real_type bVar1;\n  int iVar2;\n  valueT vVar3;\n  \n  vVar3 = S_GET_VALUE(sym);\n  iVar2 = (int)(vVar3 >> 0x20);\n  if (iVar2 == 0 && (uint)(0x10 < (uint)vVar3) <= (uint)-iVar2) {\n                    /* WARNING: Could not recover jumptable at 0x0004b87a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    bVar1 = (*(code *)(*(int *)(&DAT_00060d4c + (uint)vVar3 * 4) + 0x7e000))();\n    return bVar1;\n  }\n                    /* WARNING: Subroutine does not return */\n  as_abort("../../gas/config/tc-ia64.c",0x2c37,"ia64_gen_real_reloc_type");\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "ia64_gen_real_reloc_type(symbol *sym,bfd_reloc_code_real_type r_type)" identifier (parameter_list "(symbol *sym,bfd_reloc_code_real_type r_type)" ( (parameter_declaration "symbol *sym" type_identifier (pointer_declarator "*sym" * identifier)) , (parameter_declaration "bfd_reloc_code_real_type r_type" type_identifier identifier) ))) (compound_statement "{\n  bfd_reloc_code_real_type bVar1;\n  int iVar2;\n  valueT vVar3;\n  \n  vVar3 = S_GET_VALUE(sym);\n  iVar2 = (int)(vVar3 >> 0x20);\n  if (iVar2 == 0 && (uint)(0x10 < (uint)vVar3) <= (uint)-iVar2) {\n                    /* WARNING: Could not recover jumptable at 0x0004b87a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    bVar1 = (*(code *)(*(int *)(&DAT_00060d4c + (uint)vVar3 * 4) + 0x7e000))();\n    return bVar1;\n  }\n                    /* WARNING: Subroutine does not return */\n  as_abort("../../gas/config/tc-ia64.c",0x2c37,"ia64_gen_real_reloc_type");\n}" { (declaration "bfd_reloc_code_real_type bVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "valueT vVar3;" type_identifier identifier ;) (expression_statement "vVar3 = S_GET_VALUE(sym);" (assignment_expression "vVar3 = S_GET_VALUE(sym)" identifier = (call_expression "S_GET_VALUE(sym)" identifier (argument_list "(sym)" ( identifier )))) ;) (expression_statement "iVar2 = (int)(vVar3 >> 0x20);" (assignment_expression "iVar2 = (int)(vVar3 >> 0x20)" identifier = (cast_expression "(int)(vVar3 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(vVar3 >> 0x20)" ( (binary_expression "vVar3 >> 0x20" identifier >> number_literal) )))) ;) (if_statement "if (iVar2 == 0 && (uint)(0x10 < (uint)vVar3) <= (uint)-iVar2) {\n                    /* WARNING: Could not recover jumptable at 0x0004b87a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    bVar1 = (*(code *)(*(int *)(&DAT_00060d4c + (uint)vVar3 * 4) + 0x7e000))();\n    return bVar1;\n  }" if (parenthesized_expression "(iVar2 == 0 && (uint)(0x10 < (uint)vVar3) <= (uint)-iVar2)" ( (binary_expression "iVar2 == 0 && (uint)(0x10 < (uint)vVar3) <= (uint)-iVar2" (binary_expression "iVar2 == 0" identifier == number_literal) && (binary_expression "(uint)(0x10 < (uint)vVar3) <= (uint)-iVar2" (call_expression "(uint)(0x10 < (uint)vVar3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0x10 < (uint)vVar3)" ( (binary_expression "0x10 < (uint)vVar3" number_literal < (cast_expression "(uint)vVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) <= (binary_expression "(uint)-iVar2" (parenthesized_expression "(uint)" ( identifier )) - identifier))) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0004b87a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    bVar1 = (*(code *)(*(int *)(&DAT_00060d4c + (uint)vVar3 * 4) + 0x7e000))();\n    return bVar1;\n  }" { comment comment (expression_statement "bVar1 = (*(code *)(*(int *)(&DAT_00060d4c + (uint)vVar3 * 4) + 0x7e000))();" (assignment_expression "bVar1 = (*(code *)(*(int *)(&DAT_00060d4c + (uint)vVar3 * 4) + 0x7e000))()" identifier = (call_expression "(*(code *)(*(int *)(&DAT_00060d4c + (uint)vVar3 * 4) + 0x7e000))()" (parenthesized_expression "(*(code *)(*(int *)(&DAT_00060d4c + (uint)vVar3 * 4) + 0x7e000))" ( (pointer_expression "*(code *)(*(int *)(&DAT_00060d4c + (uint)vVar3 * 4) + 0x7e000)" * (cast_expression "(code *)(*(int *)(&DAT_00060d4c + (uint)vVar3 * 4) + 0x7e000)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(&DAT_00060d4c + (uint)vVar3 * 4) + 0x7e000)" ( (binary_expression "*(int *)(&DAT_00060d4c + (uint)vVar3 * 4) + 0x7e000" (pointer_expression "*(int *)(&DAT_00060d4c + (uint)vVar3 * 4)" * (cast_expression "(int *)(&DAT_00060d4c + (uint)vVar3 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00060d4c + (uint)vVar3 * 4)" ( (binary_expression "&DAT_00060d4c + (uint)vVar3 * 4" (pointer_expression "&DAT_00060d4c" & identifier) + (binary_expression "(uint)vVar3 * 4" (cast_expression "(uint)vVar3" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) )))) + number_literal) )))) )) (argument_list "()" ( )))) ;) (return_statement "return bVar1;" return identifier ;) })) comment (expression_statement "as_abort("../../gas/config/tc-ia64.c",0x2c37,"ia64_gen_real_reloc_type");" (call_expression "as_abort("../../gas/config/tc-ia64.c",0x2c37,"ia64_gen_real_reloc_type")" identifier (argument_list "("../../gas/config/tc-ia64.c",0x2c37,"ia64_gen_real_reloc_type")" ( (string_literal ""../../gas/config/tc-ia64.c"" " string_content ") , number_literal , (string_literal ""ia64_gen_real_reloc_type"" " string_content ") ))) ;) })))
(translation_unit "void __regparm3 FUN_0004b840(undefined4 param_1)\n\n{\n  int iVar1;\n  undefined8 uVar2;\n  \n  uVar2 = FUN_000375e0(param_1);\n  iVar1 = (int)((ulonglong)uVar2 >> 0x20);\n  if (iVar1 == 0 && (uint)(0x10 < (uint)uVar2) <= (uint)-iVar1) {\n                    \n                    \n    (*(code *)(*(int *)(&DAT_00060d4c + (uint)uVar2 * 4) + 0x7e000))();\n    return;\n  }\n                    \n  FUN_00029670("../../gas/config/tc-ia64.c",0x2c37,"ia64_gen_real_reloc_type",iVar1);\n}\n\n" (function_definition "void __regparm3 FUN_0004b840(undefined4 param_1)\n\n{\n  int iVar1;\n  undefined8 uVar2;\n  \n  uVar2 = FUN_000375e0(param_1);\n  iVar1 = (int)((ulonglong)uVar2 >> 0x20);\n  if (iVar1 == 0 && (uint)(0x10 < (uint)uVar2) <= (uint)-iVar1) {\n                    \n                    \n    (*(code *)(*(int *)(&DAT_00060d4c + (uint)uVar2 * 4) + 0x7e000))();\n    return;\n  }\n                    \n  FUN_00029670("../../gas/config/tc-ia64.c",0x2c37,"ia64_gen_real_reloc_type",iVar1);\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_0004b840(undefined4 param_1)" identifier (parameter_list "(undefined4 param_1)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined8 uVar2;\n  \n  uVar2 = FUN_000375e0(param_1);\n  iVar1 = (int)((ulonglong)uVar2 >> 0x20);\n  if (iVar1 == 0 && (uint)(0x10 < (uint)uVar2) <= (uint)-iVar1) {\n                    \n                    \n    (*(code *)(*(int *)(&DAT_00060d4c + (uint)uVar2 * 4) + 0x7e000))();\n    return;\n  }\n                    \n  FUN_00029670("../../gas/config/tc-ia64.c",0x2c37,"ia64_gen_real_reloc_type",iVar1);\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (expression_statement "uVar2 = FUN_000375e0(param_1);" (assignment_expression "uVar2 = FUN_000375e0(param_1)" identifier = (call_expression "FUN_000375e0(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "iVar1 = (int)((ulonglong)uVar2 >> 0x20);" (assignment_expression "iVar1 = (int)((ulonglong)uVar2 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)uVar2 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar2 >> 0x20)" ( (binary_expression "(ulonglong)uVar2 >> 0x20" (cast_expression "(ulonglong)uVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (iVar1 == 0 && (uint)(0x10 < (uint)uVar2) <= (uint)-iVar1) {\n                    \n                    \n    (*(code *)(*(int *)(&DAT_00060d4c + (uint)uVar2 * 4) + 0x7e000))();\n    return;\n  }" if (parenthesized_expression "(iVar1 == 0 && (uint)(0x10 < (uint)uVar2) <= (uint)-iVar1)" ( (binary_expression "iVar1 == 0 && (uint)(0x10 < (uint)uVar2) <= (uint)-iVar1" (binary_expression "iVar1 == 0" identifier == number_literal) && (binary_expression "(uint)(0x10 < (uint)uVar2) <= (uint)-iVar1" (call_expression "(uint)(0x10 < (uint)uVar2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0x10 < (uint)uVar2)" ( (binary_expression "0x10 < (uint)uVar2" number_literal < (cast_expression "(uint)uVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) <= (binary_expression "(uint)-iVar1" (parenthesized_expression "(uint)" ( identifier )) - identifier))) )) (compound_statement "{\n                    \n                    \n    (*(code *)(*(int *)(&DAT_00060d4c + (uint)uVar2 * 4) + 0x7e000))();\n    return;\n  }" { (expression_statement "(*(code *)(*(int *)(&DAT_00060d4c + (uint)uVar2 * 4) + 0x7e000))();" (call_expression "(*(code *)(*(int *)(&DAT_00060d4c + (uint)uVar2 * 4) + 0x7e000))()" (parenthesized_expression "(*(code *)(*(int *)(&DAT_00060d4c + (uint)uVar2 * 4) + 0x7e000))" ( (pointer_expression "*(code *)(*(int *)(&DAT_00060d4c + (uint)uVar2 * 4) + 0x7e000)" * (cast_expression "(code *)(*(int *)(&DAT_00060d4c + (uint)uVar2 * 4) + 0x7e000)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(&DAT_00060d4c + (uint)uVar2 * 4) + 0x7e000)" ( (binary_expression "*(int *)(&DAT_00060d4c + (uint)uVar2 * 4) + 0x7e000" (pointer_expression "*(int *)(&DAT_00060d4c + (uint)uVar2 * 4)" * (cast_expression "(int *)(&DAT_00060d4c + (uint)uVar2 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00060d4c + (uint)uVar2 * 4)" ( (binary_expression "&DAT_00060d4c + (uint)uVar2 * 4" (pointer_expression "&DAT_00060d4c" & identifier) + (binary_expression "(uint)uVar2 * 4" (cast_expression "(uint)uVar2" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) )))) + number_literal) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "FUN_00029670("../../gas/config/tc-ia64.c",0x2c37,"ia64_gen_real_reloc_type",iVar1);" (call_expression "FUN_00029670("../../gas/config/tc-ia64.c",0x2c37,"ia64_gen_real_reloc_type",iVar1)" identifier (argument_list "("../../gas/config/tc-ia64.c",0x2c37,"ia64_gen_real_reloc_type",iVar1)" ( (string_literal ""../../gas/config/tc-ia64.c"" " string_content ") , number_literal , (string_literal ""ia64_gen_real_reloc_type"" " string_content ") , identifier ))) ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) <= (binary_expression (parenthesized_expression ( IDENT )) - IDENT))) )) (compound_statement { (expression_statement (call_expression (parenthesized_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 (pointer_expression & IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) )))) + LIT) )))) )) (argument_list ( ))) ;) (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })))
(function_definition "void __regparm3 FUN_0004b840(undefined4 param_1)\n\n{\n  int iVar1;\n  undefined8 uVar2;\n  \n  uVar2 = FUN_000375e0(param_1);\n  iVar1 = (int)((ulonglong)uVar2 >> 0x20);\n  if (iVar1 == 0 && (uint)(0x10 < (uint)uVar2) <= (uint)-iVar1) {\n                    \n                    \n    (*(code *)(*(int *)(&DAT_00060d4c + (uint)uVar2 * 4) + 0x7e000))();\n    return;\n  }\n                    \n  FUN_00029670("../../gas/config/tc-ia64.c",0x2c37,"ia64_gen_real_reloc_type",iVar1);\n}" (primitive_type "void") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_0004b840(undefined4 param_1)" (identifier "FUN_0004b840") (parameter_list "(undefined4 param_1)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) () ")"))) (compound_statement "{\n  int iVar1;\n  undefined8 uVar2;\n  \n  uVar2 = FUN_000375e0(param_1);\n  iVar1 = (int)((ulonglong)uVar2 >> 0x20);\n  if (iVar1 == 0 && (uint)(0x10 < (uint)uVar2) <= (uint)-iVar1) {\n                    \n                    \n    (*(code *)(*(int *)(&DAT_00060d4c + (uint)uVar2 * 4) + 0x7e000))();\n    return;\n  }\n                    \n  FUN_00029670("../../gas/config/tc-ia64.c",0x2c37,"ia64_gen_real_reloc_type",iVar1);\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined8 uVar2;" (type_identifier "undefined8") (identifier "uVar2") (; ";")) (expression_statement "uVar2 = FUN_000375e0(param_1);" (assignment_expression "uVar2 = FUN_000375e0(param_1)" (identifier "uVar2") (= "=") (call_expression "FUN_000375e0(param_1)" (identifier "FUN_000375e0") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "iVar1 = (int)((ulonglong)uVar2 >> 0x20);" (assignment_expression "iVar1 = (int)((ulonglong)uVar2 >> 0x20)" (identifier "iVar1") (= "=") (cast_expression "(int)((ulonglong)uVar2 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar2 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar2 >> 0x20" (cast_expression "(ulonglong)uVar2" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar2")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (if_statement "if (iVar1 == 0 && (uint)(0x10 < (uint)uVar2) <= (uint)-iVar1) {\n                    \n                    \n    (*(code *)(*(int *)(&DAT_00060d4c + (uint)uVar2 * 4) + 0x7e000))();\n    return;\n  }" (if "if") (parenthesized_expression "(iVar1 == 0 && (uint)(0x10 < (uint)uVar2) <= (uint)-iVar1)" (( "(") (binary_expression "iVar1 == 0 && (uint)(0x10 < (uint)uVar2) <= (uint)-iVar1" (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) (&& "&&") (binary_expression "(uint)(0x10 < (uint)uVar2) <= (uint)-iVar1" (call_expression "(uint)(0x10 < (uint)uVar2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(0x10 < (uint)uVar2)" (( "(") (binary_expression "0x10 < (uint)uVar2" (number_literal "0x10") (< "<") (cast_expression "(uint)uVar2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar2"))) () ")"))) (<= "<=") (binary_expression "(uint)-iVar1" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (- "-") (identifier "iVar1")))) () ")")) (compound_statement "{\n                    \n                    \n    (*(code *)(*(int *)(&DAT_00060d4c + (uint)uVar2 * 4) + 0x7e000))();\n    return;\n  }" ({ "{") (expression_statement "(*(code *)(*(int *)(&DAT_00060d4c + (uint)uVar2 * 4) + 0x7e000))();" (call_expression "(*(code *)(*(int *)(&DAT_00060d4c + (uint)uVar2 * 4) + 0x7e000))()" (parenthesized_expression "(*(code *)(*(int *)(&DAT_00060d4c + (uint)uVar2 * 4) + 0x7e000))" (( "(") (pointer_expression "*(code *)(*(int *)(&DAT_00060d4c + (uint)uVar2 * 4) + 0x7e000)" (* "*") (cast_expression "(code *)(*(int *)(&DAT_00060d4c + (uint)uVar2 * 4) + 0x7e000)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(&DAT_00060d4c + (uint)uVar2 * 4) + 0x7e000)" (( "(") (binary_expression "*(int *)(&DAT_00060d4c + (uint)uVar2 * 4) + 0x7e000" (pointer_expression "*(int *)(&DAT_00060d4c + (uint)uVar2 * 4)" (* "*") (cast_expression "(int *)(&DAT_00060d4c + (uint)uVar2 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00060d4c + (uint)uVar2 * 4)" (( "(") (binary_expression "&DAT_00060d4c + (uint)uVar2 * 4" (pointer_expression "&DAT_00060d4c" (& "&") (identifier "DAT_00060d4c")) (+ "+") (binary_expression "(uint)uVar2 * 4" (cast_expression "(uint)uVar2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar2")) (* "*") (number_literal "4"))) () ")")))) (+ "+") (number_literal "0x7e000")) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_00029670("../../gas/config/tc-ia64.c",0x2c37,"ia64_gen_real_reloc_type",iVar1);" (call_expression "FUN_00029670("../../gas/config/tc-ia64.c",0x2c37,"ia64_gen_real_reloc_type",iVar1)" (identifier "FUN_00029670") (argument_list "("../../gas/config/tc-ia64.c",0x2c37,"ia64_gen_real_reloc_type",iVar1)" (( "(") (string_literal ""../../gas/config/tc-ia64.c"" (" """) (string_content "../../gas/config/tc-ia64.c") (" """)) (, ",") (number_literal "0x2c37") (, ",") (string_literal ""ia64_gen_real_reloc_type"" (" """) (string_content "ia64_gen_real_reloc_type") (" """)) (, ",") (identifier "iVar1") () ")"))) (; ";")) (} "}")))

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

type_1 __regparm3
function_1(type_2 *sym,type_1 r_type)

{
  type_1 bVar1;
  int var_3;
  type_3 var_2;
  
  var_2 = var_1(sym);
  var_3 = (int)(var_2 >> 0x20);
  if (var_3 == 0 && (type_4)(0x10 < (type_4)var_2) <= (type_4)-var_3) {
                    /* WARNING: Could not recover jumptable at 0x0004b87a. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    bVar1 = (*(type_5 *)(*(int *)(&DAT_00060d4c + (type_4)var_2 * 4) + 0x7e000))();
    return bVar1;
  }
                    /* WARNING: Subroutine does not return */
  var_4("../../gas/config/tc-ia64.c",0x2c37,"ia64_gen_real_reloc_type");
}


(translation_unit (function_definition type: (primitive_type) (ERROR (identifier)) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier))))) 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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) right: (number_literal)))))) arguments: (argument_list))) (return_statement))) (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 */

void __regparm3 MASKED(undefined4 param_1)

{
  int iVar1;
  undefined8 uVar2;
  
  uVar2 = FUN_000375e0(param_1);
  iVar1 = (int)((ulonglong)uVar2 >> 0x20);
  if (iVar1 == 0 && (uint)(0x10 < (uint)uVar2) <= (uint)-iVar1) {
                    /* WARNING: Could not recover jumptable at 0x0004b87a. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (*(code *)(*(int *)(&DAT_00060d4c + (uint)uVar2 * 4) + 0x7e000))();
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_00029670("../../gas/config/tc-ia64.c",0x2c37,"ia64_gen_real_reloc_type",iVar1);
}

