
/* DWARF original prototype: pair<std::_Rb_tree_node_base*,_std::_Rb_tree_node_base*>
   _M_get_insert_unique_pos(_Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>_>_>
   * this, key_type * __k) */

pair<std::_Rb_tree_node_base*,_std::_Rb_tree_node_base*> __thiscall
std::
_Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>_>_>
::_M_get_insert_unique_pos
          (_Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>_>_>
           *this,key_type *__k)

{
  size_type *psVar1;
  difference_type __d;
  int iVar2;
  uint uVar3;
  _Rb_tree_node_base *in_v1;
  undefined4 uVar4;
  undefined4 *in_a2;
  size_type *psVar5;
  size_type *psVar6;
  uint uVar7;
  undefined4 uVar8;
  uint uVar9;
  undefined4 uVar10;
  longlong lVar11;
  pair<std::_Rb_tree_node_base*,_std::_Rb_tree_node_base*> pVar12;
  pair<std::_Rb_tree_node_base*,_std::_Rb_tree_node_base*> pVar13;
  longlong lVar14;
  pair<std::_Rb_tree_node_base*,_std::_Rb_tree_node_base*> pVar15;
  
  psVar5 = (size_type *)(__k->field_2)._M_allocated_capacity;
  if (psVar5 != (size_type *)0x0) {
    uVar9 = in_a2[1];
    uVar7 = psVar5[5];
    uVar8 = *in_a2;
    uVar10 = psVar5[4];
    uVar3 = uVar7;
    if (uVar9 <= uVar7) {
      uVar3 = uVar9;
    }
    if (uVar3 == 0) goto LAB_0025c8f8;
LAB_0025c8a4:
    iVar2 = (*(code *)PTR_memcmp_004368dc)(uVar8,uVar10,uVar3);
    if (iVar2 == 0) goto LAB_0025c8f8;
    if (iVar2 < 0) goto LAB_0025c904;
    do {
      in_v1 = (_Rb_tree_node_base *)0x0;
      psVar1 = (size_type *)psVar5[3];
      psVar6 = psVar5;
      while( true ) {
        psVar5 = psVar1;
        if (psVar5 == (size_type *)0x0) {
          if (in_v1 != (_Rb_tree_node_base *)0x0) goto LAB_0025c9c4;
          lVar14 = ZEXT48(psVar6) << 0x20;
          goto LAB_0025c91c;
        }
        uVar7 = psVar5[5];
        uVar10 = psVar5[4];
        uVar3 = uVar7;
        if (uVar9 <= uVar7) {
          uVar3 = uVar9;
        }
        if (uVar3 != 0) goto LAB_0025c8a4;
LAB_0025c8f8:
        if (-1 < (int)(uVar9 - uVar7)) break;
LAB_0025c904:
        in_v1 = (_Rb_tree_node_base *)0x1;
        psVar1 = (size_type *)psVar5[2];
        psVar6 = psVar5;
      }
    } while( true );
  }
  psVar6 = &__k->_M_string_length;
LAB_0025c9c4:
  if ((size_type *)*(undefined1 **)((int)&__k->field_2 + 4) == psVar6) {
    (this->_M_impl).super__Rb_tree_header._M_header._M_color = (_Rb_tree_color)psVar6;
    *(undefined4 *)&this->_M_impl = 0;
    pVar15.first = (_Rb_tree_node_base *)this;
    pVar15.second = in_v1;
    return pVar15;
  }
  lVar14 = (*(code *)PTR__Rb_tree_decrement_00432bc4)(psVar6);
  iVar2 = (int)((ulonglong)lVar14 >> 0x20);
  uVar9 = in_a2[1];
  uVar7 = *(uint *)(iVar2 + 0x14);
  uVar10 = *(undefined4 *)(iVar2 + 0x10);
  uVar8 = *in_a2;
  uVar3 = uVar7;
  if (uVar9 <= uVar7) {
    uVar3 = uVar9;
  }
LAB_0025c91c:
  uVar4 = (undefined4)lVar14;
  if (uVar3 != 0) {
    lVar11 = (*(code *)PTR_memcmp_004368dc)(uVar10,uVar8,uVar3);
    uVar4 = (undefined4)lVar11;
    if ((int)((ulonglong)lVar11 >> 0x20) != 0) goto joined_r0x0025c980;
  }
  lVar11 = CONCAT44(uVar7 - uVar9,uVar4);
joined_r0x0025c980:
  if (lVar11 < 0) {
    (this->_M_impl).super__Rb_tree_header._M_header._M_color = (_Rb_tree_color)psVar6;
    *(undefined4 *)&this->_M_impl = 0;
    pVar13.first = (_Rb_tree_node_base *)this;
    pVar13.second = (_Rb_tree_node_base *)lVar11;
    return pVar13;
  }
  *(int *)&this->_M_impl = (int)((ulonglong)lVar14 >> 0x20);
  (this->_M_impl).super__Rb_tree_header._M_header._M_color = _S_red;
  pVar12.first = (_Rb_tree_node_base *)this;
  pVar12.second = (_Rb_tree_node_base *)lVar11;
  return pVar12;
}



/* std::_Rb_tree<std::string, std::pair<std::string const, gold::Cref_inputs::Archive_info>,
   std::_Select1st<std::pair<std::string const, gold::Cref_inputs::Archive_info> >,
   std::less<std::string >, std::allocator<std::pair<std::string const,
   gold::Cref_inputs::Archive_info> > >::_M_get_insert_unique_pos(std::string const&) */

string * std::
         _Rb_tree<std::string,std::pair<std::string_const,gold::Cref_inputs::Archive_info>,std::_Select1st<std::pair<std::string_const,gold::Cref_inputs::Archive_info>>,std::less<std::string>,std::allocator<std::pair<std::string_const,gold::Cref_inputs::Archive_info>>>
         ::_M_get_insert_unique_pos(string *param_1)

{
  bool bVar1;
  int iVar2;
  uint uVar3;
  int iVar4;
  int in_a1;
  undefined4 *in_a2;
  int iVar5;
  uint uVar6;
  undefined4 uVar7;
  uint uVar8;
  undefined4 uVar9;
  
  iVar5 = *(int *)(in_a1 + 8);
  if (iVar5 == 0) {
    iVar2 = in_a1 + 4;
LAB_0025c9c4:
    if (*(int *)(in_a1 + 0xc) == iVar2) {
      *(int *)(param_1 + 4) = iVar2;
      *(undefined4 *)param_1 = 0;
      return param_1;
    }
    iVar5 = (*(code *)PTR__Rb_tree_decrement_00432bc4)(iVar2);
    uVar8 = in_a2[1];
    uVar6 = *(uint *)(iVar5 + 0x14);
    uVar9 = *(undefined4 *)(iVar5 + 0x10);
    uVar7 = *in_a2;
    uVar3 = uVar6;
    if (uVar8 <= uVar6) {
      uVar3 = uVar8;
    }
LAB_0025c91c:
    if ((uVar3 == 0) || (iVar4 = (*(code *)PTR_memcmp_004368dc)(uVar9,uVar7,uVar3), iVar4 == 0)) {
      iVar4 = uVar6 - uVar8;
    }
    if (iVar4 < 0) {
      *(int *)(param_1 + 4) = iVar2;
      *(undefined4 *)param_1 = 0;
      return param_1;
    }
    *(int *)param_1 = iVar5;
    *(undefined4 *)(param_1 + 4) = 0;
    return param_1;
  }
  uVar8 = in_a2[1];
  uVar6 = *(uint *)(iVar5 + 0x14);
  uVar7 = *in_a2;
  uVar9 = *(undefined4 *)(iVar5 + 0x10);
  uVar3 = uVar6;
  if (uVar8 <= uVar6) {
    uVar3 = uVar8;
  }
  if (uVar3 == 0) goto LAB_0025c8f8;
LAB_0025c8a4:
  iVar2 = (*(code *)PTR_memcmp_004368dc)(uVar7,uVar9,uVar3);
  if (iVar2 == 0) goto LAB_0025c8f8;
  if (iVar2 < 0) goto LAB_0025c904;
  do {
    bVar1 = false;
    iVar4 = *(int *)(iVar5 + 0xc);
    iVar2 = iVar5;
    while( true ) {
      iVar5 = iVar4;
      if (iVar5 == 0) {
        iVar5 = iVar2;
        if (!bVar1) goto LAB_0025c91c;
        goto LAB_0025c9c4;
      }
      uVar6 = *(uint *)(iVar5 + 0x14);
      uVar9 = *(undefined4 *)(iVar5 + 0x10);
      uVar3 = uVar6;
      if (uVar8 <= uVar6) {
        uVar3 = uVar8;
      }
      if (uVar3 != 0) goto LAB_0025c8a4;
LAB_0025c8f8:
      if (-1 < (int)(uVar8 - uVar6)) break;
LAB_0025c904:
      bVar1 = true;
      iVar4 = *(int *)(iVar5 + 8);
      iVar2 = iVar5;
    }
  } while( true );
}


lui gp,0x1e
addiu gp,gp,-0x2650
addu gp,gp,t9
addiu sp,sp,-0x40
sw s1,0x1c(sp)
sw gp,0x10(sp)
sw s6,0x30(sp)
or s6,a1,zero
sw s5,0x2c(sp)
or s5,a2,zero
sw s4,0x28(sp)
sw ra,0x3c(sp)
sw s8,0x38(sp)
sw s7,0x34(sp)
sw s3,0x24(sp)
sw s2,0x20(sp)
sw s0,0x18(sp)
lw s1,0x8(a1)
beq s1,zero,0x0025c9c0
_or s4,a0,zero
lw s7,0x4(a2)
lw s2,0x14(s1)
lw s3,0x0(a2)
lw s8,0x10(s1)
sltu s0,s2,s7
lw t9,-0x38f4(gp)
or v0,s2,zero
movz v0,s7,s0
or a0,s3,zero
or a1,s8,zero
or s0,v0,zero
beq v0,zero,0x0025c8f8
_or a2,v0,zero
jalr t9
_nop
beq v0,zero,0x0025c8f8
_lw gp,0x10(sp)
bltz v0,0x0025c904
_or v1,zero,zero
lw v0,0xc(s1)
beq v0,zero,0x0025c910
_nop
or s1,v0,zero
lw t9,-0x38f4(gp)
or a0,s3,zero
lw s2,0x14(s1)
lw s8,0x10(s1)
sltu s0,s2,s7
or v0,s2,zero
movz v0,s7,s0
or a1,s8,zero
or s0,v0,zero
bne v0,zero,0x0025c8a4
_or a2,v0,zero
subu v0,s7,s2
bgez v0,0x0025c8bc
_or v1,zero,zero
lw v0,0x8(s1)
bne v0,zero,0x0025c8c8
_li v1,0x1
bne v1,zero,0x0025c9c4
_nop
or s6,s1,zero
beq s0,zero,0x0025c97c
_lw t9,-0x38f4(gp)
or a2,s0,zero
or a1,s3,zero
jalr t9
_or a0,s8,zero
beq v0,zero,0x0025c97c
_nop
bltz v0,0x0025c988
_lw ra,0x3c(sp)
or v0,s4,zero
lw s8,0x38(sp)
lw s7,0x34(sp)
lw s6,0x30(sp)
lw s5,0x2c(sp)
lw s3,0x24(sp)
lw s2,0x20(sp)
lw s0,0x18(sp)
sw s1,0x0(s4)
sw zero,0x4(s4)
lw s1,0x1c(sp)
lw s4,0x28(sp)
jr ra
_addiu sp,sp,0x40
subu v0,s2,s7
bgez v0,0x0025c944
_lw ra,0x3c(sp)
or v0,s4,zero
lw s8,0x38(sp)
lw s7,0x34(sp)
lw s5,0x2c(sp)
lw s3,0x24(sp)
lw s2,0x20(sp)
lw s1,0x1c(sp)
lw s0,0x18(sp)
sw s6,0x4(s4)
sw zero,0x0(s4)
lw s6,0x30(sp)
lw s4,0x28(sp)
jr ra
_addiu sp,sp,0x40
addiu s1,a1,0x4
lw v0,0xc(s6)
beq v0,s1,0x0025ca08
_lw t9,-0x760c(gp)
or a0,s1,zero
jalr t9
_or s6,s1,zero
lw s7,0x4(s5)
or s1,v0,zero
lw s2,0x14(v0)
lw s8,0x10(v0)
lw gp,0x10(sp)
sltu s0,s2,s7
lw s3,0x0(s5)
or v0,s2,zero
movz v0,s7,s0
b 0x0025c91c
_or s0,v0,zero
lw ra,0x3c(sp)
or v0,s4,zero
lw s8,0x38(sp)
lw s7,0x34(sp)
lw s6,0x30(sp)
lw s5,0x2c(sp)
lw s3,0x24(sp)
lw s2,0x20(sp)
lw s0,0x18(sp)
sw s1,0x4(s4)
sw zero,0x0(s4)
lw s1,0x1c(sp)
lw s4,0x28(sp)
jr ra
_addiu sp,sp,0x40
(translation_unit "/* std::_Rb_tree<std::string, std::pair<std::string const, gold::Cref_inputs::Archive_info>,\n   std::_Select1st<std::pair<std::string const, gold::Cref_inputs::Archive_info> >,\n   std::less<std::string >, std::allocator<std::pair<std::string const,\n   gold::Cref_inputs::Archive_info> > >::_M_get_insert_unique_pos(std::string const&) */\n\nstring * std::\n         _Rb_tree<std::string,std::pair<std::string_const,gold::Cref_inputs::Archive_info>,std::_Select1st<std::pair<std::string_const,gold::Cref_inputs::Archive_info>>,std::less<std::string>,std::allocator<std::pair<std::string_const,gold::Cref_inputs::Archive_info>>>\n         ::_M_get_insert_unique_pos(string *param_1)\n\n{\n  bool bVar1;\n  int iVar2;\n  uint uVar3;\n  int iVar4;\n  int in_a1;\n  undefined4 *in_a2;\n  int iVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  uint uVar8;\n  undefined4 uVar9;\n  \n  iVar5 = *(int *)(in_a1 + 8);\n  if (iVar5 == 0) {\n    iVar2 = in_a1 + 4;\nLAB_0025c9c4:\n    if (*(int *)(in_a1 + 0xc) == iVar2) {\n      *(int *)(param_1 + 4) = iVar2;\n      *(undefined4 *)param_1 = 0;\n      return param_1;\n    }\n    iVar5 = (*(code *)PTR__Rb_tree_decrement_00432bc4)(iVar2);\n    uVar8 = in_a2[1];\n    uVar6 = *(uint *)(iVar5 + 0x14);\n    uVar9 = *(undefined4 *)(iVar5 + 0x10);\n    uVar7 = *in_a2;\n    uVar3 = uVar6;\n    if (uVar8 <= uVar6) {\n      uVar3 = uVar8;\n    }\nLAB_0025c91c:\n    if ((uVar3 == 0) || (iVar4 = (*(code *)PTR_memcmp_004368dc)(uVar9,uVar7,uVar3), iVar4 == 0)) {\n      iVar4 = uVar6 - uVar8;\n    }\n    if (iVar4 < 0) {\n      *(int *)(param_1 + 4) = iVar2;\n      *(undefined4 *)param_1 = 0;\n      return param_1;\n    }\n    *(int *)param_1 = iVar5;\n    *(undefined4 *)(param_1 + 4) = 0;\n    return param_1;\n  }\n  uVar8 = in_a2[1];\n  uVar6 = *(uint *)(iVar5 + 0x14);\n  uVar7 = *in_a2;\n  uVar9 = *(undefined4 *)(iVar5 + 0x10);\n  uVar3 = uVar6;\n  if (uVar8 <= uVar6) {\n    uVar3 = uVar8;\n  }\n  if (uVar3 == 0) goto LAB_0025c8f8;\nLAB_0025c8a4:\n  iVar2 = (*(code *)PTR_memcmp_004368dc)(uVar7,uVar9,uVar3);\n  if (iVar2 == 0) goto LAB_0025c8f8;\n  if (iVar2 < 0) goto LAB_0025c904;\n  do {\n    bVar1 = false;\n    iVar4 = *(int *)(iVar5 + 0xc);\n    iVar2 = iVar5;\n    while( true ) {\n      iVar5 = iVar4;\n      if (iVar5 == 0) {\n        iVar5 = iVar2;\n        if (!bVar1) goto LAB_0025c91c;\n        goto LAB_0025c9c4;\n      }\n      uVar6 = *(uint *)(iVar5 + 0x14);\n      uVar9 = *(undefined4 *)(iVar5 + 0x10);\n      uVar3 = uVar6;\n      if (uVar8 <= uVar6) {\n        uVar3 = uVar8;\n      }\n      if (uVar3 != 0) goto LAB_0025c8a4;\nLAB_0025c8f8:\n      if (-1 < (int)(uVar8 - uVar6)) break;\nLAB_0025c904:\n      bVar1 = true;\n      iVar4 = *(int *)(iVar5 + 8);\n      iVar2 = iVar5;\n    }\n  } while( true );\n}\n\n" comment (ERROR "string * std::\n         _Rb_tree<std::" (binary_expression "string * std" identifier * identifier) : : (binary_expression "_Rb_tree<std" identifier < identifier) : :) (declaration "string,std::pair<std::string_const,gold::Cref_inputs::Archive_info>,std::_Select1st<std::pair<std::string_const,gold::Cref_inputs::Archive_info>>,std::less<std::string>,std::allocator<std::pair<std::string_const,gold::Cref_inputs::Archive_info>>>\n         ::_M_get_insert_unique_pos(string *param_1)\n\n{\n  bool bVar1;" type_identifier (ERROR ",std::pair<std::" , identifier : : identifier < identifier : :) identifier , (ERROR "gold::Cref_inputs::" identifier : : identifier : :) identifier (ERROR ">" >) , (ERROR "std::_Select1st<std::pair<std::" identifier : : identifier < identifier : : identifier < identifier : :) identifier , (ERROR "gold::Cref_inputs::" identifier : : identifier : :) identifier (ERROR ">>" >>) , (ERROR "std::less<std::" identifier : : identifier < identifier : :) identifier (ERROR ">" >) , (ERROR "std::allocator<std::pair<std::" identifier : : identifier < identifier : : identifier < identifier : :) identifier , (ERROR "gold::Cref_inputs::Archive_info>>>\n         ::_M_get_insert_unique_pos(string *param_1)\n\n{\n  bool" identifier : : identifier : : identifier >> > : : (function_declarator "_M_get_insert_unique_pos(string *param_1)" identifier (parameter_list "(string *param_1)" ( (parameter_declaration "string *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) { primitive_type) identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int in_a1;" primitive_type identifier ;) (declaration "undefined4 *in_a2;" type_identifier (pointer_declarator "*in_a2" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (expression_statement "iVar5 = *(int *)(in_a1 + 8);" (assignment_expression "iVar5 = *(int *)(in_a1 + 8)" identifier = (pointer_expression "*(int *)(in_a1 + 8)" * (cast_expression "(int *)(in_a1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_a1 + 8)" ( (binary_expression "in_a1 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 == 0) {\n    iVar2 = in_a1 + 4;\nLAB_0025c9c4:\n    if (*(int *)(in_a1 + 0xc) == iVar2) {\n      *(int *)(param_1 + 4) = iVar2;\n      *(undefined4 *)param_1 = 0;\n      return param_1;\n    }\n    iVar5 = (*(code *)PTR__Rb_tree_decrement_00432bc4)(iVar2);\n    uVar8 = in_a2[1];\n    uVar6 = *(uint *)(iVar5 + 0x14);\n    uVar9 = *(undefined4 *)(iVar5 + 0x10);\n    uVar7 = *in_a2;\n    uVar3 = uVar6;\n    if (uVar8 <= uVar6) {\n      uVar3 = uVar8;\n    }\nLAB_0025c91c:\n    if ((uVar3 == 0) || (iVar4 = (*(code *)PTR_memcmp_004368dc)(uVar9,uVar7,uVar3), iVar4 == 0)) {\n      iVar4 = uVar6 - uVar8;\n    }\n    if (iVar4 < 0) {\n      *(int *)(param_1 + 4) = iVar2;\n      *(undefined4 *)param_1 = 0;\n      return param_1;\n    }\n    *(int *)param_1 = iVar5;\n    *(undefined4 *)(param_1 + 4) = 0;\n    return param_1;\n  }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar2 = in_a1 + 4;\nLAB_0025c9c4:\n    if (*(int *)(in_a1 + 0xc) == iVar2) {\n      *(int *)(param_1 + 4) = iVar2;\n      *(undefined4 *)param_1 = 0;\n      return param_1;\n    }\n    iVar5 = (*(code *)PTR__Rb_tree_decrement_00432bc4)(iVar2);\n    uVar8 = in_a2[1];\n    uVar6 = *(uint *)(iVar5 + 0x14);\n    uVar9 = *(undefined4 *)(iVar5 + 0x10);\n    uVar7 = *in_a2;\n    uVar3 = uVar6;\n    if (uVar8 <= uVar6) {\n      uVar3 = uVar8;\n    }\nLAB_0025c91c:\n    if ((uVar3 == 0) || (iVar4 = (*(code *)PTR_memcmp_004368dc)(uVar9,uVar7,uVar3), iVar4 == 0)) {\n      iVar4 = uVar6 - uVar8;\n    }\n    if (iVar4 < 0) {\n      *(int *)(param_1 + 4) = iVar2;\n      *(undefined4 *)param_1 = 0;\n      return param_1;\n    }\n    *(int *)param_1 = iVar5;\n    *(undefined4 *)(param_1 + 4) = 0;\n    return param_1;\n  }" { (expression_statement "iVar2 = in_a1 + 4;" (assignment_expression "iVar2 = in_a1 + 4" identifier = (binary_expression "in_a1 + 4" identifier + number_literal)) ;) (labeled_statement "LAB_0025c9c4:\n    if (*(int *)(in_a1 + 0xc) == iVar2) {\n      *(int *)(param_1 + 4) = iVar2;\n      *(undefined4 *)param_1 = 0;\n      return param_1;\n    }" statement_identifier : (if_statement "if (*(int *)(in_a1 + 0xc) == iVar2) {\n      *(int *)(param_1 + 4) = iVar2;\n      *(undefined4 *)param_1 = 0;\n      return param_1;\n    }" if (parenthesized_expression "(*(int *)(in_a1 + 0xc) == iVar2)" ( (binary_expression "*(int *)(in_a1 + 0xc) == iVar2" (pointer_expression "*(int *)(in_a1 + 0xc)" * (cast_expression "(int *)(in_a1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_a1 + 0xc)" ( (binary_expression "in_a1 + 0xc" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n      *(int *)(param_1 + 4) = iVar2;\n      *(undefined4 *)param_1 = 0;\n      return param_1;\n    }" { (expression_statement "*(int *)(param_1 + 4) = iVar2;" (assignment_expression "*(int *)(param_1 + 4) = iVar2" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)param_1 = 0;" (assignment_expression "*(undefined4 *)param_1 = 0" (pointer_expression "*(undefined4 *)param_1" * (cast_expression "(undefined4 *)param_1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (return_statement "return param_1;" return identifier ;) }))) (expression_statement "iVar5 = (*(code *)PTR__Rb_tree_decrement_00432bc4)(iVar2);" (assignment_expression "iVar5 = (*(code *)PTR__Rb_tree_decrement_00432bc4)(iVar2)" identifier = (call_expression "(*(code *)PTR__Rb_tree_decrement_00432bc4)(iVar2)" (parenthesized_expression "(*(code *)PTR__Rb_tree_decrement_00432bc4)" ( (pointer_expression "*(code *)PTR__Rb_tree_decrement_00432bc4" * (cast_expression "(code *)PTR__Rb_tree_decrement_00432bc4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar2)" ( identifier )))) ;) (expression_statement "uVar8 = in_a2[1];" (assignment_expression "uVar8 = in_a2[1]" identifier = (subscript_expression "in_a2[1]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = *(uint *)(iVar5 + 0x14);" (assignment_expression "uVar6 = *(uint *)(iVar5 + 0x14)" identifier = (pointer_expression "*(uint *)(iVar5 + 0x14)" * (cast_expression "(uint *)(iVar5 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = *(undefined4 *)(iVar5 + 0x10);" (assignment_expression "uVar9 = *(undefined4 *)(iVar5 + 0x10)" identifier = (pointer_expression "*(undefined4 *)(iVar5 + 0x10)" * (cast_expression "(undefined4 *)(iVar5 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = *in_a2;" (assignment_expression "uVar7 = *in_a2" identifier = (pointer_expression "*in_a2" * identifier)) ;) (expression_statement "uVar3 = uVar6;" (assignment_expression "uVar3 = uVar6" identifier = identifier) ;) (if_statement "if (uVar8 <= uVar6) {\n      uVar3 = uVar8;\n    }" if (parenthesized_expression "(uVar8 <= uVar6)" ( (binary_expression "uVar8 <= uVar6" identifier <= identifier) )) (compound_statement "{\n      uVar3 = uVar8;\n    }" { (expression_statement "uVar3 = uVar8;" (assignment_expression "uVar3 = uVar8" identifier = identifier) ;) })) (labeled_statement "LAB_0025c91c:\n    if ((uVar3 == 0) || (iVar4 = (*(code *)PTR_memcmp_004368dc)(uVar9,uVar7,uVar3), iVar4 == 0)) {\n      iVar4 = uVar6 - uVar8;\n    }" statement_identifier : (if_statement "if ((uVar3 == 0) || (iVar4 = (*(code *)PTR_memcmp_004368dc)(uVar9,uVar7,uVar3), iVar4 == 0)) {\n      iVar4 = uVar6 - uVar8;\n    }" if (parenthesized_expression "((uVar3 == 0) || (iVar4 = (*(code *)PTR_memcmp_004368dc)(uVar9,uVar7,uVar3), iVar4 == 0))" ( (binary_expression "(uVar3 == 0) || (iVar4 = (*(code *)PTR_memcmp_004368dc)(uVar9,uVar7,uVar3), iVar4 == 0)" (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar4 = (*(code *)PTR_memcmp_004368dc)(uVar9,uVar7,uVar3), iVar4 == 0)" ( (comma_expression "iVar4 = (*(code *)PTR_memcmp_004368dc)(uVar9,uVar7,uVar3), iVar4 == 0" (assignment_expression "iVar4 = (*(code *)PTR_memcmp_004368dc)(uVar9,uVar7,uVar3)" identifier = (call_expression "(*(code *)PTR_memcmp_004368dc)(uVar9,uVar7,uVar3)" (parenthesized_expression "(*(code *)PTR_memcmp_004368dc)" ( (pointer_expression "*(code *)PTR_memcmp_004368dc" * (cast_expression "(code *)PTR_memcmp_004368dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar9,uVar7,uVar3)" ( identifier , identifier , identifier )))) , (binary_expression "iVar4 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      iVar4 = uVar6 - uVar8;\n    }" { (expression_statement "iVar4 = uVar6 - uVar8;" (assignment_expression "iVar4 = uVar6 - uVar8" identifier = (binary_expression "uVar6 - uVar8" identifier - identifier)) ;) }))) (if_statement "if (iVar4 < 0) {\n      *(int *)(param_1 + 4) = iVar2;\n      *(undefined4 *)param_1 = 0;\n      return param_1;\n    }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n      *(int *)(param_1 + 4) = iVar2;\n      *(undefined4 *)param_1 = 0;\n      return param_1;\n    }" { (expression_statement "*(int *)(param_1 + 4) = iVar2;" (assignment_expression "*(int *)(param_1 + 4) = iVar2" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)param_1 = 0;" (assignment_expression "*(undefined4 *)param_1 = 0" (pointer_expression "*(undefined4 *)param_1" * (cast_expression "(undefined4 *)param_1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (return_statement "return param_1;" return identifier ;) })) (expression_statement "*(int *)param_1 = iVar5;" (assignment_expression "*(int *)param_1 = iVar5" (pointer_expression "*(int *)param_1" * (cast_expression "(int *)param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(undefined4 *)(param_1 + 4) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 4) = 0" (pointer_expression "*(undefined4 *)(param_1 + 4)" * (cast_expression "(undefined4 *)(param_1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = number_literal) ;) (return_statement "return param_1;" return identifier ;) })) (expression_statement "uVar8 = in_a2[1];" (assignment_expression "uVar8 = in_a2[1]" identifier = (subscript_expression "in_a2[1]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = *(uint *)(iVar5 + 0x14);" (assignment_expression "uVar6 = *(uint *)(iVar5 + 0x14)" identifier = (pointer_expression "*(uint *)(iVar5 + 0x14)" * (cast_expression "(uint *)(iVar5 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = *in_a2;" (assignment_expression "uVar7 = *in_a2" identifier = (pointer_expression "*in_a2" * identifier)) ;) (expression_statement "uVar9 = *(undefined4 *)(iVar5 + 0x10);" (assignment_expression "uVar9 = *(undefined4 *)(iVar5 + 0x10)" identifier = (pointer_expression "*(undefined4 *)(iVar5 + 0x10)" * (cast_expression "(undefined4 *)(iVar5 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = uVar6;" (assignment_expression "uVar3 = uVar6" identifier = identifier) ;) (if_statement "if (uVar8 <= uVar6) {\n    uVar3 = uVar8;\n  }" if (parenthesized_expression "(uVar8 <= uVar6)" ( (binary_expression "uVar8 <= uVar6" identifier <= identifier) )) (compound_statement "{\n    uVar3 = uVar8;\n  }" { (expression_statement "uVar3 = uVar8;" (assignment_expression "uVar3 = uVar8" identifier = identifier) ;) })) (if_statement "if (uVar3 == 0) goto LAB_0025c8f8;" if (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0025c8f8;" goto statement_identifier ;)) (labeled_statement "LAB_0025c8a4:\n  iVar2 = (*(code *)PTR_memcmp_004368dc)(uVar7,uVar9,uVar3);" statement_identifier : (expression_statement "iVar2 = (*(code *)PTR_memcmp_004368dc)(uVar7,uVar9,uVar3);" (assignment_expression "iVar2 = (*(code *)PTR_memcmp_004368dc)(uVar7,uVar9,uVar3)" identifier = (call_expression "(*(code *)PTR_memcmp_004368dc)(uVar7,uVar9,uVar3)" (parenthesized_expression "(*(code *)PTR_memcmp_004368dc)" ( (pointer_expression "*(code *)PTR_memcmp_004368dc" * (cast_expression "(code *)PTR_memcmp_004368dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar7,uVar9,uVar3)" ( identifier , identifier , identifier )))) ;)) (if_statement "if (iVar2 == 0) goto LAB_0025c8f8;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0025c8f8;" goto statement_identifier ;)) (if_statement "if (iVar2 < 0) goto LAB_0025c904;" if (parenthesized_expression "(iVar2 < 0)" ( (binary_expression "iVar2 < 0" identifier < number_literal) )) (goto_statement "goto LAB_0025c904;" goto statement_identifier ;)) (do_statement "do {\n    bVar1 = false;\n    iVar4 = *(int *)(iVar5 + 0xc);\n    iVar2 = iVar5;\n    while( true ) {\n      iVar5 = iVar4;\n      if (iVar5 == 0) {\n        iVar5 = iVar2;\n        if (!bVar1) goto LAB_0025c91c;\n        goto LAB_0025c9c4;\n      }\n      uVar6 = *(uint *)(iVar5 + 0x14);\n      uVar9 = *(undefined4 *)(iVar5 + 0x10);\n      uVar3 = uVar6;\n      if (uVar8 <= uVar6) {\n        uVar3 = uVar8;\n      }\n      if (uVar3 != 0) goto LAB_0025c8a4;\nLAB_0025c8f8:\n      if (-1 < (int)(uVar8 - uVar6)) break;\nLAB_0025c904:\n      bVar1 = true;\n      iVar4 = *(int *)(iVar5 + 8);\n      iVar2 = iVar5;\n    }\n  } while( true );" do (compound_statement "{\n    bVar1 = false;\n    iVar4 = *(int *)(iVar5 + 0xc);\n    iVar2 = iVar5;\n    while( true ) {\n      iVar5 = iVar4;\n      if (iVar5 == 0) {\n        iVar5 = iVar2;\n        if (!bVar1) goto LAB_0025c91c;\n        goto LAB_0025c9c4;\n      }\n      uVar6 = *(uint *)(iVar5 + 0x14);\n      uVar9 = *(undefined4 *)(iVar5 + 0x10);\n      uVar3 = uVar6;\n      if (uVar8 <= uVar6) {\n        uVar3 = uVar8;\n      }\n      if (uVar3 != 0) goto LAB_0025c8a4;\nLAB_0025c8f8:\n      if (-1 < (int)(uVar8 - uVar6)) break;\nLAB_0025c904:\n      bVar1 = true;\n      iVar4 = *(int *)(iVar5 + 8);\n      iVar2 = iVar5;\n    }\n  }" { (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (expression_statement "iVar4 = *(int *)(iVar5 + 0xc);" (assignment_expression "iVar4 = *(int *)(iVar5 + 0xc)" identifier = (pointer_expression "*(int *)(iVar5 + 0xc)" * (cast_expression "(int *)(iVar5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = iVar5;" (assignment_expression "iVar2 = iVar5" identifier = identifier) ;) (while_statement "while( true ) {\n      iVar5 = iVar4;\n      if (iVar5 == 0) {\n        iVar5 = iVar2;\n        if (!bVar1) goto LAB_0025c91c;\n        goto LAB_0025c9c4;\n      }\n      uVar6 = *(uint *)(iVar5 + 0x14);\n      uVar9 = *(undefined4 *)(iVar5 + 0x10);\n      uVar3 = uVar6;\n      if (uVar8 <= uVar6) {\n        uVar3 = uVar8;\n      }\n      if (uVar3 != 0) goto LAB_0025c8a4;\nLAB_0025c8f8:\n      if (-1 < (int)(uVar8 - uVar6)) break;\nLAB_0025c904:\n      bVar1 = true;\n      iVar4 = *(int *)(iVar5 + 8);\n      iVar2 = iVar5;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      iVar5 = iVar4;\n      if (iVar5 == 0) {\n        iVar5 = iVar2;\n        if (!bVar1) goto LAB_0025c91c;\n        goto LAB_0025c9c4;\n      }\n      uVar6 = *(uint *)(iVar5 + 0x14);\n      uVar9 = *(undefined4 *)(iVar5 + 0x10);\n      uVar3 = uVar6;\n      if (uVar8 <= uVar6) {\n        uVar3 = uVar8;\n      }\n      if (uVar3 != 0) goto LAB_0025c8a4;\nLAB_0025c8f8:\n      if (-1 < (int)(uVar8 - uVar6)) break;\nLAB_0025c904:\n      bVar1 = true;\n      iVar4 = *(int *)(iVar5 + 8);\n      iVar2 = iVar5;\n    }" { (expression_statement "iVar5 = iVar4;" (assignment_expression "iVar5 = iVar4" identifier = identifier) ;) (if_statement "if (iVar5 == 0) {\n        iVar5 = iVar2;\n        if (!bVar1) goto LAB_0025c91c;\n        goto LAB_0025c9c4;\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar5 = iVar2;\n        if (!bVar1) goto LAB_0025c91c;\n        goto LAB_0025c9c4;\n      }" { (expression_statement "iVar5 = iVar2;" (assignment_expression "iVar5 = iVar2" identifier = identifier) ;) (if_statement "if (!bVar1) goto LAB_0025c91c;" if (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) (goto_statement "goto LAB_0025c91c;" goto statement_identifier ;)) (goto_statement "goto LAB_0025c9c4;" goto statement_identifier ;) })) (expression_statement "uVar6 = *(uint *)(iVar5 + 0x14);" (assignment_expression "uVar6 = *(uint *)(iVar5 + 0x14)" identifier = (pointer_expression "*(uint *)(iVar5 + 0x14)" * (cast_expression "(uint *)(iVar5 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = *(undefined4 *)(iVar5 + 0x10);" (assignment_expression "uVar9 = *(undefined4 *)(iVar5 + 0x10)" identifier = (pointer_expression "*(undefined4 *)(iVar5 + 0x10)" * (cast_expression "(undefined4 *)(iVar5 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = uVar6;" (assignment_expression "uVar3 = uVar6" identifier = identifier) ;) (if_statement "if (uVar8 <= uVar6) {\n        uVar3 = uVar8;\n      }" if (parenthesized_expression "(uVar8 <= uVar6)" ( (binary_expression "uVar8 <= uVar6" identifier <= identifier) )) (compound_statement "{\n        uVar3 = uVar8;\n      }" { (expression_statement "uVar3 = uVar8;" (assignment_expression "uVar3 = uVar8" identifier = identifier) ;) })) (if_statement "if (uVar3 != 0) goto LAB_0025c8a4;" if (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0025c8a4;" goto statement_identifier ;)) (labeled_statement "LAB_0025c8f8:\n      if (-1 < (int)(uVar8 - uVar6)) break;" statement_identifier : (if_statement "if (-1 < (int)(uVar8 - uVar6)) break;" if (parenthesized_expression "(-1 < (int)(uVar8 - uVar6))" ( (binary_expression "-1 < (int)(uVar8 - uVar6)" number_literal < (cast_expression "(int)(uVar8 - uVar6)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar8 - uVar6)" ( (binary_expression "uVar8 - uVar6" identifier - identifier) )))) )) (break_statement "break;" break ;))) (labeled_statement "LAB_0025c904:\n      bVar1 = true;" statement_identifier : (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;)) (expression_statement "iVar4 = *(int *)(iVar5 + 8);" (assignment_expression "iVar4 = *(int *)(iVar5 + 8)" identifier = (pointer_expression "*(int *)(iVar5 + 8)" * (cast_expression "(int *)(iVar5 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 8)" ( (binary_expression "iVar5 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = iVar5;" (assignment_expression "iVar2 = iVar5" identifier = identifier) ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) (ERROR "}" }))
(translation_unit "/* DWARF original prototype: pair<std::_Rb_tree_node_base*,_std::_Rb_tree_node_base*>\n   _M_get_insert_unique_pos(_Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>_>_>\n   * this, key_type * __k) */\n\npair<std::_Rb_tree_node_base*,_std::_Rb_tree_node_base*> __thiscall\nstd::\n_Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>_>_>\n::_M_get_insert_unique_pos\n          (_Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>_>_>\n           *this,key_type *__k)\n\n{\n  size_type *psVar1;\n  difference_type __d;\n  int iVar2;\n  uint uVar3;\n  _Rb_tree_node_base *in_v1;\n  undefined4 uVar4;\n  undefined4 *in_a2;\n  size_type *psVar5;\n  size_type *psVar6;\n  uint uVar7;\n  undefined4 uVar8;\n  uint uVar9;\n  undefined4 uVar10;\n  longlong lVar11;\n  pair<std::_Rb_tree_node_base*,_std::_Rb_tree_node_base*> pVar12;\n  pair<std::_Rb_tree_node_base*,_std::_Rb_tree_node_base*> pVar13;\n  longlong lVar14;\n  pair<std::_Rb_tree_node_base*,_std::_Rb_tree_node_base*> pVar15;\n  \n  psVar5 = (size_type *)(__k->field_2)._M_allocated_capacity;\n  if (psVar5 != (size_type *)0x0) {\n    uVar9 = in_a2[1];\n    uVar7 = psVar5[5];\n    uVar8 = *in_a2;\n    uVar10 = psVar5[4];\n    uVar3 = uVar7;\n    if (uVar9 <= uVar7) {\n      uVar3 = uVar9;\n    }\n    if (uVar3 == 0) goto LAB_0025c8f8;\nLAB_0025c8a4:\n    iVar2 = (*(code *)PTR_memcmp_004368dc)(uVar8,uVar10,uVar3);\n    if (iVar2 == 0) goto LAB_0025c8f8;\n    if (iVar2 < 0) goto LAB_0025c904;\n    do {\n      in_v1 = (_Rb_tree_node_base *)0x0;\n      psVar1 = (size_type *)psVar5[3];\n      psVar6 = psVar5;\n      while( true ) {\n        psVar5 = psVar1;\n        if (psVar5 == (size_type *)0x0) {\n          if (in_v1 != (_Rb_tree_node_base *)0x0) goto LAB_0025c9c4;\n          lVar14 = ZEXT48(psVar6) << 0x20;\n          goto LAB_0025c91c;\n        }\n        uVar7 = psVar5[5];\n        uVar10 = psVar5[4];\n        uVar3 = uVar7;\n        if (uVar9 <= uVar7) {\n          uVar3 = uVar9;\n        }\n        if (uVar3 != 0) goto LAB_0025c8a4;\nLAB_0025c8f8:\n        if (-1 < (int)(uVar9 - uVar7)) break;\nLAB_0025c904:\n        in_v1 = (_Rb_tree_node_base *)0x1;\n        psVar1 = (size_type *)psVar5[2];\n        psVar6 = psVar5;\n      }\n    } while( true );\n  }\n  psVar6 = &__k->_M_string_length;\nLAB_0025c9c4:\n  if ((size_type *)*(undefined1 **)((int)&__k->field_2 + 4) == psVar6) {\n    (this->_M_impl).super__Rb_tree_header._M_header._M_color = (_Rb_tree_color)psVar6;\n    *(undefined4 *)&this->_M_impl = 0;\n    pVar15.first = (_Rb_tree_node_base *)this;\n    pVar15.second = in_v1;\n    return pVar15;\n  }\n  lVar14 = (*(code *)PTR__Rb_tree_decrement_00432bc4)(psVar6);\n  iVar2 = (int)((ulonglong)lVar14 >> 0x20);\n  uVar9 = in_a2[1];\n  uVar7 = *(uint *)(iVar2 + 0x14);\n  uVar10 = *(undefined4 *)(iVar2 + 0x10);\n  uVar8 = *in_a2;\n  uVar3 = uVar7;\n  if (uVar9 <= uVar7) {\n    uVar3 = uVar9;\n  }\nLAB_0025c91c:\n  uVar4 = (undefined4)lVar14;\n  if (uVar3 != 0) {\n    lVar11 = (*(code *)PTR_memcmp_004368dc)(uVar10,uVar8,uVar3);\n    uVar4 = (undefined4)lVar11;\n    if ((int)((ulonglong)lVar11 >> 0x20) != 0) goto joined_r0x0025c980;\n  }\n  lVar11 = CONCAT44(uVar7 - uVar9,uVar4);\njoined_r0x0025c980:\n  if (lVar11 < 0) {\n    (this->_M_impl).super__Rb_tree_header._M_header._M_color = (_Rb_tree_color)psVar6;\n    *(undefined4 *)&this->_M_impl = 0;\n    pVar13.first = (_Rb_tree_node_base *)this;\n    pVar13.second = (_Rb_tree_node_base *)lVar11;\n    return pVar13;\n  }\n  *(int *)&this->_M_impl = (int)((ulonglong)lVar14 >> 0x20);\n  (this->_M_impl).super__Rb_tree_header._M_header._M_color = _S_red;\n  pVar12.first = (_Rb_tree_node_base *)this;\n  pVar12.second = (_Rb_tree_node_base *)lVar11;\n  return pVar12;\n}\n\n" comment (ERROR "pair<std::_Rb_tree_node_base*,_std::_Rb_tree_node_base*>" (binary_expression "pair<std" identifier < identifier) : : (binary_expression "_Rb_tree_node_base*,_std" identifier * (ERROR "," ,) identifier) : : identifier * >) (function_definition "__thiscall\nstd::\n_Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>_>_>\n::_M_get_insert_unique_pos\n          (_Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>_>_>\n           *this,key_type *__k)\n\n{\n  size_type *psVar1;\n  difference_type __d;\n  int iVar2;\n  uint uVar3;\n  _Rb_tree_node_base *in_v1;\n  undefined4 uVar4;\n  undefined4 *in_a2;\n  size_type *psVar5;\n  size_type *psVar6;\n  uint uVar7;\n  undefined4 uVar8;\n  uint uVar9;\n  undefined4 uVar10;\n  longlong lVar11;\n  pair<std::_Rb_tree_node_base*,_std::_Rb_tree_node_base*> pVar12;\n  pair<std::_Rb_tree_node_base*,_std::_Rb_tree_node_base*> pVar13;\n  longlong lVar14;\n  pair<std::_Rb_tree_node_base*,_std::_Rb_tree_node_base*> pVar15;\n  \n  psVar5 = (size_type *)(__k->field_2)._M_allocated_capacity;\n  if (psVar5 != (size_type *)0x0) {\n    uVar9 = in_a2[1];\n    uVar7 = psVar5[5];\n    uVar8 = *in_a2;\n    uVar10 = psVar5[4];\n    uVar3 = uVar7;\n    if (uVar9 <= uVar7) {\n      uVar3 = uVar9;\n    }\n    if (uVar3 == 0) goto LAB_0025c8f8;\nLAB_0025c8a4:\n    iVar2 = (*(code *)PTR_memcmp_004368dc)(uVar8,uVar10,uVar3);\n    if (iVar2 == 0) goto LAB_0025c8f8;\n    if (iVar2 < 0) goto LAB_0025c904;\n    do {\n      in_v1 = (_Rb_tree_node_base *)0x0;\n      psVar1 = (size_type *)psVar5[3];\n      psVar6 = psVar5;\n      while( true ) {\n        psVar5 = psVar1;\n        if (psVar5 == (size_type *)0x0) {\n          if (in_v1 != (_Rb_tree_node_base *)0x0) goto LAB_0025c9c4;\n          lVar14 = ZEXT48(psVar6) << 0x20;\n          goto LAB_0025c91c;\n        }\n        uVar7 = psVar5[5];\n        uVar10 = psVar5[4];\n        uVar3 = uVar7;\n        if (uVar9 <= uVar7) {\n          uVar3 = uVar9;\n        }\n        if (uVar3 != 0) goto LAB_0025c8a4;\nLAB_0025c8f8:\n        if (-1 < (int)(uVar9 - uVar7)) break;\nLAB_0025c904:\n        in_v1 = (_Rb_tree_node_base *)0x1;\n        psVar1 = (size_type *)psVar5[2];\n        psVar6 = psVar5;\n      }\n    } while( true );\n  }\n  psVar6 = &__k->_M_string_length;\nLAB_0025c9c4:\n  if ((size_type *)*(undefined1 **)((int)&__k->field_2 + 4) == psVar6) {\n    (this->_M_impl).super__Rb_tree_header._M_header._M_color = (_Rb_tree_color)psVar6;\n    *(undefined4 *)&this->_M_impl = 0;\n    pVar15.first = (_Rb_tree_node_base *)this;\n    pVar15.second = in_v1;\n    return pVar15;\n  }\n  lVar14 = (*(code *)PTR__Rb_tree_decrement_00432bc4)(psVar6);\n  iVar2 = (int)((ulonglong)lVar14 >> 0x20);\n  uVar9 = in_a2[1];\n  uVar7 = *(uint *)(iVar2 + 0x14);\n  uVar10 = *(undefined4 *)(iVar2 + 0x10);\n  uVar8 = *in_a2;\n  uVar3 = uVar7;\n  if (uVar9 <= uVar7) {\n    uVar3 = uVar9;\n  }\nLAB_0025c91c:\n  uVar4 = (undefined4)lVar14;\n  if (uVar3 != 0) {\n    lVar11 = (*(code *)PTR_memcmp_004368dc)(uVar10,uVar8,uVar3);\n    uVar4 = (undefined4)lVar11;\n    if ((int)((ulonglong)lVar11 >> 0x20) != 0) goto joined_r0x0025c980;\n  }\n  lVar11 = CONCAT44(uVar7 - uVar9,uVar4);\njoined_r0x0025c980:\n  if (lVar11 < 0) {\n    (this->_M_impl).super__Rb_tree_header._M_header._M_color = (_Rb_tree_color)psVar6;\n    *(undefined4 *)&this->_M_impl = 0;\n    pVar13.first = (_Rb_tree_node_base *)this;\n    pVar13.second = (_Rb_tree_node_base *)lVar11;\n    return pVar13;\n  }\n  *(int *)&this->_M_impl = (int)((ulonglong)lVar14 >> 0x20);\n  (this->_M_impl).super__Rb_tree_header._M_header._M_color = _S_red;\n  pVar12.first = (_Rb_tree_node_base *)this;\n  pVar12.second = (_Rb_tree_node_base *)lVar11;\n  return pVar12;\n}" (ms_call_modifier "__thiscall" __thiscall) type_identifier (ERROR "::\n_Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>_>_>\n::" : : identifier < identifier : : identifier : : identifier < primitive_type , identifier : : identifier < primitive_type > , identifier : : identifier < primitive_type > identifier > , identifier : : identifier < identifier : : identifier : : identifier < primitive_type , identifier : : identifier < primitive_type > , identifier : : identifier < primitive_type > identifier > , identifier : : identifier : : identifier > , identifier : : identifier < identifier : : identifier < identifier : : identifier : : identifier < primitive_type , identifier : : identifier < primitive_type > , identifier : : identifier < primitive_type > identifier > , identifier : : identifier : : identifier > identifier > , identifier : : identifier < identifier : : identifier : : identifier < primitive_type , identifier : : identifier < primitive_type > , identifier : : identifier < primitive_type > identifier > identifier > , identifier : : identifier < identifier : : identifier < identifier : : identifier : : identifier < primitive_type , identifier : : identifier < primitive_type > , identifier : : identifier < primitive_type > identifier > , identifier : : identifier : : identifier > identifier > identifier > : :) (function_declarator "_M_get_insert_unique_pos\n          (_Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>_>_>\n           *this,key_type *__k)" identifier (parameter_list "(_Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>_>_>\n           *this,key_type *__k)" ( (parameter_declaration "_Rb_tree<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) (ERROR ">" >) , (parameter_declaration "_std::pair<const_std::__cxx11::basic_string" type_identifier (ERROR "::pair<const_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 "_gold::Cref_inputs::Archive_info" type_identifier (ERROR "::Cref_inputs::" : : identifier : :) identifier) (ERROR ">" >) , (parameter_declaration "_std::_Select1st<std::pair<const_std::__cxx11::basic_string" type_identifier (ERROR "::_Select1st<std::pair<const_std::__cxx11::" : : identifier < identifier : : 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 "_gold::Cref_inputs::Archive_info>_" type_identifier (ERROR "::Cref_inputs::Archive_info>" : : identifier : : identifier >) identifier) (ERROR ">" >) , (parameter_declaration "_std::less<std::__cxx11::basic_string" type_identifier (ERROR "::less<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 >) identifier) (ERROR ">" >) , (parameter_declaration "_std::allocator<std::pair<const_std::__cxx11::basic_string" type_identifier (ERROR "::allocator<std::pair<const_std::__cxx11::" : : identifier < identifier : : 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 "_gold::Cref_inputs::Archive_info>_>_>\n           *this" type_identifier (ERROR "::Cref_inputs::Archive_info>_>_>" : : identifier : : identifier > identifier > identifier >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "key_type *__k" type_identifier (pointer_declarator "*__k" * identifier)) ))) (compound_statement "{\n  size_type *psVar1;\n  difference_type __d;\n  int iVar2;\n  uint uVar3;\n  _Rb_tree_node_base *in_v1;\n  undefined4 uVar4;\n  undefined4 *in_a2;\n  size_type *psVar5;\n  size_type *psVar6;\n  uint uVar7;\n  undefined4 uVar8;\n  uint uVar9;\n  undefined4 uVar10;\n  longlong lVar11;\n  pair<std::_Rb_tree_node_base*,_std::_Rb_tree_node_base*> pVar12;\n  pair<std::_Rb_tree_node_base*,_std::_Rb_tree_node_base*> pVar13;\n  longlong lVar14;\n  pair<std::_Rb_tree_node_base*,_std::_Rb_tree_node_base*> pVar15;\n  \n  psVar5 = (size_type *)(__k->field_2)._M_allocated_capacity;\n  if (psVar5 != (size_type *)0x0) {\n    uVar9 = in_a2[1];\n    uVar7 = psVar5[5];\n    uVar8 = *in_a2;\n    uVar10 = psVar5[4];\n    uVar3 = uVar7;\n    if (uVar9 <= uVar7) {\n      uVar3 = uVar9;\n    }\n    if (uVar3 == 0) goto LAB_0025c8f8;\nLAB_0025c8a4:\n    iVar2 = (*(code *)PTR_memcmp_004368dc)(uVar8,uVar10,uVar3);\n    if (iVar2 == 0) goto LAB_0025c8f8;\n    if (iVar2 < 0) goto LAB_0025c904;\n    do {\n      in_v1 = (_Rb_tree_node_base *)0x0;\n      psVar1 = (size_type *)psVar5[3];\n      psVar6 = psVar5;\n      while( true ) {\n        psVar5 = psVar1;\n        if (psVar5 == (size_type *)0x0) {\n          if (in_v1 != (_Rb_tree_node_base *)0x0) goto LAB_0025c9c4;\n          lVar14 = ZEXT48(psVar6) << 0x20;\n          goto LAB_0025c91c;\n        }\n        uVar7 = psVar5[5];\n        uVar10 = psVar5[4];\n        uVar3 = uVar7;\n        if (uVar9 <= uVar7) {\n          uVar3 = uVar9;\n        }\n        if (uVar3 != 0) goto LAB_0025c8a4;\nLAB_0025c8f8:\n        if (-1 < (int)(uVar9 - uVar7)) break;\nLAB_0025c904:\n        in_v1 = (_Rb_tree_node_base *)0x1;\n        psVar1 = (size_type *)psVar5[2];\n        psVar6 = psVar5;\n      }\n    } while( true );\n  }\n  psVar6 = &__k->_M_string_length;\nLAB_0025c9c4:\n  if ((size_type *)*(undefined1 **)((int)&__k->field_2 + 4) == psVar6) {\n    (this->_M_impl).super__Rb_tree_header._M_header._M_color = (_Rb_tree_color)psVar6;\n    *(undefined4 *)&this->_M_impl = 0;\n    pVar15.first = (_Rb_tree_node_base *)this;\n    pVar15.second = in_v1;\n    return pVar15;\n  }\n  lVar14 = (*(code *)PTR__Rb_tree_decrement_00432bc4)(psVar6);\n  iVar2 = (int)((ulonglong)lVar14 >> 0x20);\n  uVar9 = in_a2[1];\n  uVar7 = *(uint *)(iVar2 + 0x14);\n  uVar10 = *(undefined4 *)(iVar2 + 0x10);\n  uVar8 = *in_a2;\n  uVar3 = uVar7;\n  if (uVar9 <= uVar7) {\n    uVar3 = uVar9;\n  }\nLAB_0025c91c:\n  uVar4 = (undefined4)lVar14;\n  if (uVar3 != 0) {\n    lVar11 = (*(code *)PTR_memcmp_004368dc)(uVar10,uVar8,uVar3);\n    uVar4 = (undefined4)lVar11;\n    if ((int)((ulonglong)lVar11 >> 0x20) != 0) goto joined_r0x0025c980;\n  }\n  lVar11 = CONCAT44(uVar7 - uVar9,uVar4);\njoined_r0x0025c980:\n  if (lVar11 < 0) {\n    (this->_M_impl).super__Rb_tree_header._M_header._M_color = (_Rb_tree_color)psVar6;\n    *(undefined4 *)&this->_M_impl = 0;\n    pVar13.first = (_Rb_tree_node_base *)this;\n    pVar13.second = (_Rb_tree_node_base *)lVar11;\n    return pVar13;\n  }\n  *(int *)&this->_M_impl = (int)((ulonglong)lVar14 >> 0x20);\n  (this->_M_impl).super__Rb_tree_header._M_header._M_color = _S_red;\n  pVar12.first = (_Rb_tree_node_base *)this;\n  pVar12.second = (_Rb_tree_node_base *)lVar11;\n  return pVar12;\n}" { (declaration "size_type *psVar1;" type_identifier (pointer_declarator "*psVar1" * identifier) ;) (declaration "difference_type __d;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "_Rb_tree_node_base *in_v1;" type_identifier (pointer_declarator "*in_v1" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined4 *in_a2;" type_identifier (pointer_declarator "*in_a2" * identifier) ;) (declaration "size_type *psVar5;" type_identifier (pointer_declarator "*psVar5" * identifier) ;) (declaration "size_type *psVar6;" type_identifier (pointer_declarator "*psVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "longlong lVar11;" type_identifier identifier ;) (ERROR "pair<std::_Rb_tree_node_base*,_std::" (binary_expression "pair<std" identifier < identifier) : : (binary_expression "_Rb_tree_node_base*,_std" identifier * (ERROR "," ,) identifier) : :) (expression_statement "_Rb_tree_node_base*> pVar12;" (binary_expression "_Rb_tree_node_base*> pVar12" identifier * (ERROR ">" >) identifier) ;) (ERROR "pair<std::_Rb_tree_node_base*,_std::" (binary_expression "pair<std" identifier < identifier) : : (binary_expression "_Rb_tree_node_base*,_std" identifier * (ERROR "," ,) identifier) : :) (expression_statement "_Rb_tree_node_base*> pVar13;" (binary_expression "_Rb_tree_node_base*> pVar13" identifier * (ERROR ">" >) identifier) ;) (declaration "longlong lVar14;" type_identifier identifier ;) (ERROR "pair<std::_Rb_tree_node_base*,_std::" (binary_expression "pair<std" identifier < identifier) : : (binary_expression "_Rb_tree_node_base*,_std" identifier * (ERROR "," ,) identifier) : :) (expression_statement "_Rb_tree_node_base*> pVar15;" (binary_expression "_Rb_tree_node_base*> pVar15" identifier * (ERROR ">" >) identifier) ;) (expression_statement "psVar5 = (size_type *)(__k->field_2)._M_allocated_capacity;" (assignment_expression "psVar5 = (size_type *)(__k->field_2)._M_allocated_capacity" identifier = (cast_expression "(size_type *)(__k->field_2)._M_allocated_capacity" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(__k->field_2)._M_allocated_capacity" (parenthesized_expression "(__k->field_2)" ( (field_expression "__k->field_2" identifier -> field_identifier) )) . field_identifier))) ;) (if_statement "if (psVar5 != (size_type *)0x0) {\n    uVar9 = in_a2[1];\n    uVar7 = psVar5[5];\n    uVar8 = *in_a2;\n    uVar10 = psVar5[4];\n    uVar3 = uVar7;\n    if (uVar9 <= uVar7) {\n      uVar3 = uVar9;\n    }\n    if (uVar3 == 0) goto LAB_0025c8f8;\nLAB_0025c8a4:\n    iVar2 = (*(code *)PTR_memcmp_004368dc)(uVar8,uVar10,uVar3);\n    if (iVar2 == 0) goto LAB_0025c8f8;\n    if (iVar2 < 0) goto LAB_0025c904;\n    do {\n      in_v1 = (_Rb_tree_node_base *)0x0;\n      psVar1 = (size_type *)psVar5[3];\n      psVar6 = psVar5;\n      while( true ) {\n        psVar5 = psVar1;\n        if (psVar5 == (size_type *)0x0) {\n          if (in_v1 != (_Rb_tree_node_base *)0x0) goto LAB_0025c9c4;\n          lVar14 = ZEXT48(psVar6) << 0x20;\n          goto LAB_0025c91c;\n        }\n        uVar7 = psVar5[5];\n        uVar10 = psVar5[4];\n        uVar3 = uVar7;\n        if (uVar9 <= uVar7) {\n          uVar3 = uVar9;\n        }\n        if (uVar3 != 0) goto LAB_0025c8a4;\nLAB_0025c8f8:\n        if (-1 < (int)(uVar9 - uVar7)) break;\nLAB_0025c904:\n        in_v1 = (_Rb_tree_node_base *)0x1;\n        psVar1 = (size_type *)psVar5[2];\n        psVar6 = psVar5;\n      }\n    } while( true );\n  }" if (parenthesized_expression "(psVar5 != (size_type *)0x0)" ( (binary_expression "psVar5 != (size_type *)0x0" identifier != (cast_expression "(size_type *)0x0" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar9 = in_a2[1];\n    uVar7 = psVar5[5];\n    uVar8 = *in_a2;\n    uVar10 = psVar5[4];\n    uVar3 = uVar7;\n    if (uVar9 <= uVar7) {\n      uVar3 = uVar9;\n    }\n    if (uVar3 == 0) goto LAB_0025c8f8;\nLAB_0025c8a4:\n    iVar2 = (*(code *)PTR_memcmp_004368dc)(uVar8,uVar10,uVar3);\n    if (iVar2 == 0) goto LAB_0025c8f8;\n    if (iVar2 < 0) goto LAB_0025c904;\n    do {\n      in_v1 = (_Rb_tree_node_base *)0x0;\n      psVar1 = (size_type *)psVar5[3];\n      psVar6 = psVar5;\n      while( true ) {\n        psVar5 = psVar1;\n        if (psVar5 == (size_type *)0x0) {\n          if (in_v1 != (_Rb_tree_node_base *)0x0) goto LAB_0025c9c4;\n          lVar14 = ZEXT48(psVar6) << 0x20;\n          goto LAB_0025c91c;\n        }\n        uVar7 = psVar5[5];\n        uVar10 = psVar5[4];\n        uVar3 = uVar7;\n        if (uVar9 <= uVar7) {\n          uVar3 = uVar9;\n        }\n        if (uVar3 != 0) goto LAB_0025c8a4;\nLAB_0025c8f8:\n        if (-1 < (int)(uVar9 - uVar7)) break;\nLAB_0025c904:\n        in_v1 = (_Rb_tree_node_base *)0x1;\n        psVar1 = (size_type *)psVar5[2];\n        psVar6 = psVar5;\n      }\n    } while( true );\n  }" { (expression_statement "uVar9 = in_a2[1];" (assignment_expression "uVar9 = in_a2[1]" identifier = (subscript_expression "in_a2[1]" identifier [ number_literal ])) ;) (expression_statement "uVar7 = psVar5[5];" (assignment_expression "uVar7 = psVar5[5]" identifier = (subscript_expression "psVar5[5]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = *in_a2;" (assignment_expression "uVar8 = *in_a2" identifier = (pointer_expression "*in_a2" * identifier)) ;) (expression_statement "uVar10 = psVar5[4];" (assignment_expression "uVar10 = psVar5[4]" identifier = (subscript_expression "psVar5[4]" identifier [ number_literal ])) ;) (expression_statement "uVar3 = uVar7;" (assignment_expression "uVar3 = uVar7" identifier = identifier) ;) (if_statement "if (uVar9 <= uVar7) {\n      uVar3 = uVar9;\n    }" if (parenthesized_expression "(uVar9 <= uVar7)" ( (binary_expression "uVar9 <= uVar7" identifier <= identifier) )) (compound_statement "{\n      uVar3 = uVar9;\n    }" { (expression_statement "uVar3 = uVar9;" (assignment_expression "uVar3 = uVar9" identifier = identifier) ;) })) (if_statement "if (uVar3 == 0) goto LAB_0025c8f8;" if (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0025c8f8;" goto statement_identifier ;)) (labeled_statement "LAB_0025c8a4:\n    iVar2 = (*(code *)PTR_memcmp_004368dc)(uVar8,uVar10,uVar3);" statement_identifier : (expression_statement "iVar2 = (*(code *)PTR_memcmp_004368dc)(uVar8,uVar10,uVar3);" (assignment_expression "iVar2 = (*(code *)PTR_memcmp_004368dc)(uVar8,uVar10,uVar3)" identifier = (call_expression "(*(code *)PTR_memcmp_004368dc)(uVar8,uVar10,uVar3)" (parenthesized_expression "(*(code *)PTR_memcmp_004368dc)" ( (pointer_expression "*(code *)PTR_memcmp_004368dc" * (cast_expression "(code *)PTR_memcmp_004368dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar8,uVar10,uVar3)" ( identifier , identifier , identifier )))) ;)) (if_statement "if (iVar2 == 0) goto LAB_0025c8f8;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0025c8f8;" goto statement_identifier ;)) (if_statement "if (iVar2 < 0) goto LAB_0025c904;" if (parenthesized_expression "(iVar2 < 0)" ( (binary_expression "iVar2 < 0" identifier < number_literal) )) (goto_statement "goto LAB_0025c904;" goto statement_identifier ;)) (do_statement "do {\n      in_v1 = (_Rb_tree_node_base *)0x0;\n      psVar1 = (size_type *)psVar5[3];\n      psVar6 = psVar5;\n      while( true ) {\n        psVar5 = psVar1;\n        if (psVar5 == (size_type *)0x0) {\n          if (in_v1 != (_Rb_tree_node_base *)0x0) goto LAB_0025c9c4;\n          lVar14 = ZEXT48(psVar6) << 0x20;\n          goto LAB_0025c91c;\n        }\n        uVar7 = psVar5[5];\n        uVar10 = psVar5[4];\n        uVar3 = uVar7;\n        if (uVar9 <= uVar7) {\n          uVar3 = uVar9;\n        }\n        if (uVar3 != 0) goto LAB_0025c8a4;\nLAB_0025c8f8:\n        if (-1 < (int)(uVar9 - uVar7)) break;\nLAB_0025c904:\n        in_v1 = (_Rb_tree_node_base *)0x1;\n        psVar1 = (size_type *)psVar5[2];\n        psVar6 = psVar5;\n      }\n    } while( true );" do (compound_statement "{\n      in_v1 = (_Rb_tree_node_base *)0x0;\n      psVar1 = (size_type *)psVar5[3];\n      psVar6 = psVar5;\n      while( true ) {\n        psVar5 = psVar1;\n        if (psVar5 == (size_type *)0x0) {\n          if (in_v1 != (_Rb_tree_node_base *)0x0) goto LAB_0025c9c4;\n          lVar14 = ZEXT48(psVar6) << 0x20;\n          goto LAB_0025c91c;\n        }\n        uVar7 = psVar5[5];\n        uVar10 = psVar5[4];\n        uVar3 = uVar7;\n        if (uVar9 <= uVar7) {\n          uVar3 = uVar9;\n        }\n        if (uVar3 != 0) goto LAB_0025c8a4;\nLAB_0025c8f8:\n        if (-1 < (int)(uVar9 - uVar7)) break;\nLAB_0025c904:\n        in_v1 = (_Rb_tree_node_base *)0x1;\n        psVar1 = (size_type *)psVar5[2];\n        psVar6 = psVar5;\n      }\n    }" { (expression_statement "in_v1 = (_Rb_tree_node_base *)0x0;" (assignment_expression "in_v1 = (_Rb_tree_node_base *)0x0" identifier = (cast_expression "(_Rb_tree_node_base *)0x0" ( (type_descriptor "_Rb_tree_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "psVar1 = (size_type *)psVar5[3];" (assignment_expression "psVar1 = (size_type *)psVar5[3]" identifier = (cast_expression "(size_type *)psVar5[3]" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "psVar5[3]" identifier [ number_literal ]))) ;) (expression_statement "psVar6 = psVar5;" (assignment_expression "psVar6 = psVar5" identifier = identifier) ;) (while_statement "while( true ) {\n        psVar5 = psVar1;\n        if (psVar5 == (size_type *)0x0) {\n          if (in_v1 != (_Rb_tree_node_base *)0x0) goto LAB_0025c9c4;\n          lVar14 = ZEXT48(psVar6) << 0x20;\n          goto LAB_0025c91c;\n        }\n        uVar7 = psVar5[5];\n        uVar10 = psVar5[4];\n        uVar3 = uVar7;\n        if (uVar9 <= uVar7) {\n          uVar3 = uVar9;\n        }\n        if (uVar3 != 0) goto LAB_0025c8a4;\nLAB_0025c8f8:\n        if (-1 < (int)(uVar9 - uVar7)) break;\nLAB_0025c904:\n        in_v1 = (_Rb_tree_node_base *)0x1;\n        psVar1 = (size_type *)psVar5[2];\n        psVar6 = psVar5;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        psVar5 = psVar1;\n        if (psVar5 == (size_type *)0x0) {\n          if (in_v1 != (_Rb_tree_node_base *)0x0) goto LAB_0025c9c4;\n          lVar14 = ZEXT48(psVar6) << 0x20;\n          goto LAB_0025c91c;\n        }\n        uVar7 = psVar5[5];\n        uVar10 = psVar5[4];\n        uVar3 = uVar7;\n        if (uVar9 <= uVar7) {\n          uVar3 = uVar9;\n        }\n        if (uVar3 != 0) goto LAB_0025c8a4;\nLAB_0025c8f8:\n        if (-1 < (int)(uVar9 - uVar7)) break;\nLAB_0025c904:\n        in_v1 = (_Rb_tree_node_base *)0x1;\n        psVar1 = (size_type *)psVar5[2];\n        psVar6 = psVar5;\n      }" { (expression_statement "psVar5 = psVar1;" (assignment_expression "psVar5 = psVar1" identifier = identifier) ;) (if_statement "if (psVar5 == (size_type *)0x0) {\n          if (in_v1 != (_Rb_tree_node_base *)0x0) goto LAB_0025c9c4;\n          lVar14 = ZEXT48(psVar6) << 0x20;\n          goto LAB_0025c91c;\n        }" if (parenthesized_expression "(psVar5 == (size_type *)0x0)" ( (binary_expression "psVar5 == (size_type *)0x0" identifier == (cast_expression "(size_type *)0x0" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if (in_v1 != (_Rb_tree_node_base *)0x0) goto LAB_0025c9c4;\n          lVar14 = ZEXT48(psVar6) << 0x20;\n          goto LAB_0025c91c;\n        }" { (if_statement "if (in_v1 != (_Rb_tree_node_base *)0x0) goto LAB_0025c9c4;" if (parenthesized_expression "(in_v1 != (_Rb_tree_node_base *)0x0)" ( (binary_expression "in_v1 != (_Rb_tree_node_base *)0x0" identifier != (cast_expression "(_Rb_tree_node_base *)0x0" ( (type_descriptor "_Rb_tree_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0025c9c4;" goto statement_identifier ;)) (expression_statement "lVar14 = ZEXT48(psVar6) << 0x20;" (assignment_expression "lVar14 = ZEXT48(psVar6) << 0x20" identifier = (binary_expression "ZEXT48(psVar6) << 0x20" (call_expression "ZEXT48(psVar6)" identifier (argument_list "(psVar6)" ( identifier ))) << number_literal)) ;) (goto_statement "goto LAB_0025c91c;" goto statement_identifier ;) })) (expression_statement "uVar7 = psVar5[5];" (assignment_expression "uVar7 = psVar5[5]" identifier = (subscript_expression "psVar5[5]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = psVar5[4];" (assignment_expression "uVar10 = psVar5[4]" identifier = (subscript_expression "psVar5[4]" identifier [ number_literal ])) ;) (expression_statement "uVar3 = uVar7;" (assignment_expression "uVar3 = uVar7" identifier = identifier) ;) (if_statement "if (uVar9 <= uVar7) {\n          uVar3 = uVar9;\n        }" if (parenthesized_expression "(uVar9 <= uVar7)" ( (binary_expression "uVar9 <= uVar7" identifier <= identifier) )) (compound_statement "{\n          uVar3 = uVar9;\n        }" { (expression_statement "uVar3 = uVar9;" (assignment_expression "uVar3 = uVar9" identifier = identifier) ;) })) (if_statement "if (uVar3 != 0) goto LAB_0025c8a4;" if (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0025c8a4;" goto statement_identifier ;)) (labeled_statement "LAB_0025c8f8:\n        if (-1 < (int)(uVar9 - uVar7)) break;" statement_identifier : (if_statement "if (-1 < (int)(uVar9 - uVar7)) break;" if (parenthesized_expression "(-1 < (int)(uVar9 - uVar7))" ( (binary_expression "-1 < (int)(uVar9 - uVar7)" number_literal < (cast_expression "(int)(uVar9 - uVar7)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar9 - uVar7)" ( (binary_expression "uVar9 - uVar7" identifier - identifier) )))) )) (break_statement "break;" break ;))) (labeled_statement "LAB_0025c904:\n        in_v1 = (_Rb_tree_node_base *)0x1;" statement_identifier : (expression_statement "in_v1 = (_Rb_tree_node_base *)0x1;" (assignment_expression "in_v1 = (_Rb_tree_node_base *)0x1" identifier = (cast_expression "(_Rb_tree_node_base *)0x1" ( (type_descriptor "_Rb_tree_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "psVar1 = (size_type *)psVar5[2];" (assignment_expression "psVar1 = (size_type *)psVar5[2]" identifier = (cast_expression "(size_type *)psVar5[2]" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "psVar5[2]" identifier [ number_literal ]))) ;) (expression_statement "psVar6 = psVar5;" (assignment_expression "psVar6 = psVar5" identifier = identifier) ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "psVar6 = &__k->_M_string_length;" (assignment_expression "psVar6 = &__k->_M_string_length" identifier = (pointer_expression "&__k->_M_string_length" & (field_expression "__k->_M_string_length" identifier -> field_identifier))) ;) (labeled_statement "LAB_0025c9c4:\n  if ((size_type *)*(undefined1 **)((int)&__k->field_2 + 4) == psVar6) {\n    (this->_M_impl).super__Rb_tree_header._M_header._M_color = (_Rb_tree_color)psVar6;\n    *(undefined4 *)&this->_M_impl = 0;\n    pVar15.first = (_Rb_tree_node_base *)this;\n    pVar15.second = in_v1;\n    return pVar15;\n  }" statement_identifier : (if_statement "if ((size_type *)*(undefined1 **)((int)&__k->field_2 + 4) == psVar6) {\n    (this->_M_impl).super__Rb_tree_header._M_header._M_color = (_Rb_tree_color)psVar6;\n    *(undefined4 *)&this->_M_impl = 0;\n    pVar15.first = (_Rb_tree_node_base *)this;\n    pVar15.second = in_v1;\n    return pVar15;\n  }" if (parenthesized_expression "((size_type *)*(undefined1 **)((int)&__k->field_2 + 4) == psVar6)" ( (binary_expression "(size_type *)*(undefined1 **)((int)&__k->field_2 + 4) == psVar6" (cast_expression "(size_type *)*(undefined1 **)((int)&__k->field_2 + 4)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*(undefined1 **)((int)&__k->field_2 + 4)" * (cast_expression "(undefined1 **)((int)&__k->field_2 + 4)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&__k->field_2 + 4)" ( (binary_expression "(int)&__k->field_2 + 4" (cast_expression "(int)&__k->field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__k->field_2" & (field_expression "__k->field_2" identifier -> field_identifier))) + number_literal) ))))) == identifier) )) (compound_statement "{\n    (this->_M_impl).super__Rb_tree_header._M_header._M_color = (_Rb_tree_color)psVar6;\n    *(undefined4 *)&this->_M_impl = 0;\n    pVar15.first = (_Rb_tree_node_base *)this;\n    pVar15.second = in_v1;\n    return pVar15;\n  }" { (expression_statement "(this->_M_impl).super__Rb_tree_header._M_header._M_color = (_Rb_tree_color)psVar6;" (assignment_expression "(this->_M_impl).super__Rb_tree_header._M_header._M_color = (_Rb_tree_color)psVar6" (field_expression "(this->_M_impl).super__Rb_tree_header._M_header._M_color" (field_expression "(this->_M_impl).super__Rb_tree_header._M_header" (field_expression "(this->_M_impl).super__Rb_tree_header" (parenthesized_expression "(this->_M_impl)" ( (field_expression "this->_M_impl" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(_Rb_tree_color)psVar6" ( (type_descriptor "_Rb_tree_color" type_identifier) ) identifier)) ;) (expression_statement "*(undefined4 *)&this->_M_impl = 0;" (assignment_expression "*(undefined4 *)&this->_M_impl = 0" (pointer_expression "*(undefined4 *)&this->_M_impl" * (cast_expression "(undefined4 *)&this->_M_impl" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->_M_impl" & (field_expression "this->_M_impl" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "pVar15.first = (_Rb_tree_node_base *)this;" (assignment_expression "pVar15.first = (_Rb_tree_node_base *)this" (field_expression "pVar15.first" identifier . field_identifier) = (cast_expression "(_Rb_tree_node_base *)this" ( (type_descriptor "_Rb_tree_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pVar15.second = in_v1;" (assignment_expression "pVar15.second = in_v1" (field_expression "pVar15.second" identifier . field_identifier) = identifier) ;) (return_statement "return pVar15;" return identifier ;) }))) (expression_statement "lVar14 = (*(code *)PTR__Rb_tree_decrement_00432bc4)(psVar6);" (assignment_expression "lVar14 = (*(code *)PTR__Rb_tree_decrement_00432bc4)(psVar6)" identifier = (call_expression "(*(code *)PTR__Rb_tree_decrement_00432bc4)(psVar6)" (parenthesized_expression "(*(code *)PTR__Rb_tree_decrement_00432bc4)" ( (pointer_expression "*(code *)PTR__Rb_tree_decrement_00432bc4" * (cast_expression "(code *)PTR__Rb_tree_decrement_00432bc4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(psVar6)" ( identifier )))) ;) (expression_statement "iVar2 = (int)((ulonglong)lVar14 >> 0x20);" (assignment_expression "iVar2 = (int)((ulonglong)lVar14 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar14 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar14 >> 0x20)" ( (binary_expression "(ulonglong)lVar14 >> 0x20" (cast_expression "(ulonglong)lVar14" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar9 = in_a2[1];" (assignment_expression "uVar9 = in_a2[1]" identifier = (subscript_expression "in_a2[1]" identifier [ number_literal ])) ;) (expression_statement "uVar7 = *(uint *)(iVar2 + 0x14);" (assignment_expression "uVar7 = *(uint *)(iVar2 + 0x14)" identifier = (pointer_expression "*(uint *)(iVar2 + 0x14)" * (cast_expression "(uint *)(iVar2 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x14)" ( (binary_expression "iVar2 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = *(undefined4 *)(iVar2 + 0x10);" (assignment_expression "uVar10 = *(undefined4 *)(iVar2 + 0x10)" identifier = (pointer_expression "*(undefined4 *)(iVar2 + 0x10)" * (cast_expression "(undefined4 *)(iVar2 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x10)" ( (binary_expression "iVar2 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = *in_a2;" (assignment_expression "uVar8 = *in_a2" identifier = (pointer_expression "*in_a2" * identifier)) ;) (expression_statement "uVar3 = uVar7;" (assignment_expression "uVar3 = uVar7" identifier = identifier) ;) (if_statement "if (uVar9 <= uVar7) {\n    uVar3 = uVar9;\n  }" if (parenthesized_expression "(uVar9 <= uVar7)" ( (binary_expression "uVar9 <= uVar7" identifier <= identifier) )) (compound_statement "{\n    uVar3 = uVar9;\n  }" { (expression_statement "uVar3 = uVar9;" (assignment_expression "uVar3 = uVar9" identifier = identifier) ;) })) (labeled_statement "LAB_0025c91c:\n  uVar4 = (undefined4)lVar14;" statement_identifier : (expression_statement "uVar4 = (undefined4)lVar14;" (assignment_expression "uVar4 = (undefined4)lVar14" identifier = (cast_expression "(undefined4)lVar14" ( (type_descriptor "undefined4" type_identifier) ) identifier)) ;)) (if_statement "if (uVar3 != 0) {\n    lVar11 = (*(code *)PTR_memcmp_004368dc)(uVar10,uVar8,uVar3);\n    uVar4 = (undefined4)lVar11;\n    if ((int)((ulonglong)lVar11 >> 0x20) != 0) goto joined_r0x0025c980;\n  }" if (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    lVar11 = (*(code *)PTR_memcmp_004368dc)(uVar10,uVar8,uVar3);\n    uVar4 = (undefined4)lVar11;\n    if ((int)((ulonglong)lVar11 >> 0x20) != 0) goto joined_r0x0025c980;\n  }" { (expression_statement "lVar11 = (*(code *)PTR_memcmp_004368dc)(uVar10,uVar8,uVar3);" (assignment_expression "lVar11 = (*(code *)PTR_memcmp_004368dc)(uVar10,uVar8,uVar3)" identifier = (call_expression "(*(code *)PTR_memcmp_004368dc)(uVar10,uVar8,uVar3)" (parenthesized_expression "(*(code *)PTR_memcmp_004368dc)" ( (pointer_expression "*(code *)PTR_memcmp_004368dc" * (cast_expression "(code *)PTR_memcmp_004368dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar10,uVar8,uVar3)" ( identifier , identifier , identifier )))) ;) (expression_statement "uVar4 = (undefined4)lVar11;" (assignment_expression "uVar4 = (undefined4)lVar11" identifier = (cast_expression "(undefined4)lVar11" ( (type_descriptor "undefined4" type_identifier) ) identifier)) ;) (if_statement "if ((int)((ulonglong)lVar11 >> 0x20) != 0) goto joined_r0x0025c980;" if (parenthesized_expression "((int)((ulonglong)lVar11 >> 0x20) != 0)" ( (binary_expression "(int)((ulonglong)lVar11 >> 0x20) != 0" (cast_expression "(int)((ulonglong)lVar11 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar11 >> 0x20)" ( (binary_expression "(ulonglong)lVar11 >> 0x20" (cast_expression "(ulonglong)lVar11" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) != number_literal) )) (goto_statement "goto joined_r0x0025c980;" goto statement_identifier ;)) })) (expression_statement "lVar11 = CONCAT44(uVar7 - uVar9,uVar4);" (assignment_expression "lVar11 = CONCAT44(uVar7 - uVar9,uVar4)" identifier = (call_expression "CONCAT44(uVar7 - uVar9,uVar4)" identifier (argument_list "(uVar7 - uVar9,uVar4)" ( (binary_expression "uVar7 - uVar9" identifier - identifier) , identifier )))) ;) (labeled_statement "joined_r0x0025c980:\n  if (lVar11 < 0) {\n    (this->_M_impl).super__Rb_tree_header._M_header._M_color = (_Rb_tree_color)psVar6;\n    *(undefined4 *)&this->_M_impl = 0;\n    pVar13.first = (_Rb_tree_node_base *)this;\n    pVar13.second = (_Rb_tree_node_base *)lVar11;\n    return pVar13;\n  }" statement_identifier : (if_statement "if (lVar11 < 0) {\n    (this->_M_impl).super__Rb_tree_header._M_header._M_color = (_Rb_tree_color)psVar6;\n    *(undefined4 *)&this->_M_impl = 0;\n    pVar13.first = (_Rb_tree_node_base *)this;\n    pVar13.second = (_Rb_tree_node_base *)lVar11;\n    return pVar13;\n  }" if (parenthesized_expression "(lVar11 < 0)" ( (binary_expression "lVar11 < 0" identifier < number_literal) )) (compound_statement "{\n    (this->_M_impl).super__Rb_tree_header._M_header._M_color = (_Rb_tree_color)psVar6;\n    *(undefined4 *)&this->_M_impl = 0;\n    pVar13.first = (_Rb_tree_node_base *)this;\n    pVar13.second = (_Rb_tree_node_base *)lVar11;\n    return pVar13;\n  }" { (expression_statement "(this->_M_impl).super__Rb_tree_header._M_header._M_color = (_Rb_tree_color)psVar6;" (assignment_expression "(this->_M_impl).super__Rb_tree_header._M_header._M_color = (_Rb_tree_color)psVar6" (field_expression "(this->_M_impl).super__Rb_tree_header._M_header._M_color" (field_expression "(this->_M_impl).super__Rb_tree_header._M_header" (field_expression "(this->_M_impl).super__Rb_tree_header" (parenthesized_expression "(this->_M_impl)" ( (field_expression "this->_M_impl" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(_Rb_tree_color)psVar6" ( (type_descriptor "_Rb_tree_color" type_identifier) ) identifier)) ;) (expression_statement "*(undefined4 *)&this->_M_impl = 0;" (assignment_expression "*(undefined4 *)&this->_M_impl = 0" (pointer_expression "*(undefined4 *)&this->_M_impl" * (cast_expression "(undefined4 *)&this->_M_impl" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->_M_impl" & (field_expression "this->_M_impl" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "pVar13.first = (_Rb_tree_node_base *)this;" (assignment_expression "pVar13.first = (_Rb_tree_node_base *)this" (field_expression "pVar13.first" identifier . field_identifier) = (cast_expression "(_Rb_tree_node_base *)this" ( (type_descriptor "_Rb_tree_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pVar13.second = (_Rb_tree_node_base *)lVar11;" (assignment_expression "pVar13.second = (_Rb_tree_node_base *)lVar11" (field_expression "pVar13.second" identifier . field_identifier) = (cast_expression "(_Rb_tree_node_base *)lVar11" ( (type_descriptor "_Rb_tree_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (return_statement "return pVar13;" return identifier ;) }))) (expression_statement "*(int *)&this->_M_impl = (int)((ulonglong)lVar14 >> 0x20);" (assignment_expression "*(int *)&this->_M_impl = (int)((ulonglong)lVar14 >> 0x20)" (pointer_expression "*(int *)&this->_M_impl" * (cast_expression "(int *)&this->_M_impl" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->_M_impl" & (field_expression "this->_M_impl" identifier -> field_identifier)))) = (cast_expression "(int)((ulonglong)lVar14 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar14 >> 0x20)" ( (binary_expression "(ulonglong)lVar14 >> 0x20" (cast_expression "(ulonglong)lVar14" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "(this->_M_impl).super__Rb_tree_header._M_header._M_color = _S_red;" (assignment_expression "(this->_M_impl).super__Rb_tree_header._M_header._M_color = _S_red" (field_expression "(this->_M_impl).super__Rb_tree_header._M_header._M_color" (field_expression "(this->_M_impl).super__Rb_tree_header._M_header" (field_expression "(this->_M_impl).super__Rb_tree_header" (parenthesized_expression "(this->_M_impl)" ( (field_expression "this->_M_impl" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "pVar12.first = (_Rb_tree_node_base *)this;" (assignment_expression "pVar12.first = (_Rb_tree_node_base *)this" (field_expression "pVar12.first" identifier . field_identifier) = (cast_expression "(_Rb_tree_node_base *)this" ( (type_descriptor "_Rb_tree_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pVar12.second = (_Rb_tree_node_base *)lVar11;" (assignment_expression "pVar12.second = (_Rb_tree_node_base *)lVar11" (field_expression "pVar12.second" identifier . field_identifier) = (cast_expression "(_Rb_tree_node_base *)lVar11" ( (type_descriptor "_Rb_tree_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (return_statement "return pVar12;" return identifier ;) })))
(translation_unit "string * std::\n         _Rb_tree<std::string,std::pair<std::string_const,gold::Cref_inputs::Archive_info>,std::_Select1st<std::pair<std::string_const,gold::Cref_inputs::Archive_info>>,std::less<std::string>,std::allocator<std::pair<std::string_const,gold::Cref_inputs::Archive_info>>>\n         ::_M_get_insert_unique_pos(string *param_1)\n\n{\n  bool bVar1;\n  int iVar2;\n  uint uVar3;\n  int iVar4;\n  int in_a1;\n  undefined4 *in_a2;\n  int iVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  uint uVar8;\n  undefined4 uVar9;\n  \n  iVar5 = *(int *)(in_a1 + 8);\n  if (iVar5 == 0) {\n    iVar2 = in_a1 + 4;\nLAB_0025c9c4:\n    if (*(int *)(in_a1 + 0xc) == iVar2) {\n      *(int *)(param_1 + 4) = iVar2;\n      *(undefined4 *)param_1 = 0;\n      return param_1;\n    }\n    iVar5 = (*(code *)PTR__Rb_tree_decrement_00432bc4)(iVar2);\n    uVar8 = in_a2[1];\n    uVar6 = *(uint *)(iVar5 + 0x14);\n    uVar9 = *(undefined4 *)(iVar5 + 0x10);\n    uVar7 = *in_a2;\n    uVar3 = uVar6;\n    if (uVar8 <= uVar6) {\n      uVar3 = uVar8;\n    }\nLAB_0025c91c:\n    if ((uVar3 == 0) || (iVar4 = (*(code *)PTR_memcmp_004368dc)(uVar9,uVar7,uVar3), iVar4 == 0)) {\n      iVar4 = uVar6 - uVar8;\n    }\n    if (iVar4 < 0) {\n      *(int *)(param_1 + 4) = iVar2;\n      *(undefined4 *)param_1 = 0;\n      return param_1;\n    }\n    *(int *)param_1 = iVar5;\n    *(undefined4 *)(param_1 + 4) = 0;\n    return param_1;\n  }\n  uVar8 = in_a2[1];\n  uVar6 = *(uint *)(iVar5 + 0x14);\n  uVar7 = *in_a2;\n  uVar9 = *(undefined4 *)(iVar5 + 0x10);\n  uVar3 = uVar6;\n  if (uVar8 <= uVar6) {\n    uVar3 = uVar8;\n  }\n  if (uVar3 == 0) goto LAB_0025c8f8;\nLAB_0025c8a4:\n  iVar2 = (*(code *)PTR_memcmp_004368dc)(uVar7,uVar9,uVar3);\n  if (iVar2 == 0) goto LAB_0025c8f8;\n  if (iVar2 < 0) goto LAB_0025c904;\n  do {\n    bVar1 = false;\n    iVar4 = *(int *)(iVar5 + 0xc);\n    iVar2 = iVar5;\n    while( true ) {\n      iVar5 = iVar4;\n      if (iVar5 == 0) {\n        iVar5 = iVar2;\n        if (!bVar1) goto LAB_0025c91c;\n        goto LAB_0025c9c4;\n      }\n      uVar6 = *(uint *)(iVar5 + 0x14);\n      uVar9 = *(undefined4 *)(iVar5 + 0x10);\n      uVar3 = uVar6;\n      if (uVar8 <= uVar6) {\n        uVar3 = uVar8;\n      }\n      if (uVar3 != 0) goto LAB_0025c8a4;\nLAB_0025c8f8:\n      if (-1 < (int)(uVar8 - uVar6)) break;\nLAB_0025c904:\n      bVar1 = true;\n      iVar4 = *(int *)(iVar5 + 8);\n      iVar2 = iVar5;\n    }\n  } while( true );\n}\n\n" (ERROR "string * std::\n         _Rb_tree<std::" (binary_expression "string * std" identifier * identifier) : : (binary_expression "_Rb_tree<std" identifier < identifier) : :) (declaration "string,std::pair<std::string_const,gold::Cref_inputs::Archive_info>,std::_Select1st<std::pair<std::string_const,gold::Cref_inputs::Archive_info>>,std::less<std::string>,std::allocator<std::pair<std::string_const,gold::Cref_inputs::Archive_info>>>\n         ::_M_get_insert_unique_pos(string *param_1)\n\n{\n  bool bVar1;" type_identifier (ERROR ",std::pair<std::" , identifier : : identifier < identifier : :) identifier , (ERROR "gold::Cref_inputs::" identifier : : identifier : :) identifier (ERROR ">" >) , (ERROR "std::_Select1st<std::pair<std::" identifier : : identifier < identifier : : identifier < identifier : :) identifier , (ERROR "gold::Cref_inputs::" identifier : : identifier : :) identifier (ERROR ">>" >>) , (ERROR "std::less<std::" identifier : : identifier < identifier : :) identifier (ERROR ">" >) , (ERROR "std::allocator<std::pair<std::" identifier : : identifier < identifier : : identifier < identifier : :) identifier , (ERROR "gold::Cref_inputs::Archive_info>>>\n         ::_M_get_insert_unique_pos(string *param_1)\n\n{\n  bool" identifier : : identifier : : identifier >> > : : (function_declarator "_M_get_insert_unique_pos(string *param_1)" identifier (parameter_list "(string *param_1)" ( (parameter_declaration "string *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) { primitive_type) identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int in_a1;" primitive_type identifier ;) (declaration "undefined4 *in_a2;" type_identifier (pointer_declarator "*in_a2" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (expression_statement "iVar5 = *(int *)(in_a1 + 8);" (assignment_expression "iVar5 = *(int *)(in_a1 + 8)" identifier = (pointer_expression "*(int *)(in_a1 + 8)" * (cast_expression "(int *)(in_a1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_a1 + 8)" ( (binary_expression "in_a1 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 == 0) {\n    iVar2 = in_a1 + 4;\nLAB_0025c9c4:\n    if (*(int *)(in_a1 + 0xc) == iVar2) {\n      *(int *)(param_1 + 4) = iVar2;\n      *(undefined4 *)param_1 = 0;\n      return param_1;\n    }\n    iVar5 = (*(code *)PTR__Rb_tree_decrement_00432bc4)(iVar2);\n    uVar8 = in_a2[1];\n    uVar6 = *(uint *)(iVar5 + 0x14);\n    uVar9 = *(undefined4 *)(iVar5 + 0x10);\n    uVar7 = *in_a2;\n    uVar3 = uVar6;\n    if (uVar8 <= uVar6) {\n      uVar3 = uVar8;\n    }\nLAB_0025c91c:\n    if ((uVar3 == 0) || (iVar4 = (*(code *)PTR_memcmp_004368dc)(uVar9,uVar7,uVar3), iVar4 == 0)) {\n      iVar4 = uVar6 - uVar8;\n    }\n    if (iVar4 < 0) {\n      *(int *)(param_1 + 4) = iVar2;\n      *(undefined4 *)param_1 = 0;\n      return param_1;\n    }\n    *(int *)param_1 = iVar5;\n    *(undefined4 *)(param_1 + 4) = 0;\n    return param_1;\n  }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar2 = in_a1 + 4;\nLAB_0025c9c4:\n    if (*(int *)(in_a1 + 0xc) == iVar2) {\n      *(int *)(param_1 + 4) = iVar2;\n      *(undefined4 *)param_1 = 0;\n      return param_1;\n    }\n    iVar5 = (*(code *)PTR__Rb_tree_decrement_00432bc4)(iVar2);\n    uVar8 = in_a2[1];\n    uVar6 = *(uint *)(iVar5 + 0x14);\n    uVar9 = *(undefined4 *)(iVar5 + 0x10);\n    uVar7 = *in_a2;\n    uVar3 = uVar6;\n    if (uVar8 <= uVar6) {\n      uVar3 = uVar8;\n    }\nLAB_0025c91c:\n    if ((uVar3 == 0) || (iVar4 = (*(code *)PTR_memcmp_004368dc)(uVar9,uVar7,uVar3), iVar4 == 0)) {\n      iVar4 = uVar6 - uVar8;\n    }\n    if (iVar4 < 0) {\n      *(int *)(param_1 + 4) = iVar2;\n      *(undefined4 *)param_1 = 0;\n      return param_1;\n    }\n    *(int *)param_1 = iVar5;\n    *(undefined4 *)(param_1 + 4) = 0;\n    return param_1;\n  }" { (expression_statement "iVar2 = in_a1 + 4;" (assignment_expression "iVar2 = in_a1 + 4" identifier = (binary_expression "in_a1 + 4" identifier + number_literal)) ;) (labeled_statement "LAB_0025c9c4:\n    if (*(int *)(in_a1 + 0xc) == iVar2) {\n      *(int *)(param_1 + 4) = iVar2;\n      *(undefined4 *)param_1 = 0;\n      return param_1;\n    }" statement_identifier : (if_statement "if (*(int *)(in_a1 + 0xc) == iVar2) {\n      *(int *)(param_1 + 4) = iVar2;\n      *(undefined4 *)param_1 = 0;\n      return param_1;\n    }" if (parenthesized_expression "(*(int *)(in_a1 + 0xc) == iVar2)" ( (binary_expression "*(int *)(in_a1 + 0xc) == iVar2" (pointer_expression "*(int *)(in_a1 + 0xc)" * (cast_expression "(int *)(in_a1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_a1 + 0xc)" ( (binary_expression "in_a1 + 0xc" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n      *(int *)(param_1 + 4) = iVar2;\n      *(undefined4 *)param_1 = 0;\n      return param_1;\n    }" { (expression_statement "*(int *)(param_1 + 4) = iVar2;" (assignment_expression "*(int *)(param_1 + 4) = iVar2" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)param_1 = 0;" (assignment_expression "*(undefined4 *)param_1 = 0" (pointer_expression "*(undefined4 *)param_1" * (cast_expression "(undefined4 *)param_1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (return_statement "return param_1;" return identifier ;) }))) (expression_statement "iVar5 = (*(code *)PTR__Rb_tree_decrement_00432bc4)(iVar2);" (assignment_expression "iVar5 = (*(code *)PTR__Rb_tree_decrement_00432bc4)(iVar2)" identifier = (call_expression "(*(code *)PTR__Rb_tree_decrement_00432bc4)(iVar2)" (parenthesized_expression "(*(code *)PTR__Rb_tree_decrement_00432bc4)" ( (pointer_expression "*(code *)PTR__Rb_tree_decrement_00432bc4" * (cast_expression "(code *)PTR__Rb_tree_decrement_00432bc4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar2)" ( identifier )))) ;) (expression_statement "uVar8 = in_a2[1];" (assignment_expression "uVar8 = in_a2[1]" identifier = (subscript_expression "in_a2[1]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = *(uint *)(iVar5 + 0x14);" (assignment_expression "uVar6 = *(uint *)(iVar5 + 0x14)" identifier = (pointer_expression "*(uint *)(iVar5 + 0x14)" * (cast_expression "(uint *)(iVar5 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = *(undefined4 *)(iVar5 + 0x10);" (assignment_expression "uVar9 = *(undefined4 *)(iVar5 + 0x10)" identifier = (pointer_expression "*(undefined4 *)(iVar5 + 0x10)" * (cast_expression "(undefined4 *)(iVar5 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = *in_a2;" (assignment_expression "uVar7 = *in_a2" identifier = (pointer_expression "*in_a2" * identifier)) ;) (expression_statement "uVar3 = uVar6;" (assignment_expression "uVar3 = uVar6" identifier = identifier) ;) (if_statement "if (uVar8 <= uVar6) {\n      uVar3 = uVar8;\n    }" if (parenthesized_expression "(uVar8 <= uVar6)" ( (binary_expression "uVar8 <= uVar6" identifier <= identifier) )) (compound_statement "{\n      uVar3 = uVar8;\n    }" { (expression_statement "uVar3 = uVar8;" (assignment_expression "uVar3 = uVar8" identifier = identifier) ;) })) (labeled_statement "LAB_0025c91c:\n    if ((uVar3 == 0) || (iVar4 = (*(code *)PTR_memcmp_004368dc)(uVar9,uVar7,uVar3), iVar4 == 0)) {\n      iVar4 = uVar6 - uVar8;\n    }" statement_identifier : (if_statement "if ((uVar3 == 0) || (iVar4 = (*(code *)PTR_memcmp_004368dc)(uVar9,uVar7,uVar3), iVar4 == 0)) {\n      iVar4 = uVar6 - uVar8;\n    }" if (parenthesized_expression "((uVar3 == 0) || (iVar4 = (*(code *)PTR_memcmp_004368dc)(uVar9,uVar7,uVar3), iVar4 == 0))" ( (binary_expression "(uVar3 == 0) || (iVar4 = (*(code *)PTR_memcmp_004368dc)(uVar9,uVar7,uVar3), iVar4 == 0)" (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar4 = (*(code *)PTR_memcmp_004368dc)(uVar9,uVar7,uVar3), iVar4 == 0)" ( (comma_expression "iVar4 = (*(code *)PTR_memcmp_004368dc)(uVar9,uVar7,uVar3), iVar4 == 0" (assignment_expression "iVar4 = (*(code *)PTR_memcmp_004368dc)(uVar9,uVar7,uVar3)" identifier = (call_expression "(*(code *)PTR_memcmp_004368dc)(uVar9,uVar7,uVar3)" (parenthesized_expression "(*(code *)PTR_memcmp_004368dc)" ( (pointer_expression "*(code *)PTR_memcmp_004368dc" * (cast_expression "(code *)PTR_memcmp_004368dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar9,uVar7,uVar3)" ( identifier , identifier , identifier )))) , (binary_expression "iVar4 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      iVar4 = uVar6 - uVar8;\n    }" { (expression_statement "iVar4 = uVar6 - uVar8;" (assignment_expression "iVar4 = uVar6 - uVar8" identifier = (binary_expression "uVar6 - uVar8" identifier - identifier)) ;) }))) (if_statement "if (iVar4 < 0) {\n      *(int *)(param_1 + 4) = iVar2;\n      *(undefined4 *)param_1 = 0;\n      return param_1;\n    }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n      *(int *)(param_1 + 4) = iVar2;\n      *(undefined4 *)param_1 = 0;\n      return param_1;\n    }" { (expression_statement "*(int *)(param_1 + 4) = iVar2;" (assignment_expression "*(int *)(param_1 + 4) = iVar2" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)param_1 = 0;" (assignment_expression "*(undefined4 *)param_1 = 0" (pointer_expression "*(undefined4 *)param_1" * (cast_expression "(undefined4 *)param_1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (return_statement "return param_1;" return identifier ;) })) (expression_statement "*(int *)param_1 = iVar5;" (assignment_expression "*(int *)param_1 = iVar5" (pointer_expression "*(int *)param_1" * (cast_expression "(int *)param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(undefined4 *)(param_1 + 4) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 4) = 0" (pointer_expression "*(undefined4 *)(param_1 + 4)" * (cast_expression "(undefined4 *)(param_1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = number_literal) ;) (return_statement "return param_1;" return identifier ;) })) (expression_statement "uVar8 = in_a2[1];" (assignment_expression "uVar8 = in_a2[1]" identifier = (subscript_expression "in_a2[1]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = *(uint *)(iVar5 + 0x14);" (assignment_expression "uVar6 = *(uint *)(iVar5 + 0x14)" identifier = (pointer_expression "*(uint *)(iVar5 + 0x14)" * (cast_expression "(uint *)(iVar5 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = *in_a2;" (assignment_expression "uVar7 = *in_a2" identifier = (pointer_expression "*in_a2" * identifier)) ;) (expression_statement "uVar9 = *(undefined4 *)(iVar5 + 0x10);" (assignment_expression "uVar9 = *(undefined4 *)(iVar5 + 0x10)" identifier = (pointer_expression "*(undefined4 *)(iVar5 + 0x10)" * (cast_expression "(undefined4 *)(iVar5 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = uVar6;" (assignment_expression "uVar3 = uVar6" identifier = identifier) ;) (if_statement "if (uVar8 <= uVar6) {\n    uVar3 = uVar8;\n  }" if (parenthesized_expression "(uVar8 <= uVar6)" ( (binary_expression "uVar8 <= uVar6" identifier <= identifier) )) (compound_statement "{\n    uVar3 = uVar8;\n  }" { (expression_statement "uVar3 = uVar8;" (assignment_expression "uVar3 = uVar8" identifier = identifier) ;) })) (if_statement "if (uVar3 == 0) goto LAB_0025c8f8;" if (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0025c8f8;" goto statement_identifier ;)) (labeled_statement "LAB_0025c8a4:\n  iVar2 = (*(code *)PTR_memcmp_004368dc)(uVar7,uVar9,uVar3);" statement_identifier : (expression_statement "iVar2 = (*(code *)PTR_memcmp_004368dc)(uVar7,uVar9,uVar3);" (assignment_expression "iVar2 = (*(code *)PTR_memcmp_004368dc)(uVar7,uVar9,uVar3)" identifier = (call_expression "(*(code *)PTR_memcmp_004368dc)(uVar7,uVar9,uVar3)" (parenthesized_expression "(*(code *)PTR_memcmp_004368dc)" ( (pointer_expression "*(code *)PTR_memcmp_004368dc" * (cast_expression "(code *)PTR_memcmp_004368dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar7,uVar9,uVar3)" ( identifier , identifier , identifier )))) ;)) (if_statement "if (iVar2 == 0) goto LAB_0025c8f8;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0025c8f8;" goto statement_identifier ;)) (if_statement "if (iVar2 < 0) goto LAB_0025c904;" if (parenthesized_expression "(iVar2 < 0)" ( (binary_expression "iVar2 < 0" identifier < number_literal) )) (goto_statement "goto LAB_0025c904;" goto statement_identifier ;)) (do_statement "do {\n    bVar1 = false;\n    iVar4 = *(int *)(iVar5 + 0xc);\n    iVar2 = iVar5;\n    while( true ) {\n      iVar5 = iVar4;\n      if (iVar5 == 0) {\n        iVar5 = iVar2;\n        if (!bVar1) goto LAB_0025c91c;\n        goto LAB_0025c9c4;\n      }\n      uVar6 = *(uint *)(iVar5 + 0x14);\n      uVar9 = *(undefined4 *)(iVar5 + 0x10);\n      uVar3 = uVar6;\n      if (uVar8 <= uVar6) {\n        uVar3 = uVar8;\n      }\n      if (uVar3 != 0) goto LAB_0025c8a4;\nLAB_0025c8f8:\n      if (-1 < (int)(uVar8 - uVar6)) break;\nLAB_0025c904:\n      bVar1 = true;\n      iVar4 = *(int *)(iVar5 + 8);\n      iVar2 = iVar5;\n    }\n  } while( true );" do (compound_statement "{\n    bVar1 = false;\n    iVar4 = *(int *)(iVar5 + 0xc);\n    iVar2 = iVar5;\n    while( true ) {\n      iVar5 = iVar4;\n      if (iVar5 == 0) {\n        iVar5 = iVar2;\n        if (!bVar1) goto LAB_0025c91c;\n        goto LAB_0025c9c4;\n      }\n      uVar6 = *(uint *)(iVar5 + 0x14);\n      uVar9 = *(undefined4 *)(iVar5 + 0x10);\n      uVar3 = uVar6;\n      if (uVar8 <= uVar6) {\n        uVar3 = uVar8;\n      }\n      if (uVar3 != 0) goto LAB_0025c8a4;\nLAB_0025c8f8:\n      if (-1 < (int)(uVar8 - uVar6)) break;\nLAB_0025c904:\n      bVar1 = true;\n      iVar4 = *(int *)(iVar5 + 8);\n      iVar2 = iVar5;\n    }\n  }" { (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (expression_statement "iVar4 = *(int *)(iVar5 + 0xc);" (assignment_expression "iVar4 = *(int *)(iVar5 + 0xc)" identifier = (pointer_expression "*(int *)(iVar5 + 0xc)" * (cast_expression "(int *)(iVar5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = iVar5;" (assignment_expression "iVar2 = iVar5" identifier = identifier) ;) (while_statement "while( true ) {\n      iVar5 = iVar4;\n      if (iVar5 == 0) {\n        iVar5 = iVar2;\n        if (!bVar1) goto LAB_0025c91c;\n        goto LAB_0025c9c4;\n      }\n      uVar6 = *(uint *)(iVar5 + 0x14);\n      uVar9 = *(undefined4 *)(iVar5 + 0x10);\n      uVar3 = uVar6;\n      if (uVar8 <= uVar6) {\n        uVar3 = uVar8;\n      }\n      if (uVar3 != 0) goto LAB_0025c8a4;\nLAB_0025c8f8:\n      if (-1 < (int)(uVar8 - uVar6)) break;\nLAB_0025c904:\n      bVar1 = true;\n      iVar4 = *(int *)(iVar5 + 8);\n      iVar2 = iVar5;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      iVar5 = iVar4;\n      if (iVar5 == 0) {\n        iVar5 = iVar2;\n        if (!bVar1) goto LAB_0025c91c;\n        goto LAB_0025c9c4;\n      }\n      uVar6 = *(uint *)(iVar5 + 0x14);\n      uVar9 = *(undefined4 *)(iVar5 + 0x10);\n      uVar3 = uVar6;\n      if (uVar8 <= uVar6) {\n        uVar3 = uVar8;\n      }\n      if (uVar3 != 0) goto LAB_0025c8a4;\nLAB_0025c8f8:\n      if (-1 < (int)(uVar8 - uVar6)) break;\nLAB_0025c904:\n      bVar1 = true;\n      iVar4 = *(int *)(iVar5 + 8);\n      iVar2 = iVar5;\n    }" { (expression_statement "iVar5 = iVar4;" (assignment_expression "iVar5 = iVar4" identifier = identifier) ;) (if_statement "if (iVar5 == 0) {\n        iVar5 = iVar2;\n        if (!bVar1) goto LAB_0025c91c;\n        goto LAB_0025c9c4;\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar5 = iVar2;\n        if (!bVar1) goto LAB_0025c91c;\n        goto LAB_0025c9c4;\n      }" { (expression_statement "iVar5 = iVar2;" (assignment_expression "iVar5 = iVar2" identifier = identifier) ;) (if_statement "if (!bVar1) goto LAB_0025c91c;" if (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) (goto_statement "goto LAB_0025c91c;" goto statement_identifier ;)) (goto_statement "goto LAB_0025c9c4;" goto statement_identifier ;) })) (expression_statement "uVar6 = *(uint *)(iVar5 + 0x14);" (assignment_expression "uVar6 = *(uint *)(iVar5 + 0x14)" identifier = (pointer_expression "*(uint *)(iVar5 + 0x14)" * (cast_expression "(uint *)(iVar5 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = *(undefined4 *)(iVar5 + 0x10);" (assignment_expression "uVar9 = *(undefined4 *)(iVar5 + 0x10)" identifier = (pointer_expression "*(undefined4 *)(iVar5 + 0x10)" * (cast_expression "(undefined4 *)(iVar5 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = uVar6;" (assignment_expression "uVar3 = uVar6" identifier = identifier) ;) (if_statement "if (uVar8 <= uVar6) {\n        uVar3 = uVar8;\n      }" if (parenthesized_expression "(uVar8 <= uVar6)" ( (binary_expression "uVar8 <= uVar6" identifier <= identifier) )) (compound_statement "{\n        uVar3 = uVar8;\n      }" { (expression_statement "uVar3 = uVar8;" (assignment_expression "uVar3 = uVar8" identifier = identifier) ;) })) (if_statement "if (uVar3 != 0) goto LAB_0025c8a4;" if (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0025c8a4;" goto statement_identifier ;)) (labeled_statement "LAB_0025c8f8:\n      if (-1 < (int)(uVar8 - uVar6)) break;" statement_identifier : (if_statement "if (-1 < (int)(uVar8 - uVar6)) break;" if (parenthesized_expression "(-1 < (int)(uVar8 - uVar6))" ( (binary_expression "-1 < (int)(uVar8 - uVar6)" number_literal < (cast_expression "(int)(uVar8 - uVar6)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar8 - uVar6)" ( (binary_expression "uVar8 - uVar6" identifier - identifier) )))) )) (break_statement "break;" break ;))) (labeled_statement "LAB_0025c904:\n      bVar1 = true;" statement_identifier : (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;)) (expression_statement "iVar4 = *(int *)(iVar5 + 8);" (assignment_expression "iVar4 = *(int *)(iVar5 + 8)" identifier = (pointer_expression "*(int *)(iVar5 + 8)" * (cast_expression "(int *)(iVar5 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 8)" ( (binary_expression "iVar5 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = iVar5;" (assignment_expression "iVar2 = iVar5" identifier = identifier) ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) (ERROR "}" }))
(translation_unit (ERROR (binary_expression IDENT * IDENT) : : (binary_expression IDENT < IDENT) : :) (declaration TYPE (ERROR , IDENT : : IDENT < IDENT : :) IDENT , (ERROR IDENT : : IDENT : :) IDENT (ERROR >) , (ERROR IDENT : : IDENT < IDENT : : IDENT < IDENT : :) IDENT , (ERROR IDENT : : IDENT : :) IDENT (ERROR >>) , (ERROR IDENT : : IDENT < IDENT : :) IDENT (ERROR >) , (ERROR IDENT : : IDENT < IDENT : : IDENT < IDENT : :) IDENT , (ERROR IDENT : : IDENT : : IDENT >> > : : (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) { 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 ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (return_statement return IDENT ;) }))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT - IDENT) )))) )) (break_statement break ;))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = BOOL) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }) while (parenthesized_expression ( BOOL )) ;) (ERROR }))
(ERROR "string * std::\n         _Rb_tree<std::" (binary_expression "string * std" (identifier "string") (* "*") (identifier "std")) (: ":") (: ":") (binary_expression "_Rb_tree<std" (identifier "_Rb_tree") (< "<") (identifier "std")) (: ":") (: ":")) (declaration "string,std::pair<std::string_const,gold::Cref_inputs::Archive_info>,std::_Select1st<std::pair<std::string_const,gold::Cref_inputs::Archive_info>>,std::less<std::string>,std::allocator<std::pair<std::string_const,gold::Cref_inputs::Archive_info>>>\n         ::_M_get_insert_unique_pos(string *param_1)\n\n{\n  bool bVar1;" (type_identifier "string") (ERROR ",std::pair<std::" (, ",") (identifier "std") (: ":") (: ":") (identifier "pair") (< "<") (identifier "std") (: ":") (: ":")) (identifier "string_const") (, ",") (ERROR "gold::Cref_inputs::" (identifier "gold") (: ":") (: ":") (identifier "Cref_inputs") (: ":") (: ":")) (identifier "Archive_info") (ERROR ">" (> ">")) (, ",") (ERROR "std::_Select1st<std::pair<std::" (identifier "std") (: ":") (: ":") (identifier "_Select1st") (< "<") (identifier "std") (: ":") (: ":") (identifier "pair") (< "<") (identifier "std") (: ":") (: ":")) (identifier "string_const") (, ",") (ERROR "gold::Cref_inputs::" (identifier "gold") (: ":") (: ":") (identifier "Cref_inputs") (: ":") (: ":")) (identifier "Archive_info") (ERROR ">>" (>> ">>")) (, ",") (ERROR "std::less<std::" (identifier "std") (: ":") (: ":") (identifier "less") (< "<") (identifier "std") (: ":") (: ":")) (identifier "string") (ERROR ">" (> ">")) (, ",") (ERROR "std::allocator<std::pair<std::" (identifier "std") (: ":") (: ":") (identifier "allocator") (< "<") (identifier "std") (: ":") (: ":") (identifier "pair") (< "<") (identifier "std") (: ":") (: ":")) (identifier "string_const") (, ",") (ERROR "gold::Cref_inputs::Archive_info>>>\n         ::_M_get_insert_unique_pos(string *param_1)\n\n{\n  bool" (identifier "gold") (: ":") (: ":") (identifier "Cref_inputs") (: ":") (: ":") (identifier "Archive_info") (>> ">>") (> ">") (: ":") (: ":") (function_declarator "_M_get_insert_unique_pos(string *param_1)" (identifier "_M_get_insert_unique_pos") (parameter_list "(string *param_1)" (( "(") (parameter_declaration "string *param_1" (type_identifier "string") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) ({ "{") (primitive_type "bool")) (identifier "bVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int in_a1;" (primitive_type "int") (identifier "in_a1") (; ";")) (declaration "undefined4 *in_a2;" (type_identifier "undefined4") (pointer_declarator "*in_a2" (* "*") (identifier "in_a2")) (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "undefined4 uVar7;" (type_identifier "undefined4") (identifier "uVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "undefined4 uVar9;" (type_identifier "undefined4") (identifier "uVar9") (; ";")) (expression_statement "iVar5 = *(int *)(in_a1 + 8);" (assignment_expression "iVar5 = *(int *)(in_a1 + 8)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(in_a1 + 8)" (* "*") (cast_expression "(int *)(in_a1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_a1 + 8)" (( "(") (binary_expression "in_a1 + 8" (identifier "in_a1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar5 == 0) {\n    iVar2 = in_a1 + 4;\nLAB_0025c9c4:\n    if (*(int *)(in_a1 + 0xc) == iVar2) {\n      *(int *)(param_1 + 4) = iVar2;\n      *(undefined4 *)param_1 = 0;\n      return param_1;\n    }\n    iVar5 = (*(code *)PTR__Rb_tree_decrement_00432bc4)(iVar2);\n    uVar8 = in_a2[1];\n    uVar6 = *(uint *)(iVar5 + 0x14);\n    uVar9 = *(undefined4 *)(iVar5 + 0x10);\n    uVar7 = *in_a2;\n    uVar3 = uVar6;\n    if (uVar8 <= uVar6) {\n      uVar3 = uVar8;\n    }\nLAB_0025c91c:\n    if ((uVar3 == 0) || (iVar4 = (*(code *)PTR_memcmp_004368dc)(uVar9,uVar7,uVar3), iVar4 == 0)) {\n      iVar4 = uVar6 - uVar8;\n    }\n    if (iVar4 < 0) {\n      *(int *)(param_1 + 4) = iVar2;\n      *(undefined4 *)param_1 = 0;\n      return param_1;\n    }\n    *(int *)param_1 = iVar5;\n    *(undefined4 *)(param_1 + 4) = 0;\n    return param_1;\n  }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar2 = in_a1 + 4;\nLAB_0025c9c4:\n    if (*(int *)(in_a1 + 0xc) == iVar2) {\n      *(int *)(param_1 + 4) = iVar2;\n      *(undefined4 *)param_1 = 0;\n      return param_1;\n    }\n    iVar5 = (*(code *)PTR__Rb_tree_decrement_00432bc4)(iVar2);\n    uVar8 = in_a2[1];\n    uVar6 = *(uint *)(iVar5 + 0x14);\n    uVar9 = *(undefined4 *)(iVar5 + 0x10);\n    uVar7 = *in_a2;\n    uVar3 = uVar6;\n    if (uVar8 <= uVar6) {\n      uVar3 = uVar8;\n    }\nLAB_0025c91c:\n    if ((uVar3 == 0) || (iVar4 = (*(code *)PTR_memcmp_004368dc)(uVar9,uVar7,uVar3), iVar4 == 0)) {\n      iVar4 = uVar6 - uVar8;\n    }\n    if (iVar4 < 0) {\n      *(int *)(param_1 + 4) = iVar2;\n      *(undefined4 *)param_1 = 0;\n      return param_1;\n    }\n    *(int *)param_1 = iVar5;\n    *(undefined4 *)(param_1 + 4) = 0;\n    return param_1;\n  }" ({ "{") (expression_statement "iVar2 = in_a1 + 4;" (assignment_expression "iVar2 = in_a1 + 4" (identifier "iVar2") (= "=") (binary_expression "in_a1 + 4" (identifier "in_a1") (+ "+") (number_literal "4"))) (; ";")) (labeled_statement "LAB_0025c9c4:\n    if (*(int *)(in_a1 + 0xc) == iVar2) {\n      *(int *)(param_1 + 4) = iVar2;\n      *(undefined4 *)param_1 = 0;\n      return param_1;\n    }" (statement_identifier "LAB_0025c9c4") (: ":") (if_statement "if (*(int *)(in_a1 + 0xc) == iVar2) {\n      *(int *)(param_1 + 4) = iVar2;\n      *(undefined4 *)param_1 = 0;\n      return param_1;\n    }" (if "if") (parenthesized_expression "(*(int *)(in_a1 + 0xc) == iVar2)" (( "(") (binary_expression "*(int *)(in_a1 + 0xc) == iVar2" (pointer_expression "*(int *)(in_a1 + 0xc)" (* "*") (cast_expression "(int *)(in_a1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_a1 + 0xc)" (( "(") (binary_expression "in_a1 + 0xc" (identifier "in_a1") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (identifier "iVar2")) () ")")) (compound_statement "{\n      *(int *)(param_1 + 4) = iVar2;\n      *(undefined4 *)param_1 = 0;\n      return param_1;\n    }" ({ "{") (expression_statement "*(int *)(param_1 + 4) = iVar2;" (assignment_expression "*(int *)(param_1 + 4) = iVar2" (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "iVar2")) (; ";")) (expression_statement "*(undefined4 *)param_1 = 0;" (assignment_expression "*(undefined4 *)param_1 = 0" (pointer_expression "*(undefined4 *)param_1" (* "*") (cast_expression "(undefined4 *)param_1" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1"))) (= "=") (number_literal "0")) (; ";")) (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}")))) (expression_statement "iVar5 = (*(code *)PTR__Rb_tree_decrement_00432bc4)(iVar2);" (assignment_expression "iVar5 = (*(code *)PTR__Rb_tree_decrement_00432bc4)(iVar2)" (identifier "iVar5") (= "=") (call_expression "(*(code *)PTR__Rb_tree_decrement_00432bc4)(iVar2)" (parenthesized_expression "(*(code *)PTR__Rb_tree_decrement_00432bc4)" (( "(") (pointer_expression "*(code *)PTR__Rb_tree_decrement_00432bc4" (* "*") (cast_expression "(code *)PTR__Rb_tree_decrement_00432bc4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR__Rb_tree_decrement_00432bc4"))) () ")")) (argument_list "(iVar2)" (( "(") (identifier "iVar2") () ")")))) (; ";")) (expression_statement "uVar8 = in_a2[1];" (assignment_expression "uVar8 = in_a2[1]" (identifier "uVar8") (= "=") (subscript_expression "in_a2[1]" (identifier "in_a2") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar6 = *(uint *)(iVar5 + 0x14);" (assignment_expression "uVar6 = *(uint *)(iVar5 + 0x14)" (identifier "uVar6") (= "=") (pointer_expression "*(uint *)(iVar5 + 0x14)" (* "*") (cast_expression "(uint *)(iVar5 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x14)" (( "(") (binary_expression "iVar5 + 0x14" (identifier "iVar5") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "uVar9 = *(undefined4 *)(iVar5 + 0x10);" (assignment_expression "uVar9 = *(undefined4 *)(iVar5 + 0x10)" (identifier "uVar9") (= "=") (pointer_expression "*(undefined4 *)(iVar5 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x10)" (( "(") (binary_expression "iVar5 + 0x10" (identifier "iVar5") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "uVar7 = *in_a2;" (assignment_expression "uVar7 = *in_a2" (identifier "uVar7") (= "=") (pointer_expression "*in_a2" (* "*") (identifier "in_a2"))) (; ";")) (expression_statement "uVar3 = uVar6;" (assignment_expression "uVar3 = uVar6" (identifier "uVar3") (= "=") (identifier "uVar6")) (; ";")) (if_statement "if (uVar8 <= uVar6) {\n      uVar3 = uVar8;\n    }" (if "if") (parenthesized_expression "(uVar8 <= uVar6)" (( "(") (binary_expression "uVar8 <= uVar6" (identifier "uVar8") (<= "<=") (identifier "uVar6")) () ")")) (compound_statement "{\n      uVar3 = uVar8;\n    }" ({ "{") (expression_statement "uVar3 = uVar8;" (assignment_expression "uVar3 = uVar8" (identifier "uVar3") (= "=") (identifier "uVar8")) (; ";")) (} "}"))) (labeled_statement "LAB_0025c91c:\n    if ((uVar3 == 0) || (iVar4 = (*(code *)PTR_memcmp_004368dc)(uVar9,uVar7,uVar3), iVar4 == 0)) {\n      iVar4 = uVar6 - uVar8;\n    }" (statement_identifier "LAB_0025c91c") (: ":") (if_statement "if ((uVar3 == 0) || (iVar4 = (*(code *)PTR_memcmp_004368dc)(uVar9,uVar7,uVar3), iVar4 == 0)) {\n      iVar4 = uVar6 - uVar8;\n    }" (if "if") (parenthesized_expression "((uVar3 == 0) || (iVar4 = (*(code *)PTR_memcmp_004368dc)(uVar9,uVar7,uVar3), iVar4 == 0))" (( "(") (binary_expression "(uVar3 == 0) || (iVar4 = (*(code *)PTR_memcmp_004368dc)(uVar9,uVar7,uVar3), iVar4 == 0)" (parenthesized_expression "(uVar3 == 0)" (( "(") (binary_expression "uVar3 == 0" (identifier "uVar3") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar4 = (*(code *)PTR_memcmp_004368dc)(uVar9,uVar7,uVar3), iVar4 == 0)" (( "(") (comma_expression "iVar4 = (*(code *)PTR_memcmp_004368dc)(uVar9,uVar7,uVar3), iVar4 == 0" (assignment_expression "iVar4 = (*(code *)PTR_memcmp_004368dc)(uVar9,uVar7,uVar3)" (identifier "iVar4") (= "=") (call_expression "(*(code *)PTR_memcmp_004368dc)(uVar9,uVar7,uVar3)" (parenthesized_expression "(*(code *)PTR_memcmp_004368dc)" (( "(") (pointer_expression "*(code *)PTR_memcmp_004368dc" (* "*") (cast_expression "(code *)PTR_memcmp_004368dc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memcmp_004368dc"))) () ")")) (argument_list "(uVar9,uVar7,uVar3)" (( "(") (identifier "uVar9") (, ",") (identifier "uVar7") (, ",") (identifier "uVar3") () ")")))) (, ",") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n      iVar4 = uVar6 - uVar8;\n    }" ({ "{") (expression_statement "iVar4 = uVar6 - uVar8;" (assignment_expression "iVar4 = uVar6 - uVar8" (identifier "iVar4") (= "=") (binary_expression "uVar6 - uVar8" (identifier "uVar6") (- "-") (identifier "uVar8"))) (; ";")) (} "}")))) (if_statement "if (iVar4 < 0) {\n      *(int *)(param_1 + 4) = iVar2;\n      *(undefined4 *)param_1 = 0;\n      return param_1;\n    }" (if "if") (parenthesized_expression "(iVar4 < 0)" (( "(") (binary_expression "iVar4 < 0" (identifier "iVar4") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      *(int *)(param_1 + 4) = iVar2;\n      *(undefined4 *)param_1 = 0;\n      return param_1;\n    }" ({ "{") (expression_statement "*(int *)(param_1 + 4) = iVar2;" (assignment_expression "*(int *)(param_1 + 4) = iVar2" (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "iVar2")) (; ";")) (expression_statement "*(undefined4 *)param_1 = 0;" (assignment_expression "*(undefined4 *)param_1 = 0" (pointer_expression "*(undefined4 *)param_1" (* "*") (cast_expression "(undefined4 *)param_1" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1"))) (= "=") (number_literal "0")) (; ";")) (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}"))) (expression_statement "*(int *)param_1 = iVar5;" (assignment_expression "*(int *)param_1 = iVar5" (pointer_expression "*(int *)param_1" (* "*") (cast_expression "(int *)param_1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1"))) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 4) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 4) = 0" (pointer_expression "*(undefined4 *)(param_1 + 4)" (* "*") (cast_expression "(undefined4 *)(param_1 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}"))) (expression_statement "uVar8 = in_a2[1];" (assignment_expression "uVar8 = in_a2[1]" (identifier "uVar8") (= "=") (subscript_expression "in_a2[1]" (identifier "in_a2") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar6 = *(uint *)(iVar5 + 0x14);" (assignment_expression "uVar6 = *(uint *)(iVar5 + 0x14)" (identifier "uVar6") (= "=") (pointer_expression "*(uint *)(iVar5 + 0x14)" (* "*") (cast_expression "(uint *)(iVar5 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x14)" (( "(") (binary_expression "iVar5 + 0x14" (identifier "iVar5") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "uVar7 = *in_a2;" (assignment_expression "uVar7 = *in_a2" (identifier "uVar7") (= "=") (pointer_expression "*in_a2" (* "*") (identifier "in_a2"))) (; ";")) (expression_statement "uVar9 = *(undefined4 *)(iVar5 + 0x10);" (assignment_expression "uVar9 = *(undefined4 *)(iVar5 + 0x10)" (identifier "uVar9") (= "=") (pointer_expression "*(undefined4 *)(iVar5 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x10)" (( "(") (binary_expression "iVar5 + 0x10" (identifier "iVar5") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "uVar3 = uVar6;" (assignment_expression "uVar3 = uVar6" (identifier "uVar3") (= "=") (identifier "uVar6")) (; ";")) (if_statement "if (uVar8 <= uVar6) {\n    uVar3 = uVar8;\n  }" (if "if") (parenthesized_expression "(uVar8 <= uVar6)" (( "(") (binary_expression "uVar8 <= uVar6" (identifier "uVar8") (<= "<=") (identifier "uVar6")) () ")")) (compound_statement "{\n    uVar3 = uVar8;\n  }" ({ "{") (expression_statement "uVar3 = uVar8;" (assignment_expression "uVar3 = uVar8" (identifier "uVar3") (= "=") (identifier "uVar8")) (; ";")) (} "}"))) (if_statement "if (uVar3 == 0) goto LAB_0025c8f8;" (if "if") (parenthesized_expression "(uVar3 == 0)" (( "(") (binary_expression "uVar3 == 0" (identifier "uVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0025c8f8;" (goto "goto") (statement_identifier "LAB_0025c8f8") (; ";"))) (labeled_statement "LAB_0025c8a4:\n  iVar2 = (*(code *)PTR_memcmp_004368dc)(uVar7,uVar9,uVar3);" (statement_identifier "LAB_0025c8a4") (: ":") (expression_statement "iVar2 = (*(code *)PTR_memcmp_004368dc)(uVar7,uVar9,uVar3);" (assignment_expression "iVar2 = (*(code *)PTR_memcmp_004368dc)(uVar7,uVar9,uVar3)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_memcmp_004368dc)(uVar7,uVar9,uVar3)" (parenthesized_expression "(*(code *)PTR_memcmp_004368dc)" (( "(") (pointer_expression "*(code *)PTR_memcmp_004368dc" (* "*") (cast_expression "(code *)PTR_memcmp_004368dc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memcmp_004368dc"))) () ")")) (argument_list "(uVar7,uVar9,uVar3)" (( "(") (identifier "uVar7") (, ",") (identifier "uVar9") (, ",") (identifier "uVar3") () ")")))) (; ";"))) (if_statement "if (iVar2 == 0) goto LAB_0025c8f8;" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0025c8f8;" (goto "goto") (statement_identifier "LAB_0025c8f8") (; ";"))) (if_statement "if (iVar2 < 0) goto LAB_0025c904;" (if "if") (parenthesized_expression "(iVar2 < 0)" (( "(") (binary_expression "iVar2 < 0" (identifier "iVar2") (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_0025c904;" (goto "goto") (statement_identifier "LAB_0025c904") (; ";"))) (do_statement "do {\n    bVar1 = false;\n    iVar4 = *(int *)(iVar5 + 0xc);\n    iVar2 = iVar5;\n    while( true ) {\n      iVar5 = iVar4;\n      if (iVar5 == 0) {\n        iVar5 = iVar2;\n        if (!bVar1) goto LAB_0025c91c;\n        goto LAB_0025c9c4;\n      }\n      uVar6 = *(uint *)(iVar5 + 0x14);\n      uVar9 = *(undefined4 *)(iVar5 + 0x10);\n      uVar3 = uVar6;\n      if (uVar8 <= uVar6) {\n        uVar3 = uVar8;\n      }\n      if (uVar3 != 0) goto LAB_0025c8a4;\nLAB_0025c8f8:\n      if (-1 < (int)(uVar8 - uVar6)) break;\nLAB_0025c904:\n      bVar1 = true;\n      iVar4 = *(int *)(iVar5 + 8);\n      iVar2 = iVar5;\n    }\n  } while( true );" (do "do") (compound_statement "{\n    bVar1 = false;\n    iVar4 = *(int *)(iVar5 + 0xc);\n    iVar2 = iVar5;\n    while( true ) {\n      iVar5 = iVar4;\n      if (iVar5 == 0) {\n        iVar5 = iVar2;\n        if (!bVar1) goto LAB_0025c91c;\n        goto LAB_0025c9c4;\n      }\n      uVar6 = *(uint *)(iVar5 + 0x14);\n      uVar9 = *(undefined4 *)(iVar5 + 0x10);\n      uVar3 = uVar6;\n      if (uVar8 <= uVar6) {\n        uVar3 = uVar8;\n      }\n      if (uVar3 != 0) goto LAB_0025c8a4;\nLAB_0025c8f8:\n      if (-1 < (int)(uVar8 - uVar6)) break;\nLAB_0025c904:\n      bVar1 = true;\n      iVar4 = *(int *)(iVar5 + 8);\n      iVar2 = iVar5;\n    }\n  }" ({ "{") (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" (identifier "bVar1") (= "=") (false "false")) (; ";")) (expression_statement "iVar4 = *(int *)(iVar5 + 0xc);" (assignment_expression "iVar4 = *(int *)(iVar5 + 0xc)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(iVar5 + 0xc)" (* "*") (cast_expression "(int *)(iVar5 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0xc)" (( "(") (binary_expression "iVar5 + 0xc" (identifier "iVar5") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "iVar2 = iVar5;" (assignment_expression "iVar2 = iVar5" (identifier "iVar2") (= "=") (identifier "iVar5")) (; ";")) (while_statement "while( true ) {\n      iVar5 = iVar4;\n      if (iVar5 == 0) {\n        iVar5 = iVar2;\n        if (!bVar1) goto LAB_0025c91c;\n        goto LAB_0025c9c4;\n      }\n      uVar6 = *(uint *)(iVar5 + 0x14);\n      uVar9 = *(undefined4 *)(iVar5 + 0x10);\n      uVar3 = uVar6;\n      if (uVar8 <= uVar6) {\n        uVar3 = uVar8;\n      }\n      if (uVar3 != 0) goto LAB_0025c8a4;\nLAB_0025c8f8:\n      if (-1 < (int)(uVar8 - uVar6)) break;\nLAB_0025c904:\n      bVar1 = true;\n      iVar4 = *(int *)(iVar5 + 8);\n      iVar2 = iVar5;\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      iVar5 = iVar4;\n      if (iVar5 == 0) {\n        iVar5 = iVar2;\n        if (!bVar1) goto LAB_0025c91c;\n        goto LAB_0025c9c4;\n      }\n      uVar6 = *(uint *)(iVar5 + 0x14);\n      uVar9 = *(undefined4 *)(iVar5 + 0x10);\n      uVar3 = uVar6;\n      if (uVar8 <= uVar6) {\n        uVar3 = uVar8;\n      }\n      if (uVar3 != 0) goto LAB_0025c8a4;\nLAB_0025c8f8:\n      if (-1 < (int)(uVar8 - uVar6)) break;\nLAB_0025c904:\n      bVar1 = true;\n      iVar4 = *(int *)(iVar5 + 8);\n      iVar2 = iVar5;\n    }" ({ "{") (expression_statement "iVar5 = iVar4;" (assignment_expression "iVar5 = iVar4" (identifier "iVar5") (= "=") (identifier "iVar4")) (; ";")) (if_statement "if (iVar5 == 0) {\n        iVar5 = iVar2;\n        if (!bVar1) goto LAB_0025c91c;\n        goto LAB_0025c9c4;\n      }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar5 = iVar2;\n        if (!bVar1) goto LAB_0025c91c;\n        goto LAB_0025c9c4;\n      }" ({ "{") (expression_statement "iVar5 = iVar2;" (assignment_expression "iVar5 = iVar2" (identifier "iVar5") (= "=") (identifier "iVar2")) (; ";")) (if_statement "if (!bVar1) goto LAB_0025c91c;" (if "if") (parenthesized_expression "(!bVar1)" (( "(") (unary_expression "!bVar1" (! "!") (identifier "bVar1")) () ")")) (goto_statement "goto LAB_0025c91c;" (goto "goto") (statement_identifier "LAB_0025c91c") (; ";"))) (goto_statement "goto LAB_0025c9c4;" (goto "goto") (statement_identifier "LAB_0025c9c4") (; ";")) (} "}"))) (expression_statement "uVar6 = *(uint *)(iVar5 + 0x14);" (assignment_expression "uVar6 = *(uint *)(iVar5 + 0x14)" (identifier "uVar6") (= "=") (pointer_expression "*(uint *)(iVar5 + 0x14)" (* "*") (cast_expression "(uint *)(iVar5 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x14)" (( "(") (binary_expression "iVar5 + 0x14" (identifier "iVar5") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "uVar9 = *(undefined4 *)(iVar5 + 0x10);" (assignment_expression "uVar9 = *(undefined4 *)(iVar5 + 0x10)" (identifier "uVar9") (= "=") (pointer_expression "*(undefined4 *)(iVar5 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x10)" (( "(") (binary_expression "iVar5 + 0x10" (identifier "iVar5") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "uVar3 = uVar6;" (assignment_expression "uVar3 = uVar6" (identifier "uVar3") (= "=") (identifier "uVar6")) (; ";")) (if_statement "if (uVar8 <= uVar6) {\n        uVar3 = uVar8;\n      }" (if "if") (parenthesized_expression "(uVar8 <= uVar6)" (( "(") (binary_expression "uVar8 <= uVar6" (identifier "uVar8") (<= "<=") (identifier "uVar6")) () ")")) (compound_statement "{\n        uVar3 = uVar8;\n      }" ({ "{") (expression_statement "uVar3 = uVar8;" (assignment_expression "uVar3 = uVar8" (identifier "uVar3") (= "=") (identifier "uVar8")) (; ";")) (} "}"))) (if_statement "if (uVar3 != 0) goto LAB_0025c8a4;" (if "if") (parenthesized_expression "(uVar3 != 0)" (( "(") (binary_expression "uVar3 != 0" (identifier "uVar3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0025c8a4;" (goto "goto") (statement_identifier "LAB_0025c8a4") (; ";"))) (labeled_statement "LAB_0025c8f8:\n      if (-1 < (int)(uVar8 - uVar6)) break;" (statement_identifier "LAB_0025c8f8") (: ":") (if_statement "if (-1 < (int)(uVar8 - uVar6)) break;" (if "if") (parenthesized_expression "(-1 < (int)(uVar8 - uVar6))" (( "(") (binary_expression "-1 < (int)(uVar8 - uVar6)" (number_literal "-1") (< "<") (cast_expression "(int)(uVar8 - uVar6)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar8 - uVar6)" (( "(") (binary_expression "uVar8 - uVar6" (identifier "uVar8") (- "-") (identifier "uVar6")) () ")")))) () ")")) (break_statement "break;" (break "break") (; ";")))) (labeled_statement "LAB_0025c904:\n      bVar1 = true;" (statement_identifier "LAB_0025c904") (: ":") (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" (identifier "bVar1") (= "=") (true "true")) (; ";"))) (expression_statement "iVar4 = *(int *)(iVar5 + 8);" (assignment_expression "iVar4 = *(int *)(iVar5 + 8)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(iVar5 + 8)" (* "*") (cast_expression "(int *)(iVar5 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 8)" (( "(") (binary_expression "iVar5 + 8" (identifier "iVar5") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "iVar2 = iVar5;" (assignment_expression "iVar2 = iVar5" (identifier "iVar2") (= "=") (identifier "iVar5")) (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (ERROR "}" (} "}"))

/* DWARF original prototype: pair<std::_Rb_tree_node_base*,_std::_Rb_tree_node_base*>
   _M_get_insert_unique_pos(_Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>_>_>
   * this, key_type * __k) */

pair<type_1::type_9*,type_3::type_9*> __thiscall
type_1::
type_2<type_1::__cxx11::basic_string<char,type_3::char_traits<char>,type_3::allocator<char>_>,type_3::pair<const_std::__cxx11::basic_string<char,type_3::char_traits<char>,type_3::allocator<char>_>,type_4::Cref_inputs::Archive_info>,type_3::_Select1st<type_1::pair<const_std::__cxx11::basic_string<char,type_3::char_traits<char>,type_3::allocator<char>_>,type_4::Cref_inputs::Archive_info>_>,type_3::less<type_1::__cxx11::basic_string<char,type_3::char_traits<char>,type_3::allocator<char>_>_>,type_3::allocator<type_1::pair<const_std::__cxx11::basic_string<char,type_3::char_traits<char>,type_3::allocator<char>_>,type_4::Cref_inputs::Archive_info>_>_>
::function_1
          (type_2<type_1::__cxx11::basic_string<char,type_3::char_traits<char>,type_3::allocator<char>_>,type_3::pair<const_std::__cxx11::basic_string<char,type_3::char_traits<char>,type_3::allocator<char>_>,type_4::Cref_inputs::Archive_info>,type_3::_Select1st<type_1::pair<const_std::__cxx11::basic_string<char,type_3::char_traits<char>,type_3::allocator<char>_>,type_4::Cref_inputs::Archive_info>_>,type_3::less<type_1::__cxx11::basic_string<char,type_3::char_traits<char>,type_3::allocator<char>_>_>,type_3::allocator<type_1::pair<const_std::__cxx11::basic_string<char,type_3::char_traits<char>,type_3::allocator<char>_>,type_4::Cref_inputs::Archive_info>_>_>
           *this,type_5 *__k)

{
  type_6 *psVar1;
  type_7 __d;
  int var_8;
  type_8 var_7;
  type_9 *var_9;
  type_10 uVar4;
  type_10 *in_a2;
  type_6 *var_4;
  type_6 *var_11;
  type_8 var_6;
  type_10 uVar8;
  type_8 var_5;
  type_10 uVar10;
  type_11 var_13;
  pair<type_1::type_9*,type_3::type_9*> var_1;
  pair<type_1::type_9*,type_3::type_9*> var_2;
  type_11 lVar14;
  pair<type_1::type_9*,type_3::type_9*> var_3;
  
  var_4 = (type_6 *)(__k->field_2)._M_allocated_capacity;
  if (var_4 != (type_6 *)0x0) {
    var_5 = in_a2[1];
    var_6 = var_4[5];
    uVar8 = *in_a2;
    uVar10 = var_4[4];
    var_7 = var_6;
    if (var_5 <= var_6) {
      var_7 = var_5;
    }
    if (var_7 == 0) goto LAB_0025c8f8;
LAB_0025c8a4:
    var_8 = (*(type_12 *)PTR_memcmp_004368dc)(uVar8,uVar10,var_7);
    if (var_8 == 0) goto LAB_0025c8f8;
    if (var_8 < 0) goto LAB_0025c904;
    do {
      var_9 = (type_9 *)0x0;
      psVar1 = (type_6 *)var_4[3];
      var_11 = var_4;
      while( true ) {
        var_4 = psVar1;
        if (var_4 == (type_6 *)0x0) {
          if (var_9 != (type_9 *)0x0) goto LAB_0025c9c4;
          lVar14 = var_10(var_11) << 0x20;
          goto LAB_0025c91c;
        }
        var_6 = var_4[5];
        uVar10 = var_4[4];
        var_7 = var_6;
        if (var_5 <= var_6) {
          var_7 = var_5;
        }
        if (var_7 != 0) goto LAB_0025c8a4;
LAB_0025c8f8:
        if (-1 < (int)(var_5 - var_6)) break;
LAB_0025c904:
        var_9 = (type_9 *)0x1;
        psVar1 = (type_6 *)var_4[2];
        var_11 = var_4;
      }
    } while( true );
  }
  var_11 = &__k->_M_string_length;
LAB_0025c9c4:
  if ((type_6 *)*(type_13 **)((int)&__k->field_2 + 4) == var_11) {
    (this->_M_impl).super__Rb_tree_header._M_header._M_color = (type_14)var_11;
    *(type_10 *)&this->_M_impl = 0;
    var_3.first = (type_9 *)this;
    var_3.second = var_9;
    return var_3;
  }
  lVar14 = (*(type_12 *)PTR__Rb_tree_decrement_00432bc4)(var_11);
  var_8 = (int)((type_15)lVar14 >> 0x20);
  var_5 = in_a2[1];
  var_6 = *(type_8 *)(var_8 + 0x14);
  uVar10 = *(type_10 *)(var_8 + 0x10);
  uVar8 = *in_a2;
  var_7 = var_6;
  if (var_5 <= var_6) {
    var_7 = var_5;
  }
LAB_0025c91c:
  uVar4 = (type_10)lVar14;
  if (var_7 != 0) {
    var_13 = (*(type_12 *)PTR_memcmp_004368dc)(uVar10,uVar8,var_7);
    uVar4 = (type_10)var_13;
    if ((int)((type_15)var_13 >> 0x20) != 0) goto joined_r0x0025c980;
  }
  var_13 = var_12(var_6 - var_5,uVar4);
joined_r0x0025c980:
  if (var_13 < 0) {
    (this->_M_impl).super__Rb_tree_header._M_header._M_color = (type_14)var_11;
    *(type_10 *)&this->_M_impl = 0;
    var_2.first = (type_9 *)this;
    var_2.second = (type_9 *)var_13;
    return var_2;
  }
  *(int *)&this->_M_impl = (int)((type_15)lVar14 >> 0x20);
  (this->_M_impl).super__Rb_tree_header._M_header._M_color = _S_red;
  var_1.first = (type_9 *)this;
  var_1.second = (type_9 *)var_13;
  return var_1;
}


(translation_unit (ERROR (binary_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (identifier))) (declaration type: (type_identifier) (ERROR (identifier) (identifier) (identifier)) declarator: (identifier) (ERROR (identifier) (identifier)) declarator: (identifier) (ERROR) (ERROR (identifier) (identifier) (identifier) (identifier) (identifier)) declarator: (identifier) (ERROR (identifier) (identifier)) declarator: (identifier) (ERROR) (ERROR (identifier) (identifier) (identifier)) declarator: (identifier) (ERROR) (ERROR (identifier) (identifier) (identifier) (identifier) (identifier)) declarator: (identifier) (ERROR (identifier) (identifier) (identifier) (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) (primitive_type)) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) 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: (primitive_type) 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)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (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))) (return_statement (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier)))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (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))) (return_statement (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) consequence: (break_statement))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (true)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) condition: (parenthesized_expression (true))) (ERROR))

/* std::_Rb_tree<std::string, std::pair<std::string const, gold::Cref_inputs::Archive_info>,
   std::_Select1st<std::pair<std::string const, gold::Cref_inputs::Archive_info> >,
   std::less<std::string >, std::allocator<std::pair<std::string const,
   gold::Cref_inputs::Archive_info> > >::MASKED(std::string const&) */

string * std::
         _Rb_tree<std::string,std::pair<std::string_const,gold::Cref_inputs::Archive_info>,std::_Select1st<std::pair<std::string_const,gold::Cref_inputs::Archive_info>>,std::less<std::string>,std::allocator<std::pair<std::string_const,gold::Cref_inputs::Archive_info>>>
         ::MASKED(string *param_1)

{
  bool bVar1;
  int iVar2;
  uint uVar3;
  int iVar4;
  int in_a1;
  undefined4 *in_a2;
  int iVar5;
  uint uVar6;
  undefined4 uVar7;
  uint uVar8;
  undefined4 uVar9;
  
  iVar5 = *(int *)(in_a1 + 8);
  if (iVar5 == 0) {
    iVar2 = in_a1 + 4;
LAB_0025c9c4:
    if (*(int *)(in_a1 + 0xc) == iVar2) {
      *(int *)(param_1 + 4) = iVar2;
      *(undefined4 *)param_1 = 0;
      return param_1;
    }
    iVar5 = (*(code *)PTR__Rb_tree_decrement_00432bc4)(iVar2);
    uVar8 = in_a2[1];
    uVar6 = *(uint *)(iVar5 + 0x14);
    uVar9 = *(undefined4 *)(iVar5 + 0x10);
    uVar7 = *in_a2;
    uVar3 = uVar6;
    if (uVar8 <= uVar6) {
      uVar3 = uVar8;
    }
LAB_0025c91c:
    if ((uVar3 == 0) || (iVar4 = (*(code *)PTR_memcmp_004368dc)(uVar9,uVar7,uVar3), iVar4 == 0)) {
      iVar4 = uVar6 - uVar8;
    }
    if (iVar4 < 0) {
      *(int *)(param_1 + 4) = iVar2;
      *(undefined4 *)param_1 = 0;
      return param_1;
    }
    *(int *)param_1 = iVar5;
    *(undefined4 *)(param_1 + 4) = 0;
    return param_1;
  }
  uVar8 = in_a2[1];
  uVar6 = *(uint *)(iVar5 + 0x14);
  uVar7 = *in_a2;
  uVar9 = *(undefined4 *)(iVar5 + 0x10);
  uVar3 = uVar6;
  if (uVar8 <= uVar6) {
    uVar3 = uVar8;
  }
  if (uVar3 == 0) goto LAB_0025c8f8;
LAB_0025c8a4:
  iVar2 = (*(code *)PTR_memcmp_004368dc)(uVar7,uVar9,uVar3);
  if (iVar2 == 0) goto LAB_0025c8f8;
  if (iVar2 < 0) goto LAB_0025c904;
  do {
    bVar1 = false;
    iVar4 = *(int *)(iVar5 + 0xc);
    iVar2 = iVar5;
    while( true ) {
      iVar5 = iVar4;
      if (iVar5 == 0) {
        iVar5 = iVar2;
        if (!bVar1) goto LAB_0025c91c;
        goto LAB_0025c9c4;
      }
      uVar6 = *(uint *)(iVar5 + 0x14);
      uVar9 = *(undefined4 *)(iVar5 + 0x10);
      uVar3 = uVar6;
      if (uVar8 <= uVar6) {
        uVar3 = uVar8;
      }
      if (uVar3 != 0) goto LAB_0025c8a4;
LAB_0025c8f8:
      if (-1 < (int)(uVar8 - uVar6)) break;
LAB_0025c904:
      bVar1 = true;
      iVar4 = *(int *)(iVar5 + 8);
      iVar2 = iVar5;
    }
  } while( true );
}

