
/* DWARF original name: _M_emplace_unique<std::pair<std::pair<long long int, unsigned int>,
   gold::File_read::View*> >
   DWARF original prototype:
   pair<std::_Rb_tree_iterator<std::pair<const_std::pair<long_long_int,_unsigned_int>,_gold::File_read::View*>_>,_bool>
   _M_emplace_unique<std::pair<std::pair<long_long_int,_unsigned_int>,_gold::File_read::View*>_>(_Rb_tree<std::pair<long_long_int,_unsigned_int>,_std::pair<const_std::pair<long_long_int,_unsigned_int>,_gold::File_read::View*>,_std::_Select1st<std::pair<const_std::pair<long_long_int,_unsigned_int>,_gold::File_read::View*>_>,_std::less<std::pair<long_long_int,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<long_long_int,_unsigned_int>,_gold::File_read::View*>_>_>
   * this, pair<std::pair<long_long_int,_unsigned_int>,_gold::File_read::View*> * __args#0) */

pair<std::_Rb_tree_iterator<std::pair<const_std::pair<long_long_int,_unsigned_int>,_gold::File_read::View*>_>,_bool>
 __thiscall
std::
_Rb_tree<std::pair<long_long_int,_unsigned_int>,_std::pair<const_std::pair<long_long_int,_unsigned_int>,_gold::File_read::View*>,_std::_Select1st<std::pair<const_std::pair<long_long_int,_unsigned_int>,_gold::File_read::View*>_>,_std::less<std::pair<long_long_int,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<long_long_int,_unsigned_int>,_gold::File_read::View*>_>_>
::_M_emplace_unique<std::pair<std::pair<long_long_int,_unsigned_int>,_gold::File_read::View*>_>
          (_Rb_tree<std::pair<long_long_int,_unsigned_int>,_std::pair<const_std::pair<long_long_int,_unsigned_int>,_gold::File_read::View*>,_std::_Select1st<std::pair<const_std::pair<long_long_int,_unsigned_int>,_gold::File_read::View*>_>,_std::less<std::pair<long_long_int,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<long_long_int,_unsigned_int>,_gold::File_read::View*>_>_>
           *this,pair<std::pair<long_long_int,_unsigned_int>,_gold::File_read::View*> *__args_0)

{
  undefined1 *puVar1;
  int iVar2;
  uint uVar3;
  int iVar4;
  undefined4 extraout_v1;
  int iVar5;
  undefined1 *puVar6;
  bool bVar7;
  int iVar8;
  int *in_a2;
  int iVar9;
  uint uVar10;
  undefined1 *puVar11;
  undefined1 *puVar12;
  pair<std::_Rb_tree_iterator<std::pair<const_std::pair<long_long_int,_unsigned_int>,_gold::File_read::View*>_>,_bool>
  pVar13;
  pair<std::_Rb_tree_iterator<std::pair<const_std::pair<long_long_int,_unsigned_int>,_gold::File_read::View*>_>,_bool>
  pVar14;
  
  puVar12 = (undefined1 *)((int)&(__args_0->first).first + 4);
  iVar2 = (*(code *)PTR_operator_new_004c13a8)(0x28);
  iVar5 = *in_a2;
  uVar3 = in_a2[1];
  iVar9 = in_a2[2];
  iVar8 = in_a2[3];
  iVar4 = in_a2[4];
  puVar11 = (undefined1 *)(__args_0->first).second;
  *(int *)(iVar2 + 0x10) = iVar5;
  *(uint *)(iVar2 + 0x14) = uVar3;
  *(int *)(iVar2 + 0x18) = iVar9;
  *(int *)(iVar2 + 0x1c) = iVar8;
  *(int *)(iVar2 + 0x20) = iVar4;
  puVar6 = puVar12;
  if (puVar11 == (undefined1 *)0x0) {
LAB_001784c0:
    if (*(undefined1 **)&(__args_0->first).field_0xc != puVar6) {
      puVar11 = (undefined1 *)(*(code *)PTR__Rb_tree_decrement_004c1a5c)(puVar6);
      iVar5 = *(int *)(iVar2 + 0x10);
      uVar3 = *(uint *)(iVar2 + 0x14);
      iVar4 = *(int *)(puVar11 + 0x10);
      uVar10 = *(uint *)(puVar11 + 0x14);
LAB_001783f0:
      if ((((iVar5 <= iVar4) && ((iVar5 != iVar4 || (uVar3 <= uVar10)))) &&
          ((iVar5 != iVar4 ||
           ((uVar3 != uVar10 || (*(uint *)(iVar2 + 0x18) <= *(uint *)(puVar11 + 0x18))))))) ||
         (puVar11 = (undefined1 *)0x0, puVar6 == (undefined1 *)0x0)) {
        (*(code *)PTR_operator_delete_004c12fc)(iVar2);
        *(undefined1 **)&this->_M_impl = puVar11;
        *(undefined1 *)&(this->_M_impl).super__Rb_tree_header._M_header._M_color = _S_red;
        pVar13.first._M_node = (_Base_ptr)this;
        pVar13._4_4_ = extraout_v1;
        return pVar13;
      }
    }
    bVar7 = true;
    if (puVar12 != puVar6) {
      iVar5 = *(int *)(iVar2 + 0x10);
      iVar4 = *(int *)(puVar6 + 0x10);
      if ((iVar5 < iVar4) ||
         ((iVar4 == iVar5 && (*(uint *)(iVar2 + 0x14) < *(uint *)(puVar6 + 0x14))))) {
        bVar7 = true;
      }
      else {
        bVar7 = false;
        if ((iVar5 == iVar4) && (*(uint *)(iVar2 + 0x14) == *(uint *)(puVar6 + 0x14))) {
          bVar7 = *(uint *)(iVar2 + 0x18) < *(uint *)(puVar6 + 0x18);
        }
      }
    }
    (*(code *)PTR__Rb_tree_insert_and_rebalance_004c1a58)(bVar7,iVar2,puVar6,puVar12);
    iVar4 = *(int *)&__args_0->field_0x14;
    *(int *)&this->_M_impl = iVar2;
    *(int *)&__args_0->field_0x14 = iVar4 + 1;
    *(undefined1 *)&(this->_M_impl).super__Rb_tree_header._M_header._M_color = _S_black;
    pVar14.first._M_node = (_Base_ptr)this;
    pVar14._4_4_ = 1;
    return pVar14;
  }
  iVar4 = *(int *)(puVar11 + 0x10);
  uVar10 = *(uint *)(puVar11 + 0x14);
  if (iVar5 < iVar4) goto LAB_001783dc;
  do {
    if ((iVar4 == iVar5) && (uVar3 < uVar10)) goto LAB_001783dc;
    if ((iVar5 == iVar4) &&
       ((uVar3 == uVar10 && (*(uint *)(iVar2 + 0x18) < *(uint *)(puVar11 + 0x18)))))
    goto LAB_001783dc;
    bVar7 = false;
    puVar1 = *(undefined1 **)(puVar11 + 0xc);
    puVar6 = puVar11;
    while( true ) {
      puVar11 = puVar1;
      if (puVar11 == (undefined1 *)0x0) {
        puVar11 = puVar6;
        if (bVar7) goto LAB_001784c0;
        goto LAB_001783f0;
      }
      iVar4 = *(int *)(puVar11 + 0x10);
      uVar10 = *(uint *)(puVar11 + 0x14);
      if (iVar4 <= iVar5) break;
LAB_001783dc:
      bVar7 = true;
      puVar1 = *(undefined1 **)(puVar11 + 8);
      puVar6 = puVar11;
    }
  } while( true );
}



/* std::pair<std::_Rb_tree_iterator<std::pair<std::pair<long long, unsigned int> const,
   gold::File_read::View*> >, bool> std::_Rb_tree<std::pair<long long, unsigned int>,
   std::pair<std::pair<long long, unsigned int> const, gold::File_read::View*>,
   std::_Select1st<std::pair<std::pair<long long, unsigned int> const, gold::File_read::View*> >,
   std::less<std::pair<long long, unsigned int> >, std::allocator<std::pair<std::pair<long long,
   unsigned int> const, gold::File_read::View*> > >::_M_emplace_unique<std::pair<std::pair<long
   long, unsigned int>, gold::File_read::View*> >(std::pair<std::pair<long long, unsigned int>,
   gold::File_read::View*>&&) */

pair * std::
       _Rb_tree<std::pair<long_long,unsigned_int>,std::pair<std::pair<long_long,unsigned_int>const,gold::File_read::View*>,std::_Select1st<std::pair<std::pair<long_long,unsigned_int>const,gold::File_read::View*>>,std::less<std::pair<long_long,unsigned_int>>,std::allocator<std::pair<std::pair<long_long,unsigned_int>const,gold::File_read::View*>>>
       ::_M_emplace_unique<std::pair<std::pair<long_long,unsigned_int>,gold::File_read::View*>>
                 (pair *param_1)

{
  int iVar1;
  uint uVar2;
  int iVar3;
  int iVar4;
  bool bVar5;
  int in_a1;
  int iVar6;
  int *in_a2;
  int iVar7;
  uint uVar8;
  int iVar9;
  int iVar10;
  
  iVar10 = in_a1 + 4;
  iVar1 = (*(code *)PTR_operator_new_004c13a8)(0x28);
  iVar4 = *in_a2;
  uVar2 = in_a2[1];
  iVar7 = in_a2[2];
  iVar6 = in_a2[3];
  iVar3 = in_a2[4];
  iVar9 = *(int *)(in_a1 + 8);
  *(int *)(iVar1 + 0x10) = iVar4;
  *(uint *)(iVar1 + 0x14) = uVar2;
  *(int *)(iVar1 + 0x18) = iVar7;
  *(int *)(iVar1 + 0x1c) = iVar6;
  *(int *)(iVar1 + 0x20) = iVar3;
  iVar3 = iVar10;
  if (iVar9 == 0) {
LAB_001784c0:
    if (*(int *)(in_a1 + 0xc) != iVar3) {
      iVar9 = (*(code *)PTR__Rb_tree_decrement_004c1a5c)(iVar3);
      iVar4 = *(int *)(iVar1 + 0x10);
      uVar2 = *(uint *)(iVar1 + 0x14);
      iVar6 = *(int *)(iVar9 + 0x10);
      uVar8 = *(uint *)(iVar9 + 0x14);
LAB_001783f0:
      if ((((iVar4 <= iVar6) && ((iVar4 != iVar6 || (uVar2 <= uVar8)))) &&
          ((iVar4 != iVar6 ||
           ((uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18))))))) ||
         (iVar9 = 0, iVar3 == 0)) {
        (*(code *)PTR_operator_delete_004c12fc)(iVar1);
        *(int *)param_1 = iVar9;
        param_1[4] = (pair)0x0;
        return param_1;
      }
    }
    bVar5 = true;
    if (iVar10 != iVar3) {
      iVar4 = *(int *)(iVar1 + 0x10);
      iVar9 = *(int *)(iVar3 + 0x10);
      if ((iVar4 < iVar9) ||
         ((iVar9 == iVar4 && (*(uint *)(iVar1 + 0x14) < *(uint *)(iVar3 + 0x14))))) {
        bVar5 = true;
      }
      else {
        bVar5 = false;
        if ((iVar4 == iVar9) && (*(uint *)(iVar1 + 0x14) == *(uint *)(iVar3 + 0x14))) {
          bVar5 = *(uint *)(iVar1 + 0x18) < *(uint *)(iVar3 + 0x18);
        }
      }
    }
    (*(code *)PTR__Rb_tree_insert_and_rebalance_004c1a58)(bVar5,iVar1,iVar3,iVar10);
    iVar9 = *(int *)(in_a1 + 0x14);
    *(int *)param_1 = iVar1;
    *(int *)(in_a1 + 0x14) = iVar9 + 1;
    param_1[4] = (pair)0x1;
    return param_1;
  }
  iVar6 = *(int *)(iVar9 + 0x10);
  uVar8 = *(uint *)(iVar9 + 0x14);
  if (iVar4 < iVar6) goto LAB_001783dc;
  do {
    if ((iVar6 == iVar4) && (uVar2 < uVar8)) goto LAB_001783dc;
    if ((iVar4 == iVar6) &&
       ((uVar2 == uVar8 && (*(uint *)(iVar1 + 0x18) < *(uint *)(iVar9 + 0x18))))) goto LAB_001783dc;
    bVar5 = false;
    iVar7 = *(int *)(iVar9 + 0xc);
    iVar3 = iVar9;
    while( true ) {
      iVar9 = iVar7;
      if (iVar9 == 0) {
        iVar9 = iVar3;
        if (bVar5) goto LAB_001784c0;
        goto LAB_001783f0;
      }
      iVar6 = *(int *)(iVar9 + 0x10);
      uVar8 = *(uint *)(iVar9 + 0x14);
      if (iVar6 <= iVar4) break;
LAB_001783dc:
      bVar5 = true;
      iVar7 = *(int *)(iVar9 + 8);
      iVar3 = iVar9;
    }
  } while( true );
}


lui gp,0x35
addiu gp,gp,0xf58
addu gp,gp,t9
addiu sp,sp,-0x30
lw t9,-0x7e98(gp)
sw s3,0x24(sp)
or s3,a0,zero
li a0,0x28
sw gp,0x10(sp)
sw s4,0x28(sp)
addiu s4,a1,0x4
sw s2,0x20(sp)
or s2,a1,zero
sw s1,0x1c(sp)
sw s0,0x18(sp)
sw ra,0x2c(sp)
jalr t9
_or s0,a2,zero
or s1,v0,zero
lw a0,0x0(s0)
lw v0,0x4(s0)
lw a2,0x8(s0)
lw a1,0xc(s0)
lw v1,0x10(s0)
lw s0,0x8(s2)
lw gp,0x10(sp)
sw a0,0x10(s1)
sw v0,0x14(s1)
sw a2,0x18(s1)
sw a1,0x1c(s1)
beq s0,zero,0x001784bc
_sw v1,0x20(s1)
lw v1,0x10(s0)
or a3,a0,zero
or t2,v0,zero
lw a2,0x14(s0)
slt a1,a0,v1
bne a1,zero,0x001783dc
_li t0,0x1
bne v1,a0,0x00178394
_sltu a1,v0,a2
bne a1,zero,0x001783dc
_nop
bne a0,v1,0x001783b8
_nop
bne v0,a2,0x001783b8
_nop
lw a1,0x18(s1)
lw t1,0x18(s0)
sltu a1,a1,t1
bne a1,zero,0x001783dc
_nop
lw a1,0xc(s0)
beq a1,zero,0x001783e8
_or t0,zero,zero
or s0,a1,zero
li t0,0x1
lw v1,0x10(s0)
slt a1,a0,v1
beq a1,zero,0x00178384
_lw a2,0x14(s0)
lw a1,0x8(s0)
bne a1,zero,0x001783c4
_nop
bne t0,zero,0x001784c0
_or a0,s0,zero
slt v0,v1,a3
bne v0,zero,0x00178468
_nop
bne a3,v1,0x0017840c
_sltu v0,a2,t2
bne v0,zero,0x00178468
_nop
bne a3,v1,0x00178420
_lw t9,-0x7f44(gp)
beq t2,a2,0x00178454
_nop
lw t9,-0x7f44(gp)
jalr t9
_or a0,s1,zero
or v0,s3,zero
lw ra,0x2c(sp)
lw s4,0x28(sp)
lw s2,0x20(sp)
lw s1,0x1c(sp)
sw s0,0x0(s3)
sb zero,0x4(s3)
lw s0,0x18(sp)
lw s3,0x24(sp)
jr ra
_addiu sp,sp,0x30
lw v0,0x18(s0)
lw v1,0x18(s1)
sltu v0,v0,v1
beq v0,zero,0x00178420
_lw t9,-0x7f44(gp)
beq a0,zero,0x0017841c
_or s0,zero,zero
or s0,a0,zero
beq s4,s0,0x00178500
_li a0,0x1
lw v1,0x10(s1)
lw v0,0x10(s0)
lw a2,0x14(s1)
slt a0,v1,v0
bne a0,zero,0x001784fc
_lw a1,0x14(s0)
beq v0,v1,0x001784f4
_sltu a0,a2,a1
bne v1,v0,0x00178500
_or a0,zero,zero
bne a2,a1,0x00178504
_lw t9,-0x77e8(gp)
lw a0,0x18(s1)
lw v0,0x18(s0)
b 0x00178504
_sltu a0,a0,v0
or s0,s4,zero
lw v0,0xc(s2)
beq v0,s0,0x00178474
_lw t9,-0x77e4(gp)
jalr t9
_or a0,s0,zero
or a0,s0,zero
lw gp,0x10(sp)
or s0,v0,zero
lw a3,0x10(s1)
lw t2,0x14(s1)
lw v1,0x10(v0)
b 0x001783f0
_lw a2,0x14(v0)
beq a0,zero,0x0017849c
_nop
li a0,0x1
lw t9,-0x77e8(gp)
or a3,s4,zero
or a2,s0,zero
jalr t9
_or a1,s1,zero
li v1,0x1
lw v0,0x14(s2)
lw ra,0x2c(sp)
lw s4,0x28(sp)
addiu v0,v0,0x1
lw s0,0x18(sp)
sw s1,0x0(s3)
sw v0,0x14(s2)
or v0,s3,zero
sb v1,0x4(s3)
lw s2,0x20(sp)
lw s3,0x24(sp)
lw s1,0x1c(sp)
jr ra
_addiu sp,sp,0x30
(translation_unit "/* std::pair<std::_Rb_tree_iterator<std::pair<std::pair<long long, unsigned int> const,\n   gold::File_read::View*> >, bool> std::_Rb_tree<std::pair<long long, unsigned int>,\n   std::pair<std::pair<long long, unsigned int> const, gold::File_read::View*>,\n   std::_Select1st<std::pair<std::pair<long long, unsigned int> const, gold::File_read::View*> >,\n   std::less<std::pair<long long, unsigned int> >, std::allocator<std::pair<std::pair<long long,\n   unsigned int> const, gold::File_read::View*> > >::_M_emplace_unique<std::pair<std::pair<long\n   long, unsigned int>, gold::File_read::View*> >(std::pair<std::pair<long long, unsigned int>,\n   gold::File_read::View*>&&) */\n\npair * std::\n       _Rb_tree<std::pair<long_long,unsigned_int>,std::pair<std::pair<long_long,unsigned_int>const,gold::File_read::View*>,std::_Select1st<std::pair<std::pair<long_long,unsigned_int>const,gold::File_read::View*>>,std::less<std::pair<long_long,unsigned_int>>,std::allocator<std::pair<std::pair<long_long,unsigned_int>const,gold::File_read::View*>>>\n       ::_M_emplace_unique<std::pair<std::pair<long_long,unsigned_int>,gold::File_read::View*>>\n                 (pair *param_1)\n\n{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  bool bVar5;\n  int in_a1;\n  int iVar6;\n  int *in_a2;\n  int iVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  \n  iVar10 = in_a1 + 4;\n  iVar1 = (*(code *)PTR_operator_new_004c13a8)(0x28);\n  iVar4 = *in_a2;\n  uVar2 = in_a2[1];\n  iVar7 = in_a2[2];\n  iVar6 = in_a2[3];\n  iVar3 = in_a2[4];\n  iVar9 = *(int *)(in_a1 + 8);\n  *(int *)(iVar1 + 0x10) = iVar4;\n  *(uint *)(iVar1 + 0x14) = uVar2;\n  *(int *)(iVar1 + 0x18) = iVar7;\n  *(int *)(iVar1 + 0x1c) = iVar6;\n  *(int *)(iVar1 + 0x20) = iVar3;\n  iVar3 = iVar10;\n  if (iVar9 == 0) {\nLAB_001784c0:\n    if (*(int *)(in_a1 + 0xc) != iVar3) {\n      iVar9 = (*(code *)PTR__Rb_tree_decrement_004c1a5c)(iVar3);\n      iVar4 = *(int *)(iVar1 + 0x10);\n      uVar2 = *(uint *)(iVar1 + 0x14);\n      iVar6 = *(int *)(iVar9 + 0x10);\n      uVar8 = *(uint *)(iVar9 + 0x14);\nLAB_001783f0:\n      if ((((iVar4 <= iVar6) && ((iVar4 != iVar6 || (uVar2 <= uVar8)))) &&\n          ((iVar4 != iVar6 ||\n           ((uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18))))))) ||\n         (iVar9 = 0, iVar3 == 0)) {\n        (*(code *)PTR_operator_delete_004c12fc)(iVar1);\n        *(int *)param_1 = iVar9;\n        param_1[4] = (pair)0x0;\n        return param_1;\n      }\n    }\n    bVar5 = true;\n    if (iVar10 != iVar3) {\n      iVar4 = *(int *)(iVar1 + 0x10);\n      iVar9 = *(int *)(iVar3 + 0x10);\n      if ((iVar4 < iVar9) ||\n         ((iVar9 == iVar4 && (*(uint *)(iVar1 + 0x14) < *(uint *)(iVar3 + 0x14))))) {\n        bVar5 = true;\n      }\n      else {\n        bVar5 = false;\n        if ((iVar4 == iVar9) && (*(uint *)(iVar1 + 0x14) == *(uint *)(iVar3 + 0x14))) {\n          bVar5 = *(uint *)(iVar1 + 0x18) < *(uint *)(iVar3 + 0x18);\n        }\n      }\n    }\n    (*(code *)PTR__Rb_tree_insert_and_rebalance_004c1a58)(bVar5,iVar1,iVar3,iVar10);\n    iVar9 = *(int *)(in_a1 + 0x14);\n    *(int *)param_1 = iVar1;\n    *(int *)(in_a1 + 0x14) = iVar9 + 1;\n    param_1[4] = (pair)0x1;\n    return param_1;\n  }\n  iVar6 = *(int *)(iVar9 + 0x10);\n  uVar8 = *(uint *)(iVar9 + 0x14);\n  if (iVar4 < iVar6) goto LAB_001783dc;\n  do {\n    if ((iVar6 == iVar4) && (uVar2 < uVar8)) goto LAB_001783dc;\n    if ((iVar4 == iVar6) &&\n       ((uVar2 == uVar8 && (*(uint *)(iVar1 + 0x18) < *(uint *)(iVar9 + 0x18))))) goto LAB_001783dc;\n    bVar5 = false;\n    iVar7 = *(int *)(iVar9 + 0xc);\n    iVar3 = iVar9;\n    while( true ) {\n      iVar9 = iVar7;\n      if (iVar9 == 0) {\n        iVar9 = iVar3;\n        if (bVar5) goto LAB_001784c0;\n        goto LAB_001783f0;\n      }\n      iVar6 = *(int *)(iVar9 + 0x10);\n      uVar8 = *(uint *)(iVar9 + 0x14);\n      if (iVar6 <= iVar4) break;\nLAB_001783dc:\n      bVar5 = true;\n      iVar7 = *(int *)(iVar9 + 8);\n      iVar3 = iVar9;\n    }\n  } while( true );\n}\n\n" comment (ERROR "pair * std::\n       _Rb_tree<std::pair<long_long,unsigned_int>,std::pair<std::pair<long_long,unsigned_int>const," (binary_expression "pair * std" identifier * identifier) : : (binary_expression "_Rb_tree<std" identifier < identifier) : : (binary_expression "pair<long_long" identifier < identifier) , (binary_expression "unsigned_int>,std" identifier > (ERROR "," ,) identifier) : : (binary_expression "pair<std" identifier < identifier) : : (binary_expression "pair<long_long" identifier < identifier) , (binary_expression "unsigned_int>const" identifier > identifier) ,) (labeled_statement "gold::File_read::View*>,std::_Select1st<std::pair<std::pair<long_long,unsigned_int>const,gold::File_read::View*>>,std::less<std::pair<long_long,unsigned_int>>,std::allocator<std::pair<std::pair<long_long,unsigned_int>const,gold::File_read::View*>>>\n       ::_M_emplace_unique<std::pair<std::pair<long_long,unsigned_int>,gold::File_read::View*>>\n                 (pair *param_1)" statement_identifier : (ERROR ":" :) (labeled_statement "File_read::View*>,std::_Select1st<std::pair<std::pair<long_long,unsigned_int>const,gold::File_read::View*>>,std::less<std::pair<long_long,unsigned_int>>,std::allocator<std::pair<std::pair<long_long,unsigned_int>const,gold::File_read::View*>>>\n       ::_M_emplace_unique<std::pair<std::pair<long_long,unsigned_int>,gold::File_read::View*>>\n                 (pair *param_1)" statement_identifier (ERROR "::View*>,std::_Select1st<std::pair<std::pair<long_long,unsigned_int>const,gold:" : : (comma_expression "View*>,std" identifier (ERROR "*>" * >) , identifier) : : (binary_expression "_Select1st<std" identifier < identifier) : : (binary_expression "pair<std" identifier < identifier) : : (comma_expression "pair<long_long,unsigned_int>const,gold" (binary_expression "pair<long_long" identifier < identifier) , (comma_expression "unsigned_int>const,gold" (binary_expression "unsigned_int>const" identifier > identifier) , identifier)) :) : (labeled_statement "File_read::View*>>,std::less<std::pair<long_long,unsigned_int>>,std::allocator<std::pair<std::pair<long_long,unsigned_int>const,gold::File_read::View*>>>\n       ::_M_emplace_unique<std::pair<std::pair<long_long,unsigned_int>,gold::File_read::View*>>\n                 (pair *param_1)" statement_identifier (ERROR "::View*>>,std::less<std::pair<long_long,unsigned_int>>,std::allocator<std::pair<std::pair<long_long,unsigned_int>const,gold:" : : (comma_expression "View*>>,std" identifier (ERROR "*>>" * >>) , identifier) : : (binary_expression "less<std" identifier < identifier) : : (comma_expression "pair<long_long,unsigned_int>>,std" (binary_expression "pair<long_long" identifier < identifier) , (binary_expression "unsigned_int>>,std" identifier >> (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<std" identifier < identifier) : : (comma_expression "pair<long_long,unsigned_int>const,gold" (binary_expression "pair<long_long" identifier < identifier) , (comma_expression "unsigned_int>const,gold" (binary_expression "unsigned_int>const" identifier > identifier) , identifier)) :) : (labeled_statement "File_read::View*>>>\n       ::_M_emplace_unique<std::pair<std::pair<long_long,unsigned_int>,gold::File_read::View*>>\n                 (pair *param_1)" statement_identifier (ERROR "::View*>>>\n       ::_M_emplace_unique<std::pair<std::pair<long_long,unsigned_int>,gold:" : : identifier * >> > : : (binary_expression "_M_emplace_unique<std" identifier < identifier) : : (binary_expression "pair<std" identifier < identifier) : : (comma_expression "pair<long_long,unsigned_int>,gold" (binary_expression "pair<long_long" identifier < identifier) , (binary_expression "unsigned_int>,gold" identifier > (ERROR "," ,) identifier)) :) : (expression_statement "File_read::View*>>\n                 (pair *param_1)" (binary_expression "File_read::View*>>\n                 (pair *param_1)" identifier (ERROR "::View*" : : identifier *) >> (parenthesized_expression "(pair *param_1)" ( (binary_expression "pair *param_1" identifier * identifier) ))) ;))))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  bool bVar5;\n  int in_a1;\n  int iVar6;\n  int *in_a2;\n  int iVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  \n  iVar10 = in_a1 + 4;\n  iVar1 = (*(code *)PTR_operator_new_004c13a8)(0x28);\n  iVar4 = *in_a2;\n  uVar2 = in_a2[1];\n  iVar7 = in_a2[2];\n  iVar6 = in_a2[3];\n  iVar3 = in_a2[4];\n  iVar9 = *(int *)(in_a1 + 8);\n  *(int *)(iVar1 + 0x10) = iVar4;\n  *(uint *)(iVar1 + 0x14) = uVar2;\n  *(int *)(iVar1 + 0x18) = iVar7;\n  *(int *)(iVar1 + 0x1c) = iVar6;\n  *(int *)(iVar1 + 0x20) = iVar3;\n  iVar3 = iVar10;\n  if (iVar9 == 0) {\nLAB_001784c0:\n    if (*(int *)(in_a1 + 0xc) != iVar3) {\n      iVar9 = (*(code *)PTR__Rb_tree_decrement_004c1a5c)(iVar3);\n      iVar4 = *(int *)(iVar1 + 0x10);\n      uVar2 = *(uint *)(iVar1 + 0x14);\n      iVar6 = *(int *)(iVar9 + 0x10);\n      uVar8 = *(uint *)(iVar9 + 0x14);\nLAB_001783f0:\n      if ((((iVar4 <= iVar6) && ((iVar4 != iVar6 || (uVar2 <= uVar8)))) &&\n          ((iVar4 != iVar6 ||\n           ((uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18))))))) ||\n         (iVar9 = 0, iVar3 == 0)) {\n        (*(code *)PTR_operator_delete_004c12fc)(iVar1);\n        *(int *)param_1 = iVar9;\n        param_1[4] = (pair)0x0;\n        return param_1;\n      }\n    }\n    bVar5 = true;\n    if (iVar10 != iVar3) {\n      iVar4 = *(int *)(iVar1 + 0x10);\n      iVar9 = *(int *)(iVar3 + 0x10);\n      if ((iVar4 < iVar9) ||\n         ((iVar9 == iVar4 && (*(uint *)(iVar1 + 0x14) < *(uint *)(iVar3 + 0x14))))) {\n        bVar5 = true;\n      }\n      else {\n        bVar5 = false;\n        if ((iVar4 == iVar9) && (*(uint *)(iVar1 + 0x14) == *(uint *)(iVar3 + 0x14))) {\n          bVar5 = *(uint *)(iVar1 + 0x18) < *(uint *)(iVar3 + 0x18);\n        }\n      }\n    }\n    (*(code *)PTR__Rb_tree_insert_and_rebalance_004c1a58)(bVar5,iVar1,iVar3,iVar10);\n    iVar9 = *(int *)(in_a1 + 0x14);\n    *(int *)param_1 = iVar1;\n    *(int *)(in_a1 + 0x14) = iVar9 + 1;\n    param_1[4] = (pair)0x1;\n    return param_1;\n  }\n  iVar6 = *(int *)(iVar9 + 0x10);\n  uVar8 = *(uint *)(iVar9 + 0x14);\n  if (iVar4 < iVar6) goto LAB_001783dc;\n  do {\n    if ((iVar6 == iVar4) && (uVar2 < uVar8)) goto LAB_001783dc;\n    if ((iVar4 == iVar6) &&\n       ((uVar2 == uVar8 && (*(uint *)(iVar1 + 0x18) < *(uint *)(iVar9 + 0x18))))) goto LAB_001783dc;\n    bVar5 = false;\n    iVar7 = *(int *)(iVar9 + 0xc);\n    iVar3 = iVar9;\n    while( true ) {\n      iVar9 = iVar7;\n      if (iVar9 == 0) {\n        iVar9 = iVar3;\n        if (bVar5) goto LAB_001784c0;\n        goto LAB_001783f0;\n      }\n      iVar6 = *(int *)(iVar9 + 0x10);\n      uVar8 = *(uint *)(iVar9 + 0x14);\n      if (iVar6 <= iVar4) break;\nLAB_001783dc:\n      bVar5 = true;\n      iVar7 = *(int *)(iVar9 + 8);\n      iVar3 = iVar9;\n    }\n  } while( true );\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "bool bVar5;" primitive_type identifier ;) (declaration "int in_a1;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int *in_a2;" primitive_type (pointer_declarator "*in_a2" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (expression_statement "iVar10 = in_a1 + 4;" (assignment_expression "iVar10 = in_a1 + 4" identifier = (binary_expression "in_a1 + 4" identifier + number_literal)) ;) (expression_statement "iVar1 = (*(code *)PTR_operator_new_004c13a8)(0x28);" (assignment_expression "iVar1 = (*(code *)PTR_operator_new_004c13a8)(0x28)" identifier = (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x28)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x28)" ( number_literal )))) ;) (expression_statement "iVar4 = *in_a2;" (assignment_expression "iVar4 = *in_a2" identifier = (pointer_expression "*in_a2" * identifier)) ;) (expression_statement "uVar2 = in_a2[1];" (assignment_expression "uVar2 = in_a2[1]" identifier = (subscript_expression "in_a2[1]" identifier [ number_literal ])) ;) (expression_statement "iVar7 = in_a2[2];" (assignment_expression "iVar7 = in_a2[2]" identifier = (subscript_expression "in_a2[2]" identifier [ number_literal ])) ;) (expression_statement "iVar6 = in_a2[3];" (assignment_expression "iVar6 = in_a2[3]" identifier = (subscript_expression "in_a2[3]" identifier [ number_literal ])) ;) (expression_statement "iVar3 = in_a2[4];" (assignment_expression "iVar3 = in_a2[4]" identifier = (subscript_expression "in_a2[4]" identifier [ number_literal ])) ;) (expression_statement "iVar9 = *(int *)(in_a1 + 8);" (assignment_expression "iVar9 = *(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) ))))) ;) (expression_statement "*(int *)(iVar1 + 0x10) = iVar4;" (assignment_expression "*(int *)(iVar1 + 0x10) = iVar4" (pointer_expression "*(int *)(iVar1 + 0x10)" * (cast_expression "(int *)(iVar1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x10)" ( (binary_expression "iVar1 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar1 + 0x14) = uVar2;" (assignment_expression "*(uint *)(iVar1 + 0x14) = uVar2" (pointer_expression "*(uint *)(iVar1 + 0x14)" * (cast_expression "(uint *)(iVar1 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar1 + 0x18) = iVar7;" (assignment_expression "*(int *)(iVar1 + 0x18) = iVar7" (pointer_expression "*(int *)(iVar1 + 0x18)" * (cast_expression "(int *)(iVar1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x18)" ( (binary_expression "iVar1 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar1 + 0x1c) = iVar6;" (assignment_expression "*(int *)(iVar1 + 0x1c) = iVar6" (pointer_expression "*(int *)(iVar1 + 0x1c)" * (cast_expression "(int *)(iVar1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1c)" ( (binary_expression "iVar1 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar1 + 0x20) = iVar3;" (assignment_expression "*(int *)(iVar1 + 0x20) = iVar3" (pointer_expression "*(int *)(iVar1 + 0x20)" * (cast_expression "(int *)(iVar1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x20)" ( (binary_expression "iVar1 + 0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar3 = iVar10;" (assignment_expression "iVar3 = iVar10" identifier = identifier) ;) (if_statement "if (iVar9 == 0) {\nLAB_001784c0:\n    if (*(int *)(in_a1 + 0xc) != iVar3) {\n      iVar9 = (*(code *)PTR__Rb_tree_decrement_004c1a5c)(iVar3);\n      iVar4 = *(int *)(iVar1 + 0x10);\n      uVar2 = *(uint *)(iVar1 + 0x14);\n      iVar6 = *(int *)(iVar9 + 0x10);\n      uVar8 = *(uint *)(iVar9 + 0x14);\nLAB_001783f0:\n      if ((((iVar4 <= iVar6) && ((iVar4 != iVar6 || (uVar2 <= uVar8)))) &&\n          ((iVar4 != iVar6 ||\n           ((uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18))))))) ||\n         (iVar9 = 0, iVar3 == 0)) {\n        (*(code *)PTR_operator_delete_004c12fc)(iVar1);\n        *(int *)param_1 = iVar9;\n        param_1[4] = (pair)0x0;\n        return param_1;\n      }\n    }\n    bVar5 = true;\n    if (iVar10 != iVar3) {\n      iVar4 = *(int *)(iVar1 + 0x10);\n      iVar9 = *(int *)(iVar3 + 0x10);\n      if ((iVar4 < iVar9) ||\n         ((iVar9 == iVar4 && (*(uint *)(iVar1 + 0x14) < *(uint *)(iVar3 + 0x14))))) {\n        bVar5 = true;\n      }\n      else {\n        bVar5 = false;\n        if ((iVar4 == iVar9) && (*(uint *)(iVar1 + 0x14) == *(uint *)(iVar3 + 0x14))) {\n          bVar5 = *(uint *)(iVar1 + 0x18) < *(uint *)(iVar3 + 0x18);\n        }\n      }\n    }\n    (*(code *)PTR__Rb_tree_insert_and_rebalance_004c1a58)(bVar5,iVar1,iVar3,iVar10);\n    iVar9 = *(int *)(in_a1 + 0x14);\n    *(int *)param_1 = iVar1;\n    *(int *)(in_a1 + 0x14) = iVar9 + 1;\n    param_1[4] = (pair)0x1;\n    return param_1;\n  }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_001784c0:\n    if (*(int *)(in_a1 + 0xc) != iVar3) {\n      iVar9 = (*(code *)PTR__Rb_tree_decrement_004c1a5c)(iVar3);\n      iVar4 = *(int *)(iVar1 + 0x10);\n      uVar2 = *(uint *)(iVar1 + 0x14);\n      iVar6 = *(int *)(iVar9 + 0x10);\n      uVar8 = *(uint *)(iVar9 + 0x14);\nLAB_001783f0:\n      if ((((iVar4 <= iVar6) && ((iVar4 != iVar6 || (uVar2 <= uVar8)))) &&\n          ((iVar4 != iVar6 ||\n           ((uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18))))))) ||\n         (iVar9 = 0, iVar3 == 0)) {\n        (*(code *)PTR_operator_delete_004c12fc)(iVar1);\n        *(int *)param_1 = iVar9;\n        param_1[4] = (pair)0x0;\n        return param_1;\n      }\n    }\n    bVar5 = true;\n    if (iVar10 != iVar3) {\n      iVar4 = *(int *)(iVar1 + 0x10);\n      iVar9 = *(int *)(iVar3 + 0x10);\n      if ((iVar4 < iVar9) ||\n         ((iVar9 == iVar4 && (*(uint *)(iVar1 + 0x14) < *(uint *)(iVar3 + 0x14))))) {\n        bVar5 = true;\n      }\n      else {\n        bVar5 = false;\n        if ((iVar4 == iVar9) && (*(uint *)(iVar1 + 0x14) == *(uint *)(iVar3 + 0x14))) {\n          bVar5 = *(uint *)(iVar1 + 0x18) < *(uint *)(iVar3 + 0x18);\n        }\n      }\n    }\n    (*(code *)PTR__Rb_tree_insert_and_rebalance_004c1a58)(bVar5,iVar1,iVar3,iVar10);\n    iVar9 = *(int *)(in_a1 + 0x14);\n    *(int *)param_1 = iVar1;\n    *(int *)(in_a1 + 0x14) = iVar9 + 1;\n    param_1[4] = (pair)0x1;\n    return param_1;\n  }" { (labeled_statement "LAB_001784c0:\n    if (*(int *)(in_a1 + 0xc) != iVar3) {\n      iVar9 = (*(code *)PTR__Rb_tree_decrement_004c1a5c)(iVar3);\n      iVar4 = *(int *)(iVar1 + 0x10);\n      uVar2 = *(uint *)(iVar1 + 0x14);\n      iVar6 = *(int *)(iVar9 + 0x10);\n      uVar8 = *(uint *)(iVar9 + 0x14);\nLAB_001783f0:\n      if ((((iVar4 <= iVar6) && ((iVar4 != iVar6 || (uVar2 <= uVar8)))) &&\n          ((iVar4 != iVar6 ||\n           ((uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18))))))) ||\n         (iVar9 = 0, iVar3 == 0)) {\n        (*(code *)PTR_operator_delete_004c12fc)(iVar1);\n        *(int *)param_1 = iVar9;\n        param_1[4] = (pair)0x0;\n        return param_1;\n      }\n    }" statement_identifier : (if_statement "if (*(int *)(in_a1 + 0xc) != iVar3) {\n      iVar9 = (*(code *)PTR__Rb_tree_decrement_004c1a5c)(iVar3);\n      iVar4 = *(int *)(iVar1 + 0x10);\n      uVar2 = *(uint *)(iVar1 + 0x14);\n      iVar6 = *(int *)(iVar9 + 0x10);\n      uVar8 = *(uint *)(iVar9 + 0x14);\nLAB_001783f0:\n      if ((((iVar4 <= iVar6) && ((iVar4 != iVar6 || (uVar2 <= uVar8)))) &&\n          ((iVar4 != iVar6 ||\n           ((uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18))))))) ||\n         (iVar9 = 0, iVar3 == 0)) {\n        (*(code *)PTR_operator_delete_004c12fc)(iVar1);\n        *(int *)param_1 = iVar9;\n        param_1[4] = (pair)0x0;\n        return param_1;\n      }\n    }" if (parenthesized_expression "(*(int *)(in_a1 + 0xc) != iVar3)" ( (binary_expression "*(int *)(in_a1 + 0xc) != iVar3" (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      iVar9 = (*(code *)PTR__Rb_tree_decrement_004c1a5c)(iVar3);\n      iVar4 = *(int *)(iVar1 + 0x10);\n      uVar2 = *(uint *)(iVar1 + 0x14);\n      iVar6 = *(int *)(iVar9 + 0x10);\n      uVar8 = *(uint *)(iVar9 + 0x14);\nLAB_001783f0:\n      if ((((iVar4 <= iVar6) && ((iVar4 != iVar6 || (uVar2 <= uVar8)))) &&\n          ((iVar4 != iVar6 ||\n           ((uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18))))))) ||\n         (iVar9 = 0, iVar3 == 0)) {\n        (*(code *)PTR_operator_delete_004c12fc)(iVar1);\n        *(int *)param_1 = iVar9;\n        param_1[4] = (pair)0x0;\n        return param_1;\n      }\n    }" { (expression_statement "iVar9 = (*(code *)PTR__Rb_tree_decrement_004c1a5c)(iVar3);" (assignment_expression "iVar9 = (*(code *)PTR__Rb_tree_decrement_004c1a5c)(iVar3)" identifier = (call_expression "(*(code *)PTR__Rb_tree_decrement_004c1a5c)(iVar3)" (parenthesized_expression "(*(code *)PTR__Rb_tree_decrement_004c1a5c)" ( (pointer_expression "*(code *)PTR__Rb_tree_decrement_004c1a5c" * (cast_expression "(code *)PTR__Rb_tree_decrement_004c1a5c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar3)" ( identifier )))) ;) (expression_statement "iVar4 = *(int *)(iVar1 + 0x10);" (assignment_expression "iVar4 = *(int *)(iVar1 + 0x10)" identifier = (pointer_expression "*(int *)(iVar1 + 0x10)" * (cast_expression "(int *)(iVar1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x10)" ( (binary_expression "iVar1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = *(uint *)(iVar1 + 0x14);" (assignment_expression "uVar2 = *(uint *)(iVar1 + 0x14)" identifier = (pointer_expression "*(uint *)(iVar1 + 0x14)" * (cast_expression "(uint *)(iVar1 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = *(int *)(iVar9 + 0x10);" (assignment_expression "iVar6 = *(int *)(iVar9 + 0x10)" identifier = (pointer_expression "*(int *)(iVar9 + 0x10)" * (cast_expression "(int *)(iVar9 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x10)" ( (binary_expression "iVar9 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = *(uint *)(iVar9 + 0x14);" (assignment_expression "uVar8 = *(uint *)(iVar9 + 0x14)" identifier = (pointer_expression "*(uint *)(iVar9 + 0x14)" * (cast_expression "(uint *)(iVar9 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) ))))) ;) (labeled_statement "LAB_001783f0:\n      if ((((iVar4 <= iVar6) && ((iVar4 != iVar6 || (uVar2 <= uVar8)))) &&\n          ((iVar4 != iVar6 ||\n           ((uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18))))))) ||\n         (iVar9 = 0, iVar3 == 0)) {\n        (*(code *)PTR_operator_delete_004c12fc)(iVar1);\n        *(int *)param_1 = iVar9;\n        param_1[4] = (pair)0x0;\n        return param_1;\n      }" statement_identifier : (if_statement "if ((((iVar4 <= iVar6) && ((iVar4 != iVar6 || (uVar2 <= uVar8)))) &&\n          ((iVar4 != iVar6 ||\n           ((uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18))))))) ||\n         (iVar9 = 0, iVar3 == 0)) {\n        (*(code *)PTR_operator_delete_004c12fc)(iVar1);\n        *(int *)param_1 = iVar9;\n        param_1[4] = (pair)0x0;\n        return param_1;\n      }" if (parenthesized_expression "((((iVar4 <= iVar6) && ((iVar4 != iVar6 || (uVar2 <= uVar8)))) &&\n          ((iVar4 != iVar6 ||\n           ((uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18))))))) ||\n         (iVar9 = 0, iVar3 == 0))" ( (binary_expression "(((iVar4 <= iVar6) && ((iVar4 != iVar6 || (uVar2 <= uVar8)))) &&\n          ((iVar4 != iVar6 ||\n           ((uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18))))))) ||\n         (iVar9 = 0, iVar3 == 0)" (parenthesized_expression "(((iVar4 <= iVar6) && ((iVar4 != iVar6 || (uVar2 <= uVar8)))) &&\n          ((iVar4 != iVar6 ||\n           ((uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18)))))))" ( (binary_expression "((iVar4 <= iVar6) && ((iVar4 != iVar6 || (uVar2 <= uVar8)))) &&\n          ((iVar4 != iVar6 ||\n           ((uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18))))))" (parenthesized_expression "((iVar4 <= iVar6) && ((iVar4 != iVar6 || (uVar2 <= uVar8))))" ( (binary_expression "(iVar4 <= iVar6) && ((iVar4 != iVar6 || (uVar2 <= uVar8)))" (parenthesized_expression "(iVar4 <= iVar6)" ( (binary_expression "iVar4 <= iVar6" identifier <= identifier) )) && (parenthesized_expression "((iVar4 != iVar6 || (uVar2 <= uVar8)))" ( (parenthesized_expression "(iVar4 != iVar6 || (uVar2 <= uVar8))" ( (binary_expression "iVar4 != iVar6 || (uVar2 <= uVar8)" (binary_expression "iVar4 != iVar6" identifier != identifier) || (parenthesized_expression "(uVar2 <= uVar8)" ( (binary_expression "uVar2 <= uVar8" identifier <= identifier) ))) )) ))) )) && (parenthesized_expression "((iVar4 != iVar6 ||\n           ((uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18))))))" ( (parenthesized_expression "(iVar4 != iVar6 ||\n           ((uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18)))))" ( (binary_expression "iVar4 != iVar6 ||\n           ((uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18))))" (binary_expression "iVar4 != iVar6" identifier != identifier) || (parenthesized_expression "((uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18))))" ( (parenthesized_expression "(uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18)))" ( (binary_expression "uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18))" (binary_expression "uVar2 != uVar8" identifier != identifier) || (parenthesized_expression "(*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18))" ( (binary_expression "*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18)" (pointer_expression "*(uint *)(iVar1 + 0x18)" * (cast_expression "(uint *)(iVar1 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x18)" ( (binary_expression "iVar1 + 0x18" identifier + number_literal) )))) <= (pointer_expression "*(uint *)(iVar9 + 0x18)" * (cast_expression "(uint *)(iVar9 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x18)" ( (binary_expression "iVar9 + 0x18" identifier + number_literal) ))))) ))) )) ))) )) ))) )) || (parenthesized_expression "(iVar9 = 0, iVar3 == 0)" ( (comma_expression "iVar9 = 0, iVar3 == 0" (assignment_expression "iVar9 = 0" identifier = number_literal) , (binary_expression "iVar3 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n        (*(code *)PTR_operator_delete_004c12fc)(iVar1);\n        *(int *)param_1 = iVar9;\n        param_1[4] = (pair)0x0;\n        return param_1;\n      }" { (expression_statement "(*(code *)PTR_operator_delete_004c12fc)(iVar1);" (call_expression "(*(code *)PTR_operator_delete_004c12fc)(iVar1)" (parenthesized_expression "(*(code *)PTR_operator_delete_004c12fc)" ( (pointer_expression "*(code *)PTR_operator_delete_004c12fc" * (cast_expression "(code *)PTR_operator_delete_004c12fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar1)" ( identifier ))) ;) (expression_statement "*(int *)param_1 = iVar9;" (assignment_expression "*(int *)param_1 = iVar9" (pointer_expression "*(int *)param_1" * (cast_expression "(int *)param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "param_1[4] = (pair)0x0;" (assignment_expression "param_1[4] = (pair)0x0" (subscript_expression "param_1[4]" identifier [ number_literal ]) = (cast_expression "(pair)0x0" ( (type_descriptor "pair" type_identifier) ) number_literal)) ;) (return_statement "return param_1;" return identifier ;) }))) }))) (expression_statement "bVar5 = true;" (assignment_expression "bVar5 = true" identifier = true) ;) (if_statement "if (iVar10 != iVar3) {\n      iVar4 = *(int *)(iVar1 + 0x10);\n      iVar9 = *(int *)(iVar3 + 0x10);\n      if ((iVar4 < iVar9) ||\n         ((iVar9 == iVar4 && (*(uint *)(iVar1 + 0x14) < *(uint *)(iVar3 + 0x14))))) {\n        bVar5 = true;\n      }\n      else {\n        bVar5 = false;\n        if ((iVar4 == iVar9) && (*(uint *)(iVar1 + 0x14) == *(uint *)(iVar3 + 0x14))) {\n          bVar5 = *(uint *)(iVar1 + 0x18) < *(uint *)(iVar3 + 0x18);\n        }\n      }\n    }" if (parenthesized_expression "(iVar10 != iVar3)" ( (binary_expression "iVar10 != iVar3" identifier != identifier) )) (compound_statement "{\n      iVar4 = *(int *)(iVar1 + 0x10);\n      iVar9 = *(int *)(iVar3 + 0x10);\n      if ((iVar4 < iVar9) ||\n         ((iVar9 == iVar4 && (*(uint *)(iVar1 + 0x14) < *(uint *)(iVar3 + 0x14))))) {\n        bVar5 = true;\n      }\n      else {\n        bVar5 = false;\n        if ((iVar4 == iVar9) && (*(uint *)(iVar1 + 0x14) == *(uint *)(iVar3 + 0x14))) {\n          bVar5 = *(uint *)(iVar1 + 0x18) < *(uint *)(iVar3 + 0x18);\n        }\n      }\n    }" { (expression_statement "iVar4 = *(int *)(iVar1 + 0x10);" (assignment_expression "iVar4 = *(int *)(iVar1 + 0x10)" identifier = (pointer_expression "*(int *)(iVar1 + 0x10)" * (cast_expression "(int *)(iVar1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x10)" ( (binary_expression "iVar1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = *(int *)(iVar3 + 0x10);" (assignment_expression "iVar9 = *(int *)(iVar3 + 0x10)" identifier = (pointer_expression "*(int *)(iVar3 + 0x10)" * (cast_expression "(int *)(iVar3 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x10)" ( (binary_expression "iVar3 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if ((iVar4 < iVar9) ||\n         ((iVar9 == iVar4 && (*(uint *)(iVar1 + 0x14) < *(uint *)(iVar3 + 0x14))))) {\n        bVar5 = true;\n      }\n      else {\n        bVar5 = false;\n        if ((iVar4 == iVar9) && (*(uint *)(iVar1 + 0x14) == *(uint *)(iVar3 + 0x14))) {\n          bVar5 = *(uint *)(iVar1 + 0x18) < *(uint *)(iVar3 + 0x18);\n        }\n      }" if (parenthesized_expression "((iVar4 < iVar9) ||\n         ((iVar9 == iVar4 && (*(uint *)(iVar1 + 0x14) < *(uint *)(iVar3 + 0x14)))))" ( (binary_expression "(iVar4 < iVar9) ||\n         ((iVar9 == iVar4 && (*(uint *)(iVar1 + 0x14) < *(uint *)(iVar3 + 0x14))))" (parenthesized_expression "(iVar4 < iVar9)" ( (binary_expression "iVar4 < iVar9" identifier < identifier) )) || (parenthesized_expression "((iVar9 == iVar4 && (*(uint *)(iVar1 + 0x14) < *(uint *)(iVar3 + 0x14))))" ( (parenthesized_expression "(iVar9 == iVar4 && (*(uint *)(iVar1 + 0x14) < *(uint *)(iVar3 + 0x14)))" ( (binary_expression "iVar9 == iVar4 && (*(uint *)(iVar1 + 0x14) < *(uint *)(iVar3 + 0x14))" (binary_expression "iVar9 == iVar4" identifier == identifier) && (parenthesized_expression "(*(uint *)(iVar1 + 0x14) < *(uint *)(iVar3 + 0x14))" ( (binary_expression "*(uint *)(iVar1 + 0x14) < *(uint *)(iVar3 + 0x14)" (pointer_expression "*(uint *)(iVar1 + 0x14)" * (cast_expression "(uint *)(iVar1 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) )))) < (pointer_expression "*(uint *)(iVar3 + 0x14)" * (cast_expression "(uint *)(iVar3 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x14)" ( (binary_expression "iVar3 + 0x14" identifier + number_literal) ))))) ))) )) ))) )) (compound_statement "{\n        bVar5 = true;\n      }" { (expression_statement "bVar5 = true;" (assignment_expression "bVar5 = true" identifier = true) ;) }) (else_clause "else {\n        bVar5 = false;\n        if ((iVar4 == iVar9) && (*(uint *)(iVar1 + 0x14) == *(uint *)(iVar3 + 0x14))) {\n          bVar5 = *(uint *)(iVar1 + 0x18) < *(uint *)(iVar3 + 0x18);\n        }\n      }" else (compound_statement "{\n        bVar5 = false;\n        if ((iVar4 == iVar9) && (*(uint *)(iVar1 + 0x14) == *(uint *)(iVar3 + 0x14))) {\n          bVar5 = *(uint *)(iVar1 + 0x18) < *(uint *)(iVar3 + 0x18);\n        }\n      }" { (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" identifier = false) ;) (if_statement "if ((iVar4 == iVar9) && (*(uint *)(iVar1 + 0x14) == *(uint *)(iVar3 + 0x14))) {\n          bVar5 = *(uint *)(iVar1 + 0x18) < *(uint *)(iVar3 + 0x18);\n        }" if (parenthesized_expression "((iVar4 == iVar9) && (*(uint *)(iVar1 + 0x14) == *(uint *)(iVar3 + 0x14)))" ( (binary_expression "(iVar4 == iVar9) && (*(uint *)(iVar1 + 0x14) == *(uint *)(iVar3 + 0x14))" (parenthesized_expression "(iVar4 == iVar9)" ( (binary_expression "iVar4 == iVar9" identifier == identifier) )) && (parenthesized_expression "(*(uint *)(iVar1 + 0x14) == *(uint *)(iVar3 + 0x14))" ( (binary_expression "*(uint *)(iVar1 + 0x14) == *(uint *)(iVar3 + 0x14)" (pointer_expression "*(uint *)(iVar1 + 0x14)" * (cast_expression "(uint *)(iVar1 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) )))) == (pointer_expression "*(uint *)(iVar3 + 0x14)" * (cast_expression "(uint *)(iVar3 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x14)" ( (binary_expression "iVar3 + 0x14" identifier + number_literal) ))))) ))) )) (compound_statement "{\n          bVar5 = *(uint *)(iVar1 + 0x18) < *(uint *)(iVar3 + 0x18);\n        }" { (expression_statement "bVar5 = *(uint *)(iVar1 + 0x18) < *(uint *)(iVar3 + 0x18);" (assignment_expression "bVar5 = *(uint *)(iVar1 + 0x18) < *(uint *)(iVar3 + 0x18)" identifier = (binary_expression "*(uint *)(iVar1 + 0x18) < *(uint *)(iVar3 + 0x18)" (pointer_expression "*(uint *)(iVar1 + 0x18)" * (cast_expression "(uint *)(iVar1 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x18)" ( (binary_expression "iVar1 + 0x18" identifier + number_literal) )))) < (pointer_expression "*(uint *)(iVar3 + 0x18)" * (cast_expression "(uint *)(iVar3 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x18)" ( (binary_expression "iVar3 + 0x18" identifier + number_literal) )))))) ;) })) }))) })) (expression_statement "(*(code *)PTR__Rb_tree_insert_and_rebalance_004c1a58)(bVar5,iVar1,iVar3,iVar10);" (call_expression "(*(code *)PTR__Rb_tree_insert_and_rebalance_004c1a58)(bVar5,iVar1,iVar3,iVar10)" (parenthesized_expression "(*(code *)PTR__Rb_tree_insert_and_rebalance_004c1a58)" ( (pointer_expression "*(code *)PTR__Rb_tree_insert_and_rebalance_004c1a58" * (cast_expression "(code *)PTR__Rb_tree_insert_and_rebalance_004c1a58" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(bVar5,iVar1,iVar3,iVar10)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar9 = *(int *)(in_a1 + 0x14);" (assignment_expression "iVar9 = *(int *)(in_a1 + 0x14)" identifier = (pointer_expression "*(int *)(in_a1 + 0x14)" * (cast_expression "(int *)(in_a1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_a1 + 0x14)" ( (binary_expression "in_a1 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*(int *)param_1 = iVar1;" (assignment_expression "*(int *)param_1 = iVar1" (pointer_expression "*(int *)param_1" * (cast_expression "(int *)param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(int *)(in_a1 + 0x14) = iVar9 + 1;" (assignment_expression "*(int *)(in_a1 + 0x14) = iVar9 + 1" (pointer_expression "*(int *)(in_a1 + 0x14)" * (cast_expression "(int *)(in_a1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_a1 + 0x14)" ( (binary_expression "in_a1 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) (expression_statement "param_1[4] = (pair)0x1;" (assignment_expression "param_1[4] = (pair)0x1" (subscript_expression "param_1[4]" identifier [ number_literal ]) = (cast_expression "(pair)0x1" ( (type_descriptor "pair" type_identifier) ) number_literal)) ;) (return_statement "return param_1;" return identifier ;) })) (expression_statement "iVar6 = *(int *)(iVar9 + 0x10);" (assignment_expression "iVar6 = *(int *)(iVar9 + 0x10)" identifier = (pointer_expression "*(int *)(iVar9 + 0x10)" * (cast_expression "(int *)(iVar9 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x10)" ( (binary_expression "iVar9 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = *(uint *)(iVar9 + 0x14);" (assignment_expression "uVar8 = *(uint *)(iVar9 + 0x14)" identifier = (pointer_expression "*(uint *)(iVar9 + 0x14)" * (cast_expression "(uint *)(iVar9 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (iVar4 < iVar6) goto LAB_001783dc;" if (parenthesized_expression "(iVar4 < iVar6)" ( (binary_expression "iVar4 < iVar6" identifier < identifier) )) (goto_statement "goto LAB_001783dc;" goto statement_identifier ;)) (do_statement "do {\n    if ((iVar6 == iVar4) && (uVar2 < uVar8)) goto LAB_001783dc;\n    if ((iVar4 == iVar6) &&\n       ((uVar2 == uVar8 && (*(uint *)(iVar1 + 0x18) < *(uint *)(iVar9 + 0x18))))) goto LAB_001783dc;\n    bVar5 = false;\n    iVar7 = *(int *)(iVar9 + 0xc);\n    iVar3 = iVar9;\n    while( true ) {\n      iVar9 = iVar7;\n      if (iVar9 == 0) {\n        iVar9 = iVar3;\n        if (bVar5) goto LAB_001784c0;\n        goto LAB_001783f0;\n      }\n      iVar6 = *(int *)(iVar9 + 0x10);\n      uVar8 = *(uint *)(iVar9 + 0x14);\n      if (iVar6 <= iVar4) break;\nLAB_001783dc:\n      bVar5 = true;\n      iVar7 = *(int *)(iVar9 + 8);\n      iVar3 = iVar9;\n    }\n  } while( true );" do (compound_statement "{\n    if ((iVar6 == iVar4) && (uVar2 < uVar8)) goto LAB_001783dc;\n    if ((iVar4 == iVar6) &&\n       ((uVar2 == uVar8 && (*(uint *)(iVar1 + 0x18) < *(uint *)(iVar9 + 0x18))))) goto LAB_001783dc;\n    bVar5 = false;\n    iVar7 = *(int *)(iVar9 + 0xc);\n    iVar3 = iVar9;\n    while( true ) {\n      iVar9 = iVar7;\n      if (iVar9 == 0) {\n        iVar9 = iVar3;\n        if (bVar5) goto LAB_001784c0;\n        goto LAB_001783f0;\n      }\n      iVar6 = *(int *)(iVar9 + 0x10);\n      uVar8 = *(uint *)(iVar9 + 0x14);\n      if (iVar6 <= iVar4) break;\nLAB_001783dc:\n      bVar5 = true;\n      iVar7 = *(int *)(iVar9 + 8);\n      iVar3 = iVar9;\n    }\n  }" { (if_statement "if ((iVar6 == iVar4) && (uVar2 < uVar8)) goto LAB_001783dc;" if (parenthesized_expression "((iVar6 == iVar4) && (uVar2 < uVar8))" ( (binary_expression "(iVar6 == iVar4) && (uVar2 < uVar8)" (parenthesized_expression "(iVar6 == iVar4)" ( (binary_expression "iVar6 == iVar4" identifier == identifier) )) && (parenthesized_expression "(uVar2 < uVar8)" ( (binary_expression "uVar2 < uVar8" identifier < identifier) ))) )) (goto_statement "goto LAB_001783dc;" goto statement_identifier ;)) (if_statement "if ((iVar4 == iVar6) &&\n       ((uVar2 == uVar8 && (*(uint *)(iVar1 + 0x18) < *(uint *)(iVar9 + 0x18))))) goto LAB_001783dc;" if (parenthesized_expression "((iVar4 == iVar6) &&\n       ((uVar2 == uVar8 && (*(uint *)(iVar1 + 0x18) < *(uint *)(iVar9 + 0x18)))))" ( (binary_expression "(iVar4 == iVar6) &&\n       ((uVar2 == uVar8 && (*(uint *)(iVar1 + 0x18) < *(uint *)(iVar9 + 0x18))))" (parenthesized_expression "(iVar4 == iVar6)" ( (binary_expression "iVar4 == iVar6" identifier == identifier) )) && (parenthesized_expression "((uVar2 == uVar8 && (*(uint *)(iVar1 + 0x18) < *(uint *)(iVar9 + 0x18))))" ( (parenthesized_expression "(uVar2 == uVar8 && (*(uint *)(iVar1 + 0x18) < *(uint *)(iVar9 + 0x18)))" ( (binary_expression "uVar2 == uVar8 && (*(uint *)(iVar1 + 0x18) < *(uint *)(iVar9 + 0x18))" (binary_expression "uVar2 == uVar8" identifier == identifier) && (parenthesized_expression "(*(uint *)(iVar1 + 0x18) < *(uint *)(iVar9 + 0x18))" ( (binary_expression "*(uint *)(iVar1 + 0x18) < *(uint *)(iVar9 + 0x18)" (pointer_expression "*(uint *)(iVar1 + 0x18)" * (cast_expression "(uint *)(iVar1 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x18)" ( (binary_expression "iVar1 + 0x18" identifier + number_literal) )))) < (pointer_expression "*(uint *)(iVar9 + 0x18)" * (cast_expression "(uint *)(iVar9 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x18)" ( (binary_expression "iVar9 + 0x18" identifier + number_literal) ))))) ))) )) ))) )) (goto_statement "goto LAB_001783dc;" goto statement_identifier ;)) (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" identifier = false) ;) (expression_statement "iVar7 = *(int *)(iVar9 + 0xc);" (assignment_expression "iVar7 = *(int *)(iVar9 + 0xc)" identifier = (pointer_expression "*(int *)(iVar9 + 0xc)" * (cast_expression "(int *)(iVar9 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xc)" ( (binary_expression "iVar9 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = iVar9;" (assignment_expression "iVar3 = iVar9" identifier = identifier) ;) (while_statement "while( true ) {\n      iVar9 = iVar7;\n      if (iVar9 == 0) {\n        iVar9 = iVar3;\n        if (bVar5) goto LAB_001784c0;\n        goto LAB_001783f0;\n      }\n      iVar6 = *(int *)(iVar9 + 0x10);\n      uVar8 = *(uint *)(iVar9 + 0x14);\n      if (iVar6 <= iVar4) break;\nLAB_001783dc:\n      bVar5 = true;\n      iVar7 = *(int *)(iVar9 + 8);\n      iVar3 = iVar9;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      iVar9 = iVar7;\n      if (iVar9 == 0) {\n        iVar9 = iVar3;\n        if (bVar5) goto LAB_001784c0;\n        goto LAB_001783f0;\n      }\n      iVar6 = *(int *)(iVar9 + 0x10);\n      uVar8 = *(uint *)(iVar9 + 0x14);\n      if (iVar6 <= iVar4) break;\nLAB_001783dc:\n      bVar5 = true;\n      iVar7 = *(int *)(iVar9 + 8);\n      iVar3 = iVar9;\n    }" { (expression_statement "iVar9 = iVar7;" (assignment_expression "iVar9 = iVar7" identifier = identifier) ;) (if_statement "if (iVar9 == 0) {\n        iVar9 = iVar3;\n        if (bVar5) goto LAB_001784c0;\n        goto LAB_001783f0;\n      }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar9 = iVar3;\n        if (bVar5) goto LAB_001784c0;\n        goto LAB_001783f0;\n      }" { (expression_statement "iVar9 = iVar3;" (assignment_expression "iVar9 = iVar3" identifier = identifier) ;) (if_statement "if (bVar5) goto LAB_001784c0;" if (parenthesized_expression "(bVar5)" ( identifier )) (goto_statement "goto LAB_001784c0;" goto statement_identifier ;)) (goto_statement "goto LAB_001783f0;" goto statement_identifier ;) })) (expression_statement "iVar6 = *(int *)(iVar9 + 0x10);" (assignment_expression "iVar6 = *(int *)(iVar9 + 0x10)" identifier = (pointer_expression "*(int *)(iVar9 + 0x10)" * (cast_expression "(int *)(iVar9 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x10)" ( (binary_expression "iVar9 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = *(uint *)(iVar9 + 0x14);" (assignment_expression "uVar8 = *(uint *)(iVar9 + 0x14)" identifier = (pointer_expression "*(uint *)(iVar9 + 0x14)" * (cast_expression "(uint *)(iVar9 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (iVar6 <= iVar4) break;" if (parenthesized_expression "(iVar6 <= iVar4)" ( (binary_expression "iVar6 <= iVar4" identifier <= identifier) )) (break_statement "break;" break ;)) (labeled_statement "LAB_001783dc:\n      bVar5 = true;" statement_identifier : (expression_statement "bVar5 = true;" (assignment_expression "bVar5 = true" identifier = true) ;)) (expression_statement "iVar7 = *(int *)(iVar9 + 8);" (assignment_expression "iVar7 = *(int *)(iVar9 + 8)" identifier = (pointer_expression "*(int *)(iVar9 + 8)" * (cast_expression "(int *)(iVar9 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 8)" ( (binary_expression "iVar9 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = iVar9;" (assignment_expression "iVar3 = iVar9" identifier = identifier) ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) }))
(translation_unit "/* DWARF original name: _M_emplace_unique<std::pair<std::pair<long long int, unsigned int>,\n   gold::File_read::View*> >\n   DWARF original prototype:\n   pair<std::_Rb_tree_iterator<std::pair<const_std::pair<long_long_int,_unsigned_int>,_gold::File_read::View*>_>,_bool>\n   _M_emplace_unique<std::pair<std::pair<long_long_int,_unsigned_int>,_gold::File_read::View*>_>(_Rb_tree<std::pair<long_long_int,_unsigned_int>,_std::pair<const_std::pair<long_long_int,_unsigned_int>,_gold::File_read::View*>,_std::_Select1st<std::pair<const_std::pair<long_long_int,_unsigned_int>,_gold::File_read::View*>_>,_std::less<std::pair<long_long_int,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<long_long_int,_unsigned_int>,_gold::File_read::View*>_>_>\n   * this, pair<std::pair<long_long_int,_unsigned_int>,_gold::File_read::View*> * __args#0) */\n\npair<std::_Rb_tree_iterator<std::pair<const_std::pair<long_long_int,_unsigned_int>,_gold::File_read::View*>_>,_bool>\n __thiscall\nstd::\n_Rb_tree<std::pair<long_long_int,_unsigned_int>,_std::pair<const_std::pair<long_long_int,_unsigned_int>,_gold::File_read::View*>,_std::_Select1st<std::pair<const_std::pair<long_long_int,_unsigned_int>,_gold::File_read::View*>_>,_std::less<std::pair<long_long_int,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<long_long_int,_unsigned_int>,_gold::File_read::View*>_>_>\n::_M_emplace_unique<std::pair<std::pair<long_long_int,_unsigned_int>,_gold::File_read::View*>_>\n          (_Rb_tree<std::pair<long_long_int,_unsigned_int>,_std::pair<const_std::pair<long_long_int,_unsigned_int>,_gold::File_read::View*>,_std::_Select1st<std::pair<const_std::pair<long_long_int,_unsigned_int>,_gold::File_read::View*>_>,_std::less<std::pair<long_long_int,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<long_long_int,_unsigned_int>,_gold::File_read::View*>_>_>\n           *this,pair<std::pair<long_long_int,_unsigned_int>,_gold::File_read::View*> *__args_0)\n\n{\n  undefined1 *puVar1;\n  int iVar2;\n  uint uVar3;\n  int iVar4;\n  undefined4 extraout_v1;\n  int iVar5;\n  undefined1 *puVar6;\n  bool bVar7;\n  int iVar8;\n  int *in_a2;\n  int iVar9;\n  uint uVar10;\n  undefined1 *puVar11;\n  undefined1 *puVar12;\n  pair<std::_Rb_tree_iterator<std::pair<const_std::pair<long_long_int,_unsigned_int>,_gold::File_read::View*>_>,_bool>\n  pVar13;\n  pair<std::_Rb_tree_iterator<std::pair<const_std::pair<long_long_int,_unsigned_int>,_gold::File_read::View*>_>,_bool>\n  pVar14;\n  \n  puVar12 = (undefined1 *)((int)&(__args_0->first).first + 4);\n  iVar2 = (*(code *)PTR_operator_new_004c13a8)(0x28);\n  iVar5 = *in_a2;\n  uVar3 = in_a2[1];\n  iVar9 = in_a2[2];\n  iVar8 = in_a2[3];\n  iVar4 = in_a2[4];\n  puVar11 = (undefined1 *)(__args_0->first).second;\n  *(int *)(iVar2 + 0x10) = iVar5;\n  *(uint *)(iVar2 + 0x14) = uVar3;\n  *(int *)(iVar2 + 0x18) = iVar9;\n  *(int *)(iVar2 + 0x1c) = iVar8;\n  *(int *)(iVar2 + 0x20) = iVar4;\n  puVar6 = puVar12;\n  if (puVar11 == (undefined1 *)0x0) {\nLAB_001784c0:\n    if (*(undefined1 **)&(__args_0->first).field_0xc != puVar6) {\n      puVar11 = (undefined1 *)(*(code *)PTR__Rb_tree_decrement_004c1a5c)(puVar6);\n      iVar5 = *(int *)(iVar2 + 0x10);\n      uVar3 = *(uint *)(iVar2 + 0x14);\n      iVar4 = *(int *)(puVar11 + 0x10);\n      uVar10 = *(uint *)(puVar11 + 0x14);\nLAB_001783f0:\n      if ((((iVar5 <= iVar4) && ((iVar5 != iVar4 || (uVar3 <= uVar10)))) &&\n          ((iVar5 != iVar4 ||\n           ((uVar3 != uVar10 || (*(uint *)(iVar2 + 0x18) <= *(uint *)(puVar11 + 0x18))))))) ||\n         (puVar11 = (undefined1 *)0x0, puVar6 == (undefined1 *)0x0)) {\n        (*(code *)PTR_operator_delete_004c12fc)(iVar2);\n        *(undefined1 **)&this->_M_impl = puVar11;\n        *(undefined1 *)&(this->_M_impl).super__Rb_tree_header._M_header._M_color = _S_red;\n        pVar13.first._M_node = (_Base_ptr)this;\n        pVar13._4_4_ = extraout_v1;\n        return pVar13;\n      }\n    }\n    bVar7 = true;\n    if (puVar12 != puVar6) {\n      iVar5 = *(int *)(iVar2 + 0x10);\n      iVar4 = *(int *)(puVar6 + 0x10);\n      if ((iVar5 < iVar4) ||\n         ((iVar4 == iVar5 && (*(uint *)(iVar2 + 0x14) < *(uint *)(puVar6 + 0x14))))) {\n        bVar7 = true;\n      }\n      else {\n        bVar7 = false;\n        if ((iVar5 == iVar4) && (*(uint *)(iVar2 + 0x14) == *(uint *)(puVar6 + 0x14))) {\n          bVar7 = *(uint *)(iVar2 + 0x18) < *(uint *)(puVar6 + 0x18);\n        }\n      }\n    }\n    (*(code *)PTR__Rb_tree_insert_and_rebalance_004c1a58)(bVar7,iVar2,puVar6,puVar12);\n    iVar4 = *(int *)&__args_0->field_0x14;\n    *(int *)&this->_M_impl = iVar2;\n    *(int *)&__args_0->field_0x14 = iVar4 + 1;\n    *(undefined1 *)&(this->_M_impl).super__Rb_tree_header._M_header._M_color = _S_black;\n    pVar14.first._M_node = (_Base_ptr)this;\n    pVar14._4_4_ = 1;\n    return pVar14;\n  }\n  iVar4 = *(int *)(puVar11 + 0x10);\n  uVar10 = *(uint *)(puVar11 + 0x14);\n  if (iVar5 < iVar4) goto LAB_001783dc;\n  do {\n    if ((iVar4 == iVar5) && (uVar3 < uVar10)) goto LAB_001783dc;\n    if ((iVar5 == iVar4) &&\n       ((uVar3 == uVar10 && (*(uint *)(iVar2 + 0x18) < *(uint *)(puVar11 + 0x18)))))\n    goto LAB_001783dc;\n    bVar7 = false;\n    puVar1 = *(undefined1 **)(puVar11 + 0xc);\n    puVar6 = puVar11;\n    while( true ) {\n      puVar11 = puVar1;\n      if (puVar11 == (undefined1 *)0x0) {\n        puVar11 = puVar6;\n        if (bVar7) goto LAB_001784c0;\n        goto LAB_001783f0;\n      }\n      iVar4 = *(int *)(puVar11 + 0x10);\n      uVar10 = *(uint *)(puVar11 + 0x14);\n      if (iVar4 <= iVar5) break;\nLAB_001783dc:\n      bVar7 = true;\n      puVar1 = *(undefined1 **)(puVar11 + 8);\n      puVar6 = puVar11;\n    }\n  } while( true );\n}\n\n" comment (ERROR "pair<std::_Rb_tree_iterator<std::pair<const_std::pair<long_long_int,_unsigned_int>,_gold::File_read::View*>_>,_bool>\n __thiscall\nstd::\n_Rb_tree<std::pair<long_long_int,_unsigned_int>,_std::pair<const_std::pair<long_long_int,_unsigned_int>,_gold::" (binary_expression "pair<std" identifier < identifier) : : (binary_expression "_Rb_tree_iterator<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (binary_expression "pair<long_long_int" identifier < identifier) , (binary_expression "_unsigned_int>,_gold" identifier > (ERROR "," ,) identifier) : : (binary_expression "File_read::View*>_>,_bool>\n __thiscall\nstd::\n_Rb_tree<std" (binary_expression "File_read::View*>_>,_bool>\n __thiscall" (binary_expression "File_read::View*>_>,_bool" (binary_expression "File_read::View*>_" identifier (ERROR "::View*" : : identifier *) > identifier) > (ERROR "," ,) identifier) > identifier) (ERROR "std::\n_Rb_tree" identifier : : identifier) < identifier) : : (binary_expression "pair<long_long_int" identifier < identifier) , (binary_expression "_unsigned_int>,_std" identifier > (ERROR "," ,) identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (binary_expression "pair<long_long_int" identifier < identifier) , (binary_expression "_unsigned_int>,_gold" identifier > (ERROR "," ,) identifier) : :) (labeled_statement "File_read::View*>,_std::_Select1st<std::pair<const_std::pair<long_long_int,_unsigned_int>,_gold::File_read::View*>_>,_std::less<std::pair<long_long_int,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<long_long_int,_unsigned_int>,_gold::File_read::View*>_>_>\n::_M_emplace_unique<std::pair<std::pair<long_long_int,_unsigned_int>,_gold::File_read::View*>_>\n          (_Rb_tree<std::pair<long_long_int,_unsigned_int>,_std::pair<const_std::pair<long_long_int,_unsigned_int>,_gold::File_read::View*>,_std::_Select1st<std::pair<const_std::pair<long_long_int,_unsigned_int>,_gold::File_read::View*>_>,_std::less<std::pair<long_long_int,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<long_long_int,_unsigned_int>,_gold::File_read::View*>_>_>\n           *this,pair<std::pair<long_long_int,_unsigned_int>,_gold::File_read::View*> *__args_0)\n\n{\n  undefined1 *puVar1;\n  int iVar2;\n  uint uVar3;\n  int iVar4;\n  undefined4 extraout_v1;\n  int iVar5;\n  undefined1 *puVar6;\n  bool bVar7;\n  int iVar8;\n  int *in_a2;\n  int iVar9;\n  uint uVar10;\n  undefined1 *puVar11;\n  undefined1 *puVar12;\n  pair<std::_Rb_tree_iterator<std::pair<const_std::pair<long_long_int,_unsigned_int>,_gold::File_read::View*>_>,_bool>\n  pVar13;\n  pair<std::_Rb_tree_iterator<std::pair<const_std::pair<long_long_int,_unsigned_int>,_gold::File_read::View*>_>,_bool>\n  pVar14;\n  \n  puVar12 = (undefined1 *)((int)&(__args_0->first).first + 4);\n  iVar2 = (*(code *)PTR_operator_new_004c13a8)(0x28);\n  iVar5 = *in_a2;\n  uVar3 = in_a2[1];\n  iVar9 = in_a2[2];\n  iVar8 = in_a2[3];\n  iVar4 = in_a2[4];\n  puVar11 = (undefined1 *)(__args_0->first).second;\n  *(int *)(iVar2 + 0x10) = iVar5;\n  *(uint *)(iVar2 + 0x14) = uVar3;\n  *(int *)(iVar2 + 0x18) = iVar9;\n  *(int *)(iVar2 + 0x1c) = iVar8;\n  *(int *)(iVar2 + 0x20) = iVar4;\n  puVar6 = puVar12;\n  if (puVar11 == (undefined1 *)0x0) {\nLAB_001784c0:\n    if (*(undefined1 **)&(__args_0->first).field_0xc != puVar6) {\n      puVar11 = (undefined1 *)(*(code *)PTR__Rb_tree_decrement_004c1a5c)(puVar6);\n      iVar5 = *(int *)(iVar2 + 0x10);\n      uVar3 = *(uint *)(iVar2 + 0x14);\n      iVar4 = *(int *)(puVar11 + 0x10);\n      uVar10 = *(uint *)(puVar11 + 0x14);\nLAB_001783f0:\n      if ((((iVar5 <= iVar4) && ((iVar5 != iVar4 || (uVar3 <= uVar10)))) &&\n          ((iVar5 != iVar4 ||\n           ((uVar3 != uVar10 || (*(uint *)(iVar2 + 0x18) <= *(uint *)(puVar11 + 0x18))))))) ||\n         (puVar11 = (undefined1 *)0x0, puVar6 == (undefined1 *)0x0)) {\n        (*(code *)PTR_operator_delete_004c12fc)(iVar2);\n        *(undefined1 **)&this->_M_impl = puVar11;\n        *(undefined1 *)&(this->_M_impl).super__Rb_tree_header._M_header._M_color = _S_red;\n        pVar13.first._M_node = (_Base_ptr)this;\n        pVar13._4_4_ = extraout_v1;\n        return pVar13;\n      }\n    }\n    bVar7 = true;\n    if (puVar12 != puVar6) {\n      iVar5 = *(int *)(iVar2 + 0x10);\n      iVar4 = *(int *)(puVar6 + 0x10);\n      if ((iVar5 < iVar4) ||\n         ((iVar4 == iVar5 && (*(uint *)(iVar2 + 0x14) < *(uint *)(puVar6 + 0x14))))) {\n        bVar7 = true;\n      }\n      else {\n        bVar7 = false;\n        if ((iVar5 == iVar4) && (*(uint *)(iVar2 + 0x14) == *(uint *)(puVar6 + 0x14))) {\n          bVar7 = *(uint *)(iVar2 + 0x18) < *(uint *)(puVar6 + 0x18);\n        }\n      }\n    }\n    (*(code *)PTR__Rb_tree_insert_and_rebalance_004c1a58)(bVar7,iVar2,puVar6,puVar12);\n    iVar4 = *(int *)&__args_0->field_0x14;\n    *(int *)&this->_M_impl = iVar2;\n    *(int *)&__args_0->field_0x14 = iVar4 + 1;\n    *(undefined1 *)&(this->_M_impl).super__Rb_tree_header._M_header._M_color = _S_black;\n    pVar14.first._M_node = (_Base_ptr)this;\n    pVar14._4_4_ = 1;\n    return pVar14;\n  }\n  iVar4 = *(int *)(puVar11 + 0x10);\n  uVar10 = *(uint *)(puVar11 + 0x14);\n  if (iVar5 < iVar4) goto LAB_001783dc;\n  do {\n    if ((iVar4 == iVar5) && (uVar3 < uVar10)) goto LAB_001783dc;\n    if ((iVar5 == iVar4) &&\n       ((uVar3 == uVar10 && (*(uint *)(iVar2 + 0x18) < *(uint *)(puVar11 + 0x18)))))\n    goto LAB_001783dc;\n    bVar7 = false;\n    puVar1 = *(undefined1 **)(puVar11 + 0xc);\n    puVar6 = puVar11;\n    while( true ) {\n      puVar11 = puVar1;\n      if (puVar11 == (undefined1 *)0x0) {\n        puVar11 = puVar6;\n        if (bVar7) goto LAB_001784c0;\n        goto LAB_001783f0;\n      }\n      iVar4 = *(int *)(puVar11 + 0x10);\n      uVar10 = *(uint *)(puVar11 + 0x14);\n      if (iVar4 <= iVar5) break;\nLAB_001783dc:\n      bVar7 = true;\n      puVar1 = *(undefined1 **)(puVar11 + 8);\n      puVar6 = puVar11;\n    }\n  } while( true );\n}" statement_identifier (ERROR "::View*>,_std::_Select1st<std::pair<const_std::pair<long_long_int,_unsigned_int>,_gold::File_read::View*>_>,_std::less<std::pair<long_long_int,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<long_long_int,_unsigned_int>,_gold::File_read::View*>_>_>\n::_M_emplace_unique<std::pair<std::pair<long_long_int,_unsigned_int>,_gold::File_read::View*>_>\n          (_Rb_tree<std::pair<long_long_int,_unsigned_int>,_std::pair<const_std::pair<long_long_int,_unsigned_int>,_gold::File_read::View*>,_std::_Select1st<std::pair<const_std::pair<long_long_int,_unsigned_int>,_gold::File_read::View*>_>,_std::less<std::pair<long_long_int,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<long_long_int,_unsigned_int>,_gold::File_read::View*>_>_>\n           *this,pair<std::pair<long_long_int,_unsigned_int>,_gold:" : : (comma_expression "View*>,_std" identifier (ERROR "*>" * >) , identifier) : : (binary_expression "_Select1st<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (comma_expression "pair<long_long_int,_unsigned_int>,_gold" (binary_expression "pair<long_long_int" identifier < identifier) , (binary_expression "_unsigned_int>,_gold" identifier > (ERROR "," ,) identifier)) : : (binary_expression "File_read::View*>_>,_std" (binary_expression "File_read::View*>_" identifier (ERROR "::View*" : : identifier *) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "less<std" identifier < identifier) : : (comma_expression "pair<long_long_int,_unsigned_int>_>,_std" (binary_expression "pair<long_long_int" identifier < identifier) , (binary_expression "_unsigned_int>_>,_std" (binary_expression "_unsigned_int>_" identifier > identifier) > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (comma_expression "pair<long_long_int,_unsigned_int>,_gold" (binary_expression "pair<long_long_int" identifier < identifier) , (binary_expression "_unsigned_int>,_gold" identifier > (ERROR "," ,) identifier)) : : (binary_expression "File_read::View*>_>_" (binary_expression "File_read::View*>_" identifier (ERROR "::View*" : : identifier *) > identifier) > identifier) > : : (binary_expression "_M_emplace_unique<std" identifier < identifier) : : (binary_expression "pair<std" identifier < identifier) : : (comma_expression "pair<long_long_int,_unsigned_int>,_gold" (binary_expression "pair<long_long_int" identifier < identifier) , (binary_expression "_unsigned_int>,_gold" identifier > (ERROR "," ,) identifier)) : : (binary_expression "File_read::View*>_" identifier (ERROR "::View*" : : identifier *) > identifier) > ( (binary_expression "_Rb_tree<std" identifier < identifier) : : (comma_expression "pair<long_long_int,_unsigned_int>,_std" (binary_expression "pair<long_long_int" identifier < identifier) , (binary_expression "_unsigned_int>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "pair<const_std" identifier < identifier) : : (comma_expression "pair<long_long_int,_unsigned_int>,_gold" (binary_expression "pair<long_long_int" identifier < identifier) , (binary_expression "_unsigned_int>,_gold" identifier > (ERROR "," ,) identifier)) : : (comma_expression "File_read::View*>,_std::_Select1st<std::pair<const_std::pair<long_long_int,_unsigned_int>,_gold::File_read::View*>_>,_std" identifier (ERROR "::View*>,_std::_Select1st<std::pair<const_std::pair<long_long_int,_unsigned_int>,_gold::File_read::View*>_>" : : (comma_expression "View*>,_std" identifier (ERROR "*>" * >) , identifier) : : (binary_expression "_Select1st<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (comma_expression "pair<long_long_int,_unsigned_int>,_gold" (binary_expression "pair<long_long_int" identifier < identifier) , (binary_expression "_unsigned_int>,_gold" identifier > (ERROR "," ,) identifier)) : : (binary_expression "File_read::View*>_" identifier (ERROR "::View*" : : identifier *) > identifier) >) , identifier) : : (binary_expression "less<std" identifier < identifier) : : (comma_expression "pair<long_long_int,_unsigned_int>_>,_std" (binary_expression "pair<long_long_int" identifier < identifier) , (binary_expression "_unsigned_int>_>,_std" (binary_expression "_unsigned_int>_" identifier > identifier) > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (comma_expression "pair<long_long_int,_unsigned_int>,_gold" (binary_expression "pair<long_long_int" identifier < identifier) , (binary_expression "_unsigned_int>,_gold" identifier > (ERROR "," ,) identifier)) : : (comma_expression "File_read::View*>_>_>\n           *this,pair<std" (binary_expression "File_read::View*>_>_>\n           *this" (binary_expression "File_read::View*>_>_" (binary_expression "File_read::View*>_" identifier (ERROR "::View*" : : identifier *) > identifier) > identifier) > (pointer_expression "*this" * identifier)) , (binary_expression "pair<std" identifier < identifier)) : : (comma_expression "pair<long_long_int,_unsigned_int>,_gold" (binary_expression "pair<long_long_int" identifier < identifier) , (binary_expression "_unsigned_int>,_gold" identifier > (ERROR "," ,) identifier)) :) : (ERROR "File_read::View*> *__args_0)" (binary_expression "File_read::View*> *__args_0" identifier (ERROR "::View*" : : identifier *) > (pointer_expression "*__args_0" * identifier)) )) (compound_statement "{\n  undefined1 *puVar1;\n  int iVar2;\n  uint uVar3;\n  int iVar4;\n  undefined4 extraout_v1;\n  int iVar5;\n  undefined1 *puVar6;\n  bool bVar7;\n  int iVar8;\n  int *in_a2;\n  int iVar9;\n  uint uVar10;\n  undefined1 *puVar11;\n  undefined1 *puVar12;\n  pair<std::_Rb_tree_iterator<std::pair<const_std::pair<long_long_int,_unsigned_int>,_gold::File_read::View*>_>,_bool>\n  pVar13;\n  pair<std::_Rb_tree_iterator<std::pair<const_std::pair<long_long_int,_unsigned_int>,_gold::File_read::View*>_>,_bool>\n  pVar14;\n  \n  puVar12 = (undefined1 *)((int)&(__args_0->first).first + 4);\n  iVar2 = (*(code *)PTR_operator_new_004c13a8)(0x28);\n  iVar5 = *in_a2;\n  uVar3 = in_a2[1];\n  iVar9 = in_a2[2];\n  iVar8 = in_a2[3];\n  iVar4 = in_a2[4];\n  puVar11 = (undefined1 *)(__args_0->first).second;\n  *(int *)(iVar2 + 0x10) = iVar5;\n  *(uint *)(iVar2 + 0x14) = uVar3;\n  *(int *)(iVar2 + 0x18) = iVar9;\n  *(int *)(iVar2 + 0x1c) = iVar8;\n  *(int *)(iVar2 + 0x20) = iVar4;\n  puVar6 = puVar12;\n  if (puVar11 == (undefined1 *)0x0) {\nLAB_001784c0:\n    if (*(undefined1 **)&(__args_0->first).field_0xc != puVar6) {\n      puVar11 = (undefined1 *)(*(code *)PTR__Rb_tree_decrement_004c1a5c)(puVar6);\n      iVar5 = *(int *)(iVar2 + 0x10);\n      uVar3 = *(uint *)(iVar2 + 0x14);\n      iVar4 = *(int *)(puVar11 + 0x10);\n      uVar10 = *(uint *)(puVar11 + 0x14);\nLAB_001783f0:\n      if ((((iVar5 <= iVar4) && ((iVar5 != iVar4 || (uVar3 <= uVar10)))) &&\n          ((iVar5 != iVar4 ||\n           ((uVar3 != uVar10 || (*(uint *)(iVar2 + 0x18) <= *(uint *)(puVar11 + 0x18))))))) ||\n         (puVar11 = (undefined1 *)0x0, puVar6 == (undefined1 *)0x0)) {\n        (*(code *)PTR_operator_delete_004c12fc)(iVar2);\n        *(undefined1 **)&this->_M_impl = puVar11;\n        *(undefined1 *)&(this->_M_impl).super__Rb_tree_header._M_header._M_color = _S_red;\n        pVar13.first._M_node = (_Base_ptr)this;\n        pVar13._4_4_ = extraout_v1;\n        return pVar13;\n      }\n    }\n    bVar7 = true;\n    if (puVar12 != puVar6) {\n      iVar5 = *(int *)(iVar2 + 0x10);\n      iVar4 = *(int *)(puVar6 + 0x10);\n      if ((iVar5 < iVar4) ||\n         ((iVar4 == iVar5 && (*(uint *)(iVar2 + 0x14) < *(uint *)(puVar6 + 0x14))))) {\n        bVar7 = true;\n      }\n      else {\n        bVar7 = false;\n        if ((iVar5 == iVar4) && (*(uint *)(iVar2 + 0x14) == *(uint *)(puVar6 + 0x14))) {\n          bVar7 = *(uint *)(iVar2 + 0x18) < *(uint *)(puVar6 + 0x18);\n        }\n      }\n    }\n    (*(code *)PTR__Rb_tree_insert_and_rebalance_004c1a58)(bVar7,iVar2,puVar6,puVar12);\n    iVar4 = *(int *)&__args_0->field_0x14;\n    *(int *)&this->_M_impl = iVar2;\n    *(int *)&__args_0->field_0x14 = iVar4 + 1;\n    *(undefined1 *)&(this->_M_impl).super__Rb_tree_header._M_header._M_color = _S_black;\n    pVar14.first._M_node = (_Base_ptr)this;\n    pVar14._4_4_ = 1;\n    return pVar14;\n  }\n  iVar4 = *(int *)(puVar11 + 0x10);\n  uVar10 = *(uint *)(puVar11 + 0x14);\n  if (iVar5 < iVar4) goto LAB_001783dc;\n  do {\n    if ((iVar4 == iVar5) && (uVar3 < uVar10)) goto LAB_001783dc;\n    if ((iVar5 == iVar4) &&\n       ((uVar3 == uVar10 && (*(uint *)(iVar2 + 0x18) < *(uint *)(puVar11 + 0x18)))))\n    goto LAB_001783dc;\n    bVar7 = false;\n    puVar1 = *(undefined1 **)(puVar11 + 0xc);\n    puVar6 = puVar11;\n    while( true ) {\n      puVar11 = puVar1;\n      if (puVar11 == (undefined1 *)0x0) {\n        puVar11 = puVar6;\n        if (bVar7) goto LAB_001784c0;\n        goto LAB_001783f0;\n      }\n      iVar4 = *(int *)(puVar11 + 0x10);\n      uVar10 = *(uint *)(puVar11 + 0x14);\n      if (iVar4 <= iVar5) break;\nLAB_001783dc:\n      bVar7 = true;\n      puVar1 = *(undefined1 **)(puVar11 + 8);\n      puVar6 = puVar11;\n    }\n  } while( true );\n}" { (declaration "undefined1 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined4 extraout_v1;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined1 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "bool bVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int *in_a2;" primitive_type (pointer_declarator "*in_a2" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "undefined1 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined1 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (ERROR "pair<std::_Rb_tree_iterator<std::pair<const_std::pair<long_long_int,_unsigned_int>,_gold::" (binary_expression "pair<std" identifier < identifier) : : (binary_expression "_Rb_tree_iterator<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (comma_expression "pair<long_long_int,_unsigned_int>,_gold" (binary_expression "pair<long_long_int" identifier < identifier) , (binary_expression "_unsigned_int>,_gold" identifier > (ERROR "," ,) identifier)) : :) (expression_statement "File_read::View*>_>,_bool>\n  pVar13;" (binary_expression "File_read::View*>_>,_bool>\n  pVar13" (binary_expression "File_read::View*>_>,_bool" (binary_expression "File_read::View*>_" identifier (ERROR "::View*" : : identifier *) > identifier) > (ERROR "," ,) identifier) > identifier) ;) (ERROR "pair<std::_Rb_tree_iterator<std::pair<const_std::pair<long_long_int,_unsigned_int>,_gold::" (binary_expression "pair<std" identifier < identifier) : : (binary_expression "_Rb_tree_iterator<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (comma_expression "pair<long_long_int,_unsigned_int>,_gold" (binary_expression "pair<long_long_int" identifier < identifier) , (binary_expression "_unsigned_int>,_gold" identifier > (ERROR "," ,) identifier)) : :) (expression_statement "File_read::View*>_>,_bool>\n  pVar14;" (binary_expression "File_read::View*>_>,_bool>\n  pVar14" (binary_expression "File_read::View*>_>,_bool" (binary_expression "File_read::View*>_" identifier (ERROR "::View*" : : identifier *) > identifier) > (ERROR "," ,) identifier) > identifier) ;) (expression_statement "puVar12 = (undefined1 *)((int)&(__args_0->first).first + 4);" (assignment_expression "puVar12 = (undefined1 *)((int)&(__args_0->first).first + 4)" identifier = (cast_expression "(undefined1 *)((int)&(__args_0->first).first + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(__args_0->first).first + 4)" ( (binary_expression "(int)&(__args_0->first).first + 4" (cast_expression "(int)&(__args_0->first).first" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(__args_0->first).first" & (field_expression "(__args_0->first).first" (parenthesized_expression "(__args_0->first)" ( (field_expression "__args_0->first" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) ;) (expression_statement "iVar2 = (*(code *)PTR_operator_new_004c13a8)(0x28);" (assignment_expression "iVar2 = (*(code *)PTR_operator_new_004c13a8)(0x28)" identifier = (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x28)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x28)" ( number_literal )))) ;) (expression_statement "iVar5 = *in_a2;" (assignment_expression "iVar5 = *in_a2" identifier = (pointer_expression "*in_a2" * identifier)) ;) (expression_statement "uVar3 = in_a2[1];" (assignment_expression "uVar3 = in_a2[1]" identifier = (subscript_expression "in_a2[1]" identifier [ number_literal ])) ;) (expression_statement "iVar9 = in_a2[2];" (assignment_expression "iVar9 = in_a2[2]" identifier = (subscript_expression "in_a2[2]" identifier [ number_literal ])) ;) (expression_statement "iVar8 = in_a2[3];" (assignment_expression "iVar8 = in_a2[3]" identifier = (subscript_expression "in_a2[3]" identifier [ number_literal ])) ;) (expression_statement "iVar4 = in_a2[4];" (assignment_expression "iVar4 = in_a2[4]" identifier = (subscript_expression "in_a2[4]" identifier [ number_literal ])) ;) (expression_statement "puVar11 = (undefined1 *)(__args_0->first).second;" (assignment_expression "puVar11 = (undefined1 *)(__args_0->first).second" identifier = (cast_expression "(undefined1 *)(__args_0->first).second" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(__args_0->first).second" (parenthesized_expression "(__args_0->first)" ( (field_expression "__args_0->first" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "*(int *)(iVar2 + 0x10) = iVar5;" (assignment_expression "*(int *)(iVar2 + 0x10) = iVar5" (pointer_expression "*(int *)(iVar2 + 0x10)" * (cast_expression "(int *)(iVar2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x10)" ( (binary_expression "iVar2 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar2 + 0x14) = uVar3;" (assignment_expression "*(uint *)(iVar2 + 0x14) = uVar3" (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) )))) = identifier) ;) (expression_statement "*(int *)(iVar2 + 0x18) = iVar9;" (assignment_expression "*(int *)(iVar2 + 0x18) = iVar9" (pointer_expression "*(int *)(iVar2 + 0x18)" * (cast_expression "(int *)(iVar2 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x18)" ( (binary_expression "iVar2 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar2 + 0x1c) = iVar8;" (assignment_expression "*(int *)(iVar2 + 0x1c) = iVar8" (pointer_expression "*(int *)(iVar2 + 0x1c)" * (cast_expression "(int *)(iVar2 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1c)" ( (binary_expression "iVar2 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar2 + 0x20) = iVar4;" (assignment_expression "*(int *)(iVar2 + 0x20) = iVar4" (pointer_expression "*(int *)(iVar2 + 0x20)" * (cast_expression "(int *)(iVar2 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x20)" ( (binary_expression "iVar2 + 0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar6 = puVar12;" (assignment_expression "puVar6 = puVar12" identifier = identifier) ;) (if_statement "if (puVar11 == (undefined1 *)0x0) {\nLAB_001784c0:\n    if (*(undefined1 **)&(__args_0->first).field_0xc != puVar6) {\n      puVar11 = (undefined1 *)(*(code *)PTR__Rb_tree_decrement_004c1a5c)(puVar6);\n      iVar5 = *(int *)(iVar2 + 0x10);\n      uVar3 = *(uint *)(iVar2 + 0x14);\n      iVar4 = *(int *)(puVar11 + 0x10);\n      uVar10 = *(uint *)(puVar11 + 0x14);\nLAB_001783f0:\n      if ((((iVar5 <= iVar4) && ((iVar5 != iVar4 || (uVar3 <= uVar10)))) &&\n          ((iVar5 != iVar4 ||\n           ((uVar3 != uVar10 || (*(uint *)(iVar2 + 0x18) <= *(uint *)(puVar11 + 0x18))))))) ||\n         (puVar11 = (undefined1 *)0x0, puVar6 == (undefined1 *)0x0)) {\n        (*(code *)PTR_operator_delete_004c12fc)(iVar2);\n        *(undefined1 **)&this->_M_impl = puVar11;\n        *(undefined1 *)&(this->_M_impl).super__Rb_tree_header._M_header._M_color = _S_red;\n        pVar13.first._M_node = (_Base_ptr)this;\n        pVar13._4_4_ = extraout_v1;\n        return pVar13;\n      }\n    }\n    bVar7 = true;\n    if (puVar12 != puVar6) {\n      iVar5 = *(int *)(iVar2 + 0x10);\n      iVar4 = *(int *)(puVar6 + 0x10);\n      if ((iVar5 < iVar4) ||\n         ((iVar4 == iVar5 && (*(uint *)(iVar2 + 0x14) < *(uint *)(puVar6 + 0x14))))) {\n        bVar7 = true;\n      }\n      else {\n        bVar7 = false;\n        if ((iVar5 == iVar4) && (*(uint *)(iVar2 + 0x14) == *(uint *)(puVar6 + 0x14))) {\n          bVar7 = *(uint *)(iVar2 + 0x18) < *(uint *)(puVar6 + 0x18);\n        }\n      }\n    }\n    (*(code *)PTR__Rb_tree_insert_and_rebalance_004c1a58)(bVar7,iVar2,puVar6,puVar12);\n    iVar4 = *(int *)&__args_0->field_0x14;\n    *(int *)&this->_M_impl = iVar2;\n    *(int *)&__args_0->field_0x14 = iVar4 + 1;\n    *(undefined1 *)&(this->_M_impl).super__Rb_tree_header._M_header._M_color = _S_black;\n    pVar14.first._M_node = (_Base_ptr)this;\n    pVar14._4_4_ = 1;\n    return pVar14;\n  }" if (parenthesized_expression "(puVar11 == (undefined1 *)0x0)" ( (binary_expression "puVar11 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_001784c0:\n    if (*(undefined1 **)&(__args_0->first).field_0xc != puVar6) {\n      puVar11 = (undefined1 *)(*(code *)PTR__Rb_tree_decrement_004c1a5c)(puVar6);\n      iVar5 = *(int *)(iVar2 + 0x10);\n      uVar3 = *(uint *)(iVar2 + 0x14);\n      iVar4 = *(int *)(puVar11 + 0x10);\n      uVar10 = *(uint *)(puVar11 + 0x14);\nLAB_001783f0:\n      if ((((iVar5 <= iVar4) && ((iVar5 != iVar4 || (uVar3 <= uVar10)))) &&\n          ((iVar5 != iVar4 ||\n           ((uVar3 != uVar10 || (*(uint *)(iVar2 + 0x18) <= *(uint *)(puVar11 + 0x18))))))) ||\n         (puVar11 = (undefined1 *)0x0, puVar6 == (undefined1 *)0x0)) {\n        (*(code *)PTR_operator_delete_004c12fc)(iVar2);\n        *(undefined1 **)&this->_M_impl = puVar11;\n        *(undefined1 *)&(this->_M_impl).super__Rb_tree_header._M_header._M_color = _S_red;\n        pVar13.first._M_node = (_Base_ptr)this;\n        pVar13._4_4_ = extraout_v1;\n        return pVar13;\n      }\n    }\n    bVar7 = true;\n    if (puVar12 != puVar6) {\n      iVar5 = *(int *)(iVar2 + 0x10);\n      iVar4 = *(int *)(puVar6 + 0x10);\n      if ((iVar5 < iVar4) ||\n         ((iVar4 == iVar5 && (*(uint *)(iVar2 + 0x14) < *(uint *)(puVar6 + 0x14))))) {\n        bVar7 = true;\n      }\n      else {\n        bVar7 = false;\n        if ((iVar5 == iVar4) && (*(uint *)(iVar2 + 0x14) == *(uint *)(puVar6 + 0x14))) {\n          bVar7 = *(uint *)(iVar2 + 0x18) < *(uint *)(puVar6 + 0x18);\n        }\n      }\n    }\n    (*(code *)PTR__Rb_tree_insert_and_rebalance_004c1a58)(bVar7,iVar2,puVar6,puVar12);\n    iVar4 = *(int *)&__args_0->field_0x14;\n    *(int *)&this->_M_impl = iVar2;\n    *(int *)&__args_0->field_0x14 = iVar4 + 1;\n    *(undefined1 *)&(this->_M_impl).super__Rb_tree_header._M_header._M_color = _S_black;\n    pVar14.first._M_node = (_Base_ptr)this;\n    pVar14._4_4_ = 1;\n    return pVar14;\n  }" { (labeled_statement "LAB_001784c0:\n    if (*(undefined1 **)&(__args_0->first).field_0xc != puVar6) {\n      puVar11 = (undefined1 *)(*(code *)PTR__Rb_tree_decrement_004c1a5c)(puVar6);\n      iVar5 = *(int *)(iVar2 + 0x10);\n      uVar3 = *(uint *)(iVar2 + 0x14);\n      iVar4 = *(int *)(puVar11 + 0x10);\n      uVar10 = *(uint *)(puVar11 + 0x14);\nLAB_001783f0:\n      if ((((iVar5 <= iVar4) && ((iVar5 != iVar4 || (uVar3 <= uVar10)))) &&\n          ((iVar5 != iVar4 ||\n           ((uVar3 != uVar10 || (*(uint *)(iVar2 + 0x18) <= *(uint *)(puVar11 + 0x18))))))) ||\n         (puVar11 = (undefined1 *)0x0, puVar6 == (undefined1 *)0x0)) {\n        (*(code *)PTR_operator_delete_004c12fc)(iVar2);\n        *(undefined1 **)&this->_M_impl = puVar11;\n        *(undefined1 *)&(this->_M_impl).super__Rb_tree_header._M_header._M_color = _S_red;\n        pVar13.first._M_node = (_Base_ptr)this;\n        pVar13._4_4_ = extraout_v1;\n        return pVar13;\n      }\n    }" statement_identifier : (if_statement "if (*(undefined1 **)&(__args_0->first).field_0xc != puVar6) {\n      puVar11 = (undefined1 *)(*(code *)PTR__Rb_tree_decrement_004c1a5c)(puVar6);\n      iVar5 = *(int *)(iVar2 + 0x10);\n      uVar3 = *(uint *)(iVar2 + 0x14);\n      iVar4 = *(int *)(puVar11 + 0x10);\n      uVar10 = *(uint *)(puVar11 + 0x14);\nLAB_001783f0:\n      if ((((iVar5 <= iVar4) && ((iVar5 != iVar4 || (uVar3 <= uVar10)))) &&\n          ((iVar5 != iVar4 ||\n           ((uVar3 != uVar10 || (*(uint *)(iVar2 + 0x18) <= *(uint *)(puVar11 + 0x18))))))) ||\n         (puVar11 = (undefined1 *)0x0, puVar6 == (undefined1 *)0x0)) {\n        (*(code *)PTR_operator_delete_004c12fc)(iVar2);\n        *(undefined1 **)&this->_M_impl = puVar11;\n        *(undefined1 *)&(this->_M_impl).super__Rb_tree_header._M_header._M_color = _S_red;\n        pVar13.first._M_node = (_Base_ptr)this;\n        pVar13._4_4_ = extraout_v1;\n        return pVar13;\n      }\n    }" if (parenthesized_expression "(*(undefined1 **)&(__args_0->first).field_0xc != puVar6)" ( (binary_expression "*(undefined1 **)&(__args_0->first).field_0xc != puVar6" (pointer_expression "*(undefined1 **)&(__args_0->first).field_0xc" * (cast_expression "(undefined1 **)&(__args_0->first).field_0xc" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&(__args_0->first).field_0xc" & (field_expression "(__args_0->first).field_0xc" (parenthesized_expression "(__args_0->first)" ( (field_expression "__args_0->first" identifier -> field_identifier) )) . field_identifier)))) != identifier) )) (compound_statement "{\n      puVar11 = (undefined1 *)(*(code *)PTR__Rb_tree_decrement_004c1a5c)(puVar6);\n      iVar5 = *(int *)(iVar2 + 0x10);\n      uVar3 = *(uint *)(iVar2 + 0x14);\n      iVar4 = *(int *)(puVar11 + 0x10);\n      uVar10 = *(uint *)(puVar11 + 0x14);\nLAB_001783f0:\n      if ((((iVar5 <= iVar4) && ((iVar5 != iVar4 || (uVar3 <= uVar10)))) &&\n          ((iVar5 != iVar4 ||\n           ((uVar3 != uVar10 || (*(uint *)(iVar2 + 0x18) <= *(uint *)(puVar11 + 0x18))))))) ||\n         (puVar11 = (undefined1 *)0x0, puVar6 == (undefined1 *)0x0)) {\n        (*(code *)PTR_operator_delete_004c12fc)(iVar2);\n        *(undefined1 **)&this->_M_impl = puVar11;\n        *(undefined1 *)&(this->_M_impl).super__Rb_tree_header._M_header._M_color = _S_red;\n        pVar13.first._M_node = (_Base_ptr)this;\n        pVar13._4_4_ = extraout_v1;\n        return pVar13;\n      }\n    }" { (expression_statement "puVar11 = (undefined1 *)(*(code *)PTR__Rb_tree_decrement_004c1a5c)(puVar6);" (assignment_expression "puVar11 = (undefined1 *)(*(code *)PTR__Rb_tree_decrement_004c1a5c)(puVar6)" identifier = (cast_expression "(undefined1 *)(*(code *)PTR__Rb_tree_decrement_004c1a5c)(puVar6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR__Rb_tree_decrement_004c1a5c)(puVar6)" (parenthesized_expression "(*(code *)PTR__Rb_tree_decrement_004c1a5c)" ( (pointer_expression "*(code *)PTR__Rb_tree_decrement_004c1a5c" * (cast_expression "(code *)PTR__Rb_tree_decrement_004c1a5c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar6)" ( identifier ))))) ;) (expression_statement "iVar5 = *(int *)(iVar2 + 0x10);" (assignment_expression "iVar5 = *(int *)(iVar2 + 0x10)" identifier = (pointer_expression "*(int *)(iVar2 + 0x10)" * (cast_expression "(int *)(iVar2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x10)" ( (binary_expression "iVar2 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = *(uint *)(iVar2 + 0x14);" (assignment_expression "uVar3 = *(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 "iVar4 = *(int *)(puVar11 + 0x10);" (assignment_expression "iVar4 = *(int *)(puVar11 + 0x10)" identifier = (pointer_expression "*(int *)(puVar11 + 0x10)" * (cast_expression "(int *)(puVar11 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x10)" ( (binary_expression "puVar11 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = *(uint *)(puVar11 + 0x14);" (assignment_expression "uVar10 = *(uint *)(puVar11 + 0x14)" identifier = (pointer_expression "*(uint *)(puVar11 + 0x14)" * (cast_expression "(uint *)(puVar11 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x14)" ( (binary_expression "puVar11 + 0x14" identifier + number_literal) ))))) ;) (labeled_statement "LAB_001783f0:\n      if ((((iVar5 <= iVar4) && ((iVar5 != iVar4 || (uVar3 <= uVar10)))) &&\n          ((iVar5 != iVar4 ||\n           ((uVar3 != uVar10 || (*(uint *)(iVar2 + 0x18) <= *(uint *)(puVar11 + 0x18))))))) ||\n         (puVar11 = (undefined1 *)0x0, puVar6 == (undefined1 *)0x0)) {\n        (*(code *)PTR_operator_delete_004c12fc)(iVar2);\n        *(undefined1 **)&this->_M_impl = puVar11;\n        *(undefined1 *)&(this->_M_impl).super__Rb_tree_header._M_header._M_color = _S_red;\n        pVar13.first._M_node = (_Base_ptr)this;\n        pVar13._4_4_ = extraout_v1;\n        return pVar13;\n      }" statement_identifier : (if_statement "if ((((iVar5 <= iVar4) && ((iVar5 != iVar4 || (uVar3 <= uVar10)))) &&\n          ((iVar5 != iVar4 ||\n           ((uVar3 != uVar10 || (*(uint *)(iVar2 + 0x18) <= *(uint *)(puVar11 + 0x18))))))) ||\n         (puVar11 = (undefined1 *)0x0, puVar6 == (undefined1 *)0x0)) {\n        (*(code *)PTR_operator_delete_004c12fc)(iVar2);\n        *(undefined1 **)&this->_M_impl = puVar11;\n        *(undefined1 *)&(this->_M_impl).super__Rb_tree_header._M_header._M_color = _S_red;\n        pVar13.first._M_node = (_Base_ptr)this;\n        pVar13._4_4_ = extraout_v1;\n        return pVar13;\n      }" if (parenthesized_expression "((((iVar5 <= iVar4) && ((iVar5 != iVar4 || (uVar3 <= uVar10)))) &&\n          ((iVar5 != iVar4 ||\n           ((uVar3 != uVar10 || (*(uint *)(iVar2 + 0x18) <= *(uint *)(puVar11 + 0x18))))))) ||\n         (puVar11 = (undefined1 *)0x0, puVar6 == (undefined1 *)0x0))" ( (binary_expression "(((iVar5 <= iVar4) && ((iVar5 != iVar4 || (uVar3 <= uVar10)))) &&\n          ((iVar5 != iVar4 ||\n           ((uVar3 != uVar10 || (*(uint *)(iVar2 + 0x18) <= *(uint *)(puVar11 + 0x18))))))) ||\n         (puVar11 = (undefined1 *)0x0, puVar6 == (undefined1 *)0x0)" (parenthesized_expression "(((iVar5 <= iVar4) && ((iVar5 != iVar4 || (uVar3 <= uVar10)))) &&\n          ((iVar5 != iVar4 ||\n           ((uVar3 != uVar10 || (*(uint *)(iVar2 + 0x18) <= *(uint *)(puVar11 + 0x18)))))))" ( (binary_expression "((iVar5 <= iVar4) && ((iVar5 != iVar4 || (uVar3 <= uVar10)))) &&\n          ((iVar5 != iVar4 ||\n           ((uVar3 != uVar10 || (*(uint *)(iVar2 + 0x18) <= *(uint *)(puVar11 + 0x18))))))" (parenthesized_expression "((iVar5 <= iVar4) && ((iVar5 != iVar4 || (uVar3 <= uVar10))))" ( (binary_expression "(iVar5 <= iVar4) && ((iVar5 != iVar4 || (uVar3 <= uVar10)))" (parenthesized_expression "(iVar5 <= iVar4)" ( (binary_expression "iVar5 <= iVar4" identifier <= identifier) )) && (parenthesized_expression "((iVar5 != iVar4 || (uVar3 <= uVar10)))" ( (parenthesized_expression "(iVar5 != iVar4 || (uVar3 <= uVar10))" ( (binary_expression "iVar5 != iVar4 || (uVar3 <= uVar10)" (binary_expression "iVar5 != iVar4" identifier != identifier) || (parenthesized_expression "(uVar3 <= uVar10)" ( (binary_expression "uVar3 <= uVar10" identifier <= identifier) ))) )) ))) )) && (parenthesized_expression "((iVar5 != iVar4 ||\n           ((uVar3 != uVar10 || (*(uint *)(iVar2 + 0x18) <= *(uint *)(puVar11 + 0x18))))))" ( (parenthesized_expression "(iVar5 != iVar4 ||\n           ((uVar3 != uVar10 || (*(uint *)(iVar2 + 0x18) <= *(uint *)(puVar11 + 0x18)))))" ( (binary_expression "iVar5 != iVar4 ||\n           ((uVar3 != uVar10 || (*(uint *)(iVar2 + 0x18) <= *(uint *)(puVar11 + 0x18))))" (binary_expression "iVar5 != iVar4" identifier != identifier) || (parenthesized_expression "((uVar3 != uVar10 || (*(uint *)(iVar2 + 0x18) <= *(uint *)(puVar11 + 0x18))))" ( (parenthesized_expression "(uVar3 != uVar10 || (*(uint *)(iVar2 + 0x18) <= *(uint *)(puVar11 + 0x18)))" ( (binary_expression "uVar3 != uVar10 || (*(uint *)(iVar2 + 0x18) <= *(uint *)(puVar11 + 0x18))" (binary_expression "uVar3 != uVar10" identifier != identifier) || (parenthesized_expression "(*(uint *)(iVar2 + 0x18) <= *(uint *)(puVar11 + 0x18))" ( (binary_expression "*(uint *)(iVar2 + 0x18) <= *(uint *)(puVar11 + 0x18)" (pointer_expression "*(uint *)(iVar2 + 0x18)" * (cast_expression "(uint *)(iVar2 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x18)" ( (binary_expression "iVar2 + 0x18" identifier + number_literal) )))) <= (pointer_expression "*(uint *)(puVar11 + 0x18)" * (cast_expression "(uint *)(puVar11 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x18)" ( (binary_expression "puVar11 + 0x18" identifier + number_literal) ))))) ))) )) ))) )) ))) )) || (parenthesized_expression "(puVar11 = (undefined1 *)0x0, puVar6 == (undefined1 *)0x0)" ( (comma_expression "puVar11 = (undefined1 *)0x0, puVar6 == (undefined1 *)0x0" (assignment_expression "puVar11 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) , (binary_expression "puVar6 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n        (*(code *)PTR_operator_delete_004c12fc)(iVar2);\n        *(undefined1 **)&this->_M_impl = puVar11;\n        *(undefined1 *)&(this->_M_impl).super__Rb_tree_header._M_header._M_color = _S_red;\n        pVar13.first._M_node = (_Base_ptr)this;\n        pVar13._4_4_ = extraout_v1;\n        return pVar13;\n      }" { (expression_statement "(*(code *)PTR_operator_delete_004c12fc)(iVar2);" (call_expression "(*(code *)PTR_operator_delete_004c12fc)(iVar2)" (parenthesized_expression "(*(code *)PTR_operator_delete_004c12fc)" ( (pointer_expression "*(code *)PTR_operator_delete_004c12fc" * (cast_expression "(code *)PTR_operator_delete_004c12fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar2)" ( identifier ))) ;) (expression_statement "*(undefined1 **)&this->_M_impl = puVar11;" (assignment_expression "*(undefined1 **)&this->_M_impl = puVar11" (pointer_expression "*(undefined1 **)&this->_M_impl" * (cast_expression "(undefined1 **)&this->_M_impl" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&this->_M_impl" & (field_expression "this->_M_impl" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(undefined1 *)&(this->_M_impl).super__Rb_tree_header._M_header._M_color = _S_red;" (assignment_expression "*(undefined1 *)&(this->_M_impl).super__Rb_tree_header._M_header._M_color = _S_red" (pointer_expression "*(undefined1 *)&(this->_M_impl).super__Rb_tree_header._M_header._M_color" * (cast_expression "(undefined1 *)&(this->_M_impl).super__Rb_tree_header._M_header._M_color" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(this->_M_impl).super__Rb_tree_header._M_header._M_color" & (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 "pVar13.first._M_node = (_Base_ptr)this;" (assignment_expression "pVar13.first._M_node = (_Base_ptr)this" (field_expression "pVar13.first._M_node" (field_expression "pVar13.first" identifier . field_identifier) . field_identifier) = (cast_expression "(_Base_ptr)this" ( (type_descriptor "_Base_ptr" type_identifier) ) identifier)) ;) (expression_statement "pVar13._4_4_ = extraout_v1;" (assignment_expression "pVar13._4_4_ = extraout_v1" (field_expression "pVar13._4_4_" identifier . field_identifier) = identifier) ;) (return_statement "return pVar13;" return identifier ;) }))) }))) (expression_statement "bVar7 = true;" (assignment_expression "bVar7 = true" identifier = true) ;) (if_statement "if (puVar12 != puVar6) {\n      iVar5 = *(int *)(iVar2 + 0x10);\n      iVar4 = *(int *)(puVar6 + 0x10);\n      if ((iVar5 < iVar4) ||\n         ((iVar4 == iVar5 && (*(uint *)(iVar2 + 0x14) < *(uint *)(puVar6 + 0x14))))) {\n        bVar7 = true;\n      }\n      else {\n        bVar7 = false;\n        if ((iVar5 == iVar4) && (*(uint *)(iVar2 + 0x14) == *(uint *)(puVar6 + 0x14))) {\n          bVar7 = *(uint *)(iVar2 + 0x18) < *(uint *)(puVar6 + 0x18);\n        }\n      }\n    }" if (parenthesized_expression "(puVar12 != puVar6)" ( (binary_expression "puVar12 != puVar6" identifier != identifier) )) (compound_statement "{\n      iVar5 = *(int *)(iVar2 + 0x10);\n      iVar4 = *(int *)(puVar6 + 0x10);\n      if ((iVar5 < iVar4) ||\n         ((iVar4 == iVar5 && (*(uint *)(iVar2 + 0x14) < *(uint *)(puVar6 + 0x14))))) {\n        bVar7 = true;\n      }\n      else {\n        bVar7 = false;\n        if ((iVar5 == iVar4) && (*(uint *)(iVar2 + 0x14) == *(uint *)(puVar6 + 0x14))) {\n          bVar7 = *(uint *)(iVar2 + 0x18) < *(uint *)(puVar6 + 0x18);\n        }\n      }\n    }" { (expression_statement "iVar5 = *(int *)(iVar2 + 0x10);" (assignment_expression "iVar5 = *(int *)(iVar2 + 0x10)" identifier = (pointer_expression "*(int *)(iVar2 + 0x10)" * (cast_expression "(int *)(iVar2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x10)" ( (binary_expression "iVar2 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = *(int *)(puVar6 + 0x10);" (assignment_expression "iVar4 = *(int *)(puVar6 + 0x10)" identifier = (pointer_expression "*(int *)(puVar6 + 0x10)" * (cast_expression "(int *)(puVar6 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0x10)" ( (binary_expression "puVar6 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if ((iVar5 < iVar4) ||\n         ((iVar4 == iVar5 && (*(uint *)(iVar2 + 0x14) < *(uint *)(puVar6 + 0x14))))) {\n        bVar7 = true;\n      }\n      else {\n        bVar7 = false;\n        if ((iVar5 == iVar4) && (*(uint *)(iVar2 + 0x14) == *(uint *)(puVar6 + 0x14))) {\n          bVar7 = *(uint *)(iVar2 + 0x18) < *(uint *)(puVar6 + 0x18);\n        }\n      }" if (parenthesized_expression "((iVar5 < iVar4) ||\n         ((iVar4 == iVar5 && (*(uint *)(iVar2 + 0x14) < *(uint *)(puVar6 + 0x14)))))" ( (binary_expression "(iVar5 < iVar4) ||\n         ((iVar4 == iVar5 && (*(uint *)(iVar2 + 0x14) < *(uint *)(puVar6 + 0x14))))" (parenthesized_expression "(iVar5 < iVar4)" ( (binary_expression "iVar5 < iVar4" identifier < identifier) )) || (parenthesized_expression "((iVar4 == iVar5 && (*(uint *)(iVar2 + 0x14) < *(uint *)(puVar6 + 0x14))))" ( (parenthesized_expression "(iVar4 == iVar5 && (*(uint *)(iVar2 + 0x14) < *(uint *)(puVar6 + 0x14)))" ( (binary_expression "iVar4 == iVar5 && (*(uint *)(iVar2 + 0x14) < *(uint *)(puVar6 + 0x14))" (binary_expression "iVar4 == iVar5" identifier == identifier) && (parenthesized_expression "(*(uint *)(iVar2 + 0x14) < *(uint *)(puVar6 + 0x14))" ( (binary_expression "*(uint *)(iVar2 + 0x14) < *(uint *)(puVar6 + 0x14)" (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) )))) < (pointer_expression "*(uint *)(puVar6 + 0x14)" * (cast_expression "(uint *)(puVar6 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0x14)" ( (binary_expression "puVar6 + 0x14" identifier + number_literal) ))))) ))) )) ))) )) (compound_statement "{\n        bVar7 = true;\n      }" { (expression_statement "bVar7 = true;" (assignment_expression "bVar7 = true" identifier = true) ;) }) (else_clause "else {\n        bVar7 = false;\n        if ((iVar5 == iVar4) && (*(uint *)(iVar2 + 0x14) == *(uint *)(puVar6 + 0x14))) {\n          bVar7 = *(uint *)(iVar2 + 0x18) < *(uint *)(puVar6 + 0x18);\n        }\n      }" else (compound_statement "{\n        bVar7 = false;\n        if ((iVar5 == iVar4) && (*(uint *)(iVar2 + 0x14) == *(uint *)(puVar6 + 0x14))) {\n          bVar7 = *(uint *)(iVar2 + 0x18) < *(uint *)(puVar6 + 0x18);\n        }\n      }" { (expression_statement "bVar7 = false;" (assignment_expression "bVar7 = false" identifier = false) ;) (if_statement "if ((iVar5 == iVar4) && (*(uint *)(iVar2 + 0x14) == *(uint *)(puVar6 + 0x14))) {\n          bVar7 = *(uint *)(iVar2 + 0x18) < *(uint *)(puVar6 + 0x18);\n        }" if (parenthesized_expression "((iVar5 == iVar4) && (*(uint *)(iVar2 + 0x14) == *(uint *)(puVar6 + 0x14)))" ( (binary_expression "(iVar5 == iVar4) && (*(uint *)(iVar2 + 0x14) == *(uint *)(puVar6 + 0x14))" (parenthesized_expression "(iVar5 == iVar4)" ( (binary_expression "iVar5 == iVar4" identifier == identifier) )) && (parenthesized_expression "(*(uint *)(iVar2 + 0x14) == *(uint *)(puVar6 + 0x14))" ( (binary_expression "*(uint *)(iVar2 + 0x14) == *(uint *)(puVar6 + 0x14)" (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) )))) == (pointer_expression "*(uint *)(puVar6 + 0x14)" * (cast_expression "(uint *)(puVar6 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0x14)" ( (binary_expression "puVar6 + 0x14" identifier + number_literal) ))))) ))) )) (compound_statement "{\n          bVar7 = *(uint *)(iVar2 + 0x18) < *(uint *)(puVar6 + 0x18);\n        }" { (expression_statement "bVar7 = *(uint *)(iVar2 + 0x18) < *(uint *)(puVar6 + 0x18);" (assignment_expression "bVar7 = *(uint *)(iVar2 + 0x18) < *(uint *)(puVar6 + 0x18)" identifier = (binary_expression "*(uint *)(iVar2 + 0x18) < *(uint *)(puVar6 + 0x18)" (pointer_expression "*(uint *)(iVar2 + 0x18)" * (cast_expression "(uint *)(iVar2 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x18)" ( (binary_expression "iVar2 + 0x18" identifier + number_literal) )))) < (pointer_expression "*(uint *)(puVar6 + 0x18)" * (cast_expression "(uint *)(puVar6 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0x18)" ( (binary_expression "puVar6 + 0x18" identifier + number_literal) )))))) ;) })) }))) })) (expression_statement "(*(code *)PTR__Rb_tree_insert_and_rebalance_004c1a58)(bVar7,iVar2,puVar6,puVar12);" (call_expression "(*(code *)PTR__Rb_tree_insert_and_rebalance_004c1a58)(bVar7,iVar2,puVar6,puVar12)" (parenthesized_expression "(*(code *)PTR__Rb_tree_insert_and_rebalance_004c1a58)" ( (pointer_expression "*(code *)PTR__Rb_tree_insert_and_rebalance_004c1a58" * (cast_expression "(code *)PTR__Rb_tree_insert_and_rebalance_004c1a58" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(bVar7,iVar2,puVar6,puVar12)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar4 = *(int *)&__args_0->field_0x14;" (assignment_expression "iVar4 = *(int *)&__args_0->field_0x14" identifier = (pointer_expression "*(int *)&__args_0->field_0x14" * (cast_expression "(int *)&__args_0->field_0x14" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&__args_0->field_0x14" & (field_expression "__args_0->field_0x14" identifier -> field_identifier))))) ;) (expression_statement "*(int *)&this->_M_impl = iVar2;" (assignment_expression "*(int *)&this->_M_impl = iVar2" (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)))) = identifier) ;) (expression_statement "*(int *)&__args_0->field_0x14 = iVar4 + 1;" (assignment_expression "*(int *)&__args_0->field_0x14 = iVar4 + 1" (pointer_expression "*(int *)&__args_0->field_0x14" * (cast_expression "(int *)&__args_0->field_0x14" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&__args_0->field_0x14" & (field_expression "__args_0->field_0x14" identifier -> field_identifier)))) = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined1 *)&(this->_M_impl).super__Rb_tree_header._M_header._M_color = _S_black;" (assignment_expression "*(undefined1 *)&(this->_M_impl).super__Rb_tree_header._M_header._M_color = _S_black" (pointer_expression "*(undefined1 *)&(this->_M_impl).super__Rb_tree_header._M_header._M_color" * (cast_expression "(undefined1 *)&(this->_M_impl).super__Rb_tree_header._M_header._M_color" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(this->_M_impl).super__Rb_tree_header._M_header._M_color" & (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 "pVar14.first._M_node = (_Base_ptr)this;" (assignment_expression "pVar14.first._M_node = (_Base_ptr)this" (field_expression "pVar14.first._M_node" (field_expression "pVar14.first" identifier . field_identifier) . field_identifier) = (cast_expression "(_Base_ptr)this" ( (type_descriptor "_Base_ptr" type_identifier) ) identifier)) ;) (expression_statement "pVar14._4_4_ = 1;" (assignment_expression "pVar14._4_4_ = 1" (field_expression "pVar14._4_4_" identifier . field_identifier) = number_literal) ;) (return_statement "return pVar14;" return identifier ;) })) (expression_statement "iVar4 = *(int *)(puVar11 + 0x10);" (assignment_expression "iVar4 = *(int *)(puVar11 + 0x10)" identifier = (pointer_expression "*(int *)(puVar11 + 0x10)" * (cast_expression "(int *)(puVar11 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x10)" ( (binary_expression "puVar11 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = *(uint *)(puVar11 + 0x14);" (assignment_expression "uVar10 = *(uint *)(puVar11 + 0x14)" identifier = (pointer_expression "*(uint *)(puVar11 + 0x14)" * (cast_expression "(uint *)(puVar11 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x14)" ( (binary_expression "puVar11 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 < iVar4) goto LAB_001783dc;" if (parenthesized_expression "(iVar5 < iVar4)" ( (binary_expression "iVar5 < iVar4" identifier < identifier) )) (goto_statement "goto LAB_001783dc;" goto statement_identifier ;)) (do_statement "do {\n    if ((iVar4 == iVar5) && (uVar3 < uVar10)) goto LAB_001783dc;\n    if ((iVar5 == iVar4) &&\n       ((uVar3 == uVar10 && (*(uint *)(iVar2 + 0x18) < *(uint *)(puVar11 + 0x18)))))\n    goto LAB_001783dc;\n    bVar7 = false;\n    puVar1 = *(undefined1 **)(puVar11 + 0xc);\n    puVar6 = puVar11;\n    while( true ) {\n      puVar11 = puVar1;\n      if (puVar11 == (undefined1 *)0x0) {\n        puVar11 = puVar6;\n        if (bVar7) goto LAB_001784c0;\n        goto LAB_001783f0;\n      }\n      iVar4 = *(int *)(puVar11 + 0x10);\n      uVar10 = *(uint *)(puVar11 + 0x14);\n      if (iVar4 <= iVar5) break;\nLAB_001783dc:\n      bVar7 = true;\n      puVar1 = *(undefined1 **)(puVar11 + 8);\n      puVar6 = puVar11;\n    }\n  } while( true );" do (compound_statement "{\n    if ((iVar4 == iVar5) && (uVar3 < uVar10)) goto LAB_001783dc;\n    if ((iVar5 == iVar4) &&\n       ((uVar3 == uVar10 && (*(uint *)(iVar2 + 0x18) < *(uint *)(puVar11 + 0x18)))))\n    goto LAB_001783dc;\n    bVar7 = false;\n    puVar1 = *(undefined1 **)(puVar11 + 0xc);\n    puVar6 = puVar11;\n    while( true ) {\n      puVar11 = puVar1;\n      if (puVar11 == (undefined1 *)0x0) {\n        puVar11 = puVar6;\n        if (bVar7) goto LAB_001784c0;\n        goto LAB_001783f0;\n      }\n      iVar4 = *(int *)(puVar11 + 0x10);\n      uVar10 = *(uint *)(puVar11 + 0x14);\n      if (iVar4 <= iVar5) break;\nLAB_001783dc:\n      bVar7 = true;\n      puVar1 = *(undefined1 **)(puVar11 + 8);\n      puVar6 = puVar11;\n    }\n  }" { (if_statement "if ((iVar4 == iVar5) && (uVar3 < uVar10)) goto LAB_001783dc;" if (parenthesized_expression "((iVar4 == iVar5) && (uVar3 < uVar10))" ( (binary_expression "(iVar4 == iVar5) && (uVar3 < uVar10)" (parenthesized_expression "(iVar4 == iVar5)" ( (binary_expression "iVar4 == iVar5" identifier == identifier) )) && (parenthesized_expression "(uVar3 < uVar10)" ( (binary_expression "uVar3 < uVar10" identifier < identifier) ))) )) (goto_statement "goto LAB_001783dc;" goto statement_identifier ;)) (if_statement "if ((iVar5 == iVar4) &&\n       ((uVar3 == uVar10 && (*(uint *)(iVar2 + 0x18) < *(uint *)(puVar11 + 0x18)))))\n    goto LAB_001783dc;" if (parenthesized_expression "((iVar5 == iVar4) &&\n       ((uVar3 == uVar10 && (*(uint *)(iVar2 + 0x18) < *(uint *)(puVar11 + 0x18)))))" ( (binary_expression "(iVar5 == iVar4) &&\n       ((uVar3 == uVar10 && (*(uint *)(iVar2 + 0x18) < *(uint *)(puVar11 + 0x18))))" (parenthesized_expression "(iVar5 == iVar4)" ( (binary_expression "iVar5 == iVar4" identifier == identifier) )) && (parenthesized_expression "((uVar3 == uVar10 && (*(uint *)(iVar2 + 0x18) < *(uint *)(puVar11 + 0x18))))" ( (parenthesized_expression "(uVar3 == uVar10 && (*(uint *)(iVar2 + 0x18) < *(uint *)(puVar11 + 0x18)))" ( (binary_expression "uVar3 == uVar10 && (*(uint *)(iVar2 + 0x18) < *(uint *)(puVar11 + 0x18))" (binary_expression "uVar3 == uVar10" identifier == identifier) && (parenthesized_expression "(*(uint *)(iVar2 + 0x18) < *(uint *)(puVar11 + 0x18))" ( (binary_expression "*(uint *)(iVar2 + 0x18) < *(uint *)(puVar11 + 0x18)" (pointer_expression "*(uint *)(iVar2 + 0x18)" * (cast_expression "(uint *)(iVar2 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x18)" ( (binary_expression "iVar2 + 0x18" identifier + number_literal) )))) < (pointer_expression "*(uint *)(puVar11 + 0x18)" * (cast_expression "(uint *)(puVar11 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x18)" ( (binary_expression "puVar11 + 0x18" identifier + number_literal) ))))) ))) )) ))) )) (goto_statement "goto LAB_001783dc;" goto statement_identifier ;)) (expression_statement "bVar7 = false;" (assignment_expression "bVar7 = false" identifier = false) ;) (expression_statement "puVar1 = *(undefined1 **)(puVar11 + 0xc);" (assignment_expression "puVar1 = *(undefined1 **)(puVar11 + 0xc)" identifier = (pointer_expression "*(undefined1 **)(puVar11 + 0xc)" * (cast_expression "(undefined1 **)(puVar11 + 0xc)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0xc)" ( (binary_expression "puVar11 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "puVar6 = puVar11;" (assignment_expression "puVar6 = puVar11" identifier = identifier) ;) (while_statement "while( true ) {\n      puVar11 = puVar1;\n      if (puVar11 == (undefined1 *)0x0) {\n        puVar11 = puVar6;\n        if (bVar7) goto LAB_001784c0;\n        goto LAB_001783f0;\n      }\n      iVar4 = *(int *)(puVar11 + 0x10);\n      uVar10 = *(uint *)(puVar11 + 0x14);\n      if (iVar4 <= iVar5) break;\nLAB_001783dc:\n      bVar7 = true;\n      puVar1 = *(undefined1 **)(puVar11 + 8);\n      puVar6 = puVar11;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      puVar11 = puVar1;\n      if (puVar11 == (undefined1 *)0x0) {\n        puVar11 = puVar6;\n        if (bVar7) goto LAB_001784c0;\n        goto LAB_001783f0;\n      }\n      iVar4 = *(int *)(puVar11 + 0x10);\n      uVar10 = *(uint *)(puVar11 + 0x14);\n      if (iVar4 <= iVar5) break;\nLAB_001783dc:\n      bVar7 = true;\n      puVar1 = *(undefined1 **)(puVar11 + 8);\n      puVar6 = puVar11;\n    }" { (expression_statement "puVar11 = puVar1;" (assignment_expression "puVar11 = puVar1" identifier = identifier) ;) (if_statement "if (puVar11 == (undefined1 *)0x0) {\n        puVar11 = puVar6;\n        if (bVar7) goto LAB_001784c0;\n        goto LAB_001783f0;\n      }" if (parenthesized_expression "(puVar11 == (undefined1 *)0x0)" ( (binary_expression "puVar11 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        puVar11 = puVar6;\n        if (bVar7) goto LAB_001784c0;\n        goto LAB_001783f0;\n      }" { (expression_statement "puVar11 = puVar6;" (assignment_expression "puVar11 = puVar6" identifier = identifier) ;) (if_statement "if (bVar7) goto LAB_001784c0;" if (parenthesized_expression "(bVar7)" ( identifier )) (goto_statement "goto LAB_001784c0;" goto statement_identifier ;)) (goto_statement "goto LAB_001783f0;" goto statement_identifier ;) })) (expression_statement "iVar4 = *(int *)(puVar11 + 0x10);" (assignment_expression "iVar4 = *(int *)(puVar11 + 0x10)" identifier = (pointer_expression "*(int *)(puVar11 + 0x10)" * (cast_expression "(int *)(puVar11 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x10)" ( (binary_expression "puVar11 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = *(uint *)(puVar11 + 0x14);" (assignment_expression "uVar10 = *(uint *)(puVar11 + 0x14)" identifier = (pointer_expression "*(uint *)(puVar11 + 0x14)" * (cast_expression "(uint *)(puVar11 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x14)" ( (binary_expression "puVar11 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (iVar4 <= iVar5) break;" if (parenthesized_expression "(iVar4 <= iVar5)" ( (binary_expression "iVar4 <= iVar5" identifier <= identifier) )) (break_statement "break;" break ;)) (labeled_statement "LAB_001783dc:\n      bVar7 = true;" statement_identifier : (expression_statement "bVar7 = true;" (assignment_expression "bVar7 = true" identifier = true) ;)) (expression_statement "puVar1 = *(undefined1 **)(puVar11 + 8);" (assignment_expression "puVar1 = *(undefined1 **)(puVar11 + 8)" identifier = (pointer_expression "*(undefined1 **)(puVar11 + 8)" * (cast_expression "(undefined1 **)(puVar11 + 8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 8)" ( (binary_expression "puVar11 + 8" identifier + number_literal) ))))) ;) (expression_statement "puVar6 = puVar11;" (assignment_expression "puVar6 = puVar11" identifier = identifier) ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "pair * std::\n       _Rb_tree<std::pair<long_long,unsigned_int>,std::pair<std::pair<long_long,unsigned_int>const,gold::File_read::View*>,std::_Select1st<std::pair<std::pair<long_long,unsigned_int>const,gold::File_read::View*>>,std::less<std::pair<long_long,unsigned_int>>,std::allocator<std::pair<std::pair<long_long,unsigned_int>const,gold::File_read::View*>>>\n       ::_M_emplace_unique<std::pair<std::pair<long_long,unsigned_int>,gold::File_read::View*>>\n                 (pair *param_1)\n\n{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  bool bVar5;\n  int in_a1;\n  int iVar6;\n  int *in_a2;\n  int iVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  \n  iVar10 = in_a1 + 4;\n  iVar1 = (*(code *)PTR_operator_new_004c13a8)(0x28);\n  iVar4 = *in_a2;\n  uVar2 = in_a2[1];\n  iVar7 = in_a2[2];\n  iVar6 = in_a2[3];\n  iVar3 = in_a2[4];\n  iVar9 = *(int *)(in_a1 + 8);\n  *(int *)(iVar1 + 0x10) = iVar4;\n  *(uint *)(iVar1 + 0x14) = uVar2;\n  *(int *)(iVar1 + 0x18) = iVar7;\n  *(int *)(iVar1 + 0x1c) = iVar6;\n  *(int *)(iVar1 + 0x20) = iVar3;\n  iVar3 = iVar10;\n  if (iVar9 == 0) {\nLAB_001784c0:\n    if (*(int *)(in_a1 + 0xc) != iVar3) {\n      iVar9 = (*(code *)PTR__Rb_tree_decrement_004c1a5c)(iVar3);\n      iVar4 = *(int *)(iVar1 + 0x10);\n      uVar2 = *(uint *)(iVar1 + 0x14);\n      iVar6 = *(int *)(iVar9 + 0x10);\n      uVar8 = *(uint *)(iVar9 + 0x14);\nLAB_001783f0:\n      if ((((iVar4 <= iVar6) && ((iVar4 != iVar6 || (uVar2 <= uVar8)))) &&\n          ((iVar4 != iVar6 ||\n           ((uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18))))))) ||\n         (iVar9 = 0, iVar3 == 0)) {\n        (*(code *)PTR_operator_delete_004c12fc)(iVar1);\n        *(int *)param_1 = iVar9;\n        param_1[4] = (pair)0x0;\n        return param_1;\n      }\n    }\n    bVar5 = true;\n    if (iVar10 != iVar3) {\n      iVar4 = *(int *)(iVar1 + 0x10);\n      iVar9 = *(int *)(iVar3 + 0x10);\n      if ((iVar4 < iVar9) ||\n         ((iVar9 == iVar4 && (*(uint *)(iVar1 + 0x14) < *(uint *)(iVar3 + 0x14))))) {\n        bVar5 = true;\n      }\n      else {\n        bVar5 = false;\n        if ((iVar4 == iVar9) && (*(uint *)(iVar1 + 0x14) == *(uint *)(iVar3 + 0x14))) {\n          bVar5 = *(uint *)(iVar1 + 0x18) < *(uint *)(iVar3 + 0x18);\n        }\n      }\n    }\n    (*(code *)PTR__Rb_tree_insert_and_rebalance_004c1a58)(bVar5,iVar1,iVar3,iVar10);\n    iVar9 = *(int *)(in_a1 + 0x14);\n    *(int *)param_1 = iVar1;\n    *(int *)(in_a1 + 0x14) = iVar9 + 1;\n    param_1[4] = (pair)0x1;\n    return param_1;\n  }\n  iVar6 = *(int *)(iVar9 + 0x10);\n  uVar8 = *(uint *)(iVar9 + 0x14);\n  if (iVar4 < iVar6) goto LAB_001783dc;\n  do {\n    if ((iVar6 == iVar4) && (uVar2 < uVar8)) goto LAB_001783dc;\n    if ((iVar4 == iVar6) &&\n       ((uVar2 == uVar8 && (*(uint *)(iVar1 + 0x18) < *(uint *)(iVar9 + 0x18))))) goto LAB_001783dc;\n    bVar5 = false;\n    iVar7 = *(int *)(iVar9 + 0xc);\n    iVar3 = iVar9;\n    while( true ) {\n      iVar9 = iVar7;\n      if (iVar9 == 0) {\n        iVar9 = iVar3;\n        if (bVar5) goto LAB_001784c0;\n        goto LAB_001783f0;\n      }\n      iVar6 = *(int *)(iVar9 + 0x10);\n      uVar8 = *(uint *)(iVar9 + 0x14);\n      if (iVar6 <= iVar4) break;\nLAB_001783dc:\n      bVar5 = true;\n      iVar7 = *(int *)(iVar9 + 8);\n      iVar3 = iVar9;\n    }\n  } while( true );\n}\n\n" (ERROR "pair * std::\n       _Rb_tree<std::pair<long_long,unsigned_int>,std::pair<std::pair<long_long,unsigned_int>const," (binary_expression "pair * std" identifier * identifier) : : (binary_expression "_Rb_tree<std" identifier < identifier) : : (binary_expression "pair<long_long" identifier < identifier) , (binary_expression "unsigned_int>,std" identifier > (ERROR "," ,) identifier) : : (binary_expression "pair<std" identifier < identifier) : : (binary_expression "pair<long_long" identifier < identifier) , (binary_expression "unsigned_int>const" identifier > identifier) ,) (labeled_statement "gold::File_read::View*>,std::_Select1st<std::pair<std::pair<long_long,unsigned_int>const,gold::File_read::View*>>,std::less<std::pair<long_long,unsigned_int>>,std::allocator<std::pair<std::pair<long_long,unsigned_int>const,gold::File_read::View*>>>\n       ::_M_emplace_unique<std::pair<std::pair<long_long,unsigned_int>,gold::File_read::View*>>\n                 (pair *param_1)" statement_identifier : (ERROR ":" :) (labeled_statement "File_read::View*>,std::_Select1st<std::pair<std::pair<long_long,unsigned_int>const,gold::File_read::View*>>,std::less<std::pair<long_long,unsigned_int>>,std::allocator<std::pair<std::pair<long_long,unsigned_int>const,gold::File_read::View*>>>\n       ::_M_emplace_unique<std::pair<std::pair<long_long,unsigned_int>,gold::File_read::View*>>\n                 (pair *param_1)" statement_identifier (ERROR "::View*>,std::_Select1st<std::pair<std::pair<long_long,unsigned_int>const,gold:" : : (comma_expression "View*>,std" identifier (ERROR "*>" * >) , identifier) : : (binary_expression "_Select1st<std" identifier < identifier) : : (binary_expression "pair<std" identifier < identifier) : : (comma_expression "pair<long_long,unsigned_int>const,gold" (binary_expression "pair<long_long" identifier < identifier) , (comma_expression "unsigned_int>const,gold" (binary_expression "unsigned_int>const" identifier > identifier) , identifier)) :) : (labeled_statement "File_read::View*>>,std::less<std::pair<long_long,unsigned_int>>,std::allocator<std::pair<std::pair<long_long,unsigned_int>const,gold::File_read::View*>>>\n       ::_M_emplace_unique<std::pair<std::pair<long_long,unsigned_int>,gold::File_read::View*>>\n                 (pair *param_1)" statement_identifier (ERROR "::View*>>,std::less<std::pair<long_long,unsigned_int>>,std::allocator<std::pair<std::pair<long_long,unsigned_int>const,gold:" : : (comma_expression "View*>>,std" identifier (ERROR "*>>" * >>) , identifier) : : (binary_expression "less<std" identifier < identifier) : : (comma_expression "pair<long_long,unsigned_int>>,std" (binary_expression "pair<long_long" identifier < identifier) , (binary_expression "unsigned_int>>,std" identifier >> (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<std" identifier < identifier) : : (comma_expression "pair<long_long,unsigned_int>const,gold" (binary_expression "pair<long_long" identifier < identifier) , (comma_expression "unsigned_int>const,gold" (binary_expression "unsigned_int>const" identifier > identifier) , identifier)) :) : (labeled_statement "File_read::View*>>>\n       ::_M_emplace_unique<std::pair<std::pair<long_long,unsigned_int>,gold::File_read::View*>>\n                 (pair *param_1)" statement_identifier (ERROR "::View*>>>\n       ::_M_emplace_unique<std::pair<std::pair<long_long,unsigned_int>,gold:" : : identifier * >> > : : (binary_expression "_M_emplace_unique<std" identifier < identifier) : : (binary_expression "pair<std" identifier < identifier) : : (comma_expression "pair<long_long,unsigned_int>,gold" (binary_expression "pair<long_long" identifier < identifier) , (binary_expression "unsigned_int>,gold" identifier > (ERROR "," ,) identifier)) :) : (expression_statement "File_read::View*>>\n                 (pair *param_1)" (binary_expression "File_read::View*>>\n                 (pair *param_1)" identifier (ERROR "::View*" : : identifier *) >> (parenthesized_expression "(pair *param_1)" ( (binary_expression "pair *param_1" identifier * identifier) ))) ;))))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  bool bVar5;\n  int in_a1;\n  int iVar6;\n  int *in_a2;\n  int iVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  \n  iVar10 = in_a1 + 4;\n  iVar1 = (*(code *)PTR_operator_new_004c13a8)(0x28);\n  iVar4 = *in_a2;\n  uVar2 = in_a2[1];\n  iVar7 = in_a2[2];\n  iVar6 = in_a2[3];\n  iVar3 = in_a2[4];\n  iVar9 = *(int *)(in_a1 + 8);\n  *(int *)(iVar1 + 0x10) = iVar4;\n  *(uint *)(iVar1 + 0x14) = uVar2;\n  *(int *)(iVar1 + 0x18) = iVar7;\n  *(int *)(iVar1 + 0x1c) = iVar6;\n  *(int *)(iVar1 + 0x20) = iVar3;\n  iVar3 = iVar10;\n  if (iVar9 == 0) {\nLAB_001784c0:\n    if (*(int *)(in_a1 + 0xc) != iVar3) {\n      iVar9 = (*(code *)PTR__Rb_tree_decrement_004c1a5c)(iVar3);\n      iVar4 = *(int *)(iVar1 + 0x10);\n      uVar2 = *(uint *)(iVar1 + 0x14);\n      iVar6 = *(int *)(iVar9 + 0x10);\n      uVar8 = *(uint *)(iVar9 + 0x14);\nLAB_001783f0:\n      if ((((iVar4 <= iVar6) && ((iVar4 != iVar6 || (uVar2 <= uVar8)))) &&\n          ((iVar4 != iVar6 ||\n           ((uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18))))))) ||\n         (iVar9 = 0, iVar3 == 0)) {\n        (*(code *)PTR_operator_delete_004c12fc)(iVar1);\n        *(int *)param_1 = iVar9;\n        param_1[4] = (pair)0x0;\n        return param_1;\n      }\n    }\n    bVar5 = true;\n    if (iVar10 != iVar3) {\n      iVar4 = *(int *)(iVar1 + 0x10);\n      iVar9 = *(int *)(iVar3 + 0x10);\n      if ((iVar4 < iVar9) ||\n         ((iVar9 == iVar4 && (*(uint *)(iVar1 + 0x14) < *(uint *)(iVar3 + 0x14))))) {\n        bVar5 = true;\n      }\n      else {\n        bVar5 = false;\n        if ((iVar4 == iVar9) && (*(uint *)(iVar1 + 0x14) == *(uint *)(iVar3 + 0x14))) {\n          bVar5 = *(uint *)(iVar1 + 0x18) < *(uint *)(iVar3 + 0x18);\n        }\n      }\n    }\n    (*(code *)PTR__Rb_tree_insert_and_rebalance_004c1a58)(bVar5,iVar1,iVar3,iVar10);\n    iVar9 = *(int *)(in_a1 + 0x14);\n    *(int *)param_1 = iVar1;\n    *(int *)(in_a1 + 0x14) = iVar9 + 1;\n    param_1[4] = (pair)0x1;\n    return param_1;\n  }\n  iVar6 = *(int *)(iVar9 + 0x10);\n  uVar8 = *(uint *)(iVar9 + 0x14);\n  if (iVar4 < iVar6) goto LAB_001783dc;\n  do {\n    if ((iVar6 == iVar4) && (uVar2 < uVar8)) goto LAB_001783dc;\n    if ((iVar4 == iVar6) &&\n       ((uVar2 == uVar8 && (*(uint *)(iVar1 + 0x18) < *(uint *)(iVar9 + 0x18))))) goto LAB_001783dc;\n    bVar5 = false;\n    iVar7 = *(int *)(iVar9 + 0xc);\n    iVar3 = iVar9;\n    while( true ) {\n      iVar9 = iVar7;\n      if (iVar9 == 0) {\n        iVar9 = iVar3;\n        if (bVar5) goto LAB_001784c0;\n        goto LAB_001783f0;\n      }\n      iVar6 = *(int *)(iVar9 + 0x10);\n      uVar8 = *(uint *)(iVar9 + 0x14);\n      if (iVar6 <= iVar4) break;\nLAB_001783dc:\n      bVar5 = true;\n      iVar7 = *(int *)(iVar9 + 8);\n      iVar3 = iVar9;\n    }\n  } while( true );\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "bool bVar5;" primitive_type identifier ;) (declaration "int in_a1;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int *in_a2;" primitive_type (pointer_declarator "*in_a2" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (expression_statement "iVar10 = in_a1 + 4;" (assignment_expression "iVar10 = in_a1 + 4" identifier = (binary_expression "in_a1 + 4" identifier + number_literal)) ;) (expression_statement "iVar1 = (*(code *)PTR_operator_new_004c13a8)(0x28);" (assignment_expression "iVar1 = (*(code *)PTR_operator_new_004c13a8)(0x28)" identifier = (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x28)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x28)" ( number_literal )))) ;) (expression_statement "iVar4 = *in_a2;" (assignment_expression "iVar4 = *in_a2" identifier = (pointer_expression "*in_a2" * identifier)) ;) (expression_statement "uVar2 = in_a2[1];" (assignment_expression "uVar2 = in_a2[1]" identifier = (subscript_expression "in_a2[1]" identifier [ number_literal ])) ;) (expression_statement "iVar7 = in_a2[2];" (assignment_expression "iVar7 = in_a2[2]" identifier = (subscript_expression "in_a2[2]" identifier [ number_literal ])) ;) (expression_statement "iVar6 = in_a2[3];" (assignment_expression "iVar6 = in_a2[3]" identifier = (subscript_expression "in_a2[3]" identifier [ number_literal ])) ;) (expression_statement "iVar3 = in_a2[4];" (assignment_expression "iVar3 = in_a2[4]" identifier = (subscript_expression "in_a2[4]" identifier [ number_literal ])) ;) (expression_statement "iVar9 = *(int *)(in_a1 + 8);" (assignment_expression "iVar9 = *(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) ))))) ;) (expression_statement "*(int *)(iVar1 + 0x10) = iVar4;" (assignment_expression "*(int *)(iVar1 + 0x10) = iVar4" (pointer_expression "*(int *)(iVar1 + 0x10)" * (cast_expression "(int *)(iVar1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x10)" ( (binary_expression "iVar1 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar1 + 0x14) = uVar2;" (assignment_expression "*(uint *)(iVar1 + 0x14) = uVar2" (pointer_expression "*(uint *)(iVar1 + 0x14)" * (cast_expression "(uint *)(iVar1 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar1 + 0x18) = iVar7;" (assignment_expression "*(int *)(iVar1 + 0x18) = iVar7" (pointer_expression "*(int *)(iVar1 + 0x18)" * (cast_expression "(int *)(iVar1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x18)" ( (binary_expression "iVar1 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar1 + 0x1c) = iVar6;" (assignment_expression "*(int *)(iVar1 + 0x1c) = iVar6" (pointer_expression "*(int *)(iVar1 + 0x1c)" * (cast_expression "(int *)(iVar1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1c)" ( (binary_expression "iVar1 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar1 + 0x20) = iVar3;" (assignment_expression "*(int *)(iVar1 + 0x20) = iVar3" (pointer_expression "*(int *)(iVar1 + 0x20)" * (cast_expression "(int *)(iVar1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x20)" ( (binary_expression "iVar1 + 0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar3 = iVar10;" (assignment_expression "iVar3 = iVar10" identifier = identifier) ;) (if_statement "if (iVar9 == 0) {\nLAB_001784c0:\n    if (*(int *)(in_a1 + 0xc) != iVar3) {\n      iVar9 = (*(code *)PTR__Rb_tree_decrement_004c1a5c)(iVar3);\n      iVar4 = *(int *)(iVar1 + 0x10);\n      uVar2 = *(uint *)(iVar1 + 0x14);\n      iVar6 = *(int *)(iVar9 + 0x10);\n      uVar8 = *(uint *)(iVar9 + 0x14);\nLAB_001783f0:\n      if ((((iVar4 <= iVar6) && ((iVar4 != iVar6 || (uVar2 <= uVar8)))) &&\n          ((iVar4 != iVar6 ||\n           ((uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18))))))) ||\n         (iVar9 = 0, iVar3 == 0)) {\n        (*(code *)PTR_operator_delete_004c12fc)(iVar1);\n        *(int *)param_1 = iVar9;\n        param_1[4] = (pair)0x0;\n        return param_1;\n      }\n    }\n    bVar5 = true;\n    if (iVar10 != iVar3) {\n      iVar4 = *(int *)(iVar1 + 0x10);\n      iVar9 = *(int *)(iVar3 + 0x10);\n      if ((iVar4 < iVar9) ||\n         ((iVar9 == iVar4 && (*(uint *)(iVar1 + 0x14) < *(uint *)(iVar3 + 0x14))))) {\n        bVar5 = true;\n      }\n      else {\n        bVar5 = false;\n        if ((iVar4 == iVar9) && (*(uint *)(iVar1 + 0x14) == *(uint *)(iVar3 + 0x14))) {\n          bVar5 = *(uint *)(iVar1 + 0x18) < *(uint *)(iVar3 + 0x18);\n        }\n      }\n    }\n    (*(code *)PTR__Rb_tree_insert_and_rebalance_004c1a58)(bVar5,iVar1,iVar3,iVar10);\n    iVar9 = *(int *)(in_a1 + 0x14);\n    *(int *)param_1 = iVar1;\n    *(int *)(in_a1 + 0x14) = iVar9 + 1;\n    param_1[4] = (pair)0x1;\n    return param_1;\n  }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_001784c0:\n    if (*(int *)(in_a1 + 0xc) != iVar3) {\n      iVar9 = (*(code *)PTR__Rb_tree_decrement_004c1a5c)(iVar3);\n      iVar4 = *(int *)(iVar1 + 0x10);\n      uVar2 = *(uint *)(iVar1 + 0x14);\n      iVar6 = *(int *)(iVar9 + 0x10);\n      uVar8 = *(uint *)(iVar9 + 0x14);\nLAB_001783f0:\n      if ((((iVar4 <= iVar6) && ((iVar4 != iVar6 || (uVar2 <= uVar8)))) &&\n          ((iVar4 != iVar6 ||\n           ((uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18))))))) ||\n         (iVar9 = 0, iVar3 == 0)) {\n        (*(code *)PTR_operator_delete_004c12fc)(iVar1);\n        *(int *)param_1 = iVar9;\n        param_1[4] = (pair)0x0;\n        return param_1;\n      }\n    }\n    bVar5 = true;\n    if (iVar10 != iVar3) {\n      iVar4 = *(int *)(iVar1 + 0x10);\n      iVar9 = *(int *)(iVar3 + 0x10);\n      if ((iVar4 < iVar9) ||\n         ((iVar9 == iVar4 && (*(uint *)(iVar1 + 0x14) < *(uint *)(iVar3 + 0x14))))) {\n        bVar5 = true;\n      }\n      else {\n        bVar5 = false;\n        if ((iVar4 == iVar9) && (*(uint *)(iVar1 + 0x14) == *(uint *)(iVar3 + 0x14))) {\n          bVar5 = *(uint *)(iVar1 + 0x18) < *(uint *)(iVar3 + 0x18);\n        }\n      }\n    }\n    (*(code *)PTR__Rb_tree_insert_and_rebalance_004c1a58)(bVar5,iVar1,iVar3,iVar10);\n    iVar9 = *(int *)(in_a1 + 0x14);\n    *(int *)param_1 = iVar1;\n    *(int *)(in_a1 + 0x14) = iVar9 + 1;\n    param_1[4] = (pair)0x1;\n    return param_1;\n  }" { (labeled_statement "LAB_001784c0:\n    if (*(int *)(in_a1 + 0xc) != iVar3) {\n      iVar9 = (*(code *)PTR__Rb_tree_decrement_004c1a5c)(iVar3);\n      iVar4 = *(int *)(iVar1 + 0x10);\n      uVar2 = *(uint *)(iVar1 + 0x14);\n      iVar6 = *(int *)(iVar9 + 0x10);\n      uVar8 = *(uint *)(iVar9 + 0x14);\nLAB_001783f0:\n      if ((((iVar4 <= iVar6) && ((iVar4 != iVar6 || (uVar2 <= uVar8)))) &&\n          ((iVar4 != iVar6 ||\n           ((uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18))))))) ||\n         (iVar9 = 0, iVar3 == 0)) {\n        (*(code *)PTR_operator_delete_004c12fc)(iVar1);\n        *(int *)param_1 = iVar9;\n        param_1[4] = (pair)0x0;\n        return param_1;\n      }\n    }" statement_identifier : (if_statement "if (*(int *)(in_a1 + 0xc) != iVar3) {\n      iVar9 = (*(code *)PTR__Rb_tree_decrement_004c1a5c)(iVar3);\n      iVar4 = *(int *)(iVar1 + 0x10);\n      uVar2 = *(uint *)(iVar1 + 0x14);\n      iVar6 = *(int *)(iVar9 + 0x10);\n      uVar8 = *(uint *)(iVar9 + 0x14);\nLAB_001783f0:\n      if ((((iVar4 <= iVar6) && ((iVar4 != iVar6 || (uVar2 <= uVar8)))) &&\n          ((iVar4 != iVar6 ||\n           ((uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18))))))) ||\n         (iVar9 = 0, iVar3 == 0)) {\n        (*(code *)PTR_operator_delete_004c12fc)(iVar1);\n        *(int *)param_1 = iVar9;\n        param_1[4] = (pair)0x0;\n        return param_1;\n      }\n    }" if (parenthesized_expression "(*(int *)(in_a1 + 0xc) != iVar3)" ( (binary_expression "*(int *)(in_a1 + 0xc) != iVar3" (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      iVar9 = (*(code *)PTR__Rb_tree_decrement_004c1a5c)(iVar3);\n      iVar4 = *(int *)(iVar1 + 0x10);\n      uVar2 = *(uint *)(iVar1 + 0x14);\n      iVar6 = *(int *)(iVar9 + 0x10);\n      uVar8 = *(uint *)(iVar9 + 0x14);\nLAB_001783f0:\n      if ((((iVar4 <= iVar6) && ((iVar4 != iVar6 || (uVar2 <= uVar8)))) &&\n          ((iVar4 != iVar6 ||\n           ((uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18))))))) ||\n         (iVar9 = 0, iVar3 == 0)) {\n        (*(code *)PTR_operator_delete_004c12fc)(iVar1);\n        *(int *)param_1 = iVar9;\n        param_1[4] = (pair)0x0;\n        return param_1;\n      }\n    }" { (expression_statement "iVar9 = (*(code *)PTR__Rb_tree_decrement_004c1a5c)(iVar3);" (assignment_expression "iVar9 = (*(code *)PTR__Rb_tree_decrement_004c1a5c)(iVar3)" identifier = (call_expression "(*(code *)PTR__Rb_tree_decrement_004c1a5c)(iVar3)" (parenthesized_expression "(*(code *)PTR__Rb_tree_decrement_004c1a5c)" ( (pointer_expression "*(code *)PTR__Rb_tree_decrement_004c1a5c" * (cast_expression "(code *)PTR__Rb_tree_decrement_004c1a5c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar3)" ( identifier )))) ;) (expression_statement "iVar4 = *(int *)(iVar1 + 0x10);" (assignment_expression "iVar4 = *(int *)(iVar1 + 0x10)" identifier = (pointer_expression "*(int *)(iVar1 + 0x10)" * (cast_expression "(int *)(iVar1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x10)" ( (binary_expression "iVar1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = *(uint *)(iVar1 + 0x14);" (assignment_expression "uVar2 = *(uint *)(iVar1 + 0x14)" identifier = (pointer_expression "*(uint *)(iVar1 + 0x14)" * (cast_expression "(uint *)(iVar1 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = *(int *)(iVar9 + 0x10);" (assignment_expression "iVar6 = *(int *)(iVar9 + 0x10)" identifier = (pointer_expression "*(int *)(iVar9 + 0x10)" * (cast_expression "(int *)(iVar9 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x10)" ( (binary_expression "iVar9 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = *(uint *)(iVar9 + 0x14);" (assignment_expression "uVar8 = *(uint *)(iVar9 + 0x14)" identifier = (pointer_expression "*(uint *)(iVar9 + 0x14)" * (cast_expression "(uint *)(iVar9 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) ))))) ;) (labeled_statement "LAB_001783f0:\n      if ((((iVar4 <= iVar6) && ((iVar4 != iVar6 || (uVar2 <= uVar8)))) &&\n          ((iVar4 != iVar6 ||\n           ((uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18))))))) ||\n         (iVar9 = 0, iVar3 == 0)) {\n        (*(code *)PTR_operator_delete_004c12fc)(iVar1);\n        *(int *)param_1 = iVar9;\n        param_1[4] = (pair)0x0;\n        return param_1;\n      }" statement_identifier : (if_statement "if ((((iVar4 <= iVar6) && ((iVar4 != iVar6 || (uVar2 <= uVar8)))) &&\n          ((iVar4 != iVar6 ||\n           ((uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18))))))) ||\n         (iVar9 = 0, iVar3 == 0)) {\n        (*(code *)PTR_operator_delete_004c12fc)(iVar1);\n        *(int *)param_1 = iVar9;\n        param_1[4] = (pair)0x0;\n        return param_1;\n      }" if (parenthesized_expression "((((iVar4 <= iVar6) && ((iVar4 != iVar6 || (uVar2 <= uVar8)))) &&\n          ((iVar4 != iVar6 ||\n           ((uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18))))))) ||\n         (iVar9 = 0, iVar3 == 0))" ( (binary_expression "(((iVar4 <= iVar6) && ((iVar4 != iVar6 || (uVar2 <= uVar8)))) &&\n          ((iVar4 != iVar6 ||\n           ((uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18))))))) ||\n         (iVar9 = 0, iVar3 == 0)" (parenthesized_expression "(((iVar4 <= iVar6) && ((iVar4 != iVar6 || (uVar2 <= uVar8)))) &&\n          ((iVar4 != iVar6 ||\n           ((uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18)))))))" ( (binary_expression "((iVar4 <= iVar6) && ((iVar4 != iVar6 || (uVar2 <= uVar8)))) &&\n          ((iVar4 != iVar6 ||\n           ((uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18))))))" (parenthesized_expression "((iVar4 <= iVar6) && ((iVar4 != iVar6 || (uVar2 <= uVar8))))" ( (binary_expression "(iVar4 <= iVar6) && ((iVar4 != iVar6 || (uVar2 <= uVar8)))" (parenthesized_expression "(iVar4 <= iVar6)" ( (binary_expression "iVar4 <= iVar6" identifier <= identifier) )) && (parenthesized_expression "((iVar4 != iVar6 || (uVar2 <= uVar8)))" ( (parenthesized_expression "(iVar4 != iVar6 || (uVar2 <= uVar8))" ( (binary_expression "iVar4 != iVar6 || (uVar2 <= uVar8)" (binary_expression "iVar4 != iVar6" identifier != identifier) || (parenthesized_expression "(uVar2 <= uVar8)" ( (binary_expression "uVar2 <= uVar8" identifier <= identifier) ))) )) ))) )) && (parenthesized_expression "((iVar4 != iVar6 ||\n           ((uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18))))))" ( (parenthesized_expression "(iVar4 != iVar6 ||\n           ((uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18)))))" ( (binary_expression "iVar4 != iVar6 ||\n           ((uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18))))" (binary_expression "iVar4 != iVar6" identifier != identifier) || (parenthesized_expression "((uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18))))" ( (parenthesized_expression "(uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18)))" ( (binary_expression "uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18))" (binary_expression "uVar2 != uVar8" identifier != identifier) || (parenthesized_expression "(*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18))" ( (binary_expression "*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18)" (pointer_expression "*(uint *)(iVar1 + 0x18)" * (cast_expression "(uint *)(iVar1 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x18)" ( (binary_expression "iVar1 + 0x18" identifier + number_literal) )))) <= (pointer_expression "*(uint *)(iVar9 + 0x18)" * (cast_expression "(uint *)(iVar9 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x18)" ( (binary_expression "iVar9 + 0x18" identifier + number_literal) ))))) ))) )) ))) )) ))) )) || (parenthesized_expression "(iVar9 = 0, iVar3 == 0)" ( (comma_expression "iVar9 = 0, iVar3 == 0" (assignment_expression "iVar9 = 0" identifier = number_literal) , (binary_expression "iVar3 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n        (*(code *)PTR_operator_delete_004c12fc)(iVar1);\n        *(int *)param_1 = iVar9;\n        param_1[4] = (pair)0x0;\n        return param_1;\n      }" { (expression_statement "(*(code *)PTR_operator_delete_004c12fc)(iVar1);" (call_expression "(*(code *)PTR_operator_delete_004c12fc)(iVar1)" (parenthesized_expression "(*(code *)PTR_operator_delete_004c12fc)" ( (pointer_expression "*(code *)PTR_operator_delete_004c12fc" * (cast_expression "(code *)PTR_operator_delete_004c12fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar1)" ( identifier ))) ;) (expression_statement "*(int *)param_1 = iVar9;" (assignment_expression "*(int *)param_1 = iVar9" (pointer_expression "*(int *)param_1" * (cast_expression "(int *)param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "param_1[4] = (pair)0x0;" (assignment_expression "param_1[4] = (pair)0x0" (subscript_expression "param_1[4]" identifier [ number_literal ]) = (cast_expression "(pair)0x0" ( (type_descriptor "pair" type_identifier) ) number_literal)) ;) (return_statement "return param_1;" return identifier ;) }))) }))) (expression_statement "bVar5 = true;" (assignment_expression "bVar5 = true" identifier = true) ;) (if_statement "if (iVar10 != iVar3) {\n      iVar4 = *(int *)(iVar1 + 0x10);\n      iVar9 = *(int *)(iVar3 + 0x10);\n      if ((iVar4 < iVar9) ||\n         ((iVar9 == iVar4 && (*(uint *)(iVar1 + 0x14) < *(uint *)(iVar3 + 0x14))))) {\n        bVar5 = true;\n      }\n      else {\n        bVar5 = false;\n        if ((iVar4 == iVar9) && (*(uint *)(iVar1 + 0x14) == *(uint *)(iVar3 + 0x14))) {\n          bVar5 = *(uint *)(iVar1 + 0x18) < *(uint *)(iVar3 + 0x18);\n        }\n      }\n    }" if (parenthesized_expression "(iVar10 != iVar3)" ( (binary_expression "iVar10 != iVar3" identifier != identifier) )) (compound_statement "{\n      iVar4 = *(int *)(iVar1 + 0x10);\n      iVar9 = *(int *)(iVar3 + 0x10);\n      if ((iVar4 < iVar9) ||\n         ((iVar9 == iVar4 && (*(uint *)(iVar1 + 0x14) < *(uint *)(iVar3 + 0x14))))) {\n        bVar5 = true;\n      }\n      else {\n        bVar5 = false;\n        if ((iVar4 == iVar9) && (*(uint *)(iVar1 + 0x14) == *(uint *)(iVar3 + 0x14))) {\n          bVar5 = *(uint *)(iVar1 + 0x18) < *(uint *)(iVar3 + 0x18);\n        }\n      }\n    }" { (expression_statement "iVar4 = *(int *)(iVar1 + 0x10);" (assignment_expression "iVar4 = *(int *)(iVar1 + 0x10)" identifier = (pointer_expression "*(int *)(iVar1 + 0x10)" * (cast_expression "(int *)(iVar1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x10)" ( (binary_expression "iVar1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = *(int *)(iVar3 + 0x10);" (assignment_expression "iVar9 = *(int *)(iVar3 + 0x10)" identifier = (pointer_expression "*(int *)(iVar3 + 0x10)" * (cast_expression "(int *)(iVar3 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x10)" ( (binary_expression "iVar3 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if ((iVar4 < iVar9) ||\n         ((iVar9 == iVar4 && (*(uint *)(iVar1 + 0x14) < *(uint *)(iVar3 + 0x14))))) {\n        bVar5 = true;\n      }\n      else {\n        bVar5 = false;\n        if ((iVar4 == iVar9) && (*(uint *)(iVar1 + 0x14) == *(uint *)(iVar3 + 0x14))) {\n          bVar5 = *(uint *)(iVar1 + 0x18) < *(uint *)(iVar3 + 0x18);\n        }\n      }" if (parenthesized_expression "((iVar4 < iVar9) ||\n         ((iVar9 == iVar4 && (*(uint *)(iVar1 + 0x14) < *(uint *)(iVar3 + 0x14)))))" ( (binary_expression "(iVar4 < iVar9) ||\n         ((iVar9 == iVar4 && (*(uint *)(iVar1 + 0x14) < *(uint *)(iVar3 + 0x14))))" (parenthesized_expression "(iVar4 < iVar9)" ( (binary_expression "iVar4 < iVar9" identifier < identifier) )) || (parenthesized_expression "((iVar9 == iVar4 && (*(uint *)(iVar1 + 0x14) < *(uint *)(iVar3 + 0x14))))" ( (parenthesized_expression "(iVar9 == iVar4 && (*(uint *)(iVar1 + 0x14) < *(uint *)(iVar3 + 0x14)))" ( (binary_expression "iVar9 == iVar4 && (*(uint *)(iVar1 + 0x14) < *(uint *)(iVar3 + 0x14))" (binary_expression "iVar9 == iVar4" identifier == identifier) && (parenthesized_expression "(*(uint *)(iVar1 + 0x14) < *(uint *)(iVar3 + 0x14))" ( (binary_expression "*(uint *)(iVar1 + 0x14) < *(uint *)(iVar3 + 0x14)" (pointer_expression "*(uint *)(iVar1 + 0x14)" * (cast_expression "(uint *)(iVar1 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) )))) < (pointer_expression "*(uint *)(iVar3 + 0x14)" * (cast_expression "(uint *)(iVar3 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x14)" ( (binary_expression "iVar3 + 0x14" identifier + number_literal) ))))) ))) )) ))) )) (compound_statement "{\n        bVar5 = true;\n      }" { (expression_statement "bVar5 = true;" (assignment_expression "bVar5 = true" identifier = true) ;) }) (else_clause "else {\n        bVar5 = false;\n        if ((iVar4 == iVar9) && (*(uint *)(iVar1 + 0x14) == *(uint *)(iVar3 + 0x14))) {\n          bVar5 = *(uint *)(iVar1 + 0x18) < *(uint *)(iVar3 + 0x18);\n        }\n      }" else (compound_statement "{\n        bVar5 = false;\n        if ((iVar4 == iVar9) && (*(uint *)(iVar1 + 0x14) == *(uint *)(iVar3 + 0x14))) {\n          bVar5 = *(uint *)(iVar1 + 0x18) < *(uint *)(iVar3 + 0x18);\n        }\n      }" { (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" identifier = false) ;) (if_statement "if ((iVar4 == iVar9) && (*(uint *)(iVar1 + 0x14) == *(uint *)(iVar3 + 0x14))) {\n          bVar5 = *(uint *)(iVar1 + 0x18) < *(uint *)(iVar3 + 0x18);\n        }" if (parenthesized_expression "((iVar4 == iVar9) && (*(uint *)(iVar1 + 0x14) == *(uint *)(iVar3 + 0x14)))" ( (binary_expression "(iVar4 == iVar9) && (*(uint *)(iVar1 + 0x14) == *(uint *)(iVar3 + 0x14))" (parenthesized_expression "(iVar4 == iVar9)" ( (binary_expression "iVar4 == iVar9" identifier == identifier) )) && (parenthesized_expression "(*(uint *)(iVar1 + 0x14) == *(uint *)(iVar3 + 0x14))" ( (binary_expression "*(uint *)(iVar1 + 0x14) == *(uint *)(iVar3 + 0x14)" (pointer_expression "*(uint *)(iVar1 + 0x14)" * (cast_expression "(uint *)(iVar1 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) )))) == (pointer_expression "*(uint *)(iVar3 + 0x14)" * (cast_expression "(uint *)(iVar3 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x14)" ( (binary_expression "iVar3 + 0x14" identifier + number_literal) ))))) ))) )) (compound_statement "{\n          bVar5 = *(uint *)(iVar1 + 0x18) < *(uint *)(iVar3 + 0x18);\n        }" { (expression_statement "bVar5 = *(uint *)(iVar1 + 0x18) < *(uint *)(iVar3 + 0x18);" (assignment_expression "bVar5 = *(uint *)(iVar1 + 0x18) < *(uint *)(iVar3 + 0x18)" identifier = (binary_expression "*(uint *)(iVar1 + 0x18) < *(uint *)(iVar3 + 0x18)" (pointer_expression "*(uint *)(iVar1 + 0x18)" * (cast_expression "(uint *)(iVar1 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x18)" ( (binary_expression "iVar1 + 0x18" identifier + number_literal) )))) < (pointer_expression "*(uint *)(iVar3 + 0x18)" * (cast_expression "(uint *)(iVar3 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x18)" ( (binary_expression "iVar3 + 0x18" identifier + number_literal) )))))) ;) })) }))) })) (expression_statement "(*(code *)PTR__Rb_tree_insert_and_rebalance_004c1a58)(bVar5,iVar1,iVar3,iVar10);" (call_expression "(*(code *)PTR__Rb_tree_insert_and_rebalance_004c1a58)(bVar5,iVar1,iVar3,iVar10)" (parenthesized_expression "(*(code *)PTR__Rb_tree_insert_and_rebalance_004c1a58)" ( (pointer_expression "*(code *)PTR__Rb_tree_insert_and_rebalance_004c1a58" * (cast_expression "(code *)PTR__Rb_tree_insert_and_rebalance_004c1a58" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(bVar5,iVar1,iVar3,iVar10)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar9 = *(int *)(in_a1 + 0x14);" (assignment_expression "iVar9 = *(int *)(in_a1 + 0x14)" identifier = (pointer_expression "*(int *)(in_a1 + 0x14)" * (cast_expression "(int *)(in_a1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_a1 + 0x14)" ( (binary_expression "in_a1 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*(int *)param_1 = iVar1;" (assignment_expression "*(int *)param_1 = iVar1" (pointer_expression "*(int *)param_1" * (cast_expression "(int *)param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(int *)(in_a1 + 0x14) = iVar9 + 1;" (assignment_expression "*(int *)(in_a1 + 0x14) = iVar9 + 1" (pointer_expression "*(int *)(in_a1 + 0x14)" * (cast_expression "(int *)(in_a1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_a1 + 0x14)" ( (binary_expression "in_a1 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) (expression_statement "param_1[4] = (pair)0x1;" (assignment_expression "param_1[4] = (pair)0x1" (subscript_expression "param_1[4]" identifier [ number_literal ]) = (cast_expression "(pair)0x1" ( (type_descriptor "pair" type_identifier) ) number_literal)) ;) (return_statement "return param_1;" return identifier ;) })) (expression_statement "iVar6 = *(int *)(iVar9 + 0x10);" (assignment_expression "iVar6 = *(int *)(iVar9 + 0x10)" identifier = (pointer_expression "*(int *)(iVar9 + 0x10)" * (cast_expression "(int *)(iVar9 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x10)" ( (binary_expression "iVar9 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = *(uint *)(iVar9 + 0x14);" (assignment_expression "uVar8 = *(uint *)(iVar9 + 0x14)" identifier = (pointer_expression "*(uint *)(iVar9 + 0x14)" * (cast_expression "(uint *)(iVar9 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (iVar4 < iVar6) goto LAB_001783dc;" if (parenthesized_expression "(iVar4 < iVar6)" ( (binary_expression "iVar4 < iVar6" identifier < identifier) )) (goto_statement "goto LAB_001783dc;" goto statement_identifier ;)) (do_statement "do {\n    if ((iVar6 == iVar4) && (uVar2 < uVar8)) goto LAB_001783dc;\n    if ((iVar4 == iVar6) &&\n       ((uVar2 == uVar8 && (*(uint *)(iVar1 + 0x18) < *(uint *)(iVar9 + 0x18))))) goto LAB_001783dc;\n    bVar5 = false;\n    iVar7 = *(int *)(iVar9 + 0xc);\n    iVar3 = iVar9;\n    while( true ) {\n      iVar9 = iVar7;\n      if (iVar9 == 0) {\n        iVar9 = iVar3;\n        if (bVar5) goto LAB_001784c0;\n        goto LAB_001783f0;\n      }\n      iVar6 = *(int *)(iVar9 + 0x10);\n      uVar8 = *(uint *)(iVar9 + 0x14);\n      if (iVar6 <= iVar4) break;\nLAB_001783dc:\n      bVar5 = true;\n      iVar7 = *(int *)(iVar9 + 8);\n      iVar3 = iVar9;\n    }\n  } while( true );" do (compound_statement "{\n    if ((iVar6 == iVar4) && (uVar2 < uVar8)) goto LAB_001783dc;\n    if ((iVar4 == iVar6) &&\n       ((uVar2 == uVar8 && (*(uint *)(iVar1 + 0x18) < *(uint *)(iVar9 + 0x18))))) goto LAB_001783dc;\n    bVar5 = false;\n    iVar7 = *(int *)(iVar9 + 0xc);\n    iVar3 = iVar9;\n    while( true ) {\n      iVar9 = iVar7;\n      if (iVar9 == 0) {\n        iVar9 = iVar3;\n        if (bVar5) goto LAB_001784c0;\n        goto LAB_001783f0;\n      }\n      iVar6 = *(int *)(iVar9 + 0x10);\n      uVar8 = *(uint *)(iVar9 + 0x14);\n      if (iVar6 <= iVar4) break;\nLAB_001783dc:\n      bVar5 = true;\n      iVar7 = *(int *)(iVar9 + 8);\n      iVar3 = iVar9;\n    }\n  }" { (if_statement "if ((iVar6 == iVar4) && (uVar2 < uVar8)) goto LAB_001783dc;" if (parenthesized_expression "((iVar6 == iVar4) && (uVar2 < uVar8))" ( (binary_expression "(iVar6 == iVar4) && (uVar2 < uVar8)" (parenthesized_expression "(iVar6 == iVar4)" ( (binary_expression "iVar6 == iVar4" identifier == identifier) )) && (parenthesized_expression "(uVar2 < uVar8)" ( (binary_expression "uVar2 < uVar8" identifier < identifier) ))) )) (goto_statement "goto LAB_001783dc;" goto statement_identifier ;)) (if_statement "if ((iVar4 == iVar6) &&\n       ((uVar2 == uVar8 && (*(uint *)(iVar1 + 0x18) < *(uint *)(iVar9 + 0x18))))) goto LAB_001783dc;" if (parenthesized_expression "((iVar4 == iVar6) &&\n       ((uVar2 == uVar8 && (*(uint *)(iVar1 + 0x18) < *(uint *)(iVar9 + 0x18)))))" ( (binary_expression "(iVar4 == iVar6) &&\n       ((uVar2 == uVar8 && (*(uint *)(iVar1 + 0x18) < *(uint *)(iVar9 + 0x18))))" (parenthesized_expression "(iVar4 == iVar6)" ( (binary_expression "iVar4 == iVar6" identifier == identifier) )) && (parenthesized_expression "((uVar2 == uVar8 && (*(uint *)(iVar1 + 0x18) < *(uint *)(iVar9 + 0x18))))" ( (parenthesized_expression "(uVar2 == uVar8 && (*(uint *)(iVar1 + 0x18) < *(uint *)(iVar9 + 0x18)))" ( (binary_expression "uVar2 == uVar8 && (*(uint *)(iVar1 + 0x18) < *(uint *)(iVar9 + 0x18))" (binary_expression "uVar2 == uVar8" identifier == identifier) && (parenthesized_expression "(*(uint *)(iVar1 + 0x18) < *(uint *)(iVar9 + 0x18))" ( (binary_expression "*(uint *)(iVar1 + 0x18) < *(uint *)(iVar9 + 0x18)" (pointer_expression "*(uint *)(iVar1 + 0x18)" * (cast_expression "(uint *)(iVar1 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x18)" ( (binary_expression "iVar1 + 0x18" identifier + number_literal) )))) < (pointer_expression "*(uint *)(iVar9 + 0x18)" * (cast_expression "(uint *)(iVar9 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x18)" ( (binary_expression "iVar9 + 0x18" identifier + number_literal) ))))) ))) )) ))) )) (goto_statement "goto LAB_001783dc;" goto statement_identifier ;)) (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" identifier = false) ;) (expression_statement "iVar7 = *(int *)(iVar9 + 0xc);" (assignment_expression "iVar7 = *(int *)(iVar9 + 0xc)" identifier = (pointer_expression "*(int *)(iVar9 + 0xc)" * (cast_expression "(int *)(iVar9 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xc)" ( (binary_expression "iVar9 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = iVar9;" (assignment_expression "iVar3 = iVar9" identifier = identifier) ;) (while_statement "while( true ) {\n      iVar9 = iVar7;\n      if (iVar9 == 0) {\n        iVar9 = iVar3;\n        if (bVar5) goto LAB_001784c0;\n        goto LAB_001783f0;\n      }\n      iVar6 = *(int *)(iVar9 + 0x10);\n      uVar8 = *(uint *)(iVar9 + 0x14);\n      if (iVar6 <= iVar4) break;\nLAB_001783dc:\n      bVar5 = true;\n      iVar7 = *(int *)(iVar9 + 8);\n      iVar3 = iVar9;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      iVar9 = iVar7;\n      if (iVar9 == 0) {\n        iVar9 = iVar3;\n        if (bVar5) goto LAB_001784c0;\n        goto LAB_001783f0;\n      }\n      iVar6 = *(int *)(iVar9 + 0x10);\n      uVar8 = *(uint *)(iVar9 + 0x14);\n      if (iVar6 <= iVar4) break;\nLAB_001783dc:\n      bVar5 = true;\n      iVar7 = *(int *)(iVar9 + 8);\n      iVar3 = iVar9;\n    }" { (expression_statement "iVar9 = iVar7;" (assignment_expression "iVar9 = iVar7" identifier = identifier) ;) (if_statement "if (iVar9 == 0) {\n        iVar9 = iVar3;\n        if (bVar5) goto LAB_001784c0;\n        goto LAB_001783f0;\n      }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar9 = iVar3;\n        if (bVar5) goto LAB_001784c0;\n        goto LAB_001783f0;\n      }" { (expression_statement "iVar9 = iVar3;" (assignment_expression "iVar9 = iVar3" identifier = identifier) ;) (if_statement "if (bVar5) goto LAB_001784c0;" if (parenthesized_expression "(bVar5)" ( identifier )) (goto_statement "goto LAB_001784c0;" goto statement_identifier ;)) (goto_statement "goto LAB_001783f0;" goto statement_identifier ;) })) (expression_statement "iVar6 = *(int *)(iVar9 + 0x10);" (assignment_expression "iVar6 = *(int *)(iVar9 + 0x10)" identifier = (pointer_expression "*(int *)(iVar9 + 0x10)" * (cast_expression "(int *)(iVar9 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x10)" ( (binary_expression "iVar9 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = *(uint *)(iVar9 + 0x14);" (assignment_expression "uVar8 = *(uint *)(iVar9 + 0x14)" identifier = (pointer_expression "*(uint *)(iVar9 + 0x14)" * (cast_expression "(uint *)(iVar9 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (iVar6 <= iVar4) break;" if (parenthesized_expression "(iVar6 <= iVar4)" ( (binary_expression "iVar6 <= iVar4" identifier <= identifier) )) (break_statement "break;" break ;)) (labeled_statement "LAB_001783dc:\n      bVar5 = true;" statement_identifier : (expression_statement "bVar5 = true;" (assignment_expression "bVar5 = true" identifier = true) ;)) (expression_statement "iVar7 = *(int *)(iVar9 + 8);" (assignment_expression "iVar7 = *(int *)(iVar9 + 8)" identifier = (pointer_expression "*(int *)(iVar9 + 8)" * (cast_expression "(int *)(iVar9 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 8)" ( (binary_expression "iVar9 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = iVar9;" (assignment_expression "iVar3 = iVar9" identifier = identifier) ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) }))
(translation_unit (ERROR (binary_expression IDENT * IDENT) : : (binary_expression IDENT < IDENT) : : (binary_expression IDENT < IDENT) , (binary_expression IDENT > (ERROR ,) IDENT) : : (binary_expression IDENT < IDENT) : : (binary_expression IDENT < IDENT) , (binary_expression IDENT > IDENT) ,) (labeled_statement statement_identifier : (ERROR :) (labeled_statement statement_identifier (ERROR : : (comma_expression IDENT (ERROR * >) , IDENT) : : (binary_expression IDENT < IDENT) : : (binary_expression IDENT < IDENT) : : (comma_expression (binary_expression IDENT < IDENT) , (comma_expression (binary_expression IDENT > IDENT) , IDENT)) :) : (labeled_statement statement_identifier (ERROR : : (comma_expression IDENT (ERROR * >>) , IDENT) : : (binary_expression IDENT < IDENT) : : (comma_expression (binary_expression IDENT < IDENT) , (binary_expression IDENT >> (ERROR ,) IDENT)) : : (binary_expression IDENT < IDENT) : : (binary_expression IDENT < IDENT) : : (comma_expression (binary_expression IDENT < IDENT) , (comma_expression (binary_expression IDENT > IDENT) , IDENT)) :) : (labeled_statement statement_identifier (ERROR : : IDENT * >> > : : (binary_expression IDENT < IDENT) : : (binary_expression IDENT < IDENT) : : (comma_expression (binary_expression IDENT < IDENT) , (binary_expression IDENT > (ERROR ,) IDENT)) :) : (expression_statement (binary_expression IDENT (ERROR : : IDENT *) >> (parenthesized_expression ( (binary_expression IDENT * IDENT) ))) ;))))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (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 IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( 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 = (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != IDENT) || (parenthesized_expression ( (binary_expression IDENT <= IDENT) ))) )) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != IDENT) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != IDENT) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) ))) )) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) LIT)) ;) (return_statement return IDENT ;) }))) }))) (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == IDENT) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == IDENT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) })) }))) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , 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 (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) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) LIT)) ;) (return_statement return 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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (goto_statement goto statement_identifier ;)) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == IDENT) )) && (parenthesized_expression ( (binary_expression IDENT < IDENT) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == IDENT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == IDENT) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) ))) )) (goto_statement goto 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_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 ( 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) ))))) ;) (if_statement if (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 "pair * std::\n       _Rb_tree<std::pair<long_long,unsigned_int>,std::pair<std::pair<long_long,unsigned_int>const," (binary_expression "pair * std" (identifier "pair") (* "*") (identifier "std")) (: ":") (: ":") (binary_expression "_Rb_tree<std" (identifier "_Rb_tree") (< "<") (identifier "std")) (: ":") (: ":") (binary_expression "pair<long_long" (identifier "pair") (< "<") (identifier "long_long")) (, ",") (binary_expression "unsigned_int>,std" (identifier "unsigned_int") (> ">") (ERROR "," (, ",")) (identifier "std")) (: ":") (: ":") (binary_expression "pair<std" (identifier "pair") (< "<") (identifier "std")) (: ":") (: ":") (binary_expression "pair<long_long" (identifier "pair") (< "<") (identifier "long_long")) (, ",") (binary_expression "unsigned_int>const" (identifier "unsigned_int") (> ">") (identifier "const")) (, ",")) (labeled_statement "gold::File_read::View*>,std::_Select1st<std::pair<std::pair<long_long,unsigned_int>const,gold::File_read::View*>>,std::less<std::pair<long_long,unsigned_int>>,std::allocator<std::pair<std::pair<long_long,unsigned_int>const,gold::File_read::View*>>>\n       ::_M_emplace_unique<std::pair<std::pair<long_long,unsigned_int>,gold::File_read::View*>>\n                 (pair *param_1)" (statement_identifier "gold") (: ":") (ERROR ":" (: ":")) (labeled_statement "File_read::View*>,std::_Select1st<std::pair<std::pair<long_long,unsigned_int>const,gold::File_read::View*>>,std::less<std::pair<long_long,unsigned_int>>,std::allocator<std::pair<std::pair<long_long,unsigned_int>const,gold::File_read::View*>>>\n       ::_M_emplace_unique<std::pair<std::pair<long_long,unsigned_int>,gold::File_read::View*>>\n                 (pair *param_1)" (statement_identifier "File_read") (ERROR "::View*>,std::_Select1st<std::pair<std::pair<long_long,unsigned_int>const,gold:" (: ":") (: ":") (comma_expression "View*>,std" (identifier "View") (ERROR "*>" (* "*") (> ">")) (, ",") (identifier "std")) (: ":") (: ":") (binary_expression "_Select1st<std" (identifier "_Select1st") (< "<") (identifier "std")) (: ":") (: ":") (binary_expression "pair<std" (identifier "pair") (< "<") (identifier "std")) (: ":") (: ":") (comma_expression "pair<long_long,unsigned_int>const,gold" (binary_expression "pair<long_long" (identifier "pair") (< "<") (identifier "long_long")) (, ",") (comma_expression "unsigned_int>const,gold" (binary_expression "unsigned_int>const" (identifier "unsigned_int") (> ">") (identifier "const")) (, ",") (identifier "gold"))) (: ":")) (: ":") (labeled_statement "File_read::View*>>,std::less<std::pair<long_long,unsigned_int>>,std::allocator<std::pair<std::pair<long_long,unsigned_int>const,gold::File_read::View*>>>\n       ::_M_emplace_unique<std::pair<std::pair<long_long,unsigned_int>,gold::File_read::View*>>\n                 (pair *param_1)" (statement_identifier "File_read") (ERROR "::View*>>,std::less<std::pair<long_long,unsigned_int>>,std::allocator<std::pair<std::pair<long_long,unsigned_int>const,gold:" (: ":") (: ":") (comma_expression "View*>>,std" (identifier "View") (ERROR "*>>" (* "*") (>> ">>")) (, ",") (identifier "std")) (: ":") (: ":") (binary_expression "less<std" (identifier "less") (< "<") (identifier "std")) (: ":") (: ":") (comma_expression "pair<long_long,unsigned_int>>,std" (binary_expression "pair<long_long" (identifier "pair") (< "<") (identifier "long_long")) (, ",") (binary_expression "unsigned_int>>,std" (identifier "unsigned_int") (>> ">>") (ERROR "," (, ",")) (identifier "std"))) (: ":") (: ":") (binary_expression "allocator<std" (identifier "allocator") (< "<") (identifier "std")) (: ":") (: ":") (binary_expression "pair<std" (identifier "pair") (< "<") (identifier "std")) (: ":") (: ":") (comma_expression "pair<long_long,unsigned_int>const,gold" (binary_expression "pair<long_long" (identifier "pair") (< "<") (identifier "long_long")) (, ",") (comma_expression "unsigned_int>const,gold" (binary_expression "unsigned_int>const" (identifier "unsigned_int") (> ">") (identifier "const")) (, ",") (identifier "gold"))) (: ":")) (: ":") (labeled_statement "File_read::View*>>>\n       ::_M_emplace_unique<std::pair<std::pair<long_long,unsigned_int>,gold::File_read::View*>>\n                 (pair *param_1)" (statement_identifier "File_read") (ERROR "::View*>>>\n       ::_M_emplace_unique<std::pair<std::pair<long_long,unsigned_int>,gold:" (: ":") (: ":") (identifier "View") (* "*") (>> ">>") (> ">") (: ":") (: ":") (binary_expression "_M_emplace_unique<std" (identifier "_M_emplace_unique") (< "<") (identifier "std")) (: ":") (: ":") (binary_expression "pair<std" (identifier "pair") (< "<") (identifier "std")) (: ":") (: ":") (comma_expression "pair<long_long,unsigned_int>,gold" (binary_expression "pair<long_long" (identifier "pair") (< "<") (identifier "long_long")) (, ",") (binary_expression "unsigned_int>,gold" (identifier "unsigned_int") (> ">") (ERROR "," (, ",")) (identifier "gold"))) (: ":")) (: ":") (expression_statement "File_read::View*>>\n                 (pair *param_1)" (binary_expression "File_read::View*>>\n                 (pair *param_1)" (identifier "File_read") (ERROR "::View*" (: ":") (: ":") (identifier "View") (* "*")) (>> ">>") (parenthesized_expression "(pair *param_1)" (( "(") (binary_expression "pair *param_1" (identifier "pair") (* "*") (identifier "param_1")) () ")"))) (; "")))))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  bool bVar5;\n  int in_a1;\n  int iVar6;\n  int *in_a2;\n  int iVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  \n  iVar10 = in_a1 + 4;\n  iVar1 = (*(code *)PTR_operator_new_004c13a8)(0x28);\n  iVar4 = *in_a2;\n  uVar2 = in_a2[1];\n  iVar7 = in_a2[2];\n  iVar6 = in_a2[3];\n  iVar3 = in_a2[4];\n  iVar9 = *(int *)(in_a1 + 8);\n  *(int *)(iVar1 + 0x10) = iVar4;\n  *(uint *)(iVar1 + 0x14) = uVar2;\n  *(int *)(iVar1 + 0x18) = iVar7;\n  *(int *)(iVar1 + 0x1c) = iVar6;\n  *(int *)(iVar1 + 0x20) = iVar3;\n  iVar3 = iVar10;\n  if (iVar9 == 0) {\nLAB_001784c0:\n    if (*(int *)(in_a1 + 0xc) != iVar3) {\n      iVar9 = (*(code *)PTR__Rb_tree_decrement_004c1a5c)(iVar3);\n      iVar4 = *(int *)(iVar1 + 0x10);\n      uVar2 = *(uint *)(iVar1 + 0x14);\n      iVar6 = *(int *)(iVar9 + 0x10);\n      uVar8 = *(uint *)(iVar9 + 0x14);\nLAB_001783f0:\n      if ((((iVar4 <= iVar6) && ((iVar4 != iVar6 || (uVar2 <= uVar8)))) &&\n          ((iVar4 != iVar6 ||\n           ((uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18))))))) ||\n         (iVar9 = 0, iVar3 == 0)) {\n        (*(code *)PTR_operator_delete_004c12fc)(iVar1);\n        *(int *)param_1 = iVar9;\n        param_1[4] = (pair)0x0;\n        return param_1;\n      }\n    }\n    bVar5 = true;\n    if (iVar10 != iVar3) {\n      iVar4 = *(int *)(iVar1 + 0x10);\n      iVar9 = *(int *)(iVar3 + 0x10);\n      if ((iVar4 < iVar9) ||\n         ((iVar9 == iVar4 && (*(uint *)(iVar1 + 0x14) < *(uint *)(iVar3 + 0x14))))) {\n        bVar5 = true;\n      }\n      else {\n        bVar5 = false;\n        if ((iVar4 == iVar9) && (*(uint *)(iVar1 + 0x14) == *(uint *)(iVar3 + 0x14))) {\n          bVar5 = *(uint *)(iVar1 + 0x18) < *(uint *)(iVar3 + 0x18);\n        }\n      }\n    }\n    (*(code *)PTR__Rb_tree_insert_and_rebalance_004c1a58)(bVar5,iVar1,iVar3,iVar10);\n    iVar9 = *(int *)(in_a1 + 0x14);\n    *(int *)param_1 = iVar1;\n    *(int *)(in_a1 + 0x14) = iVar9 + 1;\n    param_1[4] = (pair)0x1;\n    return param_1;\n  }\n  iVar6 = *(int *)(iVar9 + 0x10);\n  uVar8 = *(uint *)(iVar9 + 0x14);\n  if (iVar4 < iVar6) goto LAB_001783dc;\n  do {\n    if ((iVar6 == iVar4) && (uVar2 < uVar8)) goto LAB_001783dc;\n    if ((iVar4 == iVar6) &&\n       ((uVar2 == uVar8 && (*(uint *)(iVar1 + 0x18) < *(uint *)(iVar9 + 0x18))))) goto LAB_001783dc;\n    bVar5 = false;\n    iVar7 = *(int *)(iVar9 + 0xc);\n    iVar3 = iVar9;\n    while( true ) {\n      iVar9 = iVar7;\n      if (iVar9 == 0) {\n        iVar9 = iVar3;\n        if (bVar5) goto LAB_001784c0;\n        goto LAB_001783f0;\n      }\n      iVar6 = *(int *)(iVar9 + 0x10);\n      uVar8 = *(uint *)(iVar9 + 0x14);\n      if (iVar6 <= iVar4) break;\nLAB_001783dc:\n      bVar5 = true;\n      iVar7 = *(int *)(iVar9 + 8);\n      iVar3 = iVar9;\n    }\n  } while( true );\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "bool bVar5;" (primitive_type "bool") (identifier "bVar5") (; ";")) (declaration "int in_a1;" (primitive_type "int") (identifier "in_a1") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "int *in_a2;" (primitive_type "int") (pointer_declarator "*in_a2" (* "*") (identifier "in_a2")) (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (expression_statement "iVar10 = in_a1 + 4;" (assignment_expression "iVar10 = in_a1 + 4" (identifier "iVar10") (= "=") (binary_expression "in_a1 + 4" (identifier "in_a1") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "iVar1 = (*(code *)PTR_operator_new_004c13a8)(0x28);" (assignment_expression "iVar1 = (*(code *)PTR_operator_new_004c13a8)(0x28)" (identifier "iVar1") (= "=") (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x28)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" (( "(") (pointer_expression "*(code *)PTR_operator_new_004c13a8" (* "*") (cast_expression "(code *)PTR_operator_new_004c13a8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_new_004c13a8"))) () ")")) (argument_list "(0x28)" (( "(") (number_literal "0x28") () ")")))) (; ";")) (expression_statement "iVar4 = *in_a2;" (assignment_expression "iVar4 = *in_a2" (identifier "iVar4") (= "=") (pointer_expression "*in_a2" (* "*") (identifier "in_a2"))) (; ";")) (expression_statement "uVar2 = in_a2[1];" (assignment_expression "uVar2 = in_a2[1]" (identifier "uVar2") (= "=") (subscript_expression "in_a2[1]" (identifier "in_a2") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "iVar7 = in_a2[2];" (assignment_expression "iVar7 = in_a2[2]" (identifier "iVar7") (= "=") (subscript_expression "in_a2[2]" (identifier "in_a2") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "iVar6 = in_a2[3];" (assignment_expression "iVar6 = in_a2[3]" (identifier "iVar6") (= "=") (subscript_expression "in_a2[3]" (identifier "in_a2") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "iVar3 = in_a2[4];" (assignment_expression "iVar3 = in_a2[4]" (identifier "iVar3") (= "=") (subscript_expression "in_a2[4]" (identifier "in_a2") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "iVar9 = *(int *)(in_a1 + 8);" (assignment_expression "iVar9 = *(int *)(in_a1 + 8)" (identifier "iVar9") (= "=") (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")) () ")"))))) (; ";")) (expression_statement "*(int *)(iVar1 + 0x10) = iVar4;" (assignment_expression "*(int *)(iVar1 + 0x10) = iVar4" (pointer_expression "*(int *)(iVar1 + 0x10)" (* "*") (cast_expression "(int *)(iVar1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x10)" (( "(") (binary_expression "iVar1 + 0x10" (identifier "iVar1") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "iVar4")) (; ";")) (expression_statement "*(uint *)(iVar1 + 0x14) = uVar2;" (assignment_expression "*(uint *)(iVar1 + 0x14) = uVar2" (pointer_expression "*(uint *)(iVar1 + 0x14)" (* "*") (cast_expression "(uint *)(iVar1 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x14)" (( "(") (binary_expression "iVar1 + 0x14" (identifier "iVar1") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "*(int *)(iVar1 + 0x18) = iVar7;" (assignment_expression "*(int *)(iVar1 + 0x18) = iVar7" (pointer_expression "*(int *)(iVar1 + 0x18)" (* "*") (cast_expression "(int *)(iVar1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x18)" (( "(") (binary_expression "iVar1 + 0x18" (identifier "iVar1") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "*(int *)(iVar1 + 0x1c) = iVar6;" (assignment_expression "*(int *)(iVar1 + 0x1c) = iVar6" (pointer_expression "*(int *)(iVar1 + 0x1c)" (* "*") (cast_expression "(int *)(iVar1 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x1c)" (( "(") (binary_expression "iVar1 + 0x1c" (identifier "iVar1") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (identifier "iVar6")) (; ";")) (expression_statement "*(int *)(iVar1 + 0x20) = iVar3;" (assignment_expression "*(int *)(iVar1 + 0x20) = iVar3" (pointer_expression "*(int *)(iVar1 + 0x20)" (* "*") (cast_expression "(int *)(iVar1 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x20)" (( "(") (binary_expression "iVar1 + 0x20" (identifier "iVar1") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "iVar3")) (; ";")) (expression_statement "iVar3 = iVar10;" (assignment_expression "iVar3 = iVar10" (identifier "iVar3") (= "=") (identifier "iVar10")) (; ";")) (if_statement "if (iVar9 == 0) {\nLAB_001784c0:\n    if (*(int *)(in_a1 + 0xc) != iVar3) {\n      iVar9 = (*(code *)PTR__Rb_tree_decrement_004c1a5c)(iVar3);\n      iVar4 = *(int *)(iVar1 + 0x10);\n      uVar2 = *(uint *)(iVar1 + 0x14);\n      iVar6 = *(int *)(iVar9 + 0x10);\n      uVar8 = *(uint *)(iVar9 + 0x14);\nLAB_001783f0:\n      if ((((iVar4 <= iVar6) && ((iVar4 != iVar6 || (uVar2 <= uVar8)))) &&\n          ((iVar4 != iVar6 ||\n           ((uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18))))))) ||\n         (iVar9 = 0, iVar3 == 0)) {\n        (*(code *)PTR_operator_delete_004c12fc)(iVar1);\n        *(int *)param_1 = iVar9;\n        param_1[4] = (pair)0x0;\n        return param_1;\n      }\n    }\n    bVar5 = true;\n    if (iVar10 != iVar3) {\n      iVar4 = *(int *)(iVar1 + 0x10);\n      iVar9 = *(int *)(iVar3 + 0x10);\n      if ((iVar4 < iVar9) ||\n         ((iVar9 == iVar4 && (*(uint *)(iVar1 + 0x14) < *(uint *)(iVar3 + 0x14))))) {\n        bVar5 = true;\n      }\n      else {\n        bVar5 = false;\n        if ((iVar4 == iVar9) && (*(uint *)(iVar1 + 0x14) == *(uint *)(iVar3 + 0x14))) {\n          bVar5 = *(uint *)(iVar1 + 0x18) < *(uint *)(iVar3 + 0x18);\n        }\n      }\n    }\n    (*(code *)PTR__Rb_tree_insert_and_rebalance_004c1a58)(bVar5,iVar1,iVar3,iVar10);\n    iVar9 = *(int *)(in_a1 + 0x14);\n    *(int *)param_1 = iVar1;\n    *(int *)(in_a1 + 0x14) = iVar9 + 1;\n    param_1[4] = (pair)0x1;\n    return param_1;\n  }" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_001784c0:\n    if (*(int *)(in_a1 + 0xc) != iVar3) {\n      iVar9 = (*(code *)PTR__Rb_tree_decrement_004c1a5c)(iVar3);\n      iVar4 = *(int *)(iVar1 + 0x10);\n      uVar2 = *(uint *)(iVar1 + 0x14);\n      iVar6 = *(int *)(iVar9 + 0x10);\n      uVar8 = *(uint *)(iVar9 + 0x14);\nLAB_001783f0:\n      if ((((iVar4 <= iVar6) && ((iVar4 != iVar6 || (uVar2 <= uVar8)))) &&\n          ((iVar4 != iVar6 ||\n           ((uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18))))))) ||\n         (iVar9 = 0, iVar3 == 0)) {\n        (*(code *)PTR_operator_delete_004c12fc)(iVar1);\n        *(int *)param_1 = iVar9;\n        param_1[4] = (pair)0x0;\n        return param_1;\n      }\n    }\n    bVar5 = true;\n    if (iVar10 != iVar3) {\n      iVar4 = *(int *)(iVar1 + 0x10);\n      iVar9 = *(int *)(iVar3 + 0x10);\n      if ((iVar4 < iVar9) ||\n         ((iVar9 == iVar4 && (*(uint *)(iVar1 + 0x14) < *(uint *)(iVar3 + 0x14))))) {\n        bVar5 = true;\n      }\n      else {\n        bVar5 = false;\n        if ((iVar4 == iVar9) && (*(uint *)(iVar1 + 0x14) == *(uint *)(iVar3 + 0x14))) {\n          bVar5 = *(uint *)(iVar1 + 0x18) < *(uint *)(iVar3 + 0x18);\n        }\n      }\n    }\n    (*(code *)PTR__Rb_tree_insert_and_rebalance_004c1a58)(bVar5,iVar1,iVar3,iVar10);\n    iVar9 = *(int *)(in_a1 + 0x14);\n    *(int *)param_1 = iVar1;\n    *(int *)(in_a1 + 0x14) = iVar9 + 1;\n    param_1[4] = (pair)0x1;\n    return param_1;\n  }" ({ "{") (labeled_statement "LAB_001784c0:\n    if (*(int *)(in_a1 + 0xc) != iVar3) {\n      iVar9 = (*(code *)PTR__Rb_tree_decrement_004c1a5c)(iVar3);\n      iVar4 = *(int *)(iVar1 + 0x10);\n      uVar2 = *(uint *)(iVar1 + 0x14);\n      iVar6 = *(int *)(iVar9 + 0x10);\n      uVar8 = *(uint *)(iVar9 + 0x14);\nLAB_001783f0:\n      if ((((iVar4 <= iVar6) && ((iVar4 != iVar6 || (uVar2 <= uVar8)))) &&\n          ((iVar4 != iVar6 ||\n           ((uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18))))))) ||\n         (iVar9 = 0, iVar3 == 0)) {\n        (*(code *)PTR_operator_delete_004c12fc)(iVar1);\n        *(int *)param_1 = iVar9;\n        param_1[4] = (pair)0x0;\n        return param_1;\n      }\n    }" (statement_identifier "LAB_001784c0") (: ":") (if_statement "if (*(int *)(in_a1 + 0xc) != iVar3) {\n      iVar9 = (*(code *)PTR__Rb_tree_decrement_004c1a5c)(iVar3);\n      iVar4 = *(int *)(iVar1 + 0x10);\n      uVar2 = *(uint *)(iVar1 + 0x14);\n      iVar6 = *(int *)(iVar9 + 0x10);\n      uVar8 = *(uint *)(iVar9 + 0x14);\nLAB_001783f0:\n      if ((((iVar4 <= iVar6) && ((iVar4 != iVar6 || (uVar2 <= uVar8)))) &&\n          ((iVar4 != iVar6 ||\n           ((uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18))))))) ||\n         (iVar9 = 0, iVar3 == 0)) {\n        (*(code *)PTR_operator_delete_004c12fc)(iVar1);\n        *(int *)param_1 = iVar9;\n        param_1[4] = (pair)0x0;\n        return param_1;\n      }\n    }" (if "if") (parenthesized_expression "(*(int *)(in_a1 + 0xc) != iVar3)" (( "(") (binary_expression "*(int *)(in_a1 + 0xc) != iVar3" (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 "iVar3")) () ")")) (compound_statement "{\n      iVar9 = (*(code *)PTR__Rb_tree_decrement_004c1a5c)(iVar3);\n      iVar4 = *(int *)(iVar1 + 0x10);\n      uVar2 = *(uint *)(iVar1 + 0x14);\n      iVar6 = *(int *)(iVar9 + 0x10);\n      uVar8 = *(uint *)(iVar9 + 0x14);\nLAB_001783f0:\n      if ((((iVar4 <= iVar6) && ((iVar4 != iVar6 || (uVar2 <= uVar8)))) &&\n          ((iVar4 != iVar6 ||\n           ((uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18))))))) ||\n         (iVar9 = 0, iVar3 == 0)) {\n        (*(code *)PTR_operator_delete_004c12fc)(iVar1);\n        *(int *)param_1 = iVar9;\n        param_1[4] = (pair)0x0;\n        return param_1;\n      }\n    }" ({ "{") (expression_statement "iVar9 = (*(code *)PTR__Rb_tree_decrement_004c1a5c)(iVar3);" (assignment_expression "iVar9 = (*(code *)PTR__Rb_tree_decrement_004c1a5c)(iVar3)" (identifier "iVar9") (= "=") (call_expression "(*(code *)PTR__Rb_tree_decrement_004c1a5c)(iVar3)" (parenthesized_expression "(*(code *)PTR__Rb_tree_decrement_004c1a5c)" (( "(") (pointer_expression "*(code *)PTR__Rb_tree_decrement_004c1a5c" (* "*") (cast_expression "(code *)PTR__Rb_tree_decrement_004c1a5c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR__Rb_tree_decrement_004c1a5c"))) () ")")) (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")")))) (; ";")) (expression_statement "iVar4 = *(int *)(iVar1 + 0x10);" (assignment_expression "iVar4 = *(int *)(iVar1 + 0x10)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(iVar1 + 0x10)" (* "*") (cast_expression "(int *)(iVar1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x10)" (( "(") (binary_expression "iVar1 + 0x10" (identifier "iVar1") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "uVar2 = *(uint *)(iVar1 + 0x14);" (assignment_expression "uVar2 = *(uint *)(iVar1 + 0x14)" (identifier "uVar2") (= "=") (pointer_expression "*(uint *)(iVar1 + 0x14)" (* "*") (cast_expression "(uint *)(iVar1 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x14)" (( "(") (binary_expression "iVar1 + 0x14" (identifier "iVar1") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "iVar6 = *(int *)(iVar9 + 0x10);" (assignment_expression "iVar6 = *(int *)(iVar9 + 0x10)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(iVar9 + 0x10)" (* "*") (cast_expression "(int *)(iVar9 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x10)" (( "(") (binary_expression "iVar9 + 0x10" (identifier "iVar9") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "uVar8 = *(uint *)(iVar9 + 0x14);" (assignment_expression "uVar8 = *(uint *)(iVar9 + 0x14)" (identifier "uVar8") (= "=") (pointer_expression "*(uint *)(iVar9 + 0x14)" (* "*") (cast_expression "(uint *)(iVar9 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x14)" (( "(") (binary_expression "iVar9 + 0x14" (identifier "iVar9") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (labeled_statement "LAB_001783f0:\n      if ((((iVar4 <= iVar6) && ((iVar4 != iVar6 || (uVar2 <= uVar8)))) &&\n          ((iVar4 != iVar6 ||\n           ((uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18))))))) ||\n         (iVar9 = 0, iVar3 == 0)) {\n        (*(code *)PTR_operator_delete_004c12fc)(iVar1);\n        *(int *)param_1 = iVar9;\n        param_1[4] = (pair)0x0;\n        return param_1;\n      }" (statement_identifier "LAB_001783f0") (: ":") (if_statement "if ((((iVar4 <= iVar6) && ((iVar4 != iVar6 || (uVar2 <= uVar8)))) &&\n          ((iVar4 != iVar6 ||\n           ((uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18))))))) ||\n         (iVar9 = 0, iVar3 == 0)) {\n        (*(code *)PTR_operator_delete_004c12fc)(iVar1);\n        *(int *)param_1 = iVar9;\n        param_1[4] = (pair)0x0;\n        return param_1;\n      }" (if "if") (parenthesized_expression "((((iVar4 <= iVar6) && ((iVar4 != iVar6 || (uVar2 <= uVar8)))) &&\n          ((iVar4 != iVar6 ||\n           ((uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18))))))) ||\n         (iVar9 = 0, iVar3 == 0))" (( "(") (binary_expression "(((iVar4 <= iVar6) && ((iVar4 != iVar6 || (uVar2 <= uVar8)))) &&\n          ((iVar4 != iVar6 ||\n           ((uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18))))))) ||\n         (iVar9 = 0, iVar3 == 0)" (parenthesized_expression "(((iVar4 <= iVar6) && ((iVar4 != iVar6 || (uVar2 <= uVar8)))) &&\n          ((iVar4 != iVar6 ||\n           ((uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18)))))))" (( "(") (binary_expression "((iVar4 <= iVar6) && ((iVar4 != iVar6 || (uVar2 <= uVar8)))) &&\n          ((iVar4 != iVar6 ||\n           ((uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18))))))" (parenthesized_expression "((iVar4 <= iVar6) && ((iVar4 != iVar6 || (uVar2 <= uVar8))))" (( "(") (binary_expression "(iVar4 <= iVar6) && ((iVar4 != iVar6 || (uVar2 <= uVar8)))" (parenthesized_expression "(iVar4 <= iVar6)" (( "(") (binary_expression "iVar4 <= iVar6" (identifier "iVar4") (<= "<=") (identifier "iVar6")) () ")")) (&& "&&") (parenthesized_expression "((iVar4 != iVar6 || (uVar2 <= uVar8)))" (( "(") (parenthesized_expression "(iVar4 != iVar6 || (uVar2 <= uVar8))" (( "(") (binary_expression "iVar4 != iVar6 || (uVar2 <= uVar8)" (binary_expression "iVar4 != iVar6" (identifier "iVar4") (!= "!=") (identifier "iVar6")) (|| "||") (parenthesized_expression "(uVar2 <= uVar8)" (( "(") (binary_expression "uVar2 <= uVar8" (identifier "uVar2") (<= "<=") (identifier "uVar8")) () ")"))) () ")")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((iVar4 != iVar6 ||\n           ((uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18))))))" (( "(") (parenthesized_expression "(iVar4 != iVar6 ||\n           ((uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18)))))" (( "(") (binary_expression "iVar4 != iVar6 ||\n           ((uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18))))" (binary_expression "iVar4 != iVar6" (identifier "iVar4") (!= "!=") (identifier "iVar6")) (|| "||") (parenthesized_expression "((uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18))))" (( "(") (parenthesized_expression "(uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18)))" (( "(") (binary_expression "uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18))" (binary_expression "uVar2 != uVar8" (identifier "uVar2") (!= "!=") (identifier "uVar8")) (|| "||") (parenthesized_expression "(*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18))" (( "(") (binary_expression "*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18)" (pointer_expression "*(uint *)(iVar1 + 0x18)" (* "*") (cast_expression "(uint *)(iVar1 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x18)" (( "(") (binary_expression "iVar1 + 0x18" (identifier "iVar1") (+ "+") (number_literal "0x18")) () ")")))) (<= "<=") (pointer_expression "*(uint *)(iVar9 + 0x18)" (* "*") (cast_expression "(uint *)(iVar9 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x18)" (( "(") (binary_expression "iVar9 + 0x18" (identifier "iVar9") (+ "+") (number_literal "0x18")) () ")"))))) () ")"))) () ")")) () ")"))) () ")")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(iVar9 = 0, iVar3 == 0)" (( "(") (comma_expression "iVar9 = 0, iVar3 == 0" (assignment_expression "iVar9 = 0" (identifier "iVar9") (= "=") (number_literal "0")) (, ",") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n        (*(code *)PTR_operator_delete_004c12fc)(iVar1);\n        *(int *)param_1 = iVar9;\n        param_1[4] = (pair)0x0;\n        return param_1;\n      }" ({ "{") (expression_statement "(*(code *)PTR_operator_delete_004c12fc)(iVar1);" (call_expression "(*(code *)PTR_operator_delete_004c12fc)(iVar1)" (parenthesized_expression "(*(code *)PTR_operator_delete_004c12fc)" (( "(") (pointer_expression "*(code *)PTR_operator_delete_004c12fc" (* "*") (cast_expression "(code *)PTR_operator_delete_004c12fc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_delete_004c12fc"))) () ")")) (argument_list "(iVar1)" (( "(") (identifier "iVar1") () ")"))) (; ";")) (expression_statement "*(int *)param_1 = iVar9;" (assignment_expression "*(int *)param_1 = iVar9" (pointer_expression "*(int *)param_1" (* "*") (cast_expression "(int *)param_1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1"))) (= "=") (identifier "iVar9")) (; ";")) (expression_statement "param_1[4] = (pair)0x0;" (assignment_expression "param_1[4] = (pair)0x0" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (cast_expression "(pair)0x0" (( "(") (type_descriptor "pair" (type_identifier "pair")) () ")") (number_literal "0x0"))) (; ";")) (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}")))) (} "}")))) (expression_statement "bVar5 = true;" (assignment_expression "bVar5 = true" (identifier "bVar5") (= "=") (true "true")) (; ";")) (if_statement "if (iVar10 != iVar3) {\n      iVar4 = *(int *)(iVar1 + 0x10);\n      iVar9 = *(int *)(iVar3 + 0x10);\n      if ((iVar4 < iVar9) ||\n         ((iVar9 == iVar4 && (*(uint *)(iVar1 + 0x14) < *(uint *)(iVar3 + 0x14))))) {\n        bVar5 = true;\n      }\n      else {\n        bVar5 = false;\n        if ((iVar4 == iVar9) && (*(uint *)(iVar1 + 0x14) == *(uint *)(iVar3 + 0x14))) {\n          bVar5 = *(uint *)(iVar1 + 0x18) < *(uint *)(iVar3 + 0x18);\n        }\n      }\n    }" (if "if") (parenthesized_expression "(iVar10 != iVar3)" (( "(") (binary_expression "iVar10 != iVar3" (identifier "iVar10") (!= "!=") (identifier "iVar3")) () ")")) (compound_statement "{\n      iVar4 = *(int *)(iVar1 + 0x10);\n      iVar9 = *(int *)(iVar3 + 0x10);\n      if ((iVar4 < iVar9) ||\n         ((iVar9 == iVar4 && (*(uint *)(iVar1 + 0x14) < *(uint *)(iVar3 + 0x14))))) {\n        bVar5 = true;\n      }\n      else {\n        bVar5 = false;\n        if ((iVar4 == iVar9) && (*(uint *)(iVar1 + 0x14) == *(uint *)(iVar3 + 0x14))) {\n          bVar5 = *(uint *)(iVar1 + 0x18) < *(uint *)(iVar3 + 0x18);\n        }\n      }\n    }" ({ "{") (expression_statement "iVar4 = *(int *)(iVar1 + 0x10);" (assignment_expression "iVar4 = *(int *)(iVar1 + 0x10)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(iVar1 + 0x10)" (* "*") (cast_expression "(int *)(iVar1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x10)" (( "(") (binary_expression "iVar1 + 0x10" (identifier "iVar1") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "iVar9 = *(int *)(iVar3 + 0x10);" (assignment_expression "iVar9 = *(int *)(iVar3 + 0x10)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(iVar3 + 0x10)" (* "*") (cast_expression "(int *)(iVar3 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x10)" (( "(") (binary_expression "iVar3 + 0x10" (identifier "iVar3") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if ((iVar4 < iVar9) ||\n         ((iVar9 == iVar4 && (*(uint *)(iVar1 + 0x14) < *(uint *)(iVar3 + 0x14))))) {\n        bVar5 = true;\n      }\n      else {\n        bVar5 = false;\n        if ((iVar4 == iVar9) && (*(uint *)(iVar1 + 0x14) == *(uint *)(iVar3 + 0x14))) {\n          bVar5 = *(uint *)(iVar1 + 0x18) < *(uint *)(iVar3 + 0x18);\n        }\n      }" (if "if") (parenthesized_expression "((iVar4 < iVar9) ||\n         ((iVar9 == iVar4 && (*(uint *)(iVar1 + 0x14) < *(uint *)(iVar3 + 0x14)))))" (( "(") (binary_expression "(iVar4 < iVar9) ||\n         ((iVar9 == iVar4 && (*(uint *)(iVar1 + 0x14) < *(uint *)(iVar3 + 0x14))))" (parenthesized_expression "(iVar4 < iVar9)" (( "(") (binary_expression "iVar4 < iVar9" (identifier "iVar4") (< "<") (identifier "iVar9")) () ")")) (|| "||") (parenthesized_expression "((iVar9 == iVar4 && (*(uint *)(iVar1 + 0x14) < *(uint *)(iVar3 + 0x14))))" (( "(") (parenthesized_expression "(iVar9 == iVar4 && (*(uint *)(iVar1 + 0x14) < *(uint *)(iVar3 + 0x14)))" (( "(") (binary_expression "iVar9 == iVar4 && (*(uint *)(iVar1 + 0x14) < *(uint *)(iVar3 + 0x14))" (binary_expression "iVar9 == iVar4" (identifier "iVar9") (== "==") (identifier "iVar4")) (&& "&&") (parenthesized_expression "(*(uint *)(iVar1 + 0x14) < *(uint *)(iVar3 + 0x14))" (( "(") (binary_expression "*(uint *)(iVar1 + 0x14) < *(uint *)(iVar3 + 0x14)" (pointer_expression "*(uint *)(iVar1 + 0x14)" (* "*") (cast_expression "(uint *)(iVar1 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x14)" (( "(") (binary_expression "iVar1 + 0x14" (identifier "iVar1") (+ "+") (number_literal "0x14")) () ")")))) (< "<") (pointer_expression "*(uint *)(iVar3 + 0x14)" (* "*") (cast_expression "(uint *)(iVar3 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x14)" (( "(") (binary_expression "iVar3 + 0x14" (identifier "iVar3") (+ "+") (number_literal "0x14")) () ")"))))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n        bVar5 = true;\n      }" ({ "{") (expression_statement "bVar5 = true;" (assignment_expression "bVar5 = true" (identifier "bVar5") (= "=") (true "true")) (; ";")) (} "}")) (else_clause "else {\n        bVar5 = false;\n        if ((iVar4 == iVar9) && (*(uint *)(iVar1 + 0x14) == *(uint *)(iVar3 + 0x14))) {\n          bVar5 = *(uint *)(iVar1 + 0x18) < *(uint *)(iVar3 + 0x18);\n        }\n      }" (else "else") (compound_statement "{\n        bVar5 = false;\n        if ((iVar4 == iVar9) && (*(uint *)(iVar1 + 0x14) == *(uint *)(iVar3 + 0x14))) {\n          bVar5 = *(uint *)(iVar1 + 0x18) < *(uint *)(iVar3 + 0x18);\n        }\n      }" ({ "{") (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" (identifier "bVar5") (= "=") (false "false")) (; ";")) (if_statement "if ((iVar4 == iVar9) && (*(uint *)(iVar1 + 0x14) == *(uint *)(iVar3 + 0x14))) {\n          bVar5 = *(uint *)(iVar1 + 0x18) < *(uint *)(iVar3 + 0x18);\n        }" (if "if") (parenthesized_expression "((iVar4 == iVar9) && (*(uint *)(iVar1 + 0x14) == *(uint *)(iVar3 + 0x14)))" (( "(") (binary_expression "(iVar4 == iVar9) && (*(uint *)(iVar1 + 0x14) == *(uint *)(iVar3 + 0x14))" (parenthesized_expression "(iVar4 == iVar9)" (( "(") (binary_expression "iVar4 == iVar9" (identifier "iVar4") (== "==") (identifier "iVar9")) () ")")) (&& "&&") (parenthesized_expression "(*(uint *)(iVar1 + 0x14) == *(uint *)(iVar3 + 0x14))" (( "(") (binary_expression "*(uint *)(iVar1 + 0x14) == *(uint *)(iVar3 + 0x14)" (pointer_expression "*(uint *)(iVar1 + 0x14)" (* "*") (cast_expression "(uint *)(iVar1 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x14)" (( "(") (binary_expression "iVar1 + 0x14" (identifier "iVar1") (+ "+") (number_literal "0x14")) () ")")))) (== "==") (pointer_expression "*(uint *)(iVar3 + 0x14)" (* "*") (cast_expression "(uint *)(iVar3 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x14)" (( "(") (binary_expression "iVar3 + 0x14" (identifier "iVar3") (+ "+") (number_literal "0x14")) () ")"))))) () ")"))) () ")")) (compound_statement "{\n          bVar5 = *(uint *)(iVar1 + 0x18) < *(uint *)(iVar3 + 0x18);\n        }" ({ "{") (expression_statement "bVar5 = *(uint *)(iVar1 + 0x18) < *(uint *)(iVar3 + 0x18);" (assignment_expression "bVar5 = *(uint *)(iVar1 + 0x18) < *(uint *)(iVar3 + 0x18)" (identifier "bVar5") (= "=") (binary_expression "*(uint *)(iVar1 + 0x18) < *(uint *)(iVar3 + 0x18)" (pointer_expression "*(uint *)(iVar1 + 0x18)" (* "*") (cast_expression "(uint *)(iVar1 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x18)" (( "(") (binary_expression "iVar1 + 0x18" (identifier "iVar1") (+ "+") (number_literal "0x18")) () ")")))) (< "<") (pointer_expression "*(uint *)(iVar3 + 0x18)" (* "*") (cast_expression "(uint *)(iVar3 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x18)" (( "(") (binary_expression "iVar3 + 0x18" (identifier "iVar3") (+ "+") (number_literal "0x18")) () ")")))))) (; ";")) (} "}"))) (} "}")))) (} "}"))) (expression_statement "(*(code *)PTR__Rb_tree_insert_and_rebalance_004c1a58)(bVar5,iVar1,iVar3,iVar10);" (call_expression "(*(code *)PTR__Rb_tree_insert_and_rebalance_004c1a58)(bVar5,iVar1,iVar3,iVar10)" (parenthesized_expression "(*(code *)PTR__Rb_tree_insert_and_rebalance_004c1a58)" (( "(") (pointer_expression "*(code *)PTR__Rb_tree_insert_and_rebalance_004c1a58" (* "*") (cast_expression "(code *)PTR__Rb_tree_insert_and_rebalance_004c1a58" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR__Rb_tree_insert_and_rebalance_004c1a58"))) () ")")) (argument_list "(bVar5,iVar1,iVar3,iVar10)" (( "(") (identifier "bVar5") (, ",") (identifier "iVar1") (, ",") (identifier "iVar3") (, ",") (identifier "iVar10") () ")"))) (; ";")) (expression_statement "iVar9 = *(int *)(in_a1 + 0x14);" (assignment_expression "iVar9 = *(int *)(in_a1 + 0x14)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(in_a1 + 0x14)" (* "*") (cast_expression "(int *)(in_a1 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_a1 + 0x14)" (( "(") (binary_expression "in_a1 + 0x14" (identifier "in_a1") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "*(int *)param_1 = iVar1;" (assignment_expression "*(int *)param_1 = iVar1" (pointer_expression "*(int *)param_1" (* "*") (cast_expression "(int *)param_1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1"))) (= "=") (identifier "iVar1")) (; ";")) (expression_statement "*(int *)(in_a1 + 0x14) = iVar9 + 1;" (assignment_expression "*(int *)(in_a1 + 0x14) = iVar9 + 1" (pointer_expression "*(int *)(in_a1 + 0x14)" (* "*") (cast_expression "(int *)(in_a1 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_a1 + 0x14)" (( "(") (binary_expression "in_a1 + 0x14" (identifier "in_a1") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (binary_expression "iVar9 + 1" (identifier "iVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_1[4] = (pair)0x1;" (assignment_expression "param_1[4] = (pair)0x1" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (cast_expression "(pair)0x1" (( "(") (type_descriptor "pair" (type_identifier "pair")) () ")") (number_literal "0x1"))) (; ";")) (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}"))) (expression_statement "iVar6 = *(int *)(iVar9 + 0x10);" (assignment_expression "iVar6 = *(int *)(iVar9 + 0x10)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(iVar9 + 0x10)" (* "*") (cast_expression "(int *)(iVar9 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x10)" (( "(") (binary_expression "iVar9 + 0x10" (identifier "iVar9") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "uVar8 = *(uint *)(iVar9 + 0x14);" (assignment_expression "uVar8 = *(uint *)(iVar9 + 0x14)" (identifier "uVar8") (= "=") (pointer_expression "*(uint *)(iVar9 + 0x14)" (* "*") (cast_expression "(uint *)(iVar9 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x14)" (( "(") (binary_expression "iVar9 + 0x14" (identifier "iVar9") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (iVar4 < iVar6) goto LAB_001783dc;" (if "if") (parenthesized_expression "(iVar4 < iVar6)" (( "(") (binary_expression "iVar4 < iVar6" (identifier "iVar4") (< "<") (identifier "iVar6")) () ")")) (goto_statement "goto LAB_001783dc;" (goto "goto") (statement_identifier "LAB_001783dc") (; ";"))) (do_statement "do {\n    if ((iVar6 == iVar4) && (uVar2 < uVar8)) goto LAB_001783dc;\n    if ((iVar4 == iVar6) &&\n       ((uVar2 == uVar8 && (*(uint *)(iVar1 + 0x18) < *(uint *)(iVar9 + 0x18))))) goto LAB_001783dc;\n    bVar5 = false;\n    iVar7 = *(int *)(iVar9 + 0xc);\n    iVar3 = iVar9;\n    while( true ) {\n      iVar9 = iVar7;\n      if (iVar9 == 0) {\n        iVar9 = iVar3;\n        if (bVar5) goto LAB_001784c0;\n        goto LAB_001783f0;\n      }\n      iVar6 = *(int *)(iVar9 + 0x10);\n      uVar8 = *(uint *)(iVar9 + 0x14);\n      if (iVar6 <= iVar4) break;\nLAB_001783dc:\n      bVar5 = true;\n      iVar7 = *(int *)(iVar9 + 8);\n      iVar3 = iVar9;\n    }\n  } while( true );" (do "do") (compound_statement "{\n    if ((iVar6 == iVar4) && (uVar2 < uVar8)) goto LAB_001783dc;\n    if ((iVar4 == iVar6) &&\n       ((uVar2 == uVar8 && (*(uint *)(iVar1 + 0x18) < *(uint *)(iVar9 + 0x18))))) goto LAB_001783dc;\n    bVar5 = false;\n    iVar7 = *(int *)(iVar9 + 0xc);\n    iVar3 = iVar9;\n    while( true ) {\n      iVar9 = iVar7;\n      if (iVar9 == 0) {\n        iVar9 = iVar3;\n        if (bVar5) goto LAB_001784c0;\n        goto LAB_001783f0;\n      }\n      iVar6 = *(int *)(iVar9 + 0x10);\n      uVar8 = *(uint *)(iVar9 + 0x14);\n      if (iVar6 <= iVar4) break;\nLAB_001783dc:\n      bVar5 = true;\n      iVar7 = *(int *)(iVar9 + 8);\n      iVar3 = iVar9;\n    }\n  }" ({ "{") (if_statement "if ((iVar6 == iVar4) && (uVar2 < uVar8)) goto LAB_001783dc;" (if "if") (parenthesized_expression "((iVar6 == iVar4) && (uVar2 < uVar8))" (( "(") (binary_expression "(iVar6 == iVar4) && (uVar2 < uVar8)" (parenthesized_expression "(iVar6 == iVar4)" (( "(") (binary_expression "iVar6 == iVar4" (identifier "iVar6") (== "==") (identifier "iVar4")) () ")")) (&& "&&") (parenthesized_expression "(uVar2 < uVar8)" (( "(") (binary_expression "uVar2 < uVar8" (identifier "uVar2") (< "<") (identifier "uVar8")) () ")"))) () ")")) (goto_statement "goto LAB_001783dc;" (goto "goto") (statement_identifier "LAB_001783dc") (; ";"))) (if_statement "if ((iVar4 == iVar6) &&\n       ((uVar2 == uVar8 && (*(uint *)(iVar1 + 0x18) < *(uint *)(iVar9 + 0x18))))) goto LAB_001783dc;" (if "if") (parenthesized_expression "((iVar4 == iVar6) &&\n       ((uVar2 == uVar8 && (*(uint *)(iVar1 + 0x18) < *(uint *)(iVar9 + 0x18)))))" (( "(") (binary_expression "(iVar4 == iVar6) &&\n       ((uVar2 == uVar8 && (*(uint *)(iVar1 + 0x18) < *(uint *)(iVar9 + 0x18))))" (parenthesized_expression "(iVar4 == iVar6)" (( "(") (binary_expression "iVar4 == iVar6" (identifier "iVar4") (== "==") (identifier "iVar6")) () ")")) (&& "&&") (parenthesized_expression "((uVar2 == uVar8 && (*(uint *)(iVar1 + 0x18) < *(uint *)(iVar9 + 0x18))))" (( "(") (parenthesized_expression "(uVar2 == uVar8 && (*(uint *)(iVar1 + 0x18) < *(uint *)(iVar9 + 0x18)))" (( "(") (binary_expression "uVar2 == uVar8 && (*(uint *)(iVar1 + 0x18) < *(uint *)(iVar9 + 0x18))" (binary_expression "uVar2 == uVar8" (identifier "uVar2") (== "==") (identifier "uVar8")) (&& "&&") (parenthesized_expression "(*(uint *)(iVar1 + 0x18) < *(uint *)(iVar9 + 0x18))" (( "(") (binary_expression "*(uint *)(iVar1 + 0x18) < *(uint *)(iVar9 + 0x18)" (pointer_expression "*(uint *)(iVar1 + 0x18)" (* "*") (cast_expression "(uint *)(iVar1 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x18)" (( "(") (binary_expression "iVar1 + 0x18" (identifier "iVar1") (+ "+") (number_literal "0x18")) () ")")))) (< "<") (pointer_expression "*(uint *)(iVar9 + 0x18)" (* "*") (cast_expression "(uint *)(iVar9 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x18)" (( "(") (binary_expression "iVar9 + 0x18" (identifier "iVar9") (+ "+") (number_literal "0x18")) () ")"))))) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_001783dc;" (goto "goto") (statement_identifier "LAB_001783dc") (; ";"))) (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" (identifier "bVar5") (= "=") (false "false")) (; ";")) (expression_statement "iVar7 = *(int *)(iVar9 + 0xc);" (assignment_expression "iVar7 = *(int *)(iVar9 + 0xc)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(iVar9 + 0xc)" (* "*") (cast_expression "(int *)(iVar9 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0xc)" (( "(") (binary_expression "iVar9 + 0xc" (identifier "iVar9") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "iVar3 = iVar9;" (assignment_expression "iVar3 = iVar9" (identifier "iVar3") (= "=") (identifier "iVar9")) (; ";")) (while_statement "while( true ) {\n      iVar9 = iVar7;\n      if (iVar9 == 0) {\n        iVar9 = iVar3;\n        if (bVar5) goto LAB_001784c0;\n        goto LAB_001783f0;\n      }\n      iVar6 = *(int *)(iVar9 + 0x10);\n      uVar8 = *(uint *)(iVar9 + 0x14);\n      if (iVar6 <= iVar4) break;\nLAB_001783dc:\n      bVar5 = true;\n      iVar7 = *(int *)(iVar9 + 8);\n      iVar3 = iVar9;\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      iVar9 = iVar7;\n      if (iVar9 == 0) {\n        iVar9 = iVar3;\n        if (bVar5) goto LAB_001784c0;\n        goto LAB_001783f0;\n      }\n      iVar6 = *(int *)(iVar9 + 0x10);\n      uVar8 = *(uint *)(iVar9 + 0x14);\n      if (iVar6 <= iVar4) break;\nLAB_001783dc:\n      bVar5 = true;\n      iVar7 = *(int *)(iVar9 + 8);\n      iVar3 = iVar9;\n    }" ({ "{") (expression_statement "iVar9 = iVar7;" (assignment_expression "iVar9 = iVar7" (identifier "iVar9") (= "=") (identifier "iVar7")) (; ";")) (if_statement "if (iVar9 == 0) {\n        iVar9 = iVar3;\n        if (bVar5) goto LAB_001784c0;\n        goto LAB_001783f0;\n      }" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar9 = iVar3;\n        if (bVar5) goto LAB_001784c0;\n        goto LAB_001783f0;\n      }" ({ "{") (expression_statement "iVar9 = iVar3;" (assignment_expression "iVar9 = iVar3" (identifier "iVar9") (= "=") (identifier "iVar3")) (; ";")) (if_statement "if (bVar5) goto LAB_001784c0;" (if "if") (parenthesized_expression "(bVar5)" (( "(") (identifier "bVar5") () ")")) (goto_statement "goto LAB_001784c0;" (goto "goto") (statement_identifier "LAB_001784c0") (; ";"))) (goto_statement "goto LAB_001783f0;" (goto "goto") (statement_identifier "LAB_001783f0") (; ";")) (} "}"))) (expression_statement "iVar6 = *(int *)(iVar9 + 0x10);" (assignment_expression "iVar6 = *(int *)(iVar9 + 0x10)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(iVar9 + 0x10)" (* "*") (cast_expression "(int *)(iVar9 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x10)" (( "(") (binary_expression "iVar9 + 0x10" (identifier "iVar9") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "uVar8 = *(uint *)(iVar9 + 0x14);" (assignment_expression "uVar8 = *(uint *)(iVar9 + 0x14)" (identifier "uVar8") (= "=") (pointer_expression "*(uint *)(iVar9 + 0x14)" (* "*") (cast_expression "(uint *)(iVar9 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x14)" (( "(") (binary_expression "iVar9 + 0x14" (identifier "iVar9") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (iVar6 <= iVar4) break;" (if "if") (parenthesized_expression "(iVar6 <= iVar4)" (( "(") (binary_expression "iVar6 <= iVar4" (identifier "iVar6") (<= "<=") (identifier "iVar4")) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_001783dc:\n      bVar5 = true;" (statement_identifier "LAB_001783dc") (: ":") (expression_statement "bVar5 = true;" (assignment_expression "bVar5 = true" (identifier "bVar5") (= "=") (true "true")) (; ";"))) (expression_statement "iVar7 = *(int *)(iVar9 + 8);" (assignment_expression "iVar7 = *(int *)(iVar9 + 8)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(iVar9 + 8)" (* "*") (cast_expression "(int *)(iVar9 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 8)" (( "(") (binary_expression "iVar9 + 8" (identifier "iVar9") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "iVar3 = iVar9;" (assignment_expression "iVar3 = iVar9" (identifier "iVar3") (= "=") (identifier "iVar9")) (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))
(translation_unit (ERROR (binary_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) (ERROR) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (ERROR) (labeled_statement label: (statement_identifier) (ERROR (comma_expression left: (identifier) (ERROR) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (comma_expression left: (binary_expression left: (identifier) right: (identifier)) right: (comma_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)))) (labeled_statement label: (statement_identifier) (ERROR (comma_expression left: (identifier) (ERROR) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (comma_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) (ERROR) right: (identifier))) (binary_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (comma_expression left: (binary_expression left: (identifier) right: (identifier)) right: (comma_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)))) (labeled_statement label: (statement_identifier) (ERROR (identifier) (binary_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (comma_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) (ERROR) right: (identifier)))) (expression_statement (binary_expression left: (identifier) (ERROR (identifier)) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (MISSING ";")))))) (compound_statement (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: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator 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)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (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 (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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: (identifier))) (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: (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (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: (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: (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: (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: (primitive_type) 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))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (parenthesized_expression (binary_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: (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: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (number_literal)))) (return_statement (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (true))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (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: (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: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (parenthesized_expression (binary_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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (true)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (false))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (binary_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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_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: (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 (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) (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))))))) (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (number_literal)))) (return_statement (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))))))) (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (parenthesized_expression (binary_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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))))) consequence: (goto_statement label: (statement_identifier))) (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 (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: (primitive_type) 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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (break_statement)) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (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)))))

/* std::pair<std::_Rb_tree_iterator<std::pair<std::pair<long long, unsigned int> const,
   gold::File_read::View*> >, bool> std::_Rb_tree<std::pair<long long, unsigned int>,
   std::pair<std::pair<long long, unsigned int> const, gold::File_read::View*>,
   std::_Select1st<std::pair<std::pair<long long, unsigned int> const, gold::File_read::View*> >,
   std::less<std::pair<long long, unsigned int> >, std::allocator<std::pair<std::pair<long long,
   unsigned int> const, gold::File_read::View*> > >::_M_emplace_unique<std::pair<std::pair<long
   long, unsigned int>, gold::File_read::View*> >(std::pair<std::pair<long long, unsigned int>,
   gold::File_read::View*>&&) */

pair * std::
       _Rb_tree<std::pair<long_long,unsigned_int>,std::pair<std::pair<long_long,unsigned_int>const,gold::File_read::View*>,std::_Select1st<std::pair<std::pair<long_long,unsigned_int>const,gold::File_read::View*>>,std::less<std::pair<long_long,unsigned_int>>,std::allocator<std::pair<std::pair<long_long,unsigned_int>const,gold::File_read::View*>>>
       ::MASKED
                 (pair *param_1)

{
  int iVar1;
  uint uVar2;
  int iVar3;
  int iVar4;
  bool bVar5;
  int in_a1;
  int iVar6;
  int *in_a2;
  int iVar7;
  uint uVar8;
  int iVar9;
  int iVar10;
  
  iVar10 = in_a1 + 4;
  iVar1 = (*(code *)PTR_operator_new_004c13a8)(0x28);
  iVar4 = *in_a2;
  uVar2 = in_a2[1];
  iVar7 = in_a2[2];
  iVar6 = in_a2[3];
  iVar3 = in_a2[4];
  iVar9 = *(int *)(in_a1 + 8);
  *(int *)(iVar1 + 0x10) = iVar4;
  *(uint *)(iVar1 + 0x14) = uVar2;
  *(int *)(iVar1 + 0x18) = iVar7;
  *(int *)(iVar1 + 0x1c) = iVar6;
  *(int *)(iVar1 + 0x20) = iVar3;
  iVar3 = iVar10;
  if (iVar9 == 0) {
LAB_001784c0:
    if (*(int *)(in_a1 + 0xc) != iVar3) {
      iVar9 = (*(code *)PTR__Rb_tree_decrement_004c1a5c)(iVar3);
      iVar4 = *(int *)(iVar1 + 0x10);
      uVar2 = *(uint *)(iVar1 + 0x14);
      iVar6 = *(int *)(iVar9 + 0x10);
      uVar8 = *(uint *)(iVar9 + 0x14);
LAB_001783f0:
      if ((((iVar4 <= iVar6) && ((iVar4 != iVar6 || (uVar2 <= uVar8)))) &&
          ((iVar4 != iVar6 ||
           ((uVar2 != uVar8 || (*(uint *)(iVar1 + 0x18) <= *(uint *)(iVar9 + 0x18))))))) ||
         (iVar9 = 0, iVar3 == 0)) {
        (*(code *)PTR_operator_delete_004c12fc)(iVar1);
        *(int *)param_1 = iVar9;
        param_1[4] = (pair)0x0;
        return param_1;
      }
    }
    bVar5 = true;
    if (iVar10 != iVar3) {
      iVar4 = *(int *)(iVar1 + 0x10);
      iVar9 = *(int *)(iVar3 + 0x10);
      if ((iVar4 < iVar9) ||
         ((iVar9 == iVar4 && (*(uint *)(iVar1 + 0x14) < *(uint *)(iVar3 + 0x14))))) {
        bVar5 = true;
      }
      else {
        bVar5 = false;
        if ((iVar4 == iVar9) && (*(uint *)(iVar1 + 0x14) == *(uint *)(iVar3 + 0x14))) {
          bVar5 = *(uint *)(iVar1 + 0x18) < *(uint *)(iVar3 + 0x18);
        }
      }
    }
    (*(code *)PTR__Rb_tree_insert_and_rebalance_004c1a58)(bVar5,iVar1,iVar3,iVar10);
    iVar9 = *(int *)(in_a1 + 0x14);
    *(int *)param_1 = iVar1;
    *(int *)(in_a1 + 0x14) = iVar9 + 1;
    param_1[4] = (pair)0x1;
    return param_1;
  }
  iVar6 = *(int *)(iVar9 + 0x10);
  uVar8 = *(uint *)(iVar9 + 0x14);
  if (iVar4 < iVar6) goto LAB_001783dc;
  do {
    if ((iVar6 == iVar4) && (uVar2 < uVar8)) goto LAB_001783dc;
    if ((iVar4 == iVar6) &&
       ((uVar2 == uVar8 && (*(uint *)(iVar1 + 0x18) < *(uint *)(iVar9 + 0x18))))) goto LAB_001783dc;
    bVar5 = false;
    iVar7 = *(int *)(iVar9 + 0xc);
    iVar3 = iVar9;
    while( true ) {
      iVar9 = iVar7;
      if (iVar9 == 0) {
        iVar9 = iVar3;
        if (bVar5) goto LAB_001784c0;
        goto LAB_001783f0;
      }
      iVar6 = *(int *)(iVar9 + 0x10);
      uVar8 = *(uint *)(iVar9 + 0x14);
      if (iVar6 <= iVar4) break;
LAB_001783dc:
      bVar5 = true;
      iVar7 = *(int *)(iVar9 + 8);
      iVar3 = iVar9;
    }
  } while( true );
}

