
/* WARNING: Unknown calling convention -- yet parameter storage is locked */
/* DWARF original name: __make_heap<__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char>*,
   std::vector<std::__cxx11::basic_string<char> > >,
   __gnu_cxx::__ops::_Iter_comp_iter<gold::Odr_violation_compare> > */

void std::
     __make_heap<__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char>*,_std::vector<std::__cxx11::basic_string<char>_>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Odr_violation_compare>_>
               (__normal_iterator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>*,_std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>
                __first,__normal_iterator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>*,_std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>
                        __last,_Iter_comp_iter<gold::Odr_violation_compare> *__comp)

{
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *paVar1;
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *paVar2;
  int iVar3;
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *paVar4;
  int iVar5;
  size_type *local_58;
  size_type local_54;
  size_type local_50;
  undefined4 local_4c;
  undefined4 local_48;
  undefined4 local_44;
  _ValueType __value;
  
  if ((int)__last._M_current - (int)__first._M_current < 0x19) {
    return;
  }
  iVar5 = ((int)__last._M_current - (int)__first._M_current >> 3) * -0x55555555;
  paVar4 = &__value.field_2;
  iVar3 = (iVar5 + -2) / 2;
  paVar1 = &__first._M_current[iVar3].field_2;
  local_58 = (size_type *)(&paVar1->_M_allocated_capacity)[-2];
  if (paVar1 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                 *)local_58) goto LAB_00244a38;
  do {
    __value.field_2._M_allocated_capacity = *(undefined4 *)paVar1;
    local_54 = (&paVar1->_M_allocated_capacity)[-1];
    (&paVar1->_M_allocated_capacity)[-2] = (size_type)paVar1;
    (&paVar1->_M_allocated_capacity)[-1] = 0;
    paVar1->_M_local_buf[0] = '\0';
    paVar2 = paVar1;
    if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
         *)local_58 == paVar4) goto LAB_00244a78;
    while( true ) {
      local_50 = __value.field_2._M_allocated_capacity;
      __value._M_string_length = 0;
      __value.field_2._M_allocated_capacity = __value.field_2._M_allocated_capacity & 0xffffff;
      __value._M_dataplus._M_p = (pointer)paVar4;
                    /* try { // try from 002449e8 to 002449ef has its CatchHandler @ 00244ae4 */
      __adjust_heap<__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char>*,_std::vector<std::__cxx11::basic_string<char>_>_>,_int,_std::__cxx11::basic_string<char>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Odr_violation_compare>_>
                (__first._M_current,iVar3,iVar5,&local_58);
      if (local_58 != &local_50) {
        (*(code *)PTR_operator_delete_0043228c)();
      }
      if (iVar3 == 0) {
        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
             *)__value._M_dataplus._M_p != paVar4) {
          (*(code *)PTR_operator_delete_0043228c)();
        }
        return;
      }
      iVar3 = iVar3 + -1;
      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
           *)__value._M_dataplus._M_p != paVar4) {
        (*(code *)PTR_operator_delete_0043228c)();
      }
      paVar1 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                *)(&paVar2->_M_allocated_capacity + -6);
      local_58 = (size_type *)(&paVar2->_M_allocated_capacity)[-8];
      if (paVar1 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                     *)local_58) break;
LAB_00244a38:
      __value.field_2._M_allocated_capacity = paVar1->_M_allocated_capacity;
      __value.field_2._4_4_ = (&paVar1->_M_allocated_capacity)[1];
      __value.field_2._8_4_ = (&paVar1->_M_allocated_capacity)[2];
      __value.field_2._12_4_ = (&paVar1->_M_allocated_capacity)[3];
      local_54 = (&paVar1->_M_allocated_capacity)[-1];
      (&paVar1->_M_allocated_capacity)[-1] = 0;
      paVar1->_M_local_buf[0] = '\0';
LAB_00244a78:
      local_4c = __value.field_2._4_4_;
      local_48 = __value.field_2._8_4_;
      local_44 = __value.field_2._12_4_;
      paVar2 = paVar1;
      local_58 = &local_50;
    }
  } while( true );
}



/* WARNING: Unknown calling convention -- yet parameter storage is locked */
/* void std::__make_heap<__normal_iterator<std::string*, std::vector<std::string,
   std::allocator<std::string > > >, __ops::_Iter_comp_iter<gold::Odr_violation_compare>
   >(__normal_iterator<std::string*, std::vector<std::string, std::allocator<std::string > > >,
   __normal_iterator<std::string*, std::vector<std::string, std::allocator<std::string > > >,
   __ops::_Iter_comp_iter<gold::Odr_violation_compare>&) */

void std::
     __make_heap<__normal_iterator<std::string*,std::vector<std::string,std::allocator<std::string>>>,__ops::_Iter_comp_iter<gold::Odr_violation_compare>>
               (int param_1,int param_2)

{
  uint *puVar1;
  uint *puVar2;
  int iVar3;
  int iVar4;
  uint *local_58;
  uint local_54;
  uint local_50;
  uint local_4c;
  uint local_48;
  uint local_44;
  uint *local_40;
  undefined4 local_3c;
  uint local_38;
  uint local_34;
  uint local_30;
  uint local_2c;
  
  if (param_2 - param_1 < 0x19) {
    return;
  }
  iVar4 = (param_2 - param_1 >> 3) * -0x55555555;
  iVar3 = (iVar4 + -2) / 2;
  puVar1 = (uint *)(param_1 + iVar3 * 0x18 + 8);
  local_58 = (uint *)puVar1[-2];
  if (puVar1 == local_58) goto LAB_00244a38;
  do {
    local_38 = *puVar1;
    local_54 = puVar1[-1];
    puVar1[-2] = (uint)puVar1;
    puVar1[-1] = 0;
    *(undefined1 *)puVar1 = 0;
    puVar2 = puVar1;
    if (local_58 == &local_38) goto LAB_00244a78;
    while( true ) {
      local_50 = local_38;
      local_3c = 0;
      local_38 = local_38 & 0xffffff;
      local_40 = &local_38;
                    /* try { // try from 002449e8 to 002449ef has its CatchHandler @ 00244ae4 */
      __adjust_heap<__normal_iterator<std::string*,std::vector<std::string,std::allocator<std::string>>>,int,std::string,__ops::_Iter_comp_iter<gold::Odr_violation_compare>>
                (param_1,iVar3,iVar4,&local_58);
      if (local_58 != &local_50) {
        (*(code *)PTR_operator_delete_0043228c)();
      }
      if (iVar3 == 0) {
        if (local_40 != &local_38) {
          (*(code *)PTR_operator_delete_0043228c)();
        }
        return;
      }
      iVar3 = iVar3 + -1;
      if (local_40 != &local_38) {
        (*(code *)PTR_operator_delete_0043228c)();
      }
      puVar1 = puVar2 + -6;
      local_58 = (uint *)puVar2[-8];
      if (puVar1 != local_58) break;
LAB_00244a38:
      local_38 = *puVar1;
      local_34 = puVar1[1];
      local_30 = puVar1[2];
      local_2c = puVar1[3];
      local_54 = puVar1[-1];
      puVar1[-1] = 0;
      *(undefined1 *)puVar1 = 0;
LAB_00244a78:
      local_4c = local_34;
      local_48 = local_30;
      local_44 = local_2c;
      puVar2 = puVar1;
      local_58 = &local_50;
    }
  } while( true );
}


lui gp,0x1f
addiu gp,gp,0x58e0
addu gp,gp,t9
subu a1,a1,a0
slti v0,a1,0x19
bne v0,zero,0x00244adc
_nop
addiu sp,sp,-0x78
sra a1,a1,0x3
sw s4,0x60(sp)
lui s4,0xaaaa
sw s1,0x54(sp)
ori s4,s4,0xaaab
sw s0,0x50(sp)
mul s4,a1,s4
sw s8,0x70(sp)
sw s7,0x6c(sp)
addiu s7,sp,0x20
sw s6,0x68(sp)
or s6,a2,zero
sw s5,0x64(sp)
or s5,a0,zero
sw s3,0x5c(sp)
addiu s3,sp,0x28
sw s2,0x58(sp)
addiu s2,sp,0x40
sw gp,0x18(sp)
addiu v0,s4,-0x2
sw ra,0x74(sp)
sw s2,0x38(sp)
srl s1,v0,0x1f
addu s1,s1,v0
sra s1,s1,0x1
sll s0,s1,0x1
addu s0,s0,s1
sll s0,s0,0x3
addiu s0,s0,0x8
addu s0,a0,s0
lw v0,-0x8(s0)
beq s0,v0,0x00244a38
_lw s8,-0x4dc8(gp)
lw v1,0x0(s0)
lw a0,-0x4(s0)
sw v0,0x38(sp)
sw v1,0x40(sp)
sw s0,-0x8(s0)
sw zero,-0x4(s0)
sb zero,0x0(s0)
beq v0,s2,0x00244a78
_sw s3,0x20(sp)
sw v0,0x20(sp)
sw v1,0x28(sp)
lbu v0,0x0(s6)
or a3,s7,zero
sw a0,0x24(sp)
or a2,s4,zero
or a1,s1,zero
sw s2,0x38(sp)
sb v0,0x10(sp)
or a0,s5,zero
sw zero,0x3c(sp)
or t9,s8,zero
bal 0x002441f8
_sb zero,0x40(sp)
lw a0,0x20(sp)
beq a0,s3,0x00244a0c
_lw gp,0x18(sp)
lw t9,-0x7f44(gp)
jalr t9
_nop
lw gp,0x18(sp)
beq s1,zero,0x00244a9c
_lw a0,0x38(sp)
beq a0,s2,0x00244a28
_addiu s1,s1,-0x1
lw t9,-0x7f44(gp)
jalr t9
_nop
addiu s0,s0,-0x18
lw v0,-0x8(s0)
bne s0,v0,0x00244994
_sw s2,0x38(sp)
lwl a2,0x0(s0)
lwl a1,0x4(s0)
lwl v1,0x8(s0)
lwl v0,0xc(s0)
lwr a2,0x3(s0)
lwr a1,0x7(s0)
lwr v1,0xb(s0)
lwr v0,0xf(s0)
lw a0,-0x4(s0)
sw a2,0x40(sp)
sw a1,0x44(sp)
sw v1,0x48(sp)
sw v0,0x4c(sp)
sw zero,-0x4(s0)
sb zero,0x0(s0)
sw s3,0x20(sp)
lw v0,0x40(sp)
sw v0,0x28(sp)
lw v0,0x44(sp)
sw v0,0x2c(sp)
lw v0,0x48(sp)
sw v0,0x30(sp)
lw v0,0x4c(sp)
b 0x002449c0
_sw v0,0x34(sp)
beq a0,s2,0x00244aac
_lw t9,-0x7f44(gp)
jalr t9
_nop
lw ra,0x74(sp)
lw s8,0x70(sp)
lw s7,0x6c(sp)
lw s6,0x68(sp)
lw s5,0x64(sp)
lw s4,0x60(sp)
lw s3,0x5c(sp)
lw s2,0x58(sp)
lw s1,0x54(sp)
lw s0,0x50(sp)
jr ra
_addiu sp,sp,0x78
jr ra
_nop
(translation_unit "/* WARNING: Unknown calling convention -- yet parameter storage is locked */\n/* void std::__make_heap<__normal_iterator<std::string*, std::vector<std::string,\n   std::allocator<std::string > > >, __ops::_Iter_comp_iter<gold::Odr_violation_compare>\n   >(__normal_iterator<std::string*, std::vector<std::string, std::allocator<std::string > > >,\n   __normal_iterator<std::string*, std::vector<std::string, std::allocator<std::string > > >,\n   __ops::_Iter_comp_iter<gold::Odr_violation_compare>&) */\n\nvoid std::\n     __make_heap<__normal_iterator<std::string*,std::vector<std::string,std::allocator<std::string>>>,__ops::_Iter_comp_iter<gold::Odr_violation_compare>>\n               (int param_1,int param_2)\n\n{\n  uint *puVar1;\n  uint *puVar2;\n  int iVar3;\n  int iVar4;\n  uint *local_58;\n  uint local_54;\n  uint local_50;\n  uint local_4c;\n  uint local_48;\n  uint local_44;\n  uint *local_40;\n  undefined4 local_3c;\n  uint local_38;\n  uint local_34;\n  uint local_30;\n  uint local_2c;\n  \n  if (param_2 - param_1 < 0x19) {\n    return;\n  }\n  iVar4 = (param_2 - param_1 >> 3) * -0x55555555;\n  iVar3 = (iVar4 + -2) / 2;\n  puVar1 = (uint *)(param_1 + iVar3 * 0x18 + 8);\n  local_58 = (uint *)puVar1[-2];\n  if (puVar1 == local_58) goto LAB_00244a38;\n  do {\n    local_38 = *puVar1;\n    local_54 = puVar1[-1];\n    puVar1[-2] = (uint)puVar1;\n    puVar1[-1] = 0;\n    *(undefined1 *)puVar1 = 0;\n    puVar2 = puVar1;\n    if (local_58 == &local_38) goto LAB_00244a78;\n    while( true ) {\n      local_50 = local_38;\n      local_3c = 0;\n      local_38 = local_38 & 0xffffff;\n      local_40 = &local_38;\n                    /* try { // try from 002449e8 to 002449ef has its CatchHandler @ 00244ae4 */\n      __adjust_heap<__normal_iterator<std::string*,std::vector<std::string,std::allocator<std::string>>>,int,std::string,__ops::_Iter_comp_iter<gold::Odr_violation_compare>>\n                (param_1,iVar3,iVar4,&local_58);\n      if (local_58 != &local_50) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      if (iVar3 == 0) {\n        if (local_40 != &local_38) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n        return;\n      }\n      iVar3 = iVar3 + -1;\n      if (local_40 != &local_38) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      puVar1 = puVar2 + -6;\n      local_58 = (uint *)puVar2[-8];\n      if (puVar1 != local_58) break;\nLAB_00244a38:\n      local_38 = *puVar1;\n      local_34 = puVar1[1];\n      local_30 = puVar1[2];\n      local_2c = puVar1[3];\n      local_54 = puVar1[-1];\n      puVar1[-1] = 0;\n      *(undefined1 *)puVar1 = 0;\nLAB_00244a78:\n      local_4c = local_34;\n      local_48 = local_30;\n      local_44 = local_2c;\n      puVar2 = puVar1;\n      local_58 = &local_50;\n    }\n  } while( true );\n}\n\n" comment comment (declaration "void std::\n     __make_heap<__normal_iterator<std::string*,std::vector<std::string,std::allocator<std::string>>>,__ops::_Iter_comp_iter<gold::Odr_violation_compare>>\n               (int param_1,int param_2)\n\n{\n  uint *puVar1;" primitive_type (ERROR "std::\n     __make_heap<__normal_iterator<std::" identifier : : identifier < identifier < identifier : :) identifier (ERROR "*" *) , (ERROR "std::vector<std::" identifier : : identifier < identifier : :) identifier , (ERROR "std::allocator<std::" identifier : : identifier < identifier : :) identifier (ERROR ">>>" >> >) , (ERROR "__ops::_Iter_comp_iter<gold::Odr_violation_compare>>\n               (int param_1,int param_2)\n\n{\n  uint" identifier : : identifier < identifier : : (function_declarator "Odr_violation_compare>>\n               (int param_1,int param_2)" identifier (ERROR ">>" >>) (parameter_list "(int param_1,int param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) { identifier) (pointer_declarator "*puVar1" * identifier) ;) (declaration "uint *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (declaration "uint local_54;" type_identifier identifier ;) (declaration "uint local_50;" type_identifier identifier ;) (declaration "uint local_4c;" type_identifier identifier ;) (declaration "uint local_48;" type_identifier identifier ;) (declaration "uint local_44;" type_identifier identifier ;) (declaration "uint *local_40;" type_identifier (pointer_declarator "*local_40" * identifier) ;) (declaration "undefined4 local_3c;" type_identifier identifier ;) (declaration "uint local_38;" type_identifier identifier ;) (declaration "uint local_34;" type_identifier identifier ;) (declaration "uint local_30;" type_identifier identifier ;) (declaration "uint local_2c;" type_identifier identifier ;) (if_statement "if (param_2 - param_1 < 0x19) {\n    return;\n  }" if (parenthesized_expression "(param_2 - param_1 < 0x19)" ( (binary_expression "param_2 - param_1 < 0x19" (binary_expression "param_2 - param_1" identifier - identifier) < number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "iVar4 = (param_2 - param_1 >> 3) * -0x55555555;" (assignment_expression "iVar4 = (param_2 - param_1 >> 3) * -0x55555555" identifier = (binary_expression "(param_2 - param_1 >> 3) * -0x55555555" (parenthesized_expression "(param_2 - param_1 >> 3)" ( (binary_expression "param_2 - param_1 >> 3" (binary_expression "param_2 - param_1" identifier - identifier) >> number_literal) )) * number_literal)) ;) (expression_statement "iVar3 = (iVar4 + -2) / 2;" (assignment_expression "iVar3 = (iVar4 + -2) / 2" identifier = (binary_expression "(iVar4 + -2) / 2" (parenthesized_expression "(iVar4 + -2)" ( (binary_expression "iVar4 + -2" identifier + number_literal) )) / number_literal)) ;) (expression_statement "puVar1 = (uint *)(param_1 + iVar3 * 0x18 + 8);" (assignment_expression "puVar1 = (uint *)(param_1 + iVar3 * 0x18 + 8)" identifier = (cast_expression "(uint *)(param_1 + iVar3 * 0x18 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + iVar3 * 0x18 + 8)" ( (binary_expression "param_1 + iVar3 * 0x18 + 8" (binary_expression "param_1 + iVar3 * 0x18" identifier + (binary_expression "iVar3 * 0x18" identifier * number_literal)) + number_literal) )))) ;) (expression_statement "local_58 = (uint *)puVar1[-2];" (assignment_expression "local_58 = (uint *)puVar1[-2]" identifier = (cast_expression "(uint *)puVar1[-2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar1[-2]" identifier [ number_literal ]))) ;) (if_statement "if (puVar1 == local_58) goto LAB_00244a38;" if (parenthesized_expression "(puVar1 == local_58)" ( (binary_expression "puVar1 == local_58" identifier == identifier) )) (goto_statement "goto LAB_00244a38;" goto statement_identifier ;)) (do_statement "do {\n    local_38 = *puVar1;\n    local_54 = puVar1[-1];\n    puVar1[-2] = (uint)puVar1;\n    puVar1[-1] = 0;\n    *(undefined1 *)puVar1 = 0;\n    puVar2 = puVar1;\n    if (local_58 == &local_38) goto LAB_00244a78;\n    while( true ) {\n      local_50 = local_38;\n      local_3c = 0;\n      local_38 = local_38 & 0xffffff;\n      local_40 = &local_38;\n                    /* try { // try from 002449e8 to 002449ef has its CatchHandler @ 00244ae4 */\n      __adjust_heap<__normal_iterator<std::string*,std::vector<std::string,std::allocator<std::string>>>,int,std::string,__ops::_Iter_comp_iter<gold::Odr_violation_compare>>\n                (param_1,iVar3,iVar4,&local_58);\n      if (local_58 != &local_50) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      if (iVar3 == 0) {\n        if (local_40 != &local_38) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n        return;\n      }\n      iVar3 = iVar3 + -1;\n      if (local_40 != &local_38) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      puVar1 = puVar2 + -6;\n      local_58 = (uint *)puVar2[-8];\n      if (puVar1 != local_58) break;\nLAB_00244a38:\n      local_38 = *puVar1;\n      local_34 = puVar1[1];\n      local_30 = puVar1[2];\n      local_2c = puVar1[3];\n      local_54 = puVar1[-1];\n      puVar1[-1] = 0;\n      *(undefined1 *)puVar1 = 0;\nLAB_00244a78:\n      local_4c = local_34;\n      local_48 = local_30;\n      local_44 = local_2c;\n      puVar2 = puVar1;\n      local_58 = &local_50;\n    }\n  } while( true );" do (compound_statement "{\n    local_38 = *puVar1;\n    local_54 = puVar1[-1];\n    puVar1[-2] = (uint)puVar1;\n    puVar1[-1] = 0;\n    *(undefined1 *)puVar1 = 0;\n    puVar2 = puVar1;\n    if (local_58 == &local_38) goto LAB_00244a78;\n    while( true ) {\n      local_50 = local_38;\n      local_3c = 0;\n      local_38 = local_38 & 0xffffff;\n      local_40 = &local_38;\n                    /* try { // try from 002449e8 to 002449ef has its CatchHandler @ 00244ae4 */\n      __adjust_heap<__normal_iterator<std::string*,std::vector<std::string,std::allocator<std::string>>>,int,std::string,__ops::_Iter_comp_iter<gold::Odr_violation_compare>>\n                (param_1,iVar3,iVar4,&local_58);\n      if (local_58 != &local_50) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      if (iVar3 == 0) {\n        if (local_40 != &local_38) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n        return;\n      }\n      iVar3 = iVar3 + -1;\n      if (local_40 != &local_38) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      puVar1 = puVar2 + -6;\n      local_58 = (uint *)puVar2[-8];\n      if (puVar1 != local_58) break;\nLAB_00244a38:\n      local_38 = *puVar1;\n      local_34 = puVar1[1];\n      local_30 = puVar1[2];\n      local_2c = puVar1[3];\n      local_54 = puVar1[-1];\n      puVar1[-1] = 0;\n      *(undefined1 *)puVar1 = 0;\nLAB_00244a78:\n      local_4c = local_34;\n      local_48 = local_30;\n      local_44 = local_2c;\n      puVar2 = puVar1;\n      local_58 = &local_50;\n    }\n  }" { (expression_statement "local_38 = *puVar1;" (assignment_expression "local_38 = *puVar1" identifier = (pointer_expression "*puVar1" * identifier)) ;) (expression_statement "local_54 = puVar1[-1];" (assignment_expression "local_54 = puVar1[-1]" identifier = (subscript_expression "puVar1[-1]" identifier [ number_literal ])) ;) (expression_statement "puVar1[-2] = (uint)puVar1;" (assignment_expression "puVar1[-2] = (uint)puVar1" (subscript_expression "puVar1[-2]" identifier [ number_literal ]) = (cast_expression "(uint)puVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar1[-1] = 0;" (assignment_expression "puVar1[-1] = 0" (subscript_expression "puVar1[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)puVar1 = 0;" (assignment_expression "*(undefined1 *)puVar1 = 0" (pointer_expression "*(undefined1 *)puVar1" * (cast_expression "(undefined1 *)puVar1" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "puVar2 = puVar1;" (assignment_expression "puVar2 = puVar1" identifier = identifier) ;) (if_statement "if (local_58 == &local_38) goto LAB_00244a78;" if (parenthesized_expression "(local_58 == &local_38)" ( (binary_expression "local_58 == &local_38" identifier == (pointer_expression "&local_38" & identifier)) )) (goto_statement "goto LAB_00244a78;" goto statement_identifier ;)) (while_statement "while( true ) {\n      local_50 = local_38;\n      local_3c = 0;\n      local_38 = local_38 & 0xffffff;\n      local_40 = &local_38;\n                    /* try { // try from 002449e8 to 002449ef has its CatchHandler @ 00244ae4 */\n      __adjust_heap<__normal_iterator<std::string*,std::vector<std::string,std::allocator<std::string>>>,int,std::string,__ops::_Iter_comp_iter<gold::Odr_violation_compare>>\n                (param_1,iVar3,iVar4,&local_58);\n      if (local_58 != &local_50) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      if (iVar3 == 0) {\n        if (local_40 != &local_38) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n        return;\n      }\n      iVar3 = iVar3 + -1;\n      if (local_40 != &local_38) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      puVar1 = puVar2 + -6;\n      local_58 = (uint *)puVar2[-8];\n      if (puVar1 != local_58) break;\nLAB_00244a38:\n      local_38 = *puVar1;\n      local_34 = puVar1[1];\n      local_30 = puVar1[2];\n      local_2c = puVar1[3];\n      local_54 = puVar1[-1];\n      puVar1[-1] = 0;\n      *(undefined1 *)puVar1 = 0;\nLAB_00244a78:\n      local_4c = local_34;\n      local_48 = local_30;\n      local_44 = local_2c;\n      puVar2 = puVar1;\n      local_58 = &local_50;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      local_50 = local_38;\n      local_3c = 0;\n      local_38 = local_38 & 0xffffff;\n      local_40 = &local_38;\n                    /* try { // try from 002449e8 to 002449ef has its CatchHandler @ 00244ae4 */\n      __adjust_heap<__normal_iterator<std::string*,std::vector<std::string,std::allocator<std::string>>>,int,std::string,__ops::_Iter_comp_iter<gold::Odr_violation_compare>>\n                (param_1,iVar3,iVar4,&local_58);\n      if (local_58 != &local_50) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      if (iVar3 == 0) {\n        if (local_40 != &local_38) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n        return;\n      }\n      iVar3 = iVar3 + -1;\n      if (local_40 != &local_38) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      puVar1 = puVar2 + -6;\n      local_58 = (uint *)puVar2[-8];\n      if (puVar1 != local_58) break;\nLAB_00244a38:\n      local_38 = *puVar1;\n      local_34 = puVar1[1];\n      local_30 = puVar1[2];\n      local_2c = puVar1[3];\n      local_54 = puVar1[-1];\n      puVar1[-1] = 0;\n      *(undefined1 *)puVar1 = 0;\nLAB_00244a78:\n      local_4c = local_34;\n      local_48 = local_30;\n      local_44 = local_2c;\n      puVar2 = puVar1;\n      local_58 = &local_50;\n    }" { (expression_statement "local_50 = local_38;" (assignment_expression "local_50 = local_38" identifier = identifier) ;) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" identifier = number_literal) ;) (expression_statement "local_38 = local_38 & 0xffffff;" (assignment_expression "local_38 = local_38 & 0xffffff" identifier = (binary_expression "local_38 & 0xffffff" identifier & number_literal)) ;) (expression_statement "local_40 = &local_38;" (assignment_expression "local_40 = &local_38" identifier = (pointer_expression "&local_38" & identifier)) ;) comment (ERROR "__adjust_heap<__normal_iterator<std::string*,std::vector<std::string,std::allocator<std::string>>>,int,std::string,__ops::_Iter_comp_iter<gold::" (comma_expression "__adjust_heap<__normal_iterator<std::string*,std::vector<std::string,std" (binary_expression "__adjust_heap<__normal_iterator<std::string*,std::vector<std" (binary_expression "__adjust_heap<__normal_iterator<std::string*,std" (binary_expression "__adjust_heap<__normal_iterator<std" (binary_expression "__adjust_heap<__normal_iterator" identifier < identifier) < identifier) (ERROR "::string" : : identifier) * (ERROR "," ,) identifier) (ERROR "::vector" : : identifier) < identifier) (ERROR "::string" : : identifier) , identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "string>>>,int,std" identifier (ERROR ">>>" >> >) , (comma_expression "int,std" identifier , identifier)) : : (comma_expression "string,__ops" identifier , identifier) : : (binary_expression "_Iter_comp_iter<gold" identifier < identifier) : :) (expression_statement "Odr_violation_compare>>\n                (param_1,iVar3,iVar4,&local_58);" (binary_expression "Odr_violation_compare>>\n                (param_1,iVar3,iVar4,&local_58)" identifier >> (parenthesized_expression "(param_1,iVar3,iVar4,&local_58)" ( (comma_expression "param_1,iVar3,iVar4,&local_58" identifier , (comma_expression "iVar3,iVar4,&local_58" identifier , (comma_expression "iVar4,&local_58" identifier , (pointer_expression "&local_58" & identifier)))) ))) ;) (if_statement "if (local_58 != &local_50) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }" if (parenthesized_expression "(local_58 != &local_50)" ( (binary_expression "local_58 != &local_50" identifier != (pointer_expression "&local_50" & identifier)) )) (compound_statement "{\n        (*(code *)PTR_operator_delete_0043228c)();\n      }" { (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" ( (pointer_expression "*(code *)PTR_operator_delete_0043228c" * (cast_expression "(code *)PTR_operator_delete_0043228c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (if_statement "if (iVar3 == 0) {\n        if (local_40 != &local_38) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n        return;\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        if (local_40 != &local_38) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n        return;\n      }" { (if_statement "if (local_40 != &local_38) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }" if (parenthesized_expression "(local_40 != &local_38)" ( (binary_expression "local_40 != &local_38" identifier != (pointer_expression "&local_38" & identifier)) )) (compound_statement "{\n          (*(code *)PTR_operator_delete_0043228c)();\n        }" { (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" ( (pointer_expression "*(code *)PTR_operator_delete_0043228c" * (cast_expression "(code *)PTR_operator_delete_0043228c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (return_statement "return;" return ;) })) (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ;) (if_statement "if (local_40 != &local_38) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }" if (parenthesized_expression "(local_40 != &local_38)" ( (binary_expression "local_40 != &local_38" identifier != (pointer_expression "&local_38" & identifier)) )) (compound_statement "{\n        (*(code *)PTR_operator_delete_0043228c)();\n      }" { (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" ( (pointer_expression "*(code *)PTR_operator_delete_0043228c" * (cast_expression "(code *)PTR_operator_delete_0043228c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "puVar1 = puVar2 + -6;" (assignment_expression "puVar1 = puVar2 + -6" identifier = (binary_expression "puVar2 + -6" identifier + number_literal)) ;) (expression_statement "local_58 = (uint *)puVar2[-8];" (assignment_expression "local_58 = (uint *)puVar2[-8]" identifier = (cast_expression "(uint *)puVar2[-8]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar2[-8]" identifier [ number_literal ]))) ;) (if_statement "if (puVar1 != local_58) break;" if (parenthesized_expression "(puVar1 != local_58)" ( (binary_expression "puVar1 != local_58" identifier != identifier) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00244a38:\n      local_38 = *puVar1;" statement_identifier : (expression_statement "local_38 = *puVar1;" (assignment_expression "local_38 = *puVar1" identifier = (pointer_expression "*puVar1" * identifier)) ;)) (expression_statement "local_34 = puVar1[1];" (assignment_expression "local_34 = puVar1[1]" identifier = (subscript_expression "puVar1[1]" identifier [ number_literal ])) ;) (expression_statement "local_30 = puVar1[2];" (assignment_expression "local_30 = puVar1[2]" identifier = (subscript_expression "puVar1[2]" identifier [ number_literal ])) ;) (expression_statement "local_2c = puVar1[3];" (assignment_expression "local_2c = puVar1[3]" identifier = (subscript_expression "puVar1[3]" identifier [ number_literal ])) ;) (expression_statement "local_54 = puVar1[-1];" (assignment_expression "local_54 = puVar1[-1]" identifier = (subscript_expression "puVar1[-1]" identifier [ number_literal ])) ;) (expression_statement "puVar1[-1] = 0;" (assignment_expression "puVar1[-1] = 0" (subscript_expression "puVar1[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)puVar1 = 0;" (assignment_expression "*(undefined1 *)puVar1 = 0" (pointer_expression "*(undefined1 *)puVar1" * (cast_expression "(undefined1 *)puVar1" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (labeled_statement "LAB_00244a78:\n      local_4c = local_34;" statement_identifier : (expression_statement "local_4c = local_34;" (assignment_expression "local_4c = local_34" identifier = identifier) ;)) (expression_statement "local_48 = local_30;" (assignment_expression "local_48 = local_30" identifier = identifier) ;) (expression_statement "local_44 = local_2c;" (assignment_expression "local_44 = local_2c" identifier = identifier) ;) (expression_statement "puVar2 = puVar1;" (assignment_expression "puVar2 = puVar1" identifier = identifier) ;) (expression_statement "local_58 = &local_50;" (assignment_expression "local_58 = &local_50" identifier = (pointer_expression "&local_50" & identifier)) ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) (ERROR "}" }))
(translation_unit "/* WARNING: Unknown calling convention -- yet parameter storage is locked */\n/* DWARF original name: __make_heap<__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char>*,\n   std::vector<std::__cxx11::basic_string<char> > >,\n   __gnu_cxx::__ops::_Iter_comp_iter<gold::Odr_violation_compare> > */\n\nvoid std::\n     __make_heap<__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char>*,_std::vector<std::__cxx11::basic_string<char>_>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Odr_violation_compare>_>\n               (__normal_iterator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>*,_std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>\n                __first,__normal_iterator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>*,_std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>\n                        __last,_Iter_comp_iter<gold::Odr_violation_compare> *__comp)\n\n{\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar1;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar2;\n  int iVar3;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar4;\n  int iVar5;\n  size_type *local_58;\n  size_type local_54;\n  size_type local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  _ValueType __value;\n  \n  if ((int)__last._M_current - (int)__first._M_current < 0x19) {\n    return;\n  }\n  iVar5 = ((int)__last._M_current - (int)__first._M_current >> 3) * -0x55555555;\n  paVar4 = &__value.field_2;\n  iVar3 = (iVar5 + -2) / 2;\n  paVar1 = &__first._M_current[iVar3].field_2;\n  local_58 = (size_type *)(&paVar1->_M_allocated_capacity)[-2];\n  if (paVar1 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)local_58) goto LAB_00244a38;\n  do {\n    __value.field_2._M_allocated_capacity = *(undefined4 *)paVar1;\n    local_54 = (&paVar1->_M_allocated_capacity)[-1];\n    (&paVar1->_M_allocated_capacity)[-2] = (size_type)paVar1;\n    (&paVar1->_M_allocated_capacity)[-1] = 0;\n    paVar1->_M_local_buf[0] = '\0';\n    paVar2 = paVar1;\n    if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)local_58 == paVar4) goto LAB_00244a78;\n    while( true ) {\n      local_50 = __value.field_2._M_allocated_capacity;\n      __value._M_string_length = 0;\n      __value.field_2._M_allocated_capacity = __value.field_2._M_allocated_capacity & 0xffffff;\n      __value._M_dataplus._M_p = (pointer)paVar4;\n                    /* try { // try from 002449e8 to 002449ef has its CatchHandler @ 00244ae4 */\n      __adjust_heap<__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char>*,_std::vector<std::__cxx11::basic_string<char>_>_>,_int,_std::__cxx11::basic_string<char>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Odr_violation_compare>_>\n                (__first._M_current,iVar3,iVar5,&local_58);\n      if (local_58 != &local_50) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      if (iVar3 == 0) {\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__value._M_dataplus._M_p != paVar4) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n        return;\n      }\n      iVar3 = iVar3 + -1;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)__value._M_dataplus._M_p != paVar4) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      paVar1 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)(&paVar2->_M_allocated_capacity + -6);\n      local_58 = (size_type *)(&paVar2->_M_allocated_capacity)[-8];\n      if (paVar1 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)local_58) break;\nLAB_00244a38:\n      __value.field_2._M_allocated_capacity = paVar1->_M_allocated_capacity;\n      __value.field_2._4_4_ = (&paVar1->_M_allocated_capacity)[1];\n      __value.field_2._8_4_ = (&paVar1->_M_allocated_capacity)[2];\n      __value.field_2._12_4_ = (&paVar1->_M_allocated_capacity)[3];\n      local_54 = (&paVar1->_M_allocated_capacity)[-1];\n      (&paVar1->_M_allocated_capacity)[-1] = 0;\n      paVar1->_M_local_buf[0] = '\0';\nLAB_00244a78:\n      local_4c = __value.field_2._4_4_;\n      local_48 = __value.field_2._8_4_;\n      local_44 = __value.field_2._12_4_;\n      paVar2 = paVar1;\n      local_58 = &local_50;\n    }\n  } while( true );\n}\n\n" comment comment (declaration "void std::\n     __make_heap<__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char>*,_std::vector<std::__cxx11::basic_string<char>_>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Odr_violation_compare>_>\n               (__normal_iterator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>*,_std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>\n                __first,__normal_iterator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>*,_std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>\n                        __last,_Iter_comp_iter<gold::Odr_violation_compare> *__comp)\n\n{\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar1;" primitive_type (ERROR "std::\n     __make_heap<__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char>" identifier : : identifier < identifier : : identifier < identifier : : identifier : : identifier < primitive_type >) (pointer_declarator "*,_std::vector<std::__cxx11::basic_string<char>_>_" * (ERROR ",_std::vector<std::__cxx11::basic_string<char>_>" , identifier : : identifier < identifier : : identifier : : identifier < primitive_type > identifier >) identifier) (ERROR ">" >) , (ERROR "___gnu_cxx::__ops::_Iter_comp_iter<gold::Odr_violation_compare>_>\n               (__normal_iterator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>*,_std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>\n                __first,__normal_iterator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>*,_std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>\n                        __last,_Iter_comp_iter<gold::Odr_violation_compare> *__comp)\n\n{\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9" identifier : : identifier : : identifier < identifier : : identifier > (function_declarator "_>\n               (__normal_iterator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>*,_std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>\n                __first,__normal_iterator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>*,_std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>\n                        __last,_Iter_comp_iter<gold::Odr_violation_compare> *__comp)" identifier (ERROR ">" >) (parameter_list "(__normal_iterator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>*,_std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>\n                __first,__normal_iterator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>*,_std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>\n                        __last,_Iter_comp_iter<gold::Odr_violation_compare> *__comp)" ( (parameter_declaration "__normal_iterator<std::__cxx11::basic_string" type_identifier (ERROR "<std::__cxx11::" < identifier : : identifier : :) identifier) (ERROR "<char" < primitive_type) , (parameter_declaration "_std::char_traits" type_identifier (ERROR "::" : :) identifier) (ERROR "<char>" < primitive_type >) , (parameter_declaration "_std::allocator<char>_>*" type_identifier (ERROR "::allocator<char>_>" : : identifier < primitive_type > identifier >) (abstract_pointer_declarator "*" *)) , (parameter_declaration "_std::vector<std::__cxx11::basic_string" type_identifier (ERROR "::vector<std::__cxx11::" : : identifier < identifier : : identifier : :) identifier) (ERROR "<char" < primitive_type) , (parameter_declaration "_std::char_traits" type_identifier (ERROR "::" : :) identifier) (ERROR "<char>" < primitive_type >) , (parameter_declaration "_std::allocator<char>_" type_identifier (ERROR "::allocator<char>" : : identifier < primitive_type >) identifier) (ERROR ">" >) , (parameter_declaration "_std::allocator<std::__cxx11::basic_string" type_identifier (ERROR "::allocator<std::__cxx11::" : : identifier < identifier : : identifier : :) identifier) (ERROR "<char" < primitive_type) , (parameter_declaration "_std::char_traits" type_identifier (ERROR "::" : :) identifier) (ERROR "<char>" < primitive_type >) , (parameter_declaration "_std::allocator<char>_>_>_>_>\n                __first" type_identifier (ERROR "::allocator<char>_>_>_>_>" : : identifier < primitive_type > identifier > identifier > identifier > identifier >) identifier) , (parameter_declaration "__normal_iterator<std::__cxx11::basic_string" type_identifier (ERROR "<std::__cxx11::" < identifier : : identifier : :) identifier) (ERROR "<char" < primitive_type) , (parameter_declaration "_std::char_traits" type_identifier (ERROR "::" : :) identifier) (ERROR "<char>" < primitive_type >) , (parameter_declaration "_std::allocator<char>_>*" type_identifier (ERROR "::allocator<char>_>" : : identifier < primitive_type > identifier >) (abstract_pointer_declarator "*" *)) , (parameter_declaration "_std::vector<std::__cxx11::basic_string" type_identifier (ERROR "::vector<std::__cxx11::" : : identifier < identifier : : identifier : :) identifier) (ERROR "<char" < primitive_type) , (parameter_declaration "_std::char_traits" type_identifier (ERROR "::" : :) identifier) (ERROR "<char>" < primitive_type >) , (parameter_declaration "_std::allocator<char>_" type_identifier (ERROR "::allocator<char>" : : identifier < primitive_type >) identifier) (ERROR ">" >) , (parameter_declaration "_std::allocator<std::__cxx11::basic_string" type_identifier (ERROR "::allocator<std::__cxx11::" : : identifier < identifier : : identifier : :) identifier) (ERROR "<char" < primitive_type) , (parameter_declaration "_std::char_traits" type_identifier (ERROR "::" : :) identifier) (ERROR "<char>" < primitive_type >) , (parameter_declaration "_std::allocator<char>_>_>_>_>\n                        __last" type_identifier (ERROR "::allocator<char>_>_>_>_>" : : identifier < primitive_type > identifier > identifier > identifier > identifier >) identifier) , (parameter_declaration "_Iter_comp_iter<gold::Odr_violation_compare> *__comp" type_identifier (ERROR "<gold::Odr_violation_compare>" < identifier : : identifier >) (pointer_declarator "*__comp" * identifier)) ))) { identifier < primitive_type , identifier : : identifier < primitive_type > , identifier : : identifier < primitive_type > identifier > identifier) (pointer_declarator "*paVar1" * identifier) ;) (ERROR "anon_union_16_2_edb7204a_for_basic_string<char," (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) ,) (labeled_statement "_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar2;" statement_identifier (ERROR "::char_traits<char>,_std:" : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) :) : (expression_statement "allocator<char>_>_9\n  *paVar2;" (binary_expression "allocator<char>_>_9\n  *paVar2" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n  *paVar2" identifier * identifier)) ;)) (declaration "int iVar3;" primitive_type identifier ;) (ERROR "anon_union_16_2_edb7204a_for_basic_string<char," (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) ,) (labeled_statement "_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar4;" statement_identifier (ERROR "::char_traits<char>,_std:" : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) :) : (expression_statement "allocator<char>_>_9\n  *paVar4;" (binary_expression "allocator<char>_>_9\n  *paVar4" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n  *paVar4" identifier * identifier)) ;)) (declaration "int iVar5;" primitive_type identifier ;) (declaration "size_type *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (declaration "size_type local_54;" type_identifier identifier ;) (declaration "size_type local_50;" type_identifier identifier ;) (declaration "undefined4 local_4c;" type_identifier identifier ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "undefined4 local_44;" type_identifier identifier ;) (declaration "_ValueType __value;" type_identifier identifier ;) (if_statement "if ((int)__last._M_current - (int)__first._M_current < 0x19) {\n    return;\n  }" if (parenthesized_expression "((int)__last._M_current - (int)__first._M_current < 0x19)" ( (binary_expression "(int)__last._M_current - (int)__first._M_current < 0x19" (binary_expression "(int)__last._M_current - (int)__first._M_current" (cast_expression "(int)__last._M_current" ( (type_descriptor "int" primitive_type) ) (field_expression "__last._M_current" identifier . field_identifier)) - (cast_expression "(int)__first._M_current" ( (type_descriptor "int" primitive_type) ) (field_expression "__first._M_current" identifier . field_identifier))) < number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "iVar5 = ((int)__last._M_current - (int)__first._M_current >> 3) * -0x55555555;" (assignment_expression "iVar5 = ((int)__last._M_current - (int)__first._M_current >> 3) * -0x55555555" identifier = (binary_expression "((int)__last._M_current - (int)__first._M_current >> 3) * -0x55555555" (parenthesized_expression "((int)__last._M_current - (int)__first._M_current >> 3)" ( (binary_expression "(int)__last._M_current - (int)__first._M_current >> 3" (binary_expression "(int)__last._M_current - (int)__first._M_current" (cast_expression "(int)__last._M_current" ( (type_descriptor "int" primitive_type) ) (field_expression "__last._M_current" identifier . field_identifier)) - (cast_expression "(int)__first._M_current" ( (type_descriptor "int" primitive_type) ) (field_expression "__first._M_current" identifier . field_identifier))) >> number_literal) )) * number_literal)) ;) (expression_statement "paVar4 = &__value.field_2;" (assignment_expression "paVar4 = &__value.field_2" identifier = (pointer_expression "&__value.field_2" & (field_expression "__value.field_2" identifier . field_identifier))) ;) (expression_statement "iVar3 = (iVar5 + -2) / 2;" (assignment_expression "iVar3 = (iVar5 + -2) / 2" identifier = (binary_expression "(iVar5 + -2) / 2" (parenthesized_expression "(iVar5 + -2)" ( (binary_expression "iVar5 + -2" identifier + number_literal) )) / number_literal)) ;) (expression_statement "paVar1 = &__first._M_current[iVar3].field_2;" (assignment_expression "paVar1 = &__first._M_current[iVar3].field_2" identifier = (pointer_expression "&__first._M_current[iVar3].field_2" & (field_expression "__first._M_current[iVar3].field_2" (subscript_expression "__first._M_current[iVar3]" (field_expression "__first._M_current" identifier . field_identifier) [ identifier ]) . field_identifier))) ;) (expression_statement "local_58 = (size_type *)(&paVar1->_M_allocated_capacity)[-2];" (assignment_expression "local_58 = (size_type *)(&paVar1->_M_allocated_capacity)[-2]" identifier = (cast_expression "(size_type *)(&paVar1->_M_allocated_capacity)[-2]" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "(&paVar1->_M_allocated_capacity)[-2]" (parenthesized_expression "(&paVar1->_M_allocated_capacity)" ( (pointer_expression "&paVar1->_M_allocated_capacity" & (field_expression "paVar1->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ]))) ;) (if_statement "if (paVar1 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)local_58) goto LAB_00244a38;" if (parenthesized_expression "(paVar1 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)local_58)" ( (binary_expression "paVar1 == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)local_58)" identifier == (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)local_58)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n                 *)local_58" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n                 *)local_58" identifier * (ERROR ")" )) identifier)) ))) )) (goto_statement "goto LAB_00244a38;" goto statement_identifier ;)) (do_statement "do {\n    __value.field_2._M_allocated_capacity = *(undefined4 *)paVar1;\n    local_54 = (&paVar1->_M_allocated_capacity)[-1];\n    (&paVar1->_M_allocated_capacity)[-2] = (size_type)paVar1;\n    (&paVar1->_M_allocated_capacity)[-1] = 0;\n    paVar1->_M_local_buf[0] = '\0';\n    paVar2 = paVar1;\n    if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)local_58 == paVar4) goto LAB_00244a78;\n    while( true ) {\n      local_50 = __value.field_2._M_allocated_capacity;\n      __value._M_string_length = 0;\n      __value.field_2._M_allocated_capacity = __value.field_2._M_allocated_capacity & 0xffffff;\n      __value._M_dataplus._M_p = (pointer)paVar4;\n                    /* try { // try from 002449e8 to 002449ef has its CatchHandler @ 00244ae4 */\n      __adjust_heap<__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char>*,_std::vector<std::__cxx11::basic_string<char>_>_>,_int,_std::__cxx11::basic_string<char>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Odr_violation_compare>_>\n                (__first._M_current,iVar3,iVar5,&local_58);\n      if (local_58 != &local_50) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      if (iVar3 == 0) {\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__value._M_dataplus._M_p != paVar4) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n        return;\n      }\n      iVar3 = iVar3 + -1;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)__value._M_dataplus._M_p != paVar4) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      paVar1 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)(&paVar2->_M_allocated_capacity + -6);\n      local_58 = (size_type *)(&paVar2->_M_allocated_capacity)[-8];\n      if (paVar1 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)local_58) break;\nLAB_00244a38:\n      __value.field_2._M_allocated_capacity = paVar1->_M_allocated_capacity;\n      __value.field_2._4_4_ = (&paVar1->_M_allocated_capacity)[1];\n      __value.field_2._8_4_ = (&paVar1->_M_allocated_capacity)[2];\n      __value.field_2._12_4_ = (&paVar1->_M_allocated_capacity)[3];\n      local_54 = (&paVar1->_M_allocated_capacity)[-1];\n      (&paVar1->_M_allocated_capacity)[-1] = 0;\n      paVar1->_M_local_buf[0] = '\0';\nLAB_00244a78:\n      local_4c = __value.field_2._4_4_;\n      local_48 = __value.field_2._8_4_;\n      local_44 = __value.field_2._12_4_;\n      paVar2 = paVar1;\n      local_58 = &local_50;\n    }\n  } while( true );" do (compound_statement "{\n    __value.field_2._M_allocated_capacity = *(undefined4 *)paVar1;\n    local_54 = (&paVar1->_M_allocated_capacity)[-1];\n    (&paVar1->_M_allocated_capacity)[-2] = (size_type)paVar1;\n    (&paVar1->_M_allocated_capacity)[-1] = 0;\n    paVar1->_M_local_buf[0] = '\0';\n    paVar2 = paVar1;\n    if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)local_58 == paVar4) goto LAB_00244a78;\n    while( true ) {\n      local_50 = __value.field_2._M_allocated_capacity;\n      __value._M_string_length = 0;\n      __value.field_2._M_allocated_capacity = __value.field_2._M_allocated_capacity & 0xffffff;\n      __value._M_dataplus._M_p = (pointer)paVar4;\n                    /* try { // try from 002449e8 to 002449ef has its CatchHandler @ 00244ae4 */\n      __adjust_heap<__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char>*,_std::vector<std::__cxx11::basic_string<char>_>_>,_int,_std::__cxx11::basic_string<char>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Odr_violation_compare>_>\n                (__first._M_current,iVar3,iVar5,&local_58);\n      if (local_58 != &local_50) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      if (iVar3 == 0) {\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__value._M_dataplus._M_p != paVar4) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n        return;\n      }\n      iVar3 = iVar3 + -1;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)__value._M_dataplus._M_p != paVar4) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      paVar1 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)(&paVar2->_M_allocated_capacity + -6);\n      local_58 = (size_type *)(&paVar2->_M_allocated_capacity)[-8];\n      if (paVar1 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)local_58) break;\nLAB_00244a38:\n      __value.field_2._M_allocated_capacity = paVar1->_M_allocated_capacity;\n      __value.field_2._4_4_ = (&paVar1->_M_allocated_capacity)[1];\n      __value.field_2._8_4_ = (&paVar1->_M_allocated_capacity)[2];\n      __value.field_2._12_4_ = (&paVar1->_M_allocated_capacity)[3];\n      local_54 = (&paVar1->_M_allocated_capacity)[-1];\n      (&paVar1->_M_allocated_capacity)[-1] = 0;\n      paVar1->_M_local_buf[0] = '\0';\nLAB_00244a78:\n      local_4c = __value.field_2._4_4_;\n      local_48 = __value.field_2._8_4_;\n      local_44 = __value.field_2._12_4_;\n      paVar2 = paVar1;\n      local_58 = &local_50;\n    }\n  }" { (expression_statement "__value.field_2._M_allocated_capacity = *(undefined4 *)paVar1;" (assignment_expression "__value.field_2._M_allocated_capacity = *(undefined4 *)paVar1" (field_expression "__value.field_2._M_allocated_capacity" (field_expression "__value.field_2" identifier . field_identifier) . field_identifier) = (pointer_expression "*(undefined4 *)paVar1" * (cast_expression "(undefined4 *)paVar1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "local_54 = (&paVar1->_M_allocated_capacity)[-1];" (assignment_expression "local_54 = (&paVar1->_M_allocated_capacity)[-1]" identifier = (subscript_expression "(&paVar1->_M_allocated_capacity)[-1]" (parenthesized_expression "(&paVar1->_M_allocated_capacity)" ( (pointer_expression "&paVar1->_M_allocated_capacity" & (field_expression "paVar1->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ])) ;) (expression_statement "(&paVar1->_M_allocated_capacity)[-2] = (size_type)paVar1;" (assignment_expression "(&paVar1->_M_allocated_capacity)[-2] = (size_type)paVar1" (subscript_expression "(&paVar1->_M_allocated_capacity)[-2]" (parenthesized_expression "(&paVar1->_M_allocated_capacity)" ( (pointer_expression "&paVar1->_M_allocated_capacity" & (field_expression "paVar1->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ]) = (cast_expression "(size_type)paVar1" ( (type_descriptor "size_type" type_identifier) ) identifier)) ;) (expression_statement "(&paVar1->_M_allocated_capacity)[-1] = 0;" (assignment_expression "(&paVar1->_M_allocated_capacity)[-1] = 0" (subscript_expression "(&paVar1->_M_allocated_capacity)[-1]" (parenthesized_expression "(&paVar1->_M_allocated_capacity)" ( (pointer_expression "&paVar1->_M_allocated_capacity" & (field_expression "paVar1->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ]) = number_literal) ;) (expression_statement "paVar1->_M_local_buf[0] = '\0';" (assignment_expression "paVar1->_M_local_buf[0] = '\0'" (subscript_expression "paVar1->_M_local_buf[0]" (field_expression "paVar1->_M_local_buf" identifier -> field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "paVar2 = paVar1;" (assignment_expression "paVar2 = paVar1" identifier = identifier) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)local_58 == paVar4) goto LAB_00244a78;" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)local_58 == paVar4)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)local_58 == paVar4)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n         *)local_58 == paVar4" (binary_expression "allocator<char>_>_9\n         *)local_58" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n         *)local_58" identifier * (ERROR ")" )) identifier)) == identifier) )) )) (goto_statement "goto LAB_00244a78;" goto statement_identifier ;)) (while_statement "while( true ) {\n      local_50 = __value.field_2._M_allocated_capacity;\n      __value._M_string_length = 0;\n      __value.field_2._M_allocated_capacity = __value.field_2._M_allocated_capacity & 0xffffff;\n      __value._M_dataplus._M_p = (pointer)paVar4;\n                    /* try { // try from 002449e8 to 002449ef has its CatchHandler @ 00244ae4 */\n      __adjust_heap<__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char>*,_std::vector<std::__cxx11::basic_string<char>_>_>,_int,_std::__cxx11::basic_string<char>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Odr_violation_compare>_>\n                (__first._M_current,iVar3,iVar5,&local_58);\n      if (local_58 != &local_50) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      if (iVar3 == 0) {\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__value._M_dataplus._M_p != paVar4) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n        return;\n      }\n      iVar3 = iVar3 + -1;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)__value._M_dataplus._M_p != paVar4) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      paVar1 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)(&paVar2->_M_allocated_capacity + -6);\n      local_58 = (size_type *)(&paVar2->_M_allocated_capacity)[-8];\n      if (paVar1 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)local_58) break;\nLAB_00244a38:\n      __value.field_2._M_allocated_capacity = paVar1->_M_allocated_capacity;\n      __value.field_2._4_4_ = (&paVar1->_M_allocated_capacity)[1];\n      __value.field_2._8_4_ = (&paVar1->_M_allocated_capacity)[2];\n      __value.field_2._12_4_ = (&paVar1->_M_allocated_capacity)[3];\n      local_54 = (&paVar1->_M_allocated_capacity)[-1];\n      (&paVar1->_M_allocated_capacity)[-1] = 0;\n      paVar1->_M_local_buf[0] = '\0';\nLAB_00244a78:\n      local_4c = __value.field_2._4_4_;\n      local_48 = __value.field_2._8_4_;\n      local_44 = __value.field_2._12_4_;\n      paVar2 = paVar1;\n      local_58 = &local_50;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      local_50 = __value.field_2._M_allocated_capacity;\n      __value._M_string_length = 0;\n      __value.field_2._M_allocated_capacity = __value.field_2._M_allocated_capacity & 0xffffff;\n      __value._M_dataplus._M_p = (pointer)paVar4;\n                    /* try { // try from 002449e8 to 002449ef has its CatchHandler @ 00244ae4 */\n      __adjust_heap<__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char>*,_std::vector<std::__cxx11::basic_string<char>_>_>,_int,_std::__cxx11::basic_string<char>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Odr_violation_compare>_>\n                (__first._M_current,iVar3,iVar5,&local_58);\n      if (local_58 != &local_50) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      if (iVar3 == 0) {\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__value._M_dataplus._M_p != paVar4) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n        return;\n      }\n      iVar3 = iVar3 + -1;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)__value._M_dataplus._M_p != paVar4) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      paVar1 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)(&paVar2->_M_allocated_capacity + -6);\n      local_58 = (size_type *)(&paVar2->_M_allocated_capacity)[-8];\n      if (paVar1 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)local_58) break;\nLAB_00244a38:\n      __value.field_2._M_allocated_capacity = paVar1->_M_allocated_capacity;\n      __value.field_2._4_4_ = (&paVar1->_M_allocated_capacity)[1];\n      __value.field_2._8_4_ = (&paVar1->_M_allocated_capacity)[2];\n      __value.field_2._12_4_ = (&paVar1->_M_allocated_capacity)[3];\n      local_54 = (&paVar1->_M_allocated_capacity)[-1];\n      (&paVar1->_M_allocated_capacity)[-1] = 0;\n      paVar1->_M_local_buf[0] = '\0';\nLAB_00244a78:\n      local_4c = __value.field_2._4_4_;\n      local_48 = __value.field_2._8_4_;\n      local_44 = __value.field_2._12_4_;\n      paVar2 = paVar1;\n      local_58 = &local_50;\n    }" { (expression_statement "local_50 = __value.field_2._M_allocated_capacity;" (assignment_expression "local_50 = __value.field_2._M_allocated_capacity" identifier = (field_expression "__value.field_2._M_allocated_capacity" (field_expression "__value.field_2" identifier . field_identifier) . field_identifier)) ;) (expression_statement "__value._M_string_length = 0;" (assignment_expression "__value._M_string_length = 0" (field_expression "__value._M_string_length" identifier . field_identifier) = number_literal) ;) (expression_statement "__value.field_2._M_allocated_capacity = __value.field_2._M_allocated_capacity & 0xffffff;" (assignment_expression "__value.field_2._M_allocated_capacity = __value.field_2._M_allocated_capacity & 0xffffff" (field_expression "__value.field_2._M_allocated_capacity" (field_expression "__value.field_2" identifier . field_identifier) . field_identifier) = (binary_expression "__value.field_2._M_allocated_capacity & 0xffffff" (field_expression "__value.field_2._M_allocated_capacity" (field_expression "__value.field_2" identifier . field_identifier) . field_identifier) & number_literal)) ;) (expression_statement "__value._M_dataplus._M_p = (pointer)paVar4;" (assignment_expression "__value._M_dataplus._M_p = (pointer)paVar4" (field_expression "__value._M_dataplus._M_p" (field_expression "__value._M_dataplus" identifier . field_identifier) . field_identifier) = (cast_expression "(pointer)paVar4" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) comment (ERROR "__adjust_heap<__gnu_cxx::__normal_iterator<std::" (binary_expression "__adjust_heap<__gnu_cxx::__normal_iterator<std" (binary_expression "__adjust_heap<__gnu_cxx" identifier < identifier) (ERROR "::__normal_iterator" : : identifier) < identifier) : :) (labeled_statement "__cxx11::basic_string<char>*,_std::vector<std::__cxx11::basic_string<char>_>_>,_int,_std::__cxx11::basic_string<char>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Odr_violation_compare>_>\n                (__first._M_current,iVar3,iVar5,&local_58);" statement_identifier (ERROR "::basic_string<char>*,_std::vector<std::__cxx11::basic_string<char>_>_>,_int,_std::__cxx11::basic_string<char>,___gnu_cxx:" : : (binary_expression "basic_string<char>*,_std" (binary_expression "basic_string<char" identifier < identifier) > (pointer_expression "*,_std" * (ERROR "," ,) identifier)) : : (binary_expression "vector<std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char>_>_>,_int,_std" identifier (ERROR "::basic_string<char>_>_>" : : (binary_expression "basic_string<char>_>_" (binary_expression "basic_string<char>_" (binary_expression "basic_string<char" identifier < identifier) > identifier) > identifier) >) , (comma_expression "_int,_std" identifier , identifier)) : : (comma_expression "__cxx11::basic_string<char>,___gnu_cxx" identifier (ERROR "::basic_string<char>" : : (binary_expression "basic_string<char" identifier < identifier) >) , identifier) :) : (labeled_statement "__ops::_Iter_comp_iter<gold::Odr_violation_compare>_>\n                (__first._M_current,iVar3,iVar5,&local_58);" statement_identifier (ERROR "::_Iter_comp_iter<gold:" : : (binary_expression "_Iter_comp_iter<gold" identifier < identifier) :) : (expression_statement "Odr_violation_compare>_>\n                (__first._M_current,iVar3,iVar5,&local_58);" (binary_expression "Odr_violation_compare>_>\n                (__first._M_current,iVar3,iVar5,&local_58)" (binary_expression "Odr_violation_compare>_" identifier > identifier) > (parenthesized_expression "(__first._M_current,iVar3,iVar5,&local_58)" ( (comma_expression "__first._M_current,iVar3,iVar5,&local_58" (field_expression "__first._M_current" identifier . field_identifier) , (comma_expression "iVar3,iVar5,&local_58" identifier , (comma_expression "iVar5,&local_58" identifier , (pointer_expression "&local_58" & identifier)))) ))) ;))) (if_statement "if (local_58 != &local_50) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }" if (parenthesized_expression "(local_58 != &local_50)" ( (binary_expression "local_58 != &local_50" identifier != (pointer_expression "&local_50" & identifier)) )) (compound_statement "{\n        (*(code *)PTR_operator_delete_0043228c)();\n      }" { (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" ( (pointer_expression "*(code *)PTR_operator_delete_0043228c" * (cast_expression "(code *)PTR_operator_delete_0043228c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (if_statement "if (iVar3 == 0) {\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__value._M_dataplus._M_p != paVar4) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n        return;\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__value._M_dataplus._M_p != paVar4) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n        return;\n      }" { (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__value._M_dataplus._M_p != paVar4) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__value._M_dataplus._M_p != paVar4)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__value._M_dataplus._M_p != paVar4)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n             *)__value._M_dataplus._M_p != paVar4" (binary_expression "allocator<char>_>_9\n             *)__value._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n             *)__value._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "__value._M_dataplus._M_p" (field_expression "__value._M_dataplus" identifier . field_identifier) . field_identifier))) != identifier) )) )) (compound_statement "{\n          (*(code *)PTR_operator_delete_0043228c)();\n        }" { (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" ( (pointer_expression "*(code *)PTR_operator_delete_0043228c" * (cast_expression "(code *)PTR_operator_delete_0043228c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (return_statement "return;" return ;) })) (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)__value._M_dataplus._M_p != paVar4) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)__value._M_dataplus._M_p != paVar4)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)__value._M_dataplus._M_p != paVar4)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n           *)__value._M_dataplus._M_p != paVar4" (binary_expression "allocator<char>_>_9\n           *)__value._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n           *)__value._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "__value._M_dataplus._M_p" (field_expression "__value._M_dataplus" identifier . field_identifier) . field_identifier))) != identifier) )) )) (compound_statement "{\n        (*(code *)PTR_operator_delete_0043228c)();\n      }" { (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" ( (pointer_expression "*(code *)PTR_operator_delete_0043228c" * (cast_expression "(code *)PTR_operator_delete_0043228c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "paVar1 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)(&paVar2->_M_allocated_capacity + -6);" (assignment_expression "paVar1 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)(&paVar2->_M_allocated_capacity + -6)" identifier = (call_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)(&paVar2->_M_allocated_capacity + -6)" (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) (ERROR "*" *) )) (argument_list "(&paVar2->_M_allocated_capacity + -6)" ( (binary_expression "&paVar2->_M_allocated_capacity + -6" (pointer_expression "&paVar2->_M_allocated_capacity" & (field_expression "paVar2->_M_allocated_capacity" identifier -> field_identifier)) + number_literal) )))) ;) (expression_statement "local_58 = (size_type *)(&paVar2->_M_allocated_capacity)[-8];" (assignment_expression "local_58 = (size_type *)(&paVar2->_M_allocated_capacity)[-8]" identifier = (cast_expression "(size_type *)(&paVar2->_M_allocated_capacity)[-8]" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "(&paVar2->_M_allocated_capacity)[-8]" (parenthesized_expression "(&paVar2->_M_allocated_capacity)" ( (pointer_expression "&paVar2->_M_allocated_capacity" & (field_expression "paVar2->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ]))) ;) (if_statement "if (paVar1 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)local_58) break;" if (parenthesized_expression "(paVar1 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)local_58)" ( (binary_expression "paVar1 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)local_58)" identifier != (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)local_58)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n                     *)local_58" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n                     *)local_58" identifier * (ERROR ")" )) identifier)) ))) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00244a38:\n      __value.field_2._M_allocated_capacity = paVar1->_M_allocated_capacity;" statement_identifier : (expression_statement "__value.field_2._M_allocated_capacity = paVar1->_M_allocated_capacity;" (assignment_expression "__value.field_2._M_allocated_capacity = paVar1->_M_allocated_capacity" (field_expression "__value.field_2._M_allocated_capacity" (field_expression "__value.field_2" identifier . field_identifier) . field_identifier) = (field_expression "paVar1->_M_allocated_capacity" identifier -> field_identifier)) ;)) (expression_statement "__value.field_2._4_4_ = (&paVar1->_M_allocated_capacity)[1];" (assignment_expression "__value.field_2._4_4_ = (&paVar1->_M_allocated_capacity)[1]" (field_expression "__value.field_2._4_4_" (field_expression "__value.field_2" identifier . field_identifier) . field_identifier) = (subscript_expression "(&paVar1->_M_allocated_capacity)[1]" (parenthesized_expression "(&paVar1->_M_allocated_capacity)" ( (pointer_expression "&paVar1->_M_allocated_capacity" & (field_expression "paVar1->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ])) ;) (expression_statement "__value.field_2._8_4_ = (&paVar1->_M_allocated_capacity)[2];" (assignment_expression "__value.field_2._8_4_ = (&paVar1->_M_allocated_capacity)[2]" (field_expression "__value.field_2._8_4_" (field_expression "__value.field_2" identifier . field_identifier) . field_identifier) = (subscript_expression "(&paVar1->_M_allocated_capacity)[2]" (parenthesized_expression "(&paVar1->_M_allocated_capacity)" ( (pointer_expression "&paVar1->_M_allocated_capacity" & (field_expression "paVar1->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ])) ;) (expression_statement "__value.field_2._12_4_ = (&paVar1->_M_allocated_capacity)[3];" (assignment_expression "__value.field_2._12_4_ = (&paVar1->_M_allocated_capacity)[3]" (field_expression "__value.field_2._12_4_" (field_expression "__value.field_2" identifier . field_identifier) . field_identifier) = (subscript_expression "(&paVar1->_M_allocated_capacity)[3]" (parenthesized_expression "(&paVar1->_M_allocated_capacity)" ( (pointer_expression "&paVar1->_M_allocated_capacity" & (field_expression "paVar1->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ])) ;) (expression_statement "local_54 = (&paVar1->_M_allocated_capacity)[-1];" (assignment_expression "local_54 = (&paVar1->_M_allocated_capacity)[-1]" identifier = (subscript_expression "(&paVar1->_M_allocated_capacity)[-1]" (parenthesized_expression "(&paVar1->_M_allocated_capacity)" ( (pointer_expression "&paVar1->_M_allocated_capacity" & (field_expression "paVar1->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ])) ;) (expression_statement "(&paVar1->_M_allocated_capacity)[-1] = 0;" (assignment_expression "(&paVar1->_M_allocated_capacity)[-1] = 0" (subscript_expression "(&paVar1->_M_allocated_capacity)[-1]" (parenthesized_expression "(&paVar1->_M_allocated_capacity)" ( (pointer_expression "&paVar1->_M_allocated_capacity" & (field_expression "paVar1->_M_allocated_capacity" identifier -> field_identifier)) )) [ number_literal ]) = number_literal) ;) (expression_statement "paVar1->_M_local_buf[0] = '\0';" (assignment_expression "paVar1->_M_local_buf[0] = '\0'" (subscript_expression "paVar1->_M_local_buf[0]" (field_expression "paVar1->_M_local_buf" identifier -> field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (labeled_statement "LAB_00244a78:\n      local_4c = __value.field_2._4_4_;" statement_identifier : (expression_statement "local_4c = __value.field_2._4_4_;" (assignment_expression "local_4c = __value.field_2._4_4_" identifier = (field_expression "__value.field_2._4_4_" (field_expression "__value.field_2" identifier . field_identifier) . field_identifier)) ;)) (expression_statement "local_48 = __value.field_2._8_4_;" (assignment_expression "local_48 = __value.field_2._8_4_" identifier = (field_expression "__value.field_2._8_4_" (field_expression "__value.field_2" identifier . field_identifier) . field_identifier)) ;) (expression_statement "local_44 = __value.field_2._12_4_;" (assignment_expression "local_44 = __value.field_2._12_4_" identifier = (field_expression "__value.field_2._12_4_" (field_expression "__value.field_2" identifier . field_identifier) . field_identifier)) ;) (expression_statement "paVar2 = paVar1;" (assignment_expression "paVar2 = paVar1" identifier = identifier) ;) (expression_statement "local_58 = &local_50;" (assignment_expression "local_58 = &local_50" identifier = (pointer_expression "&local_50" & identifier)) ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) (ERROR "}" }))
(translation_unit "void std::\n     __make_heap<__normal_iterator<std::string*,std::vector<std::string,std::allocator<std::string>>>,__ops::_Iter_comp_iter<gold::Odr_violation_compare>>\n               (int param_1,int param_2)\n\n{\n  uint *puVar1;\n  uint *puVar2;\n  int iVar3;\n  int iVar4;\n  uint *local_58;\n  uint local_54;\n  uint local_50;\n  uint local_4c;\n  uint local_48;\n  uint local_44;\n  uint *local_40;\n  undefined4 local_3c;\n  uint local_38;\n  uint local_34;\n  uint local_30;\n  uint local_2c;\n  \n  if (param_2 - param_1 < 0x19) {\n    return;\n  }\n  iVar4 = (param_2 - param_1 >> 3) * -0x55555555;\n  iVar3 = (iVar4 + -2) / 2;\n  puVar1 = (uint *)(param_1 + iVar3 * 0x18 + 8);\n  local_58 = (uint *)puVar1[-2];\n  if (puVar1 == local_58) goto LAB_00244a38;\n  do {\n    local_38 = *puVar1;\n    local_54 = puVar1[-1];\n    puVar1[-2] = (uint)puVar1;\n    puVar1[-1] = 0;\n    *(undefined1 *)puVar1 = 0;\n    puVar2 = puVar1;\n    if (local_58 == &local_38) goto LAB_00244a78;\n    while( true ) {\n      local_50 = local_38;\n      local_3c = 0;\n      local_38 = local_38 & 0xffffff;\n      local_40 = &local_38;\n                    \n      __adjust_heap<__normal_iterator<std::string*,std::vector<std::string,std::allocator<std::string>>>,int,std::string,__ops::_Iter_comp_iter<gold::Odr_violation_compare>>\n                (param_1,iVar3,iVar4,&local_58);\n      if (local_58 != &local_50) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      if (iVar3 == 0) {\n        if (local_40 != &local_38) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n        return;\n      }\n      iVar3 = iVar3 + -1;\n      if (local_40 != &local_38) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      puVar1 = puVar2 + -6;\n      local_58 = (uint *)puVar2[-8];\n      if (puVar1 != local_58) break;\nLAB_00244a38:\n      local_38 = *puVar1;\n      local_34 = puVar1[1];\n      local_30 = puVar1[2];\n      local_2c = puVar1[3];\n      local_54 = puVar1[-1];\n      puVar1[-1] = 0;\n      *(undefined1 *)puVar1 = 0;\nLAB_00244a78:\n      local_4c = local_34;\n      local_48 = local_30;\n      local_44 = local_2c;\n      puVar2 = puVar1;\n      local_58 = &local_50;\n    }\n  } while( true );\n}\n\n" (declaration "void std::\n     __make_heap<__normal_iterator<std::string*,std::vector<std::string,std::allocator<std::string>>>,__ops::_Iter_comp_iter<gold::Odr_violation_compare>>\n               (int param_1,int param_2)\n\n{\n  uint *puVar1;" primitive_type (ERROR "std::\n     __make_heap<__normal_iterator<std::" identifier : : identifier < identifier < identifier : :) identifier (ERROR "*" *) , (ERROR "std::vector<std::" identifier : : identifier < identifier : :) identifier , (ERROR "std::allocator<std::" identifier : : identifier < identifier : :) identifier (ERROR ">>>" >> >) , (ERROR "__ops::_Iter_comp_iter<gold::Odr_violation_compare>>\n               (int param_1,int param_2)\n\n{\n  uint" identifier : : identifier < identifier : : (function_declarator "Odr_violation_compare>>\n               (int param_1,int param_2)" identifier (ERROR ">>" >>) (parameter_list "(int param_1,int param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) { identifier) (pointer_declarator "*puVar1" * identifier) ;) (declaration "uint *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (declaration "uint local_54;" type_identifier identifier ;) (declaration "uint local_50;" type_identifier identifier ;) (declaration "uint local_4c;" type_identifier identifier ;) (declaration "uint local_48;" type_identifier identifier ;) (declaration "uint local_44;" type_identifier identifier ;) (declaration "uint *local_40;" type_identifier (pointer_declarator "*local_40" * identifier) ;) (declaration "undefined4 local_3c;" type_identifier identifier ;) (declaration "uint local_38;" type_identifier identifier ;) (declaration "uint local_34;" type_identifier identifier ;) (declaration "uint local_30;" type_identifier identifier ;) (declaration "uint local_2c;" type_identifier identifier ;) (if_statement "if (param_2 - param_1 < 0x19) {\n    return;\n  }" if (parenthesized_expression "(param_2 - param_1 < 0x19)" ( (binary_expression "param_2 - param_1 < 0x19" (binary_expression "param_2 - param_1" identifier - identifier) < number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "iVar4 = (param_2 - param_1 >> 3) * -0x55555555;" (assignment_expression "iVar4 = (param_2 - param_1 >> 3) * -0x55555555" identifier = (binary_expression "(param_2 - param_1 >> 3) * -0x55555555" (parenthesized_expression "(param_2 - param_1 >> 3)" ( (binary_expression "param_2 - param_1 >> 3" (binary_expression "param_2 - param_1" identifier - identifier) >> number_literal) )) * number_literal)) ;) (expression_statement "iVar3 = (iVar4 + -2) / 2;" (assignment_expression "iVar3 = (iVar4 + -2) / 2" identifier = (binary_expression "(iVar4 + -2) / 2" (parenthesized_expression "(iVar4 + -2)" ( (binary_expression "iVar4 + -2" identifier + number_literal) )) / number_literal)) ;) (expression_statement "puVar1 = (uint *)(param_1 + iVar3 * 0x18 + 8);" (assignment_expression "puVar1 = (uint *)(param_1 + iVar3 * 0x18 + 8)" identifier = (cast_expression "(uint *)(param_1 + iVar3 * 0x18 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + iVar3 * 0x18 + 8)" ( (binary_expression "param_1 + iVar3 * 0x18 + 8" (binary_expression "param_1 + iVar3 * 0x18" identifier + (binary_expression "iVar3 * 0x18" identifier * number_literal)) + number_literal) )))) ;) (expression_statement "local_58 = (uint *)puVar1[-2];" (assignment_expression "local_58 = (uint *)puVar1[-2]" identifier = (cast_expression "(uint *)puVar1[-2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar1[-2]" identifier [ number_literal ]))) ;) (if_statement "if (puVar1 == local_58) goto LAB_00244a38;" if (parenthesized_expression "(puVar1 == local_58)" ( (binary_expression "puVar1 == local_58" identifier == identifier) )) (goto_statement "goto LAB_00244a38;" goto statement_identifier ;)) (do_statement "do {\n    local_38 = *puVar1;\n    local_54 = puVar1[-1];\n    puVar1[-2] = (uint)puVar1;\n    puVar1[-1] = 0;\n    *(undefined1 *)puVar1 = 0;\n    puVar2 = puVar1;\n    if (local_58 == &local_38) goto LAB_00244a78;\n    while( true ) {\n      local_50 = local_38;\n      local_3c = 0;\n      local_38 = local_38 & 0xffffff;\n      local_40 = &local_38;\n                    \n      __adjust_heap<__normal_iterator<std::string*,std::vector<std::string,std::allocator<std::string>>>,int,std::string,__ops::_Iter_comp_iter<gold::Odr_violation_compare>>\n                (param_1,iVar3,iVar4,&local_58);\n      if (local_58 != &local_50) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      if (iVar3 == 0) {\n        if (local_40 != &local_38) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n        return;\n      }\n      iVar3 = iVar3 + -1;\n      if (local_40 != &local_38) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      puVar1 = puVar2 + -6;\n      local_58 = (uint *)puVar2[-8];\n      if (puVar1 != local_58) break;\nLAB_00244a38:\n      local_38 = *puVar1;\n      local_34 = puVar1[1];\n      local_30 = puVar1[2];\n      local_2c = puVar1[3];\n      local_54 = puVar1[-1];\n      puVar1[-1] = 0;\n      *(undefined1 *)puVar1 = 0;\nLAB_00244a78:\n      local_4c = local_34;\n      local_48 = local_30;\n      local_44 = local_2c;\n      puVar2 = puVar1;\n      local_58 = &local_50;\n    }\n  } while( true );" do (compound_statement "{\n    local_38 = *puVar1;\n    local_54 = puVar1[-1];\n    puVar1[-2] = (uint)puVar1;\n    puVar1[-1] = 0;\n    *(undefined1 *)puVar1 = 0;\n    puVar2 = puVar1;\n    if (local_58 == &local_38) goto LAB_00244a78;\n    while( true ) {\n      local_50 = local_38;\n      local_3c = 0;\n      local_38 = local_38 & 0xffffff;\n      local_40 = &local_38;\n                    \n      __adjust_heap<__normal_iterator<std::string*,std::vector<std::string,std::allocator<std::string>>>,int,std::string,__ops::_Iter_comp_iter<gold::Odr_violation_compare>>\n                (param_1,iVar3,iVar4,&local_58);\n      if (local_58 != &local_50) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      if (iVar3 == 0) {\n        if (local_40 != &local_38) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n        return;\n      }\n      iVar3 = iVar3 + -1;\n      if (local_40 != &local_38) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      puVar1 = puVar2 + -6;\n      local_58 = (uint *)puVar2[-8];\n      if (puVar1 != local_58) break;\nLAB_00244a38:\n      local_38 = *puVar1;\n      local_34 = puVar1[1];\n      local_30 = puVar1[2];\n      local_2c = puVar1[3];\n      local_54 = puVar1[-1];\n      puVar1[-1] = 0;\n      *(undefined1 *)puVar1 = 0;\nLAB_00244a78:\n      local_4c = local_34;\n      local_48 = local_30;\n      local_44 = local_2c;\n      puVar2 = puVar1;\n      local_58 = &local_50;\n    }\n  }" { (expression_statement "local_38 = *puVar1;" (assignment_expression "local_38 = *puVar1" identifier = (pointer_expression "*puVar1" * identifier)) ;) (expression_statement "local_54 = puVar1[-1];" (assignment_expression "local_54 = puVar1[-1]" identifier = (subscript_expression "puVar1[-1]" identifier [ number_literal ])) ;) (expression_statement "puVar1[-2] = (uint)puVar1;" (assignment_expression "puVar1[-2] = (uint)puVar1" (subscript_expression "puVar1[-2]" identifier [ number_literal ]) = (cast_expression "(uint)puVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar1[-1] = 0;" (assignment_expression "puVar1[-1] = 0" (subscript_expression "puVar1[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)puVar1 = 0;" (assignment_expression "*(undefined1 *)puVar1 = 0" (pointer_expression "*(undefined1 *)puVar1" * (cast_expression "(undefined1 *)puVar1" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "puVar2 = puVar1;" (assignment_expression "puVar2 = puVar1" identifier = identifier) ;) (if_statement "if (local_58 == &local_38) goto LAB_00244a78;" if (parenthesized_expression "(local_58 == &local_38)" ( (binary_expression "local_58 == &local_38" identifier == (pointer_expression "&local_38" & identifier)) )) (goto_statement "goto LAB_00244a78;" goto statement_identifier ;)) (while_statement "while( true ) {\n      local_50 = local_38;\n      local_3c = 0;\n      local_38 = local_38 & 0xffffff;\n      local_40 = &local_38;\n                    \n      __adjust_heap<__normal_iterator<std::string*,std::vector<std::string,std::allocator<std::string>>>,int,std::string,__ops::_Iter_comp_iter<gold::Odr_violation_compare>>\n                (param_1,iVar3,iVar4,&local_58);\n      if (local_58 != &local_50) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      if (iVar3 == 0) {\n        if (local_40 != &local_38) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n        return;\n      }\n      iVar3 = iVar3 + -1;\n      if (local_40 != &local_38) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      puVar1 = puVar2 + -6;\n      local_58 = (uint *)puVar2[-8];\n      if (puVar1 != local_58) break;\nLAB_00244a38:\n      local_38 = *puVar1;\n      local_34 = puVar1[1];\n      local_30 = puVar1[2];\n      local_2c = puVar1[3];\n      local_54 = puVar1[-1];\n      puVar1[-1] = 0;\n      *(undefined1 *)puVar1 = 0;\nLAB_00244a78:\n      local_4c = local_34;\n      local_48 = local_30;\n      local_44 = local_2c;\n      puVar2 = puVar1;\n      local_58 = &local_50;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      local_50 = local_38;\n      local_3c = 0;\n      local_38 = local_38 & 0xffffff;\n      local_40 = &local_38;\n                    \n      __adjust_heap<__normal_iterator<std::string*,std::vector<std::string,std::allocator<std::string>>>,int,std::string,__ops::_Iter_comp_iter<gold::Odr_violation_compare>>\n                (param_1,iVar3,iVar4,&local_58);\n      if (local_58 != &local_50) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      if (iVar3 == 0) {\n        if (local_40 != &local_38) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n        return;\n      }\n      iVar3 = iVar3 + -1;\n      if (local_40 != &local_38) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      puVar1 = puVar2 + -6;\n      local_58 = (uint *)puVar2[-8];\n      if (puVar1 != local_58) break;\nLAB_00244a38:\n      local_38 = *puVar1;\n      local_34 = puVar1[1];\n      local_30 = puVar1[2];\n      local_2c = puVar1[3];\n      local_54 = puVar1[-1];\n      puVar1[-1] = 0;\n      *(undefined1 *)puVar1 = 0;\nLAB_00244a78:\n      local_4c = local_34;\n      local_48 = local_30;\n      local_44 = local_2c;\n      puVar2 = puVar1;\n      local_58 = &local_50;\n    }" { (expression_statement "local_50 = local_38;" (assignment_expression "local_50 = local_38" identifier = identifier) ;) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" identifier = number_literal) ;) (expression_statement "local_38 = local_38 & 0xffffff;" (assignment_expression "local_38 = local_38 & 0xffffff" identifier = (binary_expression "local_38 & 0xffffff" identifier & number_literal)) ;) (expression_statement "local_40 = &local_38;" (assignment_expression "local_40 = &local_38" identifier = (pointer_expression "&local_38" & identifier)) ;) (ERROR "__adjust_heap<__normal_iterator<std::string*,std::vector<std::string,std::allocator<std::string>>>,int,std::string,__ops::_Iter_comp_iter<gold::" (comma_expression "__adjust_heap<__normal_iterator<std::string*,std::vector<std::string,std" (binary_expression "__adjust_heap<__normal_iterator<std::string*,std::vector<std" (binary_expression "__adjust_heap<__normal_iterator<std::string*,std" (binary_expression "__adjust_heap<__normal_iterator<std" (binary_expression "__adjust_heap<__normal_iterator" identifier < identifier) < identifier) (ERROR "::string" : : identifier) * (ERROR "," ,) identifier) (ERROR "::vector" : : identifier) < identifier) (ERROR "::string" : : identifier) , identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "string>>>,int,std" identifier (ERROR ">>>" >> >) , (comma_expression "int,std" identifier , identifier)) : : (comma_expression "string,__ops" identifier , identifier) : : (binary_expression "_Iter_comp_iter<gold" identifier < identifier) : :) (expression_statement "Odr_violation_compare>>\n                (param_1,iVar3,iVar4,&local_58);" (binary_expression "Odr_violation_compare>>\n                (param_1,iVar3,iVar4,&local_58)" identifier >> (parenthesized_expression "(param_1,iVar3,iVar4,&local_58)" ( (comma_expression "param_1,iVar3,iVar4,&local_58" identifier , (comma_expression "iVar3,iVar4,&local_58" identifier , (comma_expression "iVar4,&local_58" identifier , (pointer_expression "&local_58" & identifier)))) ))) ;) (if_statement "if (local_58 != &local_50) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }" if (parenthesized_expression "(local_58 != &local_50)" ( (binary_expression "local_58 != &local_50" identifier != (pointer_expression "&local_50" & identifier)) )) (compound_statement "{\n        (*(code *)PTR_operator_delete_0043228c)();\n      }" { (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" ( (pointer_expression "*(code *)PTR_operator_delete_0043228c" * (cast_expression "(code *)PTR_operator_delete_0043228c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (if_statement "if (iVar3 == 0) {\n        if (local_40 != &local_38) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n        return;\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        if (local_40 != &local_38) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n        return;\n      }" { (if_statement "if (local_40 != &local_38) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }" if (parenthesized_expression "(local_40 != &local_38)" ( (binary_expression "local_40 != &local_38" identifier != (pointer_expression "&local_38" & identifier)) )) (compound_statement "{\n          (*(code *)PTR_operator_delete_0043228c)();\n        }" { (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" ( (pointer_expression "*(code *)PTR_operator_delete_0043228c" * (cast_expression "(code *)PTR_operator_delete_0043228c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (return_statement "return;" return ;) })) (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ;) (if_statement "if (local_40 != &local_38) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }" if (parenthesized_expression "(local_40 != &local_38)" ( (binary_expression "local_40 != &local_38" identifier != (pointer_expression "&local_38" & identifier)) )) (compound_statement "{\n        (*(code *)PTR_operator_delete_0043228c)();\n      }" { (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" ( (pointer_expression "*(code *)PTR_operator_delete_0043228c" * (cast_expression "(code *)PTR_operator_delete_0043228c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "puVar1 = puVar2 + -6;" (assignment_expression "puVar1 = puVar2 + -6" identifier = (binary_expression "puVar2 + -6" identifier + number_literal)) ;) (expression_statement "local_58 = (uint *)puVar2[-8];" (assignment_expression "local_58 = (uint *)puVar2[-8]" identifier = (cast_expression "(uint *)puVar2[-8]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar2[-8]" identifier [ number_literal ]))) ;) (if_statement "if (puVar1 != local_58) break;" if (parenthesized_expression "(puVar1 != local_58)" ( (binary_expression "puVar1 != local_58" identifier != identifier) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00244a38:\n      local_38 = *puVar1;" statement_identifier : (expression_statement "local_38 = *puVar1;" (assignment_expression "local_38 = *puVar1" identifier = (pointer_expression "*puVar1" * identifier)) ;)) (expression_statement "local_34 = puVar1[1];" (assignment_expression "local_34 = puVar1[1]" identifier = (subscript_expression "puVar1[1]" identifier [ number_literal ])) ;) (expression_statement "local_30 = puVar1[2];" (assignment_expression "local_30 = puVar1[2]" identifier = (subscript_expression "puVar1[2]" identifier [ number_literal ])) ;) (expression_statement "local_2c = puVar1[3];" (assignment_expression "local_2c = puVar1[3]" identifier = (subscript_expression "puVar1[3]" identifier [ number_literal ])) ;) (expression_statement "local_54 = puVar1[-1];" (assignment_expression "local_54 = puVar1[-1]" identifier = (subscript_expression "puVar1[-1]" identifier [ number_literal ])) ;) (expression_statement "puVar1[-1] = 0;" (assignment_expression "puVar1[-1] = 0" (subscript_expression "puVar1[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)puVar1 = 0;" (assignment_expression "*(undefined1 *)puVar1 = 0" (pointer_expression "*(undefined1 *)puVar1" * (cast_expression "(undefined1 *)puVar1" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (labeled_statement "LAB_00244a78:\n      local_4c = local_34;" statement_identifier : (expression_statement "local_4c = local_34;" (assignment_expression "local_4c = local_34" identifier = identifier) ;)) (expression_statement "local_48 = local_30;" (assignment_expression "local_48 = local_30" identifier = identifier) ;) (expression_statement "local_44 = local_2c;" (assignment_expression "local_44 = local_2c" identifier = identifier) ;) (expression_statement "puVar2 = puVar1;" (assignment_expression "puVar2 = puVar1" identifier = identifier) ;) (expression_statement "local_58 = &local_50;" (assignment_expression "local_58 = &local_50" identifier = (pointer_expression "&local_50" & identifier)) ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) (ERROR "}" }))
(translation_unit (declaration TYPE (ERROR IDENT : : IDENT < IDENT < IDENT : :) IDENT (ERROR *) , (ERROR IDENT : : IDENT < IDENT : :) IDENT , (ERROR IDENT : : IDENT < IDENT : :) IDENT (ERROR >> >) , (ERROR IDENT : : IDENT < IDENT : : (function_declarator IDENT (ERROR >>) (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) { IDENT) (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - IDENT) < LIT) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - IDENT) >> LIT) )) * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) / LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression & IDENT)) )) (goto_statement goto statement_identifier ;)) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (ERROR (comma_expression (binary_expression (binary_expression (binary_expression (binary_expression IDENT < IDENT) < IDENT) (ERROR : : IDENT) * (ERROR ,) IDENT) (ERROR : : IDENT) < IDENT) (ERROR : : IDENT) , IDENT) : : (binary_expression IDENT < IDENT) : : (comma_expression IDENT (ERROR >> >) , (comma_expression IDENT , IDENT)) : : (comma_expression IDENT , IDENT) : : (binary_expression IDENT < IDENT) : :) (expression_statement (binary_expression IDENT >> (parenthesized_expression ( (comma_expression IDENT , (comma_expression IDENT , (comma_expression IDENT , (pointer_expression & IDENT)))) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression & IDENT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression & IDENT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) })) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression & IDENT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (break_statement break ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_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 *)) ) IDENT)) = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) })) }) while (parenthesized_expression ( BOOL )) ;) (ERROR }))
(declaration "void std::\n     __make_heap<__normal_iterator<std::string*,std::vector<std::string,std::allocator<std::string>>>,__ops::_Iter_comp_iter<gold::Odr_violation_compare>>\n               (int param_1,int param_2)\n\n{\n  uint *puVar1;" (primitive_type "void") (ERROR "std::\n     __make_heap<__normal_iterator<std::" (identifier "std") (: ":") (: ":") (identifier "__make_heap") (< "<") (identifier "__normal_iterator") (< "<") (identifier "std") (: ":") (: ":")) (identifier "string") (ERROR "*" (* "*")) (, ",") (ERROR "std::vector<std::" (identifier "std") (: ":") (: ":") (identifier "vector") (< "<") (identifier "std") (: ":") (: ":")) (identifier "string") (, ",") (ERROR "std::allocator<std::" (identifier "std") (: ":") (: ":") (identifier "allocator") (< "<") (identifier "std") (: ":") (: ":")) (identifier "string") (ERROR ">>>" (>> ">>") (> ">")) (, ",") (ERROR "__ops::_Iter_comp_iter<gold::Odr_violation_compare>>\n               (int param_1,int param_2)\n\n{\n  uint" (identifier "__ops") (: ":") (: ":") (identifier "_Iter_comp_iter") (< "<") (identifier "gold") (: ":") (: ":") (function_declarator "Odr_violation_compare>>\n               (int param_1,int param_2)" (identifier "Odr_violation_compare") (ERROR ">>" (>> ">>")) (parameter_list "(int param_1,int param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) () ")"))) ({ "{") (identifier "uint")) (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "uint *puVar2;" (type_identifier "uint") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "uint *local_58;" (type_identifier "uint") (pointer_declarator "*local_58" (* "*") (identifier "local_58")) (; ";")) (declaration "uint local_54;" (type_identifier "uint") (identifier "local_54") (; ";")) (declaration "uint local_50;" (type_identifier "uint") (identifier "local_50") (; ";")) (declaration "uint local_4c;" (type_identifier "uint") (identifier "local_4c") (; ";")) (declaration "uint local_48;" (type_identifier "uint") (identifier "local_48") (; ";")) (declaration "uint local_44;" (type_identifier "uint") (identifier "local_44") (; ";")) (declaration "uint *local_40;" (type_identifier "uint") (pointer_declarator "*local_40" (* "*") (identifier "local_40")) (; ";")) (declaration "undefined4 local_3c;" (type_identifier "undefined4") (identifier "local_3c") (; ";")) (declaration "uint local_38;" (type_identifier "uint") (identifier "local_38") (; ";")) (declaration "uint local_34;" (type_identifier "uint") (identifier "local_34") (; ";")) (declaration "uint local_30;" (type_identifier "uint") (identifier "local_30") (; ";")) (declaration "uint local_2c;" (type_identifier "uint") (identifier "local_2c") (; ";")) (if_statement "if (param_2 - param_1 < 0x19) {\n    return;\n  }" (if "if") (parenthesized_expression "(param_2 - param_1 < 0x19)" (( "(") (binary_expression "param_2 - param_1 < 0x19" (binary_expression "param_2 - param_1" (identifier "param_2") (- "-") (identifier "param_1")) (< "<") (number_literal "0x19")) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar4 = (param_2 - param_1 >> 3) * -0x55555555;" (assignment_expression "iVar4 = (param_2 - param_1 >> 3) * -0x55555555" (identifier "iVar4") (= "=") (binary_expression "(param_2 - param_1 >> 3) * -0x55555555" (parenthesized_expression "(param_2 - param_1 >> 3)" (( "(") (binary_expression "param_2 - param_1 >> 3" (binary_expression "param_2 - param_1" (identifier "param_2") (- "-") (identifier "param_1")) (>> ">>") (number_literal "3")) () ")")) (* "*") (number_literal "-0x55555555"))) (; ";")) (expression_statement "iVar3 = (iVar4 + -2) / 2;" (assignment_expression "iVar3 = (iVar4 + -2) / 2" (identifier "iVar3") (= "=") (binary_expression "(iVar4 + -2) / 2" (parenthesized_expression "(iVar4 + -2)" (( "(") (binary_expression "iVar4 + -2" (identifier "iVar4") (+ "+") (number_literal "-2")) () ")")) (/ "/") (number_literal "2"))) (; ";")) (expression_statement "puVar1 = (uint *)(param_1 + iVar3 * 0x18 + 8);" (assignment_expression "puVar1 = (uint *)(param_1 + iVar3 * 0x18 + 8)" (identifier "puVar1") (= "=") (cast_expression "(uint *)(param_1 + iVar3 * 0x18 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + iVar3 * 0x18 + 8)" (( "(") (binary_expression "param_1 + iVar3 * 0x18 + 8" (binary_expression "param_1 + iVar3 * 0x18" (identifier "param_1") (+ "+") (binary_expression "iVar3 * 0x18" (identifier "iVar3") (* "*") (number_literal "0x18"))) (+ "+") (number_literal "8")) () ")")))) (; ";")) (expression_statement "local_58 = (uint *)puVar1[-2];" (assignment_expression "local_58 = (uint *)puVar1[-2]" (identifier "local_58") (= "=") (cast_expression "(uint *)puVar1[-2]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar1[-2]" (identifier "puVar1") ([ "[") (number_literal "-2") (] "]")))) (; ";")) (if_statement "if (puVar1 == local_58) goto LAB_00244a38;" (if "if") (parenthesized_expression "(puVar1 == local_58)" (( "(") (binary_expression "puVar1 == local_58" (identifier "puVar1") (== "==") (identifier "local_58")) () ")")) (goto_statement "goto LAB_00244a38;" (goto "goto") (statement_identifier "LAB_00244a38") (; ";"))) (do_statement "do {\n    local_38 = *puVar1;\n    local_54 = puVar1[-1];\n    puVar1[-2] = (uint)puVar1;\n    puVar1[-1] = 0;\n    *(undefined1 *)puVar1 = 0;\n    puVar2 = puVar1;\n    if (local_58 == &local_38) goto LAB_00244a78;\n    while( true ) {\n      local_50 = local_38;\n      local_3c = 0;\n      local_38 = local_38 & 0xffffff;\n      local_40 = &local_38;\n                    \n      __adjust_heap<__normal_iterator<std::string*,std::vector<std::string,std::allocator<std::string>>>,int,std::string,__ops::_Iter_comp_iter<gold::Odr_violation_compare>>\n                (param_1,iVar3,iVar4,&local_58);\n      if (local_58 != &local_50) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      if (iVar3 == 0) {\n        if (local_40 != &local_38) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n        return;\n      }\n      iVar3 = iVar3 + -1;\n      if (local_40 != &local_38) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      puVar1 = puVar2 + -6;\n      local_58 = (uint *)puVar2[-8];\n      if (puVar1 != local_58) break;\nLAB_00244a38:\n      local_38 = *puVar1;\n      local_34 = puVar1[1];\n      local_30 = puVar1[2];\n      local_2c = puVar1[3];\n      local_54 = puVar1[-1];\n      puVar1[-1] = 0;\n      *(undefined1 *)puVar1 = 0;\nLAB_00244a78:\n      local_4c = local_34;\n      local_48 = local_30;\n      local_44 = local_2c;\n      puVar2 = puVar1;\n      local_58 = &local_50;\n    }\n  } while( true );" (do "do") (compound_statement "{\n    local_38 = *puVar1;\n    local_54 = puVar1[-1];\n    puVar1[-2] = (uint)puVar1;\n    puVar1[-1] = 0;\n    *(undefined1 *)puVar1 = 0;\n    puVar2 = puVar1;\n    if (local_58 == &local_38) goto LAB_00244a78;\n    while( true ) {\n      local_50 = local_38;\n      local_3c = 0;\n      local_38 = local_38 & 0xffffff;\n      local_40 = &local_38;\n                    \n      __adjust_heap<__normal_iterator<std::string*,std::vector<std::string,std::allocator<std::string>>>,int,std::string,__ops::_Iter_comp_iter<gold::Odr_violation_compare>>\n                (param_1,iVar3,iVar4,&local_58);\n      if (local_58 != &local_50) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      if (iVar3 == 0) {\n        if (local_40 != &local_38) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n        return;\n      }\n      iVar3 = iVar3 + -1;\n      if (local_40 != &local_38) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      puVar1 = puVar2 + -6;\n      local_58 = (uint *)puVar2[-8];\n      if (puVar1 != local_58) break;\nLAB_00244a38:\n      local_38 = *puVar1;\n      local_34 = puVar1[1];\n      local_30 = puVar1[2];\n      local_2c = puVar1[3];\n      local_54 = puVar1[-1];\n      puVar1[-1] = 0;\n      *(undefined1 *)puVar1 = 0;\nLAB_00244a78:\n      local_4c = local_34;\n      local_48 = local_30;\n      local_44 = local_2c;\n      puVar2 = puVar1;\n      local_58 = &local_50;\n    }\n  }" ({ "{") (expression_statement "local_38 = *puVar1;" (assignment_expression "local_38 = *puVar1" (identifier "local_38") (= "=") (pointer_expression "*puVar1" (* "*") (identifier "puVar1"))) (; ";")) (expression_statement "local_54 = puVar1[-1];" (assignment_expression "local_54 = puVar1[-1]" (identifier "local_54") (= "=") (subscript_expression "puVar1[-1]" (identifier "puVar1") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (expression_statement "puVar1[-2] = (uint)puVar1;" (assignment_expression "puVar1[-2] = (uint)puVar1" (subscript_expression "puVar1[-2]" (identifier "puVar1") ([ "[") (number_literal "-2") (] "]")) (= "=") (cast_expression "(uint)puVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar1"))) (; ";")) (expression_statement "puVar1[-1] = 0;" (assignment_expression "puVar1[-1] = 0" (subscript_expression "puVar1[-1]" (identifier "puVar1") ([ "[") (number_literal "-1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)puVar1 = 0;" (assignment_expression "*(undefined1 *)puVar1 = 0" (pointer_expression "*(undefined1 *)puVar1" (* "*") (cast_expression "(undefined1 *)puVar1" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar2 = puVar1;" (assignment_expression "puVar2 = puVar1" (identifier "puVar2") (= "=") (identifier "puVar1")) (; ";")) (if_statement "if (local_58 == &local_38) goto LAB_00244a78;" (if "if") (parenthesized_expression "(local_58 == &local_38)" (( "(") (binary_expression "local_58 == &local_38" (identifier "local_58") (== "==") (pointer_expression "&local_38" (& "&") (identifier "local_38"))) () ")")) (goto_statement "goto LAB_00244a78;" (goto "goto") (statement_identifier "LAB_00244a78") (; ";"))) (while_statement "while( true ) {\n      local_50 = local_38;\n      local_3c = 0;\n      local_38 = local_38 & 0xffffff;\n      local_40 = &local_38;\n                    \n      __adjust_heap<__normal_iterator<std::string*,std::vector<std::string,std::allocator<std::string>>>,int,std::string,__ops::_Iter_comp_iter<gold::Odr_violation_compare>>\n                (param_1,iVar3,iVar4,&local_58);\n      if (local_58 != &local_50) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      if (iVar3 == 0) {\n        if (local_40 != &local_38) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n        return;\n      }\n      iVar3 = iVar3 + -1;\n      if (local_40 != &local_38) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      puVar1 = puVar2 + -6;\n      local_58 = (uint *)puVar2[-8];\n      if (puVar1 != local_58) break;\nLAB_00244a38:\n      local_38 = *puVar1;\n      local_34 = puVar1[1];\n      local_30 = puVar1[2];\n      local_2c = puVar1[3];\n      local_54 = puVar1[-1];\n      puVar1[-1] = 0;\n      *(undefined1 *)puVar1 = 0;\nLAB_00244a78:\n      local_4c = local_34;\n      local_48 = local_30;\n      local_44 = local_2c;\n      puVar2 = puVar1;\n      local_58 = &local_50;\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      local_50 = local_38;\n      local_3c = 0;\n      local_38 = local_38 & 0xffffff;\n      local_40 = &local_38;\n                    \n      __adjust_heap<__normal_iterator<std::string*,std::vector<std::string,std::allocator<std::string>>>,int,std::string,__ops::_Iter_comp_iter<gold::Odr_violation_compare>>\n                (param_1,iVar3,iVar4,&local_58);\n      if (local_58 != &local_50) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      if (iVar3 == 0) {\n        if (local_40 != &local_38) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n        return;\n      }\n      iVar3 = iVar3 + -1;\n      if (local_40 != &local_38) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      puVar1 = puVar2 + -6;\n      local_58 = (uint *)puVar2[-8];\n      if (puVar1 != local_58) break;\nLAB_00244a38:\n      local_38 = *puVar1;\n      local_34 = puVar1[1];\n      local_30 = puVar1[2];\n      local_2c = puVar1[3];\n      local_54 = puVar1[-1];\n      puVar1[-1] = 0;\n      *(undefined1 *)puVar1 = 0;\nLAB_00244a78:\n      local_4c = local_34;\n      local_48 = local_30;\n      local_44 = local_2c;\n      puVar2 = puVar1;\n      local_58 = &local_50;\n    }" ({ "{") (expression_statement "local_50 = local_38;" (assignment_expression "local_50 = local_38" (identifier "local_50") (= "=") (identifier "local_38")) (; ";")) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" (identifier "local_3c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_38 = local_38 & 0xffffff;" (assignment_expression "local_38 = local_38 & 0xffffff" (identifier "local_38") (= "=") (binary_expression "local_38 & 0xffffff" (identifier "local_38") (& "&") (number_literal "0xffffff"))) (; ";")) (expression_statement "local_40 = &local_38;" (assignment_expression "local_40 = &local_38" (identifier "local_40") (= "=") (pointer_expression "&local_38" (& "&") (identifier "local_38"))) (; ";")) (ERROR "__adjust_heap<__normal_iterator<std::string*,std::vector<std::string,std::allocator<std::string>>>,int,std::string,__ops::_Iter_comp_iter<gold::" (comma_expression "__adjust_heap<__normal_iterator<std::string*,std::vector<std::string,std" (binary_expression "__adjust_heap<__normal_iterator<std::string*,std::vector<std" (binary_expression "__adjust_heap<__normal_iterator<std::string*,std" (binary_expression "__adjust_heap<__normal_iterator<std" (binary_expression "__adjust_heap<__normal_iterator" (identifier "__adjust_heap") (< "<") (identifier "__normal_iterator")) (< "<") (identifier "std")) (ERROR "::string" (: ":") (: ":") (identifier "string")) (* "*") (ERROR "," (, ",")) (identifier "std")) (ERROR "::vector" (: ":") (: ":") (identifier "vector")) (< "<") (identifier "std")) (ERROR "::string" (: ":") (: ":") (identifier "string")) (, ",") (identifier "std")) (: ":") (: ":") (binary_expression "allocator<std" (identifier "allocator") (< "<") (identifier "std")) (: ":") (: ":") (comma_expression "string>>>,int,std" (identifier "string") (ERROR ">>>" (>> ">>") (> ">")) (, ",") (comma_expression "int,std" (identifier "int") (, ",") (identifier "std"))) (: ":") (: ":") (comma_expression "string,__ops" (identifier "string") (, ",") (identifier "__ops")) (: ":") (: ":") (binary_expression "_Iter_comp_iter<gold" (identifier "_Iter_comp_iter") (< "<") (identifier "gold")) (: ":") (: ":")) (expression_statement "Odr_violation_compare>>\n                (param_1,iVar3,iVar4,&local_58);" (binary_expression "Odr_violation_compare>>\n                (param_1,iVar3,iVar4,&local_58)" (identifier "Odr_violation_compare") (>> ">>") (parenthesized_expression "(param_1,iVar3,iVar4,&local_58)" (( "(") (comma_expression "param_1,iVar3,iVar4,&local_58" (identifier "param_1") (, ",") (comma_expression "iVar3,iVar4,&local_58" (identifier "iVar3") (, ",") (comma_expression "iVar4,&local_58" (identifier "iVar4") (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58"))))) () ")"))) (; ";")) (if_statement "if (local_58 != &local_50) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }" (if "if") (parenthesized_expression "(local_58 != &local_50)" (( "(") (binary_expression "local_58 != &local_50" (identifier "local_58") (!= "!=") (pointer_expression "&local_50" (& "&") (identifier "local_50"))) () ")")) (compound_statement "{\n        (*(code *)PTR_operator_delete_0043228c)();\n      }" ({ "{") (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" (( "(") (pointer_expression "*(code *)PTR_operator_delete_0043228c" (* "*") (cast_expression "(code *)PTR_operator_delete_0043228c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_delete_0043228c"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (iVar3 == 0) {\n        if (local_40 != &local_38) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n        return;\n      }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if (local_40 != &local_38) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n        return;\n      }" ({ "{") (if_statement "if (local_40 != &local_38) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }" (if "if") (parenthesized_expression "(local_40 != &local_38)" (( "(") (binary_expression "local_40 != &local_38" (identifier "local_40") (!= "!=") (pointer_expression "&local_38" (& "&") (identifier "local_38"))) () ")")) (compound_statement "{\n          (*(code *)PTR_operator_delete_0043228c)();\n        }" ({ "{") (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" (( "(") (pointer_expression "*(code *)PTR_operator_delete_0043228c" (* "*") (cast_expression "(code *)PTR_operator_delete_0043228c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_delete_0043228c"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + -1" (identifier "iVar3") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (local_40 != &local_38) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }" (if "if") (parenthesized_expression "(local_40 != &local_38)" (( "(") (binary_expression "local_40 != &local_38" (identifier "local_40") (!= "!=") (pointer_expression "&local_38" (& "&") (identifier "local_38"))) () ")")) (compound_statement "{\n        (*(code *)PTR_operator_delete_0043228c)();\n      }" ({ "{") (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" (( "(") (pointer_expression "*(code *)PTR_operator_delete_0043228c" (* "*") (cast_expression "(code *)PTR_operator_delete_0043228c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_delete_0043228c"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar1 = puVar2 + -6;" (assignment_expression "puVar1 = puVar2 + -6" (identifier "puVar1") (= "=") (binary_expression "puVar2 + -6" (identifier "puVar2") (+ "+") (number_literal "-6"))) (; ";")) (expression_statement "local_58 = (uint *)puVar2[-8];" (assignment_expression "local_58 = (uint *)puVar2[-8]" (identifier "local_58") (= "=") (cast_expression "(uint *)puVar2[-8]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar2[-8]" (identifier "puVar2") ([ "[") (number_literal "-8") (] "]")))) (; ";")) (if_statement "if (puVar1 != local_58) break;" (if "if") (parenthesized_expression "(puVar1 != local_58)" (( "(") (binary_expression "puVar1 != local_58" (identifier "puVar1") (!= "!=") (identifier "local_58")) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_00244a38:\n      local_38 = *puVar1;" (statement_identifier "LAB_00244a38") (: ":") (expression_statement "local_38 = *puVar1;" (assignment_expression "local_38 = *puVar1" (identifier "local_38") (= "=") (pointer_expression "*puVar1" (* "*") (identifier "puVar1"))) (; ";"))) (expression_statement "local_34 = puVar1[1];" (assignment_expression "local_34 = puVar1[1]" (identifier "local_34") (= "=") (subscript_expression "puVar1[1]" (identifier "puVar1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_30 = puVar1[2];" (assignment_expression "local_30 = puVar1[2]" (identifier "local_30") (= "=") (subscript_expression "puVar1[2]" (identifier "puVar1") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "local_2c = puVar1[3];" (assignment_expression "local_2c = puVar1[3]" (identifier "local_2c") (= "=") (subscript_expression "puVar1[3]" (identifier "puVar1") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "local_54 = puVar1[-1];" (assignment_expression "local_54 = puVar1[-1]" (identifier "local_54") (= "=") (subscript_expression "puVar1[-1]" (identifier "puVar1") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (expression_statement "puVar1[-1] = 0;" (assignment_expression "puVar1[-1] = 0" (subscript_expression "puVar1[-1]" (identifier "puVar1") ([ "[") (number_literal "-1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)puVar1 = 0;" (assignment_expression "*(undefined1 *)puVar1 = 0" (pointer_expression "*(undefined1 *)puVar1" (* "*") (cast_expression "(undefined1 *)puVar1" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1"))) (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_00244a78:\n      local_4c = local_34;" (statement_identifier "LAB_00244a78") (: ":") (expression_statement "local_4c = local_34;" (assignment_expression "local_4c = local_34" (identifier "local_4c") (= "=") (identifier "local_34")) (; ";"))) (expression_statement "local_48 = local_30;" (assignment_expression "local_48 = local_30" (identifier "local_48") (= "=") (identifier "local_30")) (; ";")) (expression_statement "local_44 = local_2c;" (assignment_expression "local_44 = local_2c" (identifier "local_44") (= "=") (identifier "local_2c")) (; ";")) (expression_statement "puVar2 = puVar1;" (assignment_expression "puVar2 = puVar1" (identifier "puVar2") (= "=") (identifier "puVar1")) (; ";")) (expression_statement "local_58 = &local_50;" (assignment_expression "local_58 = &local_50" (identifier "local_58") (= "=") (pointer_expression "&local_50" (& "&") (identifier "local_50"))) (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (ERROR "}" (} "}"))
(translation_unit (declaration type: (primitive_type) (ERROR (identifier) (identifier) (identifier) (identifier)) declarator: (identifier) (ERROR) (ERROR (identifier) (identifier) (identifier)) declarator: (identifier) (ERROR (identifier) (identifier) (identifier)) declarator: (identifier) (ERROR) (ERROR (identifier) (identifier) (identifier) (function_declarator declarator: (identifier) (ERROR) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)))) (identifier)) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (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: (type_identifier) 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: (type_identifier) declarator: (identifier)) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal))) consequence: (compound_statement (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (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: (identifier))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) consequence: (goto_statement label: (statement_identifier))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (ERROR (comma_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)) (ERROR (identifier)) (ERROR) right: (identifier)) (ERROR (identifier)) right: (identifier)) (ERROR (identifier)) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (comma_expression left: (identifier) (ERROR) right: (comma_expression left: (identifier) right: (identifier))) (comma_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (identifier))) (expression_statement (binary_expression left: (identifier) right: (parenthesized_expression (comma_expression left: (identifier) right: (comma_expression left: (identifier) right: (comma_expression left: (identifier) right: (pointer_expression argument: (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (break_statement)) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (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: (identifier))) right: (number_literal))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))))) condition: (parenthesized_expression (true))) (ERROR))

/* WARNING: Unknown calling convention -- yet parameter storage is locked */
/* void std::__make_heap<__normal_iterator<std::string*, std::vector<std::string,
   std::allocator<std::string > > >, __ops::_Iter_comp_iter<gold::Odr_violation_compare>
   >(__normal_iterator<std::string*, std::vector<std::string, std::allocator<std::string > > >,
   __normal_iterator<std::string*, std::vector<std::string, std::allocator<std::string > > >,
   __ops::_Iter_comp_iter<gold::Odr_violation_compare>&) */

void std::
     MASKED
               (int param_1,int param_2)

{
  uint *puVar1;
  uint *puVar2;
  int iVar3;
  int iVar4;
  uint *local_58;
  uint local_54;
  uint local_50;
  uint local_4c;
  uint local_48;
  uint local_44;
  uint *local_40;
  undefined4 local_3c;
  uint local_38;
  uint local_34;
  uint local_30;
  uint local_2c;
  
  if (param_2 - param_1 < 0x19) {
    return;
  }
  iVar4 = (param_2 - param_1 >> 3) * -0x55555555;
  iVar3 = (iVar4 + -2) / 2;
  puVar1 = (uint *)(param_1 + iVar3 * 0x18 + 8);
  local_58 = (uint *)puVar1[-2];
  if (puVar1 == local_58) goto LAB_00244a38;
  do {
    local_38 = *puVar1;
    local_54 = puVar1[-1];
    puVar1[-2] = (uint)puVar1;
    puVar1[-1] = 0;
    *(undefined1 *)puVar1 = 0;
    puVar2 = puVar1;
    if (local_58 == &local_38) goto LAB_00244a78;
    while( true ) {
      local_50 = local_38;
      local_3c = 0;
      local_38 = local_38 & 0xffffff;
      local_40 = &local_38;
                    /* try { // try from 002449e8 to 002449ef has its CatchHandler @ 00244ae4 */
      __adjust_heap<__normal_iterator<std::string*,std::vector<std::string,std::allocator<std::string>>>,int,std::string,__ops::_Iter_comp_iter<gold::Odr_violation_compare>>
                (param_1,iVar3,iVar4,&local_58);
      if (local_58 != &local_50) {
        (*(code *)PTR_operator_delete_0043228c)();
      }
      if (iVar3 == 0) {
        if (local_40 != &local_38) {
          (*(code *)PTR_operator_delete_0043228c)();
        }
        return;
      }
      iVar3 = iVar3 + -1;
      if (local_40 != &local_38) {
        (*(code *)PTR_operator_delete_0043228c)();
      }
      puVar1 = puVar2 + -6;
      local_58 = (uint *)puVar2[-8];
      if (puVar1 != local_58) break;
LAB_00244a38:
      local_38 = *puVar1;
      local_34 = puVar1[1];
      local_30 = puVar1[2];
      local_2c = puVar1[3];
      local_54 = puVar1[-1];
      puVar1[-1] = 0;
      *(undefined1 *)puVar1 = 0;
LAB_00244a78:
      local_4c = local_34;
      local_48 = local_30;
      local_44 = local_2c;
      puVar2 = puVar1;
      local_58 = &local_50;
    }
  } while( true );
}

