
/* WARNING: Removing unreachable block (ram,0x001491cf) */
/* WARNING: Removing unreachable block (ram,0x001491e2) */
/* WARNING: Removing unreachable block (ram,0x00149276) */
/* WARNING: Removing unreachable block (ram,0x00149215) */
/* DWARF original prototype: uint add_output_section(Dwp_output_file * this, char * section_name,
   int align) */

uint __thiscall
gold::Dwp_output_file::add_output_section(Dwp_output_file *this,char *section_name,int align)

{
  uint uVar1;
  iterator __position;
  Section sect;
  
  __position._M_current =
       (this->sections_).
       super__Vector_base<gold::Dwp_output_file::Section,_std::allocator<gold::Dwp_output_file::Section>_>
       ._M_impl._M_finish;
  sect.offset = 0;
  sect.size = 0;
  sect.contributions.
  super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>
  ._M_impl._M_start = (pointer)0x0;
  sect.contributions.
  super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>
  ._M_impl._M_finish = (pointer)0x0;
  sect.contributions.
  super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>
  ._M_impl._M_end_of_storage = (pointer)0x0;
  sect.name = section_name;
  sect.align = align;
  if (__position._M_current ==
      (this->sections_).
      super__Vector_base<gold::Dwp_output_file::Section,_std::allocator<gold::Dwp_output_file::Section>_>
      ._M_impl._M_end_of_storage) {
    std::vector<gold::Dwp_output_file::Section,_std::allocator<gold::Dwp_output_file::Section>_>::
    _M_realloc_insert<const_gold::Dwp_output_file::Section&>(&this->sections_,__position,&sect);
  }
  else {
    (__position._M_current)->name = section_name;
    ((__position._M_current)->contributions).
    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>
    ._M_impl._M_finish = (pointer)0x0;
    (__position._M_current)->offset = 0;
    ((__position._M_current)->contributions).
    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>
    ._M_impl._M_start = (pointer)0x0;
    (__position._M_current)->size = 0;
    ((__position._M_current)->contributions).
    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>
    ._M_impl._M_end_of_storage = (pointer)0x0;
    (__position._M_current)->align = align;
    ((__position._M_current)->contributions).
    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>
    ._M_impl._M_start = (pointer)0x0;
    ((__position._M_current)->contributions).
    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>
    ._M_impl._M_finish = (pointer)0x0;
    ((__position._M_current)->contributions).
    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>
    ._M_impl._M_end_of_storage = (pointer)0x0;
    sect.contributions.
    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>
    ._M_impl._M_end_of_storage = (pointer)0x0;
    sect.contributions.
    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>
    ._M_impl._M_finish = (pointer)0x0;
    sect.contributions.
    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>
    ._M_impl._M_start = (pointer)0x0;
    sect.size = 0;
    sect.offset = 0;
    ((__position._M_current)->contributions).
    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>
    ._M_impl._M_finish = (pointer)0x0;
    (this->sections_).
    super__Vector_base<gold::Dwp_output_file::Section,_std::allocator<gold::Dwp_output_file::Section>_>
    ._M_impl._M_finish = __position._M_current + 1;
  }
  uVar1 = this->shnum_;
  this->shnum_ = uVar1 + 1;
  if (sect.contributions.
      super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>
      ._M_impl._M_start != (pointer)0x0) {
    operator_delete(sect.contributions.
                    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>
                    ._M_impl._M_start);
  }
  return uVar1;
}



/* WARNING: Removing unreachable block (ram,0x001491cf) */
/* WARNING: Removing unreachable block (ram,0x001491e2) */
/* WARNING: Removing unreachable block (ram,0x00149276) */
/* WARNING: Removing unreachable block (ram,0x00149215) */

int FUN_00149120(long param_1,undefined8 param_2,undefined4 param_3)

{
  int iVar1;
  undefined8 *puVar2;
  undefined8 local_68;
  undefined8 local_60;
  undefined8 local_58;
  undefined4 local_50;
  long local_48;
  undefined8 local_40;
  undefined8 local_38;
  
  puVar2 = *(undefined8 **)(param_1 + 0x40);
  local_60 = 0;
  local_58 = 0;
  local_48 = 0;
  local_40 = 0;
  local_38 = 0;
  local_68 = param_2;
  local_50 = param_3;
  if (puVar2 == *(undefined8 **)(param_1 + 0x48)) {
    FUN_001573b0(param_1 + 0x38,puVar2,&local_68);
  }
  else {
    *puVar2 = param_2;
    puVar2[5] = 0;
    puVar2[1] = 0;
    puVar2[4] = 0;
    puVar2[2] = 0;
    puVar2[6] = 0;
    *(undefined4 *)(puVar2 + 3) = param_3;
    puVar2[4] = 0;
    puVar2[5] = 0;
    puVar2[6] = 0;
    local_38 = 0;
    local_40 = 0;
    local_48 = 0;
    local_58 = 0;
    local_60 = 0;
    puVar2[5] = 0;
    *(undefined8 **)(param_1 + 0x40) = puVar2 + 7;
  }
  iVar1 = *(int *)(param_1 + 0x30);
  *(int *)(param_1 + 0x30) = iVar1 + 1;
  if (local_48 != 0) {
    FUN_00276d20(local_48);
  }
  return iVar1;
}


PUSH R14
PUSH R13
PUSH R12
PUSH RBP
MOV RBP,RDI
PUSH RBX
SUB RSP,0x40
MOV RBX,qword ptr [RDI + 0x40]
MOV qword ptr [RSP],RSI
MOV qword ptr [RSP + 0x8],0x0
MOV qword ptr [RSP + 0x10],0x0
MOV dword ptr [RSP + 0x18],EDX
MOV qword ptr [RSP + 0x20],0x0
MOV qword ptr [RSP + 0x28],0x0
MOV qword ptr [RSP + 0x30],0x0
CMP RBX,qword ptr [RDI + 0x48]
JZ 0x00149260
MOV RAX,qword ptr [RSP + 0x8]
MOV R12,qword ptr [RSP + 0x28]
MOV qword ptr [RBX],RSI
MOV R13,RBX
SUB R12,qword ptr [RSP + 0x20]
MOV qword ptr [RBX + 0x28],0x0
MOV RDX,-0x5555555555555555
XOR ECX,ECX
MOV qword ptr [RBX + 0x8],RAX
MOV RAX,qword ptr [RSP + 0x10]
MOV qword ptr [RBX + 0x20],0x0
MOV qword ptr [RBX + 0x10],RAX
MOV EAX,dword ptr [RSP + 0x18]
MOV qword ptr [RBX + 0x30],0x0
MOV dword ptr [RBX + 0x18],EAX
MOV RAX,R12
SAR RAX,0x3
IMUL RAX,RDX
TEST RAX,RAX
JZ 0x001491f1
MOV RDX,0xaaaaaaaaaaaaaaa
CMP RAX,RDX
JA 0x00149276
MOV RDI,R12
CALL 0x00275550
MOV R13,qword ptr [RBP + 0x40]
MOV RCX,RAX
MOV qword ptr [RBX + 0x20],RCX
ADD R12,RCX
MOV qword ptr [RBX + 0x28],RCX
MOV RAX,qword ptr [RSP + 0x28]
MOV qword ptr [RBX + 0x30],R12
MOV R12,qword ptr [RSP + 0x20]
MOV R14,RAX
SUB R14,R12
CMP RAX,R12
JZ 0x00149226
MOV RDI,RCX
MOV RDX,R14
MOV RSI,R12
CALL 0x0013e6d0
MOV RCX,RAX
ADD RCX,R14
ADD R13,0x38
MOV qword ptr [RBX + 0x28],RCX
MOV qword ptr [RBP + 0x40],R13
MOV EBX,dword ptr [RBP + 0x30]
LEA EAX,[RBX + 0x1]
MOV dword ptr [RBP + 0x30],EAX
TEST R12,R12
JZ 0x0014924b
MOV RDI,R12
CALL 0x00276d20
ADD RSP,0x40
MOV EAX,EBX
POP RBX
POP RBP
POP R12
POP R13
POP R14
RET
MOV RDX,RSP
LEA RDI,[RDI + 0x38]
MOV RSI,RBX
CALL 0x001573b0
MOV R12,qword ptr [RSP + 0x20]
JMP 0x00149235
CALL 0x002b54d0
(translation_unit "/* WARNING: Removing unreachable block (ram,0x001491cf) */\n/* WARNING: Removing unreachable block (ram,0x001491e2) */\n/* WARNING: Removing unreachable block (ram,0x00149276) */\n/* WARNING: Removing unreachable block (ram,0x00149215) */\n\nint FUN_00149120(long param_1,undefined8 param_2,undefined4 param_3)\n\n{\n  int iVar1;\n  undefined8 *puVar2;\n  undefined8 local_68;\n  undefined8 local_60;\n  undefined8 local_58;\n  undefined4 local_50;\n  long local_48;\n  undefined8 local_40;\n  undefined8 local_38;\n  \n  puVar2 = *(undefined8 **)(param_1 + 0x40);\n  local_60 = 0;\n  local_58 = 0;\n  local_48 = 0;\n  local_40 = 0;\n  local_38 = 0;\n  local_68 = param_2;\n  local_50 = param_3;\n  if (puVar2 == *(undefined8 **)(param_1 + 0x48)) {\n    FUN_001573b0(param_1 + 0x38,puVar2,&local_68);\n  }\n  else {\n    *puVar2 = param_2;\n    puVar2[5] = 0;\n    puVar2[1] = 0;\n    puVar2[4] = 0;\n    puVar2[2] = 0;\n    puVar2[6] = 0;\n    *(undefined4 *)(puVar2 + 3) = param_3;\n    puVar2[4] = 0;\n    puVar2[5] = 0;\n    puVar2[6] = 0;\n    local_38 = 0;\n    local_40 = 0;\n    local_48 = 0;\n    local_58 = 0;\n    local_60 = 0;\n    puVar2[5] = 0;\n    *(undefined8 **)(param_1 + 0x40) = puVar2 + 7;\n  }\n  iVar1 = *(int *)(param_1 + 0x30);\n  *(int *)(param_1 + 0x30) = iVar1 + 1;\n  if (local_48 != 0) {\n    FUN_00276d20(local_48);\n  }\n  return iVar1;\n}\n\n" comment comment comment comment (function_definition "int FUN_00149120(long param_1,undefined8 param_2,undefined4 param_3)\n\n{\n  int iVar1;\n  undefined8 *puVar2;\n  undefined8 local_68;\n  undefined8 local_60;\n  undefined8 local_58;\n  undefined4 local_50;\n  long local_48;\n  undefined8 local_40;\n  undefined8 local_38;\n  \n  puVar2 = *(undefined8 **)(param_1 + 0x40);\n  local_60 = 0;\n  local_58 = 0;\n  local_48 = 0;\n  local_40 = 0;\n  local_38 = 0;\n  local_68 = param_2;\n  local_50 = param_3;\n  if (puVar2 == *(undefined8 **)(param_1 + 0x48)) {\n    FUN_001573b0(param_1 + 0x38,puVar2,&local_68);\n  }\n  else {\n    *puVar2 = param_2;\n    puVar2[5] = 0;\n    puVar2[1] = 0;\n    puVar2[4] = 0;\n    puVar2[2] = 0;\n    puVar2[6] = 0;\n    *(undefined4 *)(puVar2 + 3) = param_3;\n    puVar2[4] = 0;\n    puVar2[5] = 0;\n    puVar2[6] = 0;\n    local_38 = 0;\n    local_40 = 0;\n    local_48 = 0;\n    local_58 = 0;\n    local_60 = 0;\n    puVar2[5] = 0;\n    *(undefined8 **)(param_1 + 0x40) = puVar2 + 7;\n  }\n  iVar1 = *(int *)(param_1 + 0x30);\n  *(int *)(param_1 + 0x30) = iVar1 + 1;\n  if (local_48 != 0) {\n    FUN_00276d20(local_48);\n  }\n  return iVar1;\n}" primitive_type (function_declarator "FUN_00149120(long param_1,undefined8 param_2,undefined4 param_3)" identifier (parameter_list "(long param_1,undefined8 param_2,undefined4 param_3)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined8 *puVar2;\n  undefined8 local_68;\n  undefined8 local_60;\n  undefined8 local_58;\n  undefined4 local_50;\n  long local_48;\n  undefined8 local_40;\n  undefined8 local_38;\n  \n  puVar2 = *(undefined8 **)(param_1 + 0x40);\n  local_60 = 0;\n  local_58 = 0;\n  local_48 = 0;\n  local_40 = 0;\n  local_38 = 0;\n  local_68 = param_2;\n  local_50 = param_3;\n  if (puVar2 == *(undefined8 **)(param_1 + 0x48)) {\n    FUN_001573b0(param_1 + 0x38,puVar2,&local_68);\n  }\n  else {\n    *puVar2 = param_2;\n    puVar2[5] = 0;\n    puVar2[1] = 0;\n    puVar2[4] = 0;\n    puVar2[2] = 0;\n    puVar2[6] = 0;\n    *(undefined4 *)(puVar2 + 3) = param_3;\n    puVar2[4] = 0;\n    puVar2[5] = 0;\n    puVar2[6] = 0;\n    local_38 = 0;\n    local_40 = 0;\n    local_48 = 0;\n    local_58 = 0;\n    local_60 = 0;\n    puVar2[5] = 0;\n    *(undefined8 **)(param_1 + 0x40) = puVar2 + 7;\n  }\n  iVar1 = *(int *)(param_1 + 0x30);\n  *(int *)(param_1 + 0x30) = iVar1 + 1;\n  if (local_48 != 0) {\n    FUN_00276d20(local_48);\n  }\n  return iVar1;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined8 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined8 local_68;" type_identifier identifier ;) (declaration "undefined8 local_60;" type_identifier identifier ;) (declaration "undefined8 local_58;" type_identifier identifier ;) (declaration "undefined4 local_50;" type_identifier identifier ;) (declaration "long local_48;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 local_40;" type_identifier identifier ;) (declaration "undefined8 local_38;" type_identifier identifier ;) (expression_statement "puVar2 = *(undefined8 **)(param_1 + 0x40);" (assignment_expression "puVar2 = *(undefined8 **)(param_1 + 0x40)" identifier = (pointer_expression "*(undefined8 **)(param_1 + 0x40)" * (cast_expression "(undefined8 **)(param_1 + 0x40)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" identifier = number_literal) ;) (expression_statement "local_68 = param_2;" (assignment_expression "local_68 = param_2" identifier = identifier) ;) (expression_statement "local_50 = param_3;" (assignment_expression "local_50 = param_3" identifier = identifier) ;) (if_statement "if (puVar2 == *(undefined8 **)(param_1 + 0x48)) {\n    FUN_001573b0(param_1 + 0x38,puVar2,&local_68);\n  }\n  else {\n    *puVar2 = param_2;\n    puVar2[5] = 0;\n    puVar2[1] = 0;\n    puVar2[4] = 0;\n    puVar2[2] = 0;\n    puVar2[6] = 0;\n    *(undefined4 *)(puVar2 + 3) = param_3;\n    puVar2[4] = 0;\n    puVar2[5] = 0;\n    puVar2[6] = 0;\n    local_38 = 0;\n    local_40 = 0;\n    local_48 = 0;\n    local_58 = 0;\n    local_60 = 0;\n    puVar2[5] = 0;\n    *(undefined8 **)(param_1 + 0x40) = puVar2 + 7;\n  }" if (parenthesized_expression "(puVar2 == *(undefined8 **)(param_1 + 0x48))" ( (binary_expression "puVar2 == *(undefined8 **)(param_1 + 0x48)" identifier == (pointer_expression "*(undefined8 **)(param_1 + 0x48)" * (cast_expression "(undefined8 **)(param_1 + 0x48)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) ))))) )) (compound_statement "{\n    FUN_001573b0(param_1 + 0x38,puVar2,&local_68);\n  }" { (expression_statement "FUN_001573b0(param_1 + 0x38,puVar2,&local_68);" (call_expression "FUN_001573b0(param_1 + 0x38,puVar2,&local_68)" identifier (argument_list "(param_1 + 0x38,puVar2,&local_68)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&local_68" & identifier) ))) ;) }) (else_clause "else {\n    *puVar2 = param_2;\n    puVar2[5] = 0;\n    puVar2[1] = 0;\n    puVar2[4] = 0;\n    puVar2[2] = 0;\n    puVar2[6] = 0;\n    *(undefined4 *)(puVar2 + 3) = param_3;\n    puVar2[4] = 0;\n    puVar2[5] = 0;\n    puVar2[6] = 0;\n    local_38 = 0;\n    local_40 = 0;\n    local_48 = 0;\n    local_58 = 0;\n    local_60 = 0;\n    puVar2[5] = 0;\n    *(undefined8 **)(param_1 + 0x40) = puVar2 + 7;\n  }" else (compound_statement "{\n    *puVar2 = param_2;\n    puVar2[5] = 0;\n    puVar2[1] = 0;\n    puVar2[4] = 0;\n    puVar2[2] = 0;\n    puVar2[6] = 0;\n    *(undefined4 *)(puVar2 + 3) = param_3;\n    puVar2[4] = 0;\n    puVar2[5] = 0;\n    puVar2[6] = 0;\n    local_38 = 0;\n    local_40 = 0;\n    local_48 = 0;\n    local_58 = 0;\n    local_60 = 0;\n    puVar2[5] = 0;\n    *(undefined8 **)(param_1 + 0x40) = puVar2 + 7;\n  }" { (expression_statement "*puVar2 = param_2;" (assignment_expression "*puVar2 = param_2" (pointer_expression "*puVar2" * identifier) = identifier) ;) (expression_statement "puVar2[5] = 0;" (assignment_expression "puVar2[5] = 0" (subscript_expression "puVar2[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[1] = 0;" (assignment_expression "puVar2[1] = 0" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[4] = 0;" (assignment_expression "puVar2[4] = 0" (subscript_expression "puVar2[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[2] = 0;" (assignment_expression "puVar2[2] = 0" (subscript_expression "puVar2[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[6] = 0;" (assignment_expression "puVar2[6] = 0" (subscript_expression "puVar2[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar2 + 3) = param_3;" (assignment_expression "*(undefined4 *)(puVar2 + 3) = param_3" (pointer_expression "*(undefined4 *)(puVar2 + 3)" * (cast_expression "(undefined4 *)(puVar2 + 3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 3)" ( (binary_expression "puVar2 + 3" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar2[4] = 0;" (assignment_expression "puVar2[4] = 0" (subscript_expression "puVar2[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[5] = 0;" (assignment_expression "puVar2[5] = 0" (subscript_expression "puVar2[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[6] = 0;" (assignment_expression "puVar2[6] = 0" (subscript_expression "puVar2[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" identifier = number_literal) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (expression_statement "puVar2[5] = 0;" (assignment_expression "puVar2[5] = 0" (subscript_expression "puVar2[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined8 **)(param_1 + 0x40) = puVar2 + 7;" (assignment_expression "*(undefined8 **)(param_1 + 0x40) = puVar2 + 7" (pointer_expression "*(undefined8 **)(param_1 + 0x40)" * (cast_expression "(undefined8 **)(param_1 + 0x40)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) )))) = (binary_expression "puVar2 + 7" identifier + number_literal)) ;) }))) (expression_statement "iVar1 = *(int *)(param_1 + 0x30);" (assignment_expression "iVar1 = *(int *)(param_1 + 0x30)" identifier = (pointer_expression "*(int *)(param_1 + 0x30)" * (cast_expression "(int *)(param_1 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(param_1 + 0x30) = iVar1 + 1;" (assignment_expression "*(int *)(param_1 + 0x30) = iVar1 + 1" (pointer_expression "*(int *)(param_1 + 0x30)" * (cast_expression "(int *)(param_1 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) = (binary_expression "iVar1 + 1" identifier + number_literal)) ;) (if_statement "if (local_48 != 0) {\n    FUN_00276d20(local_48);\n  }" if (parenthesized_expression "(local_48 != 0)" ( (binary_expression "local_48 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_00276d20(local_48);\n  }" { (expression_statement "FUN_00276d20(local_48);" (call_expression "FUN_00276d20(local_48)" identifier (argument_list "(local_48)" ( identifier ))) ;) })) (return_statement "return iVar1;" return identifier ;) })))
(translation_unit "/* WARNING: Removing unreachable block (ram,0x001491cf) */\n/* WARNING: Removing unreachable block (ram,0x001491e2) */\n/* WARNING: Removing unreachable block (ram,0x00149276) */\n/* WARNING: Removing unreachable block (ram,0x00149215) */\n/* DWARF original prototype: uint add_output_section(Dwp_output_file * this, char * section_name,\n   int align) */\n\nuint __thiscall\ngold::Dwp_output_file::add_output_section(Dwp_output_file *this,char *section_name,int align)\n\n{\n  uint uVar1;\n  iterator __position;\n  Section sect;\n  \n  __position._M_current =\n       (this->sections_).\n       super__Vector_base<gold::Dwp_output_file::Section,_std::allocator<gold::Dwp_output_file::Section>_>\n       ._M_impl._M_finish;\n  sect.offset = 0;\n  sect.size = 0;\n  sect.contributions.\n  super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n  ._M_impl._M_start = (pointer)0x0;\n  sect.contributions.\n  super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n  ._M_impl._M_finish = (pointer)0x0;\n  sect.contributions.\n  super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n  ._M_impl._M_end_of_storage = (pointer)0x0;\n  sect.name = section_name;\n  sect.align = align;\n  if (__position._M_current ==\n      (this->sections_).\n      super__Vector_base<gold::Dwp_output_file::Section,_std::allocator<gold::Dwp_output_file::Section>_>\n      ._M_impl._M_end_of_storage) {\n    std::vector<gold::Dwp_output_file::Section,_std::allocator<gold::Dwp_output_file::Section>_>::\n    _M_realloc_insert<const_gold::Dwp_output_file::Section&>(&this->sections_,__position,&sect);\n  }\n  else {\n    (__position._M_current)->name = section_name;\n    ((__position._M_current)->contributions).\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_finish = (pointer)0x0;\n    (__position._M_current)->offset = 0;\n    ((__position._M_current)->contributions).\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_start = (pointer)0x0;\n    (__position._M_current)->size = 0;\n    ((__position._M_current)->contributions).\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_end_of_storage = (pointer)0x0;\n    (__position._M_current)->align = align;\n    ((__position._M_current)->contributions).\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_start = (pointer)0x0;\n    ((__position._M_current)->contributions).\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_finish = (pointer)0x0;\n    ((__position._M_current)->contributions).\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_end_of_storage = (pointer)0x0;\n    sect.contributions.\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_end_of_storage = (pointer)0x0;\n    sect.contributions.\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_finish = (pointer)0x0;\n    sect.contributions.\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_start = (pointer)0x0;\n    sect.size = 0;\n    sect.offset = 0;\n    ((__position._M_current)->contributions).\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_finish = (pointer)0x0;\n    (this->sections_).\n    super__Vector_base<gold::Dwp_output_file::Section,_std::allocator<gold::Dwp_output_file::Section>_>\n    ._M_impl._M_finish = __position._M_current + 1;\n  }\n  uVar1 = this->shnum_;\n  this->shnum_ = uVar1 + 1;\n  if (sect.contributions.\n      super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n      ._M_impl._M_start != (pointer)0x0) {\n    operator_delete(sect.contributions.\n                    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n                    ._M_impl._M_start);\n  }\n  return uVar1;\n}\n\n" comment comment comment comment comment (function_definition "uint __thiscall\ngold::Dwp_output_file::add_output_section(Dwp_output_file *this,char *section_name,int align)\n\n{\n  uint uVar1;\n  iterator __position;\n  Section sect;\n  \n  __position._M_current =\n       (this->sections_).\n       super__Vector_base<gold::Dwp_output_file::Section,_std::allocator<gold::Dwp_output_file::Section>_>\n       ._M_impl._M_finish;\n  sect.offset = 0;\n  sect.size = 0;\n  sect.contributions.\n  super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n  ._M_impl._M_start = (pointer)0x0;\n  sect.contributions.\n  super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n  ._M_impl._M_finish = (pointer)0x0;\n  sect.contributions.\n  super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n  ._M_impl._M_end_of_storage = (pointer)0x0;\n  sect.name = section_name;\n  sect.align = align;\n  if (__position._M_current ==\n      (this->sections_).\n      super__Vector_base<gold::Dwp_output_file::Section,_std::allocator<gold::Dwp_output_file::Section>_>\n      ._M_impl._M_end_of_storage) {\n    std::vector<gold::Dwp_output_file::Section,_std::allocator<gold::Dwp_output_file::Section>_>::\n    _M_realloc_insert<const_gold::Dwp_output_file::Section&>(&this->sections_,__position,&sect);\n  }\n  else {\n    (__position._M_current)->name = section_name;\n    ((__position._M_current)->contributions).\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_finish = (pointer)0x0;\n    (__position._M_current)->offset = 0;\n    ((__position._M_current)->contributions).\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_start = (pointer)0x0;\n    (__position._M_current)->size = 0;\n    ((__position._M_current)->contributions).\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_end_of_storage = (pointer)0x0;\n    (__position._M_current)->align = align;\n    ((__position._M_current)->contributions).\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_start = (pointer)0x0;\n    ((__position._M_current)->contributions).\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_finish = (pointer)0x0;\n    ((__position._M_current)->contributions).\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_end_of_storage = (pointer)0x0;\n    sect.contributions.\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_end_of_storage = (pointer)0x0;\n    sect.contributions.\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_finish = (pointer)0x0;\n    sect.contributions.\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_start = (pointer)0x0;\n    sect.size = 0;\n    sect.offset = 0;\n    ((__position._M_current)->contributions).\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_finish = (pointer)0x0;\n    (this->sections_).\n    super__Vector_base<gold::Dwp_output_file::Section,_std::allocator<gold::Dwp_output_file::Section>_>\n    ._M_impl._M_finish = __position._M_current + 1;\n  }\n  uVar1 = this->shnum_;\n  this->shnum_ = uVar1 + 1;\n  if (sect.contributions.\n      super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n      ._M_impl._M_start != (pointer)0x0) {\n    operator_delete(sect.contributions.\n                    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n                    ._M_impl._M_start);\n  }\n  return uVar1;\n}" type_identifier (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Dwp_output_file::" identifier : : identifier : :) (function_declarator "add_output_section(Dwp_output_file *this,char *section_name,int align)" identifier (parameter_list "(Dwp_output_file *this,char *section_name,int align)" ( (parameter_declaration "Dwp_output_file *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "char *section_name" primitive_type (pointer_declarator "*section_name" * identifier)) , (parameter_declaration "int align" primitive_type identifier) ))) (compound_statement "{\n  uint uVar1;\n  iterator __position;\n  Section sect;\n  \n  __position._M_current =\n       (this->sections_).\n       super__Vector_base<gold::Dwp_output_file::Section,_std::allocator<gold::Dwp_output_file::Section>_>\n       ._M_impl._M_finish;\n  sect.offset = 0;\n  sect.size = 0;\n  sect.contributions.\n  super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n  ._M_impl._M_start = (pointer)0x0;\n  sect.contributions.\n  super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n  ._M_impl._M_finish = (pointer)0x0;\n  sect.contributions.\n  super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n  ._M_impl._M_end_of_storage = (pointer)0x0;\n  sect.name = section_name;\n  sect.align = align;\n  if (__position._M_current ==\n      (this->sections_).\n      super__Vector_base<gold::Dwp_output_file::Section,_std::allocator<gold::Dwp_output_file::Section>_>\n      ._M_impl._M_end_of_storage) {\n    std::vector<gold::Dwp_output_file::Section,_std::allocator<gold::Dwp_output_file::Section>_>::\n    _M_realloc_insert<const_gold::Dwp_output_file::Section&>(&this->sections_,__position,&sect);\n  }\n  else {\n    (__position._M_current)->name = section_name;\n    ((__position._M_current)->contributions).\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_finish = (pointer)0x0;\n    (__position._M_current)->offset = 0;\n    ((__position._M_current)->contributions).\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_start = (pointer)0x0;\n    (__position._M_current)->size = 0;\n    ((__position._M_current)->contributions).\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_end_of_storage = (pointer)0x0;\n    (__position._M_current)->align = align;\n    ((__position._M_current)->contributions).\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_start = (pointer)0x0;\n    ((__position._M_current)->contributions).\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_finish = (pointer)0x0;\n    ((__position._M_current)->contributions).\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_end_of_storage = (pointer)0x0;\n    sect.contributions.\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_end_of_storage = (pointer)0x0;\n    sect.contributions.\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_finish = (pointer)0x0;\n    sect.contributions.\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_start = (pointer)0x0;\n    sect.size = 0;\n    sect.offset = 0;\n    ((__position._M_current)->contributions).\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_finish = (pointer)0x0;\n    (this->sections_).\n    super__Vector_base<gold::Dwp_output_file::Section,_std::allocator<gold::Dwp_output_file::Section>_>\n    ._M_impl._M_finish = __position._M_current + 1;\n  }\n  uVar1 = this->shnum_;\n  this->shnum_ = uVar1 + 1;\n  if (sect.contributions.\n      super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n      ._M_impl._M_start != (pointer)0x0) {\n    operator_delete(sect.contributions.\n                    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n                    ._M_impl._M_start);\n  }\n  return uVar1;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "iterator __position;" type_identifier identifier ;) (declaration "Section sect;" type_identifier identifier ;) (ERROR "__position._M_current =\n       (this->sections_).\n       super__Vector_base<gold::Dwp_output_file::Section,_std::allocator<gold::" (comma_expression "__position._M_current =\n       (this->sections_).\n       super__Vector_base<gold::Dwp_output_file::Section,_std" (assignment_expression "__position._M_current =\n       (this->sections_).\n       super__Vector_base<gold" (field_expression "__position._M_current" identifier . field_identifier) = (binary_expression "(this->sections_).\n       super__Vector_base<gold" (field_expression "(this->sections_).\n       super__Vector_base" (parenthesized_expression "(this->sections_)" ( (field_expression "this->sections_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Dwp_output_file::Section" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (labeled_statement "Dwp_output_file::Section>_>\n       ._M_impl._M_finish;" statement_identifier : (ERROR ":" :) (expression_statement "Section>_>\n       ._M_impl._M_finish;" (field_expression "Section>_>\n       ._M_impl._M_finish" (field_expression "Section>_>\n       ._M_impl" (binary_expression "Section>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;)) (expression_statement "sect.offset = 0;" (assignment_expression "sect.offset = 0" (field_expression "sect.offset" identifier . field_identifier) = number_literal) ;) (expression_statement "sect.size = 0;" (assignment_expression "sect.size = 0" (field_expression "sect.size" identifier . field_identifier) = number_literal) ;) (ERROR "sect.contributions.\n  super__Vector_base<gold::" (binary_expression "sect.contributions.\n  super__Vector_base<gold" (field_expression "sect.contributions.\n  super__Vector_base" (field_expression "sect.contributions" identifier . field_identifier) . field_identifier) < identifier) : :) (labeled_statement "Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n  ._M_impl._M_start = (pointer)0x0;" statement_identifier (ERROR "::Contribution,_std::allocator<gold:" : : (comma_expression "Contribution,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Dwp_output_file::Contribution>_>\n  ._M_impl._M_start = (pointer)0x0;" statement_identifier : (ERROR ":" :) (expression_statement "Contribution>_>\n  ._M_impl._M_start = (pointer)0x0;" (assignment_expression "Contribution>_>\n  ._M_impl._M_start = (pointer)0x0" (field_expression "Contribution>_>\n  ._M_impl._M_start" (field_expression "Contribution>_>\n  ._M_impl" (binary_expression "Contribution>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;))) (ERROR "sect.contributions.\n  super__Vector_base<gold::" (binary_expression "sect.contributions.\n  super__Vector_base<gold" (field_expression "sect.contributions.\n  super__Vector_base" (field_expression "sect.contributions" identifier . field_identifier) . field_identifier) < identifier) : :) (labeled_statement "Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n  ._M_impl._M_finish = (pointer)0x0;" statement_identifier (ERROR "::Contribution,_std::allocator<gold:" : : (comma_expression "Contribution,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Dwp_output_file::Contribution>_>\n  ._M_impl._M_finish = (pointer)0x0;" statement_identifier : (ERROR ":" :) (expression_statement "Contribution>_>\n  ._M_impl._M_finish = (pointer)0x0;" (assignment_expression "Contribution>_>\n  ._M_impl._M_finish = (pointer)0x0" (field_expression "Contribution>_>\n  ._M_impl._M_finish" (field_expression "Contribution>_>\n  ._M_impl" (binary_expression "Contribution>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;))) (ERROR "sect.contributions.\n  super__Vector_base<gold::" (binary_expression "sect.contributions.\n  super__Vector_base<gold" (field_expression "sect.contributions.\n  super__Vector_base" (field_expression "sect.contributions" identifier . field_identifier) . field_identifier) < identifier) : :) (labeled_statement "Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n  ._M_impl._M_end_of_storage = (pointer)0x0;" statement_identifier (ERROR "::Contribution,_std::allocator<gold:" : : (comma_expression "Contribution,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Dwp_output_file::Contribution>_>\n  ._M_impl._M_end_of_storage = (pointer)0x0;" statement_identifier : (ERROR ":" :) (expression_statement "Contribution>_>\n  ._M_impl._M_end_of_storage = (pointer)0x0;" (assignment_expression "Contribution>_>\n  ._M_impl._M_end_of_storage = (pointer)0x0" (field_expression "Contribution>_>\n  ._M_impl._M_end_of_storage" (field_expression "Contribution>_>\n  ._M_impl" (binary_expression "Contribution>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;))) (expression_statement "sect.name = section_name;" (assignment_expression "sect.name = section_name" (field_expression "sect.name" identifier . field_identifier) = identifier) ;) (expression_statement "sect.align = align;" (assignment_expression "sect.align = align" (field_expression "sect.align" identifier . field_identifier) = identifier) ;) (if_statement "if (__position._M_current ==\n      (this->sections_).\n      super__Vector_base<gold::Dwp_output_file::Section,_std::allocator<gold::Dwp_output_file::Section>_>\n      ._M_impl._M_end_of_storage) {\n    std::vector<gold::Dwp_output_file::Section,_std::allocator<gold::Dwp_output_file::Section>_>::\n    _M_realloc_insert<const_gold::Dwp_output_file::Section&>(&this->sections_,__position,&sect);\n  }\n  else {\n    (__position._M_current)->name = section_name;\n    ((__position._M_current)->contributions).\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_finish = (pointer)0x0;\n    (__position._M_current)->offset = 0;\n    ((__position._M_current)->contributions).\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_start = (pointer)0x0;\n    (__position._M_current)->size = 0;\n    ((__position._M_current)->contributions).\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_end_of_storage = (pointer)0x0;\n    (__position._M_current)->align = align;\n    ((__position._M_current)->contributions).\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_start = (pointer)0x0;\n    ((__position._M_current)->contributions).\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_finish = (pointer)0x0;\n    ((__position._M_current)->contributions).\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_end_of_storage = (pointer)0x0;\n    sect.contributions.\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_end_of_storage = (pointer)0x0;\n    sect.contributions.\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_finish = (pointer)0x0;\n    sect.contributions.\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_start = (pointer)0x0;\n    sect.size = 0;\n    sect.offset = 0;\n    ((__position._M_current)->contributions).\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_finish = (pointer)0x0;\n    (this->sections_).\n    super__Vector_base<gold::Dwp_output_file::Section,_std::allocator<gold::Dwp_output_file::Section>_>\n    ._M_impl._M_finish = __position._M_current + 1;\n  }" if (parenthesized_expression "(__position._M_current ==\n      (this->sections_).\n      super__Vector_base<gold::Dwp_output_file::Section,_std::allocator<gold::Dwp_output_file::Section>_>\n      ._M_impl._M_end_of_storage)" ( (ERROR "__position._M_current ==\n      (this->sections_).\n      super__Vector_base<gold::Dwp_output_file::Section,_std::allocator<gold::Dwp_output_file::" (comma_expression "__position._M_current ==\n      (this->sections_).\n      super__Vector_base<gold::Dwp_output_file::Section,_std" (binary_expression "__position._M_current ==\n      (this->sections_).\n      super__Vector_base<gold" (field_expression "__position._M_current" identifier . field_identifier) == (binary_expression "(this->sections_).\n      super__Vector_base<gold" (field_expression "(this->sections_).\n      super__Vector_base" (parenthesized_expression "(this->sections_)" ( (field_expression "this->sections_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Dwp_output_file::Section" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (field_expression "Section>_>\n      ._M_impl._M_end_of_storage" (field_expression "Section>_>\n      ._M_impl" (binary_expression "Section>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) (compound_statement "{\n    std::vector<gold::Dwp_output_file::Section,_std::allocator<gold::Dwp_output_file::Section>_>::\n    _M_realloc_insert<const_gold::Dwp_output_file::Section&>(&this->sections_,__position,&sect);\n  }" { (labeled_statement "std::vector<gold::Dwp_output_file::Section,_std::allocator<gold::Dwp_output_file::Section>_>::\n    _M_realloc_insert<const_gold::Dwp_output_file::Section&>(&this->sections_,__position,&sect);" statement_identifier (ERROR "::vector<gold:" : : (binary_expression "vector<gold" identifier < identifier) :) : (labeled_statement "Dwp_output_file::Section,_std::allocator<gold::Dwp_output_file::Section>_>::\n    _M_realloc_insert<const_gold::Dwp_output_file::Section&>(&this->sections_,__position,&sect);" statement_identifier (ERROR "::Section,_std::allocator<gold:" : : (comma_expression "Section,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Dwp_output_file::Section>_>::\n    _M_realloc_insert<const_gold::Dwp_output_file::Section&>(&this->sections_,__position,&sect);" statement_identifier (ERROR "::Section>_>::\n    _M_realloc_insert<const_gold:" : : (binary_expression "Section>_" identifier > identifier) > : : (binary_expression "_M_realloc_insert<const_gold" identifier < identifier) :) : (labeled_statement "Dwp_output_file::Section&>(&this->sections_,__position,&sect);" statement_identifier : (ERROR ":" :) (expression_statement "Section&>(&this->sections_,__position,&sect);" (binary_expression "Section&>(&this->sections_,__position,&sect)" identifier (ERROR "&" &) > (parenthesized_expression "(&this->sections_,__position,&sect)" ( (comma_expression "&this->sections_,__position,&sect" (pointer_expression "&this->sections_" & (field_expression "this->sections_" identifier -> field_identifier)) , (comma_expression "__position,&sect" identifier , (pointer_expression "&sect" & identifier))) ))) ;))))) }) (else_clause "else {\n    (__position._M_current)->name = section_name;\n    ((__position._M_current)->contributions).\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_finish = (pointer)0x0;\n    (__position._M_current)->offset = 0;\n    ((__position._M_current)->contributions).\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_start = (pointer)0x0;\n    (__position._M_current)->size = 0;\n    ((__position._M_current)->contributions).\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_end_of_storage = (pointer)0x0;\n    (__position._M_current)->align = align;\n    ((__position._M_current)->contributions).\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_start = (pointer)0x0;\n    ((__position._M_current)->contributions).\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_finish = (pointer)0x0;\n    ((__position._M_current)->contributions).\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_end_of_storage = (pointer)0x0;\n    sect.contributions.\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_end_of_storage = (pointer)0x0;\n    sect.contributions.\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_finish = (pointer)0x0;\n    sect.contributions.\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_start = (pointer)0x0;\n    sect.size = 0;\n    sect.offset = 0;\n    ((__position._M_current)->contributions).\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_finish = (pointer)0x0;\n    (this->sections_).\n    super__Vector_base<gold::Dwp_output_file::Section,_std::allocator<gold::Dwp_output_file::Section>_>\n    ._M_impl._M_finish = __position._M_current + 1;\n  }" else (compound_statement "{\n    (__position._M_current)->name = section_name;\n    ((__position._M_current)->contributions).\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_finish = (pointer)0x0;\n    (__position._M_current)->offset = 0;\n    ((__position._M_current)->contributions).\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_start = (pointer)0x0;\n    (__position._M_current)->size = 0;\n    ((__position._M_current)->contributions).\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_end_of_storage = (pointer)0x0;\n    (__position._M_current)->align = align;\n    ((__position._M_current)->contributions).\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_start = (pointer)0x0;\n    ((__position._M_current)->contributions).\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_finish = (pointer)0x0;\n    ((__position._M_current)->contributions).\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_end_of_storage = (pointer)0x0;\n    sect.contributions.\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_end_of_storage = (pointer)0x0;\n    sect.contributions.\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_finish = (pointer)0x0;\n    sect.contributions.\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_start = (pointer)0x0;\n    sect.size = 0;\n    sect.offset = 0;\n    ((__position._M_current)->contributions).\n    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_finish = (pointer)0x0;\n    (this->sections_).\n    super__Vector_base<gold::Dwp_output_file::Section,_std::allocator<gold::Dwp_output_file::Section>_>\n    ._M_impl._M_finish = __position._M_current + 1;\n  }" { (expression_statement "(__position._M_current)->name = section_name;" (assignment_expression "(__position._M_current)->name = section_name" (field_expression "(__position._M_current)->name" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier) = identifier) ;) (ERROR "((__position._M_current)->contributions).\n    super__Vector_base<gold::" (binary_expression "((__position._M_current)->contributions).\n    super__Vector_base<gold" (field_expression "((__position._M_current)->contributions).\n    super__Vector_base" (parenthesized_expression "((__position._M_current)->contributions)" ( (field_expression "(__position._M_current)->contributions" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) < identifier) : :) (labeled_statement "Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_finish = (pointer)0x0;" statement_identifier (ERROR "::Contribution,_std::allocator<gold:" : : (comma_expression "Contribution,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Dwp_output_file::Contribution>_>\n    ._M_impl._M_finish = (pointer)0x0;" statement_identifier : (ERROR ":" :) (expression_statement "Contribution>_>\n    ._M_impl._M_finish = (pointer)0x0;" (assignment_expression "Contribution>_>\n    ._M_impl._M_finish = (pointer)0x0" (field_expression "Contribution>_>\n    ._M_impl._M_finish" (field_expression "Contribution>_>\n    ._M_impl" (binary_expression "Contribution>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;))) (expression_statement "(__position._M_current)->offset = 0;" (assignment_expression "(__position._M_current)->offset = 0" (field_expression "(__position._M_current)->offset" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier) = number_literal) ;) (ERROR "((__position._M_current)->contributions).\n    super__Vector_base<gold::" (binary_expression "((__position._M_current)->contributions).\n    super__Vector_base<gold" (field_expression "((__position._M_current)->contributions).\n    super__Vector_base" (parenthesized_expression "((__position._M_current)->contributions)" ( (field_expression "(__position._M_current)->contributions" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) < identifier) : :) (labeled_statement "Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_start = (pointer)0x0;" statement_identifier (ERROR "::Contribution,_std::allocator<gold:" : : (comma_expression "Contribution,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Dwp_output_file::Contribution>_>\n    ._M_impl._M_start = (pointer)0x0;" statement_identifier : (ERROR ":" :) (expression_statement "Contribution>_>\n    ._M_impl._M_start = (pointer)0x0;" (assignment_expression "Contribution>_>\n    ._M_impl._M_start = (pointer)0x0" (field_expression "Contribution>_>\n    ._M_impl._M_start" (field_expression "Contribution>_>\n    ._M_impl" (binary_expression "Contribution>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;))) (expression_statement "(__position._M_current)->size = 0;" (assignment_expression "(__position._M_current)->size = 0" (field_expression "(__position._M_current)->size" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier) = number_literal) ;) (ERROR "((__position._M_current)->contributions).\n    super__Vector_base<gold::" (binary_expression "((__position._M_current)->contributions).\n    super__Vector_base<gold" (field_expression "((__position._M_current)->contributions).\n    super__Vector_base" (parenthesized_expression "((__position._M_current)->contributions)" ( (field_expression "(__position._M_current)->contributions" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) < identifier) : :) (labeled_statement "Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_end_of_storage = (pointer)0x0;" statement_identifier (ERROR "::Contribution,_std::allocator<gold:" : : (comma_expression "Contribution,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Dwp_output_file::Contribution>_>\n    ._M_impl._M_end_of_storage = (pointer)0x0;" statement_identifier : (ERROR ":" :) (expression_statement "Contribution>_>\n    ._M_impl._M_end_of_storage = (pointer)0x0;" (assignment_expression "Contribution>_>\n    ._M_impl._M_end_of_storage = (pointer)0x0" (field_expression "Contribution>_>\n    ._M_impl._M_end_of_storage" (field_expression "Contribution>_>\n    ._M_impl" (binary_expression "Contribution>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;))) (expression_statement "(__position._M_current)->align = align;" (assignment_expression "(__position._M_current)->align = align" (field_expression "(__position._M_current)->align" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier) = identifier) ;) (ERROR "((__position._M_current)->contributions).\n    super__Vector_base<gold::" (binary_expression "((__position._M_current)->contributions).\n    super__Vector_base<gold" (field_expression "((__position._M_current)->contributions).\n    super__Vector_base" (parenthesized_expression "((__position._M_current)->contributions)" ( (field_expression "(__position._M_current)->contributions" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) < identifier) : :) (labeled_statement "Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_start = (pointer)0x0;" statement_identifier (ERROR "::Contribution,_std::allocator<gold:" : : (comma_expression "Contribution,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Dwp_output_file::Contribution>_>\n    ._M_impl._M_start = (pointer)0x0;" statement_identifier : (ERROR ":" :) (expression_statement "Contribution>_>\n    ._M_impl._M_start = (pointer)0x0;" (assignment_expression "Contribution>_>\n    ._M_impl._M_start = (pointer)0x0" (field_expression "Contribution>_>\n    ._M_impl._M_start" (field_expression "Contribution>_>\n    ._M_impl" (binary_expression "Contribution>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;))) (ERROR "((__position._M_current)->contributions).\n    super__Vector_base<gold::" (binary_expression "((__position._M_current)->contributions).\n    super__Vector_base<gold" (field_expression "((__position._M_current)->contributions).\n    super__Vector_base" (parenthesized_expression "((__position._M_current)->contributions)" ( (field_expression "(__position._M_current)->contributions" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) < identifier) : :) (labeled_statement "Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_finish = (pointer)0x0;" statement_identifier (ERROR "::Contribution,_std::allocator<gold:" : : (comma_expression "Contribution,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Dwp_output_file::Contribution>_>\n    ._M_impl._M_finish = (pointer)0x0;" statement_identifier : (ERROR ":" :) (expression_statement "Contribution>_>\n    ._M_impl._M_finish = (pointer)0x0;" (assignment_expression "Contribution>_>\n    ._M_impl._M_finish = (pointer)0x0" (field_expression "Contribution>_>\n    ._M_impl._M_finish" (field_expression "Contribution>_>\n    ._M_impl" (binary_expression "Contribution>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;))) (ERROR "((__position._M_current)->contributions).\n    super__Vector_base<gold::" (binary_expression "((__position._M_current)->contributions).\n    super__Vector_base<gold" (field_expression "((__position._M_current)->contributions).\n    super__Vector_base" (parenthesized_expression "((__position._M_current)->contributions)" ( (field_expression "(__position._M_current)->contributions" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) < identifier) : :) (labeled_statement "Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_end_of_storage = (pointer)0x0;" statement_identifier (ERROR "::Contribution,_std::allocator<gold:" : : (comma_expression "Contribution,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Dwp_output_file::Contribution>_>\n    ._M_impl._M_end_of_storage = (pointer)0x0;" statement_identifier : (ERROR ":" :) (expression_statement "Contribution>_>\n    ._M_impl._M_end_of_storage = (pointer)0x0;" (assignment_expression "Contribution>_>\n    ._M_impl._M_end_of_storage = (pointer)0x0" (field_expression "Contribution>_>\n    ._M_impl._M_end_of_storage" (field_expression "Contribution>_>\n    ._M_impl" (binary_expression "Contribution>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;))) (ERROR "sect.contributions.\n    super__Vector_base<gold::" (binary_expression "sect.contributions.\n    super__Vector_base<gold" (field_expression "sect.contributions.\n    super__Vector_base" (field_expression "sect.contributions" identifier . field_identifier) . field_identifier) < identifier) : :) (labeled_statement "Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_end_of_storage = (pointer)0x0;" statement_identifier (ERROR "::Contribution,_std::allocator<gold:" : : (comma_expression "Contribution,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Dwp_output_file::Contribution>_>\n    ._M_impl._M_end_of_storage = (pointer)0x0;" statement_identifier : (ERROR ":" :) (expression_statement "Contribution>_>\n    ._M_impl._M_end_of_storage = (pointer)0x0;" (assignment_expression "Contribution>_>\n    ._M_impl._M_end_of_storage = (pointer)0x0" (field_expression "Contribution>_>\n    ._M_impl._M_end_of_storage" (field_expression "Contribution>_>\n    ._M_impl" (binary_expression "Contribution>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;))) (ERROR "sect.contributions.\n    super__Vector_base<gold::" (binary_expression "sect.contributions.\n    super__Vector_base<gold" (field_expression "sect.contributions.\n    super__Vector_base" (field_expression "sect.contributions" identifier . field_identifier) . field_identifier) < identifier) : :) (labeled_statement "Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_finish = (pointer)0x0;" statement_identifier (ERROR "::Contribution,_std::allocator<gold:" : : (comma_expression "Contribution,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Dwp_output_file::Contribution>_>\n    ._M_impl._M_finish = (pointer)0x0;" statement_identifier : (ERROR ":" :) (expression_statement "Contribution>_>\n    ._M_impl._M_finish = (pointer)0x0;" (assignment_expression "Contribution>_>\n    ._M_impl._M_finish = (pointer)0x0" (field_expression "Contribution>_>\n    ._M_impl._M_finish" (field_expression "Contribution>_>\n    ._M_impl" (binary_expression "Contribution>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;))) (ERROR "sect.contributions.\n    super__Vector_base<gold::" (binary_expression "sect.contributions.\n    super__Vector_base<gold" (field_expression "sect.contributions.\n    super__Vector_base" (field_expression "sect.contributions" identifier . field_identifier) . field_identifier) < identifier) : :) (labeled_statement "Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_start = (pointer)0x0;" statement_identifier (ERROR "::Contribution,_std::allocator<gold:" : : (comma_expression "Contribution,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Dwp_output_file::Contribution>_>\n    ._M_impl._M_start = (pointer)0x0;" statement_identifier : (ERROR ":" :) (expression_statement "Contribution>_>\n    ._M_impl._M_start = (pointer)0x0;" (assignment_expression "Contribution>_>\n    ._M_impl._M_start = (pointer)0x0" (field_expression "Contribution>_>\n    ._M_impl._M_start" (field_expression "Contribution>_>\n    ._M_impl" (binary_expression "Contribution>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;))) (expression_statement "sect.size = 0;" (assignment_expression "sect.size = 0" (field_expression "sect.size" identifier . field_identifier) = number_literal) ;) (expression_statement "sect.offset = 0;" (assignment_expression "sect.offset = 0" (field_expression "sect.offset" identifier . field_identifier) = number_literal) ;) (ERROR "((__position._M_current)->contributions).\n    super__Vector_base<gold::" (binary_expression "((__position._M_current)->contributions).\n    super__Vector_base<gold" (field_expression "((__position._M_current)->contributions).\n    super__Vector_base" (parenthesized_expression "((__position._M_current)->contributions)" ( (field_expression "(__position._M_current)->contributions" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) < identifier) : :) (labeled_statement "Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n    ._M_impl._M_finish = (pointer)0x0;" statement_identifier (ERROR "::Contribution,_std::allocator<gold:" : : (comma_expression "Contribution,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Dwp_output_file::Contribution>_>\n    ._M_impl._M_finish = (pointer)0x0;" statement_identifier : (ERROR ":" :) (expression_statement "Contribution>_>\n    ._M_impl._M_finish = (pointer)0x0;" (assignment_expression "Contribution>_>\n    ._M_impl._M_finish = (pointer)0x0" (field_expression "Contribution>_>\n    ._M_impl._M_finish" (field_expression "Contribution>_>\n    ._M_impl" (binary_expression "Contribution>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;))) (ERROR "(this->sections_).\n    super__Vector_base<gold::" (binary_expression "(this->sections_).\n    super__Vector_base<gold" (field_expression "(this->sections_).\n    super__Vector_base" (parenthesized_expression "(this->sections_)" ( (field_expression "this->sections_" identifier -> field_identifier) )) . field_identifier) < identifier) : :) (labeled_statement "Dwp_output_file::Section,_std::allocator<gold::Dwp_output_file::Section>_>\n    ._M_impl._M_finish = __position._M_current + 1;" statement_identifier (ERROR "::Section,_std::allocator<gold:" : : (comma_expression "Section,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Dwp_output_file::Section>_>\n    ._M_impl._M_finish = __position._M_current + 1;" statement_identifier : (ERROR ":" :) (expression_statement "Section>_>\n    ._M_impl._M_finish = __position._M_current + 1;" (assignment_expression "Section>_>\n    ._M_impl._M_finish = __position._M_current + 1" (field_expression "Section>_>\n    ._M_impl._M_finish" (field_expression "Section>_>\n    ._M_impl" (binary_expression "Section>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (binary_expression "__position._M_current + 1" (field_expression "__position._M_current" identifier . field_identifier) + number_literal)) ;))) }))) (expression_statement "uVar1 = this->shnum_;" (assignment_expression "uVar1 = this->shnum_" identifier = (field_expression "this->shnum_" identifier -> field_identifier)) ;) (expression_statement "this->shnum_ = uVar1 + 1;" (assignment_expression "this->shnum_ = uVar1 + 1" (field_expression "this->shnum_" identifier -> field_identifier) = (binary_expression "uVar1 + 1" identifier + number_literal)) ;) (if_statement "if (sect.contributions.\n      super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n      ._M_impl._M_start != (pointer)0x0) {\n    operator_delete(sect.contributions.\n                    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n                    ._M_impl._M_start);\n  }" if (parenthesized_expression "(sect.contributions.\n      super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n      ._M_impl._M_start != (pointer)0x0)" ( (ERROR "sect.contributions.\n      super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::" (comma_expression "sect.contributions.\n      super__Vector_base<gold::Dwp_output_file::Contribution,_std" (binary_expression "sect.contributions.\n      super__Vector_base<gold" (field_expression "sect.contributions.\n      super__Vector_base" (field_expression "sect.contributions" identifier . field_identifier) . field_identifier) < identifier) (ERROR "::Dwp_output_file::Contribution" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Contribution>_>\n      ._M_impl._M_start != (pointer)0x0" (field_expression "Contribution>_>\n      ._M_impl._M_start" (field_expression "Contribution>_>\n      ._M_impl" (binary_expression "Contribution>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) != (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) )) (compound_statement "{\n    operator_delete(sect.contributions.\n                    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n                    ._M_impl._M_start);\n  }" { (expression_statement "operator_delete(sect.contributions.\n                    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n                    ._M_impl._M_start);" (call_expression "operator_delete(sect.contributions.\n                    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n                    ._M_impl._M_start)" identifier (argument_list "(sect.contributions.\n                    super__Vector_base<gold::Dwp_output_file::Contribution,_std::allocator<gold::Dwp_output_file::Contribution>_>\n                    ._M_impl._M_start)" ( (binary_expression "sect.contributions.\n                    super__Vector_base<gold" (field_expression "sect.contributions.\n                    super__Vector_base" (field_expression "sect.contributions" identifier . field_identifier) . field_identifier) < identifier) (ERROR "::Dwp_output_file::Contribution" : : identifier : : identifier) , (ERROR "_std::allocator<gold::Dwp_output_file::" identifier : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (field_expression "Contribution>_>\n                    ._M_impl._M_start" (field_expression "Contribution>_>\n                    ._M_impl" (binary_expression "Contribution>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ))) ;) })) (return_statement "return uVar1;" return identifier ;) })))
(translation_unit "int FUN_00149120(long param_1,undefined8 param_2,undefined4 param_3)\n\n{\n  int iVar1;\n  undefined8 *puVar2;\n  undefined8 local_68;\n  undefined8 local_60;\n  undefined8 local_58;\n  undefined4 local_50;\n  long local_48;\n  undefined8 local_40;\n  undefined8 local_38;\n  \n  puVar2 = *(undefined8 **)(param_1 + 0x40);\n  local_60 = 0;\n  local_58 = 0;\n  local_48 = 0;\n  local_40 = 0;\n  local_38 = 0;\n  local_68 = param_2;\n  local_50 = param_3;\n  if (puVar2 == *(undefined8 **)(param_1 + 0x48)) {\n    FUN_001573b0(param_1 + 0x38,puVar2,&local_68);\n  }\n  else {\n    *puVar2 = param_2;\n    puVar2[5] = 0;\n    puVar2[1] = 0;\n    puVar2[4] = 0;\n    puVar2[2] = 0;\n    puVar2[6] = 0;\n    *(undefined4 *)(puVar2 + 3) = param_3;\n    puVar2[4] = 0;\n    puVar2[5] = 0;\n    puVar2[6] = 0;\n    local_38 = 0;\n    local_40 = 0;\n    local_48 = 0;\n    local_58 = 0;\n    local_60 = 0;\n    puVar2[5] = 0;\n    *(undefined8 **)(param_1 + 0x40) = puVar2 + 7;\n  }\n  iVar1 = *(int *)(param_1 + 0x30);\n  *(int *)(param_1 + 0x30) = iVar1 + 1;\n  if (local_48 != 0) {\n    FUN_00276d20(local_48);\n  }\n  return iVar1;\n}\n\n" (function_definition "int FUN_00149120(long param_1,undefined8 param_2,undefined4 param_3)\n\n{\n  int iVar1;\n  undefined8 *puVar2;\n  undefined8 local_68;\n  undefined8 local_60;\n  undefined8 local_58;\n  undefined4 local_50;\n  long local_48;\n  undefined8 local_40;\n  undefined8 local_38;\n  \n  puVar2 = *(undefined8 **)(param_1 + 0x40);\n  local_60 = 0;\n  local_58 = 0;\n  local_48 = 0;\n  local_40 = 0;\n  local_38 = 0;\n  local_68 = param_2;\n  local_50 = param_3;\n  if (puVar2 == *(undefined8 **)(param_1 + 0x48)) {\n    FUN_001573b0(param_1 + 0x38,puVar2,&local_68);\n  }\n  else {\n    *puVar2 = param_2;\n    puVar2[5] = 0;\n    puVar2[1] = 0;\n    puVar2[4] = 0;\n    puVar2[2] = 0;\n    puVar2[6] = 0;\n    *(undefined4 *)(puVar2 + 3) = param_3;\n    puVar2[4] = 0;\n    puVar2[5] = 0;\n    puVar2[6] = 0;\n    local_38 = 0;\n    local_40 = 0;\n    local_48 = 0;\n    local_58 = 0;\n    local_60 = 0;\n    puVar2[5] = 0;\n    *(undefined8 **)(param_1 + 0x40) = puVar2 + 7;\n  }\n  iVar1 = *(int *)(param_1 + 0x30);\n  *(int *)(param_1 + 0x30) = iVar1 + 1;\n  if (local_48 != 0) {\n    FUN_00276d20(local_48);\n  }\n  return iVar1;\n}" primitive_type (function_declarator "FUN_00149120(long param_1,undefined8 param_2,undefined4 param_3)" identifier (parameter_list "(long param_1,undefined8 param_2,undefined4 param_3)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined8 *puVar2;\n  undefined8 local_68;\n  undefined8 local_60;\n  undefined8 local_58;\n  undefined4 local_50;\n  long local_48;\n  undefined8 local_40;\n  undefined8 local_38;\n  \n  puVar2 = *(undefined8 **)(param_1 + 0x40);\n  local_60 = 0;\n  local_58 = 0;\n  local_48 = 0;\n  local_40 = 0;\n  local_38 = 0;\n  local_68 = param_2;\n  local_50 = param_3;\n  if (puVar2 == *(undefined8 **)(param_1 + 0x48)) {\n    FUN_001573b0(param_1 + 0x38,puVar2,&local_68);\n  }\n  else {\n    *puVar2 = param_2;\n    puVar2[5] = 0;\n    puVar2[1] = 0;\n    puVar2[4] = 0;\n    puVar2[2] = 0;\n    puVar2[6] = 0;\n    *(undefined4 *)(puVar2 + 3) = param_3;\n    puVar2[4] = 0;\n    puVar2[5] = 0;\n    puVar2[6] = 0;\n    local_38 = 0;\n    local_40 = 0;\n    local_48 = 0;\n    local_58 = 0;\n    local_60 = 0;\n    puVar2[5] = 0;\n    *(undefined8 **)(param_1 + 0x40) = puVar2 + 7;\n  }\n  iVar1 = *(int *)(param_1 + 0x30);\n  *(int *)(param_1 + 0x30) = iVar1 + 1;\n  if (local_48 != 0) {\n    FUN_00276d20(local_48);\n  }\n  return iVar1;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined8 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined8 local_68;" type_identifier identifier ;) (declaration "undefined8 local_60;" type_identifier identifier ;) (declaration "undefined8 local_58;" type_identifier identifier ;) (declaration "undefined4 local_50;" type_identifier identifier ;) (declaration "long local_48;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 local_40;" type_identifier identifier ;) (declaration "undefined8 local_38;" type_identifier identifier ;) (expression_statement "puVar2 = *(undefined8 **)(param_1 + 0x40);" (assignment_expression "puVar2 = *(undefined8 **)(param_1 + 0x40)" identifier = (pointer_expression "*(undefined8 **)(param_1 + 0x40)" * (cast_expression "(undefined8 **)(param_1 + 0x40)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" identifier = number_literal) ;) (expression_statement "local_68 = param_2;" (assignment_expression "local_68 = param_2" identifier = identifier) ;) (expression_statement "local_50 = param_3;" (assignment_expression "local_50 = param_3" identifier = identifier) ;) (if_statement "if (puVar2 == *(undefined8 **)(param_1 + 0x48)) {\n    FUN_001573b0(param_1 + 0x38,puVar2,&local_68);\n  }\n  else {\n    *puVar2 = param_2;\n    puVar2[5] = 0;\n    puVar2[1] = 0;\n    puVar2[4] = 0;\n    puVar2[2] = 0;\n    puVar2[6] = 0;\n    *(undefined4 *)(puVar2 + 3) = param_3;\n    puVar2[4] = 0;\n    puVar2[5] = 0;\n    puVar2[6] = 0;\n    local_38 = 0;\n    local_40 = 0;\n    local_48 = 0;\n    local_58 = 0;\n    local_60 = 0;\n    puVar2[5] = 0;\n    *(undefined8 **)(param_1 + 0x40) = puVar2 + 7;\n  }" if (parenthesized_expression "(puVar2 == *(undefined8 **)(param_1 + 0x48))" ( (binary_expression "puVar2 == *(undefined8 **)(param_1 + 0x48)" identifier == (pointer_expression "*(undefined8 **)(param_1 + 0x48)" * (cast_expression "(undefined8 **)(param_1 + 0x48)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) ))))) )) (compound_statement "{\n    FUN_001573b0(param_1 + 0x38,puVar2,&local_68);\n  }" { (expression_statement "FUN_001573b0(param_1 + 0x38,puVar2,&local_68);" (call_expression "FUN_001573b0(param_1 + 0x38,puVar2,&local_68)" identifier (argument_list "(param_1 + 0x38,puVar2,&local_68)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&local_68" & identifier) ))) ;) }) (else_clause "else {\n    *puVar2 = param_2;\n    puVar2[5] = 0;\n    puVar2[1] = 0;\n    puVar2[4] = 0;\n    puVar2[2] = 0;\n    puVar2[6] = 0;\n    *(undefined4 *)(puVar2 + 3) = param_3;\n    puVar2[4] = 0;\n    puVar2[5] = 0;\n    puVar2[6] = 0;\n    local_38 = 0;\n    local_40 = 0;\n    local_48 = 0;\n    local_58 = 0;\n    local_60 = 0;\n    puVar2[5] = 0;\n    *(undefined8 **)(param_1 + 0x40) = puVar2 + 7;\n  }" else (compound_statement "{\n    *puVar2 = param_2;\n    puVar2[5] = 0;\n    puVar2[1] = 0;\n    puVar2[4] = 0;\n    puVar2[2] = 0;\n    puVar2[6] = 0;\n    *(undefined4 *)(puVar2 + 3) = param_3;\n    puVar2[4] = 0;\n    puVar2[5] = 0;\n    puVar2[6] = 0;\n    local_38 = 0;\n    local_40 = 0;\n    local_48 = 0;\n    local_58 = 0;\n    local_60 = 0;\n    puVar2[5] = 0;\n    *(undefined8 **)(param_1 + 0x40) = puVar2 + 7;\n  }" { (expression_statement "*puVar2 = param_2;" (assignment_expression "*puVar2 = param_2" (pointer_expression "*puVar2" * identifier) = identifier) ;) (expression_statement "puVar2[5] = 0;" (assignment_expression "puVar2[5] = 0" (subscript_expression "puVar2[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[1] = 0;" (assignment_expression "puVar2[1] = 0" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[4] = 0;" (assignment_expression "puVar2[4] = 0" (subscript_expression "puVar2[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[2] = 0;" (assignment_expression "puVar2[2] = 0" (subscript_expression "puVar2[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[6] = 0;" (assignment_expression "puVar2[6] = 0" (subscript_expression "puVar2[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar2 + 3) = param_3;" (assignment_expression "*(undefined4 *)(puVar2 + 3) = param_3" (pointer_expression "*(undefined4 *)(puVar2 + 3)" * (cast_expression "(undefined4 *)(puVar2 + 3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 3)" ( (binary_expression "puVar2 + 3" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar2[4] = 0;" (assignment_expression "puVar2[4] = 0" (subscript_expression "puVar2[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[5] = 0;" (assignment_expression "puVar2[5] = 0" (subscript_expression "puVar2[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[6] = 0;" (assignment_expression "puVar2[6] = 0" (subscript_expression "puVar2[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" identifier = number_literal) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (expression_statement "puVar2[5] = 0;" (assignment_expression "puVar2[5] = 0" (subscript_expression "puVar2[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined8 **)(param_1 + 0x40) = puVar2 + 7;" (assignment_expression "*(undefined8 **)(param_1 + 0x40) = puVar2 + 7" (pointer_expression "*(undefined8 **)(param_1 + 0x40)" * (cast_expression "(undefined8 **)(param_1 + 0x40)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) )))) = (binary_expression "puVar2 + 7" identifier + number_literal)) ;) }))) (expression_statement "iVar1 = *(int *)(param_1 + 0x30);" (assignment_expression "iVar1 = *(int *)(param_1 + 0x30)" identifier = (pointer_expression "*(int *)(param_1 + 0x30)" * (cast_expression "(int *)(param_1 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(param_1 + 0x30) = iVar1 + 1;" (assignment_expression "*(int *)(param_1 + 0x30) = iVar1 + 1" (pointer_expression "*(int *)(param_1 + 0x30)" * (cast_expression "(int *)(param_1 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) = (binary_expression "iVar1 + 1" identifier + number_literal)) ;) (if_statement "if (local_48 != 0) {\n    FUN_00276d20(local_48);\n  }" if (parenthesized_expression "(local_48 != 0)" ( (binary_expression "local_48 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_00276d20(local_48);\n  }" { (expression_statement "FUN_00276d20(local_48);" (call_expression "FUN_00276d20(local_48)" identifier (argument_list "(local_48)" ( identifier ))) ;) })) (return_statement "return iVar1;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , (pointer_expression & IDENT) ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_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 (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) )))) = 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 IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (return_statement return IDENT ;) })))
(function_definition "int FUN_00149120(long param_1,undefined8 param_2,undefined4 param_3)\n\n{\n  int iVar1;\n  undefined8 *puVar2;\n  undefined8 local_68;\n  undefined8 local_60;\n  undefined8 local_58;\n  undefined4 local_50;\n  long local_48;\n  undefined8 local_40;\n  undefined8 local_38;\n  \n  puVar2 = *(undefined8 **)(param_1 + 0x40);\n  local_60 = 0;\n  local_58 = 0;\n  local_48 = 0;\n  local_40 = 0;\n  local_38 = 0;\n  local_68 = param_2;\n  local_50 = param_3;\n  if (puVar2 == *(undefined8 **)(param_1 + 0x48)) {\n    FUN_001573b0(param_1 + 0x38,puVar2,&local_68);\n  }\n  else {\n    *puVar2 = param_2;\n    puVar2[5] = 0;\n    puVar2[1] = 0;\n    puVar2[4] = 0;\n    puVar2[2] = 0;\n    puVar2[6] = 0;\n    *(undefined4 *)(puVar2 + 3) = param_3;\n    puVar2[4] = 0;\n    puVar2[5] = 0;\n    puVar2[6] = 0;\n    local_38 = 0;\n    local_40 = 0;\n    local_48 = 0;\n    local_58 = 0;\n    local_60 = 0;\n    puVar2[5] = 0;\n    *(undefined8 **)(param_1 + 0x40) = puVar2 + 7;\n  }\n  iVar1 = *(int *)(param_1 + 0x30);\n  *(int *)(param_1 + 0x30) = iVar1 + 1;\n  if (local_48 != 0) {\n    FUN_00276d20(local_48);\n  }\n  return iVar1;\n}" (primitive_type "int") (function_declarator "FUN_00149120(long param_1,undefined8 param_2,undefined4 param_3)" (identifier "FUN_00149120") (parameter_list "(long param_1,undefined8 param_2,undefined4 param_3)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "undefined8 param_2" (type_identifier "undefined8") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) () ")"))) (compound_statement "{\n  int iVar1;\n  undefined8 *puVar2;\n  undefined8 local_68;\n  undefined8 local_60;\n  undefined8 local_58;\n  undefined4 local_50;\n  long local_48;\n  undefined8 local_40;\n  undefined8 local_38;\n  \n  puVar2 = *(undefined8 **)(param_1 + 0x40);\n  local_60 = 0;\n  local_58 = 0;\n  local_48 = 0;\n  local_40 = 0;\n  local_38 = 0;\n  local_68 = param_2;\n  local_50 = param_3;\n  if (puVar2 == *(undefined8 **)(param_1 + 0x48)) {\n    FUN_001573b0(param_1 + 0x38,puVar2,&local_68);\n  }\n  else {\n    *puVar2 = param_2;\n    puVar2[5] = 0;\n    puVar2[1] = 0;\n    puVar2[4] = 0;\n    puVar2[2] = 0;\n    puVar2[6] = 0;\n    *(undefined4 *)(puVar2 + 3) = param_3;\n    puVar2[4] = 0;\n    puVar2[5] = 0;\n    puVar2[6] = 0;\n    local_38 = 0;\n    local_40 = 0;\n    local_48 = 0;\n    local_58 = 0;\n    local_60 = 0;\n    puVar2[5] = 0;\n    *(undefined8 **)(param_1 + 0x40) = puVar2 + 7;\n  }\n  iVar1 = *(int *)(param_1 + 0x30);\n  *(int *)(param_1 + 0x30) = iVar1 + 1;\n  if (local_48 != 0) {\n    FUN_00276d20(local_48);\n  }\n  return iVar1;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined8 *puVar2;" (type_identifier "undefined8") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "undefined8 local_68;" (type_identifier "undefined8") (identifier "local_68") (; ";")) (declaration "undefined8 local_60;" (type_identifier "undefined8") (identifier "local_60") (; ";")) (declaration "undefined8 local_58;" (type_identifier "undefined8") (identifier "local_58") (; ";")) (declaration "undefined4 local_50;" (type_identifier "undefined4") (identifier "local_50") (; ";")) (declaration "long local_48;" (sized_type_specifier "long" (long "long")) (identifier "local_48") (; ";")) (declaration "undefined8 local_40;" (type_identifier "undefined8") (identifier "local_40") (; ";")) (declaration "undefined8 local_38;" (type_identifier "undefined8") (identifier "local_38") (; ";")) (expression_statement "puVar2 = *(undefined8 **)(param_1 + 0x40);" (assignment_expression "puVar2 = *(undefined8 **)(param_1 + 0x40)" (identifier "puVar2") (= "=") (pointer_expression "*(undefined8 **)(param_1 + 0x40)" (* "*") (cast_expression "(undefined8 **)(param_1 + 0x40)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x40)" (( "(") (binary_expression "param_1 + 0x40" (identifier "param_1") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" (identifier "local_60") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" (identifier "local_58") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" (identifier "local_48") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" (identifier "local_38") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_68 = param_2;" (assignment_expression "local_68 = param_2" (identifier "local_68") (= "=") (identifier "param_2")) (; ";")) (expression_statement "local_50 = param_3;" (assignment_expression "local_50 = param_3" (identifier "local_50") (= "=") (identifier "param_3")) (; ";")) (if_statement "if (puVar2 == *(undefined8 **)(param_1 + 0x48)) {\n    FUN_001573b0(param_1 + 0x38,puVar2,&local_68);\n  }\n  else {\n    *puVar2 = param_2;\n    puVar2[5] = 0;\n    puVar2[1] = 0;\n    puVar2[4] = 0;\n    puVar2[2] = 0;\n    puVar2[6] = 0;\n    *(undefined4 *)(puVar2 + 3) = param_3;\n    puVar2[4] = 0;\n    puVar2[5] = 0;\n    puVar2[6] = 0;\n    local_38 = 0;\n    local_40 = 0;\n    local_48 = 0;\n    local_58 = 0;\n    local_60 = 0;\n    puVar2[5] = 0;\n    *(undefined8 **)(param_1 + 0x40) = puVar2 + 7;\n  }" (if "if") (parenthesized_expression "(puVar2 == *(undefined8 **)(param_1 + 0x48))" (( "(") (binary_expression "puVar2 == *(undefined8 **)(param_1 + 0x48)" (identifier "puVar2") (== "==") (pointer_expression "*(undefined8 **)(param_1 + 0x48)" (* "*") (cast_expression "(undefined8 **)(param_1 + 0x48)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x48)" (( "(") (binary_expression "param_1 + 0x48" (identifier "param_1") (+ "+") (number_literal "0x48")) () ")"))))) () ")")) (compound_statement "{\n    FUN_001573b0(param_1 + 0x38,puVar2,&local_68);\n  }" ({ "{") (expression_statement "FUN_001573b0(param_1 + 0x38,puVar2,&local_68);" (call_expression "FUN_001573b0(param_1 + 0x38,puVar2,&local_68)" (identifier "FUN_001573b0") (argument_list "(param_1 + 0x38,puVar2,&local_68)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) (, ",") (identifier "puVar2") (, ",") (pointer_expression "&local_68" (& "&") (identifier "local_68")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n    *puVar2 = param_2;\n    puVar2[5] = 0;\n    puVar2[1] = 0;\n    puVar2[4] = 0;\n    puVar2[2] = 0;\n    puVar2[6] = 0;\n    *(undefined4 *)(puVar2 + 3) = param_3;\n    puVar2[4] = 0;\n    puVar2[5] = 0;\n    puVar2[6] = 0;\n    local_38 = 0;\n    local_40 = 0;\n    local_48 = 0;\n    local_58 = 0;\n    local_60 = 0;\n    puVar2[5] = 0;\n    *(undefined8 **)(param_1 + 0x40) = puVar2 + 7;\n  }" (else "else") (compound_statement "{\n    *puVar2 = param_2;\n    puVar2[5] = 0;\n    puVar2[1] = 0;\n    puVar2[4] = 0;\n    puVar2[2] = 0;\n    puVar2[6] = 0;\n    *(undefined4 *)(puVar2 + 3) = param_3;\n    puVar2[4] = 0;\n    puVar2[5] = 0;\n    puVar2[6] = 0;\n    local_38 = 0;\n    local_40 = 0;\n    local_48 = 0;\n    local_58 = 0;\n    local_60 = 0;\n    puVar2[5] = 0;\n    *(undefined8 **)(param_1 + 0x40) = puVar2 + 7;\n  }" ({ "{") (expression_statement "*puVar2 = param_2;" (assignment_expression "*puVar2 = param_2" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (= "=") (identifier "param_2")) (; ";")) (expression_statement "puVar2[5] = 0;" (assignment_expression "puVar2[5] = 0" (subscript_expression "puVar2[5]" (identifier "puVar2") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar2[1] = 0;" (assignment_expression "puVar2[1] = 0" (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar2[4] = 0;" (assignment_expression "puVar2[4] = 0" (subscript_expression "puVar2[4]" (identifier "puVar2") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar2[2] = 0;" (assignment_expression "puVar2[2] = 0" (subscript_expression "puVar2[2]" (identifier "puVar2") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar2[6] = 0;" (assignment_expression "puVar2[6] = 0" (subscript_expression "puVar2[6]" (identifier "puVar2") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar2 + 3) = param_3;" (assignment_expression "*(undefined4 *)(puVar2 + 3) = param_3" (pointer_expression "*(undefined4 *)(puVar2 + 3)" (* "*") (cast_expression "(undefined4 *)(puVar2 + 3)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 3)" (( "(") (binary_expression "puVar2 + 3" (identifier "puVar2") (+ "+") (number_literal "3")) () ")")))) (= "=") (identifier "param_3")) (; ";")) (expression_statement "puVar2[4] = 0;" (assignment_expression "puVar2[4] = 0" (subscript_expression "puVar2[4]" (identifier "puVar2") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar2[5] = 0;" (assignment_expression "puVar2[5] = 0" (subscript_expression "puVar2[5]" (identifier "puVar2") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar2[6] = 0;" (assignment_expression "puVar2[6] = 0" (subscript_expression "puVar2[6]" (identifier "puVar2") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" (identifier "local_38") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" (identifier "local_48") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" (identifier "local_58") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" (identifier "local_60") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar2[5] = 0;" (assignment_expression "puVar2[5] = 0" (subscript_expression "puVar2[5]" (identifier "puVar2") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined8 **)(param_1 + 0x40) = puVar2 + 7;" (assignment_expression "*(undefined8 **)(param_1 + 0x40) = puVar2 + 7" (pointer_expression "*(undefined8 **)(param_1 + 0x40)" (* "*") (cast_expression "(undefined8 **)(param_1 + 0x40)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x40)" (( "(") (binary_expression "param_1 + 0x40" (identifier "param_1") (+ "+") (number_literal "0x40")) () ")")))) (= "=") (binary_expression "puVar2 + 7" (identifier "puVar2") (+ "+") (number_literal "7"))) (; ";")) (} "}")))) (expression_statement "iVar1 = *(int *)(param_1 + 0x30);" (assignment_expression "iVar1 = *(int *)(param_1 + 0x30)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(param_1 + 0x30)" (* "*") (cast_expression "(int *)(param_1 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "*(int *)(param_1 + 0x30) = iVar1 + 1;" (assignment_expression "*(int *)(param_1 + 0x30) = iVar1 + 1" (pointer_expression "*(int *)(param_1 + 0x30)" (* "*") (cast_expression "(int *)(param_1 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (binary_expression "iVar1 + 1" (identifier "iVar1") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (local_48 != 0) {\n    FUN_00276d20(local_48);\n  }" (if "if") (parenthesized_expression "(local_48 != 0)" (( "(") (binary_expression "local_48 != 0" (identifier "local_48") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_00276d20(local_48);\n  }" ({ "{") (expression_statement "FUN_00276d20(local_48);" (call_expression "FUN_00276d20(local_48)" (identifier "FUN_00276d20") (argument_list "(local_48)" (( "(") (identifier "local_48") () ")"))) (; ";")) (} "}"))) (return_statement "return iVar1;" (return "return") (identifier "iVar1") (; ";")) (} "}")))

/* WARNING: Removing unreachable block (ram,0x001491cf) */
/* WARNING: Removing unreachable block (ram,0x001491e2) */
/* WARNING: Removing unreachable block (ram,0x00149276) */
/* WARNING: Removing unreachable block (ram,0x00149215) */
/* DWARF original prototype: uint add_output_section(Dwp_output_file * this, char * section_name,
   int align) */

type_1 __thiscall
var_5::type_2::function_1(type_2 *this,char *section_name,int align)

{
  type_1 var_3;
  type_3 __position;
  type_4 sect;
  
  __position._M_current =
       (this->sections_).
       super__Vector_base<var_5::type_2::type_4,_std::allocator<var_5::Dwp_output_file::type_4>var_1>
       ._M_impl._M_finish;
  sect.offset = 0;
  sect.size = 0;
  sect.contributions.
  super__Vector_base<var_5::Dwp_output_file::var_2,_std::allocator<var_5::Dwp_output_file::var_2>var_1>
  ._M_impl._M_start = (type_5)0x0;
  sect.contributions.
  super__Vector_base<var_5::Dwp_output_file::var_2,_std::allocator<var_5::Dwp_output_file::var_2>var_1>
  ._M_impl._M_finish = (type_5)0x0;
  sect.contributions.
  super__Vector_base<var_5::Dwp_output_file::var_2,_std::allocator<var_5::Dwp_output_file::var_2>var_1>
  ._M_impl._M_end_of_storage = (type_5)0x0;
  sect.name = section_name;
  sect.align = align;
  if (__position._M_current ==
      (this->sections_).
      super__Vector_base<var_5::type_2::type_4,_std::allocator<var_5::type_2::type_4>var_1>
      ._M_impl._M_end_of_storage) {
    std::vector<var_5::Dwp_output_file::type_4,_std::allocator<var_5::Dwp_output_file::type_4>var_1>::
    _M_realloc_insert<const_gold::Dwp_output_file::type_4&>(&this->sections_,__position,&sect);
  }
  else {
    (__position._M_current)->name = section_name;
    ((__position._M_current)->contributions).
    super__Vector_base<var_5::Dwp_output_file::var_2,_std::allocator<var_5::Dwp_output_file::var_2>var_1>
    ._M_impl._M_finish = (type_5)0x0;
    (__position._M_current)->offset = 0;
    ((__position._M_current)->contributions).
    super__Vector_base<var_5::Dwp_output_file::var_2,_std::allocator<var_5::Dwp_output_file::var_2>var_1>
    ._M_impl._M_start = (type_5)0x0;
    (__position._M_current)->size = 0;
    ((__position._M_current)->contributions).
    super__Vector_base<var_5::Dwp_output_file::var_2,_std::allocator<var_5::Dwp_output_file::var_2>var_1>
    ._M_impl._M_end_of_storage = (type_5)0x0;
    (__position._M_current)->align = align;
    ((__position._M_current)->contributions).
    super__Vector_base<var_5::Dwp_output_file::var_2,_std::allocator<var_5::Dwp_output_file::var_2>var_1>
    ._M_impl._M_start = (type_5)0x0;
    ((__position._M_current)->contributions).
    super__Vector_base<var_5::Dwp_output_file::var_2,_std::allocator<var_5::Dwp_output_file::var_2>var_1>
    ._M_impl._M_finish = (type_5)0x0;
    ((__position._M_current)->contributions).
    super__Vector_base<var_5::Dwp_output_file::var_2,_std::allocator<var_5::Dwp_output_file::var_2>var_1>
    ._M_impl._M_end_of_storage = (type_5)0x0;
    sect.contributions.
    super__Vector_base<var_5::Dwp_output_file::var_2,_std::allocator<var_5::Dwp_output_file::var_2>var_1>
    ._M_impl._M_end_of_storage = (type_5)0x0;
    sect.contributions.
    super__Vector_base<var_5::Dwp_output_file::var_2,_std::allocator<var_5::Dwp_output_file::var_2>var_1>
    ._M_impl._M_finish = (type_5)0x0;
    sect.contributions.
    super__Vector_base<var_5::Dwp_output_file::var_2,_std::allocator<var_5::Dwp_output_file::var_2>var_1>
    ._M_impl._M_start = (type_5)0x0;
    sect.size = 0;
    sect.offset = 0;
    ((__position._M_current)->contributions).
    super__Vector_base<var_5::Dwp_output_file::var_2,_std::allocator<var_5::Dwp_output_file::var_2>var_1>
    ._M_impl._M_finish = (type_5)0x0;
    (this->sections_).
    super__Vector_base<var_5::Dwp_output_file::type_4,_std::allocator<var_5::Dwp_output_file::type_4>var_1>
    ._M_impl._M_finish = __position._M_current + 1;
  }
  var_3 = this->shnum_;
  this->shnum_ = var_3 + 1;
  if (sect.contributions.
      super__Vector_base<var_5::type_2::var_2,_std::allocator<var_5::type_2::var_2>var_1>
      ._M_impl._M_start != (type_5)0x0) {
    var_4(sect.contributions.
                    super__Vector_base<var_5::type_2::var_2,_std::allocator<var_5::type_2::var_2>var_1>
                    ._M_impl._M_start);
  }
  return var_3;
}


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

/* WARNING: Removing unreachable block (ram,0x001491cf) */
/* WARNING: Removing unreachable block (ram,0x001491e2) */
/* WARNING: Removing unreachable block (ram,0x00149276) */
/* WARNING: Removing unreachable block (ram,0x00149215) */

int MASKED(long param_1,undefined8 param_2,undefined4 param_3)

{
  int iVar1;
  undefined8 *puVar2;
  undefined8 local_68;
  undefined8 local_60;
  undefined8 local_58;
  undefined4 local_50;
  long local_48;
  undefined8 local_40;
  undefined8 local_38;
  
  puVar2 = *(undefined8 **)(param_1 + 0x40);
  local_60 = 0;
  local_58 = 0;
  local_48 = 0;
  local_40 = 0;
  local_38 = 0;
  local_68 = param_2;
  local_50 = param_3;
  if (puVar2 == *(undefined8 **)(param_1 + 0x48)) {
    FUN_001573b0(param_1 + 0x38,puVar2,&local_68);
  }
  else {
    *puVar2 = param_2;
    puVar2[5] = 0;
    puVar2[1] = 0;
    puVar2[4] = 0;
    puVar2[2] = 0;
    puVar2[6] = 0;
    *(undefined4 *)(puVar2 + 3) = param_3;
    puVar2[4] = 0;
    puVar2[5] = 0;
    puVar2[6] = 0;
    local_38 = 0;
    local_40 = 0;
    local_48 = 0;
    local_58 = 0;
    local_60 = 0;
    puVar2[5] = 0;
    *(undefined8 **)(param_1 + 0x40) = puVar2 + 7;
  }
  iVar1 = *(int *)(param_1 + 0x30);
  *(int *)(param_1 + 0x30) = iVar1 + 1;
  if (local_48 != 0) {
    FUN_00276d20(local_48);
  }
  return iVar1;
}

