
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* DWARF original prototype: void check_non_pic(Scan * this, Relobj * object, uint r_type) */

void __thiscall
anon_unknown.dwarf_b97484::Target_tilegx<64,_true>::Scan::check_non_pic
          (Scan *this,Relobj *object,uint r_type)

{
}



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

void __regparm3 FUN_00152930(char *param_1,undefined4 param_2,uint param_3)

{
  int iVar1;
  undefined4 uVar2;
  
  if (param_3 < 0x16) {
    if (0xf < param_3) {
      return;
    }
    if (param_3 == 0) {
                    /* WARNING: Subroutine does not return */
      FUN_002446e0("../../gold/tilegx.cc",0xc89,"check_non_pic",param_1);
    }
    if (param_3 < 5) {
      return;
    }
  }
  else if (0x23 < param_3) {
    if (param_3 < 0x40) {
      return;
    }
    if (param_3 - 0x6a < 3) {
      return;
    }
  }
  if (*param_1 == '\0') {
    iVar1 = *(int *)(DAT_005ea7c8 + 8);
    if (iVar1 == 0) {
                    /* WARNING: Subroutine does not return */
      FUN_002446e0("../../gold/parameters.h",0x5c,"options",param_2);
    }
    if ((*(char *)(iVar1 + 0x1a25) == '\0') && (*(char *)(iVar1 + 0x2931) == '\0')) {
                    /* WARNING: Subroutine does not return */
      FUN_002446e0("../../gold/tilegx.cc",0xc81,"check_non_pic");
    }
    uVar2 = gettext("requires unsupported dynamic reloc %u; recompile with -fPIC");
    FUN_0028b750(param_2,uVar2,param_3);
    *param_1 = '\x01';
  }
  return;
}


PUSH ESI
MOV ESI,EAX
PUSH EBX
CALL 0x00050b50
ADD EBX,0x4976c7
SUB ESP,0x14
CMP ECX,0x15
JA 0x001529f0
CMP ECX,0x10
JNC 0x001529e0
TEST ECX,ECX
JZ 0x00152a10
CMP ECX,0x4
JBE 0x001529e0
CMP byte ptr [ESI],0x0
JNZ 0x001529e0
LEA EAX,[EBX + 0x7c8]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x00152a29
CMP byte ptr [EAX + 0x1a25],0x0
JNZ 0x001529b0
CMP byte ptr [EAX + 0x2931],0x0
JNZ 0x001529b0
SUB ESP,0x4
LEA EAX,[EBX + 0xffe858b4]
PUSH EAX
LEA EAX,[EBX + 0xffe82a52]
PUSH 0xc81
PUSH EAX
CALL 0x002446e0
MOV dword ptr [ESP + 0xc],ECX
LEA EAX,[EBX + 0xffe6636c]
SUB ESP,0xc
MOV dword ptr [ESP + 0x14],EDX
PUSH EAX
CALL 0x00039440
ADD ESP,0xc
MOV ECX,dword ptr [ESP + 0x10]
PUSH ECX
PUSH EAX
MOV EDX,dword ptr [ESP + 0x14]
PUSH EDX
CALL 0x0028b750
MOV byte ptr [ESI],0x1
ADD ESP,0x10
ADD ESP,0x14
POP EBX
POP ESI
RET
CMP ECX,0x24
JC 0x00152961
CMP ECX,0x3f
JBE 0x001529e0
LEA EAX,[ECX + -0x6a]
CMP EAX,0x2
JA 0x00152961
ADD ESP,0x14
POP EBX
POP ESI
RET
PUSH EAX
LEA EAX,[EBX + 0xffe858b4]
PUSH EAX
LEA EAX,[EBX + 0xffe82a52]
PUSH 0xc89
PUSH EAX
CALL 0x002446e0
LEA EAX,[EBX + 0xffe862bc]
PUSH EDX
PUSH EAX
LEA EAX,[EBX + 0xffe5e26d]
PUSH 0x5c
PUSH EAX
CALL 0x002446e0
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid __regparm3 FUN_00152930(char *param_1,undefined4 param_2,uint param_3)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  \n  if (param_3 < 0x16) {\n    if (0xf < param_3) {\n      return;\n    }\n    if (param_3 == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/tilegx.cc",0xc89,"check_non_pic",param_1);\n    }\n    if (param_3 < 5) {\n      return;\n    }\n  }\n  else if (0x23 < param_3) {\n    if (param_3 < 0x40) {\n      return;\n    }\n    if (param_3 - 0x6a < 3) {\n      return;\n    }\n  }\n  if (*param_1 == '\0') {\n    iVar1 = *(int *)(DAT_005ea7c8 + 8);\n    if (iVar1 == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/parameters.h",0x5c,"options",param_2);\n    }\n    if ((*(char *)(iVar1 + 0x1a25) == '\0') && (*(char *)(iVar1 + 0x2931) == '\0')) {\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/tilegx.cc",0xc81,"check_non_pic");\n    }\n    uVar2 = gettext("requires unsupported dynamic reloc %u; recompile with -fPIC");\n    FUN_0028b750(param_2,uVar2,param_3);\n    *param_1 = '\x01';\n  }\n  return;\n}\n\n" comment (function_definition "void __regparm3 FUN_00152930(char *param_1,undefined4 param_2,uint param_3)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  \n  if (param_3 < 0x16) {\n    if (0xf < param_3) {\n      return;\n    }\n    if (param_3 == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/tilegx.cc",0xc89,"check_non_pic",param_1);\n    }\n    if (param_3 < 5) {\n      return;\n    }\n  }\n  else if (0x23 < param_3) {\n    if (param_3 < 0x40) {\n      return;\n    }\n    if (param_3 - 0x6a < 3) {\n      return;\n    }\n  }\n  if (*param_1 == '\0') {\n    iVar1 = *(int *)(DAT_005ea7c8 + 8);\n    if (iVar1 == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/parameters.h",0x5c,"options",param_2);\n    }\n    if ((*(char *)(iVar1 + 0x1a25) == '\0') && (*(char *)(iVar1 + 0x2931) == '\0')) {\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/tilegx.cc",0xc81,"check_non_pic");\n    }\n    uVar2 = gettext("requires unsupported dynamic reloc %u; recompile with -fPIC");\n    FUN_0028b750(param_2,uVar2,param_3);\n    *param_1 = '\x01';\n  }\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00152930(char *param_1,undefined4 param_2,uint param_3)" identifier (parameter_list "(char *param_1,undefined4 param_2,uint param_3)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "uint param_3" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  \n  if (param_3 < 0x16) {\n    if (0xf < param_3) {\n      return;\n    }\n    if (param_3 == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/tilegx.cc",0xc89,"check_non_pic",param_1);\n    }\n    if (param_3 < 5) {\n      return;\n    }\n  }\n  else if (0x23 < param_3) {\n    if (param_3 < 0x40) {\n      return;\n    }\n    if (param_3 - 0x6a < 3) {\n      return;\n    }\n  }\n  if (*param_1 == '\0') {\n    iVar1 = *(int *)(DAT_005ea7c8 + 8);\n    if (iVar1 == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/parameters.h",0x5c,"options",param_2);\n    }\n    if ((*(char *)(iVar1 + 0x1a25) == '\0') && (*(char *)(iVar1 + 0x2931) == '\0')) {\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/tilegx.cc",0xc81,"check_non_pic");\n    }\n    uVar2 = gettext("requires unsupported dynamic reloc %u; recompile with -fPIC");\n    FUN_0028b750(param_2,uVar2,param_3);\n    *param_1 = '\x01';\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (if_statement "if (param_3 < 0x16) {\n    if (0xf < param_3) {\n      return;\n    }\n    if (param_3 == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/tilegx.cc",0xc89,"check_non_pic",param_1);\n    }\n    if (param_3 < 5) {\n      return;\n    }\n  }\n  else if (0x23 < param_3) {\n    if (param_3 < 0x40) {\n      return;\n    }\n    if (param_3 - 0x6a < 3) {\n      return;\n    }\n  }" if (parenthesized_expression "(param_3 < 0x16)" ( (binary_expression "param_3 < 0x16" identifier < number_literal) )) (compound_statement "{\n    if (0xf < param_3) {\n      return;\n    }\n    if (param_3 == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/tilegx.cc",0xc89,"check_non_pic",param_1);\n    }\n    if (param_3 < 5) {\n      return;\n    }\n  }" { (if_statement "if (0xf < param_3) {\n      return;\n    }" if (parenthesized_expression "(0xf < param_3)" ( (binary_expression "0xf < param_3" number_literal < identifier) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (if_statement "if (param_3 == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/tilegx.cc",0xc89,"check_non_pic",param_1);\n    }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/tilegx.cc",0xc89,"check_non_pic",param_1);\n    }" { comment (expression_statement "FUN_002446e0("../../gold/tilegx.cc",0xc89,"check_non_pic",param_1);" (call_expression "FUN_002446e0("../../gold/tilegx.cc",0xc89,"check_non_pic",param_1)" identifier (argument_list "("../../gold/tilegx.cc",0xc89,"check_non_pic",param_1)" ( (string_literal ""../../gold/tilegx.cc"" " string_content ") , number_literal , (string_literal ""check_non_pic"" " string_content ") , identifier ))) ;) })) (if_statement "if (param_3 < 5) {\n      return;\n    }" if (parenthesized_expression "(param_3 < 5)" ( (binary_expression "param_3 < 5" identifier < number_literal) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) }) (else_clause "else if (0x23 < param_3) {\n    if (param_3 < 0x40) {\n      return;\n    }\n    if (param_3 - 0x6a < 3) {\n      return;\n    }\n  }" else (if_statement "if (0x23 < param_3) {\n    if (param_3 < 0x40) {\n      return;\n    }\n    if (param_3 - 0x6a < 3) {\n      return;\n    }\n  }" if (parenthesized_expression "(0x23 < param_3)" ( (binary_expression "0x23 < param_3" number_literal < identifier) )) (compound_statement "{\n    if (param_3 < 0x40) {\n      return;\n    }\n    if (param_3 - 0x6a < 3) {\n      return;\n    }\n  }" { (if_statement "if (param_3 < 0x40) {\n      return;\n    }" if (parenthesized_expression "(param_3 < 0x40)" ( (binary_expression "param_3 < 0x40" identifier < number_literal) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (if_statement "if (param_3 - 0x6a < 3) {\n      return;\n    }" if (parenthesized_expression "(param_3 - 0x6a < 3)" ( (binary_expression "param_3 - 0x6a < 3" (binary_expression "param_3 - 0x6a" identifier - number_literal) < number_literal) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) })))) (if_statement "if (*param_1 == '\0') {\n    iVar1 = *(int *)(DAT_005ea7c8 + 8);\n    if (iVar1 == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/parameters.h",0x5c,"options",param_2);\n    }\n    if ((*(char *)(iVar1 + 0x1a25) == '\0') && (*(char *)(iVar1 + 0x2931) == '\0')) {\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/tilegx.cc",0xc81,"check_non_pic");\n    }\n    uVar2 = gettext("requires unsupported dynamic reloc %u; recompile with -fPIC");\n    FUN_0028b750(param_2,uVar2,param_3);\n    *param_1 = '\x01';\n  }" if (parenthesized_expression "(*param_1 == '\0')" ( (binary_expression "*param_1 == '\0'" (pointer_expression "*param_1" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    iVar1 = *(int *)(DAT_005ea7c8 + 8);\n    if (iVar1 == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/parameters.h",0x5c,"options",param_2);\n    }\n    if ((*(char *)(iVar1 + 0x1a25) == '\0') && (*(char *)(iVar1 + 0x2931) == '\0')) {\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/tilegx.cc",0xc81,"check_non_pic");\n    }\n    uVar2 = gettext("requires unsupported dynamic reloc %u; recompile with -fPIC");\n    FUN_0028b750(param_2,uVar2,param_3);\n    *param_1 = '\x01';\n  }" { (expression_statement "iVar1 = *(int *)(DAT_005ea7c8 + 8);" (assignment_expression "iVar1 = *(int *)(DAT_005ea7c8 + 8)" identifier = (pointer_expression "*(int *)(DAT_005ea7c8 + 8)" * (cast_expression "(int *)(DAT_005ea7c8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_005ea7c8 + 8)" ( (binary_expression "DAT_005ea7c8 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar1 == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/parameters.h",0x5c,"options",param_2);\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/parameters.h",0x5c,"options",param_2);\n    }" { comment (expression_statement "FUN_002446e0("../../gold/parameters.h",0x5c,"options",param_2);" (call_expression "FUN_002446e0("../../gold/parameters.h",0x5c,"options",param_2)" identifier (argument_list "("../../gold/parameters.h",0x5c,"options",param_2)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") , identifier ))) ;) })) (if_statement "if ((*(char *)(iVar1 + 0x1a25) == '\0') && (*(char *)(iVar1 + 0x2931) == '\0')) {\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/tilegx.cc",0xc81,"check_non_pic");\n    }" if (parenthesized_expression "((*(char *)(iVar1 + 0x1a25) == '\0') && (*(char *)(iVar1 + 0x2931) == '\0'))" ( (binary_expression "(*(char *)(iVar1 + 0x1a25) == '\0') && (*(char *)(iVar1 + 0x2931) == '\0')" (parenthesized_expression "(*(char *)(iVar1 + 0x1a25) == '\0')" ( (binary_expression "*(char *)(iVar1 + 0x1a25) == '\0'" (pointer_expression "*(char *)(iVar1 + 0x1a25)" * (cast_expression "(char *)(iVar1 + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1a25)" ( (binary_expression "iVar1 + 0x1a25" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(char *)(iVar1 + 0x2931) == '\0')" ( (binary_expression "*(char *)(iVar1 + 0x2931) == '\0'" (pointer_expression "*(char *)(iVar1 + 0x2931)" * (cast_expression "(char *)(iVar1 + 0x2931)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x2931)" ( (binary_expression "iVar1 + 0x2931" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/tilegx.cc",0xc81,"check_non_pic");\n    }" { comment (expression_statement "FUN_002446e0("../../gold/tilegx.cc",0xc81,"check_non_pic");" (call_expression "FUN_002446e0("../../gold/tilegx.cc",0xc81,"check_non_pic")" identifier (argument_list "("../../gold/tilegx.cc",0xc81,"check_non_pic")" ( (string_literal ""../../gold/tilegx.cc"" " string_content ") , number_literal , (string_literal ""check_non_pic"" " string_content ") ))) ;) })) (expression_statement "uVar2 = gettext("requires unsupported dynamic reloc %u; recompile with -fPIC");" (assignment_expression "uVar2 = gettext("requires unsupported dynamic reloc %u; recompile with -fPIC")" identifier = (call_expression "gettext("requires unsupported dynamic reloc %u; recompile with -fPIC")" identifier (argument_list "("requires unsupported dynamic reloc %u; recompile with -fPIC")" ( (string_literal ""requires unsupported dynamic reloc %u; recompile with -fPIC"" " string_content ") )))) ;) (expression_statement "FUN_0028b750(param_2,uVar2,param_3);" (call_expression "FUN_0028b750(param_2,uVar2,param_3)" identifier (argument_list "(param_2,uVar2,param_3)" ( identifier , identifier , identifier ))) ;) (expression_statement "*param_1 = '\x01';" (assignment_expression "*param_1 = '\x01'" (pointer_expression "*param_1" * identifier) = (char_literal "'\x01'" ' escape_sequence ')) ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* DWARF original prototype: void check_non_pic(Scan * this, Relobj * object, uint r_type) */\n\nvoid __thiscall\nanon_unknown.dwarf_b97484::Target_tilegx<64,_true>::Scan::check_non_pic\n          (Scan *this,Relobj *object,uint r_type)\n\n{\n}\n\n" comment comment (ERROR "void __thiscall\nanon_unknown.dwarf_b97484::Target_tilegx<64,_true>::Scan::check_non_pic\n          (Scan *this,Relobj *object,uint r_type)" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "anon_unknown.dwarf_b97484::" identifier . identifier : :) identifier (ERROR "<64" < number_literal) , (ERROR "_true>::Scan::" identifier > : : identifier : :) (function_declarator "check_non_pic\n          (Scan *this,Relobj *object,uint r_type)" identifier (parameter_list "(Scan *this,Relobj *object,uint r_type)" ( (parameter_declaration "Scan *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Relobj *object" type_identifier (pointer_declarator "*object" * identifier)) , (parameter_declaration "uint r_type" type_identifier identifier) )))) (compound_statement "{\n}" { }))
(translation_unit "void __regparm3 FUN_00152930(char *param_1,undefined4 param_2,uint param_3)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  \n  if (param_3 < 0x16) {\n    if (0xf < param_3) {\n      return;\n    }\n    if (param_3 == 0) {\n                    \n      FUN_002446e0("../../gold/tilegx.cc",0xc89,"check_non_pic",param_1);\n    }\n    if (param_3 < 5) {\n      return;\n    }\n  }\n  else if (0x23 < param_3) {\n    if (param_3 < 0x40) {\n      return;\n    }\n    if (param_3 - 0x6a < 3) {\n      return;\n    }\n  }\n  if (*param_1 == '\0') {\n    iVar1 = *(int *)(DAT_005ea7c8 + 8);\n    if (iVar1 == 0) {\n                    \n      FUN_002446e0("../../gold/parameters.h",0x5c,"options",param_2);\n    }\n    if ((*(char *)(iVar1 + 0x1a25) == '\0') && (*(char *)(iVar1 + 0x2931) == '\0')) {\n                    \n      FUN_002446e0("../../gold/tilegx.cc",0xc81,"check_non_pic");\n    }\n    uVar2 = gettext("requires unsupported dynamic reloc %u; recompile with -fPIC");\n    FUN_0028b750(param_2,uVar2,param_3);\n    *param_1 = '\x01';\n  }\n  return;\n}\n\n" (function_definition "void __regparm3 FUN_00152930(char *param_1,undefined4 param_2,uint param_3)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  \n  if (param_3 < 0x16) {\n    if (0xf < param_3) {\n      return;\n    }\n    if (param_3 == 0) {\n                    \n      FUN_002446e0("../../gold/tilegx.cc",0xc89,"check_non_pic",param_1);\n    }\n    if (param_3 < 5) {\n      return;\n    }\n  }\n  else if (0x23 < param_3) {\n    if (param_3 < 0x40) {\n      return;\n    }\n    if (param_3 - 0x6a < 3) {\n      return;\n    }\n  }\n  if (*param_1 == '\0') {\n    iVar1 = *(int *)(DAT_005ea7c8 + 8);\n    if (iVar1 == 0) {\n                    \n      FUN_002446e0("../../gold/parameters.h",0x5c,"options",param_2);\n    }\n    if ((*(char *)(iVar1 + 0x1a25) == '\0') && (*(char *)(iVar1 + 0x2931) == '\0')) {\n                    \n      FUN_002446e0("../../gold/tilegx.cc",0xc81,"check_non_pic");\n    }\n    uVar2 = gettext("requires unsupported dynamic reloc %u; recompile with -fPIC");\n    FUN_0028b750(param_2,uVar2,param_3);\n    *param_1 = '\x01';\n  }\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00152930(char *param_1,undefined4 param_2,uint param_3)" identifier (parameter_list "(char *param_1,undefined4 param_2,uint param_3)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "uint param_3" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  \n  if (param_3 < 0x16) {\n    if (0xf < param_3) {\n      return;\n    }\n    if (param_3 == 0) {\n                    \n      FUN_002446e0("../../gold/tilegx.cc",0xc89,"check_non_pic",param_1);\n    }\n    if (param_3 < 5) {\n      return;\n    }\n  }\n  else if (0x23 < param_3) {\n    if (param_3 < 0x40) {\n      return;\n    }\n    if (param_3 - 0x6a < 3) {\n      return;\n    }\n  }\n  if (*param_1 == '\0') {\n    iVar1 = *(int *)(DAT_005ea7c8 + 8);\n    if (iVar1 == 0) {\n                    \n      FUN_002446e0("../../gold/parameters.h",0x5c,"options",param_2);\n    }\n    if ((*(char *)(iVar1 + 0x1a25) == '\0') && (*(char *)(iVar1 + 0x2931) == '\0')) {\n                    \n      FUN_002446e0("../../gold/tilegx.cc",0xc81,"check_non_pic");\n    }\n    uVar2 = gettext("requires unsupported dynamic reloc %u; recompile with -fPIC");\n    FUN_0028b750(param_2,uVar2,param_3);\n    *param_1 = '\x01';\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (if_statement "if (param_3 < 0x16) {\n    if (0xf < param_3) {\n      return;\n    }\n    if (param_3 == 0) {\n                    \n      FUN_002446e0("../../gold/tilegx.cc",0xc89,"check_non_pic",param_1);\n    }\n    if (param_3 < 5) {\n      return;\n    }\n  }\n  else if (0x23 < param_3) {\n    if (param_3 < 0x40) {\n      return;\n    }\n    if (param_3 - 0x6a < 3) {\n      return;\n    }\n  }" if (parenthesized_expression "(param_3 < 0x16)" ( (binary_expression "param_3 < 0x16" identifier < number_literal) )) (compound_statement "{\n    if (0xf < param_3) {\n      return;\n    }\n    if (param_3 == 0) {\n                    \n      FUN_002446e0("../../gold/tilegx.cc",0xc89,"check_non_pic",param_1);\n    }\n    if (param_3 < 5) {\n      return;\n    }\n  }" { (if_statement "if (0xf < param_3) {\n      return;\n    }" if (parenthesized_expression "(0xf < param_3)" ( (binary_expression "0xf < param_3" number_literal < identifier) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (if_statement "if (param_3 == 0) {\n                    \n      FUN_002446e0("../../gold/tilegx.cc",0xc89,"check_non_pic",param_1);\n    }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n      FUN_002446e0("../../gold/tilegx.cc",0xc89,"check_non_pic",param_1);\n    }" { (expression_statement "FUN_002446e0("../../gold/tilegx.cc",0xc89,"check_non_pic",param_1);" (call_expression "FUN_002446e0("../../gold/tilegx.cc",0xc89,"check_non_pic",param_1)" identifier (argument_list "("../../gold/tilegx.cc",0xc89,"check_non_pic",param_1)" ( (string_literal ""../../gold/tilegx.cc"" " string_content ") , number_literal , (string_literal ""check_non_pic"" " string_content ") , identifier ))) ;) })) (if_statement "if (param_3 < 5) {\n      return;\n    }" if (parenthesized_expression "(param_3 < 5)" ( (binary_expression "param_3 < 5" identifier < number_literal) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) }) (else_clause "else if (0x23 < param_3) {\n    if (param_3 < 0x40) {\n      return;\n    }\n    if (param_3 - 0x6a < 3) {\n      return;\n    }\n  }" else (if_statement "if (0x23 < param_3) {\n    if (param_3 < 0x40) {\n      return;\n    }\n    if (param_3 - 0x6a < 3) {\n      return;\n    }\n  }" if (parenthesized_expression "(0x23 < param_3)" ( (binary_expression "0x23 < param_3" number_literal < identifier) )) (compound_statement "{\n    if (param_3 < 0x40) {\n      return;\n    }\n    if (param_3 - 0x6a < 3) {\n      return;\n    }\n  }" { (if_statement "if (param_3 < 0x40) {\n      return;\n    }" if (parenthesized_expression "(param_3 < 0x40)" ( (binary_expression "param_3 < 0x40" identifier < number_literal) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (if_statement "if (param_3 - 0x6a < 3) {\n      return;\n    }" if (parenthesized_expression "(param_3 - 0x6a < 3)" ( (binary_expression "param_3 - 0x6a < 3" (binary_expression "param_3 - 0x6a" identifier - number_literal) < number_literal) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) })))) (if_statement "if (*param_1 == '\0') {\n    iVar1 = *(int *)(DAT_005ea7c8 + 8);\n    if (iVar1 == 0) {\n                    \n      FUN_002446e0("../../gold/parameters.h",0x5c,"options",param_2);\n    }\n    if ((*(char *)(iVar1 + 0x1a25) == '\0') && (*(char *)(iVar1 + 0x2931) == '\0')) {\n                    \n      FUN_002446e0("../../gold/tilegx.cc",0xc81,"check_non_pic");\n    }\n    uVar2 = gettext("requires unsupported dynamic reloc %u; recompile with -fPIC");\n    FUN_0028b750(param_2,uVar2,param_3);\n    *param_1 = '\x01';\n  }" if (parenthesized_expression "(*param_1 == '\0')" ( (binary_expression "*param_1 == '\0'" (pointer_expression "*param_1" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    iVar1 = *(int *)(DAT_005ea7c8 + 8);\n    if (iVar1 == 0) {\n                    \n      FUN_002446e0("../../gold/parameters.h",0x5c,"options",param_2);\n    }\n    if ((*(char *)(iVar1 + 0x1a25) == '\0') && (*(char *)(iVar1 + 0x2931) == '\0')) {\n                    \n      FUN_002446e0("../../gold/tilegx.cc",0xc81,"check_non_pic");\n    }\n    uVar2 = gettext("requires unsupported dynamic reloc %u; recompile with -fPIC");\n    FUN_0028b750(param_2,uVar2,param_3);\n    *param_1 = '\x01';\n  }" { (expression_statement "iVar1 = *(int *)(DAT_005ea7c8 + 8);" (assignment_expression "iVar1 = *(int *)(DAT_005ea7c8 + 8)" identifier = (pointer_expression "*(int *)(DAT_005ea7c8 + 8)" * (cast_expression "(int *)(DAT_005ea7c8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_005ea7c8 + 8)" ( (binary_expression "DAT_005ea7c8 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar1 == 0) {\n                    \n      FUN_002446e0("../../gold/parameters.h",0x5c,"options",param_2);\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n      FUN_002446e0("../../gold/parameters.h",0x5c,"options",param_2);\n    }" { (expression_statement "FUN_002446e0("../../gold/parameters.h",0x5c,"options",param_2);" (call_expression "FUN_002446e0("../../gold/parameters.h",0x5c,"options",param_2)" identifier (argument_list "("../../gold/parameters.h",0x5c,"options",param_2)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") , identifier ))) ;) })) (if_statement "if ((*(char *)(iVar1 + 0x1a25) == '\0') && (*(char *)(iVar1 + 0x2931) == '\0')) {\n                    \n      FUN_002446e0("../../gold/tilegx.cc",0xc81,"check_non_pic");\n    }" if (parenthesized_expression "((*(char *)(iVar1 + 0x1a25) == '\0') && (*(char *)(iVar1 + 0x2931) == '\0'))" ( (binary_expression "(*(char *)(iVar1 + 0x1a25) == '\0') && (*(char *)(iVar1 + 0x2931) == '\0')" (parenthesized_expression "(*(char *)(iVar1 + 0x1a25) == '\0')" ( (binary_expression "*(char *)(iVar1 + 0x1a25) == '\0'" (pointer_expression "*(char *)(iVar1 + 0x1a25)" * (cast_expression "(char *)(iVar1 + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1a25)" ( (binary_expression "iVar1 + 0x1a25" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(char *)(iVar1 + 0x2931) == '\0')" ( (binary_expression "*(char *)(iVar1 + 0x2931) == '\0'" (pointer_expression "*(char *)(iVar1 + 0x2931)" * (cast_expression "(char *)(iVar1 + 0x2931)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x2931)" ( (binary_expression "iVar1 + 0x2931" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n                    \n      FUN_002446e0("../../gold/tilegx.cc",0xc81,"check_non_pic");\n    }" { (expression_statement "FUN_002446e0("../../gold/tilegx.cc",0xc81,"check_non_pic");" (call_expression "FUN_002446e0("../../gold/tilegx.cc",0xc81,"check_non_pic")" identifier (argument_list "("../../gold/tilegx.cc",0xc81,"check_non_pic")" ( (string_literal ""../../gold/tilegx.cc"" " string_content ") , number_literal , (string_literal ""check_non_pic"" " string_content ") ))) ;) })) (expression_statement "uVar2 = gettext("requires unsupported dynamic reloc %u; recompile with -fPIC");" (assignment_expression "uVar2 = gettext("requires unsupported dynamic reloc %u; recompile with -fPIC")" identifier = (call_expression "gettext("requires unsupported dynamic reloc %u; recompile with -fPIC")" identifier (argument_list "("requires unsupported dynamic reloc %u; recompile with -fPIC")" ( (string_literal ""requires unsupported dynamic reloc %u; recompile with -fPIC"" " string_content ") )))) ;) (expression_statement "FUN_0028b750(param_2,uVar2,param_3);" (call_expression "FUN_0028b750(param_2,uVar2,param_3)" identifier (argument_list "(param_2,uVar2,param_3)" ( identifier , identifier , identifier ))) ;) (expression_statement "*param_1 = '\x01';" (assignment_expression "*param_1 = '\x01'" (pointer_expression "*param_1" * identifier) = (char_literal "'\x01'" ' escape_sequence ')) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (compound_statement { (return_statement return ;) })) })))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (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 ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) (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 IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) && (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 { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) })) (return_statement return ;) })))
(function_definition "void __regparm3 FUN_00152930(char *param_1,undefined4 param_2,uint param_3)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  \n  if (param_3 < 0x16) {\n    if (0xf < param_3) {\n      return;\n    }\n    if (param_3 == 0) {\n                    \n      FUN_002446e0("../../gold/tilegx.cc",0xc89,"check_non_pic",param_1);\n    }\n    if (param_3 < 5) {\n      return;\n    }\n  }\n  else if (0x23 < param_3) {\n    if (param_3 < 0x40) {\n      return;\n    }\n    if (param_3 - 0x6a < 3) {\n      return;\n    }\n  }\n  if (*param_1 == '\0') {\n    iVar1 = *(int *)(DAT_005ea7c8 + 8);\n    if (iVar1 == 0) {\n                    \n      FUN_002446e0("../../gold/parameters.h",0x5c,"options",param_2);\n    }\n    if ((*(char *)(iVar1 + 0x1a25) == '\0') && (*(char *)(iVar1 + 0x2931) == '\0')) {\n                    \n      FUN_002446e0("../../gold/tilegx.cc",0xc81,"check_non_pic");\n    }\n    uVar2 = gettext("requires unsupported dynamic reloc %u; recompile with -fPIC");\n    FUN_0028b750(param_2,uVar2,param_3);\n    *param_1 = '\x01';\n  }\n  return;\n}" (primitive_type "void") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_00152930(char *param_1,undefined4 param_2,uint param_3)" (identifier "FUN_00152930") (parameter_list "(char *param_1,undefined4 param_2,uint param_3)" (( "(") (parameter_declaration "char *param_1" (primitive_type "char") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "uint param_3" (type_identifier "uint") (identifier "param_3")) () ")"))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  \n  if (param_3 < 0x16) {\n    if (0xf < param_3) {\n      return;\n    }\n    if (param_3 == 0) {\n                    \n      FUN_002446e0("../../gold/tilegx.cc",0xc89,"check_non_pic",param_1);\n    }\n    if (param_3 < 5) {\n      return;\n    }\n  }\n  else if (0x23 < param_3) {\n    if (param_3 < 0x40) {\n      return;\n    }\n    if (param_3 - 0x6a < 3) {\n      return;\n    }\n  }\n  if (*param_1 == '\0') {\n    iVar1 = *(int *)(DAT_005ea7c8 + 8);\n    if (iVar1 == 0) {\n                    \n      FUN_002446e0("../../gold/parameters.h",0x5c,"options",param_2);\n    }\n    if ((*(char *)(iVar1 + 0x1a25) == '\0') && (*(char *)(iVar1 + 0x2931) == '\0')) {\n                    \n      FUN_002446e0("../../gold/tilegx.cc",0xc81,"check_non_pic");\n    }\n    uVar2 = gettext("requires unsupported dynamic reloc %u; recompile with -fPIC");\n    FUN_0028b750(param_2,uVar2,param_3);\n    *param_1 = '\x01';\n  }\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (if_statement "if (param_3 < 0x16) {\n    if (0xf < param_3) {\n      return;\n    }\n    if (param_3 == 0) {\n                    \n      FUN_002446e0("../../gold/tilegx.cc",0xc89,"check_non_pic",param_1);\n    }\n    if (param_3 < 5) {\n      return;\n    }\n  }\n  else if (0x23 < param_3) {\n    if (param_3 < 0x40) {\n      return;\n    }\n    if (param_3 - 0x6a < 3) {\n      return;\n    }\n  }" (if "if") (parenthesized_expression "(param_3 < 0x16)" (( "(") (binary_expression "param_3 < 0x16" (identifier "param_3") (< "<") (number_literal "0x16")) () ")")) (compound_statement "{\n    if (0xf < param_3) {\n      return;\n    }\n    if (param_3 == 0) {\n                    \n      FUN_002446e0("../../gold/tilegx.cc",0xc89,"check_non_pic",param_1);\n    }\n    if (param_3 < 5) {\n      return;\n    }\n  }" ({ "{") (if_statement "if (0xf < param_3) {\n      return;\n    }" (if "if") (parenthesized_expression "(0xf < param_3)" (( "(") (binary_expression "0xf < param_3" (number_literal "0xf") (< "<") (identifier "param_3")) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (param_3 == 0) {\n                    \n      FUN_002446e0("../../gold/tilegx.cc",0xc89,"check_non_pic",param_1);\n    }" (if "if") (parenthesized_expression "(param_3 == 0)" (( "(") (binary_expression "param_3 == 0" (identifier "param_3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n      FUN_002446e0("../../gold/tilegx.cc",0xc89,"check_non_pic",param_1);\n    }" ({ "{") (expression_statement "FUN_002446e0("../../gold/tilegx.cc",0xc89,"check_non_pic",param_1);" (call_expression "FUN_002446e0("../../gold/tilegx.cc",0xc89,"check_non_pic",param_1)" (identifier "FUN_002446e0") (argument_list "("../../gold/tilegx.cc",0xc89,"check_non_pic",param_1)" (( "(") (string_literal ""../../gold/tilegx.cc"" (" """) (string_content "../../gold/tilegx.cc") (" """)) (, ",") (number_literal "0xc89") (, ",") (string_literal ""check_non_pic"" (" """) (string_content "check_non_pic") (" """)) (, ",") (identifier "param_1") () ")"))) (; ";")) (} "}"))) (if_statement "if (param_3 < 5) {\n      return;\n    }" (if "if") (parenthesized_expression "(param_3 < 5)" (( "(") (binary_expression "param_3 < 5" (identifier "param_3") (< "<") (number_literal "5")) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")) (else_clause "else if (0x23 < param_3) {\n    if (param_3 < 0x40) {\n      return;\n    }\n    if (param_3 - 0x6a < 3) {\n      return;\n    }\n  }" (else "else") (if_statement "if (0x23 < param_3) {\n    if (param_3 < 0x40) {\n      return;\n    }\n    if (param_3 - 0x6a < 3) {\n      return;\n    }\n  }" (if "if") (parenthesized_expression "(0x23 < param_3)" (( "(") (binary_expression "0x23 < param_3" (number_literal "0x23") (< "<") (identifier "param_3")) () ")")) (compound_statement "{\n    if (param_3 < 0x40) {\n      return;\n    }\n    if (param_3 - 0x6a < 3) {\n      return;\n    }\n  }" ({ "{") (if_statement "if (param_3 < 0x40) {\n      return;\n    }" (if "if") (parenthesized_expression "(param_3 < 0x40)" (( "(") (binary_expression "param_3 < 0x40" (identifier "param_3") (< "<") (number_literal "0x40")) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (param_3 - 0x6a < 3) {\n      return;\n    }" (if "if") (parenthesized_expression "(param_3 - 0x6a < 3)" (( "(") (binary_expression "param_3 - 0x6a < 3" (binary_expression "param_3 - 0x6a" (identifier "param_3") (- "-") (number_literal "0x6a")) (< "<") (number_literal "3")) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}"))))) (if_statement "if (*param_1 == '\0') {\n    iVar1 = *(int *)(DAT_005ea7c8 + 8);\n    if (iVar1 == 0) {\n                    \n      FUN_002446e0("../../gold/parameters.h",0x5c,"options",param_2);\n    }\n    if ((*(char *)(iVar1 + 0x1a25) == '\0') && (*(char *)(iVar1 + 0x2931) == '\0')) {\n                    \n      FUN_002446e0("../../gold/tilegx.cc",0xc81,"check_non_pic");\n    }\n    uVar2 = gettext("requires unsupported dynamic reloc %u; recompile with -fPIC");\n    FUN_0028b750(param_2,uVar2,param_3);\n    *param_1 = '\x01';\n  }" (if "if") (parenthesized_expression "(*param_1 == '\0')" (( "(") (binary_expression "*param_1 == '\0'" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    iVar1 = *(int *)(DAT_005ea7c8 + 8);\n    if (iVar1 == 0) {\n                    \n      FUN_002446e0("../../gold/parameters.h",0x5c,"options",param_2);\n    }\n    if ((*(char *)(iVar1 + 0x1a25) == '\0') && (*(char *)(iVar1 + 0x2931) == '\0')) {\n                    \n      FUN_002446e0("../../gold/tilegx.cc",0xc81,"check_non_pic");\n    }\n    uVar2 = gettext("requires unsupported dynamic reloc %u; recompile with -fPIC");\n    FUN_0028b750(param_2,uVar2,param_3);\n    *param_1 = '\x01';\n  }" ({ "{") (expression_statement "iVar1 = *(int *)(DAT_005ea7c8 + 8);" (assignment_expression "iVar1 = *(int *)(DAT_005ea7c8 + 8)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(DAT_005ea7c8 + 8)" (* "*") (cast_expression "(int *)(DAT_005ea7c8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_005ea7c8 + 8)" (( "(") (binary_expression "DAT_005ea7c8 + 8" (identifier "DAT_005ea7c8") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar1 == 0) {\n                    \n      FUN_002446e0("../../gold/parameters.h",0x5c,"options",param_2);\n    }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n      FUN_002446e0("../../gold/parameters.h",0x5c,"options",param_2);\n    }" ({ "{") (expression_statement "FUN_002446e0("../../gold/parameters.h",0x5c,"options",param_2);" (call_expression "FUN_002446e0("../../gold/parameters.h",0x5c,"options",param_2)" (identifier "FUN_002446e0") (argument_list "("../../gold/parameters.h",0x5c,"options",param_2)" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x5c") (, ",") (string_literal ""options"" (" """) (string_content "options") (" """)) (, ",") (identifier "param_2") () ")"))) (; ";")) (} "}"))) (if_statement "if ((*(char *)(iVar1 + 0x1a25) == '\0') && (*(char *)(iVar1 + 0x2931) == '\0')) {\n                    \n      FUN_002446e0("../../gold/tilegx.cc",0xc81,"check_non_pic");\n    }" (if "if") (parenthesized_expression "((*(char *)(iVar1 + 0x1a25) == '\0') && (*(char *)(iVar1 + 0x2931) == '\0'))" (( "(") (binary_expression "(*(char *)(iVar1 + 0x1a25) == '\0') && (*(char *)(iVar1 + 0x2931) == '\0')" (parenthesized_expression "(*(char *)(iVar1 + 0x1a25) == '\0')" (( "(") (binary_expression "*(char *)(iVar1 + 0x1a25) == '\0'" (pointer_expression "*(char *)(iVar1 + 0x1a25)" (* "*") (cast_expression "(char *)(iVar1 + 0x1a25)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x1a25)" (( "(") (binary_expression "iVar1 + 0x1a25" (identifier "iVar1") (+ "+") (number_literal "0x1a25")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(iVar1 + 0x2931) == '\0')" (( "(") (binary_expression "*(char *)(iVar1 + 0x2931) == '\0'" (pointer_expression "*(char *)(iVar1 + 0x2931)" (* "*") (cast_expression "(char *)(iVar1 + 0x2931)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x2931)" (( "(") (binary_expression "iVar1 + 0x2931" (identifier "iVar1") (+ "+") (number_literal "0x2931")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n                    \n      FUN_002446e0("../../gold/tilegx.cc",0xc81,"check_non_pic");\n    }" ({ "{") (expression_statement "FUN_002446e0("../../gold/tilegx.cc",0xc81,"check_non_pic");" (call_expression "FUN_002446e0("../../gold/tilegx.cc",0xc81,"check_non_pic")" (identifier "FUN_002446e0") (argument_list "("../../gold/tilegx.cc",0xc81,"check_non_pic")" (( "(") (string_literal ""../../gold/tilegx.cc"" (" """) (string_content "../../gold/tilegx.cc") (" """)) (, ",") (number_literal "0xc81") (, ",") (string_literal ""check_non_pic"" (" """) (string_content "check_non_pic") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar2 = gettext("requires unsupported dynamic reloc %u; recompile with -fPIC");" (assignment_expression "uVar2 = gettext("requires unsupported dynamic reloc %u; recompile with -fPIC")" (identifier "uVar2") (= "=") (call_expression "gettext("requires unsupported dynamic reloc %u; recompile with -fPIC")" (identifier "gettext") (argument_list "("requires unsupported dynamic reloc %u; recompile with -fPIC")" (( "(") (string_literal ""requires unsupported dynamic reloc %u; recompile with -fPIC"" (" """) (string_content "requires unsupported dynamic reloc %u; recompile with -fPIC") (" """)) () ")")))) (; ";")) (expression_statement "FUN_0028b750(param_2,uVar2,param_3);" (call_expression "FUN_0028b750(param_2,uVar2,param_3)" (identifier "FUN_0028b750") (argument_list "(param_2,uVar2,param_3)" (( "(") (identifier "param_2") (, ",") (identifier "uVar2") (, ",") (identifier "param_3") () ")"))) (; ";")) (expression_statement "*param_1 = '\x01';" (assignment_expression "*param_1 = '\x01'" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* DWARF original prototype: void check_non_pic(Scan * this, Relobj * object, uint r_type) */

void __thiscall
anon_unknown.dwarf_b97484::Target_tilegx<64,_true>::Scan::check_non_pic
          (Scan *this,Relobj *object,uint r_type)

{
}


(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)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (return_statement))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content)) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (return_statement))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (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 (string_literal (string_content)) (number_literal) (string_literal (string_content)) (identifier)))))) (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: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) 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: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence)))))) (return_statement))))

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

void __regparm3 MASKED(char *param_1,undefined4 param_2,uint param_3)

{
  int iVar1;
  undefined4 uVar2;
  
  if (param_3 < 0x16) {
    if (0xf < param_3) {
      return;
    }
    if (param_3 == 0) {
                    /* WARNING: Subroutine does not return */
      FUN_002446e0("../../gold/tilegx.cc",0xc89,"check_non_pic",param_1);
    }
    if (param_3 < 5) {
      return;
    }
  }
  else if (0x23 < param_3) {
    if (param_3 < 0x40) {
      return;
    }
    if (param_3 - 0x6a < 3) {
      return;
    }
  }
  if (*param_1 == '\0') {
    iVar1 = *(int *)(DAT_005ea7c8 + 8);
    if (iVar1 == 0) {
                    /* WARNING: Subroutine does not return */
      FUN_002446e0("../../gold/parameters.h",0x5c,"options",param_2);
    }
    if ((*(char *)(iVar1 + 0x1a25) == '\0') && (*(char *)(iVar1 + 0x2931) == '\0')) {
                    /* WARNING: Subroutine does not return */
      FUN_002446e0("../../gold/tilegx.cc",0xc81,"check_non_pic");
    }
    uVar2 = gettext("requires unsupported dynamic reloc %u; recompile with -fPIC");
    FUN_0028b750(param_2,uVar2,param_3);
    *param_1 = '\x01';
  }
  return;
}

