
/* DWARF original name: _M_insert_unique<const std::pair<long int const, long unsigned int>&>
   DWARF original prototype:
   pair<std::_Rb_tree_iterator<std::pair<long_int_const,_long_unsigned_int>_>,_bool>
   _M_insert_unique<const_std::pair<long_int_const,_long_unsigned_int>&>(_Rb_tree<long_int,_std::pair<long_int_const,_long_unsigned_int>,_std::_Select1st<std::pair<long_int_const,_long_unsigned_int>_>,_std::less<long_int>,_std::allocator<std::pair<long_int_const,_long_unsigned_int>_>_>
   * this, pair<long_int_const,_long_unsigned_int> * __v) */

pair<std::_Rb_tree_iterator<std::pair<long_int_const,_long_unsigned_int>_>,_bool> __thiscall
std::
_Rb_tree<long_int,_std::pair<long_int_const,_long_unsigned_int>,_std::_Select1st<std::pair<long_int_const,_long_unsigned_int>_>,_std::less<long_int>,_std::allocator<std::pair<long_int_const,_long_unsigned_int>_>_>
::_M_insert_unique<const_std::pair<long_int_const,_long_unsigned_int>&>
          (_Rb_tree<long_int,_std::pair<long_int_const,_long_unsigned_int>,_std::_Select1st<std::pair<long_int_const,_long_unsigned_int>_>,_std::less<long_int>,_std::allocator<std::pair<long_int_const,_long_unsigned_int>_>_>
           *this,pair<long_int_const,_long_unsigned_int> *__v)

{
  _Rb_tree_header *p_Var1;
  size_t *psVar2;
  _Base_ptr p_Var3;
  _Rb_tree_node_base *p_Var4;
  bool bVar5;
  pair<std::_Rb_tree_node_base*,_std::_Rb_tree_node_base*> pVar6;
  pair<std::_Rb_tree_iterator<std::pair<long_int_const,_long_unsigned_int>_>,_bool> pVar7;
  pair<std::_Rb_tree_iterator<std::pair<long_int_const,_long_unsigned_int>_>,_bool> pVar8;
  
  pVar6 = _M_get_insert_unique_pos(this,&__v->first);
  p_Var4 = pVar6.second;
  pVar8.first._M_node = pVar6.first;
  if (p_Var4 != (_Rb_tree_node_base *)0x0) {
    p_Var1 = &(this->_M_impl).super__Rb_tree_header;
    bVar5 = true;
    if ((pVar8.first._M_node == (_Rb_tree_node_base *)0x0) && ((_Rb_tree_header *)p_Var4 != p_Var1))
    {
      bVar5 = __v->first < *(long *)(p_Var4 + 1);
    }
    pVar7.first._M_node = (_Base_ptr)operator_new(0x30);
    p_Var3 = (_Base_ptr)__v->second;
    *(long *)(pVar7.first._M_node + 1) = __v->first;
    pVar7.first._M_node[1]._M_parent = p_Var3;
    _Rb_tree_insert_and_rebalance(bVar5,pVar7.first._M_node,p_Var4,&p_Var1->_M_header);
    psVar2 = &(this->_M_impl).super__Rb_tree_header._M_node_count;
    *psVar2 = *psVar2 + 1;
    pVar7._8_8_ = 1;
    return pVar7;
  }
  pVar8._8_8_ = 0;
  return pVar8;
}



undefined1  [16] FUN_0024b080(long param_1,long *param_2)

{
  long lVar1;
  bool bVar3;
  undefined1 auVar4 [16];
  undefined1 auVar5 [16];
  long lVar2;
  
  auVar4 = FUN_0024aff0();
  lVar2 = auVar4._8_8_;
  if (lVar2 != 0) {
    bVar3 = true;
    if ((auVar4._0_8_ == 0) && (lVar2 != param_1 + 8)) {
      bVar3 = *param_2 < *(long *)(lVar2 + 0x20);
    }
    auVar5._0_8_ = FUN_002d9490(0x30);
    lVar1 = param_2[1];
    *(long *)(auVar5._0_8_ + 0x20) = *param_2;
    *(long *)(auVar5._0_8_ + 0x28) = lVar1;
    FUN_002dc160(bVar3,auVar5._0_8_,lVar2,param_1 + 8);
    *(long *)(param_1 + 0x28) = *(long *)(param_1 + 0x28) + 1;
    auVar5._8_8_ = 1;
    return auVar5;
  }
  auVar4._8_8_ = 0;
  return auVar4;
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
MOV R12,RSI
PUSH RBP
MOV RBP,RDI
PUSH RBX
SUB RSP,0x8
CALL 0x0024aff0
TEST RDX,RDX
JZ 0x0024b100
MOV R13,RDX
LEA R14,[RBP + 0x8]
MOV R15D,0x1
TEST RAX,RAX
JZ 0x0024b118
MOV EDI,0x30
CALL 0x002d9490
MOV RDX,qword ptr [R12]
MOV RCX,R14
MOV EDI,R15D
MOV RBX,RAX
MOV RAX,qword ptr [R12 + 0x8]
MOV qword ptr [RBX + 0x20],RDX
MOV RSI,RBX
MOV RDX,R13
MOV qword ptr [RBX + 0x28],RAX
CALL 0x002dc160
ADD qword ptr [RBP + 0x28],0x1
ADD RSP,0x8
MOV RAX,RBX
MOV EDX,0x1
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
ADD RSP,0x8
XOR EDX,EDX
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
CMP RDX,R14
JZ 0x0024b0b0
XOR R15D,R15D
MOV RAX,qword ptr [RDX + 0x20]
CMP qword ptr [R12],RAX
SETL R15B
JMP 0x0024b0b0
(translation_unit "undefined1  [16] FUN_0024b080(long param_1,long *param_2)\n\n{\n  long lVar1;\n  bool bVar3;\n  undefined1 auVar4 [16];\n  undefined1 auVar5 [16];\n  long lVar2;\n  \n  auVar4 = FUN_0024aff0();\n  lVar2 = auVar4._8_8_;\n  if (lVar2 != 0) {\n    bVar3 = true;\n    if ((auVar4._0_8_ == 0) && (lVar2 != param_1 + 8)) {\n      bVar3 = *param_2 < *(long *)(lVar2 + 0x20);\n    }\n    auVar5._0_8_ = FUN_002d9490(0x30);\n    lVar1 = param_2[1];\n    *(long *)(auVar5._0_8_ + 0x20) = *param_2;\n    *(long *)(auVar5._0_8_ + 0x28) = lVar1;\n    FUN_002dc160(bVar3,auVar5._0_8_,lVar2,param_1 + 8);\n    *(long *)(param_1 + 0x28) = *(long *)(param_1 + 0x28) + 1;\n    auVar5._8_8_ = 1;\n    return auVar5;\n  }\n  auVar4._8_8_ = 0;\n  return auVar4;\n}\n\n" (expression_statement "undefined1  [16]" (subscript_expression "undefined1  [16]" identifier [ number_literal ]) ;) (macro_type_specifier "FUN_0024b080(long param_1,long *param_2)" identifier ( (ERROR "long param_1,long *" (type_descriptor "long param_1" (sized_type_specifier "long param_1" long type_identifier)) , (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *))) (type_descriptor "param_2" type_identifier) )) ; (compound_statement "{\n  long lVar1;\n  bool bVar3;\n  undefined1 auVar4 [16];\n  undefined1 auVar5 [16];\n  long lVar2;\n  \n  auVar4 = FUN_0024aff0();\n  lVar2 = auVar4._8_8_;\n  if (lVar2 != 0) {\n    bVar3 = true;\n    if ((auVar4._0_8_ == 0) && (lVar2 != param_1 + 8)) {\n      bVar3 = *param_2 < *(long *)(lVar2 + 0x20);\n    }\n    auVar5._0_8_ = FUN_002d9490(0x30);\n    lVar1 = param_2[1];\n    *(long *)(auVar5._0_8_ + 0x20) = *param_2;\n    *(long *)(auVar5._0_8_ + 0x28) = lVar1;\n    FUN_002dc160(bVar3,auVar5._0_8_,lVar2,param_1 + 8);\n    *(long *)(param_1 + 0x28) = *(long *)(param_1 + 0x28) + 1;\n    auVar5._8_8_ = 1;\n    return auVar5;\n  }\n  auVar4._8_8_ = 0;\n  return auVar4;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "undefined1 auVar4 [16];" type_identifier (array_declarator "auVar4 [16]" identifier [ number_literal ]) ;) (declaration "undefined1 auVar5 [16];" type_identifier (array_declarator "auVar5 [16]" identifier [ number_literal ]) ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (expression_statement "auVar4 = FUN_0024aff0();" (assignment_expression "auVar4 = FUN_0024aff0()" identifier = (call_expression "FUN_0024aff0()" identifier (argument_list "()" ( )))) ;) (expression_statement "lVar2 = auVar4._8_8_;" (assignment_expression "lVar2 = auVar4._8_8_" identifier = (field_expression "auVar4._8_8_" identifier . field_identifier)) ;) (if_statement "if (lVar2 != 0) {\n    bVar3 = true;\n    if ((auVar4._0_8_ == 0) && (lVar2 != param_1 + 8)) {\n      bVar3 = *param_2 < *(long *)(lVar2 + 0x20);\n    }\n    auVar5._0_8_ = FUN_002d9490(0x30);\n    lVar1 = param_2[1];\n    *(long *)(auVar5._0_8_ + 0x20) = *param_2;\n    *(long *)(auVar5._0_8_ + 0x28) = lVar1;\n    FUN_002dc160(bVar3,auVar5._0_8_,lVar2,param_1 + 8);\n    *(long *)(param_1 + 0x28) = *(long *)(param_1 + 0x28) + 1;\n    auVar5._8_8_ = 1;\n    return auVar5;\n  }" if (parenthesized_expression "(lVar2 != 0)" ( (binary_expression "lVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    bVar3 = true;\n    if ((auVar4._0_8_ == 0) && (lVar2 != param_1 + 8)) {\n      bVar3 = *param_2 < *(long *)(lVar2 + 0x20);\n    }\n    auVar5._0_8_ = FUN_002d9490(0x30);\n    lVar1 = param_2[1];\n    *(long *)(auVar5._0_8_ + 0x20) = *param_2;\n    *(long *)(auVar5._0_8_ + 0x28) = lVar1;\n    FUN_002dc160(bVar3,auVar5._0_8_,lVar2,param_1 + 8);\n    *(long *)(param_1 + 0x28) = *(long *)(param_1 + 0x28) + 1;\n    auVar5._8_8_ = 1;\n    return auVar5;\n  }" { (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) (if_statement "if ((auVar4._0_8_ == 0) && (lVar2 != param_1 + 8)) {\n      bVar3 = *param_2 < *(long *)(lVar2 + 0x20);\n    }" if (parenthesized_expression "((auVar4._0_8_ == 0) && (lVar2 != param_1 + 8))" ( (binary_expression "(auVar4._0_8_ == 0) && (lVar2 != param_1 + 8)" (parenthesized_expression "(auVar4._0_8_ == 0)" ( (binary_expression "auVar4._0_8_ == 0" (field_expression "auVar4._0_8_" identifier . field_identifier) == number_literal) )) && (parenthesized_expression "(lVar2 != param_1 + 8)" ( (binary_expression "lVar2 != param_1 + 8" identifier != (binary_expression "param_1 + 8" identifier + number_literal)) ))) )) (compound_statement "{\n      bVar3 = *param_2 < *(long *)(lVar2 + 0x20);\n    }" { (expression_statement "bVar3 = *param_2 < *(long *)(lVar2 + 0x20);" (assignment_expression "bVar3 = *param_2 < *(long *)(lVar2 + 0x20)" identifier = (binary_expression "*param_2 < *(long *)(lVar2 + 0x20)" (pointer_expression "*param_2" * identifier) < (pointer_expression "*(long *)(lVar2 + 0x20)" * (cast_expression "(long *)(lVar2 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x20)" ( (binary_expression "lVar2 + 0x20" identifier + number_literal) )))))) ;) })) (expression_statement "auVar5._0_8_ = FUN_002d9490(0x30);" (assignment_expression "auVar5._0_8_ = FUN_002d9490(0x30)" (field_expression "auVar5._0_8_" identifier . field_identifier) = (call_expression "FUN_002d9490(0x30)" identifier (argument_list "(0x30)" ( number_literal )))) ;) (expression_statement "lVar1 = param_2[1];" (assignment_expression "lVar1 = param_2[1]" identifier = (subscript_expression "param_2[1]" identifier [ number_literal ])) ;) (expression_statement "*(long *)(auVar5._0_8_ + 0x20) = *param_2;" (assignment_expression "*(long *)(auVar5._0_8_ + 0x20) = *param_2" (pointer_expression "*(long *)(auVar5._0_8_ + 0x20)" * (cast_expression "(long *)(auVar5._0_8_ + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auVar5._0_8_ + 0x20)" ( (binary_expression "auVar5._0_8_ + 0x20" (field_expression "auVar5._0_8_" identifier . field_identifier) + number_literal) )))) = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "*(long *)(auVar5._0_8_ + 0x28) = lVar1;" (assignment_expression "*(long *)(auVar5._0_8_ + 0x28) = lVar1" (pointer_expression "*(long *)(auVar5._0_8_ + 0x28)" * (cast_expression "(long *)(auVar5._0_8_ + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auVar5._0_8_ + 0x28)" ( (binary_expression "auVar5._0_8_ + 0x28" (field_expression "auVar5._0_8_" identifier . field_identifier) + number_literal) )))) = identifier) ;) (expression_statement "FUN_002dc160(bVar3,auVar5._0_8_,lVar2,param_1 + 8);" (call_expression "FUN_002dc160(bVar3,auVar5._0_8_,lVar2,param_1 + 8)" identifier (argument_list "(bVar3,auVar5._0_8_,lVar2,param_1 + 8)" ( identifier , (field_expression "auVar5._0_8_" identifier . field_identifier) , identifier , (binary_expression "param_1 + 8" identifier + number_literal) ))) ;) (expression_statement "*(long *)(param_1 + 0x28) = *(long *)(param_1 + 0x28) + 1;" (assignment_expression "*(long *)(param_1 + 0x28) = *(long *)(param_1 + 0x28) + 1" (pointer_expression "*(long *)(param_1 + 0x28)" * (cast_expression "(long *)(param_1 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = (binary_expression "*(long *)(param_1 + 0x28) + 1" (pointer_expression "*(long *)(param_1 + 0x28)" * (cast_expression "(long *)(param_1 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "auVar5._8_8_ = 1;" (assignment_expression "auVar5._8_8_ = 1" (field_expression "auVar5._8_8_" identifier . field_identifier) = number_literal) ;) (return_statement "return auVar5;" return identifier ;) })) (expression_statement "auVar4._8_8_ = 0;" (assignment_expression "auVar4._8_8_ = 0" (field_expression "auVar4._8_8_" identifier . field_identifier) = number_literal) ;) (return_statement "return auVar4;" return identifier ;) }))
(translation_unit "/* DWARF original name: _M_insert_unique<const std::pair<long int const, long unsigned int>&>\n   DWARF original prototype:\n   pair<std::_Rb_tree_iterator<std::pair<long_int_const,_long_unsigned_int>_>,_bool>\n   _M_insert_unique<const_std::pair<long_int_const,_long_unsigned_int>&>(_Rb_tree<long_int,_std::pair<long_int_const,_long_unsigned_int>,_std::_Select1st<std::pair<long_int_const,_long_unsigned_int>_>,_std::less<long_int>,_std::allocator<std::pair<long_int_const,_long_unsigned_int>_>_>\n   * this, pair<long_int_const,_long_unsigned_int> * __v) */\n\npair<std::_Rb_tree_iterator<std::pair<long_int_const,_long_unsigned_int>_>,_bool> __thiscall\nstd::\n_Rb_tree<long_int,_std::pair<long_int_const,_long_unsigned_int>,_std::_Select1st<std::pair<long_int_const,_long_unsigned_int>_>,_std::less<long_int>,_std::allocator<std::pair<long_int_const,_long_unsigned_int>_>_>\n::_M_insert_unique<const_std::pair<long_int_const,_long_unsigned_int>&>\n          (_Rb_tree<long_int,_std::pair<long_int_const,_long_unsigned_int>,_std::_Select1st<std::pair<long_int_const,_long_unsigned_int>_>,_std::less<long_int>,_std::allocator<std::pair<long_int_const,_long_unsigned_int>_>_>\n           *this,pair<long_int_const,_long_unsigned_int> *__v)\n\n{\n  _Rb_tree_header *p_Var1;\n  size_t *psVar2;\n  _Base_ptr p_Var3;\n  _Rb_tree_node_base *p_Var4;\n  bool bVar5;\n  pair<std::_Rb_tree_node_base*,_std::_Rb_tree_node_base*> pVar6;\n  pair<std::_Rb_tree_iterator<std::pair<long_int_const,_long_unsigned_int>_>,_bool> pVar7;\n  pair<std::_Rb_tree_iterator<std::pair<long_int_const,_long_unsigned_int>_>,_bool> pVar8;\n  \n  pVar6 = _M_get_insert_unique_pos(this,&__v->first);\n  p_Var4 = pVar6.second;\n  pVar8.first._M_node = pVar6.first;\n  if (p_Var4 != (_Rb_tree_node_base *)0x0) {\n    p_Var1 = &(this->_M_impl).super__Rb_tree_header;\n    bVar5 = true;\n    if ((pVar8.first._M_node == (_Rb_tree_node_base *)0x0) && ((_Rb_tree_header *)p_Var4 != p_Var1))\n    {\n      bVar5 = __v->first < *(long *)(p_Var4 + 1);\n    }\n    pVar7.first._M_node = (_Base_ptr)operator_new(0x30);\n    p_Var3 = (_Base_ptr)__v->second;\n    *(long *)(pVar7.first._M_node + 1) = __v->first;\n    pVar7.first._M_node[1]._M_parent = p_Var3;\n    _Rb_tree_insert_and_rebalance(bVar5,pVar7.first._M_node,p_Var4,&p_Var1->_M_header);\n    psVar2 = &(this->_M_impl).super__Rb_tree_header._M_node_count;\n    *psVar2 = *psVar2 + 1;\n    pVar7._8_8_ = 1;\n    return pVar7;\n  }\n  pVar8._8_8_ = 0;\n  return pVar8;\n}\n\n" comment (ERROR "pair<std::_Rb_tree_iterator<std::pair<long_int_const,_long_unsigned_int>_>,_bool> __thiscall\nstd::\n_Rb_tree<long_int," (binary_expression "pair<std" identifier < identifier) : : (binary_expression "_Rb_tree_iterator<std" identifier < identifier) : : (binary_expression "pair<long_int_const" identifier < identifier) , (binary_expression "_long_unsigned_int>_>,_bool> __thiscall\nstd::\n_Rb_tree<long_int" (binary_expression "_long_unsigned_int>_>,_bool> __thiscall" (binary_expression "_long_unsigned_int>_>,_bool" (binary_expression "_long_unsigned_int>_" identifier > identifier) > (ERROR "," ,) identifier) > identifier) (ERROR "std::\n_Rb_tree" identifier : : identifier) < identifier) ,) (labeled_statement "_std::pair<long_int_const,_long_unsigned_int>,_std::_Select1st<std::pair<long_int_const,_long_unsigned_int>_>,_std::less<long_int>,_std::allocator<std::pair<long_int_const,_long_unsigned_int>_>_>\n::_M_insert_unique<const_std::pair<long_int_const,_long_unsigned_int>&>\n          (_Rb_tree<long_int,_std::pair<long_int_const,_long_unsigned_int>,_std::_Select1st<std::pair<long_int_const,_long_unsigned_int>_>,_std::less<long_int>,_std::allocator<std::pair<long_int_const,_long_unsigned_int>_>_>\n           *this,pair<long_int_const,_long_unsigned_int> *__v)" statement_identifier (ERROR "::pair<long_int_const,_long_unsigned_int>,_std::_Select1st<std::pair<long_int_const,_long_unsigned_int>_>,_std::less<long_int>,_std::allocator<std::pair<long_int_const,_long_unsigned_int>_>_>\n::_M_insert_unique<const_std:" : : (comma_expression "pair<long_int_const,_long_unsigned_int>,_std" (binary_expression "pair<long_int_const" identifier < identifier) , (binary_expression "_long_unsigned_int>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "_Select1st<std" identifier < identifier) : : (comma_expression "pair<long_int_const,_long_unsigned_int>_>,_std" (binary_expression "pair<long_int_const" identifier < identifier) , (binary_expression "_long_unsigned_int>_>,_std" (binary_expression "_long_unsigned_int>_" identifier > identifier) > (ERROR "," ,) identifier)) : : (binary_expression "less<long_int>,_std" (binary_expression "less<long_int" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<long_int_const,_long_unsigned_int>_>_>\n::_M_insert_unique<const_std" (binary_expression "pair<long_int_const" identifier < identifier) , (binary_expression "_long_unsigned_int>_>_>\n::_M_insert_unique<const_std" (binary_expression "_long_unsigned_int>_>_>\n::_M_insert_unique" (binary_expression "_long_unsigned_int>_>_" (binary_expression "_long_unsigned_int>_" identifier > identifier) > identifier) > (ERROR "::" : :) identifier) < identifier)) :) : (expression_statement "pair<long_int_const,_long_unsigned_int>&>\n          (_Rb_tree<long_int,_std::pair<long_int_const,_long_unsigned_int>,_std::_Select1st<std::pair<long_int_const,_long_unsigned_int>_>,_std::less<long_int>,_std::allocator<std::pair<long_int_const,_long_unsigned_int>_>_>\n           *this,pair<long_int_const,_long_unsigned_int> *__v)" (comma_expression "pair<long_int_const,_long_unsigned_int>&>\n          (_Rb_tree<long_int,_std::pair<long_int_const,_long_unsigned_int>,_std::_Select1st<std::pair<long_int_const,_long_unsigned_int>_>,_std::less<long_int>,_std::allocator<std::pair<long_int_const,_long_unsigned_int>_>_>\n           *this,pair<long_int_const,_long_unsigned_int> *__v)" (binary_expression "pair<long_int_const" identifier < identifier) , (binary_expression "_long_unsigned_int>&>\n          (_Rb_tree<long_int,_std::pair<long_int_const,_long_unsigned_int>,_std::_Select1st<std::pair<long_int_const,_long_unsigned_int>_>,_std::less<long_int>,_std::allocator<std::pair<long_int_const,_long_unsigned_int>_>_>\n           *this,pair<long_int_const,_long_unsigned_int> *__v)" identifier > (pointer_expression "&>\n          (_Rb_tree<long_int,_std::pair<long_int_const,_long_unsigned_int>,_std::_Select1st<std::pair<long_int_const,_long_unsigned_int>_>,_std::less<long_int>,_std::allocator<std::pair<long_int_const,_long_unsigned_int>_>_>\n           *this,pair<long_int_const,_long_unsigned_int> *__v)" & (ERROR ">" >) (parenthesized_expression "(_Rb_tree<long_int,_std::pair<long_int_const,_long_unsigned_int>,_std::_Select1st<std::pair<long_int_const,_long_unsigned_int>_>,_std::less<long_int>,_std::allocator<std::pair<long_int_const,_long_unsigned_int>_>_>\n           *this,pair<long_int_const,_long_unsigned_int> *__v)" ( (ERROR "_Rb_tree<long_int,_std::pair<long_int_const,_long_unsigned_int>,_std::_Select1st<std::pair<long_int_const,_long_unsigned_int>_>,_std::less<long_int>,_std::allocator<std::" (comma_expression "_Rb_tree<long_int,_std" (binary_expression "_Rb_tree<long_int" identifier < identifier) , identifier) : : (comma_expression "pair<long_int_const,_long_unsigned_int>,_std" (binary_expression "pair<long_int_const" identifier < identifier) , (binary_expression "_long_unsigned_int>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "_Select1st<std" identifier < identifier) : : (comma_expression "pair<long_int_const,_long_unsigned_int>_>,_std" (binary_expression "pair<long_int_const" identifier < identifier) , (binary_expression "_long_unsigned_int>_>,_std" (binary_expression "_long_unsigned_int>_" identifier > identifier) > (ERROR "," ,) identifier)) : : (binary_expression "less<long_int>,_std" (binary_expression "less<long_int" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : :) (comma_expression "pair<long_int_const,_long_unsigned_int>_>_>\n           *this,pair<long_int_const,_long_unsigned_int> *__v" (binary_expression "pair<long_int_const" identifier < identifier) , (comma_expression "_long_unsigned_int>_>_>\n           *this,pair<long_int_const,_long_unsigned_int> *__v" (binary_expression "_long_unsigned_int>_>_>\n           *this" (binary_expression "_long_unsigned_int>_>_" (binary_expression "_long_unsigned_int>_" identifier > identifier) > identifier) > (pointer_expression "*this" * identifier)) , (comma_expression "pair<long_int_const,_long_unsigned_int> *__v" (binary_expression "pair<long_int_const" identifier < identifier) , (binary_expression "_long_unsigned_int> *__v" identifier > (pointer_expression "*__v" * identifier))))) ))))) ;)) (compound_statement "{\n  _Rb_tree_header *p_Var1;\n  size_t *psVar2;\n  _Base_ptr p_Var3;\n  _Rb_tree_node_base *p_Var4;\n  bool bVar5;\n  pair<std::_Rb_tree_node_base*,_std::_Rb_tree_node_base*> pVar6;\n  pair<std::_Rb_tree_iterator<std::pair<long_int_const,_long_unsigned_int>_>,_bool> pVar7;\n  pair<std::_Rb_tree_iterator<std::pair<long_int_const,_long_unsigned_int>_>,_bool> pVar8;\n  \n  pVar6 = _M_get_insert_unique_pos(this,&__v->first);\n  p_Var4 = pVar6.second;\n  pVar8.first._M_node = pVar6.first;\n  if (p_Var4 != (_Rb_tree_node_base *)0x0) {\n    p_Var1 = &(this->_M_impl).super__Rb_tree_header;\n    bVar5 = true;\n    if ((pVar8.first._M_node == (_Rb_tree_node_base *)0x0) && ((_Rb_tree_header *)p_Var4 != p_Var1))\n    {\n      bVar5 = __v->first < *(long *)(p_Var4 + 1);\n    }\n    pVar7.first._M_node = (_Base_ptr)operator_new(0x30);\n    p_Var3 = (_Base_ptr)__v->second;\n    *(long *)(pVar7.first._M_node + 1) = __v->first;\n    pVar7.first._M_node[1]._M_parent = p_Var3;\n    _Rb_tree_insert_and_rebalance(bVar5,pVar7.first._M_node,p_Var4,&p_Var1->_M_header);\n    psVar2 = &(this->_M_impl).super__Rb_tree_header._M_node_count;\n    *psVar2 = *psVar2 + 1;\n    pVar7._8_8_ = 1;\n    return pVar7;\n  }\n  pVar8._8_8_ = 0;\n  return pVar8;\n}" { (declaration "_Rb_tree_header *p_Var1;" type_identifier (pointer_declarator "*p_Var1" * identifier) ;) (declaration "size_t *psVar2;" primitive_type (pointer_declarator "*psVar2" * identifier) ;) (declaration "_Base_ptr p_Var3;" type_identifier identifier ;) (declaration "_Rb_tree_node_base *p_Var4;" type_identifier (pointer_declarator "*p_Var4" * identifier) ;) (declaration "bool bVar5;" primitive_type 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*> pVar6;" (binary_expression "_Rb_tree_node_base*> pVar6" identifier * (ERROR ">" >) identifier) ;) (ERROR "pair<std::_Rb_tree_iterator<std::" (binary_expression "pair<std" identifier < identifier) : : (binary_expression "_Rb_tree_iterator<std" identifier < identifier) : :) (expression_statement "pair<long_int_const,_long_unsigned_int>_>,_bool> pVar7;" (comma_expression "pair<long_int_const,_long_unsigned_int>_>,_bool> pVar7" (binary_expression "pair<long_int_const" identifier < identifier) , (binary_expression "_long_unsigned_int>_>,_bool> pVar7" (binary_expression "_long_unsigned_int>_>,_bool" (binary_expression "_long_unsigned_int>_" identifier > identifier) > (ERROR "," ,) identifier) > identifier)) ;) (ERROR "pair<std::_Rb_tree_iterator<std::" (binary_expression "pair<std" identifier < identifier) : : (binary_expression "_Rb_tree_iterator<std" identifier < identifier) : :) (expression_statement "pair<long_int_const,_long_unsigned_int>_>,_bool> pVar8;" (comma_expression "pair<long_int_const,_long_unsigned_int>_>,_bool> pVar8" (binary_expression "pair<long_int_const" identifier < identifier) , (binary_expression "_long_unsigned_int>_>,_bool> pVar8" (binary_expression "_long_unsigned_int>_>,_bool" (binary_expression "_long_unsigned_int>_" identifier > identifier) > (ERROR "," ,) identifier) > identifier)) ;) (expression_statement "pVar6 = _M_get_insert_unique_pos(this,&__v->first);" (assignment_expression "pVar6 = _M_get_insert_unique_pos(this,&__v->first)" identifier = (call_expression "_M_get_insert_unique_pos(this,&__v->first)" identifier (argument_list "(this,&__v->first)" ( identifier , (pointer_expression "&__v->first" & (field_expression "__v->first" identifier -> field_identifier)) )))) ;) (expression_statement "p_Var4 = pVar6.second;" (assignment_expression "p_Var4 = pVar6.second" identifier = (field_expression "pVar6.second" identifier . field_identifier)) ;) (expression_statement "pVar8.first._M_node = pVar6.first;" (assignment_expression "pVar8.first._M_node = pVar6.first" (field_expression "pVar8.first._M_node" (field_expression "pVar8.first" identifier . field_identifier) . field_identifier) = (field_expression "pVar6.first" identifier . field_identifier)) ;) (if_statement "if (p_Var4 != (_Rb_tree_node_base *)0x0) {\n    p_Var1 = &(this->_M_impl).super__Rb_tree_header;\n    bVar5 = true;\n    if ((pVar8.first._M_node == (_Rb_tree_node_base *)0x0) && ((_Rb_tree_header *)p_Var4 != p_Var1))\n    {\n      bVar5 = __v->first < *(long *)(p_Var4 + 1);\n    }\n    pVar7.first._M_node = (_Base_ptr)operator_new(0x30);\n    p_Var3 = (_Base_ptr)__v->second;\n    *(long *)(pVar7.first._M_node + 1) = __v->first;\n    pVar7.first._M_node[1]._M_parent = p_Var3;\n    _Rb_tree_insert_and_rebalance(bVar5,pVar7.first._M_node,p_Var4,&p_Var1->_M_header);\n    psVar2 = &(this->_M_impl).super__Rb_tree_header._M_node_count;\n    *psVar2 = *psVar2 + 1;\n    pVar7._8_8_ = 1;\n    return pVar7;\n  }" if (parenthesized_expression "(p_Var4 != (_Rb_tree_node_base *)0x0)" ( (binary_expression "p_Var4 != (_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)) )) (compound_statement "{\n    p_Var1 = &(this->_M_impl).super__Rb_tree_header;\n    bVar5 = true;\n    if ((pVar8.first._M_node == (_Rb_tree_node_base *)0x0) && ((_Rb_tree_header *)p_Var4 != p_Var1))\n    {\n      bVar5 = __v->first < *(long *)(p_Var4 + 1);\n    }\n    pVar7.first._M_node = (_Base_ptr)operator_new(0x30);\n    p_Var3 = (_Base_ptr)__v->second;\n    *(long *)(pVar7.first._M_node + 1) = __v->first;\n    pVar7.first._M_node[1]._M_parent = p_Var3;\n    _Rb_tree_insert_and_rebalance(bVar5,pVar7.first._M_node,p_Var4,&p_Var1->_M_header);\n    psVar2 = &(this->_M_impl).super__Rb_tree_header._M_node_count;\n    *psVar2 = *psVar2 + 1;\n    pVar7._8_8_ = 1;\n    return pVar7;\n  }" { (expression_statement "p_Var1 = &(this->_M_impl).super__Rb_tree_header;" (assignment_expression "p_Var1 = &(this->_M_impl).super__Rb_tree_header" identifier = (pointer_expression "&(this->_M_impl).super__Rb_tree_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))) ;) (expression_statement "bVar5 = true;" (assignment_expression "bVar5 = true" identifier = true) ;) (if_statement "if ((pVar8.first._M_node == (_Rb_tree_node_base *)0x0) && ((_Rb_tree_header *)p_Var4 != p_Var1))\n    {\n      bVar5 = __v->first < *(long *)(p_Var4 + 1);\n    }" if (parenthesized_expression "((pVar8.first._M_node == (_Rb_tree_node_base *)0x0) && ((_Rb_tree_header *)p_Var4 != p_Var1))" ( (binary_expression "(pVar8.first._M_node == (_Rb_tree_node_base *)0x0) && ((_Rb_tree_header *)p_Var4 != p_Var1)" (parenthesized_expression "(pVar8.first._M_node == (_Rb_tree_node_base *)0x0)" ( (binary_expression "pVar8.first._M_node == (_Rb_tree_node_base *)0x0" (field_expression "pVar8.first._M_node" (field_expression "pVar8.first" identifier . field_identifier) . field_identifier) == (cast_expression "(_Rb_tree_node_base *)0x0" ( (type_descriptor "_Rb_tree_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((_Rb_tree_header *)p_Var4 != p_Var1)" ( (binary_expression "(_Rb_tree_header *)p_Var4 != p_Var1" (cast_expression "(_Rb_tree_header *)p_Var4" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != identifier) ))) )) (compound_statement "{\n      bVar5 = __v->first < *(long *)(p_Var4 + 1);\n    }" { (expression_statement "bVar5 = __v->first < *(long *)(p_Var4 + 1);" (assignment_expression "bVar5 = __v->first < *(long *)(p_Var4 + 1)" identifier = (binary_expression "__v->first < *(long *)(p_Var4 + 1)" (field_expression "__v->first" identifier -> field_identifier) < (pointer_expression "*(long *)(p_Var4 + 1)" * (cast_expression "(long *)(p_Var4 + 1)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var4 + 1)" ( (binary_expression "p_Var4 + 1" identifier + number_literal) )))))) ;) })) (expression_statement "pVar7.first._M_node = (_Base_ptr)operator_new(0x30);" (assignment_expression "pVar7.first._M_node = (_Base_ptr)operator_new(0x30)" (field_expression "pVar7.first._M_node" (field_expression "pVar7.first" identifier . field_identifier) . field_identifier) = (cast_expression "(_Base_ptr)operator_new(0x30)" ( (type_descriptor "_Base_ptr" type_identifier) ) (call_expression "operator_new(0x30)" identifier (argument_list "(0x30)" ( number_literal ))))) ;) (expression_statement "p_Var3 = (_Base_ptr)__v->second;" (assignment_expression "p_Var3 = (_Base_ptr)__v->second" identifier = (cast_expression "(_Base_ptr)__v->second" ( (type_descriptor "_Base_ptr" type_identifier) ) (field_expression "__v->second" identifier -> field_identifier))) ;) (expression_statement "*(long *)(pVar7.first._M_node + 1) = __v->first;" (assignment_expression "*(long *)(pVar7.first._M_node + 1) = __v->first" (pointer_expression "*(long *)(pVar7.first._M_node + 1)" * (cast_expression "(long *)(pVar7.first._M_node + 1)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pVar7.first._M_node + 1)" ( (binary_expression "pVar7.first._M_node + 1" (field_expression "pVar7.first._M_node" (field_expression "pVar7.first" identifier . field_identifier) . field_identifier) + number_literal) )))) = (field_expression "__v->first" identifier -> field_identifier)) ;) (expression_statement "pVar7.first._M_node[1]._M_parent = p_Var3;" (assignment_expression "pVar7.first._M_node[1]._M_parent = p_Var3" (field_expression "pVar7.first._M_node[1]._M_parent" (subscript_expression "pVar7.first._M_node[1]" (field_expression "pVar7.first._M_node" (field_expression "pVar7.first" identifier . field_identifier) . field_identifier) [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "_Rb_tree_insert_and_rebalance(bVar5,pVar7.first._M_node,p_Var4,&p_Var1->_M_header);" (call_expression "_Rb_tree_insert_and_rebalance(bVar5,pVar7.first._M_node,p_Var4,&p_Var1->_M_header)" identifier (argument_list "(bVar5,pVar7.first._M_node,p_Var4,&p_Var1->_M_header)" ( identifier , (field_expression "pVar7.first._M_node" (field_expression "pVar7.first" identifier . field_identifier) . field_identifier) , identifier , (pointer_expression "&p_Var1->_M_header" & (field_expression "p_Var1->_M_header" identifier -> field_identifier)) ))) ;) (expression_statement "psVar2 = &(this->_M_impl).super__Rb_tree_header._M_node_count;" (assignment_expression "psVar2 = &(this->_M_impl).super__Rb_tree_header._M_node_count" identifier = (pointer_expression "&(this->_M_impl).super__Rb_tree_header._M_node_count" & (field_expression "(this->_M_impl).super__Rb_tree_header._M_node_count" (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))) ;) (expression_statement "*psVar2 = *psVar2 + 1;" (assignment_expression "*psVar2 = *psVar2 + 1" (pointer_expression "*psVar2" * identifier) = (binary_expression "*psVar2 + 1" (pointer_expression "*psVar2" * identifier) + number_literal)) ;) (expression_statement "pVar7._8_8_ = 1;" (assignment_expression "pVar7._8_8_ = 1" (field_expression "pVar7._8_8_" identifier . field_identifier) = number_literal) ;) (return_statement "return pVar7;" return identifier ;) })) (expression_statement "pVar8._8_8_ = 0;" (assignment_expression "pVar8._8_8_ = 0" (field_expression "pVar8._8_8_" identifier . field_identifier) = number_literal) ;) (return_statement "return pVar8;" return identifier ;) }))
(translation_unit "undefined1  [16] FUN_0024b080(long param_1,long *param_2)\n\n{\n  long lVar1;\n  bool bVar3;\n  undefined1 auVar4 [16];\n  undefined1 auVar5 [16];\n  long lVar2;\n  \n  auVar4 = FUN_0024aff0();\n  lVar2 = auVar4._8_8_;\n  if (lVar2 != 0) {\n    bVar3 = true;\n    if ((auVar4._0_8_ == 0) && (lVar2 != param_1 + 8)) {\n      bVar3 = *param_2 < *(long *)(lVar2 + 0x20);\n    }\n    auVar5._0_8_ = FUN_002d9490(0x30);\n    lVar1 = param_2[1];\n    *(long *)(auVar5._0_8_ + 0x20) = *param_2;\n    *(long *)(auVar5._0_8_ + 0x28) = lVar1;\n    FUN_002dc160(bVar3,auVar5._0_8_,lVar2,param_1 + 8);\n    *(long *)(param_1 + 0x28) = *(long *)(param_1 + 0x28) + 1;\n    auVar5._8_8_ = 1;\n    return auVar5;\n  }\n  auVar4._8_8_ = 0;\n  return auVar4;\n}\n\n" (expression_statement "undefined1  [16]" (subscript_expression "undefined1  [16]" identifier [ number_literal ]) ;) (macro_type_specifier "FUN_0024b080(long param_1,long *param_2)" identifier ( (ERROR "long param_1,long *" (type_descriptor "long param_1" (sized_type_specifier "long param_1" long type_identifier)) , (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *))) (type_descriptor "param_2" type_identifier) )) ; (compound_statement "{\n  long lVar1;\n  bool bVar3;\n  undefined1 auVar4 [16];\n  undefined1 auVar5 [16];\n  long lVar2;\n  \n  auVar4 = FUN_0024aff0();\n  lVar2 = auVar4._8_8_;\n  if (lVar2 != 0) {\n    bVar3 = true;\n    if ((auVar4._0_8_ == 0) && (lVar2 != param_1 + 8)) {\n      bVar3 = *param_2 < *(long *)(lVar2 + 0x20);\n    }\n    auVar5._0_8_ = FUN_002d9490(0x30);\n    lVar1 = param_2[1];\n    *(long *)(auVar5._0_8_ + 0x20) = *param_2;\n    *(long *)(auVar5._0_8_ + 0x28) = lVar1;\n    FUN_002dc160(bVar3,auVar5._0_8_,lVar2,param_1 + 8);\n    *(long *)(param_1 + 0x28) = *(long *)(param_1 + 0x28) + 1;\n    auVar5._8_8_ = 1;\n    return auVar5;\n  }\n  auVar4._8_8_ = 0;\n  return auVar4;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "undefined1 auVar4 [16];" type_identifier (array_declarator "auVar4 [16]" identifier [ number_literal ]) ;) (declaration "undefined1 auVar5 [16];" type_identifier (array_declarator "auVar5 [16]" identifier [ number_literal ]) ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (expression_statement "auVar4 = FUN_0024aff0();" (assignment_expression "auVar4 = FUN_0024aff0()" identifier = (call_expression "FUN_0024aff0()" identifier (argument_list "()" ( )))) ;) (expression_statement "lVar2 = auVar4._8_8_;" (assignment_expression "lVar2 = auVar4._8_8_" identifier = (field_expression "auVar4._8_8_" identifier . field_identifier)) ;) (if_statement "if (lVar2 != 0) {\n    bVar3 = true;\n    if ((auVar4._0_8_ == 0) && (lVar2 != param_1 + 8)) {\n      bVar3 = *param_2 < *(long *)(lVar2 + 0x20);\n    }\n    auVar5._0_8_ = FUN_002d9490(0x30);\n    lVar1 = param_2[1];\n    *(long *)(auVar5._0_8_ + 0x20) = *param_2;\n    *(long *)(auVar5._0_8_ + 0x28) = lVar1;\n    FUN_002dc160(bVar3,auVar5._0_8_,lVar2,param_1 + 8);\n    *(long *)(param_1 + 0x28) = *(long *)(param_1 + 0x28) + 1;\n    auVar5._8_8_ = 1;\n    return auVar5;\n  }" if (parenthesized_expression "(lVar2 != 0)" ( (binary_expression "lVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    bVar3 = true;\n    if ((auVar4._0_8_ == 0) && (lVar2 != param_1 + 8)) {\n      bVar3 = *param_2 < *(long *)(lVar2 + 0x20);\n    }\n    auVar5._0_8_ = FUN_002d9490(0x30);\n    lVar1 = param_2[1];\n    *(long *)(auVar5._0_8_ + 0x20) = *param_2;\n    *(long *)(auVar5._0_8_ + 0x28) = lVar1;\n    FUN_002dc160(bVar3,auVar5._0_8_,lVar2,param_1 + 8);\n    *(long *)(param_1 + 0x28) = *(long *)(param_1 + 0x28) + 1;\n    auVar5._8_8_ = 1;\n    return auVar5;\n  }" { (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) (if_statement "if ((auVar4._0_8_ == 0) && (lVar2 != param_1 + 8)) {\n      bVar3 = *param_2 < *(long *)(lVar2 + 0x20);\n    }" if (parenthesized_expression "((auVar4._0_8_ == 0) && (lVar2 != param_1 + 8))" ( (binary_expression "(auVar4._0_8_ == 0) && (lVar2 != param_1 + 8)" (parenthesized_expression "(auVar4._0_8_ == 0)" ( (binary_expression "auVar4._0_8_ == 0" (field_expression "auVar4._0_8_" identifier . field_identifier) == number_literal) )) && (parenthesized_expression "(lVar2 != param_1 + 8)" ( (binary_expression "lVar2 != param_1 + 8" identifier != (binary_expression "param_1 + 8" identifier + number_literal)) ))) )) (compound_statement "{\n      bVar3 = *param_2 < *(long *)(lVar2 + 0x20);\n    }" { (expression_statement "bVar3 = *param_2 < *(long *)(lVar2 + 0x20);" (assignment_expression "bVar3 = *param_2 < *(long *)(lVar2 + 0x20)" identifier = (binary_expression "*param_2 < *(long *)(lVar2 + 0x20)" (pointer_expression "*param_2" * identifier) < (pointer_expression "*(long *)(lVar2 + 0x20)" * (cast_expression "(long *)(lVar2 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x20)" ( (binary_expression "lVar2 + 0x20" identifier + number_literal) )))))) ;) })) (expression_statement "auVar5._0_8_ = FUN_002d9490(0x30);" (assignment_expression "auVar5._0_8_ = FUN_002d9490(0x30)" (field_expression "auVar5._0_8_" identifier . field_identifier) = (call_expression "FUN_002d9490(0x30)" identifier (argument_list "(0x30)" ( number_literal )))) ;) (expression_statement "lVar1 = param_2[1];" (assignment_expression "lVar1 = param_2[1]" identifier = (subscript_expression "param_2[1]" identifier [ number_literal ])) ;) (expression_statement "*(long *)(auVar5._0_8_ + 0x20) = *param_2;" (assignment_expression "*(long *)(auVar5._0_8_ + 0x20) = *param_2" (pointer_expression "*(long *)(auVar5._0_8_ + 0x20)" * (cast_expression "(long *)(auVar5._0_8_ + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auVar5._0_8_ + 0x20)" ( (binary_expression "auVar5._0_8_ + 0x20" (field_expression "auVar5._0_8_" identifier . field_identifier) + number_literal) )))) = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "*(long *)(auVar5._0_8_ + 0x28) = lVar1;" (assignment_expression "*(long *)(auVar5._0_8_ + 0x28) = lVar1" (pointer_expression "*(long *)(auVar5._0_8_ + 0x28)" * (cast_expression "(long *)(auVar5._0_8_ + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auVar5._0_8_ + 0x28)" ( (binary_expression "auVar5._0_8_ + 0x28" (field_expression "auVar5._0_8_" identifier . field_identifier) + number_literal) )))) = identifier) ;) (expression_statement "FUN_002dc160(bVar3,auVar5._0_8_,lVar2,param_1 + 8);" (call_expression "FUN_002dc160(bVar3,auVar5._0_8_,lVar2,param_1 + 8)" identifier (argument_list "(bVar3,auVar5._0_8_,lVar2,param_1 + 8)" ( identifier , (field_expression "auVar5._0_8_" identifier . field_identifier) , identifier , (binary_expression "param_1 + 8" identifier + number_literal) ))) ;) (expression_statement "*(long *)(param_1 + 0x28) = *(long *)(param_1 + 0x28) + 1;" (assignment_expression "*(long *)(param_1 + 0x28) = *(long *)(param_1 + 0x28) + 1" (pointer_expression "*(long *)(param_1 + 0x28)" * (cast_expression "(long *)(param_1 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = (binary_expression "*(long *)(param_1 + 0x28) + 1" (pointer_expression "*(long *)(param_1 + 0x28)" * (cast_expression "(long *)(param_1 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "auVar5._8_8_ = 1;" (assignment_expression "auVar5._8_8_ = 1" (field_expression "auVar5._8_8_" identifier . field_identifier) = number_literal) ;) (return_statement "return auVar5;" return identifier ;) })) (expression_statement "auVar4._8_8_ = 0;" (assignment_expression "auVar4._8_8_ = 0" (field_expression "auVar4._8_8_" identifier . field_identifier) = number_literal) ;) (return_statement "return auVar4;" return identifier ;) }))
(translation_unit (expression_statement (subscript_expression IDENT [ LIT ]) ;) (macro_type_specifier IDENT ( (ERROR (type_descriptor (sized_type_specifier long TYPE)) , (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *))) (type_descriptor TYPE) )) ; (compound_statement { (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (field_expression IDENT . field_identifier)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) == LIT) )) && (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) })) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) + LIT) )))) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) + LIT) )))) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (field_expression IDENT . field_identifier) , IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) (return_statement return IDENT ;) }))
(expression_statement "undefined1  [16]" (subscript_expression "undefined1  [16]" (identifier "undefined1") ([ "[") (number_literal "16") (] "]")) (; "")) (macro_type_specifier "FUN_0024b080(long param_1,long *param_2)" (identifier "FUN_0024b080") (( "(") (ERROR "long param_1,long *" (type_descriptor "long param_1" (sized_type_specifier "long param_1" (long "long") (type_identifier "param_1"))) (, ",") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*")))) (type_descriptor "param_2" (type_identifier "param_2")) () ")")) (; "") (compound_statement "{\n  long lVar1;\n  bool bVar3;\n  undefined1 auVar4 [16];\n  undefined1 auVar5 [16];\n  long lVar2;\n  \n  auVar4 = FUN_0024aff0();\n  lVar2 = auVar4._8_8_;\n  if (lVar2 != 0) {\n    bVar3 = true;\n    if ((auVar4._0_8_ == 0) && (lVar2 != param_1 + 8)) {\n      bVar3 = *param_2 < *(long *)(lVar2 + 0x20);\n    }\n    auVar5._0_8_ = FUN_002d9490(0x30);\n    lVar1 = param_2[1];\n    *(long *)(auVar5._0_8_ + 0x20) = *param_2;\n    *(long *)(auVar5._0_8_ + 0x28) = lVar1;\n    FUN_002dc160(bVar3,auVar5._0_8_,lVar2,param_1 + 8);\n    *(long *)(param_1 + 0x28) = *(long *)(param_1 + 0x28) + 1;\n    auVar5._8_8_ = 1;\n    return auVar5;\n  }\n  auVar4._8_8_ = 0;\n  return auVar4;\n}" ({ "{") (declaration "long lVar1;" (sized_type_specifier "long" (long "long")) (identifier "lVar1") (; ";")) (declaration "bool bVar3;" (primitive_type "bool") (identifier "bVar3") (; ";")) (declaration "undefined1 auVar4 [16];" (type_identifier "undefined1") (array_declarator "auVar4 [16]" (identifier "auVar4") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "undefined1 auVar5 [16];" (type_identifier "undefined1") (array_declarator "auVar5 [16]" (identifier "auVar5") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "long lVar2;" (sized_type_specifier "long" (long "long")) (identifier "lVar2") (; ";")) (expression_statement "auVar4 = FUN_0024aff0();" (assignment_expression "auVar4 = FUN_0024aff0()" (identifier "auVar4") (= "=") (call_expression "FUN_0024aff0()" (identifier "FUN_0024aff0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "lVar2 = auVar4._8_8_;" (assignment_expression "lVar2 = auVar4._8_8_" (identifier "lVar2") (= "=") (field_expression "auVar4._8_8_" (identifier "auVar4") (. ".") (field_identifier "_8_8_"))) (; ";")) (if_statement "if (lVar2 != 0) {\n    bVar3 = true;\n    if ((auVar4._0_8_ == 0) && (lVar2 != param_1 + 8)) {\n      bVar3 = *param_2 < *(long *)(lVar2 + 0x20);\n    }\n    auVar5._0_8_ = FUN_002d9490(0x30);\n    lVar1 = param_2[1];\n    *(long *)(auVar5._0_8_ + 0x20) = *param_2;\n    *(long *)(auVar5._0_8_ + 0x28) = lVar1;\n    FUN_002dc160(bVar3,auVar5._0_8_,lVar2,param_1 + 8);\n    *(long *)(param_1 + 0x28) = *(long *)(param_1 + 0x28) + 1;\n    auVar5._8_8_ = 1;\n    return auVar5;\n  }" (if "if") (parenthesized_expression "(lVar2 != 0)" (( "(") (binary_expression "lVar2 != 0" (identifier "lVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    bVar3 = true;\n    if ((auVar4._0_8_ == 0) && (lVar2 != param_1 + 8)) {\n      bVar3 = *param_2 < *(long *)(lVar2 + 0x20);\n    }\n    auVar5._0_8_ = FUN_002d9490(0x30);\n    lVar1 = param_2[1];\n    *(long *)(auVar5._0_8_ + 0x20) = *param_2;\n    *(long *)(auVar5._0_8_ + 0x28) = lVar1;\n    FUN_002dc160(bVar3,auVar5._0_8_,lVar2,param_1 + 8);\n    *(long *)(param_1 + 0x28) = *(long *)(param_1 + 0x28) + 1;\n    auVar5._8_8_ = 1;\n    return auVar5;\n  }" ({ "{") (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" (identifier "bVar3") (= "=") (true "true")) (; ";")) (if_statement "if ((auVar4._0_8_ == 0) && (lVar2 != param_1 + 8)) {\n      bVar3 = *param_2 < *(long *)(lVar2 + 0x20);\n    }" (if "if") (parenthesized_expression "((auVar4._0_8_ == 0) && (lVar2 != param_1 + 8))" (( "(") (binary_expression "(auVar4._0_8_ == 0) && (lVar2 != param_1 + 8)" (parenthesized_expression "(auVar4._0_8_ == 0)" (( "(") (binary_expression "auVar4._0_8_ == 0" (field_expression "auVar4._0_8_" (identifier "auVar4") (. ".") (field_identifier "_0_8_")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(lVar2 != param_1 + 8)" (( "(") (binary_expression "lVar2 != param_1 + 8" (identifier "lVar2") (!= "!=") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8"))) () ")"))) () ")")) (compound_statement "{\n      bVar3 = *param_2 < *(long *)(lVar2 + 0x20);\n    }" ({ "{") (expression_statement "bVar3 = *param_2 < *(long *)(lVar2 + 0x20);" (assignment_expression "bVar3 = *param_2 < *(long *)(lVar2 + 0x20)" (identifier "bVar3") (= "=") (binary_expression "*param_2 < *(long *)(lVar2 + 0x20)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (< "<") (pointer_expression "*(long *)(lVar2 + 0x20)" (* "*") (cast_expression "(long *)(lVar2 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar2 + 0x20)" (( "(") (binary_expression "lVar2 + 0x20" (identifier "lVar2") (+ "+") (number_literal "0x20")) () ")")))))) (; ";")) (} "}"))) (expression_statement "auVar5._0_8_ = FUN_002d9490(0x30);" (assignment_expression "auVar5._0_8_ = FUN_002d9490(0x30)" (field_expression "auVar5._0_8_" (identifier "auVar5") (. ".") (field_identifier "_0_8_")) (= "=") (call_expression "FUN_002d9490(0x30)" (identifier "FUN_002d9490") (argument_list "(0x30)" (( "(") (number_literal "0x30") () ")")))) (; ";")) (expression_statement "lVar1 = param_2[1];" (assignment_expression "lVar1 = param_2[1]" (identifier "lVar1") (= "=") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*(long *)(auVar5._0_8_ + 0x20) = *param_2;" (assignment_expression "*(long *)(auVar5._0_8_ + 0x20) = *param_2" (pointer_expression "*(long *)(auVar5._0_8_ + 0x20)" (* "*") (cast_expression "(long *)(auVar5._0_8_ + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(auVar5._0_8_ + 0x20)" (( "(") (binary_expression "auVar5._0_8_ + 0x20" (field_expression "auVar5._0_8_" (identifier "auVar5") (. ".") (field_identifier "_0_8_")) (+ "+") (number_literal "0x20")) () ")")))) (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (expression_statement "*(long *)(auVar5._0_8_ + 0x28) = lVar1;" (assignment_expression "*(long *)(auVar5._0_8_ + 0x28) = lVar1" (pointer_expression "*(long *)(auVar5._0_8_ + 0x28)" (* "*") (cast_expression "(long *)(auVar5._0_8_ + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(auVar5._0_8_ + 0x28)" (( "(") (binary_expression "auVar5._0_8_ + 0x28" (field_expression "auVar5._0_8_" (identifier "auVar5") (. ".") (field_identifier "_0_8_")) (+ "+") (number_literal "0x28")) () ")")))) (= "=") (identifier "lVar1")) (; ";")) (expression_statement "FUN_002dc160(bVar3,auVar5._0_8_,lVar2,param_1 + 8);" (call_expression "FUN_002dc160(bVar3,auVar5._0_8_,lVar2,param_1 + 8)" (identifier "FUN_002dc160") (argument_list "(bVar3,auVar5._0_8_,lVar2,param_1 + 8)" (( "(") (identifier "bVar3") (, ",") (field_expression "auVar5._0_8_" (identifier "auVar5") (. ".") (field_identifier "_0_8_")) (, ",") (identifier "lVar2") (, ",") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))) (; ";")) (expression_statement "*(long *)(param_1 + 0x28) = *(long *)(param_1 + 0x28) + 1;" (assignment_expression "*(long *)(param_1 + 0x28) = *(long *)(param_1 + 0x28) + 1" (pointer_expression "*(long *)(param_1 + 0x28)" (* "*") (cast_expression "(long *)(param_1 + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (binary_expression "*(long *)(param_1 + 0x28) + 1" (pointer_expression "*(long *)(param_1 + 0x28)" (* "*") (cast_expression "(long *)(param_1 + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "auVar5._8_8_ = 1;" (assignment_expression "auVar5._8_8_ = 1" (field_expression "auVar5._8_8_" (identifier "auVar5") (. ".") (field_identifier "_8_8_")) (= "=") (number_literal "1")) (; ";")) (return_statement "return auVar5;" (return "return") (identifier "auVar5") (; ";")) (} "}"))) (expression_statement "auVar4._8_8_ = 0;" (assignment_expression "auVar4._8_8_ = 0" (field_expression "auVar4._8_8_" (identifier "auVar4") (. ".") (field_identifier "_8_8_")) (= "=") (number_literal "0")) (; ";")) (return_statement "return auVar4;" (return "return") (identifier "auVar4") (; ";")) (} "}"))

/* DWARF original name: _M_insert_unique<const std::pair<long int const, long unsigned int>&>
   DWARF original prototype:
   pair<std::_Rb_tree_iterator<std::pair<long_int_const,_long_unsigned_int>_>,_bool>
   _M_insert_unique<const_std::pair<long_int_const,_long_unsigned_int>&>(_Rb_tree<long_int,_std::pair<long_int_const,_long_unsigned_int>,_std::_Select1st<std::pair<long_int_const,_long_unsigned_int>_>,_std::less<long_int>,_std::allocator<std::pair<long_int_const,_long_unsigned_int>_>_>
   * this, pair<long_int_const,_long_unsigned_int> * __v) */

var_1<std::_Rb_tree_iterator<std::var_1<var_2,var_3>var_4>,var_6> __thiscall
std::
_Rb_tree<long_int,_std::var_1<var_2,var_3>,_std::_Select1st<std::var_1<var_2,var_3>var_4>,_std::less<long_int>,_std::allocator<std::var_1<var_2,var_3>var_4>var_4>
::_M_insert_unique<const_std::var_1<var_2,var_3>&>
          (_Rb_tree<long_int,_std::var_1<var_2,var_3>,_std::_Select1st<std::var_1<var_2,var_3>var_4>,_std::less<long_int>,_std::allocator<std::var_1<var_2,var_3>var_4>var_4>
           *this,var_1<var_2,var_3> *__v)

{
  type_1 *var_11;
  size_t *psVar2;
  type_2 p_Var3;
  type_3 *var_10;
  bool bVar5;
  var_1<std::type_3*,_std::type_3*> var_5;
  var_1<std::_Rb_tree_iterator<std::var_1<var_2,var_3>var_4>,var_6> var_7;
  var_1<std::_Rb_tree_iterator<std::var_1<var_2,var_3>var_4>,var_6> var_8;
  
  var_5 = var_9(this,&__v->first);
  var_10 = var_5.second;
  var_8.first._M_node = var_5.first;
  if (var_10 != (type_3 *)0x0) {
    var_11 = &(this->_M_impl).super__Rb_tree_header;
    bVar5 = true;
    if ((var_8.first._M_node == (type_3 *)0x0) && ((type_1 *)var_10 != var_11))
    {
      bVar5 = __v->first < *(long *)(var_10 + 1);
    }
    var_7.first._M_node = (type_2)var_12(0x30);
    p_Var3 = (type_2)__v->second;
    *(long *)(var_7.first._M_node + 1) = __v->first;
    var_7.first._M_node[1]._M_parent = p_Var3;
    var_13(bVar5,var_7.first._M_node,var_10,&var_11->_M_header);
    psVar2 = &(this->_M_impl).super__Rb_tree_header._M_node_count;
    *psVar2 = *psVar2 + 1;
    var_7._8_8_ = 1;
    return var_7;
  }
  var_8._8_8_ = 0;
  return var_8;
}


(translation_unit (expression_statement (subscript_expression argument: (identifier) index: (number_literal)) (MISSING ";")) (macro_type_specifier name: (identifier) (ERROR (type_descriptor type: (sized_type_specifier type: (type_identifier))) (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator))) type: (type_descriptor type: (type_identifier))) (MISSING ";") (compound_statement (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (sized_type_specifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (field_expression argument: (identifier) field: (field_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (true))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (call_expression function: (identifier) arguments: (argument_list (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (field_expression argument: (identifier) field: (field_identifier)) (identifier) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))) (return_statement (identifier)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))) (return_statement (identifier))))

undefined1  [16] MASKED(long param_1,long *param_2)

{
  long lVar1;
  bool bVar3;
  undefined1 auVar4 [16];
  undefined1 auVar5 [16];
  long lVar2;
  
  auVar4 = FUN_0024aff0();
  lVar2 = auVar4._8_8_;
  if (lVar2 != 0) {
    bVar3 = true;
    if ((auVar4._0_8_ == 0) && (lVar2 != param_1 + 8)) {
      bVar3 = *param_2 < *(long *)(lVar2 + 0x20);
    }
    auVar5._0_8_ = FUN_002d9490(0x30);
    lVar1 = param_2[1];
    *(long *)(auVar5._0_8_ + 0x20) = *param_2;
    *(long *)(auVar5._0_8_ + 0x28) = lVar1;
    FUN_002dc160(bVar3,auVar5._0_8_,lVar2,param_1 + 8);
    *(long *)(param_1 + 0x28) = *(long *)(param_1 + 0x28) + 1;
    auVar5._8_8_ = 1;
    return auVar5;
  }
  auVar4._8_8_ = 0;
  return auVar4;
}

