
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "STT": Some values do not have unique names */
/* WARNING: Enum "STB": Some values do not have unique names */
/* DWARF original prototype: void reserve_ent(Output_data_got_powerpc<32,_false> * this, uint cnt)
    */

void __thiscall
anon_unknown.dwarf_6a1ea8::Output_data_got_powerpc<32,_false>::reserve_ent
          (Output_data_got_powerpc<32,_false> *this,uint cnt)

{
  Got_entry got_entry;
  Got_entry got_entry_00;
  Got_entry got_entry_01;
  uint uVar1;
  Symbol *pSVar2;
  undefined1 uVar3;
  undefined7 uVar4;
  uint uStack_24;
  undefined4 uStack_1c;
  undefined8 local_18;
  
  uVar1 = (int)((long)(this->super_Output_data_got<32,_false>).entries_.
                      super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>
                      ._M_impl._M_finish -
                (long)(this->super_Output_data_got<32,_false>).entries_.
                      super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>
                      ._M_impl._M_start >> 3) * -0x55555555;
  if (cnt + uVar1 <= this->header_index_) {
    return;
  }
  this->header_index_ = uVar1;
  this->header_ent_cnt_ = 0;
  uVar3 = (undefined1)local_18;
  uVar4 = (undefined7)((ulong)local_18 >> 8);
  got_entry._8_1_ = 0xfe;
  got_entry.u_.object = (Relobj *)((ulong)uStack_24 << 0x20);
  got_entry._9_7_ = (int7)(CONCAT44(uStack_1c,0x7ffffffe) >> 8);
  got_entry.addend_._0_1_ = uVar3;
  got_entry.addend_._1_7_ = uVar4;
  gold::Output_data_got<32,_false>::add_got_entry(&this->super_Output_data_got<32,_false>,got_entry)
  ;
  got_entry_00._8_1_ = 0xfe;
  got_entry_00.u_.object = (Relobj *)((ulong)uStack_24 << 0x20);
  got_entry_00._9_7_ = (int7)(CONCAT44(uStack_1c,0x7ffffffe) >> 8);
  got_entry_00.addend_._0_1_ = uVar3;
  got_entry_00.addend_._1_7_ = uVar4;
  gold::Output_data_got<32,_false>::add_got_entry
            (&this->super_Output_data_got<32,_false>,got_entry_00);
  got_entry_01._8_1_ = 0xfe;
  got_entry_01.u_.object = (Relobj *)((ulong)uStack_24 << 0x20);
  got_entry_01._9_7_ = (int7)(CONCAT44(uStack_1c,0x7ffffffe) >> 8);
  got_entry_01.addend_._0_1_ = uVar3;
  got_entry_01.addend_._1_7_ = uVar4;
  gold::Output_data_got<32,_false>::add_got_entry
            (&this->super_Output_data_got<32,_false>,got_entry_01);
  pSVar2 = gold::Symbol_table::lookup(this->symtab_,"_GLOBAL_OFFSET_TABLE_",(char *)0x0);
  if (pSVar2 == (Symbol *)0x0) {
    gold::Symbol_table::define_in_output_data
              (this->symtab_,"_GLOBAL_OFFSET_TABLE_",(char *)0x0,PREDEFINED,(Output_data *)this,
               (ulong)(this->header_index_ * 4),0,STT_OBJECT,STB_LOCAL,STV_HIDDEN,'\0',false,false);
  }
  else {
    *(uint *)&pSVar2[1].name_ = this->header_index_ << 2;
  }
  return;
}



void FUN_001e3fd0(long param_1,int param_2)

{
  int iVar1;
  long lVar2;
  
  iVar1 = (int)(*(long *)(param_1 + 0x40) - *(long *)(param_1 + 0x38) >> 3) * -0x55555555;
  if ((uint)(param_2 + iVar1) <= *(uint *)(param_1 + 0x9c)) {
    return;
  }
  *(int *)(param_1 + 0x9c) = iVar1;
  *(undefined4 *)(param_1 + 0x98) = 0;
  FUN_003e1b00();
  FUN_003e1b00(param_1);
  FUN_003e1b00(param_1);
  lVar2 = FUN_00445450(*(undefined8 *)(param_1 + 0x88),"_GLOBAL_OFFSET_TABLE_",0);
  if (lVar2 == 0) {
    FUN_00445bc0(*(undefined8 *)(param_1 + 0x88),"_GLOBAL_OFFSET_TABLE_",0,5,param_1,
                 *(int *)(param_1 + 0x9c) * 4,0,1,0,2,0,0,0);
  }
  else {
    *(int *)(lVar2 + 0x40) = *(int *)(param_1 + 0x9c) << 2;
  }
  return;
}


MOV RDX,-0x5555555555555555
MOV RAX,qword ptr [RDI + 0x40]
SUB RAX,qword ptr [RDI + 0x38]
SAR RAX,0x3
IMUL RAX,RDX
ADD ESI,EAX
CMP ESI,dword ptr [RDI + 0x9c]
JA 0x001e3ff8
RET
PUSH RBX
MOV RBX,RDI
SUB RSP,0x28
MOV dword ptr [RDI + 0x9c],EAX
MOV dword ptr [RSP + 0x10],0x7ffffffe
MOV dword ptr [RSP + 0x8],0x0
MOV dword ptr [RDI + 0x98],0x0
PUSH qword ptr [RSP + 0x18]
PUSH qword ptr [RSP + 0x18]
PUSH qword ptr [RSP + 0x18]
CALL 0x003e1b00
MOV dword ptr [RSP + 0x28],0x7ffffffe
MOV RDI,RBX
MOV dword ptr [RSP + 0x20],0x0
ADD RSP,0x18
PUSH qword ptr [RSP + 0x18]
PUSH qword ptr [RSP + 0x18]
PUSH qword ptr [RSP + 0x18]
CALL 0x003e1b00
MOV dword ptr [RSP + 0x28],0x7ffffffe
MOV RDI,RBX
MOV dword ptr [RSP + 0x20],0x0
ADD RSP,0x18
PUSH qword ptr [RSP + 0x18]
PUSH qword ptr [RSP + 0x18]
PUSH qword ptr [RSP + 0x18]
CALL 0x003e1b00
MOV RDI,qword ptr [RBX + 0x88]
ADD RSP,0x20
XOR EDX,EDX
LEA RSI,[0x53343b]
CALL 0x00445450
TEST RAX,RAX
JZ 0x001e40b8
MOV EDX,dword ptr [RBX + 0x9c]
SHL EDX,0x2
MOV dword ptr [RAX + 0x40],EDX
ADD RSP,0x20
POP RBX
RET
SUB RSP,0x8
MOV EAX,dword ptr [RBX + 0x9c]
MOV R8,RBX
XOR EDX,EDX
MOV RDI,qword ptr [RBX + 0x88]
PUSH 0x0
MOV ECX,0x5
LEA RSI,[0x53343b]
PUSH 0x0
LEA R9D,[RAX*0x4]
PUSH 0x0
PUSH 0x2
PUSH 0x0
PUSH 0x1
PUSH 0x0
CALL 0x00445bc0
ADD RSP,0x40
JMP 0x001e40af
(translation_unit "void FUN_001e3fd0(long param_1,int param_2)\n\n{\n  int iVar1;\n  long lVar2;\n  \n  iVar1 = (int)(*(long *)(param_1 + 0x40) - *(long *)(param_1 + 0x38) >> 3) * -0x55555555;\n  if ((uint)(param_2 + iVar1) <= *(uint *)(param_1 + 0x9c)) {\n    return;\n  }\n  *(int *)(param_1 + 0x9c) = iVar1;\n  *(undefined4 *)(param_1 + 0x98) = 0;\n  FUN_003e1b00();\n  FUN_003e1b00(param_1);\n  FUN_003e1b00(param_1);\n  lVar2 = FUN_00445450(*(undefined8 *)(param_1 + 0x88),"_GLOBAL_OFFSET_TABLE_",0);\n  if (lVar2 == 0) {\n    FUN_00445bc0(*(undefined8 *)(param_1 + 0x88),"_GLOBAL_OFFSET_TABLE_",0,5,param_1,\n                 *(int *)(param_1 + 0x9c) * 4,0,1,0,2,0,0,0);\n  }\n  else {\n    *(int *)(lVar2 + 0x40) = *(int *)(param_1 + 0x9c) << 2;\n  }\n  return;\n}\n\n" (function_definition "void FUN_001e3fd0(long param_1,int param_2)\n\n{\n  int iVar1;\n  long lVar2;\n  \n  iVar1 = (int)(*(long *)(param_1 + 0x40) - *(long *)(param_1 + 0x38) >> 3) * -0x55555555;\n  if ((uint)(param_2 + iVar1) <= *(uint *)(param_1 + 0x9c)) {\n    return;\n  }\n  *(int *)(param_1 + 0x9c) = iVar1;\n  *(undefined4 *)(param_1 + 0x98) = 0;\n  FUN_003e1b00();\n  FUN_003e1b00(param_1);\n  FUN_003e1b00(param_1);\n  lVar2 = FUN_00445450(*(undefined8 *)(param_1 + 0x88),"_GLOBAL_OFFSET_TABLE_",0);\n  if (lVar2 == 0) {\n    FUN_00445bc0(*(undefined8 *)(param_1 + 0x88),"_GLOBAL_OFFSET_TABLE_",0,5,param_1,\n                 *(int *)(param_1 + 0x9c) * 4,0,1,0,2,0,0,0);\n  }\n  else {\n    *(int *)(lVar2 + 0x40) = *(int *)(param_1 + 0x9c) << 2;\n  }\n  return;\n}" primitive_type (function_declarator "FUN_001e3fd0(long param_1,int param_2)" identifier (parameter_list "(long param_1,int param_2)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  long lVar2;\n  \n  iVar1 = (int)(*(long *)(param_1 + 0x40) - *(long *)(param_1 + 0x38) >> 3) * -0x55555555;\n  if ((uint)(param_2 + iVar1) <= *(uint *)(param_1 + 0x9c)) {\n    return;\n  }\n  *(int *)(param_1 + 0x9c) = iVar1;\n  *(undefined4 *)(param_1 + 0x98) = 0;\n  FUN_003e1b00();\n  FUN_003e1b00(param_1);\n  FUN_003e1b00(param_1);\n  lVar2 = FUN_00445450(*(undefined8 *)(param_1 + 0x88),"_GLOBAL_OFFSET_TABLE_",0);\n  if (lVar2 == 0) {\n    FUN_00445bc0(*(undefined8 *)(param_1 + 0x88),"_GLOBAL_OFFSET_TABLE_",0,5,param_1,\n                 *(int *)(param_1 + 0x9c) * 4,0,1,0,2,0,0,0);\n  }\n  else {\n    *(int *)(lVar2 + 0x40) = *(int *)(param_1 + 0x9c) << 2;\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (expression_statement "iVar1 = (int)(*(long *)(param_1 + 0x40) - *(long *)(param_1 + 0x38) >> 3) * -0x55555555;" (assignment_expression "iVar1 = (int)(*(long *)(param_1 + 0x40) - *(long *)(param_1 + 0x38) >> 3) * -0x55555555" identifier = (binary_expression "(int)(*(long *)(param_1 + 0x40) - *(long *)(param_1 + 0x38) >> 3) * -0x55555555" (cast_expression "(int)(*(long *)(param_1 + 0x40) - *(long *)(param_1 + 0x38) >> 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(*(long *)(param_1 + 0x40) - *(long *)(param_1 + 0x38) >> 3)" ( (binary_expression "*(long *)(param_1 + 0x40) - *(long *)(param_1 + 0x38) >> 3" (binary_expression "*(long *)(param_1 + 0x40) - *(long *)(param_1 + 0x38)" (pointer_expression "*(long *)(param_1 + 0x40)" * (cast_expression "(long *)(param_1 + 0x40)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) )))) - (pointer_expression "*(long *)(param_1 + 0x38)" * (cast_expression "(long *)(param_1 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) >> number_literal) ))) * number_literal)) ;) (if_statement "if ((uint)(param_2 + iVar1) <= *(uint *)(param_1 + 0x9c)) {\n    return;\n  }" if (parenthesized_expression "((uint)(param_2 + iVar1) <= *(uint *)(param_1 + 0x9c))" ( (binary_expression "(uint)(param_2 + iVar1) <= *(uint *)(param_1 + 0x9c)" (call_expression "(uint)(param_2 + iVar1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_2 + iVar1)" ( (binary_expression "param_2 + iVar1" identifier + identifier) ))) <= (pointer_expression "*(uint *)(param_1 + 0x9c)" * (cast_expression "(uint *)(param_1 + 0x9c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x9c)" ( (binary_expression "param_1 + 0x9c" identifier + number_literal) ))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "*(int *)(param_1 + 0x9c) = iVar1;" (assignment_expression "*(int *)(param_1 + 0x9c) = iVar1" (pointer_expression "*(int *)(param_1 + 0x9c)" * (cast_expression "(int *)(param_1 + 0x9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x9c)" ( (binary_expression "param_1 + 0x9c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(param_1 + 0x98) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x98) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x98)" * (cast_expression "(undefined4 *)(param_1 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x98)" ( (binary_expression "param_1 + 0x98" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_003e1b00();" (call_expression "FUN_003e1b00()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_003e1b00(param_1);" (call_expression "FUN_003e1b00(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "FUN_003e1b00(param_1);" (call_expression "FUN_003e1b00(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "lVar2 = FUN_00445450(*(undefined8 *)(param_1 + 0x88),"_GLOBAL_OFFSET_TABLE_",0);" (assignment_expression "lVar2 = FUN_00445450(*(undefined8 *)(param_1 + 0x88),"_GLOBAL_OFFSET_TABLE_",0)" identifier = (call_expression "FUN_00445450(*(undefined8 *)(param_1 + 0x88),"_GLOBAL_OFFSET_TABLE_",0)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x88),"_GLOBAL_OFFSET_TABLE_",0)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x88)" * (cast_expression "(undefined8 *)(param_1 + 0x88)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) )))) , (string_literal ""_GLOBAL_OFFSET_TABLE_"" " string_content ") , number_literal )))) ;) (if_statement "if (lVar2 == 0) {\n    FUN_00445bc0(*(undefined8 *)(param_1 + 0x88),"_GLOBAL_OFFSET_TABLE_",0,5,param_1,\n                 *(int *)(param_1 + 0x9c) * 4,0,1,0,2,0,0,0);\n  }\n  else {\n    *(int *)(lVar2 + 0x40) = *(int *)(param_1 + 0x9c) << 2;\n  }" if (parenthesized_expression "(lVar2 == 0)" ( (binary_expression "lVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    FUN_00445bc0(*(undefined8 *)(param_1 + 0x88),"_GLOBAL_OFFSET_TABLE_",0,5,param_1,\n                 *(int *)(param_1 + 0x9c) * 4,0,1,0,2,0,0,0);\n  }" { (expression_statement "FUN_00445bc0(*(undefined8 *)(param_1 + 0x88),"_GLOBAL_OFFSET_TABLE_",0,5,param_1,\n                 *(int *)(param_1 + 0x9c) * 4,0,1,0,2,0,0,0);" (call_expression "FUN_00445bc0(*(undefined8 *)(param_1 + 0x88),"_GLOBAL_OFFSET_TABLE_",0,5,param_1,\n                 *(int *)(param_1 + 0x9c) * 4,0,1,0,2,0,0,0)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x88),"_GLOBAL_OFFSET_TABLE_",0,5,param_1,\n                 *(int *)(param_1 + 0x9c) * 4,0,1,0,2,0,0,0)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x88)" * (cast_expression "(undefined8 *)(param_1 + 0x88)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) )))) , (string_literal ""_GLOBAL_OFFSET_TABLE_"" " string_content ") , number_literal , number_literal , identifier , (binary_expression "*(int *)(param_1 + 0x9c) * 4" (pointer_expression "*(int *)(param_1 + 0x9c)" * (cast_expression "(int *)(param_1 + 0x9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x9c)" ( (binary_expression "param_1 + 0x9c" identifier + number_literal) )))) * number_literal) , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal ))) ;) }) (else_clause "else {\n    *(int *)(lVar2 + 0x40) = *(int *)(param_1 + 0x9c) << 2;\n  }" else (compound_statement "{\n    *(int *)(lVar2 + 0x40) = *(int *)(param_1 + 0x9c) << 2;\n  }" { (expression_statement "*(int *)(lVar2 + 0x40) = *(int *)(param_1 + 0x9c) << 2;" (assignment_expression "*(int *)(lVar2 + 0x40) = *(int *)(param_1 + 0x9c) << 2" (pointer_expression "*(int *)(lVar2 + 0x40)" * (cast_expression "(int *)(lVar2 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x40)" ( (binary_expression "lVar2 + 0x40" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x9c) << 2" (pointer_expression "*(int *)(param_1 + 0x9c)" * (cast_expression "(int *)(param_1 + 0x9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x9c)" ( (binary_expression "param_1 + 0x9c" identifier + number_literal) )))) << number_literal)) ;) }))) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Enum "DT": Some values do not have unique names */\n/* WARNING: Enum "STT": Some values do not have unique names */\n/* WARNING: Enum "STB": Some values do not have unique names */\n/* DWARF original prototype: void reserve_ent(Output_data_got_powerpc<32,_false> * this, uint cnt)\n    */\n\nvoid __thiscall\nanon_unknown.dwarf_6a1ea8::Output_data_got_powerpc<32,_false>::reserve_ent\n          (Output_data_got_powerpc<32,_false> *this,uint cnt)\n\n{\n  Got_entry got_entry;\n  Got_entry got_entry_00;\n  Got_entry got_entry_01;\n  uint uVar1;\n  Symbol *pSVar2;\n  undefined1 uVar3;\n  undefined7 uVar4;\n  uint uStack_24;\n  undefined4 uStack_1c;\n  undefined8 local_18;\n  \n  uVar1 = (int)((long)(this->super_Output_data_got<32,_false>).entries_.\n                      super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                      ._M_impl._M_finish -\n                (long)(this->super_Output_data_got<32,_false>).entries_.\n                      super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                      ._M_impl._M_start >> 3) * -0x55555555;\n  if (cnt + uVar1 <= this->header_index_) {\n    return;\n  }\n  this->header_index_ = uVar1;\n  this->header_ent_cnt_ = 0;\n  uVar3 = (undefined1)local_18;\n  uVar4 = (undefined7)((ulong)local_18 >> 8);\n  got_entry._8_1_ = 0xfe;\n  got_entry.u_.object = (Relobj *)((ulong)uStack_24 << 0x20);\n  got_entry._9_7_ = (int7)(CONCAT44(uStack_1c,0x7ffffffe) >> 8);\n  got_entry.addend_._0_1_ = uVar3;\n  got_entry.addend_._1_7_ = uVar4;\n  gold::Output_data_got<32,_false>::add_got_entry(&this->super_Output_data_got<32,_false>,got_entry)\n  ;\n  got_entry_00._8_1_ = 0xfe;\n  got_entry_00.u_.object = (Relobj *)((ulong)uStack_24 << 0x20);\n  got_entry_00._9_7_ = (int7)(CONCAT44(uStack_1c,0x7ffffffe) >> 8);\n  got_entry_00.addend_._0_1_ = uVar3;\n  got_entry_00.addend_._1_7_ = uVar4;\n  gold::Output_data_got<32,_false>::add_got_entry\n            (&this->super_Output_data_got<32,_false>,got_entry_00);\n  got_entry_01._8_1_ = 0xfe;\n  got_entry_01.u_.object = (Relobj *)((ulong)uStack_24 << 0x20);\n  got_entry_01._9_7_ = (int7)(CONCAT44(uStack_1c,0x7ffffffe) >> 8);\n  got_entry_01.addend_._0_1_ = uVar3;\n  got_entry_01.addend_._1_7_ = uVar4;\n  gold::Output_data_got<32,_false>::add_got_entry\n            (&this->super_Output_data_got<32,_false>,got_entry_01);\n  pSVar2 = gold::Symbol_table::lookup(this->symtab_,"_GLOBAL_OFFSET_TABLE_",(char *)0x0);\n  if (pSVar2 == (Symbol *)0x0) {\n    gold::Symbol_table::define_in_output_data\n              (this->symtab_,"_GLOBAL_OFFSET_TABLE_",(char *)0x0,PREDEFINED,(Output_data *)this,\n               (ulong)(this->header_index_ * 4),0,STT_OBJECT,STB_LOCAL,STV_HIDDEN,'\0',false,false);\n  }\n  else {\n    *(uint *)&pSVar2[1].name_ = this->header_index_ << 2;\n  }\n  return;\n}\n\n" comment comment comment comment (declaration "void __thiscall\nanon_unknown.dwarf_6a1ea8::Output_data_got_powerpc<32,_false>::reserve_ent\n          (Output_data_got_powerpc<32,_false> *this,uint cnt)\n\n{\n  Got_entry got_entry;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "anon_unknown.dwarf_6a1ea8::" identifier . identifier : :) identifier (ERROR "<32" < number_literal) , (ERROR "_false>::reserve_ent\n          (Output_data_got_powerpc<32,_false> *this,uint cnt)\n\n{\n  Got_entry" identifier > : : (function_declarator "reserve_ent\n          (Output_data_got_powerpc<32,_false> *this,uint cnt)" identifier (parameter_list "(Output_data_got_powerpc<32,_false> *this,uint cnt)" ( (parameter_declaration "Output_data_got_powerpc" type_identifier) (ERROR "<32" < number_literal) , (parameter_declaration "_false> *this" type_identifier (ERROR ">" >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "uint cnt" type_identifier identifier) ))) { identifier) identifier ;) (declaration "Got_entry got_entry_00;" type_identifier identifier ;) (declaration "Got_entry got_entry_01;" type_identifier identifier ;) (declaration "uint uVar1;" type_identifier identifier ;) (declaration "Symbol *pSVar2;" type_identifier (pointer_declarator "*pSVar2" * identifier) ;) (declaration "undefined1 uVar3;" type_identifier identifier ;) (declaration "undefined7 uVar4;" type_identifier identifier ;) (declaration "uint uStack_24;" type_identifier identifier ;) (declaration "undefined4 uStack_1c;" type_identifier identifier ;) (declaration "undefined8 local_18;" type_identifier identifier ;) (expression_statement "uVar1 = (int)((long)(this->super_Output_data_got<32,_false>).entries_.\n                      super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                      ._M_impl._M_finish -\n                (long)(this->super_Output_data_got<32,_false>).entries_.\n                      super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                      ._M_impl._M_start >> 3) * -0x55555555;" (assignment_expression "uVar1 = (int)((long)(this->super_Output_data_got<32,_false>).entries_.\n                      super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                      ._M_impl._M_finish -\n                (long)(this->super_Output_data_got<32,_false>).entries_.\n                      super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                      ._M_impl._M_start >> 3) * -0x55555555" identifier = (binary_expression "(int)((long)(this->super_Output_data_got<32,_false>).entries_.\n                      super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                      ._M_impl._M_finish -\n                (long)(this->super_Output_data_got<32,_false>).entries_.\n                      super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                      ._M_impl._M_start >> 3) * -0x55555555" (cast_expression "(int)((long)(this->super_Output_data_got<32,_false>).entries_.\n                      super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                      ._M_impl._M_finish -\n                (long)(this->super_Output_data_got<32,_false>).entries_.\n                      super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                      ._M_impl._M_start >> 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((long)(this->super_Output_data_got<32,_false>).entries_.\n                      super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                      ._M_impl._M_finish -\n                (long)(this->super_Output_data_got<32,_false>).entries_.\n                      super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                      ._M_impl._M_start >> 3)" ( (ERROR "(long)(this->super_Output_data_got<32,_false>).entries_.\n                      super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                      ._M_impl._M_finish -\n                (long)(this->super_Output_data_got<32,_false>).entries_.\n                      super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::" (comma_expression "(long)(this->super_Output_data_got<32,_false>).entries_.\n                      super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std" (binary_expression "(long)(this->super_Output_data_got<32,_false>).entries_.\n                      super__Vector_base<gold::Output_data_got<32" (binary_expression "(long)(this->super_Output_data_got<32,_false>).entries_.\n                      super__Vector_base<gold" (cast_expression "(long)(this->super_Output_data_got<32,_false>).entries_.\n                      super__Vector_base" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "(this->super_Output_data_got<32,_false>).entries_.\n                      super__Vector_base" (field_expression "(this->super_Output_data_got<32,_false>).entries_" (parenthesized_expression "(this->super_Output_data_got<32,_false>)" ( (comma_expression "this->super_Output_data_got<32,_false" (binary_expression "this->super_Output_data_got<32" (field_expression "this->super_Output_data_got" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier)) < identifier) (ERROR "::Output_data_got" : : identifier) < number_literal) , (comma_expression "_false>::Got_entry,_std" (binary_expression "_false>::Got_entry" identifier > (ERROR "::" : :) identifier) , identifier)) : : (binary_expression "allocator<gold" identifier < identifier) : : (comma_expression "Output_data_got<32,_false>::Got_entry>_>\n                      ._M_impl._M_finish -\n                (long)(this->super_Output_data_got<32,_false>).entries_.\n                      super__Vector_base<gold" (binary_expression "Output_data_got<32" identifier < number_literal) , (binary_expression "_false>::Got_entry>_>\n                      ._M_impl._M_finish -\n                (long)(this->super_Output_data_got<32,_false>).entries_.\n                      super__Vector_base<gold" (binary_expression "_false>::Got_entry>_>\n                      ._M_impl._M_finish -\n                (long)(this->super_Output_data_got<32,_false>).entries_.\n                      super__Vector_base" (field_expression "_false>::Got_entry>_>\n                      ._M_impl._M_finish" (field_expression "_false>::Got_entry>_>\n                      ._M_impl" (binary_expression "_false>::Got_entry>_" (binary_expression "_false>::Got_entry" identifier > (ERROR "::" : :) identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) - (cast_expression "(long)(this->super_Output_data_got<32,_false>).entries_.\n                      super__Vector_base" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "(this->super_Output_data_got<32,_false>).entries_.\n                      super__Vector_base" (field_expression "(this->super_Output_data_got<32,_false>).entries_" (parenthesized_expression "(this->super_Output_data_got<32,_false>)" ( (comma_expression "this->super_Output_data_got<32,_false" (binary_expression "this->super_Output_data_got<32" (field_expression "this->super_Output_data_got" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier))) < identifier)) : : (comma_expression "Output_data_got<32,_false>::Got_entry,_std" (binary_expression "Output_data_got<32" identifier < number_literal) , (comma_expression "_false>::Got_entry,_std" (binary_expression "_false>::Got_entry" identifier > (ERROR "::" : :) identifier) , identifier)) : : (binary_expression "allocator<gold" identifier < identifier) : :) (comma_expression "Output_data_got<32,_false>::Got_entry>_>\n                      ._M_impl._M_start >> 3" (binary_expression "Output_data_got<32" identifier < number_literal) , (binary_expression "_false>::Got_entry>_>\n                      ._M_impl._M_start >> 3" (field_expression "_false>::Got_entry>_>\n                      ._M_impl._M_start" (field_expression "_false>::Got_entry>_>\n                      ._M_impl" (binary_expression "_false>::Got_entry>_" (binary_expression "_false>::Got_entry" identifier > (ERROR "::" : :) identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) >> number_literal)) ))) * number_literal)) ;) (if_statement "if (cnt + uVar1 <= this->header_index_) {\n    return;\n  }" if (parenthesized_expression "(cnt + uVar1 <= this->header_index_)" ( (binary_expression "cnt + uVar1 <= this->header_index_" (binary_expression "cnt + uVar1" identifier + identifier) <= (field_expression "this->header_index_" identifier -> field_identifier)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "this->header_index_ = uVar1;" (assignment_expression "this->header_index_ = uVar1" (field_expression "this->header_index_" identifier -> field_identifier) = identifier) ;) (expression_statement "this->header_ent_cnt_ = 0;" (assignment_expression "this->header_ent_cnt_ = 0" (field_expression "this->header_ent_cnt_" identifier -> field_identifier) = number_literal) ;) (expression_statement "uVar3 = (undefined1)local_18;" (assignment_expression "uVar3 = (undefined1)local_18" identifier = (cast_expression "(undefined1)local_18" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "uVar4 = (undefined7)((ulong)local_18 >> 8);" (assignment_expression "uVar4 = (undefined7)((ulong)local_18 >> 8)" identifier = (call_expression "(undefined7)((ulong)local_18 >> 8)" (parenthesized_expression "(undefined7)" ( identifier )) (argument_list "((ulong)local_18 >> 8)" ( (binary_expression "(ulong)local_18 >> 8" (cast_expression "(ulong)local_18" ( (type_descriptor "ulong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "got_entry._8_1_ = 0xfe;" (assignment_expression "got_entry._8_1_ = 0xfe" (field_expression "got_entry._8_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "got_entry.u_.object = (Relobj *)((ulong)uStack_24 << 0x20);" (assignment_expression "got_entry.u_.object = (Relobj *)((ulong)uStack_24 << 0x20)" (field_expression "got_entry.u_.object" (field_expression "got_entry.u_" identifier . field_identifier) . field_identifier) = (cast_expression "(Relobj *)((ulong)uStack_24 << 0x20)" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)uStack_24 << 0x20)" ( (binary_expression "(ulong)uStack_24 << 0x20" (cast_expression "(ulong)uStack_24" ( (type_descriptor "ulong" type_identifier) ) identifier) << number_literal) )))) ;) (expression_statement "got_entry._9_7_ = (int7)(CONCAT44(uStack_1c,0x7ffffffe) >> 8);" (assignment_expression "got_entry._9_7_ = (int7)(CONCAT44(uStack_1c,0x7ffffffe) >> 8)" (field_expression "got_entry._9_7_" identifier . field_identifier) = (call_expression "(int7)(CONCAT44(uStack_1c,0x7ffffffe) >> 8)" (parenthesized_expression "(int7)" ( identifier )) (argument_list "(CONCAT44(uStack_1c,0x7ffffffe) >> 8)" ( (binary_expression "CONCAT44(uStack_1c,0x7ffffffe) >> 8" (call_expression "CONCAT44(uStack_1c,0x7ffffffe)" identifier (argument_list "(uStack_1c,0x7ffffffe)" ( identifier , number_literal ))) >> number_literal) )))) ;) (expression_statement "got_entry.addend_._0_1_ = uVar3;" (assignment_expression "got_entry.addend_._0_1_ = uVar3" (field_expression "got_entry.addend_._0_1_" (field_expression "got_entry.addend_" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "got_entry.addend_._1_7_ = uVar4;" (assignment_expression "got_entry.addend_._1_7_ = uVar4" (field_expression "got_entry.addend_._1_7_" (field_expression "got_entry.addend_" identifier . field_identifier) . field_identifier) = identifier) ;) (labeled_statement "gold::Output_data_got<32,_false>::add_got_entry(&this->super_Output_data_got<32,_false>,got_entry)\n  ;" statement_identifier : (ERROR ":" :) (expression_statement "Output_data_got<32,_false>::add_got_entry(&this->super_Output_data_got<32,_false>,got_entry)\n  ;" (comma_expression "Output_data_got<32,_false>::add_got_entry(&this->super_Output_data_got<32,_false>,got_entry)" (binary_expression "Output_data_got<32" identifier < number_literal) , (binary_expression "_false>::add_got_entry(&this->super_Output_data_got<32,_false>,got_entry)" identifier > (ERROR "::" : :) (call_expression "add_got_entry(&this->super_Output_data_got<32,_false>,got_entry)" identifier (argument_list "(&this->super_Output_data_got<32,_false>,got_entry)" ( (binary_expression "&this->super_Output_data_got<32" (pointer_expression "&this->super_Output_data_got" & (field_expression "this->super_Output_data_got" identifier -> field_identifier)) < number_literal) , identifier (ERROR ">" >) , identifier ))))) ;)) (expression_statement "got_entry_00._8_1_ = 0xfe;" (assignment_expression "got_entry_00._8_1_ = 0xfe" (field_expression "got_entry_00._8_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "got_entry_00.u_.object = (Relobj *)((ulong)uStack_24 << 0x20);" (assignment_expression "got_entry_00.u_.object = (Relobj *)((ulong)uStack_24 << 0x20)" (field_expression "got_entry_00.u_.object" (field_expression "got_entry_00.u_" identifier . field_identifier) . field_identifier) = (cast_expression "(Relobj *)((ulong)uStack_24 << 0x20)" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)uStack_24 << 0x20)" ( (binary_expression "(ulong)uStack_24 << 0x20" (cast_expression "(ulong)uStack_24" ( (type_descriptor "ulong" type_identifier) ) identifier) << number_literal) )))) ;) (expression_statement "got_entry_00._9_7_ = (int7)(CONCAT44(uStack_1c,0x7ffffffe) >> 8);" (assignment_expression "got_entry_00._9_7_ = (int7)(CONCAT44(uStack_1c,0x7ffffffe) >> 8)" (field_expression "got_entry_00._9_7_" identifier . field_identifier) = (call_expression "(int7)(CONCAT44(uStack_1c,0x7ffffffe) >> 8)" (parenthesized_expression "(int7)" ( identifier )) (argument_list "(CONCAT44(uStack_1c,0x7ffffffe) >> 8)" ( (binary_expression "CONCAT44(uStack_1c,0x7ffffffe) >> 8" (call_expression "CONCAT44(uStack_1c,0x7ffffffe)" identifier (argument_list "(uStack_1c,0x7ffffffe)" ( identifier , number_literal ))) >> number_literal) )))) ;) (expression_statement "got_entry_00.addend_._0_1_ = uVar3;" (assignment_expression "got_entry_00.addend_._0_1_ = uVar3" (field_expression "got_entry_00.addend_._0_1_" (field_expression "got_entry_00.addend_" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "got_entry_00.addend_._1_7_ = uVar4;" (assignment_expression "got_entry_00.addend_._1_7_ = uVar4" (field_expression "got_entry_00.addend_._1_7_" (field_expression "got_entry_00.addend_" identifier . field_identifier) . field_identifier) = identifier) ;) (labeled_statement "gold::Output_data_got<32,_false>::add_got_entry\n            (&this->super_Output_data_got<32,_false>,got_entry_00);" statement_identifier : (ERROR ":" :) (expression_statement "Output_data_got<32,_false>::add_got_entry\n            (&this->super_Output_data_got<32,_false>,got_entry_00);" (comma_expression "Output_data_got<32,_false>::add_got_entry\n            (&this->super_Output_data_got<32,_false>,got_entry_00)" (binary_expression "Output_data_got<32" identifier < number_literal) , (binary_expression "_false>::add_got_entry\n            (&this->super_Output_data_got<32,_false>,got_entry_00)" identifier > (ERROR "::" : :) (call_expression "add_got_entry\n            (&this->super_Output_data_got<32,_false>,got_entry_00)" identifier (argument_list "(&this->super_Output_data_got<32,_false>,got_entry_00)" ( (binary_expression "&this->super_Output_data_got<32" (pointer_expression "&this->super_Output_data_got" & (field_expression "this->super_Output_data_got" identifier -> field_identifier)) < number_literal) , identifier (ERROR ">" >) , identifier ))))) ;)) (expression_statement "got_entry_01._8_1_ = 0xfe;" (assignment_expression "got_entry_01._8_1_ = 0xfe" (field_expression "got_entry_01._8_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "got_entry_01.u_.object = (Relobj *)((ulong)uStack_24 << 0x20);" (assignment_expression "got_entry_01.u_.object = (Relobj *)((ulong)uStack_24 << 0x20)" (field_expression "got_entry_01.u_.object" (field_expression "got_entry_01.u_" identifier . field_identifier) . field_identifier) = (cast_expression "(Relobj *)((ulong)uStack_24 << 0x20)" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)uStack_24 << 0x20)" ( (binary_expression "(ulong)uStack_24 << 0x20" (cast_expression "(ulong)uStack_24" ( (type_descriptor "ulong" type_identifier) ) identifier) << number_literal) )))) ;) (expression_statement "got_entry_01._9_7_ = (int7)(CONCAT44(uStack_1c,0x7ffffffe) >> 8);" (assignment_expression "got_entry_01._9_7_ = (int7)(CONCAT44(uStack_1c,0x7ffffffe) >> 8)" (field_expression "got_entry_01._9_7_" identifier . field_identifier) = (call_expression "(int7)(CONCAT44(uStack_1c,0x7ffffffe) >> 8)" (parenthesized_expression "(int7)" ( identifier )) (argument_list "(CONCAT44(uStack_1c,0x7ffffffe) >> 8)" ( (binary_expression "CONCAT44(uStack_1c,0x7ffffffe) >> 8" (call_expression "CONCAT44(uStack_1c,0x7ffffffe)" identifier (argument_list "(uStack_1c,0x7ffffffe)" ( identifier , number_literal ))) >> number_literal) )))) ;) (expression_statement "got_entry_01.addend_._0_1_ = uVar3;" (assignment_expression "got_entry_01.addend_._0_1_ = uVar3" (field_expression "got_entry_01.addend_._0_1_" (field_expression "got_entry_01.addend_" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "got_entry_01.addend_._1_7_ = uVar4;" (assignment_expression "got_entry_01.addend_._1_7_ = uVar4" (field_expression "got_entry_01.addend_._1_7_" (field_expression "got_entry_01.addend_" identifier . field_identifier) . field_identifier) = identifier) ;) (labeled_statement "gold::Output_data_got<32,_false>::add_got_entry\n            (&this->super_Output_data_got<32,_false>,got_entry_01);" statement_identifier : (ERROR ":" :) (expression_statement "Output_data_got<32,_false>::add_got_entry\n            (&this->super_Output_data_got<32,_false>,got_entry_01);" (comma_expression "Output_data_got<32,_false>::add_got_entry\n            (&this->super_Output_data_got<32,_false>,got_entry_01)" (binary_expression "Output_data_got<32" identifier < number_literal) , (binary_expression "_false>::add_got_entry\n            (&this->super_Output_data_got<32,_false>,got_entry_01)" identifier > (ERROR "::" : :) (call_expression "add_got_entry\n            (&this->super_Output_data_got<32,_false>,got_entry_01)" identifier (argument_list "(&this->super_Output_data_got<32,_false>,got_entry_01)" ( (binary_expression "&this->super_Output_data_got<32" (pointer_expression "&this->super_Output_data_got" & (field_expression "this->super_Output_data_got" identifier -> field_identifier)) < number_literal) , identifier (ERROR ">" >) , identifier ))))) ;)) (ERROR "pSVar2 = gold::" (assignment_expression "pSVar2 = gold" identifier = identifier) : :) (labeled_statement "Symbol_table::lookup(this->symtab_,"_GLOBAL_OFFSET_TABLE_",(char *)0x0);" statement_identifier : (ERROR ":" :) (expression_statement "lookup(this->symtab_,"_GLOBAL_OFFSET_TABLE_",(char *)0x0);" (call_expression "lookup(this->symtab_,"_GLOBAL_OFFSET_TABLE_",(char *)0x0)" identifier (argument_list "(this->symtab_,"_GLOBAL_OFFSET_TABLE_",(char *)0x0)" ( (field_expression "this->symtab_" identifier -> field_identifier) , (string_literal ""_GLOBAL_OFFSET_TABLE_"" " string_content ") , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;)) (if_statement "if (pSVar2 == (Symbol *)0x0) {\n    gold::Symbol_table::define_in_output_data\n              (this->symtab_,"_GLOBAL_OFFSET_TABLE_",(char *)0x0,PREDEFINED,(Output_data *)this,\n               (ulong)(this->header_index_ * 4),0,STT_OBJECT,STB_LOCAL,STV_HIDDEN,'\0',false,false);\n  }\n  else {\n    *(uint *)&pSVar2[1].name_ = this->header_index_ << 2;\n  }" if (parenthesized_expression "(pSVar2 == (Symbol *)0x0)" ( (binary_expression "pSVar2 == (Symbol *)0x0" identifier == (cast_expression "(Symbol *)0x0" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    gold::Symbol_table::define_in_output_data\n              (this->symtab_,"_GLOBAL_OFFSET_TABLE_",(char *)0x0,PREDEFINED,(Output_data *)this,\n               (ulong)(this->header_index_ * 4),0,STT_OBJECT,STB_LOCAL,STV_HIDDEN,'\0',false,false);\n  }" { (labeled_statement "gold::Symbol_table::define_in_output_data\n              (this->symtab_,"_GLOBAL_OFFSET_TABLE_",(char *)0x0,PREDEFINED,(Output_data *)this,\n               (ulong)(this->header_index_ * 4),0,STT_OBJECT,STB_LOCAL,STV_HIDDEN,'\0',false,false);" statement_identifier : (ERROR ":" :) (labeled_statement "Symbol_table::define_in_output_data\n              (this->symtab_,"_GLOBAL_OFFSET_TABLE_",(char *)0x0,PREDEFINED,(Output_data *)this,\n               (ulong)(this->header_index_ * 4),0,STT_OBJECT,STB_LOCAL,STV_HIDDEN,'\0',false,false);" statement_identifier : (ERROR ":" :) (expression_statement "define_in_output_data\n              (this->symtab_,"_GLOBAL_OFFSET_TABLE_",(char *)0x0,PREDEFINED,(Output_data *)this,\n               (ulong)(this->header_index_ * 4),0,STT_OBJECT,STB_LOCAL,STV_HIDDEN,'\0',false,false);" (call_expression "define_in_output_data\n              (this->symtab_,"_GLOBAL_OFFSET_TABLE_",(char *)0x0,PREDEFINED,(Output_data *)this,\n               (ulong)(this->header_index_ * 4),0,STT_OBJECT,STB_LOCAL,STV_HIDDEN,'\0',false,false)" identifier (argument_list "(this->symtab_,"_GLOBAL_OFFSET_TABLE_",(char *)0x0,PREDEFINED,(Output_data *)this,\n               (ulong)(this->header_index_ * 4),0,STT_OBJECT,STB_LOCAL,STV_HIDDEN,'\0',false,false)" ( (field_expression "this->symtab_" identifier -> field_identifier) , (string_literal ""_GLOBAL_OFFSET_TABLE_"" " string_content ") , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , (cast_expression "(Output_data *)this" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (call_expression "(ulong)(this->header_index_ * 4)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(this->header_index_ * 4)" ( (binary_expression "this->header_index_ * 4" (field_expression "this->header_index_" identifier -> field_identifier) * number_literal) ))) , number_literal , identifier , identifier , identifier , (char_literal "'\0'" ' escape_sequence ') , false , false ))) ;))) }) (else_clause "else {\n    *(uint *)&pSVar2[1].name_ = this->header_index_ << 2;\n  }" else (compound_statement "{\n    *(uint *)&pSVar2[1].name_ = this->header_index_ << 2;\n  }" { (expression_statement "*(uint *)&pSVar2[1].name_ = this->header_index_ << 2;" (assignment_expression "*(uint *)&pSVar2[1].name_ = this->header_index_ << 2" (pointer_expression "*(uint *)&pSVar2[1].name_" * (cast_expression "(uint *)&pSVar2[1].name_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pSVar2[1].name_" & (field_expression "pSVar2[1].name_" (subscript_expression "pSVar2[1]" identifier [ number_literal ]) . field_identifier)))) = (binary_expression "this->header_index_ << 2" (field_expression "this->header_index_" identifier -> field_identifier) << number_literal)) ;) }))) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void FUN_001e3fd0(long param_1,int param_2)\n\n{\n  int iVar1;\n  long lVar2;\n  \n  iVar1 = (int)(*(long *)(param_1 + 0x40) - *(long *)(param_1 + 0x38) >> 3) * -0x55555555;\n  if ((uint)(param_2 + iVar1) <= *(uint *)(param_1 + 0x9c)) {\n    return;\n  }\n  *(int *)(param_1 + 0x9c) = iVar1;\n  *(undefined4 *)(param_1 + 0x98) = 0;\n  FUN_003e1b00();\n  FUN_003e1b00(param_1);\n  FUN_003e1b00(param_1);\n  lVar2 = FUN_00445450(*(undefined8 *)(param_1 + 0x88),"_GLOBAL_OFFSET_TABLE_",0);\n  if (lVar2 == 0) {\n    FUN_00445bc0(*(undefined8 *)(param_1 + 0x88),"_GLOBAL_OFFSET_TABLE_",0,5,param_1,\n                 *(int *)(param_1 + 0x9c) * 4,0,1,0,2,0,0,0);\n  }\n  else {\n    *(int *)(lVar2 + 0x40) = *(int *)(param_1 + 0x9c) << 2;\n  }\n  return;\n}\n\n" (function_definition "void FUN_001e3fd0(long param_1,int param_2)\n\n{\n  int iVar1;\n  long lVar2;\n  \n  iVar1 = (int)(*(long *)(param_1 + 0x40) - *(long *)(param_1 + 0x38) >> 3) * -0x55555555;\n  if ((uint)(param_2 + iVar1) <= *(uint *)(param_1 + 0x9c)) {\n    return;\n  }\n  *(int *)(param_1 + 0x9c) = iVar1;\n  *(undefined4 *)(param_1 + 0x98) = 0;\n  FUN_003e1b00();\n  FUN_003e1b00(param_1);\n  FUN_003e1b00(param_1);\n  lVar2 = FUN_00445450(*(undefined8 *)(param_1 + 0x88),"_GLOBAL_OFFSET_TABLE_",0);\n  if (lVar2 == 0) {\n    FUN_00445bc0(*(undefined8 *)(param_1 + 0x88),"_GLOBAL_OFFSET_TABLE_",0,5,param_1,\n                 *(int *)(param_1 + 0x9c) * 4,0,1,0,2,0,0,0);\n  }\n  else {\n    *(int *)(lVar2 + 0x40) = *(int *)(param_1 + 0x9c) << 2;\n  }\n  return;\n}" primitive_type (function_declarator "FUN_001e3fd0(long param_1,int param_2)" identifier (parameter_list "(long param_1,int param_2)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  long lVar2;\n  \n  iVar1 = (int)(*(long *)(param_1 + 0x40) - *(long *)(param_1 + 0x38) >> 3) * -0x55555555;\n  if ((uint)(param_2 + iVar1) <= *(uint *)(param_1 + 0x9c)) {\n    return;\n  }\n  *(int *)(param_1 + 0x9c) = iVar1;\n  *(undefined4 *)(param_1 + 0x98) = 0;\n  FUN_003e1b00();\n  FUN_003e1b00(param_1);\n  FUN_003e1b00(param_1);\n  lVar2 = FUN_00445450(*(undefined8 *)(param_1 + 0x88),"_GLOBAL_OFFSET_TABLE_",0);\n  if (lVar2 == 0) {\n    FUN_00445bc0(*(undefined8 *)(param_1 + 0x88),"_GLOBAL_OFFSET_TABLE_",0,5,param_1,\n                 *(int *)(param_1 + 0x9c) * 4,0,1,0,2,0,0,0);\n  }\n  else {\n    *(int *)(lVar2 + 0x40) = *(int *)(param_1 + 0x9c) << 2;\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (expression_statement "iVar1 = (int)(*(long *)(param_1 + 0x40) - *(long *)(param_1 + 0x38) >> 3) * -0x55555555;" (assignment_expression "iVar1 = (int)(*(long *)(param_1 + 0x40) - *(long *)(param_1 + 0x38) >> 3) * -0x55555555" identifier = (binary_expression "(int)(*(long *)(param_1 + 0x40) - *(long *)(param_1 + 0x38) >> 3) * -0x55555555" (cast_expression "(int)(*(long *)(param_1 + 0x40) - *(long *)(param_1 + 0x38) >> 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(*(long *)(param_1 + 0x40) - *(long *)(param_1 + 0x38) >> 3)" ( (binary_expression "*(long *)(param_1 + 0x40) - *(long *)(param_1 + 0x38) >> 3" (binary_expression "*(long *)(param_1 + 0x40) - *(long *)(param_1 + 0x38)" (pointer_expression "*(long *)(param_1 + 0x40)" * (cast_expression "(long *)(param_1 + 0x40)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) )))) - (pointer_expression "*(long *)(param_1 + 0x38)" * (cast_expression "(long *)(param_1 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) >> number_literal) ))) * number_literal)) ;) (if_statement "if ((uint)(param_2 + iVar1) <= *(uint *)(param_1 + 0x9c)) {\n    return;\n  }" if (parenthesized_expression "((uint)(param_2 + iVar1) <= *(uint *)(param_1 + 0x9c))" ( (binary_expression "(uint)(param_2 + iVar1) <= *(uint *)(param_1 + 0x9c)" (call_expression "(uint)(param_2 + iVar1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_2 + iVar1)" ( (binary_expression "param_2 + iVar1" identifier + identifier) ))) <= (pointer_expression "*(uint *)(param_1 + 0x9c)" * (cast_expression "(uint *)(param_1 + 0x9c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x9c)" ( (binary_expression "param_1 + 0x9c" identifier + number_literal) ))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "*(int *)(param_1 + 0x9c) = iVar1;" (assignment_expression "*(int *)(param_1 + 0x9c) = iVar1" (pointer_expression "*(int *)(param_1 + 0x9c)" * (cast_expression "(int *)(param_1 + 0x9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x9c)" ( (binary_expression "param_1 + 0x9c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(param_1 + 0x98) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x98) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x98)" * (cast_expression "(undefined4 *)(param_1 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x98)" ( (binary_expression "param_1 + 0x98" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_003e1b00();" (call_expression "FUN_003e1b00()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_003e1b00(param_1);" (call_expression "FUN_003e1b00(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "FUN_003e1b00(param_1);" (call_expression "FUN_003e1b00(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "lVar2 = FUN_00445450(*(undefined8 *)(param_1 + 0x88),"_GLOBAL_OFFSET_TABLE_",0);" (assignment_expression "lVar2 = FUN_00445450(*(undefined8 *)(param_1 + 0x88),"_GLOBAL_OFFSET_TABLE_",0)" identifier = (call_expression "FUN_00445450(*(undefined8 *)(param_1 + 0x88),"_GLOBAL_OFFSET_TABLE_",0)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x88),"_GLOBAL_OFFSET_TABLE_",0)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x88)" * (cast_expression "(undefined8 *)(param_1 + 0x88)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) )))) , (string_literal ""_GLOBAL_OFFSET_TABLE_"" " string_content ") , number_literal )))) ;) (if_statement "if (lVar2 == 0) {\n    FUN_00445bc0(*(undefined8 *)(param_1 + 0x88),"_GLOBAL_OFFSET_TABLE_",0,5,param_1,\n                 *(int *)(param_1 + 0x9c) * 4,0,1,0,2,0,0,0);\n  }\n  else {\n    *(int *)(lVar2 + 0x40) = *(int *)(param_1 + 0x9c) << 2;\n  }" if (parenthesized_expression "(lVar2 == 0)" ( (binary_expression "lVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    FUN_00445bc0(*(undefined8 *)(param_1 + 0x88),"_GLOBAL_OFFSET_TABLE_",0,5,param_1,\n                 *(int *)(param_1 + 0x9c) * 4,0,1,0,2,0,0,0);\n  }" { (expression_statement "FUN_00445bc0(*(undefined8 *)(param_1 + 0x88),"_GLOBAL_OFFSET_TABLE_",0,5,param_1,\n                 *(int *)(param_1 + 0x9c) * 4,0,1,0,2,0,0,0);" (call_expression "FUN_00445bc0(*(undefined8 *)(param_1 + 0x88),"_GLOBAL_OFFSET_TABLE_",0,5,param_1,\n                 *(int *)(param_1 + 0x9c) * 4,0,1,0,2,0,0,0)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x88),"_GLOBAL_OFFSET_TABLE_",0,5,param_1,\n                 *(int *)(param_1 + 0x9c) * 4,0,1,0,2,0,0,0)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x88)" * (cast_expression "(undefined8 *)(param_1 + 0x88)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) )))) , (string_literal ""_GLOBAL_OFFSET_TABLE_"" " string_content ") , number_literal , number_literal , identifier , (binary_expression "*(int *)(param_1 + 0x9c) * 4" (pointer_expression "*(int *)(param_1 + 0x9c)" * (cast_expression "(int *)(param_1 + 0x9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x9c)" ( (binary_expression "param_1 + 0x9c" identifier + number_literal) )))) * number_literal) , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal ))) ;) }) (else_clause "else {\n    *(int *)(lVar2 + 0x40) = *(int *)(param_1 + 0x9c) << 2;\n  }" else (compound_statement "{\n    *(int *)(lVar2 + 0x40) = *(int *)(param_1 + 0x9c) << 2;\n  }" { (expression_statement "*(int *)(lVar2 + 0x40) = *(int *)(param_1 + 0x9c) << 2;" (assignment_expression "*(int *)(lVar2 + 0x40) = *(int *)(param_1 + 0x9c) << 2" (pointer_expression "*(int *)(lVar2 + 0x40)" * (cast_expression "(int *)(lVar2 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x40)" ( (binary_expression "lVar2 + 0x40" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x9c) << 2" (pointer_expression "*(int *)(param_1 + 0x9c)" * (cast_expression "(int *)(param_1 + 0x9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x9c)" ( (binary_expression "param_1 + 0x9c" identifier + number_literal) )))) << number_literal)) ;) }))) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) >> LIT) ))) * LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + IDENT) ))) <= (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_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 (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (string_literal " string_content ") , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (string_literal " string_content ") , LIT , LIT , IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT) , LIT , LIT , LIT , LIT , LIT , LIT , LIT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT)) ;) }))) (return_statement return ;) })))
(function_definition "void FUN_001e3fd0(long param_1,int param_2)\n\n{\n  int iVar1;\n  long lVar2;\n  \n  iVar1 = (int)(*(long *)(param_1 + 0x40) - *(long *)(param_1 + 0x38) >> 3) * -0x55555555;\n  if ((uint)(param_2 + iVar1) <= *(uint *)(param_1 + 0x9c)) {\n    return;\n  }\n  *(int *)(param_1 + 0x9c) = iVar1;\n  *(undefined4 *)(param_1 + 0x98) = 0;\n  FUN_003e1b00();\n  FUN_003e1b00(param_1);\n  FUN_003e1b00(param_1);\n  lVar2 = FUN_00445450(*(undefined8 *)(param_1 + 0x88),"_GLOBAL_OFFSET_TABLE_",0);\n  if (lVar2 == 0) {\n    FUN_00445bc0(*(undefined8 *)(param_1 + 0x88),"_GLOBAL_OFFSET_TABLE_",0,5,param_1,\n                 *(int *)(param_1 + 0x9c) * 4,0,1,0,2,0,0,0);\n  }\n  else {\n    *(int *)(lVar2 + 0x40) = *(int *)(param_1 + 0x9c) << 2;\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_001e3fd0(long param_1,int param_2)" (identifier "FUN_001e3fd0") (parameter_list "(long param_1,int param_2)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) () ")"))) (compound_statement "{\n  int iVar1;\n  long lVar2;\n  \n  iVar1 = (int)(*(long *)(param_1 + 0x40) - *(long *)(param_1 + 0x38) >> 3) * -0x55555555;\n  if ((uint)(param_2 + iVar1) <= *(uint *)(param_1 + 0x9c)) {\n    return;\n  }\n  *(int *)(param_1 + 0x9c) = iVar1;\n  *(undefined4 *)(param_1 + 0x98) = 0;\n  FUN_003e1b00();\n  FUN_003e1b00(param_1);\n  FUN_003e1b00(param_1);\n  lVar2 = FUN_00445450(*(undefined8 *)(param_1 + 0x88),"_GLOBAL_OFFSET_TABLE_",0);\n  if (lVar2 == 0) {\n    FUN_00445bc0(*(undefined8 *)(param_1 + 0x88),"_GLOBAL_OFFSET_TABLE_",0,5,param_1,\n                 *(int *)(param_1 + 0x9c) * 4,0,1,0,2,0,0,0);\n  }\n  else {\n    *(int *)(lVar2 + 0x40) = *(int *)(param_1 + 0x9c) << 2;\n  }\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "long lVar2;" (sized_type_specifier "long" (long "long")) (identifier "lVar2") (; ";")) (expression_statement "iVar1 = (int)(*(long *)(param_1 + 0x40) - *(long *)(param_1 + 0x38) >> 3) * -0x55555555;" (assignment_expression "iVar1 = (int)(*(long *)(param_1 + 0x40) - *(long *)(param_1 + 0x38) >> 3) * -0x55555555" (identifier "iVar1") (= "=") (binary_expression "(int)(*(long *)(param_1 + 0x40) - *(long *)(param_1 + 0x38) >> 3) * -0x55555555" (cast_expression "(int)(*(long *)(param_1 + 0x40) - *(long *)(param_1 + 0x38) >> 3)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(*(long *)(param_1 + 0x40) - *(long *)(param_1 + 0x38) >> 3)" (( "(") (binary_expression "*(long *)(param_1 + 0x40) - *(long *)(param_1 + 0x38) >> 3" (binary_expression "*(long *)(param_1 + 0x40) - *(long *)(param_1 + 0x38)" (pointer_expression "*(long *)(param_1 + 0x40)" (* "*") (cast_expression "(long *)(param_1 + 0x40)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x40)" (( "(") (binary_expression "param_1 + 0x40" (identifier "param_1") (+ "+") (number_literal "0x40")) () ")")))) (- "-") (pointer_expression "*(long *)(param_1 + 0x38)" (* "*") (cast_expression "(long *)(param_1 + 0x38)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")"))))) (>> ">>") (number_literal "3")) () ")"))) (* "*") (number_literal "-0x55555555"))) (; ";")) (if_statement "if ((uint)(param_2 + iVar1) <= *(uint *)(param_1 + 0x9c)) {\n    return;\n  }" (if "if") (parenthesized_expression "((uint)(param_2 + iVar1) <= *(uint *)(param_1 + 0x9c))" (( "(") (binary_expression "(uint)(param_2 + iVar1) <= *(uint *)(param_1 + 0x9c)" (call_expression "(uint)(param_2 + iVar1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_2 + iVar1)" (( "(") (binary_expression "param_2 + iVar1" (identifier "param_2") (+ "+") (identifier "iVar1")) () ")"))) (<= "<=") (pointer_expression "*(uint *)(param_1 + 0x9c)" (* "*") (cast_expression "(uint *)(param_1 + 0x9c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x9c)" (( "(") (binary_expression "param_1 + 0x9c" (identifier "param_1") (+ "+") (number_literal "0x9c")) () ")"))))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "*(int *)(param_1 + 0x9c) = iVar1;" (assignment_expression "*(int *)(param_1 + 0x9c) = iVar1" (pointer_expression "*(int *)(param_1 + 0x9c)" (* "*") (cast_expression "(int *)(param_1 + 0x9c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x9c)" (( "(") (binary_expression "param_1 + 0x9c" (identifier "param_1") (+ "+") (number_literal "0x9c")) () ")")))) (= "=") (identifier "iVar1")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x98) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x98) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x98)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x98)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x98)" (( "(") (binary_expression "param_1 + 0x98" (identifier "param_1") (+ "+") (number_literal "0x98")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_003e1b00();" (call_expression "FUN_003e1b00()" (identifier "FUN_003e1b00") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_003e1b00(param_1);" (call_expression "FUN_003e1b00(param_1)" (identifier "FUN_003e1b00") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (expression_statement "FUN_003e1b00(param_1);" (call_expression "FUN_003e1b00(param_1)" (identifier "FUN_003e1b00") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (expression_statement "lVar2 = FUN_00445450(*(undefined8 *)(param_1 + 0x88),"_GLOBAL_OFFSET_TABLE_",0);" (assignment_expression "lVar2 = FUN_00445450(*(undefined8 *)(param_1 + 0x88),"_GLOBAL_OFFSET_TABLE_",0)" (identifier "lVar2") (= "=") (call_expression "FUN_00445450(*(undefined8 *)(param_1 + 0x88),"_GLOBAL_OFFSET_TABLE_",0)" (identifier "FUN_00445450") (argument_list "(*(undefined8 *)(param_1 + 0x88),"_GLOBAL_OFFSET_TABLE_",0)" (( "(") (pointer_expression "*(undefined8 *)(param_1 + 0x88)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x88)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x88)" (( "(") (binary_expression "param_1 + 0x88" (identifier "param_1") (+ "+") (number_literal "0x88")) () ")")))) (, ",") (string_literal ""_GLOBAL_OFFSET_TABLE_"" (" """) (string_content "_GLOBAL_OFFSET_TABLE_") (" """)) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (lVar2 == 0) {\n    FUN_00445bc0(*(undefined8 *)(param_1 + 0x88),"_GLOBAL_OFFSET_TABLE_",0,5,param_1,\n                 *(int *)(param_1 + 0x9c) * 4,0,1,0,2,0,0,0);\n  }\n  else {\n    *(int *)(lVar2 + 0x40) = *(int *)(param_1 + 0x9c) << 2;\n  }" (if "if") (parenthesized_expression "(lVar2 == 0)" (( "(") (binary_expression "lVar2 == 0" (identifier "lVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_00445bc0(*(undefined8 *)(param_1 + 0x88),"_GLOBAL_OFFSET_TABLE_",0,5,param_1,\n                 *(int *)(param_1 + 0x9c) * 4,0,1,0,2,0,0,0);\n  }" ({ "{") (expression_statement "FUN_00445bc0(*(undefined8 *)(param_1 + 0x88),"_GLOBAL_OFFSET_TABLE_",0,5,param_1,\n                 *(int *)(param_1 + 0x9c) * 4,0,1,0,2,0,0,0);" (call_expression "FUN_00445bc0(*(undefined8 *)(param_1 + 0x88),"_GLOBAL_OFFSET_TABLE_",0,5,param_1,\n                 *(int *)(param_1 + 0x9c) * 4,0,1,0,2,0,0,0)" (identifier "FUN_00445bc0") (argument_list "(*(undefined8 *)(param_1 + 0x88),"_GLOBAL_OFFSET_TABLE_",0,5,param_1,\n                 *(int *)(param_1 + 0x9c) * 4,0,1,0,2,0,0,0)" (( "(") (pointer_expression "*(undefined8 *)(param_1 + 0x88)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x88)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x88)" (( "(") (binary_expression "param_1 + 0x88" (identifier "param_1") (+ "+") (number_literal "0x88")) () ")")))) (, ",") (string_literal ""_GLOBAL_OFFSET_TABLE_"" (" """) (string_content "_GLOBAL_OFFSET_TABLE_") (" """)) (, ",") (number_literal "0") (, ",") (number_literal "5") (, ",") (identifier "param_1") (, ",") (binary_expression "*(int *)(param_1 + 0x9c) * 4" (pointer_expression "*(int *)(param_1 + 0x9c)" (* "*") (cast_expression "(int *)(param_1 + 0x9c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x9c)" (( "(") (binary_expression "param_1 + 0x9c" (identifier "param_1") (+ "+") (number_literal "0x9c")) () ")")))) (* "*") (number_literal "4")) (, ",") (number_literal "0") (, ",") (number_literal "1") (, ",") (number_literal "0") (, ",") (number_literal "2") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}")) (else_clause "else {\n    *(int *)(lVar2 + 0x40) = *(int *)(param_1 + 0x9c) << 2;\n  }" (else "else") (compound_statement "{\n    *(int *)(lVar2 + 0x40) = *(int *)(param_1 + 0x9c) << 2;\n  }" ({ "{") (expression_statement "*(int *)(lVar2 + 0x40) = *(int *)(param_1 + 0x9c) << 2;" (assignment_expression "*(int *)(lVar2 + 0x40) = *(int *)(param_1 + 0x9c) << 2" (pointer_expression "*(int *)(lVar2 + 0x40)" (* "*") (cast_expression "(int *)(lVar2 + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar2 + 0x40)" (( "(") (binary_expression "lVar2 + 0x40" (identifier "lVar2") (+ "+") (number_literal "0x40")) () ")")))) (= "=") (binary_expression "*(int *)(param_1 + 0x9c) << 2" (pointer_expression "*(int *)(param_1 + 0x9c)" (* "*") (cast_expression "(int *)(param_1 + 0x9c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x9c)" (( "(") (binary_expression "param_1 + 0x9c" (identifier "param_1") (+ "+") (number_literal "0x9c")) () ")")))) (<< "<<") (number_literal "2"))) (; ";")) (} "}")))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "STT": Some values do not have unique names */
/* WARNING: Enum "STB": Some values do not have unique names */
/* DWARF original prototype: void reserve_ent(Output_data_got_powerpc<32,_false> * this, uint cnt)
    */

void __thiscall
anon_unknown.dwarf_6a1ea8::Output_data_got_powerpc<32,var_2>::reserve_ent
          (Output_data_got_powerpc<32,var_2> *this,type_2 var_4)

{
  type_1 got_entry;
  type_1 got_entry_00;
  type_1 got_entry_01;
  type_2 var_5;
  type_3 *var_9;
  type_4 uVar3;
  type_5 uVar4;
  type_2 uStack_24;
  type_6 uStack_1c;
  type_7 local_18;
  
  var_5 = (int)((long)(this->super_Output_data_got<32,var_2>).entries_.
                      super__Vector_base<gold::var_1<32,var_2>::type_1,_std::allocator<gold::var_1<32,var_2>::type_1>var_3>
                      ._M_impl._M_finish -
                (long)(this->super_Output_data_got<32,var_2>).entries_.
                      super__Vector_base<gold::var_1<32,var_2>::type_1,_std::allocator<gold::var_1<32,var_2>::type_1>var_3>
                      ._M_impl._M_start >> 3) * -0x55555555;
  if (var_4 + var_5 <= this->header_index_) {
    return;
  }
  this->header_index_ = var_5;
  this->header_ent_cnt_ = 0;
  uVar3 = (type_4)local_18;
  uVar4 = (type_5)((type_8)local_18 >> 8);
  got_entry._8_1_ = 0xfe;
  got_entry.u_.object = (type_9 *)((type_8)uStack_24 << 0x20);
  got_entry._9_7_ = (int7)(var_6(uStack_1c,0x7ffffffe) >> 8);
  got_entry.addend_._0_1_ = uVar3;
  got_entry.addend_._1_7_ = uVar4;
  gold::var_1<32,var_2>::var_7(&this->super_Output_data_got<32,var_2>,got_entry)
  ;
  got_entry_00._8_1_ = 0xfe;
  got_entry_00.u_.object = (type_9 *)((type_8)uStack_24 << 0x20);
  got_entry_00._9_7_ = (int7)(var_6(uStack_1c,0x7ffffffe) >> 8);
  got_entry_00.addend_._0_1_ = uVar3;
  got_entry_00.addend_._1_7_ = uVar4;
  gold::var_1<32,var_2>::var_7
            (&this->super_Output_data_got<32,var_2>,got_entry_00);
  got_entry_01._8_1_ = 0xfe;
  got_entry_01.u_.object = (type_9 *)((type_8)uStack_24 << 0x20);
  got_entry_01._9_7_ = (int7)(var_6(uStack_1c,0x7ffffffe) >> 8);
  got_entry_01.addend_._0_1_ = uVar3;
  got_entry_01.addend_._1_7_ = uVar4;
  gold::var_1<32,var_2>::var_7
            (&this->super_Output_data_got<32,var_2>,got_entry_01);
  var_9 = gold::Symbol_table::var_8(this->symtab_,"_GLOBAL_OFFSET_TABLE_",(char *)0x0);
  if (var_9 == (type_3 *)0x0) {
    gold::Symbol_table::var_10
              (this->symtab_,"_GLOBAL_OFFSET_TABLE_",(char *)0x0,PREDEFINED,(type_10 *)this,
               (type_8)(this->header_index_ * 4),0,STT_OBJECT,STB_LOCAL,STV_HIDDEN,'\0',false,false);
  }
  else {
    *(type_2 *)&var_9[1].name_ = this->header_index_ << 2;
  }
  return;
}


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

void MASKED(long param_1,int param_2)

{
  int iVar1;
  long lVar2;
  
  iVar1 = (int)(*(long *)(param_1 + 0x40) - *(long *)(param_1 + 0x38) >> 3) * -0x55555555;
  if ((uint)(param_2 + iVar1) <= *(uint *)(param_1 + 0x9c)) {
    return;
  }
  *(int *)(param_1 + 0x9c) = iVar1;
  *(undefined4 *)(param_1 + 0x98) = 0;
  FUN_003e1b00();
  FUN_003e1b00(param_1);
  FUN_003e1b00(param_1);
  lVar2 = FUN_00445450(*(undefined8 *)(param_1 + 0x88),"_GLOBAL_OFFSET_TABLE_",0);
  if (lVar2 == 0) {
    FUN_00445bc0(*(undefined8 *)(param_1 + 0x88),"_GLOBAL_OFFSET_TABLE_",0,5,param_1,
                 *(int *)(param_1 + 0x9c) * 4,0,1,0,2,0,0,0);
  }
  else {
    *(int *)(lVar2 + 0x40) = *(int *)(param_1 + 0x9c) << 2;
  }
  return;
}

