
/* WARNING: Type propagation algorithm not settling */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* DWARF original prototype: void Output_data_got(Output_data_got<32,_true> * this, off_t data_size)
    */

void __thiscall
gold::Output_data_got<32,_true>::Output_data_got(Output_data_got<32,_true> *this,off_t data_size)

{
  byte bVar1;
  undefined *puVar2;
  size_type __n;
  int in_a2;
  uint in_a3;
  Free_list *pFVar3;
  
  bVar1 = (this->super_Output_data_got_base).super_Output_section_data_build.
          super_Output_section_data.super_Output_data.field_0x20;
  pFVar3 = &this->free_list_;
  *(undefined4 *)
   &(this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data.
    super_Output_data.field_0x24 = 0;
  (this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data.
  super_Output_data.field_0x20 = bVar1 & 7 | 0x40;
  *(undefined4 *)
   ((int)&(this->super_Output_data_got_base).super_Output_section_data_build.
          super_Output_section_data.addralign_ + 4) = 4;
  *(undefined4 *)
   &(this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data.
    addralign_ = 0;
  *(int *)&(this->super_Output_data_got_base).super_Output_section_data_build.
           super_Output_section_data.super_Output_data.data_size_ = in_a2;
  *(uint *)((int)&(this->super_Output_data_got_base).super_Output_section_data_build.
                  super_Output_section_data.super_Output_data.data_size_ + 4) = in_a3;
  puVar2 = PTR_vtable_004c1afc;
  *(undefined4 *)
   ((int)&(this->super_Output_data_got_base).super_Output_section_data_build.
          super_Output_section_data.super_Output_data.offset_ + 4) = 0xffffffff;
  *(undefined4 *)
   &(this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data.
    super_Output_data.offset_ = 0xffffffff;
  *(undefined4 *)
   ((int)&(this->super_Output_data_got_base).super_Output_section_data_build.
          super_Output_section_data.super_Output_data.address_ + 4) = 0;
  *(undefined4 *)
   &(this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data.
    super_Output_data.address_ = 0;
  (this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data.
  super_Output_data._vptr_Output_data = (_func_int_varargs **)(puVar2 + 8);
  (this->entries_).
  super__Vector_base<gold::Output_data_got<32,_true>::Got_entry,_std::allocator<gold::Output_data_got<32,_true>::Got_entry>_>
  ._M_impl._M_start = (pointer)0x0;
  (this->entries_).
  super__Vector_base<gold::Output_data_got<32,_true>::Got_entry,_std::allocator<gold::Output_data_got<32,_true>::Got_entry>_>
  ._M_impl._M_finish = (pointer)0x0;
  (this->entries_).
  super__Vector_base<gold::Output_data_got<32,_true>::Got_entry,_std::allocator<gold::Output_data_got<32,_true>::Got_entry>_>
  ._M_impl._M_end_of_storage = (pointer)0x0;
  (this->free_list_).list_.
  super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>
  ._M_impl._M_node.super__List_node_base._M_prev = (_List_node_base *)pFVar3;
  (this->free_list_).list_.
  super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>
  ._M_impl._M_node.super__List_node_base._M_next = (_List_node_base *)pFVar3;
  (this->free_list_).list_.
  super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>
  ._M_impl._M_node._M_size = 0;
  (this->free_list_).last_remove_._M_node = (_List_node_base *)pFVar3;
  (this->free_list_).extend_ = false;
  *(undefined4 *)((int)&(this->free_list_).length_ + 4) = 0;
  *(undefined4 *)&(this->free_list_).length_ = 0;
  *(undefined4 *)((int)&(this->free_list_).min_hole_ + 4) = 0;
  *(undefined4 *)&(this->free_list_).min_hole_ = 0;
  if (in_a2 < 0) {
    __n = ((uint)(in_a3 + 3 < in_a3) + in_a2) * 0x40000000 | in_a3 + 3 >> 2;
  }
  else {
    __n = in_a2 << 0x1e | in_a3 >> 2;
  }
  if (__n != 0) {
    std::
    vector<gold::Output_data_got<32,_true>::Got_entry,_std::allocator<gold::Output_data_got<32,_true>::Got_entry>_>
    ::_M_default_append(&this->entries_,__n);
  }
                    /* try { // try from 0023771c to 0023776b has its CatchHandler @ 00237774 */
  (*(code *)PTR_init_004c20f4)(pFVar3);
  return;
}



void FUN_0023762c(undefined4 *param_1,undefined4 param_2,int param_3,uint param_4)

{
  undefined *puVar1;
  uint uVar2;
  undefined4 *puVar3;
  
  puVar3 = param_1 + 0x10;
  param_1[9] = 0;
  *(byte *)(param_1 + 8) = *(byte *)(param_1 + 8) & 7 | 0x40;
  param_1[0xb] = 4;
  param_1[10] = 0;
  param_1[4] = param_3;
  param_1[5] = param_4;
  puVar1 = PTR_vtable_004c1afc;
  param_1[7] = 0xffffffff;
  param_1[6] = 0xffffffff;
  param_1[3] = 0;
  param_1[2] = 0;
  *param_1 = puVar1 + 8;
  param_1[0xc] = 0;
  param_1[0xd] = 0;
  param_1[0xe] = 0;
  param_1[0x11] = puVar3;
  param_1[0x10] = puVar3;
  param_1[0x12] = 0;
  param_1[0x13] = puVar3;
  *(undefined1 *)(param_1 + 0x14) = 0;
  param_1[0x17] = 0;
  param_1[0x16] = 0;
  param_1[0x19] = 0;
  param_1[0x18] = 0;
  if (param_3 < 0) {
    uVar2 = ((uint)(param_4 + 3 < param_4) + param_3) * 0x40000000 | param_4 + 3 >> 2;
  }
  else {
    uVar2 = param_3 << 0x1e | param_4 >> 2;
  }
  if (uVar2 != 0) {
    std::
    vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>
    ::_M_default_append((vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>
                         *)(param_1 + 0xc),uVar2);
  }
                    /* try { // try from 0023771c to 0023776b has its CatchHandler @ 00237774 */
  (*(code *)PTR_init_004c20f4)(puVar3);
  return;
}


lui gp,0x29
addiu gp,gp,0x1c14
addu gp,gp,t9
lbu v0,0x20(a0)
addiu sp,sp,-0x38
li a1,0x4
sw s0,0x24(sp)
andi v0,v0,0x7
or s0,a0,zero
sw gp,0x18(sp)
ori v1,v0,0x40
sw s3,0x30(sp)
sw s2,0x2c(sp)
or s3,a2,zero
sw s1,0x28(sp)
addiu s1,a0,0x40
sw ra,0x34(sp)
or s2,a3,zero
sw zero,0x24(a0)
or a0,zero,zero
sb v1,0x20(s0)
or v0,a2,zero
sw a1,0x2c(s0)
li a1,-0x1
sw a0,0x28(s0)
li a0,-0x1
sw a2,0x10(s0)
or a2,zero,zero
sw a3,0x14(s0)
or a3,zero,zero
lw v1,-0x7744(gp)
sw a1,0x1c(s0)
sw a0,0x18(s0)
addiu v1,v1,0x8
sw a3,0xc(s0)
sw a2,0x8(s0)
sw v1,0x0(s0)
sw zero,0x30(s0)
sw zero,0x34(s0)
sw zero,0x38(s0)
sw s1,0x44(s0)
sw s1,0x40(s0)
sw zero,0x48(s0)
sw s1,0x4c(s0)
sb zero,0x50(s0)
sw a3,0x5c(s0)
sw a2,0x58(s0)
sw a3,0x64(s0)
bltz s3,0x00237740
_sw a2,0x60(s0)
or a1,s2,zero
sll v0,v0,0x1e
srl a1,a1,0x2
or a1,v0,a1
bne a1,zero,0x00237764
_lw t9,-0x5014(gp)
lw t9,-0x714c(gp)
or a2,s3,zero
sw zero,0x10(sp)
or a3,s2,zero
jalr t9
_or a0,s1,zero
lw ra,0x34(sp)
lw s3,0x30(sp)
lw s2,0x2c(sp)
lw s1,0x28(sp)
lw s0,0x24(sp)
jr ra
_addiu sp,sp,0x38
addiu a1,s2,0x3
sltu v0,a1,s2
addu v0,v0,s3
srl a1,a1,0x2
sll v0,v0,0x1e
or a1,v0,a1
beq a1,zero,0x00237710
_lw t9,-0x714c(gp)
lw t9,-0x5014(gp)
bal 0x00237458
_addiu a0,s0,0x30
b 0x0023770c
_lw gp,0x18(sp)
(translation_unit "void FUN_0023762c(undefined4 *param_1,undefined4 param_2,int param_3,uint param_4)\n\n{\n  undefined *puVar1;\n  uint uVar2;\n  undefined4 *puVar3;\n  \n  puVar3 = param_1 + 0x10;\n  param_1[9] = 0;\n  *(byte *)(param_1 + 8) = *(byte *)(param_1 + 8) & 7 | 0x40;\n  param_1[0xb] = 4;\n  param_1[10] = 0;\n  param_1[4] = param_3;\n  param_1[5] = param_4;\n  puVar1 = PTR_vtable_004c1afc;\n  param_1[7] = 0xffffffff;\n  param_1[6] = 0xffffffff;\n  param_1[3] = 0;\n  param_1[2] = 0;\n  *param_1 = puVar1 + 8;\n  param_1[0xc] = 0;\n  param_1[0xd] = 0;\n  param_1[0xe] = 0;\n  param_1[0x11] = puVar3;\n  param_1[0x10] = puVar3;\n  param_1[0x12] = 0;\n  param_1[0x13] = puVar3;\n  *(undefined1 *)(param_1 + 0x14) = 0;\n  param_1[0x17] = 0;\n  param_1[0x16] = 0;\n  param_1[0x19] = 0;\n  param_1[0x18] = 0;\n  if (param_3 < 0) {\n    uVar2 = ((uint)(param_4 + 3 < param_4) + param_3) * 0x40000000 | param_4 + 3 >> 2;\n  }\n  else {\n    uVar2 = param_3 << 0x1e | param_4 >> 2;\n  }\n  if (uVar2 != 0) {\n    std::\n    vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n    ::_M_default_append((vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n                         *)(param_1 + 0xc),uVar2);\n  }\n                    /* try { // try from 0023771c to 0023776b has its CatchHandler @ 00237774 */\n  (*(code *)PTR_init_004c20f4)(puVar3);\n  return;\n}\n\n" (function_definition "void FUN_0023762c(undefined4 *param_1,undefined4 param_2,int param_3,uint param_4)\n\n{\n  undefined *puVar1;\n  uint uVar2;\n  undefined4 *puVar3;\n  \n  puVar3 = param_1 + 0x10;\n  param_1[9] = 0;\n  *(byte *)(param_1 + 8) = *(byte *)(param_1 + 8) & 7 | 0x40;\n  param_1[0xb] = 4;\n  param_1[10] = 0;\n  param_1[4] = param_3;\n  param_1[5] = param_4;\n  puVar1 = PTR_vtable_004c1afc;\n  param_1[7] = 0xffffffff;\n  param_1[6] = 0xffffffff;\n  param_1[3] = 0;\n  param_1[2] = 0;\n  *param_1 = puVar1 + 8;\n  param_1[0xc] = 0;\n  param_1[0xd] = 0;\n  param_1[0xe] = 0;\n  param_1[0x11] = puVar3;\n  param_1[0x10] = puVar3;\n  param_1[0x12] = 0;\n  param_1[0x13] = puVar3;\n  *(undefined1 *)(param_1 + 0x14) = 0;\n  param_1[0x17] = 0;\n  param_1[0x16] = 0;\n  param_1[0x19] = 0;\n  param_1[0x18] = 0;\n  if (param_3 < 0) {\n    uVar2 = ((uint)(param_4 + 3 < param_4) + param_3) * 0x40000000 | param_4 + 3 >> 2;\n  }\n  else {\n    uVar2 = param_3 << 0x1e | param_4 >> 2;\n  }\n  if (uVar2 != 0) {\n    std::\n    vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n    ::_M_default_append((vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n                         *)(param_1 + 0xc),uVar2);\n  }\n                    /* try { // try from 0023771c to 0023776b has its CatchHandler @ 00237774 */\n  (*(code *)PTR_init_004c20f4)(puVar3);\n  return;\n}" primitive_type (function_declarator "FUN_0023762c(undefined4 *param_1,undefined4 param_2,int param_3,uint param_4)" identifier (parameter_list "(undefined4 *param_1,undefined4 param_2,int param_3,uint 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 "uint param_4" type_identifier identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  uint uVar2;\n  undefined4 *puVar3;\n  \n  puVar3 = param_1 + 0x10;\n  param_1[9] = 0;\n  *(byte *)(param_1 + 8) = *(byte *)(param_1 + 8) & 7 | 0x40;\n  param_1[0xb] = 4;\n  param_1[10] = 0;\n  param_1[4] = param_3;\n  param_1[5] = param_4;\n  puVar1 = PTR_vtable_004c1afc;\n  param_1[7] = 0xffffffff;\n  param_1[6] = 0xffffffff;\n  param_1[3] = 0;\n  param_1[2] = 0;\n  *param_1 = puVar1 + 8;\n  param_1[0xc] = 0;\n  param_1[0xd] = 0;\n  param_1[0xe] = 0;\n  param_1[0x11] = puVar3;\n  param_1[0x10] = puVar3;\n  param_1[0x12] = 0;\n  param_1[0x13] = puVar3;\n  *(undefined1 *)(param_1 + 0x14) = 0;\n  param_1[0x17] = 0;\n  param_1[0x16] = 0;\n  param_1[0x19] = 0;\n  param_1[0x18] = 0;\n  if (param_3 < 0) {\n    uVar2 = ((uint)(param_4 + 3 < param_4) + param_3) * 0x40000000 | param_4 + 3 >> 2;\n  }\n  else {\n    uVar2 = param_3 << 0x1e | param_4 >> 2;\n  }\n  if (uVar2 != 0) {\n    std::\n    vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n    ::_M_default_append((vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n                         *)(param_1 + 0xc),uVar2);\n  }\n                    /* try { // try from 0023771c to 0023776b has its CatchHandler @ 00237774 */\n  (*(code *)PTR_init_004c20f4)(puVar3);\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (expression_statement "puVar3 = param_1 + 0x10;" (assignment_expression "puVar3 = param_1 + 0x10" identifier = (binary_expression "param_1 + 0x10" identifier + number_literal)) ;) (expression_statement "param_1[9] = 0;" (assignment_expression "param_1[9] = 0" (subscript_expression "param_1[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(param_1 + 8) = *(byte *)(param_1 + 8) & 7 | 0x40;" (assignment_expression "*(byte *)(param_1 + 8) = *(byte *)(param_1 + 8) & 7 | 0x40" (pointer_expression "*(byte *)(param_1 + 8)" * (cast_expression "(byte *)(param_1 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) = (binary_expression "*(byte *)(param_1 + 8) & 7 | 0x40" (binary_expression "*(byte *)(param_1 + 8) & 7" (pointer_expression "*(byte *)(param_1 + 8)" * (cast_expression "(byte *)(param_1 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (expression_statement "param_1[0xb] = 4;" (assignment_expression "param_1[0xb] = 4" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[10] = 0;" (assignment_expression "param_1[10] = 0" (subscript_expression "param_1[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[4] = param_3;" (assignment_expression "param_1[4] = param_3" (subscript_expression "param_1[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[5] = param_4;" (assignment_expression "param_1[5] = param_4" (subscript_expression "param_1[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1 = PTR_vtable_004c1afc;" (assignment_expression "puVar1 = PTR_vtable_004c1afc" identifier = identifier) ;) (expression_statement "param_1[7] = 0xffffffff;" (assignment_expression "param_1[7] = 0xffffffff" (subscript_expression "param_1[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[6] = 0xffffffff;" (assignment_expression "param_1[6] = 0xffffffff" (subscript_expression "param_1[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[3] = 0;" (assignment_expression "param_1[3] = 0" (subscript_expression "param_1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*param_1 = puVar1 + 8;" (assignment_expression "*param_1 = puVar1 + 8" (pointer_expression "*param_1" * identifier) = (binary_expression "puVar1 + 8" identifier + number_literal)) ;) (expression_statement "param_1[0xc] = 0;" (assignment_expression "param_1[0xc] = 0" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0xd] = 0;" (assignment_expression "param_1[0xd] = 0" (subscript_expression "param_1[0xd]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0xe] = 0;" (assignment_expression "param_1[0xe] = 0" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x11] = puVar3;" (assignment_expression "param_1[0x11] = puVar3" (subscript_expression "param_1[0x11]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[0x10] = puVar3;" (assignment_expression "param_1[0x10] = puVar3" (subscript_expression "param_1[0x10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[0x12] = 0;" (assignment_expression "param_1[0x12] = 0" (subscript_expression "param_1[0x12]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x13] = puVar3;" (assignment_expression "param_1[0x13] = puVar3" (subscript_expression "param_1[0x13]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)(param_1 + 0x14) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0x14) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0x14)" * (cast_expression "(undefined1 *)(param_1 + 0x14)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "param_1[0x17] = 0;" (assignment_expression "param_1[0x17] = 0" (subscript_expression "param_1[0x17]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x16] = 0;" (assignment_expression "param_1[0x16] = 0" (subscript_expression "param_1[0x16]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x19] = 0;" (assignment_expression "param_1[0x19] = 0" (subscript_expression "param_1[0x19]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x18] = 0;" (assignment_expression "param_1[0x18] = 0" (subscript_expression "param_1[0x18]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (param_3 < 0) {\n    uVar2 = ((uint)(param_4 + 3 < param_4) + param_3) * 0x40000000 | param_4 + 3 >> 2;\n  }\n  else {\n    uVar2 = param_3 << 0x1e | param_4 >> 2;\n  }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n    uVar2 = ((uint)(param_4 + 3 < param_4) + param_3) * 0x40000000 | param_4 + 3 >> 2;\n  }" { (expression_statement "uVar2 = ((uint)(param_4 + 3 < param_4) + param_3) * 0x40000000 | param_4 + 3 >> 2;" (assignment_expression "uVar2 = ((uint)(param_4 + 3 < param_4) + param_3) * 0x40000000 | param_4 + 3 >> 2" identifier = (binary_expression "((uint)(param_4 + 3 < param_4) + param_3) * 0x40000000 | param_4 + 3 >> 2" (binary_expression "((uint)(param_4 + 3 < param_4) + param_3) * 0x40000000" (parenthesized_expression "((uint)(param_4 + 3 < param_4) + param_3)" ( (binary_expression "(uint)(param_4 + 3 < param_4) + param_3" (call_expression "(uint)(param_4 + 3 < param_4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_4 + 3 < param_4)" ( (binary_expression "param_4 + 3 < param_4" (binary_expression "param_4 + 3" identifier + number_literal) < identifier) ))) + identifier) )) * number_literal) | (binary_expression "param_4 + 3 >> 2" (binary_expression "param_4 + 3" identifier + number_literal) >> number_literal))) ;) }) (else_clause "else {\n    uVar2 = param_3 << 0x1e | param_4 >> 2;\n  }" else (compound_statement "{\n    uVar2 = param_3 << 0x1e | param_4 >> 2;\n  }" { (expression_statement "uVar2 = param_3 << 0x1e | param_4 >> 2;" (assignment_expression "uVar2 = param_3 << 0x1e | param_4 >> 2" identifier = (binary_expression "param_3 << 0x1e | param_4 >> 2" (binary_expression "param_3 << 0x1e" identifier << number_literal) | (binary_expression "param_4 >> 2" identifier >> number_literal))) ;) }))) (if_statement "if (uVar2 != 0) {\n    std::\n    vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n    ::_M_default_append((vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n                         *)(param_1 + 0xc),uVar2);\n  }" if (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    std::\n    vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n    ::_M_default_append((vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n                         *)(param_1 + 0xc),uVar2);\n  }" { (labeled_statement "std::\n    vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n    ::_M_default_append((vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n                         *)(param_1 + 0xc),uVar2);" statement_identifier (ERROR "::\n    vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold:" : : (binary_expression "vector<gold" identifier < identifier) : : (comma_expression "Output_data_got<32,true>::Got_entry,std" (binary_expression "Output_data_got<32" identifier < number_literal) , (comma_expression "true>::Got_entry,std" (binary_expression "true>::Got_entry" true > (ERROR "::" : :) identifier) , identifier)) : : (binary_expression "allocator<gold" identifier < identifier) :) : (expression_statement "Output_data_got<32,true>::Got_entry>>\n    ::_M_default_append((vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n                         *)(param_1 + 0xc),uVar2);" (comma_expression "Output_data_got<32,true>::Got_entry>>\n    ::_M_default_append((vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n                         *)(param_1 + 0xc),uVar2)" (binary_expression "Output_data_got<32" identifier < number_literal) , (binary_expression "true>::Got_entry>>\n    ::_M_default_append((vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n                         *)(param_1 + 0xc),uVar2)" true > (ERROR "::" : :) (binary_expression "Got_entry>>\n    ::_M_default_append((vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n                         *)(param_1 + 0xc),uVar2)" identifier >> (ERROR "::" : :) (call_expression "_M_default_append((vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n                         *)(param_1 + 0xc),uVar2)" identifier (argument_list "((vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n                         *)(param_1 + 0xc),uVar2)" ( (call_expression "(vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n                         *)(param_1 + 0xc)" (parenthesized_expression "(vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n                         *)" ( (ERROR "vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::" (binary_expression "vector<gold" identifier < identifier) : : (comma_expression "Output_data_got<32,true>::Got_entry,std" (binary_expression "Output_data_got<32" identifier < number_literal) , (comma_expression "true>::Got_entry,std" (binary_expression "true>::Got_entry" true > (ERROR "::" : :) identifier) , identifier)) : : (binary_expression "allocator<gold" identifier < identifier) : :) (comma_expression "Output_data_got<32,true>::Got_entry>>\n                         *" (binary_expression "Output_data_got<32" identifier < number_literal) , (binary_expression "true>::Got_entry>>\n                         *" true > (ERROR "::" : :) (binary_expression "Got_entry>>\n                         *" identifier >> (pointer_expression "*" * identifier)))) )) (argument_list "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))) , identifier )))))) ;)) })) comment (expression_statement "(*(code *)PTR_init_004c20f4)(puVar3);" (call_expression "(*(code *)PTR_init_004c20f4)(puVar3)" (parenthesized_expression "(*(code *)PTR_init_004c20f4)" ( (pointer_expression "*(code *)PTR_init_004c20f4" * (cast_expression "(code *)PTR_init_004c20f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar3)" ( identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */\n/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */\n/* DWARF original prototype: void Output_data_got(Output_data_got<32,_true> * this, off_t data_size)\n    */\n\nvoid __thiscall\ngold::Output_data_got<32,_true>::Output_data_got(Output_data_got<32,_true> *this,off_t data_size)\n\n{\n  byte bVar1;\n  undefined *puVar2;\n  size_type __n;\n  int in_a2;\n  uint in_a3;\n  Free_list *pFVar3;\n  \n  bVar1 = (this->super_Output_data_got_base).super_Output_section_data_build.\n          super_Output_section_data.super_Output_data.field_0x20;\n  pFVar3 = &this->free_list_;\n  *(undefined4 *)\n   &(this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data.\n    super_Output_data.field_0x24 = 0;\n  (this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data.\n  super_Output_data.field_0x20 = bVar1 & 7 | 0x40;\n  *(undefined4 *)\n   ((int)&(this->super_Output_data_got_base).super_Output_section_data_build.\n          super_Output_section_data.addralign_ + 4) = 4;\n  *(undefined4 *)\n   &(this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data.\n    addralign_ = 0;\n  *(int *)&(this->super_Output_data_got_base).super_Output_section_data_build.\n           super_Output_section_data.super_Output_data.data_size_ = in_a2;\n  *(uint *)((int)&(this->super_Output_data_got_base).super_Output_section_data_build.\n                  super_Output_section_data.super_Output_data.data_size_ + 4) = in_a3;\n  puVar2 = PTR_vtable_004c1afc;\n  *(undefined4 *)\n   ((int)&(this->super_Output_data_got_base).super_Output_section_data_build.\n          super_Output_section_data.super_Output_data.offset_ + 4) = 0xffffffff;\n  *(undefined4 *)\n   &(this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data.\n    super_Output_data.offset_ = 0xffffffff;\n  *(undefined4 *)\n   ((int)&(this->super_Output_data_got_base).super_Output_section_data_build.\n          super_Output_section_data.super_Output_data.address_ + 4) = 0;\n  *(undefined4 *)\n   &(this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data.\n    super_Output_data.address_ = 0;\n  (this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data.\n  super_Output_data._vptr_Output_data = (_func_int_varargs **)(puVar2 + 8);\n  (this->entries_).\n  super__Vector_base<gold::Output_data_got<32,_true>::Got_entry,_std::allocator<gold::Output_data_got<32,_true>::Got_entry>_>\n  ._M_impl._M_start = (pointer)0x0;\n  (this->entries_).\n  super__Vector_base<gold::Output_data_got<32,_true>::Got_entry,_std::allocator<gold::Output_data_got<32,_true>::Got_entry>_>\n  ._M_impl._M_finish = (pointer)0x0;\n  (this->entries_).\n  super__Vector_base<gold::Output_data_got<32,_true>::Got_entry,_std::allocator<gold::Output_data_got<32,_true>::Got_entry>_>\n  ._M_impl._M_end_of_storage = (pointer)0x0;\n  (this->free_list_).list_.\n  super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n  ._M_impl._M_node.super__List_node_base._M_prev = (_List_node_base *)pFVar3;\n  (this->free_list_).list_.\n  super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n  ._M_impl._M_node.super__List_node_base._M_next = (_List_node_base *)pFVar3;\n  (this->free_list_).list_.\n  super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n  ._M_impl._M_node._M_size = 0;\n  (this->free_list_).last_remove_._M_node = (_List_node_base *)pFVar3;\n  (this->free_list_).extend_ = false;\n  *(undefined4 *)((int)&(this->free_list_).length_ + 4) = 0;\n  *(undefined4 *)&(this->free_list_).length_ = 0;\n  *(undefined4 *)((int)&(this->free_list_).min_hole_ + 4) = 0;\n  *(undefined4 *)&(this->free_list_).min_hole_ = 0;\n  if (in_a2 < 0) {\n    __n = ((uint)(in_a3 + 3 < in_a3) + in_a2) * 0x40000000 | in_a3 + 3 >> 2;\n  }\n  else {\n    __n = in_a2 << 0x1e | in_a3 >> 2;\n  }\n  if (__n != 0) {\n    std::\n    vector<gold::Output_data_got<32,_true>::Got_entry,_std::allocator<gold::Output_data_got<32,_true>::Got_entry>_>\n    ::_M_default_append(&this->entries_,__n);\n  }\n                    /* try { // try from 0023771c to 0023776b has its CatchHandler @ 00237774 */\n  (*(code *)PTR_init_004c20f4)(pFVar3);\n  return;\n}\n\n" comment comment comment comment (declaration "void __thiscall\ngold::Output_data_got<32,_true>::Output_data_got(Output_data_got<32,_true> *this,off_t data_size)\n\n{\n  byte bVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::" identifier : :) identifier (ERROR "<32" < number_literal) , (ERROR "_true>::Output_data_got(Output_data_got<32,_true> *this,off_t data_size)\n\n{\n  byte" identifier > : : (function_declarator "Output_data_got(Output_data_got<32,_true> *this,off_t data_size)" identifier (parameter_list "(Output_data_got<32,_true> *this,off_t data_size)" ( (parameter_declaration "Output_data_got" type_identifier) (ERROR "<32" < number_literal) , (parameter_declaration "_true> *this" type_identifier (ERROR ">" >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "off_t data_size" type_identifier identifier) ))) { identifier) identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "size_type __n;" type_identifier identifier ;) (declaration "int in_a2;" primitive_type identifier ;) (declaration "uint in_a3;" type_identifier identifier ;) (declaration "Free_list *pFVar3;" type_identifier (pointer_declarator "*pFVar3" * identifier) ;) (expression_statement "bVar1 = (this->super_Output_data_got_base).super_Output_section_data_build.\n          super_Output_section_data.super_Output_data.field_0x20;" (assignment_expression "bVar1 = (this->super_Output_data_got_base).super_Output_section_data_build.\n          super_Output_section_data.super_Output_data.field_0x20" identifier = (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build.\n          super_Output_section_data.super_Output_data.field_0x20" (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build.\n          super_Output_section_data.super_Output_data" (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build.\n          super_Output_section_data" (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build" (parenthesized_expression "(this->super_Output_data_got_base)" ( (field_expression "this->super_Output_data_got_base" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "pFVar3 = &this->free_list_;" (assignment_expression "pFVar3 = &this->free_list_" identifier = (pointer_expression "&this->free_list_" & (field_expression "this->free_list_" identifier -> field_identifier))) ;) (expression_statement "*(undefined4 *)\n   &(this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data.\n    super_Output_data.field_0x24 = 0;" (assignment_expression "*(undefined4 *)\n   &(this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data.\n    super_Output_data.field_0x24 = 0" (pointer_expression "*(undefined4 *)\n   &(this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data.\n    super_Output_data.field_0x24" * (cast_expression "(undefined4 *)\n   &(this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data.\n    super_Output_data.field_0x24" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data.\n    super_Output_data.field_0x24" & (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data.\n    super_Output_data.field_0x24" (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data.\n    super_Output_data" (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data" (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build" (parenthesized_expression "(this->super_Output_data_got_base)" ( (field_expression "this->super_Output_data_got_base" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier)))) = number_literal) ;) (expression_statement "(this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data.\n  super_Output_data.field_0x20 = bVar1 & 7 | 0x40;" (assignment_expression "(this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data.\n  super_Output_data.field_0x20 = bVar1 & 7 | 0x40" (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data.\n  super_Output_data.field_0x20" (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data.\n  super_Output_data" (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data" (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build" (parenthesized_expression "(this->super_Output_data_got_base)" ( (field_expression "this->super_Output_data_got_base" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = (binary_expression "bVar1 & 7 | 0x40" (binary_expression "bVar1 & 7" identifier & number_literal) | number_literal)) ;) (expression_statement "*(undefined4 *)\n   ((int)&(this->super_Output_data_got_base).super_Output_section_data_build.\n          super_Output_section_data.addralign_ + 4) = 4;" (assignment_expression "*(undefined4 *)\n   ((int)&(this->super_Output_data_got_base).super_Output_section_data_build.\n          super_Output_section_data.addralign_ + 4) = 4" (pointer_expression "*(undefined4 *)\n   ((int)&(this->super_Output_data_got_base).super_Output_section_data_build.\n          super_Output_section_data.addralign_ + 4)" * (cast_expression "(undefined4 *)\n   ((int)&(this->super_Output_data_got_base).super_Output_section_data_build.\n          super_Output_section_data.addralign_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(this->super_Output_data_got_base).super_Output_section_data_build.\n          super_Output_section_data.addralign_ + 4)" ( (binary_expression "(int)&(this->super_Output_data_got_base).super_Output_section_data_build.\n          super_Output_section_data.addralign_ + 4" (cast_expression "(int)&(this->super_Output_data_got_base).super_Output_section_data_build.\n          super_Output_section_data.addralign_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(this->super_Output_data_got_base).super_Output_section_data_build.\n          super_Output_section_data.addralign_" & (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build.\n          super_Output_section_data.addralign_" (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build.\n          super_Output_section_data" (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build" (parenthesized_expression "(this->super_Output_data_got_base)" ( (field_expression "this->super_Output_data_got_base" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)\n   &(this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data.\n    addralign_ = 0;" (assignment_expression "*(undefined4 *)\n   &(this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data.\n    addralign_ = 0" (pointer_expression "*(undefined4 *)\n   &(this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data.\n    addralign_" * (cast_expression "(undefined4 *)\n   &(this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data.\n    addralign_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data.\n    addralign_" & (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data.\n    addralign_" (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data" (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build" (parenthesized_expression "(this->super_Output_data_got_base)" ( (field_expression "this->super_Output_data_got_base" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier)))) = number_literal) ;) (expression_statement "*(int *)&(this->super_Output_data_got_base).super_Output_section_data_build.\n           super_Output_section_data.super_Output_data.data_size_ = in_a2;" (assignment_expression "*(int *)&(this->super_Output_data_got_base).super_Output_section_data_build.\n           super_Output_section_data.super_Output_data.data_size_ = in_a2" (pointer_expression "*(int *)&(this->super_Output_data_got_base).super_Output_section_data_build.\n           super_Output_section_data.super_Output_data.data_size_" * (cast_expression "(int *)&(this->super_Output_data_got_base).super_Output_section_data_build.\n           super_Output_section_data.super_Output_data.data_size_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(this->super_Output_data_got_base).super_Output_section_data_build.\n           super_Output_section_data.super_Output_data.data_size_" & (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build.\n           super_Output_section_data.super_Output_data.data_size_" (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build.\n           super_Output_section_data.super_Output_data" (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build.\n           super_Output_section_data" (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build" (parenthesized_expression "(this->super_Output_data_got_base)" ( (field_expression "this->super_Output_data_got_base" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier)))) = identifier) ;) (expression_statement "*(uint *)((int)&(this->super_Output_data_got_base).super_Output_section_data_build.\n                  super_Output_section_data.super_Output_data.data_size_ + 4) = in_a3;" (assignment_expression "*(uint *)((int)&(this->super_Output_data_got_base).super_Output_section_data_build.\n                  super_Output_section_data.super_Output_data.data_size_ + 4) = in_a3" (pointer_expression "*(uint *)((int)&(this->super_Output_data_got_base).super_Output_section_data_build.\n                  super_Output_section_data.super_Output_data.data_size_ + 4)" * (cast_expression "(uint *)((int)&(this->super_Output_data_got_base).super_Output_section_data_build.\n                  super_Output_section_data.super_Output_data.data_size_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(this->super_Output_data_got_base).super_Output_section_data_build.\n                  super_Output_section_data.super_Output_data.data_size_ + 4)" ( (binary_expression "(int)&(this->super_Output_data_got_base).super_Output_section_data_build.\n                  super_Output_section_data.super_Output_data.data_size_ + 4" (cast_expression "(int)&(this->super_Output_data_got_base).super_Output_section_data_build.\n                  super_Output_section_data.super_Output_data.data_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(this->super_Output_data_got_base).super_Output_section_data_build.\n                  super_Output_section_data.super_Output_data.data_size_" & (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build.\n                  super_Output_section_data.super_Output_data.data_size_" (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build.\n                  super_Output_section_data.super_Output_data" (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build.\n                  super_Output_section_data" (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build" (parenthesized_expression "(this->super_Output_data_got_base)" ( (field_expression "this->super_Output_data_got_base" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "puVar2 = PTR_vtable_004c1afc;" (assignment_expression "puVar2 = PTR_vtable_004c1afc" identifier = identifier) ;) (expression_statement "*(undefined4 *)\n   ((int)&(this->super_Output_data_got_base).super_Output_section_data_build.\n          super_Output_section_data.super_Output_data.offset_ + 4) = 0xffffffff;" (assignment_expression "*(undefined4 *)\n   ((int)&(this->super_Output_data_got_base).super_Output_section_data_build.\n          super_Output_section_data.super_Output_data.offset_ + 4) = 0xffffffff" (pointer_expression "*(undefined4 *)\n   ((int)&(this->super_Output_data_got_base).super_Output_section_data_build.\n          super_Output_section_data.super_Output_data.offset_ + 4)" * (cast_expression "(undefined4 *)\n   ((int)&(this->super_Output_data_got_base).super_Output_section_data_build.\n          super_Output_section_data.super_Output_data.offset_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(this->super_Output_data_got_base).super_Output_section_data_build.\n          super_Output_section_data.super_Output_data.offset_ + 4)" ( (binary_expression "(int)&(this->super_Output_data_got_base).super_Output_section_data_build.\n          super_Output_section_data.super_Output_data.offset_ + 4" (cast_expression "(int)&(this->super_Output_data_got_base).super_Output_section_data_build.\n          super_Output_section_data.super_Output_data.offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(this->super_Output_data_got_base).super_Output_section_data_build.\n          super_Output_section_data.super_Output_data.offset_" & (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build.\n          super_Output_section_data.super_Output_data.offset_" (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build.\n          super_Output_section_data.super_Output_data" (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build.\n          super_Output_section_data" (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build" (parenthesized_expression "(this->super_Output_data_got_base)" ( (field_expression "this->super_Output_data_got_base" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)\n   &(this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data.\n    super_Output_data.offset_ = 0xffffffff;" (assignment_expression "*(undefined4 *)\n   &(this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data.\n    super_Output_data.offset_ = 0xffffffff" (pointer_expression "*(undefined4 *)\n   &(this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data.\n    super_Output_data.offset_" * (cast_expression "(undefined4 *)\n   &(this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data.\n    super_Output_data.offset_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data.\n    super_Output_data.offset_" & (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data.\n    super_Output_data.offset_" (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data.\n    super_Output_data" (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data" (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build" (parenthesized_expression "(this->super_Output_data_got_base)" ( (field_expression "this->super_Output_data_got_base" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)\n   ((int)&(this->super_Output_data_got_base).super_Output_section_data_build.\n          super_Output_section_data.super_Output_data.address_ + 4) = 0;" (assignment_expression "*(undefined4 *)\n   ((int)&(this->super_Output_data_got_base).super_Output_section_data_build.\n          super_Output_section_data.super_Output_data.address_ + 4) = 0" (pointer_expression "*(undefined4 *)\n   ((int)&(this->super_Output_data_got_base).super_Output_section_data_build.\n          super_Output_section_data.super_Output_data.address_ + 4)" * (cast_expression "(undefined4 *)\n   ((int)&(this->super_Output_data_got_base).super_Output_section_data_build.\n          super_Output_section_data.super_Output_data.address_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(this->super_Output_data_got_base).super_Output_section_data_build.\n          super_Output_section_data.super_Output_data.address_ + 4)" ( (binary_expression "(int)&(this->super_Output_data_got_base).super_Output_section_data_build.\n          super_Output_section_data.super_Output_data.address_ + 4" (cast_expression "(int)&(this->super_Output_data_got_base).super_Output_section_data_build.\n          super_Output_section_data.super_Output_data.address_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(this->super_Output_data_got_base).super_Output_section_data_build.\n          super_Output_section_data.super_Output_data.address_" & (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build.\n          super_Output_section_data.super_Output_data.address_" (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build.\n          super_Output_section_data.super_Output_data" (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build.\n          super_Output_section_data" (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build" (parenthesized_expression "(this->super_Output_data_got_base)" ( (field_expression "this->super_Output_data_got_base" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)\n   &(this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data.\n    super_Output_data.address_ = 0;" (assignment_expression "*(undefined4 *)\n   &(this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data.\n    super_Output_data.address_ = 0" (pointer_expression "*(undefined4 *)\n   &(this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data.\n    super_Output_data.address_" * (cast_expression "(undefined4 *)\n   &(this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data.\n    super_Output_data.address_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data.\n    super_Output_data.address_" & (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data.\n    super_Output_data.address_" (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data.\n    super_Output_data" (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data" (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build" (parenthesized_expression "(this->super_Output_data_got_base)" ( (field_expression "this->super_Output_data_got_base" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier)))) = number_literal) ;) (expression_statement "(this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data.\n  super_Output_data._vptr_Output_data = (_func_int_varargs **)(puVar2 + 8);" (assignment_expression "(this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data.\n  super_Output_data._vptr_Output_data = (_func_int_varargs **)(puVar2 + 8)" (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data.\n  super_Output_data._vptr_Output_data" (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data.\n  super_Output_data" (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data" (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build" (parenthesized_expression "(this->super_Output_data_got_base)" ( (field_expression "this->super_Output_data_got_base" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(_func_int_varargs **)(puVar2 + 8)" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + 8)" ( (binary_expression "puVar2 + 8" identifier + number_literal) )))) ;) (expression_statement "(this->entries_).\n  super__Vector_base<gold::Output_data_got<32,_true>::Got_entry,_std::allocator<gold::Output_data_got<32,_true>::Got_entry>_>\n  ._M_impl._M_start = (pointer)0x0;" (assignment_expression "(this->entries_).\n  super__Vector_base<gold::Output_data_got<32,_true>::Got_entry,_std::allocator<gold::Output_data_got<32,_true>::Got_entry>_>\n  ._M_impl._M_start = (pointer)0x0" (field_expression "(this->entries_).\n  super__Vector_base<gold::Output_data_got<32,_true>::Got_entry,_std::allocator<gold::Output_data_got<32,_true>::Got_entry>_>\n  ._M_impl._M_start" (field_expression "(this->entries_).\n  super__Vector_base<gold::Output_data_got<32,_true>::Got_entry,_std::allocator<gold::Output_data_got<32,_true>::Got_entry>_>\n  ._M_impl" (binary_expression "(this->entries_).\n  super__Vector_base<gold::Output_data_got<32,_true>::Got_entry,_std::allocator<gold::Output_data_got<32,_true>::Got_entry>_" (binary_expression "(this->entries_).\n  super__Vector_base<gold::Output_data_got<32,_true>::Got_entry,_std::allocator<gold::Output_data_got<32,_true>::Got_entry" (binary_expression "(this->entries_).\n  super__Vector_base<gold::Output_data_got<32,_true>::Got_entry,_std::allocator<gold::Output_data_got<32" (binary_expression "(this->entries_).\n  super__Vector_base<gold::Output_data_got<32,_true>::Got_entry,_std::allocator<gold" (binary_expression "(this->entries_).\n  super__Vector_base<gold::Output_data_got<32,_true>::Got_entry" (binary_expression "(this->entries_).\n  super__Vector_base<gold::Output_data_got<32" (binary_expression "(this->entries_).\n  super__Vector_base<gold" (field_expression "(this->entries_).\n  super__Vector_base" (parenthesized_expression "(this->entries_)" ( (field_expression "this->entries_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Output_data_got" : : identifier) < number_literal) (ERROR ",_true" , identifier) > (ERROR "::" : :) identifier) (ERROR ",_std::allocator" , identifier : : identifier) < identifier) (ERROR "::Output_data_got" : : identifier) < number_literal) (ERROR ",_true" , identifier) > (ERROR "::" : :) identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "(this->entries_).\n  super__Vector_base<gold::Output_data_got<32,_true>::Got_entry,_std::allocator<gold::Output_data_got<32,_true>::Got_entry>_>\n  ._M_impl._M_finish = (pointer)0x0;" (assignment_expression "(this->entries_).\n  super__Vector_base<gold::Output_data_got<32,_true>::Got_entry,_std::allocator<gold::Output_data_got<32,_true>::Got_entry>_>\n  ._M_impl._M_finish = (pointer)0x0" (field_expression "(this->entries_).\n  super__Vector_base<gold::Output_data_got<32,_true>::Got_entry,_std::allocator<gold::Output_data_got<32,_true>::Got_entry>_>\n  ._M_impl._M_finish" (field_expression "(this->entries_).\n  super__Vector_base<gold::Output_data_got<32,_true>::Got_entry,_std::allocator<gold::Output_data_got<32,_true>::Got_entry>_>\n  ._M_impl" (binary_expression "(this->entries_).\n  super__Vector_base<gold::Output_data_got<32,_true>::Got_entry,_std::allocator<gold::Output_data_got<32,_true>::Got_entry>_" (binary_expression "(this->entries_).\n  super__Vector_base<gold::Output_data_got<32,_true>::Got_entry,_std::allocator<gold::Output_data_got<32,_true>::Got_entry" (binary_expression "(this->entries_).\n  super__Vector_base<gold::Output_data_got<32,_true>::Got_entry,_std::allocator<gold::Output_data_got<32" (binary_expression "(this->entries_).\n  super__Vector_base<gold::Output_data_got<32,_true>::Got_entry,_std::allocator<gold" (binary_expression "(this->entries_).\n  super__Vector_base<gold::Output_data_got<32,_true>::Got_entry" (binary_expression "(this->entries_).\n  super__Vector_base<gold::Output_data_got<32" (binary_expression "(this->entries_).\n  super__Vector_base<gold" (field_expression "(this->entries_).\n  super__Vector_base" (parenthesized_expression "(this->entries_)" ( (field_expression "this->entries_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Output_data_got" : : identifier) < number_literal) (ERROR ",_true" , identifier) > (ERROR "::" : :) identifier) (ERROR ",_std::allocator" , identifier : : identifier) < identifier) (ERROR "::Output_data_got" : : identifier) < number_literal) (ERROR ",_true" , identifier) > (ERROR "::" : :) identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "(this->entries_).\n  super__Vector_base<gold::Output_data_got<32,_true>::Got_entry,_std::allocator<gold::Output_data_got<32,_true>::Got_entry>_>\n  ._M_impl._M_end_of_storage = (pointer)0x0;" (assignment_expression "(this->entries_).\n  super__Vector_base<gold::Output_data_got<32,_true>::Got_entry,_std::allocator<gold::Output_data_got<32,_true>::Got_entry>_>\n  ._M_impl._M_end_of_storage = (pointer)0x0" (field_expression "(this->entries_).\n  super__Vector_base<gold::Output_data_got<32,_true>::Got_entry,_std::allocator<gold::Output_data_got<32,_true>::Got_entry>_>\n  ._M_impl._M_end_of_storage" (field_expression "(this->entries_).\n  super__Vector_base<gold::Output_data_got<32,_true>::Got_entry,_std::allocator<gold::Output_data_got<32,_true>::Got_entry>_>\n  ._M_impl" (binary_expression "(this->entries_).\n  super__Vector_base<gold::Output_data_got<32,_true>::Got_entry,_std::allocator<gold::Output_data_got<32,_true>::Got_entry>_" (binary_expression "(this->entries_).\n  super__Vector_base<gold::Output_data_got<32,_true>::Got_entry,_std::allocator<gold::Output_data_got<32,_true>::Got_entry" (binary_expression "(this->entries_).\n  super__Vector_base<gold::Output_data_got<32,_true>::Got_entry,_std::allocator<gold::Output_data_got<32" (binary_expression "(this->entries_).\n  super__Vector_base<gold::Output_data_got<32,_true>::Got_entry,_std::allocator<gold" (binary_expression "(this->entries_).\n  super__Vector_base<gold::Output_data_got<32,_true>::Got_entry" (binary_expression "(this->entries_).\n  super__Vector_base<gold::Output_data_got<32" (binary_expression "(this->entries_).\n  super__Vector_base<gold" (field_expression "(this->entries_).\n  super__Vector_base" (parenthesized_expression "(this->entries_)" ( (field_expression "this->entries_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Output_data_got" : : identifier) < number_literal) (ERROR ",_true" , identifier) > (ERROR "::" : :) identifier) (ERROR ",_std::allocator" , identifier : : identifier) < identifier) (ERROR "::Output_data_got" : : identifier) < number_literal) (ERROR ",_true" , identifier) > (ERROR "::" : :) identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (ERROR "(this->free_list_).list_.\n  super__List_base<gold::" (binary_expression "(this->free_list_).list_.\n  super__List_base<gold" (field_expression "(this->free_list_).list_.\n  super__List_base" (field_expression "(this->free_list_).list_" (parenthesized_expression "(this->free_list_)" ( (field_expression "this->free_list_" identifier -> field_identifier) )) . field_identifier) . field_identifier) < identifier) : :) (labeled_statement "Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n  ._M_impl._M_node.super__List_node_base._M_prev = (_List_node_base *)pFVar3;" statement_identifier (ERROR "::Free_list_node,_std::allocator<gold:" : : (comma_expression "Free_list_node,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Free_list::Free_list_node>_>\n  ._M_impl._M_node.super__List_node_base._M_prev = (_List_node_base *)pFVar3;" statement_identifier : (ERROR ":" :) (expression_statement "Free_list_node>_>\n  ._M_impl._M_node.super__List_node_base._M_prev = (_List_node_base *)pFVar3;" (assignment_expression "Free_list_node>_>\n  ._M_impl._M_node.super__List_node_base._M_prev = (_List_node_base *)pFVar3" (field_expression "Free_list_node>_>\n  ._M_impl._M_node.super__List_node_base._M_prev" (field_expression "Free_list_node>_>\n  ._M_impl._M_node.super__List_node_base" (field_expression "Free_list_node>_>\n  ._M_impl._M_node" (field_expression "Free_list_node>_>\n  ._M_impl" (binary_expression "Free_list_node>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(_List_node_base *)pFVar3" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;))) (ERROR "(this->free_list_).list_.\n  super__List_base<gold::" (binary_expression "(this->free_list_).list_.\n  super__List_base<gold" (field_expression "(this->free_list_).list_.\n  super__List_base" (field_expression "(this->free_list_).list_" (parenthesized_expression "(this->free_list_)" ( (field_expression "this->free_list_" identifier -> field_identifier) )) . field_identifier) . field_identifier) < identifier) : :) (labeled_statement "Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n  ._M_impl._M_node.super__List_node_base._M_next = (_List_node_base *)pFVar3;" statement_identifier (ERROR "::Free_list_node,_std::allocator<gold:" : : (comma_expression "Free_list_node,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Free_list::Free_list_node>_>\n  ._M_impl._M_node.super__List_node_base._M_next = (_List_node_base *)pFVar3;" statement_identifier : (ERROR ":" :) (expression_statement "Free_list_node>_>\n  ._M_impl._M_node.super__List_node_base._M_next = (_List_node_base *)pFVar3;" (assignment_expression "Free_list_node>_>\n  ._M_impl._M_node.super__List_node_base._M_next = (_List_node_base *)pFVar3" (field_expression "Free_list_node>_>\n  ._M_impl._M_node.super__List_node_base._M_next" (field_expression "Free_list_node>_>\n  ._M_impl._M_node.super__List_node_base" (field_expression "Free_list_node>_>\n  ._M_impl._M_node" (field_expression "Free_list_node>_>\n  ._M_impl" (binary_expression "Free_list_node>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(_List_node_base *)pFVar3" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;))) (ERROR "(this->free_list_).list_.\n  super__List_base<gold::" (binary_expression "(this->free_list_).list_.\n  super__List_base<gold" (field_expression "(this->free_list_).list_.\n  super__List_base" (field_expression "(this->free_list_).list_" (parenthesized_expression "(this->free_list_)" ( (field_expression "this->free_list_" identifier -> field_identifier) )) . field_identifier) . field_identifier) < identifier) : :) (labeled_statement "Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n  ._M_impl._M_node._M_size = 0;" statement_identifier (ERROR "::Free_list_node,_std::allocator<gold:" : : (comma_expression "Free_list_node,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Free_list::Free_list_node>_>\n  ._M_impl._M_node._M_size = 0;" statement_identifier : (ERROR ":" :) (expression_statement "Free_list_node>_>\n  ._M_impl._M_node._M_size = 0;" (assignment_expression "Free_list_node>_>\n  ._M_impl._M_node._M_size = 0" (field_expression "Free_list_node>_>\n  ._M_impl._M_node._M_size" (field_expression "Free_list_node>_>\n  ._M_impl._M_node" (field_expression "Free_list_node>_>\n  ._M_impl" (binary_expression "Free_list_node>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) = number_literal) ;))) (expression_statement "(this->free_list_).last_remove_._M_node = (_List_node_base *)pFVar3;" (assignment_expression "(this->free_list_).last_remove_._M_node = (_List_node_base *)pFVar3" (field_expression "(this->free_list_).last_remove_._M_node" (field_expression "(this->free_list_).last_remove_" (parenthesized_expression "(this->free_list_)" ( (field_expression "this->free_list_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(_List_node_base *)pFVar3" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "(this->free_list_).extend_ = false;" (assignment_expression "(this->free_list_).extend_ = false" (field_expression "(this->free_list_).extend_" (parenthesized_expression "(this->free_list_)" ( (field_expression "this->free_list_" identifier -> field_identifier) )) . field_identifier) = false) ;) (expression_statement "*(undefined4 *)((int)&(this->free_list_).length_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&(this->free_list_).length_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&(this->free_list_).length_ + 4)" * (cast_expression "(undefined4 *)((int)&(this->free_list_).length_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(this->free_list_).length_ + 4)" ( (binary_expression "(int)&(this->free_list_).length_ + 4" (cast_expression "(int)&(this->free_list_).length_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(this->free_list_).length_" & (field_expression "(this->free_list_).length_" (parenthesized_expression "(this->free_list_)" ( (field_expression "this->free_list_" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)&(this->free_list_).length_ = 0;" (assignment_expression "*(undefined4 *)&(this->free_list_).length_ = 0" (pointer_expression "*(undefined4 *)&(this->free_list_).length_" * (cast_expression "(undefined4 *)&(this->free_list_).length_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(this->free_list_).length_" & (field_expression "(this->free_list_).length_" (parenthesized_expression "(this->free_list_)" ( (field_expression "this->free_list_" identifier -> field_identifier) )) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&(this->free_list_).min_hole_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&(this->free_list_).min_hole_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&(this->free_list_).min_hole_ + 4)" * (cast_expression "(undefined4 *)((int)&(this->free_list_).min_hole_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(this->free_list_).min_hole_ + 4)" ( (binary_expression "(int)&(this->free_list_).min_hole_ + 4" (cast_expression "(int)&(this->free_list_).min_hole_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(this->free_list_).min_hole_" & (field_expression "(this->free_list_).min_hole_" (parenthesized_expression "(this->free_list_)" ( (field_expression "this->free_list_" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)&(this->free_list_).min_hole_ = 0;" (assignment_expression "*(undefined4 *)&(this->free_list_).min_hole_ = 0" (pointer_expression "*(undefined4 *)&(this->free_list_).min_hole_" * (cast_expression "(undefined4 *)&(this->free_list_).min_hole_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(this->free_list_).min_hole_" & (field_expression "(this->free_list_).min_hole_" (parenthesized_expression "(this->free_list_)" ( (field_expression "this->free_list_" identifier -> field_identifier) )) . field_identifier)))) = number_literal) ;) (if_statement "if (in_a2 < 0) {\n    __n = ((uint)(in_a3 + 3 < in_a3) + in_a2) * 0x40000000 | in_a3 + 3 >> 2;\n  }\n  else {\n    __n = in_a2 << 0x1e | in_a3 >> 2;\n  }" if (parenthesized_expression "(in_a2 < 0)" ( (binary_expression "in_a2 < 0" identifier < number_literal) )) (compound_statement "{\n    __n = ((uint)(in_a3 + 3 < in_a3) + in_a2) * 0x40000000 | in_a3 + 3 >> 2;\n  }" { (expression_statement "__n = ((uint)(in_a3 + 3 < in_a3) + in_a2) * 0x40000000 | in_a3 + 3 >> 2;" (assignment_expression "__n = ((uint)(in_a3 + 3 < in_a3) + in_a2) * 0x40000000 | in_a3 + 3 >> 2" identifier = (binary_expression "((uint)(in_a3 + 3 < in_a3) + in_a2) * 0x40000000 | in_a3 + 3 >> 2" (binary_expression "((uint)(in_a3 + 3 < in_a3) + in_a2) * 0x40000000" (parenthesized_expression "((uint)(in_a3 + 3 < in_a3) + in_a2)" ( (binary_expression "(uint)(in_a3 + 3 < in_a3) + in_a2" (call_expression "(uint)(in_a3 + 3 < in_a3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(in_a3 + 3 < in_a3)" ( (binary_expression "in_a3 + 3 < in_a3" (binary_expression "in_a3 + 3" identifier + number_literal) < identifier) ))) + identifier) )) * number_literal) | (binary_expression "in_a3 + 3 >> 2" (binary_expression "in_a3 + 3" identifier + number_literal) >> number_literal))) ;) }) (else_clause "else {\n    __n = in_a2 << 0x1e | in_a3 >> 2;\n  }" else (compound_statement "{\n    __n = in_a2 << 0x1e | in_a3 >> 2;\n  }" { (expression_statement "__n = in_a2 << 0x1e | in_a3 >> 2;" (assignment_expression "__n = in_a2 << 0x1e | in_a3 >> 2" identifier = (binary_expression "in_a2 << 0x1e | in_a3 >> 2" (binary_expression "in_a2 << 0x1e" identifier << number_literal) | (binary_expression "in_a3 >> 2" identifier >> number_literal))) ;) }))) (if_statement "if (__n != 0) {\n    std::\n    vector<gold::Output_data_got<32,_true>::Got_entry,_std::allocator<gold::Output_data_got<32,_true>::Got_entry>_>\n    ::_M_default_append(&this->entries_,__n);\n  }" if (parenthesized_expression "(__n != 0)" ( (binary_expression "__n != 0" identifier != number_literal) )) (compound_statement "{\n    std::\n    vector<gold::Output_data_got<32,_true>::Got_entry,_std::allocator<gold::Output_data_got<32,_true>::Got_entry>_>\n    ::_M_default_append(&this->entries_,__n);\n  }" { (labeled_statement "std::\n    vector<gold::Output_data_got<32,_true>::Got_entry,_std::allocator<gold::Output_data_got<32,_true>::Got_entry>_>\n    ::_M_default_append(&this->entries_,__n);" statement_identifier (ERROR "::\n    vector<gold::Output_data_got<32,_true>::Got_entry,_std::allocator<gold:" : : (binary_expression "vector<gold" identifier < identifier) : : (comma_expression "Output_data_got<32,_true>::Got_entry,_std" (binary_expression "Output_data_got<32" identifier < number_literal) , (comma_expression "_true>::Got_entry,_std" (binary_expression "_true>::Got_entry" identifier > (ERROR "::" : :) identifier) , identifier)) : : (binary_expression "allocator<gold" identifier < identifier) :) : (expression_statement "Output_data_got<32,_true>::Got_entry>_>\n    ::_M_default_append(&this->entries_,__n);" (comma_expression "Output_data_got<32,_true>::Got_entry>_>\n    ::_M_default_append(&this->entries_,__n)" (binary_expression "Output_data_got<32" identifier < number_literal) , (binary_expression "_true>::Got_entry>_>\n    ::_M_default_append(&this->entries_,__n)" (binary_expression "_true>::Got_entry>_" (binary_expression "_true>::Got_entry" identifier > (ERROR "::" : :) identifier) > identifier) > (ERROR "::" : :) (call_expression "_M_default_append(&this->entries_,__n)" identifier (argument_list "(&this->entries_,__n)" ( (pointer_expression "&this->entries_" & (field_expression "this->entries_" identifier -> field_identifier)) , identifier ))))) ;)) })) comment (expression_statement "(*(code *)PTR_init_004c20f4)(pFVar3);" (call_expression "(*(code *)PTR_init_004c20f4)(pFVar3)" (parenthesized_expression "(*(code *)PTR_init_004c20f4)" ( (pointer_expression "*(code *)PTR_init_004c20f4" * (cast_expression "(code *)PTR_init_004c20f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pFVar3)" ( identifier ))) ;) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void FUN_0023762c(undefined4 *param_1,undefined4 param_2,int param_3,uint param_4)\n\n{\n  undefined *puVar1;\n  uint uVar2;\n  undefined4 *puVar3;\n  \n  puVar3 = param_1 + 0x10;\n  param_1[9] = 0;\n  *(byte *)(param_1 + 8) = *(byte *)(param_1 + 8) & 7 | 0x40;\n  param_1[0xb] = 4;\n  param_1[10] = 0;\n  param_1[4] = param_3;\n  param_1[5] = param_4;\n  puVar1 = PTR_vtable_004c1afc;\n  param_1[7] = 0xffffffff;\n  param_1[6] = 0xffffffff;\n  param_1[3] = 0;\n  param_1[2] = 0;\n  *param_1 = puVar1 + 8;\n  param_1[0xc] = 0;\n  param_1[0xd] = 0;\n  param_1[0xe] = 0;\n  param_1[0x11] = puVar3;\n  param_1[0x10] = puVar3;\n  param_1[0x12] = 0;\n  param_1[0x13] = puVar3;\n  *(undefined1 *)(param_1 + 0x14) = 0;\n  param_1[0x17] = 0;\n  param_1[0x16] = 0;\n  param_1[0x19] = 0;\n  param_1[0x18] = 0;\n  if (param_3 < 0) {\n    uVar2 = ((uint)(param_4 + 3 < param_4) + param_3) * 0x40000000 | param_4 + 3 >> 2;\n  }\n  else {\n    uVar2 = param_3 << 0x1e | param_4 >> 2;\n  }\n  if (uVar2 != 0) {\n    std::\n    vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n    ::_M_default_append((vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n                         *)(param_1 + 0xc),uVar2);\n  }\n                    \n  (*(code *)PTR_init_004c20f4)(puVar3);\n  return;\n}\n\n" (function_definition "void FUN_0023762c(undefined4 *param_1,undefined4 param_2,int param_3,uint param_4)\n\n{\n  undefined *puVar1;\n  uint uVar2;\n  undefined4 *puVar3;\n  \n  puVar3 = param_1 + 0x10;\n  param_1[9] = 0;\n  *(byte *)(param_1 + 8) = *(byte *)(param_1 + 8) & 7 | 0x40;\n  param_1[0xb] = 4;\n  param_1[10] = 0;\n  param_1[4] = param_3;\n  param_1[5] = param_4;\n  puVar1 = PTR_vtable_004c1afc;\n  param_1[7] = 0xffffffff;\n  param_1[6] = 0xffffffff;\n  param_1[3] = 0;\n  param_1[2] = 0;\n  *param_1 = puVar1 + 8;\n  param_1[0xc] = 0;\n  param_1[0xd] = 0;\n  param_1[0xe] = 0;\n  param_1[0x11] = puVar3;\n  param_1[0x10] = puVar3;\n  param_1[0x12] = 0;\n  param_1[0x13] = puVar3;\n  *(undefined1 *)(param_1 + 0x14) = 0;\n  param_1[0x17] = 0;\n  param_1[0x16] = 0;\n  param_1[0x19] = 0;\n  param_1[0x18] = 0;\n  if (param_3 < 0) {\n    uVar2 = ((uint)(param_4 + 3 < param_4) + param_3) * 0x40000000 | param_4 + 3 >> 2;\n  }\n  else {\n    uVar2 = param_3 << 0x1e | param_4 >> 2;\n  }\n  if (uVar2 != 0) {\n    std::\n    vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n    ::_M_default_append((vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n                         *)(param_1 + 0xc),uVar2);\n  }\n                    \n  (*(code *)PTR_init_004c20f4)(puVar3);\n  return;\n}" primitive_type (function_declarator "FUN_0023762c(undefined4 *param_1,undefined4 param_2,int param_3,uint param_4)" identifier (parameter_list "(undefined4 *param_1,undefined4 param_2,int param_3,uint 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 "uint param_4" type_identifier identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  uint uVar2;\n  undefined4 *puVar3;\n  \n  puVar3 = param_1 + 0x10;\n  param_1[9] = 0;\n  *(byte *)(param_1 + 8) = *(byte *)(param_1 + 8) & 7 | 0x40;\n  param_1[0xb] = 4;\n  param_1[10] = 0;\n  param_1[4] = param_3;\n  param_1[5] = param_4;\n  puVar1 = PTR_vtable_004c1afc;\n  param_1[7] = 0xffffffff;\n  param_1[6] = 0xffffffff;\n  param_1[3] = 0;\n  param_1[2] = 0;\n  *param_1 = puVar1 + 8;\n  param_1[0xc] = 0;\n  param_1[0xd] = 0;\n  param_1[0xe] = 0;\n  param_1[0x11] = puVar3;\n  param_1[0x10] = puVar3;\n  param_1[0x12] = 0;\n  param_1[0x13] = puVar3;\n  *(undefined1 *)(param_1 + 0x14) = 0;\n  param_1[0x17] = 0;\n  param_1[0x16] = 0;\n  param_1[0x19] = 0;\n  param_1[0x18] = 0;\n  if (param_3 < 0) {\n    uVar2 = ((uint)(param_4 + 3 < param_4) + param_3) * 0x40000000 | param_4 + 3 >> 2;\n  }\n  else {\n    uVar2 = param_3 << 0x1e | param_4 >> 2;\n  }\n  if (uVar2 != 0) {\n    std::\n    vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n    ::_M_default_append((vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n                         *)(param_1 + 0xc),uVar2);\n  }\n                    \n  (*(code *)PTR_init_004c20f4)(puVar3);\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (expression_statement "puVar3 = param_1 + 0x10;" (assignment_expression "puVar3 = param_1 + 0x10" identifier = (binary_expression "param_1 + 0x10" identifier + number_literal)) ;) (expression_statement "param_1[9] = 0;" (assignment_expression "param_1[9] = 0" (subscript_expression "param_1[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(param_1 + 8) = *(byte *)(param_1 + 8) & 7 | 0x40;" (assignment_expression "*(byte *)(param_1 + 8) = *(byte *)(param_1 + 8) & 7 | 0x40" (pointer_expression "*(byte *)(param_1 + 8)" * (cast_expression "(byte *)(param_1 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) = (binary_expression "*(byte *)(param_1 + 8) & 7 | 0x40" (binary_expression "*(byte *)(param_1 + 8) & 7" (pointer_expression "*(byte *)(param_1 + 8)" * (cast_expression "(byte *)(param_1 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (expression_statement "param_1[0xb] = 4;" (assignment_expression "param_1[0xb] = 4" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[10] = 0;" (assignment_expression "param_1[10] = 0" (subscript_expression "param_1[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[4] = param_3;" (assignment_expression "param_1[4] = param_3" (subscript_expression "param_1[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[5] = param_4;" (assignment_expression "param_1[5] = param_4" (subscript_expression "param_1[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1 = PTR_vtable_004c1afc;" (assignment_expression "puVar1 = PTR_vtable_004c1afc" identifier = identifier) ;) (expression_statement "param_1[7] = 0xffffffff;" (assignment_expression "param_1[7] = 0xffffffff" (subscript_expression "param_1[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[6] = 0xffffffff;" (assignment_expression "param_1[6] = 0xffffffff" (subscript_expression "param_1[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[3] = 0;" (assignment_expression "param_1[3] = 0" (subscript_expression "param_1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*param_1 = puVar1 + 8;" (assignment_expression "*param_1 = puVar1 + 8" (pointer_expression "*param_1" * identifier) = (binary_expression "puVar1 + 8" identifier + number_literal)) ;) (expression_statement "param_1[0xc] = 0;" (assignment_expression "param_1[0xc] = 0" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0xd] = 0;" (assignment_expression "param_1[0xd] = 0" (subscript_expression "param_1[0xd]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0xe] = 0;" (assignment_expression "param_1[0xe] = 0" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x11] = puVar3;" (assignment_expression "param_1[0x11] = puVar3" (subscript_expression "param_1[0x11]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[0x10] = puVar3;" (assignment_expression "param_1[0x10] = puVar3" (subscript_expression "param_1[0x10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[0x12] = 0;" (assignment_expression "param_1[0x12] = 0" (subscript_expression "param_1[0x12]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x13] = puVar3;" (assignment_expression "param_1[0x13] = puVar3" (subscript_expression "param_1[0x13]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)(param_1 + 0x14) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0x14) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0x14)" * (cast_expression "(undefined1 *)(param_1 + 0x14)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "param_1[0x17] = 0;" (assignment_expression "param_1[0x17] = 0" (subscript_expression "param_1[0x17]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x16] = 0;" (assignment_expression "param_1[0x16] = 0" (subscript_expression "param_1[0x16]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x19] = 0;" (assignment_expression "param_1[0x19] = 0" (subscript_expression "param_1[0x19]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x18] = 0;" (assignment_expression "param_1[0x18] = 0" (subscript_expression "param_1[0x18]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (param_3 < 0) {\n    uVar2 = ((uint)(param_4 + 3 < param_4) + param_3) * 0x40000000 | param_4 + 3 >> 2;\n  }\n  else {\n    uVar2 = param_3 << 0x1e | param_4 >> 2;\n  }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n    uVar2 = ((uint)(param_4 + 3 < param_4) + param_3) * 0x40000000 | param_4 + 3 >> 2;\n  }" { (expression_statement "uVar2 = ((uint)(param_4 + 3 < param_4) + param_3) * 0x40000000 | param_4 + 3 >> 2;" (assignment_expression "uVar2 = ((uint)(param_4 + 3 < param_4) + param_3) * 0x40000000 | param_4 + 3 >> 2" identifier = (binary_expression "((uint)(param_4 + 3 < param_4) + param_3) * 0x40000000 | param_4 + 3 >> 2" (binary_expression "((uint)(param_4 + 3 < param_4) + param_3) * 0x40000000" (parenthesized_expression "((uint)(param_4 + 3 < param_4) + param_3)" ( (binary_expression "(uint)(param_4 + 3 < param_4) + param_3" (call_expression "(uint)(param_4 + 3 < param_4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_4 + 3 < param_4)" ( (binary_expression "param_4 + 3 < param_4" (binary_expression "param_4 + 3" identifier + number_literal) < identifier) ))) + identifier) )) * number_literal) | (binary_expression "param_4 + 3 >> 2" (binary_expression "param_4 + 3" identifier + number_literal) >> number_literal))) ;) }) (else_clause "else {\n    uVar2 = param_3 << 0x1e | param_4 >> 2;\n  }" else (compound_statement "{\n    uVar2 = param_3 << 0x1e | param_4 >> 2;\n  }" { (expression_statement "uVar2 = param_3 << 0x1e | param_4 >> 2;" (assignment_expression "uVar2 = param_3 << 0x1e | param_4 >> 2" identifier = (binary_expression "param_3 << 0x1e | param_4 >> 2" (binary_expression "param_3 << 0x1e" identifier << number_literal) | (binary_expression "param_4 >> 2" identifier >> number_literal))) ;) }))) (if_statement "if (uVar2 != 0) {\n    std::\n    vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n    ::_M_default_append((vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n                         *)(param_1 + 0xc),uVar2);\n  }" if (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    std::\n    vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n    ::_M_default_append((vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n                         *)(param_1 + 0xc),uVar2);\n  }" { (labeled_statement "std::\n    vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n    ::_M_default_append((vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n                         *)(param_1 + 0xc),uVar2);" statement_identifier (ERROR "::\n    vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold:" : : (binary_expression "vector<gold" identifier < identifier) : : (comma_expression "Output_data_got<32,true>::Got_entry,std" (binary_expression "Output_data_got<32" identifier < number_literal) , (comma_expression "true>::Got_entry,std" (binary_expression "true>::Got_entry" true > (ERROR "::" : :) identifier) , identifier)) : : (binary_expression "allocator<gold" identifier < identifier) :) : (expression_statement "Output_data_got<32,true>::Got_entry>>\n    ::_M_default_append((vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n                         *)(param_1 + 0xc),uVar2);" (comma_expression "Output_data_got<32,true>::Got_entry>>\n    ::_M_default_append((vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n                         *)(param_1 + 0xc),uVar2)" (binary_expression "Output_data_got<32" identifier < number_literal) , (binary_expression "true>::Got_entry>>\n    ::_M_default_append((vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n                         *)(param_1 + 0xc),uVar2)" true > (ERROR "::" : :) (binary_expression "Got_entry>>\n    ::_M_default_append((vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n                         *)(param_1 + 0xc),uVar2)" identifier >> (ERROR "::" : :) (call_expression "_M_default_append((vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n                         *)(param_1 + 0xc),uVar2)" identifier (argument_list "((vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n                         *)(param_1 + 0xc),uVar2)" ( (call_expression "(vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n                         *)(param_1 + 0xc)" (parenthesized_expression "(vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n                         *)" ( (ERROR "vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::" (binary_expression "vector<gold" identifier < identifier) : : (comma_expression "Output_data_got<32,true>::Got_entry,std" (binary_expression "Output_data_got<32" identifier < number_literal) , (comma_expression "true>::Got_entry,std" (binary_expression "true>::Got_entry" true > (ERROR "::" : :) identifier) , identifier)) : : (binary_expression "allocator<gold" identifier < identifier) : :) (comma_expression "Output_data_got<32,true>::Got_entry>>\n                         *" (binary_expression "Output_data_got<32" identifier < number_literal) , (binary_expression "true>::Got_entry>>\n                         *" true > (ERROR "::" : :) (binary_expression "Got_entry>>\n                         *" identifier >> (pointer_expression "*" * identifier)))) )) (argument_list "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))) , identifier )))))) ;)) })) (expression_statement "(*(code *)PTR_init_004c20f4)(puVar3);" (call_expression "(*(code *)PTR_init_004c20f4)(puVar3)" (parenthesized_expression "(*(code *)PTR_init_004c20f4)" ( (pointer_expression "*(code *)PTR_init_004c20f4" * (cast_expression "(code *)PTR_init_004c20f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar3)" ( identifier ))) ;) (return_statement "return;" return ;) })))
(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 (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT + LIT) < IDENT) ))) + IDENT) )) * LIT) | (binary_expression (binary_expression IDENT + LIT) >> LIT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier (ERROR : : (binary_expression IDENT < IDENT) : : (comma_expression (binary_expression IDENT < LIT) , (comma_expression (binary_expression BOOL > (ERROR : :) IDENT) , IDENT)) : : (binary_expression IDENT < IDENT) :) : (expression_statement (comma_expression (binary_expression IDENT < LIT) , (binary_expression BOOL > (ERROR : :) (binary_expression IDENT >> (ERROR : :) (call_expression IDENT (argument_list ( (call_expression (parenthesized_expression ( (ERROR (binary_expression IDENT < IDENT) : : (comma_expression (binary_expression IDENT < LIT) , (comma_expression (binary_expression BOOL > (ERROR : :) IDENT) , IDENT)) : : (binary_expression IDENT < IDENT) : :) (comma_expression (binary_expression IDENT < LIT) , (binary_expression BOOL > (ERROR : :) (binary_expression IDENT >> (pointer_expression * IDENT)))) )) (argument_list ( (binary_expression IDENT + LIT) ))) , IDENT )))))) ;)) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (return_statement return ;) })))
(function_definition "void FUN_0023762c(undefined4 *param_1,undefined4 param_2,int param_3,uint param_4)\n\n{\n  undefined *puVar1;\n  uint uVar2;\n  undefined4 *puVar3;\n  \n  puVar3 = param_1 + 0x10;\n  param_1[9] = 0;\n  *(byte *)(param_1 + 8) = *(byte *)(param_1 + 8) & 7 | 0x40;\n  param_1[0xb] = 4;\n  param_1[10] = 0;\n  param_1[4] = param_3;\n  param_1[5] = param_4;\n  puVar1 = PTR_vtable_004c1afc;\n  param_1[7] = 0xffffffff;\n  param_1[6] = 0xffffffff;\n  param_1[3] = 0;\n  param_1[2] = 0;\n  *param_1 = puVar1 + 8;\n  param_1[0xc] = 0;\n  param_1[0xd] = 0;\n  param_1[0xe] = 0;\n  param_1[0x11] = puVar3;\n  param_1[0x10] = puVar3;\n  param_1[0x12] = 0;\n  param_1[0x13] = puVar3;\n  *(undefined1 *)(param_1 + 0x14) = 0;\n  param_1[0x17] = 0;\n  param_1[0x16] = 0;\n  param_1[0x19] = 0;\n  param_1[0x18] = 0;\n  if (param_3 < 0) {\n    uVar2 = ((uint)(param_4 + 3 < param_4) + param_3) * 0x40000000 | param_4 + 3 >> 2;\n  }\n  else {\n    uVar2 = param_3 << 0x1e | param_4 >> 2;\n  }\n  if (uVar2 != 0) {\n    std::\n    vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n    ::_M_default_append((vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n                         *)(param_1 + 0xc),uVar2);\n  }\n                    \n  (*(code *)PTR_init_004c20f4)(puVar3);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0023762c(undefined4 *param_1,undefined4 param_2,int param_3,uint param_4)" (identifier "FUN_0023762c") (parameter_list "(undefined4 *param_1,undefined4 param_2,int param_3,uint 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 "uint param_4" (type_identifier "uint") (identifier "param_4")) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  uint uVar2;\n  undefined4 *puVar3;\n  \n  puVar3 = param_1 + 0x10;\n  param_1[9] = 0;\n  *(byte *)(param_1 + 8) = *(byte *)(param_1 + 8) & 7 | 0x40;\n  param_1[0xb] = 4;\n  param_1[10] = 0;\n  param_1[4] = param_3;\n  param_1[5] = param_4;\n  puVar1 = PTR_vtable_004c1afc;\n  param_1[7] = 0xffffffff;\n  param_1[6] = 0xffffffff;\n  param_1[3] = 0;\n  param_1[2] = 0;\n  *param_1 = puVar1 + 8;\n  param_1[0xc] = 0;\n  param_1[0xd] = 0;\n  param_1[0xe] = 0;\n  param_1[0x11] = puVar3;\n  param_1[0x10] = puVar3;\n  param_1[0x12] = 0;\n  param_1[0x13] = puVar3;\n  *(undefined1 *)(param_1 + 0x14) = 0;\n  param_1[0x17] = 0;\n  param_1[0x16] = 0;\n  param_1[0x19] = 0;\n  param_1[0x18] = 0;\n  if (param_3 < 0) {\n    uVar2 = ((uint)(param_4 + 3 < param_4) + param_3) * 0x40000000 | param_4 + 3 >> 2;\n  }\n  else {\n    uVar2 = param_3 << 0x1e | param_4 >> 2;\n  }\n  if (uVar2 != 0) {\n    std::\n    vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n    ::_M_default_append((vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n                         *)(param_1 + 0xc),uVar2);\n  }\n                    \n  (*(code *)PTR_init_004c20f4)(puVar3);\n  return;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "undefined4 *puVar3;" (type_identifier "undefined4") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (expression_statement "puVar3 = param_1 + 0x10;" (assignment_expression "puVar3 = param_1 + 0x10" (identifier "puVar3") (= "=") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10"))) (; ";")) (expression_statement "param_1[9] = 0;" (assignment_expression "param_1[9] = 0" (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(byte *)(param_1 + 8) = *(byte *)(param_1 + 8) & 7 | 0x40;" (assignment_expression "*(byte *)(param_1 + 8) = *(byte *)(param_1 + 8) & 7 | 0x40" (pointer_expression "*(byte *)(param_1 + 8)" (* "*") (cast_expression "(byte *)(param_1 + 8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (= "=") (binary_expression "*(byte *)(param_1 + 8) & 7 | 0x40" (binary_expression "*(byte *)(param_1 + 8) & 7" (pointer_expression "*(byte *)(param_1 + 8)" (* "*") (cast_expression "(byte *)(param_1 + 8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (& "&") (number_literal "7")) (| "|") (number_literal "0x40"))) (; ";")) (expression_statement "param_1[0xb] = 4;" (assignment_expression "param_1[0xb] = 4" (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]")) (= "=") (number_literal "4")) (; ";")) (expression_statement "param_1[10] = 0;" (assignment_expression "param_1[10] = 0" (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[4] = param_3;" (assignment_expression "param_1[4] = param_3" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "param_3")) (; ";")) (expression_statement "param_1[5] = param_4;" (assignment_expression "param_1[5] = param_4" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "param_4")) (; ";")) (expression_statement "puVar1 = PTR_vtable_004c1afc;" (assignment_expression "puVar1 = PTR_vtable_004c1afc" (identifier "puVar1") (= "=") (identifier "PTR_vtable_004c1afc")) (; ";")) (expression_statement "param_1[7] = 0xffffffff;" (assignment_expression "param_1[7] = 0xffffffff" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "param_1[6] = 0xffffffff;" (assignment_expression "param_1[6] = 0xffffffff" (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "param_1[3] = 0;" (assignment_expression "param_1[3] = 0" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*param_1 = puVar1 + 8;" (assignment_expression "*param_1 = puVar1 + 8" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (binary_expression "puVar1 + 8" (identifier "puVar1") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "param_1[0xc] = 0;" (assignment_expression "param_1[0xc] = 0" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0xd] = 0;" (assignment_expression "param_1[0xd] = 0" (subscript_expression "param_1[0xd]" (identifier "param_1") ([ "[") (number_literal "0xd") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0xe] = 0;" (assignment_expression "param_1[0xe] = 0" (subscript_expression "param_1[0xe]" (identifier "param_1") ([ "[") (number_literal "0xe") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x11] = puVar3;" (assignment_expression "param_1[0x11] = puVar3" (subscript_expression "param_1[0x11]" (identifier "param_1") ([ "[") (number_literal "0x11") (] "]")) (= "=") (identifier "puVar3")) (; ";")) (expression_statement "param_1[0x10] = puVar3;" (assignment_expression "param_1[0x10] = puVar3" (subscript_expression "param_1[0x10]" (identifier "param_1") ([ "[") (number_literal "0x10") (] "]")) (= "=") (identifier "puVar3")) (; ";")) (expression_statement "param_1[0x12] = 0;" (assignment_expression "param_1[0x12] = 0" (subscript_expression "param_1[0x12]" (identifier "param_1") ([ "[") (number_literal "0x12") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x13] = puVar3;" (assignment_expression "param_1[0x13] = puVar3" (subscript_expression "param_1[0x13]" (identifier "param_1") ([ "[") (number_literal "0x13") (] "]")) (= "=") (identifier "puVar3")) (; ";")) (expression_statement "*(undefined1 *)(param_1 + 0x14) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0x14) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0x14)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0x14)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x17] = 0;" (assignment_expression "param_1[0x17] = 0" (subscript_expression "param_1[0x17]" (identifier "param_1") ([ "[") (number_literal "0x17") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x16] = 0;" (assignment_expression "param_1[0x16] = 0" (subscript_expression "param_1[0x16]" (identifier "param_1") ([ "[") (number_literal "0x16") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x19] = 0;" (assignment_expression "param_1[0x19] = 0" (subscript_expression "param_1[0x19]" (identifier "param_1") ([ "[") (number_literal "0x19") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x18] = 0;" (assignment_expression "param_1[0x18] = 0" (subscript_expression "param_1[0x18]" (identifier "param_1") ([ "[") (number_literal "0x18") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (param_3 < 0) {\n    uVar2 = ((uint)(param_4 + 3 < param_4) + param_3) * 0x40000000 | param_4 + 3 >> 2;\n  }\n  else {\n    uVar2 = param_3 << 0x1e | param_4 >> 2;\n  }" (if "if") (parenthesized_expression "(param_3 < 0)" (( "(") (binary_expression "param_3 < 0" (identifier "param_3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    uVar2 = ((uint)(param_4 + 3 < param_4) + param_3) * 0x40000000 | param_4 + 3 >> 2;\n  }" ({ "{") (expression_statement "uVar2 = ((uint)(param_4 + 3 < param_4) + param_3) * 0x40000000 | param_4 + 3 >> 2;" (assignment_expression "uVar2 = ((uint)(param_4 + 3 < param_4) + param_3) * 0x40000000 | param_4 + 3 >> 2" (identifier "uVar2") (= "=") (binary_expression "((uint)(param_4 + 3 < param_4) + param_3) * 0x40000000 | param_4 + 3 >> 2" (binary_expression "((uint)(param_4 + 3 < param_4) + param_3) * 0x40000000" (parenthesized_expression "((uint)(param_4 + 3 < param_4) + param_3)" (( "(") (binary_expression "(uint)(param_4 + 3 < param_4) + param_3" (call_expression "(uint)(param_4 + 3 < param_4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_4 + 3 < param_4)" (( "(") (binary_expression "param_4 + 3 < param_4" (binary_expression "param_4 + 3" (identifier "param_4") (+ "+") (number_literal "3")) (< "<") (identifier "param_4")) () ")"))) (+ "+") (identifier "param_3")) () ")")) (* "*") (number_literal "0x40000000")) (| "|") (binary_expression "param_4 + 3 >> 2" (binary_expression "param_4 + 3" (identifier "param_4") (+ "+") (number_literal "3")) (>> ">>") (number_literal "2")))) (; ";")) (} "}")) (else_clause "else {\n    uVar2 = param_3 << 0x1e | param_4 >> 2;\n  }" (else "else") (compound_statement "{\n    uVar2 = param_3 << 0x1e | param_4 >> 2;\n  }" ({ "{") (expression_statement "uVar2 = param_3 << 0x1e | param_4 >> 2;" (assignment_expression "uVar2 = param_3 << 0x1e | param_4 >> 2" (identifier "uVar2") (= "=") (binary_expression "param_3 << 0x1e | param_4 >> 2" (binary_expression "param_3 << 0x1e" (identifier "param_3") (<< "<<") (number_literal "0x1e")) (| "|") (binary_expression "param_4 >> 2" (identifier "param_4") (>> ">>") (number_literal "2")))) (; ";")) (} "}")))) (if_statement "if (uVar2 != 0) {\n    std::\n    vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n    ::_M_default_append((vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n                         *)(param_1 + 0xc),uVar2);\n  }" (if "if") (parenthesized_expression "(uVar2 != 0)" (( "(") (binary_expression "uVar2 != 0" (identifier "uVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    std::\n    vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n    ::_M_default_append((vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n                         *)(param_1 + 0xc),uVar2);\n  }" ({ "{") (labeled_statement "std::\n    vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n    ::_M_default_append((vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n                         *)(param_1 + 0xc),uVar2);" (statement_identifier "std") (ERROR "::\n    vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold:" (: ":") (: ":") (binary_expression "vector<gold" (identifier "vector") (< "<") (identifier "gold")) (: ":") (: ":") (comma_expression "Output_data_got<32,true>::Got_entry,std" (binary_expression "Output_data_got<32" (identifier "Output_data_got") (< "<") (number_literal "32")) (, ",") (comma_expression "true>::Got_entry,std" (binary_expression "true>::Got_entry" (true "true") (> ">") (ERROR "::" (: ":") (: ":")) (identifier "Got_entry")) (, ",") (identifier "std"))) (: ":") (: ":") (binary_expression "allocator<gold" (identifier "allocator") (< "<") (identifier "gold")) (: ":")) (: ":") (expression_statement "Output_data_got<32,true>::Got_entry>>\n    ::_M_default_append((vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n                         *)(param_1 + 0xc),uVar2);" (comma_expression "Output_data_got<32,true>::Got_entry>>\n    ::_M_default_append((vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n                         *)(param_1 + 0xc),uVar2)" (binary_expression "Output_data_got<32" (identifier "Output_data_got") (< "<") (number_literal "32")) (, ",") (binary_expression "true>::Got_entry>>\n    ::_M_default_append((vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n                         *)(param_1 + 0xc),uVar2)" (true "true") (> ">") (ERROR "::" (: ":") (: ":")) (binary_expression "Got_entry>>\n    ::_M_default_append((vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n                         *)(param_1 + 0xc),uVar2)" (identifier "Got_entry") (>> ">>") (ERROR "::" (: ":") (: ":")) (call_expression "_M_default_append((vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n                         *)(param_1 + 0xc),uVar2)" (identifier "_M_default_append") (argument_list "((vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n                         *)(param_1 + 0xc),uVar2)" (( "(") (call_expression "(vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n                         *)(param_1 + 0xc)" (parenthesized_expression "(vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>\n                         *)" (( "(") (ERROR "vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::" (binary_expression "vector<gold" (identifier "vector") (< "<") (identifier "gold")) (: ":") (: ":") (comma_expression "Output_data_got<32,true>::Got_entry,std" (binary_expression "Output_data_got<32" (identifier "Output_data_got") (< "<") (number_literal "32")) (, ",") (comma_expression "true>::Got_entry,std" (binary_expression "true>::Got_entry" (true "true") (> ">") (ERROR "::" (: ":") (: ":")) (identifier "Got_entry")) (, ",") (identifier "std"))) (: ":") (: ":") (binary_expression "allocator<gold" (identifier "allocator") (< "<") (identifier "gold")) (: ":") (: ":")) (comma_expression "Output_data_got<32,true>::Got_entry>>\n                         *" (binary_expression "Output_data_got<32" (identifier "Output_data_got") (< "<") (number_literal "32")) (, ",") (binary_expression "true>::Got_entry>>\n                         *" (true "true") (> ">") (ERROR "::" (: ":") (: ":")) (binary_expression "Got_entry>>\n                         *" (identifier "Got_entry") (>> ">>") (pointer_expression "*" (* "*") (identifier ""))))) () ")")) (argument_list "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))) (, ",") (identifier "uVar2") () ")")))))) (; ";"))) (} "}"))) (expression_statement "(*(code *)PTR_init_004c20f4)(puVar3);" (call_expression "(*(code *)PTR_init_004c20f4)(puVar3)" (parenthesized_expression "(*(code *)PTR_init_004c20f4)" (( "(") (pointer_expression "*(code *)PTR_init_004c20f4" (* "*") (cast_expression "(code *)PTR_init_004c20f4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_init_004c20f4"))) () ")")) (argument_list "(puVar3)" (( "(") (identifier "puVar3") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Type propagation algorithm not settling */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* DWARF original prototype: void Output_data_got(Output_data_got<32,_true> * this, off_t data_size)
    */

void __thiscall
var_3::var_10<32,var_11>::var_10(var_10<32,var_11> *this,off_t data_size)

{
  byte var_1;
  type_1 *var_2;
  type_2 var_9;
  int var_7;
  type_3 var_8;
  type_4 *pFVar3;
  
  var_1 = (this->super_Output_data_got_base).super_Output_section_data_build.
          super_Output_section_data.super_Output_data.field_0x20;
  pFVar3 = &this->free_list_;
  *(type_5 *)
   &(this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data.
    super_Output_data.field_0x24 = 0;
  (this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data.
  super_Output_data.field_0x20 = var_1 & 7 | 0x40;
  *(type_5 *)
   ((int)&(this->super_Output_data_got_base).super_Output_section_data_build.
          super_Output_section_data.addralign_ + 4) = 4;
  *(type_5 *)
   &(this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data.
    addralign_ = 0;
  *(int *)&(this->super_Output_data_got_base).super_Output_section_data_build.
           super_Output_section_data.super_Output_data.data_size_ = var_7;
  *(type_3 *)((int)&(this->super_Output_data_got_base).super_Output_section_data_build.
                  super_Output_section_data.super_Output_data.data_size_ + 4) = var_8;
  var_2 = PTR_vtable_004c1afc;
  *(type_5 *)
   ((int)&(this->super_Output_data_got_base).super_Output_section_data_build.
          super_Output_section_data.super_Output_data.offset_ + 4) = 0xffffffff;
  *(type_5 *)
   &(this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data.
    super_Output_data.offset_ = 0xffffffff;
  *(type_5 *)
   ((int)&(this->super_Output_data_got_base).super_Output_section_data_build.
          super_Output_section_data.super_Output_data.address_ + 4) = 0;
  *(type_5 *)
   &(this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data.
    super_Output_data.address_ = 0;
  (this->super_Output_data_got_base).super_Output_section_data_build.super_Output_section_data.
  super_Output_data._vptr_Output_data = (type_6 **)(var_2 + 8);
  (this->entries_).
  super__Vector_base<var_3::var_10<32,var_11>::var_4,_std::allocator<var_3::var_10<32,var_11>::var_4>var_5>
  ._M_impl._M_start = (type_7)0x0;
  (this->entries_).
  super__Vector_base<var_3::var_10<32,var_11>::var_4,_std::allocator<var_3::var_10<32,var_11>::var_4>var_5>
  ._M_impl._M_finish = (type_7)0x0;
  (this->entries_).
  super__Vector_base<var_3::var_10<32,var_11>::var_4,_std::allocator<var_3::var_10<32,var_11>::var_4>var_5>
  ._M_impl._M_end_of_storage = (type_7)0x0;
  (this->free_list_).list_.
  super__List_base<var_3::Free_list::var_6,_std::allocator<var_3::Free_list::var_6>var_5>
  ._M_impl._M_node.super__List_node_base._M_prev = (type_8 *)pFVar3;
  (this->free_list_).list_.
  super__List_base<var_3::Free_list::var_6,_std::allocator<var_3::Free_list::var_6>var_5>
  ._M_impl._M_node.super__List_node_base._M_next = (type_8 *)pFVar3;
  (this->free_list_).list_.
  super__List_base<var_3::Free_list::var_6,_std::allocator<var_3::Free_list::var_6>var_5>
  ._M_impl._M_node._M_size = 0;
  (this->free_list_).last_remove_._M_node = (type_8 *)pFVar3;
  (this->free_list_).extend_ = false;
  *(type_5 *)((int)&(this->free_list_).length_ + 4) = 0;
  *(type_5 *)&(this->free_list_).length_ = 0;
  *(type_5 *)((int)&(this->free_list_).min_hole_ + 4) = 0;
  *(type_5 *)&(this->free_list_).min_hole_ = 0;
  if (var_7 < 0) {
    var_9 = ((type_3)(var_8 + 3 < var_8) + var_7) * 0x40000000 | var_8 + 3 >> 2;
  }
  else {
    var_9 = var_7 << 0x1e | var_8 >> 2;
  }
  if (var_9 != 0) {
    std::
    vector<var_3::var_10<32,var_11>::var_4,_std::allocator<var_3::var_10<32,var_11>::var_4>var_5>
    ::var_12(&this->entries_,var_9);
  }
                    /* try { // try from 0023771c to 0023776b has its CatchHandler @ 00237774 */
  (*(type_9 *)PTR_init_004c20f4)(pFVar3);
  return;
}


(translation_unit (function_definition type: (primitive_type) 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: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))) right: (identifier))) right: (number_literal)) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (ERROR (binary_expression left: (identifier) right: (identifier)) (comma_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (comma_expression left: (binary_expression left: (true) (ERROR) right: (identifier)) right: (identifier))) (binary_expression left: (identifier) right: (identifier))) (expression_statement (comma_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (true) (ERROR) right: (binary_expression left: (identifier) (ERROR) right: (call_expression function: (identifier) arguments: (argument_list (call_expression function: (parenthesized_expression (ERROR (binary_expression left: (identifier) right: (identifier)) (comma_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (comma_expression left: (binary_expression left: (true) (ERROR) right: (identifier)) right: (identifier))) (binary_expression left: (identifier) right: (identifier))) (comma_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (true) (ERROR) right: (binary_expression left: (identifier) right: (pointer_expression argument: (MISSING identifier)))))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) (identifier)))))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (return_statement))))

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

{
  undefined *puVar1;
  uint uVar2;
  undefined4 *puVar3;
  
  puVar3 = param_1 + 0x10;
  param_1[9] = 0;
  *(byte *)(param_1 + 8) = *(byte *)(param_1 + 8) & 7 | 0x40;
  param_1[0xb] = 4;
  param_1[10] = 0;
  param_1[4] = param_3;
  param_1[5] = param_4;
  puVar1 = PTR_vtable_004c1afc;
  param_1[7] = 0xffffffff;
  param_1[6] = 0xffffffff;
  param_1[3] = 0;
  param_1[2] = 0;
  *param_1 = puVar1 + 8;
  param_1[0xc] = 0;
  param_1[0xd] = 0;
  param_1[0xe] = 0;
  param_1[0x11] = puVar3;
  param_1[0x10] = puVar3;
  param_1[0x12] = 0;
  param_1[0x13] = puVar3;
  *(undefined1 *)(param_1 + 0x14) = 0;
  param_1[0x17] = 0;
  param_1[0x16] = 0;
  param_1[0x19] = 0;
  param_1[0x18] = 0;
  if (param_3 < 0) {
    uVar2 = ((uint)(param_4 + 3 < param_4) + param_3) * 0x40000000 | param_4 + 3 >> 2;
  }
  else {
    uVar2 = param_3 << 0x1e | param_4 >> 2;
  }
  if (uVar2 != 0) {
    std::
    vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>
    ::_M_default_append((vector<gold::Output_data_got<32,true>::Got_entry,std::allocator<gold::Output_data_got<32,true>::Got_entry>>
                         *)(param_1 + 0xc),uVar2);
  }
                    /* try { // try from 0023771c to 0023776b has its CatchHandler @ 00237774 */
  (*(code *)PTR_init_004c20f4)(puVar3);
  return;
}

