
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* DWARF original prototype: bool initialize(Track_relocs<32,_false> * this, Object * object, uint
   reloc_shndx, uint reloc_type) */

bool __thiscall
gold::Track_relocs<32,_false>::initialize
          (Track_relocs<32,_false> *this,Object *object,uint reloc_shndx,uint reloc_type)

{
  uint uVar1;
  uchar *puVar2;
  char *format;
  uint uVar3;
  undefined4 uVar4;
  
  if (reloc_shndx == 0xffffffff) {
    return false;
  }
  if (reloc_shndx != 0) {
    puVar2 = Object::section_contents(object,reloc_shndx,&this->len_,false);
    this->prelocs_ = puVar2;
    if (reloc_type == 9) {
      this->reloc_size_ = 8;
      uVar3 = 8;
      uVar4 = 8;
    }
    else {
      if (reloc_type != 4) {
                    /* WARNING: Subroutine does not return */
        do_gold_unreachable("../../gold/reloc.cc",0x5fd,"initialize");
      }
      this->reloc_size_ = 0xc;
      uVar3 = 0xc;
      uVar4 = 0xc;
    }
    uVar1 = this->len_;
    if (uVar1 % uVar3 != 0) {
      format = (char *)gettext("reloc section size %zu is not a multiple of reloc size %d\n");
      Object::error(object,format,uVar1,uVar4);
      return false;
    }
  }
  return true;
}



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

undefined4 FUN_001487d0(undefined4 *param_1,undefined4 param_2,int param_3,int param_4)

{
  uint uVar1;
  undefined4 uVar2;
  undefined4 uVar3;
  uint uVar4;
  
  if (param_3 == -1) {
    return 0;
  }
  if (param_3 != 0) {
    uVar2 = FUN_000b19a0(param_2,param_3,param_1 + 1,0);
    *param_1 = uVar2;
    if (param_4 == 9) {
      param_1[3] = 8;
      uVar4 = 8;
      uVar2 = 8;
    }
    else {
      if (param_4 != 4) {
                    /* WARNING: Subroutine does not return */
        FUN_00069d00("../../gold/reloc.cc",0x5fd,"initialize",uVar2);
      }
      param_1[3] = 0xc;
      uVar4 = 0xc;
      uVar2 = 0xc;
    }
    uVar1 = param_1[1];
    if (uVar1 % uVar4 != 0) {
      uVar3 = gettext("reloc section size %zu is not a multiple of reloc size %d\n");
      FUN_000b1840(param_2,uVar3,uVar1,uVar2);
      return 0;
    }
  }
  return 1;
}


PUSH EDI
PUSH ESI
PUSH EBX
MOV EAX,dword ptr [ESP + 0x18]
CALL 0x00035840
ADD EBX,0x246824
MOV ESI,dword ptr [ESP + 0x10]
CMP EAX,-0x1
JZ 0x00148870
TEST EAX,EAX
JNZ 0x00148800
MOV EAX,0x1
POP EBX
POP ESI
POP EDI
RET
LEA EDX,[ESI + 0x4]
PUSH 0x0
PUSH EDX
PUSH EAX
PUSH dword ptr [ESP + 0x20]
CALL 0x000b19a0
ADD ESP,0x10
CMP dword ptr [ESP + 0x1c],0x9
MOV dword ptr [ESI],EAX
JZ 0x00148880
CMP dword ptr [ESP + 0x1c],0x4
JNZ 0x00148893
MOV dword ptr [ESI + 0xc],0xc
MOV ECX,0xc
MOV EDI,0xc
MOV ESI,dword ptr [ESI + 0x4]
XOR EDX,EDX
MOV EAX,ESI
DIV ECX
TEST EDX,EDX
JZ 0x001487f3
SUB ESP,0xc
LEA EAX,[EBX + 0xfff0743c]
PUSH EAX
CALL 0x000293b0
ADD ESP,0x10
PUSH EDI
PUSH ESI
PUSH EAX
PUSH dword ptr [ESP + 0x20]
CALL 0x000b1840
ADD ESP,0x10
XOR EAX,EAX
JMP 0x001487f8
POP EBX
XOR EAX,EAX
POP ESI
POP EDI
RET
MOV dword ptr [ESI + 0xc],0x8
MOV ECX,0x8
MOV EDI,0x8
JMP 0x00148834
PUSH EAX
LEA EAX,[EBX + 0xfff07564]
PUSH EAX
LEA EAX,[EBX + 0xfff07427]
PUSH 0x5fd
PUSH EAX
CALL 0x00069d00
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined4 FUN_001487d0(undefined4 *param_1,undefined4 param_2,int param_3,int param_4)\n\n{\n  uint uVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  \n  if (param_3 == -1) {\n    return 0;\n  }\n  if (param_3 != 0) {\n    uVar2 = FUN_000b19a0(param_2,param_3,param_1 + 1,0);\n    *param_1 = uVar2;\n    if (param_4 == 9) {\n      param_1[3] = 8;\n      uVar4 = 8;\n      uVar2 = 8;\n    }\n    else {\n      if (param_4 != 4) {\n                    /* WARNING: Subroutine does not return */\n        FUN_00069d00("../../gold/reloc.cc",0x5fd,"initialize",uVar2);\n      }\n      param_1[3] = 0xc;\n      uVar4 = 0xc;\n      uVar2 = 0xc;\n    }\n    uVar1 = param_1[1];\n    if (uVar1 % uVar4 != 0) {\n      uVar3 = gettext("reloc section size %zu is not a multiple of reloc size %d\n");\n      FUN_000b1840(param_2,uVar3,uVar1,uVar2);\n      return 0;\n    }\n  }\n  return 1;\n}\n\n" comment (function_definition "undefined4 FUN_001487d0(undefined4 *param_1,undefined4 param_2,int param_3,int param_4)\n\n{\n  uint uVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  \n  if (param_3 == -1) {\n    return 0;\n  }\n  if (param_3 != 0) {\n    uVar2 = FUN_000b19a0(param_2,param_3,param_1 + 1,0);\n    *param_1 = uVar2;\n    if (param_4 == 9) {\n      param_1[3] = 8;\n      uVar4 = 8;\n      uVar2 = 8;\n    }\n    else {\n      if (param_4 != 4) {\n                    /* WARNING: Subroutine does not return */\n        FUN_00069d00("../../gold/reloc.cc",0x5fd,"initialize",uVar2);\n      }\n      param_1[3] = 0xc;\n      uVar4 = 0xc;\n      uVar2 = 0xc;\n    }\n    uVar1 = param_1[1];\n    if (uVar1 % uVar4 != 0) {\n      uVar3 = gettext("reloc section size %zu is not a multiple of reloc size %d\n");\n      FUN_000b1840(param_2,uVar3,uVar1,uVar2);\n      return 0;\n    }\n  }\n  return 1;\n}" type_identifier (function_declarator "FUN_001487d0(undefined4 *param_1,undefined4 param_2,int param_3,int param_4)" identifier (parameter_list "(undefined4 *param_1,undefined4 param_2,int param_3,int param_4)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int param_4" primitive_type identifier) ))) (compound_statement "{\n  uint uVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  \n  if (param_3 == -1) {\n    return 0;\n  }\n  if (param_3 != 0) {\n    uVar2 = FUN_000b19a0(param_2,param_3,param_1 + 1,0);\n    *param_1 = uVar2;\n    if (param_4 == 9) {\n      param_1[3] = 8;\n      uVar4 = 8;\n      uVar2 = 8;\n    }\n    else {\n      if (param_4 != 4) {\n                    /* WARNING: Subroutine does not return */\n        FUN_00069d00("../../gold/reloc.cc",0x5fd,"initialize",uVar2);\n      }\n      param_1[3] = 0xc;\n      uVar4 = 0xc;\n      uVar2 = 0xc;\n    }\n    uVar1 = param_1[1];\n    if (uVar1 % uVar4 != 0) {\n      uVar3 = gettext("reloc section size %zu is not a multiple of reloc size %d\n");\n      FUN_000b1840(param_2,uVar3,uVar1,uVar2);\n      return 0;\n    }\n  }\n  return 1;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (if_statement "if (param_3 == -1) {\n    return 0;\n  }" if (parenthesized_expression "(param_3 == -1)" ( (binary_expression "param_3 == -1" identifier == number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (param_3 != 0) {\n    uVar2 = FUN_000b19a0(param_2,param_3,param_1 + 1,0);\n    *param_1 = uVar2;\n    if (param_4 == 9) {\n      param_1[3] = 8;\n      uVar4 = 8;\n      uVar2 = 8;\n    }\n    else {\n      if (param_4 != 4) {\n                    /* WARNING: Subroutine does not return */\n        FUN_00069d00("../../gold/reloc.cc",0x5fd,"initialize",uVar2);\n      }\n      param_1[3] = 0xc;\n      uVar4 = 0xc;\n      uVar2 = 0xc;\n    }\n    uVar1 = param_1[1];\n    if (uVar1 % uVar4 != 0) {\n      uVar3 = gettext("reloc section size %zu is not a multiple of reloc size %d\n");\n      FUN_000b1840(param_2,uVar3,uVar1,uVar2);\n      return 0;\n    }\n  }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar2 = FUN_000b19a0(param_2,param_3,param_1 + 1,0);\n    *param_1 = uVar2;\n    if (param_4 == 9) {\n      param_1[3] = 8;\n      uVar4 = 8;\n      uVar2 = 8;\n    }\n    else {\n      if (param_4 != 4) {\n                    /* WARNING: Subroutine does not return */\n        FUN_00069d00("../../gold/reloc.cc",0x5fd,"initialize",uVar2);\n      }\n      param_1[3] = 0xc;\n      uVar4 = 0xc;\n      uVar2 = 0xc;\n    }\n    uVar1 = param_1[1];\n    if (uVar1 % uVar4 != 0) {\n      uVar3 = gettext("reloc section size %zu is not a multiple of reloc size %d\n");\n      FUN_000b1840(param_2,uVar3,uVar1,uVar2);\n      return 0;\n    }\n  }" { (expression_statement "uVar2 = FUN_000b19a0(param_2,param_3,param_1 + 1,0);" (assignment_expression "uVar2 = FUN_000b19a0(param_2,param_3,param_1 + 1,0)" identifier = (call_expression "FUN_000b19a0(param_2,param_3,param_1 + 1,0)" identifier (argument_list "(param_2,param_3,param_1 + 1,0)" ( identifier , identifier , (binary_expression "param_1 + 1" identifier + number_literal) , number_literal )))) ;) (expression_statement "*param_1 = uVar2;" (assignment_expression "*param_1 = uVar2" (pointer_expression "*param_1" * identifier) = identifier) ;) (if_statement "if (param_4 == 9) {\n      param_1[3] = 8;\n      uVar4 = 8;\n      uVar2 = 8;\n    }\n    else {\n      if (param_4 != 4) {\n                    /* WARNING: Subroutine does not return */\n        FUN_00069d00("../../gold/reloc.cc",0x5fd,"initialize",uVar2);\n      }\n      param_1[3] = 0xc;\n      uVar4 = 0xc;\n      uVar2 = 0xc;\n    }" if (parenthesized_expression "(param_4 == 9)" ( (binary_expression "param_4 == 9" identifier == number_literal) )) (compound_statement "{\n      param_1[3] = 8;\n      uVar4 = 8;\n      uVar2 = 8;\n    }" { (expression_statement "param_1[3] = 8;" (assignment_expression "param_1[3] = 8" (subscript_expression "param_1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar4 = 8;" (assignment_expression "uVar4 = 8" identifier = number_literal) ;) (expression_statement "uVar2 = 8;" (assignment_expression "uVar2 = 8" identifier = number_literal) ;) }) (else_clause "else {\n      if (param_4 != 4) {\n                    /* WARNING: Subroutine does not return */\n        FUN_00069d00("../../gold/reloc.cc",0x5fd,"initialize",uVar2);\n      }\n      param_1[3] = 0xc;\n      uVar4 = 0xc;\n      uVar2 = 0xc;\n    }" else (compound_statement "{\n      if (param_4 != 4) {\n                    /* WARNING: Subroutine does not return */\n        FUN_00069d00("../../gold/reloc.cc",0x5fd,"initialize",uVar2);\n      }\n      param_1[3] = 0xc;\n      uVar4 = 0xc;\n      uVar2 = 0xc;\n    }" { (if_statement "if (param_4 != 4) {\n                    /* WARNING: Subroutine does not return */\n        FUN_00069d00("../../gold/reloc.cc",0x5fd,"initialize",uVar2);\n      }" if (parenthesized_expression "(param_4 != 4)" ( (binary_expression "param_4 != 4" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_00069d00("../../gold/reloc.cc",0x5fd,"initialize",uVar2);\n      }" { comment (expression_statement "FUN_00069d00("../../gold/reloc.cc",0x5fd,"initialize",uVar2);" (call_expression "FUN_00069d00("../../gold/reloc.cc",0x5fd,"initialize",uVar2)" identifier (argument_list "("../../gold/reloc.cc",0x5fd,"initialize",uVar2)" ( (string_literal ""../../gold/reloc.cc"" " string_content ") , number_literal , (string_literal ""initialize"" " string_content ") , identifier ))) ;) })) (expression_statement "param_1[3] = 0xc;" (assignment_expression "param_1[3] = 0xc" (subscript_expression "param_1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar4 = 0xc;" (assignment_expression "uVar4 = 0xc" identifier = number_literal) ;) (expression_statement "uVar2 = 0xc;" (assignment_expression "uVar2 = 0xc" identifier = number_literal) ;) }))) (expression_statement "uVar1 = param_1[1];" (assignment_expression "uVar1 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (if_statement "if (uVar1 % uVar4 != 0) {\n      uVar3 = gettext("reloc section size %zu is not a multiple of reloc size %d\n");\n      FUN_000b1840(param_2,uVar3,uVar1,uVar2);\n      return 0;\n    }" if (parenthesized_expression "(uVar1 % uVar4 != 0)" ( (binary_expression "uVar1 % uVar4 != 0" (binary_expression "uVar1 % uVar4" identifier % identifier) != number_literal) )) (compound_statement "{\n      uVar3 = gettext("reloc section size %zu is not a multiple of reloc size %d\n");\n      FUN_000b1840(param_2,uVar3,uVar1,uVar2);\n      return 0;\n    }" { (expression_statement "uVar3 = gettext("reloc section size %zu is not a multiple of reloc size %d\n");" (assignment_expression "uVar3 = gettext("reloc section size %zu is not a multiple of reloc size %d\n")" identifier = (call_expression "gettext("reloc section size %zu is not a multiple of reloc size %d\n")" identifier (argument_list "("reloc section size %zu is not a multiple of reloc size %d\n")" ( (string_literal ""reloc section size %zu is not a multiple of reloc size %d\n"" " string_content escape_sequence ") )))) ;) (expression_statement "FUN_000b1840(param_2,uVar3,uVar1,uVar2);" (call_expression "FUN_000b1840(param_2,uVar3,uVar1,uVar2)" identifier (argument_list "(param_2,uVar3,uVar1,uVar2)" ( identifier , identifier , identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) })) (return_statement "return 1;" return number_literal ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* DWARF original prototype: bool initialize(Track_relocs<32,_false> * this, Object * object, uint\n   reloc_shndx, uint reloc_type) */\n\nbool __thiscall\ngold::Track_relocs<32,_false>::initialize\n          (Track_relocs<32,_false> *this,Object *object,uint reloc_shndx,uint reloc_type)\n\n{\n  uint uVar1;\n  uchar *puVar2;\n  char *format;\n  uint uVar3;\n  undefined4 uVar4;\n  \n  if (reloc_shndx == 0xffffffff) {\n    return false;\n  }\n  if (reloc_shndx != 0) {\n    puVar2 = Object::section_contents(object,reloc_shndx,&this->len_,false);\n    this->prelocs_ = puVar2;\n    if (reloc_type == 9) {\n      this->reloc_size_ = 8;\n      uVar3 = 8;\n      uVar4 = 8;\n    }\n    else {\n      if (reloc_type != 4) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/reloc.cc",0x5fd,"initialize");\n      }\n      this->reloc_size_ = 0xc;\n      uVar3 = 0xc;\n      uVar4 = 0xc;\n    }\n    uVar1 = this->len_;\n    if (uVar1 % uVar3 != 0) {\n      format = (char *)gettext("reloc section size %zu is not a multiple of reloc size %d\n");\n      Object::error(object,format,uVar1,uVar4);\n      return false;\n    }\n  }\n  return true;\n}\n\n" comment comment (declaration "bool __thiscall\ngold::Track_relocs<32,_false>::initialize\n          (Track_relocs<32,_false> *this,Object *object,uint reloc_shndx,uint reloc_type)\n\n{\n  uint uVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::" identifier : :) identifier (ERROR "<32" < number_literal) , (ERROR "_false>::initialize\n          (Track_relocs<32,_false> *this,Object *object,uint reloc_shndx,uint reloc_type)\n\n{\n  uint" identifier > : : (function_declarator "initialize\n          (Track_relocs<32,_false> *this,Object *object,uint reloc_shndx,uint reloc_type)" identifier (parameter_list "(Track_relocs<32,_false> *this,Object *object,uint reloc_shndx,uint reloc_type)" ( (parameter_declaration "Track_relocs" type_identifier) (ERROR "<32" < number_literal) , (parameter_declaration "_false> *this" type_identifier (ERROR ">" >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "Object *object" type_identifier (pointer_declarator "*object" * identifier)) , (parameter_declaration "uint reloc_shndx" type_identifier identifier) , (parameter_declaration "uint reloc_type" type_identifier identifier) ))) { identifier) identifier ;) (declaration "uchar *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "char *format;" primitive_type (pointer_declarator "*format" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (if_statement "if (reloc_shndx == 0xffffffff) {\n    return false;\n  }" if (parenthesized_expression "(reloc_shndx == 0xffffffff)" ( (binary_expression "reloc_shndx == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n    return false;\n  }" { (return_statement "return false;" return false ;) })) (if_statement "if (reloc_shndx != 0) {\n    puVar2 = Object::section_contents(object,reloc_shndx,&this->len_,false);\n    this->prelocs_ = puVar2;\n    if (reloc_type == 9) {\n      this->reloc_size_ = 8;\n      uVar3 = 8;\n      uVar4 = 8;\n    }\n    else {\n      if (reloc_type != 4) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/reloc.cc",0x5fd,"initialize");\n      }\n      this->reloc_size_ = 0xc;\n      uVar3 = 0xc;\n      uVar4 = 0xc;\n    }\n    uVar1 = this->len_;\n    if (uVar1 % uVar3 != 0) {\n      format = (char *)gettext("reloc section size %zu is not a multiple of reloc size %d\n");\n      Object::error(object,format,uVar1,uVar4);\n      return false;\n    }\n  }" if (parenthesized_expression "(reloc_shndx != 0)" ( (binary_expression "reloc_shndx != 0" identifier != number_literal) )) (compound_statement "{\n    puVar2 = Object::section_contents(object,reloc_shndx,&this->len_,false);\n    this->prelocs_ = puVar2;\n    if (reloc_type == 9) {\n      this->reloc_size_ = 8;\n      uVar3 = 8;\n      uVar4 = 8;\n    }\n    else {\n      if (reloc_type != 4) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/reloc.cc",0x5fd,"initialize");\n      }\n      this->reloc_size_ = 0xc;\n      uVar3 = 0xc;\n      uVar4 = 0xc;\n    }\n    uVar1 = this->len_;\n    if (uVar1 % uVar3 != 0) {\n      format = (char *)gettext("reloc section size %zu is not a multiple of reloc size %d\n");\n      Object::error(object,format,uVar1,uVar4);\n      return false;\n    }\n  }" { (ERROR "puVar2 = Object::" (assignment_expression "puVar2 = Object" identifier = identifier) : :) (expression_statement "section_contents(object,reloc_shndx,&this->len_,false);" (call_expression "section_contents(object,reloc_shndx,&this->len_,false)" identifier (argument_list "(object,reloc_shndx,&this->len_,false)" ( identifier , identifier , (pointer_expression "&this->len_" & (field_expression "this->len_" identifier -> field_identifier)) , false ))) ;) (expression_statement "this->prelocs_ = puVar2;" (assignment_expression "this->prelocs_ = puVar2" (field_expression "this->prelocs_" identifier -> field_identifier) = identifier) ;) (if_statement "if (reloc_type == 9) {\n      this->reloc_size_ = 8;\n      uVar3 = 8;\n      uVar4 = 8;\n    }\n    else {\n      if (reloc_type != 4) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/reloc.cc",0x5fd,"initialize");\n      }\n      this->reloc_size_ = 0xc;\n      uVar3 = 0xc;\n      uVar4 = 0xc;\n    }" if (parenthesized_expression "(reloc_type == 9)" ( (binary_expression "reloc_type == 9" identifier == number_literal) )) (compound_statement "{\n      this->reloc_size_ = 8;\n      uVar3 = 8;\n      uVar4 = 8;\n    }" { (expression_statement "this->reloc_size_ = 8;" (assignment_expression "this->reloc_size_ = 8" (field_expression "this->reloc_size_" identifier -> field_identifier) = number_literal) ;) (expression_statement "uVar3 = 8;" (assignment_expression "uVar3 = 8" identifier = number_literal) ;) (expression_statement "uVar4 = 8;" (assignment_expression "uVar4 = 8" identifier = number_literal) ;) }) (else_clause "else {\n      if (reloc_type != 4) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/reloc.cc",0x5fd,"initialize");\n      }\n      this->reloc_size_ = 0xc;\n      uVar3 = 0xc;\n      uVar4 = 0xc;\n    }" else (compound_statement "{\n      if (reloc_type != 4) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/reloc.cc",0x5fd,"initialize");\n      }\n      this->reloc_size_ = 0xc;\n      uVar3 = 0xc;\n      uVar4 = 0xc;\n    }" { (if_statement "if (reloc_type != 4) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/reloc.cc",0x5fd,"initialize");\n      }" if (parenthesized_expression "(reloc_type != 4)" ( (binary_expression "reloc_type != 4" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/reloc.cc",0x5fd,"initialize");\n      }" { comment (expression_statement "do_gold_unreachable("../../gold/reloc.cc",0x5fd,"initialize");" (call_expression "do_gold_unreachable("../../gold/reloc.cc",0x5fd,"initialize")" identifier (argument_list "("../../gold/reloc.cc",0x5fd,"initialize")" ( (string_literal ""../../gold/reloc.cc"" " string_content ") , number_literal , (string_literal ""initialize"" " string_content ") ))) ;) })) (expression_statement "this->reloc_size_ = 0xc;" (assignment_expression "this->reloc_size_ = 0xc" (field_expression "this->reloc_size_" identifier -> field_identifier) = number_literal) ;) (expression_statement "uVar3 = 0xc;" (assignment_expression "uVar3 = 0xc" identifier = number_literal) ;) (expression_statement "uVar4 = 0xc;" (assignment_expression "uVar4 = 0xc" identifier = number_literal) ;) }))) (expression_statement "uVar1 = this->len_;" (assignment_expression "uVar1 = this->len_" identifier = (field_expression "this->len_" identifier -> field_identifier)) ;) (if_statement "if (uVar1 % uVar3 != 0) {\n      format = (char *)gettext("reloc section size %zu is not a multiple of reloc size %d\n");\n      Object::error(object,format,uVar1,uVar4);\n      return false;\n    }" if (parenthesized_expression "(uVar1 % uVar3 != 0)" ( (binary_expression "uVar1 % uVar3 != 0" (binary_expression "uVar1 % uVar3" identifier % identifier) != number_literal) )) (compound_statement "{\n      format = (char *)gettext("reloc section size %zu is not a multiple of reloc size %d\n");\n      Object::error(object,format,uVar1,uVar4);\n      return false;\n    }" { (expression_statement "format = (char *)gettext("reloc section size %zu is not a multiple of reloc size %d\n");" (assignment_expression "format = (char *)gettext("reloc section size %zu is not a multiple of reloc size %d\n")" identifier = (cast_expression "(char *)gettext("reloc section size %zu is not a multiple of reloc size %d\n")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("reloc section size %zu is not a multiple of reloc size %d\n")" identifier (argument_list "("reloc section size %zu is not a multiple of reloc size %d\n")" ( (string_literal ""reloc section size %zu is not a multiple of reloc size %d\n"" " string_content escape_sequence ") ))))) ;) (labeled_statement "Object::error(object,format,uVar1,uVar4);" statement_identifier : (ERROR ":" :) (expression_statement "error(object,format,uVar1,uVar4);" (call_expression "error(object,format,uVar1,uVar4)" identifier (argument_list "(object,format,uVar1,uVar4)" ( identifier , identifier , identifier , identifier ))) ;)) (return_statement "return false;" return false ;) })) })) (return_statement "return true;" return true ;) (ERROR "}" }))
(translation_unit "undefined4 FUN_001487d0(undefined4 *param_1,undefined4 param_2,int param_3,int param_4)\n\n{\n  uint uVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  \n  if (param_3 == -1) {\n    return 0;\n  }\n  if (param_3 != 0) {\n    uVar2 = FUN_000b19a0(param_2,param_3,param_1 + 1,0);\n    *param_1 = uVar2;\n    if (param_4 == 9) {\n      param_1[3] = 8;\n      uVar4 = 8;\n      uVar2 = 8;\n    }\n    else {\n      if (param_4 != 4) {\n                    \n        FUN_00069d00("../../gold/reloc.cc",0x5fd,"initialize",uVar2);\n      }\n      param_1[3] = 0xc;\n      uVar4 = 0xc;\n      uVar2 = 0xc;\n    }\n    uVar1 = param_1[1];\n    if (uVar1 % uVar4 != 0) {\n      uVar3 = gettext("reloc section size %zu is not a multiple of reloc size %d\n");\n      FUN_000b1840(param_2,uVar3,uVar1,uVar2);\n      return 0;\n    }\n  }\n  return 1;\n}\n\n" (function_definition "undefined4 FUN_001487d0(undefined4 *param_1,undefined4 param_2,int param_3,int param_4)\n\n{\n  uint uVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  \n  if (param_3 == -1) {\n    return 0;\n  }\n  if (param_3 != 0) {\n    uVar2 = FUN_000b19a0(param_2,param_3,param_1 + 1,0);\n    *param_1 = uVar2;\n    if (param_4 == 9) {\n      param_1[3] = 8;\n      uVar4 = 8;\n      uVar2 = 8;\n    }\n    else {\n      if (param_4 != 4) {\n                    \n        FUN_00069d00("../../gold/reloc.cc",0x5fd,"initialize",uVar2);\n      }\n      param_1[3] = 0xc;\n      uVar4 = 0xc;\n      uVar2 = 0xc;\n    }\n    uVar1 = param_1[1];\n    if (uVar1 % uVar4 != 0) {\n      uVar3 = gettext("reloc section size %zu is not a multiple of reloc size %d\n");\n      FUN_000b1840(param_2,uVar3,uVar1,uVar2);\n      return 0;\n    }\n  }\n  return 1;\n}" type_identifier (function_declarator "FUN_001487d0(undefined4 *param_1,undefined4 param_2,int param_3,int param_4)" identifier (parameter_list "(undefined4 *param_1,undefined4 param_2,int param_3,int param_4)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int param_4" primitive_type identifier) ))) (compound_statement "{\n  uint uVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  \n  if (param_3 == -1) {\n    return 0;\n  }\n  if (param_3 != 0) {\n    uVar2 = FUN_000b19a0(param_2,param_3,param_1 + 1,0);\n    *param_1 = uVar2;\n    if (param_4 == 9) {\n      param_1[3] = 8;\n      uVar4 = 8;\n      uVar2 = 8;\n    }\n    else {\n      if (param_4 != 4) {\n                    \n        FUN_00069d00("../../gold/reloc.cc",0x5fd,"initialize",uVar2);\n      }\n      param_1[3] = 0xc;\n      uVar4 = 0xc;\n      uVar2 = 0xc;\n    }\n    uVar1 = param_1[1];\n    if (uVar1 % uVar4 != 0) {\n      uVar3 = gettext("reloc section size %zu is not a multiple of reloc size %d\n");\n      FUN_000b1840(param_2,uVar3,uVar1,uVar2);\n      return 0;\n    }\n  }\n  return 1;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (if_statement "if (param_3 == -1) {\n    return 0;\n  }" if (parenthesized_expression "(param_3 == -1)" ( (binary_expression "param_3 == -1" identifier == number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (param_3 != 0) {\n    uVar2 = FUN_000b19a0(param_2,param_3,param_1 + 1,0);\n    *param_1 = uVar2;\n    if (param_4 == 9) {\n      param_1[3] = 8;\n      uVar4 = 8;\n      uVar2 = 8;\n    }\n    else {\n      if (param_4 != 4) {\n                    \n        FUN_00069d00("../../gold/reloc.cc",0x5fd,"initialize",uVar2);\n      }\n      param_1[3] = 0xc;\n      uVar4 = 0xc;\n      uVar2 = 0xc;\n    }\n    uVar1 = param_1[1];\n    if (uVar1 % uVar4 != 0) {\n      uVar3 = gettext("reloc section size %zu is not a multiple of reloc size %d\n");\n      FUN_000b1840(param_2,uVar3,uVar1,uVar2);\n      return 0;\n    }\n  }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar2 = FUN_000b19a0(param_2,param_3,param_1 + 1,0);\n    *param_1 = uVar2;\n    if (param_4 == 9) {\n      param_1[3] = 8;\n      uVar4 = 8;\n      uVar2 = 8;\n    }\n    else {\n      if (param_4 != 4) {\n                    \n        FUN_00069d00("../../gold/reloc.cc",0x5fd,"initialize",uVar2);\n      }\n      param_1[3] = 0xc;\n      uVar4 = 0xc;\n      uVar2 = 0xc;\n    }\n    uVar1 = param_1[1];\n    if (uVar1 % uVar4 != 0) {\n      uVar3 = gettext("reloc section size %zu is not a multiple of reloc size %d\n");\n      FUN_000b1840(param_2,uVar3,uVar1,uVar2);\n      return 0;\n    }\n  }" { (expression_statement "uVar2 = FUN_000b19a0(param_2,param_3,param_1 + 1,0);" (assignment_expression "uVar2 = FUN_000b19a0(param_2,param_3,param_1 + 1,0)" identifier = (call_expression "FUN_000b19a0(param_2,param_3,param_1 + 1,0)" identifier (argument_list "(param_2,param_3,param_1 + 1,0)" ( identifier , identifier , (binary_expression "param_1 + 1" identifier + number_literal) , number_literal )))) ;) (expression_statement "*param_1 = uVar2;" (assignment_expression "*param_1 = uVar2" (pointer_expression "*param_1" * identifier) = identifier) ;) (if_statement "if (param_4 == 9) {\n      param_1[3] = 8;\n      uVar4 = 8;\n      uVar2 = 8;\n    }\n    else {\n      if (param_4 != 4) {\n                    \n        FUN_00069d00("../../gold/reloc.cc",0x5fd,"initialize",uVar2);\n      }\n      param_1[3] = 0xc;\n      uVar4 = 0xc;\n      uVar2 = 0xc;\n    }" if (parenthesized_expression "(param_4 == 9)" ( (binary_expression "param_4 == 9" identifier == number_literal) )) (compound_statement "{\n      param_1[3] = 8;\n      uVar4 = 8;\n      uVar2 = 8;\n    }" { (expression_statement "param_1[3] = 8;" (assignment_expression "param_1[3] = 8" (subscript_expression "param_1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar4 = 8;" (assignment_expression "uVar4 = 8" identifier = number_literal) ;) (expression_statement "uVar2 = 8;" (assignment_expression "uVar2 = 8" identifier = number_literal) ;) }) (else_clause "else {\n      if (param_4 != 4) {\n                    \n        FUN_00069d00("../../gold/reloc.cc",0x5fd,"initialize",uVar2);\n      }\n      param_1[3] = 0xc;\n      uVar4 = 0xc;\n      uVar2 = 0xc;\n    }" else (compound_statement "{\n      if (param_4 != 4) {\n                    \n        FUN_00069d00("../../gold/reloc.cc",0x5fd,"initialize",uVar2);\n      }\n      param_1[3] = 0xc;\n      uVar4 = 0xc;\n      uVar2 = 0xc;\n    }" { (if_statement "if (param_4 != 4) {\n                    \n        FUN_00069d00("../../gold/reloc.cc",0x5fd,"initialize",uVar2);\n      }" if (parenthesized_expression "(param_4 != 4)" ( (binary_expression "param_4 != 4" identifier != number_literal) )) (compound_statement "{\n                    \n        FUN_00069d00("../../gold/reloc.cc",0x5fd,"initialize",uVar2);\n      }" { (expression_statement "FUN_00069d00("../../gold/reloc.cc",0x5fd,"initialize",uVar2);" (call_expression "FUN_00069d00("../../gold/reloc.cc",0x5fd,"initialize",uVar2)" identifier (argument_list "("../../gold/reloc.cc",0x5fd,"initialize",uVar2)" ( (string_literal ""../../gold/reloc.cc"" " string_content ") , number_literal , (string_literal ""initialize"" " string_content ") , identifier ))) ;) })) (expression_statement "param_1[3] = 0xc;" (assignment_expression "param_1[3] = 0xc" (subscript_expression "param_1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar4 = 0xc;" (assignment_expression "uVar4 = 0xc" identifier = number_literal) ;) (expression_statement "uVar2 = 0xc;" (assignment_expression "uVar2 = 0xc" identifier = number_literal) ;) }))) (expression_statement "uVar1 = param_1[1];" (assignment_expression "uVar1 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (if_statement "if (uVar1 % uVar4 != 0) {\n      uVar3 = gettext("reloc section size %zu is not a multiple of reloc size %d\n");\n      FUN_000b1840(param_2,uVar3,uVar1,uVar2);\n      return 0;\n    }" if (parenthesized_expression "(uVar1 % uVar4 != 0)" ( (binary_expression "uVar1 % uVar4 != 0" (binary_expression "uVar1 % uVar4" identifier % identifier) != number_literal) )) (compound_statement "{\n      uVar3 = gettext("reloc section size %zu is not a multiple of reloc size %d\n");\n      FUN_000b1840(param_2,uVar3,uVar1,uVar2);\n      return 0;\n    }" { (expression_statement "uVar3 = gettext("reloc section size %zu is not a multiple of reloc size %d\n");" (assignment_expression "uVar3 = gettext("reloc section size %zu is not a multiple of reloc size %d\n")" identifier = (call_expression "gettext("reloc section size %zu is not a multiple of reloc size %d\n")" identifier (argument_list "("reloc section size %zu is not a multiple of reloc size %d\n")" ( (string_literal ""reloc section size %zu is not a multiple of reloc size %d\n"" " string_content escape_sequence ") )))) ;) (expression_statement "FUN_000b1840(param_2,uVar3,uVar1,uVar2);" (call_expression "FUN_000b1840(param_2,uVar3,uVar1,uVar2)" identifier (argument_list "(param_2,uVar3,uVar1,uVar2)" ( identifier , identifier , identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) })) (return_statement "return 1;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (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 ))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT % IDENT) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (return_statement return LIT ;) })) })) (return_statement return LIT ;) })))
(function_definition "undefined4 FUN_001487d0(undefined4 *param_1,undefined4 param_2,int param_3,int param_4)\n\n{\n  uint uVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  \n  if (param_3 == -1) {\n    return 0;\n  }\n  if (param_3 != 0) {\n    uVar2 = FUN_000b19a0(param_2,param_3,param_1 + 1,0);\n    *param_1 = uVar2;\n    if (param_4 == 9) {\n      param_1[3] = 8;\n      uVar4 = 8;\n      uVar2 = 8;\n    }\n    else {\n      if (param_4 != 4) {\n                    \n        FUN_00069d00("../../gold/reloc.cc",0x5fd,"initialize",uVar2);\n      }\n      param_1[3] = 0xc;\n      uVar4 = 0xc;\n      uVar2 = 0xc;\n    }\n    uVar1 = param_1[1];\n    if (uVar1 % uVar4 != 0) {\n      uVar3 = gettext("reloc section size %zu is not a multiple of reloc size %d\n");\n      FUN_000b1840(param_2,uVar3,uVar1,uVar2);\n      return 0;\n    }\n  }\n  return 1;\n}" (type_identifier "undefined4") (function_declarator "FUN_001487d0(undefined4 *param_1,undefined4 param_2,int param_3,int param_4)" (identifier "FUN_001487d0") (parameter_list "(undefined4 *param_1,undefined4 param_2,int param_3,int param_4)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) () ")"))) (compound_statement "{\n  uint uVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  \n  if (param_3 == -1) {\n    return 0;\n  }\n  if (param_3 != 0) {\n    uVar2 = FUN_000b19a0(param_2,param_3,param_1 + 1,0);\n    *param_1 = uVar2;\n    if (param_4 == 9) {\n      param_1[3] = 8;\n      uVar4 = 8;\n      uVar2 = 8;\n    }\n    else {\n      if (param_4 != 4) {\n                    \n        FUN_00069d00("../../gold/reloc.cc",0x5fd,"initialize",uVar2);\n      }\n      param_1[3] = 0xc;\n      uVar4 = 0xc;\n      uVar2 = 0xc;\n    }\n    uVar1 = param_1[1];\n    if (uVar1 % uVar4 != 0) {\n      uVar3 = gettext("reloc section size %zu is not a multiple of reloc size %d\n");\n      FUN_000b1840(param_2,uVar3,uVar1,uVar2);\n      return 0;\n    }\n  }\n  return 1;\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (if_statement "if (param_3 == -1) {\n    return 0;\n  }" (if "if") (parenthesized_expression "(param_3 == -1)" (( "(") (binary_expression "param_3 == -1" (identifier "param_3") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if (param_3 != 0) {\n    uVar2 = FUN_000b19a0(param_2,param_3,param_1 + 1,0);\n    *param_1 = uVar2;\n    if (param_4 == 9) {\n      param_1[3] = 8;\n      uVar4 = 8;\n      uVar2 = 8;\n    }\n    else {\n      if (param_4 != 4) {\n                    \n        FUN_00069d00("../../gold/reloc.cc",0x5fd,"initialize",uVar2);\n      }\n      param_1[3] = 0xc;\n      uVar4 = 0xc;\n      uVar2 = 0xc;\n    }\n    uVar1 = param_1[1];\n    if (uVar1 % uVar4 != 0) {\n      uVar3 = gettext("reloc section size %zu is not a multiple of reloc size %d\n");\n      FUN_000b1840(param_2,uVar3,uVar1,uVar2);\n      return 0;\n    }\n  }" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar2 = FUN_000b19a0(param_2,param_3,param_1 + 1,0);\n    *param_1 = uVar2;\n    if (param_4 == 9) {\n      param_1[3] = 8;\n      uVar4 = 8;\n      uVar2 = 8;\n    }\n    else {\n      if (param_4 != 4) {\n                    \n        FUN_00069d00("../../gold/reloc.cc",0x5fd,"initialize",uVar2);\n      }\n      param_1[3] = 0xc;\n      uVar4 = 0xc;\n      uVar2 = 0xc;\n    }\n    uVar1 = param_1[1];\n    if (uVar1 % uVar4 != 0) {\n      uVar3 = gettext("reloc section size %zu is not a multiple of reloc size %d\n");\n      FUN_000b1840(param_2,uVar3,uVar1,uVar2);\n      return 0;\n    }\n  }" ({ "{") (expression_statement "uVar2 = FUN_000b19a0(param_2,param_3,param_1 + 1,0);" (assignment_expression "uVar2 = FUN_000b19a0(param_2,param_3,param_1 + 1,0)" (identifier "uVar2") (= "=") (call_expression "FUN_000b19a0(param_2,param_3,param_1 + 1,0)" (identifier "FUN_000b19a0") (argument_list "(param_2,param_3,param_1 + 1,0)" (( "(") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1")) (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "*param_1 = uVar2;" (assignment_expression "*param_1 = uVar2" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "uVar2")) (; ";")) (if_statement "if (param_4 == 9) {\n      param_1[3] = 8;\n      uVar4 = 8;\n      uVar2 = 8;\n    }\n    else {\n      if (param_4 != 4) {\n                    \n        FUN_00069d00("../../gold/reloc.cc",0x5fd,"initialize",uVar2);\n      }\n      param_1[3] = 0xc;\n      uVar4 = 0xc;\n      uVar2 = 0xc;\n    }" (if "if") (parenthesized_expression "(param_4 == 9)" (( "(") (binary_expression "param_4 == 9" (identifier "param_4") (== "==") (number_literal "9")) () ")")) (compound_statement "{\n      param_1[3] = 8;\n      uVar4 = 8;\n      uVar2 = 8;\n    }" ({ "{") (expression_statement "param_1[3] = 8;" (assignment_expression "param_1[3] = 8" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "8")) (; ";")) (expression_statement "uVar4 = 8;" (assignment_expression "uVar4 = 8" (identifier "uVar4") (= "=") (number_literal "8")) (; ";")) (expression_statement "uVar2 = 8;" (assignment_expression "uVar2 = 8" (identifier "uVar2") (= "=") (number_literal "8")) (; ";")) (} "}")) (else_clause "else {\n      if (param_4 != 4) {\n                    \n        FUN_00069d00("../../gold/reloc.cc",0x5fd,"initialize",uVar2);\n      }\n      param_1[3] = 0xc;\n      uVar4 = 0xc;\n      uVar2 = 0xc;\n    }" (else "else") (compound_statement "{\n      if (param_4 != 4) {\n                    \n        FUN_00069d00("../../gold/reloc.cc",0x5fd,"initialize",uVar2);\n      }\n      param_1[3] = 0xc;\n      uVar4 = 0xc;\n      uVar2 = 0xc;\n    }" ({ "{") (if_statement "if (param_4 != 4) {\n                    \n        FUN_00069d00("../../gold/reloc.cc",0x5fd,"initialize",uVar2);\n      }" (if "if") (parenthesized_expression "(param_4 != 4)" (( "(") (binary_expression "param_4 != 4" (identifier "param_4") (!= "!=") (number_literal "4")) () ")")) (compound_statement "{\n                    \n        FUN_00069d00("../../gold/reloc.cc",0x5fd,"initialize",uVar2);\n      }" ({ "{") (expression_statement "FUN_00069d00("../../gold/reloc.cc",0x5fd,"initialize",uVar2);" (call_expression "FUN_00069d00("../../gold/reloc.cc",0x5fd,"initialize",uVar2)" (identifier "FUN_00069d00") (argument_list "("../../gold/reloc.cc",0x5fd,"initialize",uVar2)" (( "(") (string_literal ""../../gold/reloc.cc"" (" """) (string_content "../../gold/reloc.cc") (" """)) (, ",") (number_literal "0x5fd") (, ",") (string_literal ""initialize"" (" """) (string_content "initialize") (" """)) (, ",") (identifier "uVar2") () ")"))) (; ";")) (} "}"))) (expression_statement "param_1[3] = 0xc;" (assignment_expression "param_1[3] = 0xc" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0xc")) (; ";")) (expression_statement "uVar4 = 0xc;" (assignment_expression "uVar4 = 0xc" (identifier "uVar4") (= "=") (number_literal "0xc")) (; ";")) (expression_statement "uVar2 = 0xc;" (assignment_expression "uVar2 = 0xc" (identifier "uVar2") (= "=") (number_literal "0xc")) (; ";")) (} "}")))) (expression_statement "uVar1 = param_1[1];" (assignment_expression "uVar1 = param_1[1]" (identifier "uVar1") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (uVar1 % uVar4 != 0) {\n      uVar3 = gettext("reloc section size %zu is not a multiple of reloc size %d\n");\n      FUN_000b1840(param_2,uVar3,uVar1,uVar2);\n      return 0;\n    }" (if "if") (parenthesized_expression "(uVar1 % uVar4 != 0)" (( "(") (binary_expression "uVar1 % uVar4 != 0" (binary_expression "uVar1 % uVar4" (identifier "uVar1") (% "%") (identifier "uVar4")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar3 = gettext("reloc section size %zu is not a multiple of reloc size %d\n");\n      FUN_000b1840(param_2,uVar3,uVar1,uVar2);\n      return 0;\n    }" ({ "{") (expression_statement "uVar3 = gettext("reloc section size %zu is not a multiple of reloc size %d\n");" (assignment_expression "uVar3 = gettext("reloc section size %zu is not a multiple of reloc size %d\n")" (identifier "uVar3") (= "=") (call_expression "gettext("reloc section size %zu is not a multiple of reloc size %d\n")" (identifier "gettext") (argument_list "("reloc section size %zu is not a multiple of reloc size %d\n")" (( "(") (string_literal ""reloc section size %zu is not a multiple of reloc size %d\n"" (" """) (string_content "reloc section size %zu is not a multiple of reloc size %d") (escape_sequence "\n") (" """)) () ")")))) (; ";")) (expression_statement "FUN_000b1840(param_2,uVar3,uVar1,uVar2);" (call_expression "FUN_000b1840(param_2,uVar3,uVar1,uVar2)" (identifier "FUN_000b1840") (argument_list "(param_2,uVar3,uVar1,uVar2)" (( "(") (identifier "param_2") (, ",") (identifier "uVar3") (, ",") (identifier "uVar1") (, ",") (identifier "uVar2") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}"))) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* DWARF original prototype: bool initialize(Track_relocs<32,_false> * this, Object * object, uint
   reloc_shndx, uint reloc_type) */

bool __thiscall
gold::Track_relocs<32,_false>::initialize
          (Track_relocs<32,_false> *this,Object *object,type_2 var_1,type_2 var_3)

{
  type_2 var_5;
  type_1 *puVar2;
  char *format;
  type_2 var_6;
  type_3 uVar4;
  
  if (var_1 == 0xffffffff) {
    return false;
  }
  if (var_1 != 0) {
    puVar2 = Object::var_2(object,var_1,&this->len_,false);
    this->prelocs_ = puVar2;
    if (var_3 == 9) {
      this->reloc_size_ = 8;
      var_6 = 8;
      uVar4 = 8;
    }
    else {
      if (var_3 != 4) {
                    /* WARNING: Subroutine does not return */
        var_4("../../gold/reloc.cc",0x5fd,"initialize");
      }
      this->reloc_size_ = 0xc;
      var_6 = 0xc;
      uVar4 = 0xc;
    }
    var_5 = this->len_;
    if (var_5 % var_6 != 0) {
      format = (char *)var_7("reloc section size %zu is not a multiple of reloc size %d\n");
      Object::var_8(object,format,var_5,uVar4);
      return false;
    }
  }
  return true;
}


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

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

undefined4 MASKED(undefined4 *param_1,undefined4 param_2,int param_3,int param_4)

{
  uint uVar1;
  undefined4 uVar2;
  undefined4 uVar3;
  uint uVar4;
  
  if (param_3 == -1) {
    return 0;
  }
  if (param_3 != 0) {
    uVar2 = FUN_000b19a0(param_2,param_3,param_1 + 1,0);
    *param_1 = uVar2;
    if (param_4 == 9) {
      param_1[3] = 8;
      uVar4 = 8;
      uVar2 = 8;
    }
    else {
      if (param_4 != 4) {
                    /* WARNING: Subroutine does not return */
        FUN_00069d00("../../gold/reloc.cc",0x5fd,"initialize",uVar2);
      }
      param_1[3] = 0xc;
      uVar4 = 0xc;
      uVar2 = 0xc;
    }
    uVar1 = param_1[1];
    if (uVar1 % uVar4 != 0) {
      uVar3 = gettext("reloc section size %zu is not a multiple of reloc size %d\n");
      FUN_000b1840(param_2,uVar3,uVar1,uVar2);
      return 0;
    }
  }
  return 1;
}

