
/* WARNING: Type propagation algorithm not settling */
/* DWARF original prototype: void _M_insert_aux(vector<bool,_std::allocator<bool>_> * this, iterator
   __position, bool __x) */

void __thiscall
std::vector<bool,_std::allocator<bool>_>::_M_insert_aux
          (vector<bool,_std::allocator<bool>_> *this,iterator __position,bool __x)

{
  uint uVar1;
  _Bit_type *p_Var2;
  int iVar3;
  int iVar4;
  undefined3 in_register_00000014;
  uint *puVar5;
  uint uVar6;
  uint in_a2;
  uint uVar7;
  uint *puVar8;
  int in_a3;
  uint uVar9;
  _Bit_type *p_Var10;
  uint *puVar11;
  uint uVar12;
  uint uVar13;
  _Bit_type *p_Var14;
  uint *puVar15;
  
  puVar5 = (uint *)CONCAT31(in_register_00000014,__x);
  p_Var10 = (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data.
            _M_finish.super__Bit_iterator_base._M_p;
  uVar12 = (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data.
           _M_finish.super__Bit_iterator_base._M_offset;
  if (p_Var10 ==
      (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data.
      _M_end_of_storage) {
    uVar1 = (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data.
            _M_start.super__Bit_iterator_base._M_offset;
    iVar3 = ((int)p_Var10 -
            (int)(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data
                 ._M_start.super__Bit_iterator_base._M_p) * 8 + uVar12;
    uVar12 = iVar3 - uVar1;
    if (uVar1 + 0x7fffffe0 == iVar3) {
      (*(code *)PTR___throw_length_error_004c1e74)(PTR_s__s_004c1a50 + 0xd54);
      return;
    }
    uVar1 = uVar12 * 2;
    if (uVar12 == 0) {
      iVar3 = 4;
    }
    else if (uVar1 < uVar12) {
      iVar3 = 0xffffffc;
    }
    else {
      uVar12 = 0x7fffffe0;
      if (uVar1 < 0x7fffffe1) {
        uVar12 = uVar1;
      }
      iVar3 = (uVar12 + 0x1f >> 5) << 2;
    }
    p_Var10 = (_Bit_type *)(*(code *)PTR_operator_new_004c13a8)(iVar3);
    puVar15 = (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data.
              _M_start.super__Bit_iterator_base._M_p;
    if (puVar5 != puVar15) {
      (*(code *)PTR_memmove_004c5af8)(p_Var10,puVar15,(int)puVar5 - (int)puVar15);
    }
    puVar8 = (uint *)((int)p_Var10 + ((int)puVar5 - (int)puVar15));
    if ((int)in_a2 < 1) {
      uVar12 = 1;
      uVar1 = 1;
      puVar11 = puVar8;
    }
    else {
      uVar13 = 0;
      uVar9 = in_a2;
      puVar11 = puVar5;
      do {
        while( true ) {
          uVar12 = 1 << (uVar13 & 0x1f);
          if ((uVar12 & *puVar11) != 0) break;
          *puVar8 = ~uVar12 & *puVar8;
          if (uVar13 != 0x1f) goto LAB_00184984;
LAB_001849c0:
          uVar9 = uVar9 - 1;
          puVar11 = puVar11 + 1;
          puVar8 = puVar8 + 1;
          uVar12 = 1;
          uVar1 = 1;
          uVar7 = 0;
          uVar13 = uVar7;
          if (uVar9 == 0) goto LAB_001849dc;
        }
        *puVar8 = uVar12 | *puVar8;
        if (uVar13 == 0x1f) goto LAB_001849c0;
LAB_00184984:
        uVar7 = uVar13 + 1;
        uVar9 = uVar9 - 1;
        uVar1 = uVar13 + 2;
        uVar12 = 1 << (uVar7 & 0x1f);
        uVar13 = uVar7;
      } while (uVar9 != 0);
LAB_001849dc:
      puVar11 = puVar8;
      if (uVar7 == 0x1f) {
        uVar1 = 0;
        puVar11 = puVar8 + 1;
      }
    }
    if (in_a3 == 0) {
      uVar12 = ~uVar12 & *puVar8;
    }
    else {
      uVar12 = *puVar8 | uVar12;
    }
    iVar4 = ((int)(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.
                  super__Bvector_impl_data._M_finish.super__Bit_iterator_base._M_p - (int)puVar5) *
            8 + ((this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data
                 ._M_finish.super__Bit_iterator_base._M_offset - in_a2);
    *puVar8 = uVar12;
    if (0 < iVar4) {
      do {
        while( true ) {
          uVar12 = 1 << (uVar1 & 0x1f);
          if ((1 << (in_a2 & 0x1f) & *puVar5) != 0) break;
          *puVar11 = ~uVar12 & *puVar11;
          if (in_a2 != 0x1f) goto LAB_00184a30;
LAB_00184a6c:
          puVar5 = puVar5 + 1;
          in_a2 = 0;
          if (uVar1 != 0x1f) goto LAB_00184a38;
LAB_00184a78:
          iVar4 = iVar4 + -1;
          puVar11 = puVar11 + 1;
          uVar1 = 0;
          if (iVar4 == 0) goto LAB_00184a88;
        }
        *puVar11 = *puVar11 | uVar12;
        if (in_a2 == 0x1f) goto LAB_00184a6c;
LAB_00184a30:
        in_a2 = in_a2 + 1;
        if (uVar1 == 0x1f) goto LAB_00184a78;
LAB_00184a38:
        iVar4 = iVar4 + -1;
        uVar1 = uVar1 + 1;
      } while (iVar4 != 0);
    }
LAB_00184a88:
    if (puVar15 != (uint *)0x0) {
      (*(code *)PTR_operator_delete_004c12fc)(puVar15);
      (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.
      super__Bit_iterator_base._M_p = (_Bit_type *)0x0;
      (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.
      super__Bit_iterator_base._M_offset = 0;
      (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_start.
      super__Bit_iterator_base._M_p = (_Bit_type *)0x0;
      (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_start.
      super__Bit_iterator_base._M_offset = 0;
    }
    (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_start.
    super__Bit_iterator_base._M_p = p_Var10;
    (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data.
    _M_end_of_storage = (_Bit_pointer)((int)p_Var10 + iVar3);
    (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.
    super__Bit_iterator_base._M_p = puVar11;
    (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.
    super__Bit_iterator_base._M_offset = uVar1;
    (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_start.
    super__Bit_iterator_base._M_offset = 0;
    return;
  }
  uVar13 = uVar12 + 1;
  uVar1 = uVar13;
  if ((int)uVar13 < 0) {
    uVar1 = uVar12 + 0x20;
  }
  p_Var2 = p_Var10 + ((int)uVar1 >> 5);
  if ((int)uVar13 < 0) {
    uVar1 = ((uVar13 & 0x8000001f) - 1 | 0xffffffe0) + 1;
  }
  else {
    uVar1 = uVar13 & 0x8000001f;
  }
  if ((int)uVar1 < 0) {
    uVar1 = uVar1 + 0x20;
    p_Var2 = p_Var2 + -1;
  }
  iVar3 = ((int)p_Var10 - (int)puVar5) * 8 + (uVar12 - in_a2);
  uVar9 = uVar12;
  p_Var14 = p_Var10;
  if (0 < iVar3) {
    do {
      while (uVar1 != 0) {
        uVar1 = uVar1 - 1;
        uVar7 = 1 << (uVar1 & 0x1f);
        if (uVar9 == 0) goto LAB_001847b0;
LAB_00184770:
        uVar9 = uVar9 - 1;
        uVar6 = *p_Var2;
        if ((1 << (uVar9 & 0x1f) & *p_Var14) == 0) goto LAB_001847cc;
LAB_00184788:
        iVar3 = iVar3 + -1;
        *p_Var2 = uVar7 | uVar6;
        if (iVar3 == 0) goto LAB_001847e0;
      }
      p_Var2 = p_Var2 + -1;
      uVar7 = 0x80000000;
      uVar1 = 0x1f;
      if (uVar9 != 0) goto LAB_00184770;
LAB_001847b0:
      p_Var14 = p_Var14 + -1;
      uVar6 = *p_Var2;
      uVar9 = 0x1f;
      if ((*p_Var14 & 0x80000000) != 0) goto LAB_00184788;
LAB_001847cc:
      iVar3 = iVar3 + -1;
      *p_Var2 = ~uVar7 & uVar6;
    } while (iVar3 != 0);
  }
LAB_001847e0:
  uVar1 = 1 << (in_a2 & 0x1f);
  if (in_a3 == 0) {
    *puVar5 = ~uVar1 & *puVar5;
  }
  else {
    *puVar5 = uVar1 | *puVar5;
  }
  if (uVar12 != 0x1f) {
    (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.
    super__Bit_iterator_base._M_offset = uVar13;
    return;
  }
  (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.
  super__Bit_iterator_base._M_offset = 0;
  (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.
  super__Bit_iterator_base._M_p = p_Var10 + 1;
  return;
}



/* std::vector<bool, std::allocator<bool> >::_M_insert_aux(std::_Bit_iterator, bool) */

void std::vector<bool,std::allocator<bool>>::_M_insert_aux
               (int *param_1,uint *param_2,uint param_3,int param_4)

{
  uint uVar1;
  int iVar2;
  int iVar3;
  int iVar4;
  uint uVar5;
  uint uVar6;
  uint *puVar7;
  uint uVar8;
  uint *puVar9;
  uint *puVar10;
  uint uVar11;
  uint uVar12;
  
  puVar9 = (uint *)param_1[2];
  uVar11 = param_1[3];
  if (puVar9 == (uint *)param_1[4]) {
    iVar3 = ((int)puVar9 - *param_1) * 8 + uVar11;
    uVar11 = iVar3 - param_1[1];
    if (param_1[1] + 0x7fffffe0 == iVar3) {
      (*(code *)PTR___throw_length_error_004c1e74)(PTR_s__s_004c1a50 + 0xd54);
      return;
    }
    uVar1 = uVar11 * 2;
    if (uVar11 == 0) {
      iVar3 = 4;
    }
    else if (uVar1 < uVar11) {
      iVar3 = 0xffffffc;
    }
    else {
      uVar11 = 0x7fffffe0;
      if (uVar1 < 0x7fffffe1) {
        uVar11 = uVar1;
      }
      iVar3 = (uVar11 + 0x1f >> 5) << 2;
    }
    iVar2 = (*(code *)PTR_operator_new_004c13a8)(iVar3);
    puVar9 = (uint *)*param_1;
    if (param_2 != puVar9) {
      (*(code *)PTR_memmove_004c5af8)(iVar2,puVar9,(int)param_2 - (int)puVar9);
    }
    puVar7 = (uint *)(iVar2 + ((int)param_2 - (int)puVar9));
    if ((int)param_3 < 1) {
      uVar11 = 1;
      uVar1 = 1;
      puVar10 = puVar7;
    }
    else {
      uVar12 = 0;
      uVar8 = param_3;
      puVar10 = param_2;
      do {
        while( true ) {
          uVar11 = 1 << (uVar12 & 0x1f);
          if ((uVar11 & *puVar10) != 0) break;
          *puVar7 = ~uVar11 & *puVar7;
          if (uVar12 != 0x1f) goto LAB_00184984;
LAB_001849c0:
          uVar8 = uVar8 - 1;
          puVar10 = puVar10 + 1;
          puVar7 = puVar7 + 1;
          uVar11 = 1;
          uVar1 = 1;
          uVar6 = 0;
          uVar12 = uVar6;
          if (uVar8 == 0) goto LAB_001849dc;
        }
        *puVar7 = uVar11 | *puVar7;
        if (uVar12 == 0x1f) goto LAB_001849c0;
LAB_00184984:
        uVar6 = uVar12 + 1;
        uVar8 = uVar8 - 1;
        uVar1 = uVar12 + 2;
        uVar11 = 1 << (uVar6 & 0x1f);
        uVar12 = uVar6;
      } while (uVar8 != 0);
LAB_001849dc:
      puVar10 = puVar7;
      if (uVar6 == 0x1f) {
        uVar1 = 0;
        puVar10 = puVar7 + 1;
      }
    }
    if (param_4 == 0) {
      uVar11 = ~uVar11 & *puVar7;
    }
    else {
      uVar11 = *puVar7 | uVar11;
    }
    iVar4 = (param_1[2] - (int)param_2) * 8 + (param_1[3] - param_3);
    *puVar7 = uVar11;
    if (0 < iVar4) {
      do {
        while( true ) {
          uVar11 = 1 << (uVar1 & 0x1f);
          if ((1 << (param_3 & 0x1f) & *param_2) != 0) break;
          *puVar10 = ~uVar11 & *puVar10;
          if (param_3 != 0x1f) goto LAB_00184a30;
LAB_00184a6c:
          param_2 = param_2 + 1;
          param_3 = 0;
          if (uVar1 != 0x1f) goto LAB_00184a38;
LAB_00184a78:
          iVar4 = iVar4 + -1;
          puVar10 = puVar10 + 1;
          uVar1 = 0;
          if (iVar4 == 0) goto LAB_00184a88;
        }
        *puVar10 = *puVar10 | uVar11;
        if (param_3 == 0x1f) goto LAB_00184a6c;
LAB_00184a30:
        param_3 = param_3 + 1;
        if (uVar1 == 0x1f) goto LAB_00184a78;
LAB_00184a38:
        iVar4 = iVar4 + -1;
        uVar1 = uVar1 + 1;
      } while (iVar4 != 0);
    }
LAB_00184a88:
    if (puVar9 != (uint *)0x0) {
      (*(code *)PTR_operator_delete_004c12fc)(puVar9);
      param_1[2] = 0;
      param_1[3] = 0;
      *param_1 = 0;
      param_1[1] = 0;
    }
    *param_1 = iVar2;
    param_1[4] = iVar2 + iVar3;
    param_1[2] = (int)puVar10;
    param_1[3] = uVar1;
    param_1[1] = 0;
    return;
  }
  uVar12 = uVar11 + 1;
  uVar1 = uVar12;
  if ((int)uVar12 < 0) {
    uVar1 = uVar11 + 0x20;
  }
  puVar7 = puVar9 + ((int)uVar1 >> 5);
  if ((int)uVar12 < 0) {
    uVar1 = ((uVar12 & 0x8000001f) - 1 | 0xffffffe0) + 1;
  }
  else {
    uVar1 = uVar12 & 0x8000001f;
  }
  if ((int)uVar1 < 0) {
    uVar1 = uVar1 + 0x20;
    puVar7 = puVar7 + -1;
  }
  iVar3 = ((int)puVar9 - (int)param_2) * 8 + (uVar11 - param_3);
  uVar8 = uVar11;
  puVar10 = puVar9;
  if (0 < iVar3) {
    do {
      while (uVar1 != 0) {
        uVar1 = uVar1 - 1;
        uVar6 = 1 << (uVar1 & 0x1f);
        if (uVar8 == 0) goto LAB_001847b0;
LAB_00184770:
        uVar8 = uVar8 - 1;
        uVar5 = *puVar7;
        if ((1 << (uVar8 & 0x1f) & *puVar10) == 0) goto LAB_001847cc;
LAB_00184788:
        iVar3 = iVar3 + -1;
        *puVar7 = uVar6 | uVar5;
        if (iVar3 == 0) goto LAB_001847e0;
      }
      puVar7 = puVar7 + -1;
      uVar6 = 0x80000000;
      uVar1 = 0x1f;
      if (uVar8 != 0) goto LAB_00184770;
LAB_001847b0:
      puVar10 = puVar10 + -1;
      uVar5 = *puVar7;
      uVar8 = 0x1f;
      if ((*puVar10 & 0x80000000) != 0) goto LAB_00184788;
LAB_001847cc:
      iVar3 = iVar3 + -1;
      *puVar7 = ~uVar6 & uVar5;
    } while (iVar3 != 0);
  }
LAB_001847e0:
  uVar1 = 1 << (param_3 & 0x1f);
  if (param_4 == 0) {
    *param_2 = ~uVar1 & *param_2;
  }
  else {
    *param_2 = uVar1 | *param_2;
  }
  if (uVar11 != 0x1f) {
    param_1[3] = uVar12;
    return;
  }
  param_1[3] = 0;
  param_1[2] = (int)(puVar9 + 1);
  return;
}


lui gp,0x34
addiu gp,gp,0x4b90
addu gp,gp,t9
addiu sp,sp,-0x40
lw t1,0x8(a0)
lw v0,0x10(a0)
lw t2,0xc(a0)
sw gp,0x10(sp)
sw s2,0x24(sp)
or s2,a1,zero
sw s1,0x20(sp)
or s1,a0,zero
sw s0,0x1c(sp)
or s0,a2,zero
sw ra,0x3c(sp)
sw s7,0x38(sp)
sw s6,0x34(sp)
sw s5,0x30(sp)
sw s4,0x2c(sp)
sw s3,0x28(sp)
sw a1,0x44(sp)
beq t1,v0,0x001848d0
_sw a2,0x48(sp)
addiu t3,t2,0x1
bltz t3,0x001848a8
_or v1,t3,zero
lui v0,0x8000
sra v1,v1,0x5
addiu v0,v0,0x1f
sll v1,v1,0x2
and v0,t3,v0
bltz v0,0x00184888
_addu v1,t1,v1
bltz v0,0x0018487c
_nop
subu a1,t1,s2
subu a0,t2,s0
sll a1,a1,0x3
addu a0,a1,a0
blez a0,0x001847e0
_nop
li t6,0x1
or t5,t1,zero
b 0x00184798
_or t0,t2,zero
addiu v0,v0,-0x1
beq t0,zero,0x001847b0
_sllv a2,t6,v0
addiu t0,t0,-0x1
lw t7,0x0(t5)
sllv t4,t6,t0
and t4,t4,t7
beq t4,zero,0x001847cc
_lw a1,0x0(v1)
addiu a0,a0,-0x1
or a1,a2,a1
beq a0,zero,0x001847e0
_sw a1,0x0(v1)
bne v0,zero,0x00184764
_nop
addiu v1,v1,-0x4
lui a2,0x8000
bne t0,zero,0x00184770
_li v0,0x1f
addiu t5,t5,-0x4
lw t7,0x0(t5)
lui t4,0x8000
lw a1,0x0(v1)
and t4,t4,t7
bne t4,zero,0x00184788
_li t0,0x1f
nor a2,zero,a2
addiu a0,a0,-0x1
and a1,a2,a1
bne a0,zero,0x00184798
_sw a1,0x0(v1)
li v0,0x1
lw v1,0x0(s2)
bne a3,zero,0x00184834
_sllv s0,v0,s0
nor s0,zero,s0
li v0,0x1f
and s0,s0,v1
beq t2,v0,0x00184844
_sw s0,0x0(s2)
lw ra,0x3c(sp)
lw s7,0x38(sp)
lw s6,0x34(sp)
lw s5,0x30(sp)
lw s4,0x2c(sp)
lw s3,0x28(sp)
lw s2,0x24(sp)
lw s0,0x1c(sp)
sw t3,0xc(s1)
lw s1,0x20(sp)
jr ra
_addiu sp,sp,0x40
li v0,0x1f
or s0,s0,v1
bne t2,v0,0x00184804
_sw s0,0x0(s2)
lw ra,0x3c(sp)
addiu v0,t1,0x4
lw s7,0x38(sp)
lw s6,0x34(sp)
lw s5,0x30(sp)
lw s4,0x2c(sp)
lw s3,0x28(sp)
lw s2,0x24(sp)
lw s0,0x1c(sp)
sw zero,0xc(s1)
sw v0,0x8(s1)
lw s1,0x20(sp)
jr ra
_addiu sp,sp,0x40
addiu v0,v0,0x20
b 0x0018473c
_addiu v1,v1,-0x4
addiu v0,v0,-0x1
li a0,-0x20
or v0,v0,a0
addiu v0,v0,0x1
bgez v0,0x00184740
_subu a1,t1,s2
b 0x00184880
_addiu v0,v0,0x20
addiu v1,t2,0x20
lui v0,0x8000
sra v1,v1,0x5
addiu v0,v0,0x1f
sll v1,v1,0x2
and v0,t3,v0
bgez v0,0x00184734
_addu v1,t1,v1
b 0x0018488c
_addiu v0,v0,-0x1
lw v0,0x0(a0)
lw v1,0x4(a0)
lui a0,0x7fff
subu v0,t1,v0
ori a0,a0,0xffe0
sll v0,v0,0x3
addu a1,v1,a0
addu v0,v0,t2
beq a1,v0,0x00184b30
_subu v1,v0,v1
beq v1,zero,0x00184b00
_sll v0,v1,0x1
sltu v1,v0,v1
beq v1,zero,0x00184b08
_addiu s3,a0,0x1
lui s3,0xfff
ori s3,s3,0xfffc
lw t9,-0x7e98(gp)
or a0,s3,zero
jalr t9
_sw a3,0x4c(sp)
lw s5,0x0(s1)
or s6,v0,zero
lw gp,0x10(sp)
lw a3,0x4c(sp)
beq s2,s5,0x00184958
_subu s4,s2,s5
lw t9,-0x3748(gp)
or a2,s4,zero
or a1,s5,zero
jalr t9
_or a0,v0,zero
lw gp,0x10(sp)
lw a3,0x4c(sp)
addu a2,s6,s4
blez s0,0x00184b20
_or t0,s0,zero
or v0,zero,zero
li t2,0x1
li t3,0x1f
b 0x0018499c
_or t1,s2,zero
or v1,a0,v1
beq v0,t3,0x001849c0
_sw v1,0x0(a2)
addiu v1,v0,0x1
addiu t0,t0,-0x1
addiu s4,v0,0x2
sllv a0,t2,v1
beq t0,zero,0x001849dc
_or v0,v1,zero
lw a1,0x0(t1)
sllv a0,t2,v0
and a1,a0,a1
bne a1,zero,0x00184978
_lw v1,0x0(a2)
nor a0,zero,a0
and v1,a0,v1
bne v0,t3,0x00184984
_sw v1,0x0(a2)
addiu t0,t0,-0x1
addiu t1,t1,0x4
addiu a2,a2,0x4
li a0,0x1
li s4,0x1
bne t0,zero,0x0018499c
_or v0,zero,zero
li v1,0x1f
beq v0,v1,0x00184af8
_addiu s7,a2,0x4
or s7,a2,zero
beq a3,zero,0x00184aec
_lw v0,0x0(a2)
or v1,v0,a0
lw a0,0x8(s1)
lw v0,0xc(s1)
subu a0,a0,s2
subu v0,v0,s0
sll a0,a0,0x3
addu a0,a0,v0
blez a0,0x00184a88
_sw v1,0x0(a2)
li a3,0x1
b 0x00184a44
_li a2,0x1f
or v0,v1,a1
beq s0,a2,0x00184a6c
_sw v0,0x0(s7)
beq s4,a2,0x00184a78
_addiu s0,s0,0x1
addiu a0,a0,-0x1
beq a0,zero,0x00184a88
_addiu s4,s4,0x1
lw t0,0x0(s2)
sllv v0,a3,s0
sllv a1,a3,s4
and v0,v0,t0
bne v0,zero,0x00184a24
_lw v1,0x0(s7)
nor v0,zero,a1
and v0,v0,v1
bne s0,a2,0x00184a30
_sw v0,0x0(s7)
addiu s2,s2,0x4
bne s4,a2,0x00184a38
_or s0,zero,zero
addiu a0,a0,-0x1
addiu s7,s7,0x4
bne a0,zero,0x00184a44
_or s4,zero,zero
beq s5,zero,0x00184aa8
_lw t9,-0x7f44(gp)
jalr t9
_or a0,s5,zero
sw zero,0x8(s1)
sw zero,0xc(s1)
sw zero,0x0(s1)
sw zero,0x4(s1)
lw ra,0x3c(sp)
addu s3,s6,s3
lw s5,0x30(sp)
lw s2,0x24(sp)
lw s0,0x1c(sp)
sw s6,0x0(s1)
sw s3,0x10(s1)
sw s7,0x8(s1)
sw s4,0xc(s1)
sw zero,0x4(s1)
lw s7,0x38(sp)
lw s6,0x34(sp)
lw s4,0x2c(sp)
lw s3,0x28(sp)
lw s1,0x20(sp)
jr ra
_addiu sp,sp,0x40
nor a0,zero,a0
b 0x001849f8
_and v1,a0,v0
b 0x001849ec
_or s4,zero,zero
b 0x00184914
_li s3,0x4
sltu s3,v0,s3
movn a0,v0,s3
addiu s3,a0,0x1f
srl s3,s3,0x5
b 0x00184914
_sll s3,s3,0x2
or s7,a2,zero
li a0,0x1
b 0x001849ec
_li s4,0x1
lw a0,-0x77f0(gp)
lw t9,-0x73cc(gp)
jalr t9
_addiu a0,a0,0xd54
(translation_unit "/* std::vector<bool, std::allocator<bool> >::_M_insert_aux(std::_Bit_iterator, bool) */\n\nvoid std::vector<bool,std::allocator<bool>>::_M_insert_aux\n               (int *param_1,uint *param_2,uint param_3,int param_4)\n\n{\n  uint uVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  uint uVar6;\n  uint *puVar7;\n  uint uVar8;\n  uint *puVar9;\n  uint *puVar10;\n  uint uVar11;\n  uint uVar12;\n  \n  puVar9 = (uint *)param_1[2];\n  uVar11 = param_1[3];\n  if (puVar9 == (uint *)param_1[4]) {\n    iVar3 = ((int)puVar9 - *param_1) * 8 + uVar11;\n    uVar11 = iVar3 - param_1[1];\n    if (param_1[1] + 0x7fffffe0 == iVar3) {\n      (*(code *)PTR___throw_length_error_004c1e74)(PTR_s__s_004c1a50 + 0xd54);\n      return;\n    }\n    uVar1 = uVar11 * 2;\n    if (uVar11 == 0) {\n      iVar3 = 4;\n    }\n    else if (uVar1 < uVar11) {\n      iVar3 = 0xffffffc;\n    }\n    else {\n      uVar11 = 0x7fffffe0;\n      if (uVar1 < 0x7fffffe1) {\n        uVar11 = uVar1;\n      }\n      iVar3 = (uVar11 + 0x1f >> 5) << 2;\n    }\n    iVar2 = (*(code *)PTR_operator_new_004c13a8)(iVar3);\n    puVar9 = (uint *)*param_1;\n    if (param_2 != puVar9) {\n      (*(code *)PTR_memmove_004c5af8)(iVar2,puVar9,(int)param_2 - (int)puVar9);\n    }\n    puVar7 = (uint *)(iVar2 + ((int)param_2 - (int)puVar9));\n    if ((int)param_3 < 1) {\n      uVar11 = 1;\n      uVar1 = 1;\n      puVar10 = puVar7;\n    }\n    else {\n      uVar12 = 0;\n      uVar8 = param_3;\n      puVar10 = param_2;\n      do {\n        while( true ) {\n          uVar11 = 1 << (uVar12 & 0x1f);\n          if ((uVar11 & *puVar10) != 0) break;\n          *puVar7 = ~uVar11 & *puVar7;\n          if (uVar12 != 0x1f) goto LAB_00184984;\nLAB_001849c0:\n          uVar8 = uVar8 - 1;\n          puVar10 = puVar10 + 1;\n          puVar7 = puVar7 + 1;\n          uVar11 = 1;\n          uVar1 = 1;\n          uVar6 = 0;\n          uVar12 = uVar6;\n          if (uVar8 == 0) goto LAB_001849dc;\n        }\n        *puVar7 = uVar11 | *puVar7;\n        if (uVar12 == 0x1f) goto LAB_001849c0;\nLAB_00184984:\n        uVar6 = uVar12 + 1;\n        uVar8 = uVar8 - 1;\n        uVar1 = uVar12 + 2;\n        uVar11 = 1 << (uVar6 & 0x1f);\n        uVar12 = uVar6;\n      } while (uVar8 != 0);\nLAB_001849dc:\n      puVar10 = puVar7;\n      if (uVar6 == 0x1f) {\n        uVar1 = 0;\n        puVar10 = puVar7 + 1;\n      }\n    }\n    if (param_4 == 0) {\n      uVar11 = ~uVar11 & *puVar7;\n    }\n    else {\n      uVar11 = *puVar7 | uVar11;\n    }\n    iVar4 = (param_1[2] - (int)param_2) * 8 + (param_1[3] - param_3);\n    *puVar7 = uVar11;\n    if (0 < iVar4) {\n      do {\n        while( true ) {\n          uVar11 = 1 << (uVar1 & 0x1f);\n          if ((1 << (param_3 & 0x1f) & *param_2) != 0) break;\n          *puVar10 = ~uVar11 & *puVar10;\n          if (param_3 != 0x1f) goto LAB_00184a30;\nLAB_00184a6c:\n          param_2 = param_2 + 1;\n          param_3 = 0;\n          if (uVar1 != 0x1f) goto LAB_00184a38;\nLAB_00184a78:\n          iVar4 = iVar4 + -1;\n          puVar10 = puVar10 + 1;\n          uVar1 = 0;\n          if (iVar4 == 0) goto LAB_00184a88;\n        }\n        *puVar10 = *puVar10 | uVar11;\n        if (param_3 == 0x1f) goto LAB_00184a6c;\nLAB_00184a30:\n        param_3 = param_3 + 1;\n        if (uVar1 == 0x1f) goto LAB_00184a78;\nLAB_00184a38:\n        iVar4 = iVar4 + -1;\n        uVar1 = uVar1 + 1;\n      } while (iVar4 != 0);\n    }\nLAB_00184a88:\n    if (puVar9 != (uint *)0x0) {\n      (*(code *)PTR_operator_delete_004c12fc)(puVar9);\n      param_1[2] = 0;\n      param_1[3] = 0;\n      *param_1 = 0;\n      param_1[1] = 0;\n    }\n    *param_1 = iVar2;\n    param_1[4] = iVar2 + iVar3;\n    param_1[2] = (int)puVar10;\n    param_1[3] = uVar1;\n    param_1[1] = 0;\n    return;\n  }\n  uVar12 = uVar11 + 1;\n  uVar1 = uVar12;\n  if ((int)uVar12 < 0) {\n    uVar1 = uVar11 + 0x20;\n  }\n  puVar7 = puVar9 + ((int)uVar1 >> 5);\n  if ((int)uVar12 < 0) {\n    uVar1 = ((uVar12 & 0x8000001f) - 1 | 0xffffffe0) + 1;\n  }\n  else {\n    uVar1 = uVar12 & 0x8000001f;\n  }\n  if ((int)uVar1 < 0) {\n    uVar1 = uVar1 + 0x20;\n    puVar7 = puVar7 + -1;\n  }\n  iVar3 = ((int)puVar9 - (int)param_2) * 8 + (uVar11 - param_3);\n  uVar8 = uVar11;\n  puVar10 = puVar9;\n  if (0 < iVar3) {\n    do {\n      while (uVar1 != 0) {\n        uVar1 = uVar1 - 1;\n        uVar6 = 1 << (uVar1 & 0x1f);\n        if (uVar8 == 0) goto LAB_001847b0;\nLAB_00184770:\n        uVar8 = uVar8 - 1;\n        uVar5 = *puVar7;\n        if ((1 << (uVar8 & 0x1f) & *puVar10) == 0) goto LAB_001847cc;\nLAB_00184788:\n        iVar3 = iVar3 + -1;\n        *puVar7 = uVar6 | uVar5;\n        if (iVar3 == 0) goto LAB_001847e0;\n      }\n      puVar7 = puVar7 + -1;\n      uVar6 = 0x80000000;\n      uVar1 = 0x1f;\n      if (uVar8 != 0) goto LAB_00184770;\nLAB_001847b0:\n      puVar10 = puVar10 + -1;\n      uVar5 = *puVar7;\n      uVar8 = 0x1f;\n      if ((*puVar10 & 0x80000000) != 0) goto LAB_00184788;\nLAB_001847cc:\n      iVar3 = iVar3 + -1;\n      *puVar7 = ~uVar6 & uVar5;\n    } while (iVar3 != 0);\n  }\nLAB_001847e0:\n  uVar1 = 1 << (param_3 & 0x1f);\n  if (param_4 == 0) {\n    *param_2 = ~uVar1 & *param_2;\n  }\n  else {\n    *param_2 = uVar1 | *param_2;\n  }\n  if (uVar11 != 0x1f) {\n    param_1[3] = uVar12;\n    return;\n  }\n  param_1[3] = 0;\n  param_1[2] = (int)(puVar9 + 1);\n  return;\n}\n\n" comment (declaration "void std::vector<bool,std::allocator<bool>>::_M_insert_aux\n               (int *param_1,uint *param_2,uint param_3,int param_4)\n\n{\n  uint uVar1;" primitive_type (ERROR "std::" identifier : :) identifier (ERROR "<bool" < primitive_type) , (ERROR "std::allocator<bool>>::_M_insert_aux\n               (int *param_1,uint *param_2,uint param_3,int param_4)\n\n{\n  uint" identifier : : identifier < primitive_type >> : : (function_declarator "_M_insert_aux\n               (int *param_1,uint *param_2,uint param_3,int param_4)" identifier (parameter_list "(int *param_1,uint *param_2,uint param_3,int param_4)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "int param_4" primitive_type identifier) ))) { identifier) identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "uint *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (expression_statement "puVar9 = (uint *)param_1[2];" (assignment_expression "puVar9 = (uint *)param_1[2]" identifier = (cast_expression "(uint *)param_1[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) (expression_statement "uVar11 = param_1[3];" (assignment_expression "uVar11 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (if_statement "if (puVar9 == (uint *)param_1[4]) {\n    iVar3 = ((int)puVar9 - *param_1) * 8 + uVar11;\n    uVar11 = iVar3 - param_1[1];\n    if (param_1[1] + 0x7fffffe0 == iVar3) {\n      (*(code *)PTR___throw_length_error_004c1e74)(PTR_s__s_004c1a50 + 0xd54);\n      return;\n    }\n    uVar1 = uVar11 * 2;\n    if (uVar11 == 0) {\n      iVar3 = 4;\n    }\n    else if (uVar1 < uVar11) {\n      iVar3 = 0xffffffc;\n    }\n    else {\n      uVar11 = 0x7fffffe0;\n      if (uVar1 < 0x7fffffe1) {\n        uVar11 = uVar1;\n      }\n      iVar3 = (uVar11 + 0x1f >> 5) << 2;\n    }\n    iVar2 = (*(code *)PTR_operator_new_004c13a8)(iVar3);\n    puVar9 = (uint *)*param_1;\n    if (param_2 != puVar9) {\n      (*(code *)PTR_memmove_004c5af8)(iVar2,puVar9,(int)param_2 - (int)puVar9);\n    }\n    puVar7 = (uint *)(iVar2 + ((int)param_2 - (int)puVar9));\n    if ((int)param_3 < 1) {\n      uVar11 = 1;\n      uVar1 = 1;\n      puVar10 = puVar7;\n    }\n    else {\n      uVar12 = 0;\n      uVar8 = param_3;\n      puVar10 = param_2;\n      do {\n        while( true ) {\n          uVar11 = 1 << (uVar12 & 0x1f);\n          if ((uVar11 & *puVar10) != 0) break;\n          *puVar7 = ~uVar11 & *puVar7;\n          if (uVar12 != 0x1f) goto LAB_00184984;\nLAB_001849c0:\n          uVar8 = uVar8 - 1;\n          puVar10 = puVar10 + 1;\n          puVar7 = puVar7 + 1;\n          uVar11 = 1;\n          uVar1 = 1;\n          uVar6 = 0;\n          uVar12 = uVar6;\n          if (uVar8 == 0) goto LAB_001849dc;\n        }\n        *puVar7 = uVar11 | *puVar7;\n        if (uVar12 == 0x1f) goto LAB_001849c0;\nLAB_00184984:\n        uVar6 = uVar12 + 1;\n        uVar8 = uVar8 - 1;\n        uVar1 = uVar12 + 2;\n        uVar11 = 1 << (uVar6 & 0x1f);\n        uVar12 = uVar6;\n      } while (uVar8 != 0);\nLAB_001849dc:\n      puVar10 = puVar7;\n      if (uVar6 == 0x1f) {\n        uVar1 = 0;\n        puVar10 = puVar7 + 1;\n      }\n    }\n    if (param_4 == 0) {\n      uVar11 = ~uVar11 & *puVar7;\n    }\n    else {\n      uVar11 = *puVar7 | uVar11;\n    }\n    iVar4 = (param_1[2] - (int)param_2) * 8 + (param_1[3] - param_3);\n    *puVar7 = uVar11;\n    if (0 < iVar4) {\n      do {\n        while( true ) {\n          uVar11 = 1 << (uVar1 & 0x1f);\n          if ((1 << (param_3 & 0x1f) & *param_2) != 0) break;\n          *puVar10 = ~uVar11 & *puVar10;\n          if (param_3 != 0x1f) goto LAB_00184a30;\nLAB_00184a6c:\n          param_2 = param_2 + 1;\n          param_3 = 0;\n          if (uVar1 != 0x1f) goto LAB_00184a38;\nLAB_00184a78:\n          iVar4 = iVar4 + -1;\n          puVar10 = puVar10 + 1;\n          uVar1 = 0;\n          if (iVar4 == 0) goto LAB_00184a88;\n        }\n        *puVar10 = *puVar10 | uVar11;\n        if (param_3 == 0x1f) goto LAB_00184a6c;\nLAB_00184a30:\n        param_3 = param_3 + 1;\n        if (uVar1 == 0x1f) goto LAB_00184a78;\nLAB_00184a38:\n        iVar4 = iVar4 + -1;\n        uVar1 = uVar1 + 1;\n      } while (iVar4 != 0);\n    }\nLAB_00184a88:\n    if (puVar9 != (uint *)0x0) {\n      (*(code *)PTR_operator_delete_004c12fc)(puVar9);\n      param_1[2] = 0;\n      param_1[3] = 0;\n      *param_1 = 0;\n      param_1[1] = 0;\n    }\n    *param_1 = iVar2;\n    param_1[4] = iVar2 + iVar3;\n    param_1[2] = (int)puVar10;\n    param_1[3] = uVar1;\n    param_1[1] = 0;\n    return;\n  }" if (parenthesized_expression "(puVar9 == (uint *)param_1[4])" ( (binary_expression "puVar9 == (uint *)param_1[4]" identifier == (cast_expression "(uint *)param_1[4]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[4]" identifier [ number_literal ]))) )) (compound_statement "{\n    iVar3 = ((int)puVar9 - *param_1) * 8 + uVar11;\n    uVar11 = iVar3 - param_1[1];\n    if (param_1[1] + 0x7fffffe0 == iVar3) {\n      (*(code *)PTR___throw_length_error_004c1e74)(PTR_s__s_004c1a50 + 0xd54);\n      return;\n    }\n    uVar1 = uVar11 * 2;\n    if (uVar11 == 0) {\n      iVar3 = 4;\n    }\n    else if (uVar1 < uVar11) {\n      iVar3 = 0xffffffc;\n    }\n    else {\n      uVar11 = 0x7fffffe0;\n      if (uVar1 < 0x7fffffe1) {\n        uVar11 = uVar1;\n      }\n      iVar3 = (uVar11 + 0x1f >> 5) << 2;\n    }\n    iVar2 = (*(code *)PTR_operator_new_004c13a8)(iVar3);\n    puVar9 = (uint *)*param_1;\n    if (param_2 != puVar9) {\n      (*(code *)PTR_memmove_004c5af8)(iVar2,puVar9,(int)param_2 - (int)puVar9);\n    }\n    puVar7 = (uint *)(iVar2 + ((int)param_2 - (int)puVar9));\n    if ((int)param_3 < 1) {\n      uVar11 = 1;\n      uVar1 = 1;\n      puVar10 = puVar7;\n    }\n    else {\n      uVar12 = 0;\n      uVar8 = param_3;\n      puVar10 = param_2;\n      do {\n        while( true ) {\n          uVar11 = 1 << (uVar12 & 0x1f);\n          if ((uVar11 & *puVar10) != 0) break;\n          *puVar7 = ~uVar11 & *puVar7;\n          if (uVar12 != 0x1f) goto LAB_00184984;\nLAB_001849c0:\n          uVar8 = uVar8 - 1;\n          puVar10 = puVar10 + 1;\n          puVar7 = puVar7 + 1;\n          uVar11 = 1;\n          uVar1 = 1;\n          uVar6 = 0;\n          uVar12 = uVar6;\n          if (uVar8 == 0) goto LAB_001849dc;\n        }\n        *puVar7 = uVar11 | *puVar7;\n        if (uVar12 == 0x1f) goto LAB_001849c0;\nLAB_00184984:\n        uVar6 = uVar12 + 1;\n        uVar8 = uVar8 - 1;\n        uVar1 = uVar12 + 2;\n        uVar11 = 1 << (uVar6 & 0x1f);\n        uVar12 = uVar6;\n      } while (uVar8 != 0);\nLAB_001849dc:\n      puVar10 = puVar7;\n      if (uVar6 == 0x1f) {\n        uVar1 = 0;\n        puVar10 = puVar7 + 1;\n      }\n    }\n    if (param_4 == 0) {\n      uVar11 = ~uVar11 & *puVar7;\n    }\n    else {\n      uVar11 = *puVar7 | uVar11;\n    }\n    iVar4 = (param_1[2] - (int)param_2) * 8 + (param_1[3] - param_3);\n    *puVar7 = uVar11;\n    if (0 < iVar4) {\n      do {\n        while( true ) {\n          uVar11 = 1 << (uVar1 & 0x1f);\n          if ((1 << (param_3 & 0x1f) & *param_2) != 0) break;\n          *puVar10 = ~uVar11 & *puVar10;\n          if (param_3 != 0x1f) goto LAB_00184a30;\nLAB_00184a6c:\n          param_2 = param_2 + 1;\n          param_3 = 0;\n          if (uVar1 != 0x1f) goto LAB_00184a38;\nLAB_00184a78:\n          iVar4 = iVar4 + -1;\n          puVar10 = puVar10 + 1;\n          uVar1 = 0;\n          if (iVar4 == 0) goto LAB_00184a88;\n        }\n        *puVar10 = *puVar10 | uVar11;\n        if (param_3 == 0x1f) goto LAB_00184a6c;\nLAB_00184a30:\n        param_3 = param_3 + 1;\n        if (uVar1 == 0x1f) goto LAB_00184a78;\nLAB_00184a38:\n        iVar4 = iVar4 + -1;\n        uVar1 = uVar1 + 1;\n      } while (iVar4 != 0);\n    }\nLAB_00184a88:\n    if (puVar9 != (uint *)0x0) {\n      (*(code *)PTR_operator_delete_004c12fc)(puVar9);\n      param_1[2] = 0;\n      param_1[3] = 0;\n      *param_1 = 0;\n      param_1[1] = 0;\n    }\n    *param_1 = iVar2;\n    param_1[4] = iVar2 + iVar3;\n    param_1[2] = (int)puVar10;\n    param_1[3] = uVar1;\n    param_1[1] = 0;\n    return;\n  }" { (expression_statement "iVar3 = ((int)puVar9 - *param_1) * 8 + uVar11;" (assignment_expression "iVar3 = ((int)puVar9 - *param_1) * 8 + uVar11" identifier = (binary_expression "((int)puVar9 - *param_1) * 8 + uVar11" (binary_expression "((int)puVar9 - *param_1) * 8" (parenthesized_expression "((int)puVar9 - *param_1)" ( (binary_expression "(int)puVar9 - *param_1" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*param_1" * identifier)) )) * number_literal) + identifier)) ;) (expression_statement "uVar11 = iVar3 - param_1[1];" (assignment_expression "uVar11 = iVar3 - param_1[1]" identifier = (binary_expression "iVar3 - param_1[1]" identifier - (subscript_expression "param_1[1]" identifier [ number_literal ]))) ;) (if_statement "if (param_1[1] + 0x7fffffe0 == iVar3) {\n      (*(code *)PTR___throw_length_error_004c1e74)(PTR_s__s_004c1a50 + 0xd54);\n      return;\n    }" if (parenthesized_expression "(param_1[1] + 0x7fffffe0 == iVar3)" ( (binary_expression "param_1[1] + 0x7fffffe0 == iVar3" (binary_expression "param_1[1] + 0x7fffffe0" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) == identifier) )) (compound_statement "{\n      (*(code *)PTR___throw_length_error_004c1e74)(PTR_s__s_004c1a50 + 0xd54);\n      return;\n    }" { (expression_statement "(*(code *)PTR___throw_length_error_004c1e74)(PTR_s__s_004c1a50 + 0xd54);" (call_expression "(*(code *)PTR___throw_length_error_004c1e74)(PTR_s__s_004c1a50 + 0xd54)" (parenthesized_expression "(*(code *)PTR___throw_length_error_004c1e74)" ( (pointer_expression "*(code *)PTR___throw_length_error_004c1e74" * (cast_expression "(code *)PTR___throw_length_error_004c1e74" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s__s_004c1a50 + 0xd54)" ( (binary_expression "PTR_s__s_004c1a50 + 0xd54" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar1 = uVar11 * 2;" (assignment_expression "uVar1 = uVar11 * 2" identifier = (binary_expression "uVar11 * 2" identifier * number_literal)) ;) (if_statement "if (uVar11 == 0) {\n      iVar3 = 4;\n    }\n    else if (uVar1 < uVar11) {\n      iVar3 = 0xffffffc;\n    }\n    else {\n      uVar11 = 0x7fffffe0;\n      if (uVar1 < 0x7fffffe1) {\n        uVar11 = uVar1;\n      }\n      iVar3 = (uVar11 + 0x1f >> 5) << 2;\n    }" if (parenthesized_expression "(uVar11 == 0)" ( (binary_expression "uVar11 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar3 = 4;\n    }" { (expression_statement "iVar3 = 4;" (assignment_expression "iVar3 = 4" identifier = number_literal) ;) }) (else_clause "else if (uVar1 < uVar11) {\n      iVar3 = 0xffffffc;\n    }\n    else {\n      uVar11 = 0x7fffffe0;\n      if (uVar1 < 0x7fffffe1) {\n        uVar11 = uVar1;\n      }\n      iVar3 = (uVar11 + 0x1f >> 5) << 2;\n    }" else (if_statement "if (uVar1 < uVar11) {\n      iVar3 = 0xffffffc;\n    }\n    else {\n      uVar11 = 0x7fffffe0;\n      if (uVar1 < 0x7fffffe1) {\n        uVar11 = uVar1;\n      }\n      iVar3 = (uVar11 + 0x1f >> 5) << 2;\n    }" if (parenthesized_expression "(uVar1 < uVar11)" ( (binary_expression "uVar1 < uVar11" identifier < identifier) )) (compound_statement "{\n      iVar3 = 0xffffffc;\n    }" { (expression_statement "iVar3 = 0xffffffc;" (assignment_expression "iVar3 = 0xffffffc" identifier = number_literal) ;) }) (else_clause "else {\n      uVar11 = 0x7fffffe0;\n      if (uVar1 < 0x7fffffe1) {\n        uVar11 = uVar1;\n      }\n      iVar3 = (uVar11 + 0x1f >> 5) << 2;\n    }" else (compound_statement "{\n      uVar11 = 0x7fffffe0;\n      if (uVar1 < 0x7fffffe1) {\n        uVar11 = uVar1;\n      }\n      iVar3 = (uVar11 + 0x1f >> 5) << 2;\n    }" { (expression_statement "uVar11 = 0x7fffffe0;" (assignment_expression "uVar11 = 0x7fffffe0" identifier = number_literal) ;) (if_statement "if (uVar1 < 0x7fffffe1) {\n        uVar11 = uVar1;\n      }" if (parenthesized_expression "(uVar1 < 0x7fffffe1)" ( (binary_expression "uVar1 < 0x7fffffe1" identifier < number_literal) )) (compound_statement "{\n        uVar11 = uVar1;\n      }" { (expression_statement "uVar11 = uVar1;" (assignment_expression "uVar11 = uVar1" identifier = identifier) ;) })) (expression_statement "iVar3 = (uVar11 + 0x1f >> 5) << 2;" (assignment_expression "iVar3 = (uVar11 + 0x1f >> 5) << 2" identifier = (binary_expression "(uVar11 + 0x1f >> 5) << 2" (parenthesized_expression "(uVar11 + 0x1f >> 5)" ( (binary_expression "uVar11 + 0x1f >> 5" (binary_expression "uVar11 + 0x1f" identifier + number_literal) >> number_literal) )) << number_literal)) ;) }))))) (expression_statement "iVar2 = (*(code *)PTR_operator_new_004c13a8)(iVar3);" (assignment_expression "iVar2 = (*(code *)PTR_operator_new_004c13a8)(iVar3)" identifier = (call_expression "(*(code *)PTR_operator_new_004c13a8)(iVar3)" (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 "(iVar3)" ( identifier )))) ;) (expression_statement "puVar9 = (uint *)*param_1;" (assignment_expression "puVar9 = (uint *)*param_1" identifier = (cast_expression "(uint *)*param_1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (if_statement "if (param_2 != puVar9) {\n      (*(code *)PTR_memmove_004c5af8)(iVar2,puVar9,(int)param_2 - (int)puVar9);\n    }" if (parenthesized_expression "(param_2 != puVar9)" ( (binary_expression "param_2 != puVar9" identifier != identifier) )) (compound_statement "{\n      (*(code *)PTR_memmove_004c5af8)(iVar2,puVar9,(int)param_2 - (int)puVar9);\n    }" { (expression_statement "(*(code *)PTR_memmove_004c5af8)(iVar2,puVar9,(int)param_2 - (int)puVar9);" (call_expression "(*(code *)PTR_memmove_004c5af8)(iVar2,puVar9,(int)param_2 - (int)puVar9)" (parenthesized_expression "(*(code *)PTR_memmove_004c5af8)" ( (pointer_expression "*(code *)PTR_memmove_004c5af8" * (cast_expression "(code *)PTR_memmove_004c5af8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar2,puVar9,(int)param_2 - (int)puVar9)" ( identifier , identifier , (binary_expression "(int)param_2 - (int)puVar9" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ;) })) (expression_statement "puVar7 = (uint *)(iVar2 + ((int)param_2 - (int)puVar9));" (assignment_expression "puVar7 = (uint *)(iVar2 + ((int)param_2 - (int)puVar9))" identifier = (cast_expression "(uint *)(iVar2 + ((int)param_2 - (int)puVar9))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + ((int)param_2 - (int)puVar9))" ( (binary_expression "iVar2 + ((int)param_2 - (int)puVar9)" identifier + (parenthesized_expression "((int)param_2 - (int)puVar9)" ( (binary_expression "(int)param_2 - (int)puVar9" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (if_statement "if ((int)param_3 < 1) {\n      uVar11 = 1;\n      uVar1 = 1;\n      puVar10 = puVar7;\n    }\n    else {\n      uVar12 = 0;\n      uVar8 = param_3;\n      puVar10 = param_2;\n      do {\n        while( true ) {\n          uVar11 = 1 << (uVar12 & 0x1f);\n          if ((uVar11 & *puVar10) != 0) break;\n          *puVar7 = ~uVar11 & *puVar7;\n          if (uVar12 != 0x1f) goto LAB_00184984;\nLAB_001849c0:\n          uVar8 = uVar8 - 1;\n          puVar10 = puVar10 + 1;\n          puVar7 = puVar7 + 1;\n          uVar11 = 1;\n          uVar1 = 1;\n          uVar6 = 0;\n          uVar12 = uVar6;\n          if (uVar8 == 0) goto LAB_001849dc;\n        }\n        *puVar7 = uVar11 | *puVar7;\n        if (uVar12 == 0x1f) goto LAB_001849c0;\nLAB_00184984:\n        uVar6 = uVar12 + 1;\n        uVar8 = uVar8 - 1;\n        uVar1 = uVar12 + 2;\n        uVar11 = 1 << (uVar6 & 0x1f);\n        uVar12 = uVar6;\n      } while (uVar8 != 0);\nLAB_001849dc:\n      puVar10 = puVar7;\n      if (uVar6 == 0x1f) {\n        uVar1 = 0;\n        puVar10 = puVar7 + 1;\n      }\n    }" if (parenthesized_expression "((int)param_3 < 1)" ( (binary_expression "(int)param_3 < 1" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      uVar11 = 1;\n      uVar1 = 1;\n      puVar10 = puVar7;\n    }" { (expression_statement "uVar11 = 1;" (assignment_expression "uVar11 = 1" identifier = number_literal) ;) (expression_statement "uVar1 = 1;" (assignment_expression "uVar1 = 1" identifier = number_literal) ;) (expression_statement "puVar10 = puVar7;" (assignment_expression "puVar10 = puVar7" identifier = identifier) ;) }) (else_clause "else {\n      uVar12 = 0;\n      uVar8 = param_3;\n      puVar10 = param_2;\n      do {\n        while( true ) {\n          uVar11 = 1 << (uVar12 & 0x1f);\n          if ((uVar11 & *puVar10) != 0) break;\n          *puVar7 = ~uVar11 & *puVar7;\n          if (uVar12 != 0x1f) goto LAB_00184984;\nLAB_001849c0:\n          uVar8 = uVar8 - 1;\n          puVar10 = puVar10 + 1;\n          puVar7 = puVar7 + 1;\n          uVar11 = 1;\n          uVar1 = 1;\n          uVar6 = 0;\n          uVar12 = uVar6;\n          if (uVar8 == 0) goto LAB_001849dc;\n        }\n        *puVar7 = uVar11 | *puVar7;\n        if (uVar12 == 0x1f) goto LAB_001849c0;\nLAB_00184984:\n        uVar6 = uVar12 + 1;\n        uVar8 = uVar8 - 1;\n        uVar1 = uVar12 + 2;\n        uVar11 = 1 << (uVar6 & 0x1f);\n        uVar12 = uVar6;\n      } while (uVar8 != 0);\nLAB_001849dc:\n      puVar10 = puVar7;\n      if (uVar6 == 0x1f) {\n        uVar1 = 0;\n        puVar10 = puVar7 + 1;\n      }\n    }" else (compound_statement "{\n      uVar12 = 0;\n      uVar8 = param_3;\n      puVar10 = param_2;\n      do {\n        while( true ) {\n          uVar11 = 1 << (uVar12 & 0x1f);\n          if ((uVar11 & *puVar10) != 0) break;\n          *puVar7 = ~uVar11 & *puVar7;\n          if (uVar12 != 0x1f) goto LAB_00184984;\nLAB_001849c0:\n          uVar8 = uVar8 - 1;\n          puVar10 = puVar10 + 1;\n          puVar7 = puVar7 + 1;\n          uVar11 = 1;\n          uVar1 = 1;\n          uVar6 = 0;\n          uVar12 = uVar6;\n          if (uVar8 == 0) goto LAB_001849dc;\n        }\n        *puVar7 = uVar11 | *puVar7;\n        if (uVar12 == 0x1f) goto LAB_001849c0;\nLAB_00184984:\n        uVar6 = uVar12 + 1;\n        uVar8 = uVar8 - 1;\n        uVar1 = uVar12 + 2;\n        uVar11 = 1 << (uVar6 & 0x1f);\n        uVar12 = uVar6;\n      } while (uVar8 != 0);\nLAB_001849dc:\n      puVar10 = puVar7;\n      if (uVar6 == 0x1f) {\n        uVar1 = 0;\n        puVar10 = puVar7 + 1;\n      }\n    }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (expression_statement "uVar8 = param_3;" (assignment_expression "uVar8 = param_3" identifier = identifier) ;) (expression_statement "puVar10 = param_2;" (assignment_expression "puVar10 = param_2" identifier = identifier) ;) (do_statement "do {\n        while( true ) {\n          uVar11 = 1 << (uVar12 & 0x1f);\n          if ((uVar11 & *puVar10) != 0) break;\n          *puVar7 = ~uVar11 & *puVar7;\n          if (uVar12 != 0x1f) goto LAB_00184984;\nLAB_001849c0:\n          uVar8 = uVar8 - 1;\n          puVar10 = puVar10 + 1;\n          puVar7 = puVar7 + 1;\n          uVar11 = 1;\n          uVar1 = 1;\n          uVar6 = 0;\n          uVar12 = uVar6;\n          if (uVar8 == 0) goto LAB_001849dc;\n        }\n        *puVar7 = uVar11 | *puVar7;\n        if (uVar12 == 0x1f) goto LAB_001849c0;\nLAB_00184984:\n        uVar6 = uVar12 + 1;\n        uVar8 = uVar8 - 1;\n        uVar1 = uVar12 + 2;\n        uVar11 = 1 << (uVar6 & 0x1f);\n        uVar12 = uVar6;\n      } while (uVar8 != 0);" do (compound_statement "{\n        while( true ) {\n          uVar11 = 1 << (uVar12 & 0x1f);\n          if ((uVar11 & *puVar10) != 0) break;\n          *puVar7 = ~uVar11 & *puVar7;\n          if (uVar12 != 0x1f) goto LAB_00184984;\nLAB_001849c0:\n          uVar8 = uVar8 - 1;\n          puVar10 = puVar10 + 1;\n          puVar7 = puVar7 + 1;\n          uVar11 = 1;\n          uVar1 = 1;\n          uVar6 = 0;\n          uVar12 = uVar6;\n          if (uVar8 == 0) goto LAB_001849dc;\n        }\n        *puVar7 = uVar11 | *puVar7;\n        if (uVar12 == 0x1f) goto LAB_001849c0;\nLAB_00184984:\n        uVar6 = uVar12 + 1;\n        uVar8 = uVar8 - 1;\n        uVar1 = uVar12 + 2;\n        uVar11 = 1 << (uVar6 & 0x1f);\n        uVar12 = uVar6;\n      }" { (while_statement "while( true ) {\n          uVar11 = 1 << (uVar12 & 0x1f);\n          if ((uVar11 & *puVar10) != 0) break;\n          *puVar7 = ~uVar11 & *puVar7;\n          if (uVar12 != 0x1f) goto LAB_00184984;\nLAB_001849c0:\n          uVar8 = uVar8 - 1;\n          puVar10 = puVar10 + 1;\n          puVar7 = puVar7 + 1;\n          uVar11 = 1;\n          uVar1 = 1;\n          uVar6 = 0;\n          uVar12 = uVar6;\n          if (uVar8 == 0) goto LAB_001849dc;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          uVar11 = 1 << (uVar12 & 0x1f);\n          if ((uVar11 & *puVar10) != 0) break;\n          *puVar7 = ~uVar11 & *puVar7;\n          if (uVar12 != 0x1f) goto LAB_00184984;\nLAB_001849c0:\n          uVar8 = uVar8 - 1;\n          puVar10 = puVar10 + 1;\n          puVar7 = puVar7 + 1;\n          uVar11 = 1;\n          uVar1 = 1;\n          uVar6 = 0;\n          uVar12 = uVar6;\n          if (uVar8 == 0) goto LAB_001849dc;\n        }" { (expression_statement "uVar11 = 1 << (uVar12 & 0x1f);" (assignment_expression "uVar11 = 1 << (uVar12 & 0x1f)" identifier = (binary_expression "1 << (uVar12 & 0x1f)" number_literal << (parenthesized_expression "(uVar12 & 0x1f)" ( (binary_expression "uVar12 & 0x1f" identifier & number_literal) )))) ;) (if_statement "if ((uVar11 & *puVar10) != 0) break;" if (parenthesized_expression "((uVar11 & *puVar10) != 0)" ( (binary_expression "(uVar11 & *puVar10) != 0" (parenthesized_expression "(uVar11 & *puVar10)" ( (binary_expression "uVar11 & *puVar10" identifier & (pointer_expression "*puVar10" * identifier)) )) != number_literal) )) (break_statement "break;" break ;)) (expression_statement "*puVar7 = ~uVar11 & *puVar7;" (assignment_expression "*puVar7 = ~uVar11 & *puVar7" (pointer_expression "*puVar7" * identifier) = (binary_expression "~uVar11 & *puVar7" (unary_expression "~uVar11" ~ identifier) & (pointer_expression "*puVar7" * identifier))) ;) (if_statement "if (uVar12 != 0x1f) goto LAB_00184984;" if (parenthesized_expression "(uVar12 != 0x1f)" ( (binary_expression "uVar12 != 0x1f" identifier != number_literal) )) (goto_statement "goto LAB_00184984;" goto statement_identifier ;)) (labeled_statement "LAB_001849c0:\n          uVar8 = uVar8 - 1;" statement_identifier : (expression_statement "uVar8 = uVar8 - 1;" (assignment_expression "uVar8 = uVar8 - 1" identifier = (binary_expression "uVar8 - 1" identifier - number_literal)) ;)) (expression_statement "puVar10 = puVar10 + 1;" (assignment_expression "puVar10 = puVar10 + 1" identifier = (binary_expression "puVar10 + 1" identifier + number_literal)) ;) (expression_statement "puVar7 = puVar7 + 1;" (assignment_expression "puVar7 = puVar7 + 1" identifier = (binary_expression "puVar7 + 1" identifier + number_literal)) ;) (expression_statement "uVar11 = 1;" (assignment_expression "uVar11 = 1" identifier = number_literal) ;) (expression_statement "uVar1 = 1;" (assignment_expression "uVar1 = 1" identifier = number_literal) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (expression_statement "uVar12 = uVar6;" (assignment_expression "uVar12 = uVar6" identifier = identifier) ;) (if_statement "if (uVar8 == 0) goto LAB_001849dc;" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001849dc;" goto statement_identifier ;)) })) (expression_statement "*puVar7 = uVar11 | *puVar7;" (assignment_expression "*puVar7 = uVar11 | *puVar7" (pointer_expression "*puVar7" * identifier) = (binary_expression "uVar11 | *puVar7" identifier | (pointer_expression "*puVar7" * identifier))) ;) (if_statement "if (uVar12 == 0x1f) goto LAB_001849c0;" if (parenthesized_expression "(uVar12 == 0x1f)" ( (binary_expression "uVar12 == 0x1f" identifier == number_literal) )) (goto_statement "goto LAB_001849c0;" goto statement_identifier ;)) (labeled_statement "LAB_00184984:\n        uVar6 = uVar12 + 1;" statement_identifier : (expression_statement "uVar6 = uVar12 + 1;" (assignment_expression "uVar6 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;)) (expression_statement "uVar8 = uVar8 - 1;" (assignment_expression "uVar8 = uVar8 - 1" identifier = (binary_expression "uVar8 - 1" identifier - number_literal)) ;) (expression_statement "uVar1 = uVar12 + 2;" (assignment_expression "uVar1 = uVar12 + 2" identifier = (binary_expression "uVar12 + 2" identifier + number_literal)) ;) (expression_statement "uVar11 = 1 << (uVar6 & 0x1f);" (assignment_expression "uVar11 = 1 << (uVar6 & 0x1f)" identifier = (binary_expression "1 << (uVar6 & 0x1f)" number_literal << (parenthesized_expression "(uVar6 & 0x1f)" ( (binary_expression "uVar6 & 0x1f" identifier & number_literal) )))) ;) (expression_statement "uVar12 = uVar6;" (assignment_expression "uVar12 = uVar6" identifier = identifier) ;) }) while (parenthesized_expression "(uVar8 != 0)" ( (binary_expression "uVar8 != 0" identifier != number_literal) )) ;) (labeled_statement "LAB_001849dc:\n      puVar10 = puVar7;" statement_identifier : (expression_statement "puVar10 = puVar7;" (assignment_expression "puVar10 = puVar7" identifier = identifier) ;)) (if_statement "if (uVar6 == 0x1f) {\n        uVar1 = 0;\n        puVar10 = puVar7 + 1;\n      }" if (parenthesized_expression "(uVar6 == 0x1f)" ( (binary_expression "uVar6 == 0x1f" identifier == number_literal) )) (compound_statement "{\n        uVar1 = 0;\n        puVar10 = puVar7 + 1;\n      }" { (expression_statement "uVar1 = 0;" (assignment_expression "uVar1 = 0" identifier = number_literal) ;) (expression_statement "puVar10 = puVar7 + 1;" (assignment_expression "puVar10 = puVar7 + 1" identifier = (binary_expression "puVar7 + 1" identifier + number_literal)) ;) })) }))) (if_statement "if (param_4 == 0) {\n      uVar11 = ~uVar11 & *puVar7;\n    }\n    else {\n      uVar11 = *puVar7 | uVar11;\n    }" if (parenthesized_expression "(param_4 == 0)" ( (binary_expression "param_4 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar11 = ~uVar11 & *puVar7;\n    }" { (expression_statement "uVar11 = ~uVar11 & *puVar7;" (assignment_expression "uVar11 = ~uVar11 & *puVar7" identifier = (binary_expression "~uVar11 & *puVar7" (unary_expression "~uVar11" ~ identifier) & (pointer_expression "*puVar7" * identifier))) ;) }) (else_clause "else {\n      uVar11 = *puVar7 | uVar11;\n    }" else (compound_statement "{\n      uVar11 = *puVar7 | uVar11;\n    }" { (expression_statement "uVar11 = *puVar7 | uVar11;" (assignment_expression "uVar11 = *puVar7 | uVar11" identifier = (binary_expression "*puVar7 | uVar11" (pointer_expression "*puVar7" * identifier) | identifier)) ;) }))) (expression_statement "iVar4 = (param_1[2] - (int)param_2) * 8 + (param_1[3] - param_3);" (assignment_expression "iVar4 = (param_1[2] - (int)param_2) * 8 + (param_1[3] - param_3)" identifier = (binary_expression "(param_1[2] - (int)param_2) * 8 + (param_1[3] - param_3)" (binary_expression "(param_1[2] - (int)param_2) * 8" (parenthesized_expression "(param_1[2] - (int)param_2)" ( (binary_expression "param_1[2] - (int)param_2" (subscript_expression "param_1[2]" identifier [ number_literal ]) - (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )) * number_literal) + (parenthesized_expression "(param_1[3] - param_3)" ( (binary_expression "param_1[3] - param_3" (subscript_expression "param_1[3]" identifier [ number_literal ]) - identifier) )))) ;) (expression_statement "*puVar7 = uVar11;" (assignment_expression "*puVar7 = uVar11" (pointer_expression "*puVar7" * identifier) = identifier) ;) (if_statement "if (0 < iVar4) {\n      do {\n        while( true ) {\n          uVar11 = 1 << (uVar1 & 0x1f);\n          if ((1 << (param_3 & 0x1f) & *param_2) != 0) break;\n          *puVar10 = ~uVar11 & *puVar10;\n          if (param_3 != 0x1f) goto LAB_00184a30;\nLAB_00184a6c:\n          param_2 = param_2 + 1;\n          param_3 = 0;\n          if (uVar1 != 0x1f) goto LAB_00184a38;\nLAB_00184a78:\n          iVar4 = iVar4 + -1;\n          puVar10 = puVar10 + 1;\n          uVar1 = 0;\n          if (iVar4 == 0) goto LAB_00184a88;\n        }\n        *puVar10 = *puVar10 | uVar11;\n        if (param_3 == 0x1f) goto LAB_00184a6c;\nLAB_00184a30:\n        param_3 = param_3 + 1;\n        if (uVar1 == 0x1f) goto LAB_00184a78;\nLAB_00184a38:\n        iVar4 = iVar4 + -1;\n        uVar1 = uVar1 + 1;\n      } while (iVar4 != 0);\n    }" if (parenthesized_expression "(0 < iVar4)" ( (binary_expression "0 < iVar4" number_literal < identifier) )) (compound_statement "{\n      do {\n        while( true ) {\n          uVar11 = 1 << (uVar1 & 0x1f);\n          if ((1 << (param_3 & 0x1f) & *param_2) != 0) break;\n          *puVar10 = ~uVar11 & *puVar10;\n          if (param_3 != 0x1f) goto LAB_00184a30;\nLAB_00184a6c:\n          param_2 = param_2 + 1;\n          param_3 = 0;\n          if (uVar1 != 0x1f) goto LAB_00184a38;\nLAB_00184a78:\n          iVar4 = iVar4 + -1;\n          puVar10 = puVar10 + 1;\n          uVar1 = 0;\n          if (iVar4 == 0) goto LAB_00184a88;\n        }\n        *puVar10 = *puVar10 | uVar11;\n        if (param_3 == 0x1f) goto LAB_00184a6c;\nLAB_00184a30:\n        param_3 = param_3 + 1;\n        if (uVar1 == 0x1f) goto LAB_00184a78;\nLAB_00184a38:\n        iVar4 = iVar4 + -1;\n        uVar1 = uVar1 + 1;\n      } while (iVar4 != 0);\n    }" { (do_statement "do {\n        while( true ) {\n          uVar11 = 1 << (uVar1 & 0x1f);\n          if ((1 << (param_3 & 0x1f) & *param_2) != 0) break;\n          *puVar10 = ~uVar11 & *puVar10;\n          if (param_3 != 0x1f) goto LAB_00184a30;\nLAB_00184a6c:\n          param_2 = param_2 + 1;\n          param_3 = 0;\n          if (uVar1 != 0x1f) goto LAB_00184a38;\nLAB_00184a78:\n          iVar4 = iVar4 + -1;\n          puVar10 = puVar10 + 1;\n          uVar1 = 0;\n          if (iVar4 == 0) goto LAB_00184a88;\n        }\n        *puVar10 = *puVar10 | uVar11;\n        if (param_3 == 0x1f) goto LAB_00184a6c;\nLAB_00184a30:\n        param_3 = param_3 + 1;\n        if (uVar1 == 0x1f) goto LAB_00184a78;\nLAB_00184a38:\n        iVar4 = iVar4 + -1;\n        uVar1 = uVar1 + 1;\n      } while (iVar4 != 0);" do (compound_statement "{\n        while( true ) {\n          uVar11 = 1 << (uVar1 & 0x1f);\n          if ((1 << (param_3 & 0x1f) & *param_2) != 0) break;\n          *puVar10 = ~uVar11 & *puVar10;\n          if (param_3 != 0x1f) goto LAB_00184a30;\nLAB_00184a6c:\n          param_2 = param_2 + 1;\n          param_3 = 0;\n          if (uVar1 != 0x1f) goto LAB_00184a38;\nLAB_00184a78:\n          iVar4 = iVar4 + -1;\n          puVar10 = puVar10 + 1;\n          uVar1 = 0;\n          if (iVar4 == 0) goto LAB_00184a88;\n        }\n        *puVar10 = *puVar10 | uVar11;\n        if (param_3 == 0x1f) goto LAB_00184a6c;\nLAB_00184a30:\n        param_3 = param_3 + 1;\n        if (uVar1 == 0x1f) goto LAB_00184a78;\nLAB_00184a38:\n        iVar4 = iVar4 + -1;\n        uVar1 = uVar1 + 1;\n      }" { (while_statement "while( true ) {\n          uVar11 = 1 << (uVar1 & 0x1f);\n          if ((1 << (param_3 & 0x1f) & *param_2) != 0) break;\n          *puVar10 = ~uVar11 & *puVar10;\n          if (param_3 != 0x1f) goto LAB_00184a30;\nLAB_00184a6c:\n          param_2 = param_2 + 1;\n          param_3 = 0;\n          if (uVar1 != 0x1f) goto LAB_00184a38;\nLAB_00184a78:\n          iVar4 = iVar4 + -1;\n          puVar10 = puVar10 + 1;\n          uVar1 = 0;\n          if (iVar4 == 0) goto LAB_00184a88;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          uVar11 = 1 << (uVar1 & 0x1f);\n          if ((1 << (param_3 & 0x1f) & *param_2) != 0) break;\n          *puVar10 = ~uVar11 & *puVar10;\n          if (param_3 != 0x1f) goto LAB_00184a30;\nLAB_00184a6c:\n          param_2 = param_2 + 1;\n          param_3 = 0;\n          if (uVar1 != 0x1f) goto LAB_00184a38;\nLAB_00184a78:\n          iVar4 = iVar4 + -1;\n          puVar10 = puVar10 + 1;\n          uVar1 = 0;\n          if (iVar4 == 0) goto LAB_00184a88;\n        }" { (expression_statement "uVar11 = 1 << (uVar1 & 0x1f);" (assignment_expression "uVar11 = 1 << (uVar1 & 0x1f)" identifier = (binary_expression "1 << (uVar1 & 0x1f)" number_literal << (parenthesized_expression "(uVar1 & 0x1f)" ( (binary_expression "uVar1 & 0x1f" identifier & number_literal) )))) ;) (if_statement "if ((1 << (param_3 & 0x1f) & *param_2) != 0) break;" if (parenthesized_expression "((1 << (param_3 & 0x1f) & *param_2) != 0)" ( (binary_expression "(1 << (param_3 & 0x1f) & *param_2) != 0" (parenthesized_expression "(1 << (param_3 & 0x1f) & *param_2)" ( (binary_expression "1 << (param_3 & 0x1f) & *param_2" (binary_expression "1 << (param_3 & 0x1f)" number_literal << (parenthesized_expression "(param_3 & 0x1f)" ( (binary_expression "param_3 & 0x1f" identifier & number_literal) ))) & (pointer_expression "*param_2" * identifier)) )) != number_literal) )) (break_statement "break;" break ;)) (expression_statement "*puVar10 = ~uVar11 & *puVar10;" (assignment_expression "*puVar10 = ~uVar11 & *puVar10" (pointer_expression "*puVar10" * identifier) = (binary_expression "~uVar11 & *puVar10" (unary_expression "~uVar11" ~ identifier) & (pointer_expression "*puVar10" * identifier))) ;) (if_statement "if (param_3 != 0x1f) goto LAB_00184a30;" if (parenthesized_expression "(param_3 != 0x1f)" ( (binary_expression "param_3 != 0x1f" identifier != number_literal) )) (goto_statement "goto LAB_00184a30;" goto statement_identifier ;)) (labeled_statement "LAB_00184a6c:\n          param_2 = param_2 + 1;" statement_identifier : (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;)) (expression_statement "param_3 = 0;" (assignment_expression "param_3 = 0" identifier = number_literal) ;) (if_statement "if (uVar1 != 0x1f) goto LAB_00184a38;" if (parenthesized_expression "(uVar1 != 0x1f)" ( (binary_expression "uVar1 != 0x1f" identifier != number_literal) )) (goto_statement "goto LAB_00184a38;" goto statement_identifier ;)) (labeled_statement "LAB_00184a78:\n          iVar4 = iVar4 + -1;" statement_identifier : (expression_statement "iVar4 = iVar4 + -1;" (assignment_expression "iVar4 = iVar4 + -1" identifier = (binary_expression "iVar4 + -1" identifier + number_literal)) ;)) (expression_statement "puVar10 = puVar10 + 1;" (assignment_expression "puVar10 = puVar10 + 1" identifier = (binary_expression "puVar10 + 1" identifier + number_literal)) ;) (expression_statement "uVar1 = 0;" (assignment_expression "uVar1 = 0" identifier = number_literal) ;) (if_statement "if (iVar4 == 0) goto LAB_00184a88;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00184a88;" goto statement_identifier ;)) })) (expression_statement "*puVar10 = *puVar10 | uVar11;" (assignment_expression "*puVar10 = *puVar10 | uVar11" (pointer_expression "*puVar10" * identifier) = (binary_expression "*puVar10 | uVar11" (pointer_expression "*puVar10" * identifier) | identifier)) ;) (if_statement "if (param_3 == 0x1f) goto LAB_00184a6c;" if (parenthesized_expression "(param_3 == 0x1f)" ( (binary_expression "param_3 == 0x1f" identifier == number_literal) )) (goto_statement "goto LAB_00184a6c;" goto statement_identifier ;)) (labeled_statement "LAB_00184a30:\n        param_3 = param_3 + 1;" statement_identifier : (expression_statement "param_3 = param_3 + 1;" (assignment_expression "param_3 = param_3 + 1" identifier = (binary_expression "param_3 + 1" identifier + number_literal)) ;)) (if_statement "if (uVar1 == 0x1f) goto LAB_00184a78;" if (parenthesized_expression "(uVar1 == 0x1f)" ( (binary_expression "uVar1 == 0x1f" identifier == number_literal) )) (goto_statement "goto LAB_00184a78;" goto statement_identifier ;)) (labeled_statement "LAB_00184a38:\n        iVar4 = iVar4 + -1;" statement_identifier : (expression_statement "iVar4 = iVar4 + -1;" (assignment_expression "iVar4 = iVar4 + -1" identifier = (binary_expression "iVar4 + -1" identifier + number_literal)) ;)) (expression_statement "uVar1 = uVar1 + 1;" (assignment_expression "uVar1 = uVar1 + 1" identifier = (binary_expression "uVar1 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) ;) })) (labeled_statement "LAB_00184a88:\n    if (puVar9 != (uint *)0x0) {\n      (*(code *)PTR_operator_delete_004c12fc)(puVar9);\n      param_1[2] = 0;\n      param_1[3] = 0;\n      *param_1 = 0;\n      param_1[1] = 0;\n    }" statement_identifier : (if_statement "if (puVar9 != (uint *)0x0) {\n      (*(code *)PTR_operator_delete_004c12fc)(puVar9);\n      param_1[2] = 0;\n      param_1[3] = 0;\n      *param_1 = 0;\n      param_1[1] = 0;\n    }" if (parenthesized_expression "(puVar9 != (uint *)0x0)" ( (binary_expression "puVar9 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (*(code *)PTR_operator_delete_004c12fc)(puVar9);\n      param_1[2] = 0;\n      param_1[3] = 0;\n      *param_1 = 0;\n      param_1[1] = 0;\n    }" { (expression_statement "(*(code *)PTR_operator_delete_004c12fc)(puVar9);" (call_expression "(*(code *)PTR_operator_delete_004c12fc)(puVar9)" (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 "(puVar9)" ( identifier ))) ;) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[3] = 0;" (assignment_expression "param_1[3] = 0" (subscript_expression "param_1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*param_1 = 0;" (assignment_expression "*param_1 = 0" (pointer_expression "*param_1" * identifier) = number_literal) ;) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) }))) (expression_statement "*param_1 = iVar2;" (assignment_expression "*param_1 = iVar2" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[4] = iVar2 + iVar3;" (assignment_expression "param_1[4] = iVar2 + iVar3" (subscript_expression "param_1[4]" identifier [ number_literal ]) = (binary_expression "iVar2 + iVar3" identifier + identifier)) ;) (expression_statement "param_1[2] = (int)puVar10;" (assignment_expression "param_1[2] = (int)puVar10" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "param_1[3] = uVar1;" (assignment_expression "param_1[3] = uVar1" (subscript_expression "param_1[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (return_statement "return;" return ;) })) (expression_statement "uVar12 = uVar11 + 1;" (assignment_expression "uVar12 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ;) (expression_statement "uVar1 = uVar12;" (assignment_expression "uVar1 = uVar12" identifier = identifier) ;) (if_statement "if ((int)uVar12 < 0) {\n    uVar1 = uVar11 + 0x20;\n  }" if (parenthesized_expression "((int)uVar12 < 0)" ( (binary_expression "(int)uVar12 < 0" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    uVar1 = uVar11 + 0x20;\n  }" { (expression_statement "uVar1 = uVar11 + 0x20;" (assignment_expression "uVar1 = uVar11 + 0x20" identifier = (binary_expression "uVar11 + 0x20" identifier + number_literal)) ;) })) (expression_statement "puVar7 = puVar9 + ((int)uVar1 >> 5);" (assignment_expression "puVar7 = puVar9 + ((int)uVar1 >> 5)" identifier = (binary_expression "puVar9 + ((int)uVar1 >> 5)" identifier + (parenthesized_expression "((int)uVar1 >> 5)" ( (binary_expression "(int)uVar1 >> 5" (cast_expression "(int)uVar1" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (if_statement "if ((int)uVar12 < 0) {\n    uVar1 = ((uVar12 & 0x8000001f) - 1 | 0xffffffe0) + 1;\n  }\n  else {\n    uVar1 = uVar12 & 0x8000001f;\n  }" if (parenthesized_expression "((int)uVar12 < 0)" ( (binary_expression "(int)uVar12 < 0" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    uVar1 = ((uVar12 & 0x8000001f) - 1 | 0xffffffe0) + 1;\n  }" { (expression_statement "uVar1 = ((uVar12 & 0x8000001f) - 1 | 0xffffffe0) + 1;" (assignment_expression "uVar1 = ((uVar12 & 0x8000001f) - 1 | 0xffffffe0) + 1" identifier = (binary_expression "((uVar12 & 0x8000001f) - 1 | 0xffffffe0) + 1" (parenthesized_expression "((uVar12 & 0x8000001f) - 1 | 0xffffffe0)" ( (binary_expression "(uVar12 & 0x8000001f) - 1 | 0xffffffe0" (binary_expression "(uVar12 & 0x8000001f) - 1" (parenthesized_expression "(uVar12 & 0x8000001f)" ( (binary_expression "uVar12 & 0x8000001f" identifier & number_literal) )) - number_literal) | number_literal) )) + number_literal)) ;) }) (else_clause "else {\n    uVar1 = uVar12 & 0x8000001f;\n  }" else (compound_statement "{\n    uVar1 = uVar12 & 0x8000001f;\n  }" { (expression_statement "uVar1 = uVar12 & 0x8000001f;" (assignment_expression "uVar1 = uVar12 & 0x8000001f" identifier = (binary_expression "uVar12 & 0x8000001f" identifier & number_literal)) ;) }))) (if_statement "if ((int)uVar1 < 0) {\n    uVar1 = uVar1 + 0x20;\n    puVar7 = puVar7 + -1;\n  }" if (parenthesized_expression "((int)uVar1 < 0)" ( (binary_expression "(int)uVar1 < 0" (cast_expression "(int)uVar1" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    uVar1 = uVar1 + 0x20;\n    puVar7 = puVar7 + -1;\n  }" { (expression_statement "uVar1 = uVar1 + 0x20;" (assignment_expression "uVar1 = uVar1 + 0x20" identifier = (binary_expression "uVar1 + 0x20" identifier + number_literal)) ;) (expression_statement "puVar7 = puVar7 + -1;" (assignment_expression "puVar7 = puVar7 + -1" identifier = (binary_expression "puVar7 + -1" identifier + number_literal)) ;) })) (expression_statement "iVar3 = ((int)puVar9 - (int)param_2) * 8 + (uVar11 - param_3);" (assignment_expression "iVar3 = ((int)puVar9 - (int)param_2) * 8 + (uVar11 - param_3)" identifier = (binary_expression "((int)puVar9 - (int)param_2) * 8 + (uVar11 - param_3)" (binary_expression "((int)puVar9 - (int)param_2) * 8" (parenthesized_expression "((int)puVar9 - (int)param_2)" ( (binary_expression "(int)puVar9 - (int)param_2" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )) * number_literal) + (parenthesized_expression "(uVar11 - param_3)" ( (binary_expression "uVar11 - param_3" identifier - identifier) )))) ;) (expression_statement "uVar8 = uVar11;" (assignment_expression "uVar8 = uVar11" identifier = identifier) ;) (expression_statement "puVar10 = puVar9;" (assignment_expression "puVar10 = puVar9" identifier = identifier) ;) (if_statement "if (0 < iVar3) {\n    do {\n      while (uVar1 != 0) {\n        uVar1 = uVar1 - 1;\n        uVar6 = 1 << (uVar1 & 0x1f);\n        if (uVar8 == 0) goto LAB_001847b0;\nLAB_00184770:\n        uVar8 = uVar8 - 1;\n        uVar5 = *puVar7;\n        if ((1 << (uVar8 & 0x1f) & *puVar10) == 0) goto LAB_001847cc;\nLAB_00184788:\n        iVar3 = iVar3 + -1;\n        *puVar7 = uVar6 | uVar5;\n        if (iVar3 == 0) goto LAB_001847e0;\n      }\n      puVar7 = puVar7 + -1;\n      uVar6 = 0x80000000;\n      uVar1 = 0x1f;\n      if (uVar8 != 0) goto LAB_00184770;\nLAB_001847b0:\n      puVar10 = puVar10 + -1;\n      uVar5 = *puVar7;\n      uVar8 = 0x1f;\n      if ((*puVar10 & 0x80000000) != 0) goto LAB_00184788;\nLAB_001847cc:\n      iVar3 = iVar3 + -1;\n      *puVar7 = ~uVar6 & uVar5;\n    } while (iVar3 != 0);\n  }" if (parenthesized_expression "(0 < iVar3)" ( (binary_expression "0 < iVar3" number_literal < identifier) )) (compound_statement "{\n    do {\n      while (uVar1 != 0) {\n        uVar1 = uVar1 - 1;\n        uVar6 = 1 << (uVar1 & 0x1f);\n        if (uVar8 == 0) goto LAB_001847b0;\nLAB_00184770:\n        uVar8 = uVar8 - 1;\n        uVar5 = *puVar7;\n        if ((1 << (uVar8 & 0x1f) & *puVar10) == 0) goto LAB_001847cc;\nLAB_00184788:\n        iVar3 = iVar3 + -1;\n        *puVar7 = uVar6 | uVar5;\n        if (iVar3 == 0) goto LAB_001847e0;\n      }\n      puVar7 = puVar7 + -1;\n      uVar6 = 0x80000000;\n      uVar1 = 0x1f;\n      if (uVar8 != 0) goto LAB_00184770;\nLAB_001847b0:\n      puVar10 = puVar10 + -1;\n      uVar5 = *puVar7;\n      uVar8 = 0x1f;\n      if ((*puVar10 & 0x80000000) != 0) goto LAB_00184788;\nLAB_001847cc:\n      iVar3 = iVar3 + -1;\n      *puVar7 = ~uVar6 & uVar5;\n    } while (iVar3 != 0);\n  }" { (do_statement "do {\n      while (uVar1 != 0) {\n        uVar1 = uVar1 - 1;\n        uVar6 = 1 << (uVar1 & 0x1f);\n        if (uVar8 == 0) goto LAB_001847b0;\nLAB_00184770:\n        uVar8 = uVar8 - 1;\n        uVar5 = *puVar7;\n        if ((1 << (uVar8 & 0x1f) & *puVar10) == 0) goto LAB_001847cc;\nLAB_00184788:\n        iVar3 = iVar3 + -1;\n        *puVar7 = uVar6 | uVar5;\n        if (iVar3 == 0) goto LAB_001847e0;\n      }\n      puVar7 = puVar7 + -1;\n      uVar6 = 0x80000000;\n      uVar1 = 0x1f;\n      if (uVar8 != 0) goto LAB_00184770;\nLAB_001847b0:\n      puVar10 = puVar10 + -1;\n      uVar5 = *puVar7;\n      uVar8 = 0x1f;\n      if ((*puVar10 & 0x80000000) != 0) goto LAB_00184788;\nLAB_001847cc:\n      iVar3 = iVar3 + -1;\n      *puVar7 = ~uVar6 & uVar5;\n    } while (iVar3 != 0);" do (compound_statement "{\n      while (uVar1 != 0) {\n        uVar1 = uVar1 - 1;\n        uVar6 = 1 << (uVar1 & 0x1f);\n        if (uVar8 == 0) goto LAB_001847b0;\nLAB_00184770:\n        uVar8 = uVar8 - 1;\n        uVar5 = *puVar7;\n        if ((1 << (uVar8 & 0x1f) & *puVar10) == 0) goto LAB_001847cc;\nLAB_00184788:\n        iVar3 = iVar3 + -1;\n        *puVar7 = uVar6 | uVar5;\n        if (iVar3 == 0) goto LAB_001847e0;\n      }\n      puVar7 = puVar7 + -1;\n      uVar6 = 0x80000000;\n      uVar1 = 0x1f;\n      if (uVar8 != 0) goto LAB_00184770;\nLAB_001847b0:\n      puVar10 = puVar10 + -1;\n      uVar5 = *puVar7;\n      uVar8 = 0x1f;\n      if ((*puVar10 & 0x80000000) != 0) goto LAB_00184788;\nLAB_001847cc:\n      iVar3 = iVar3 + -1;\n      *puVar7 = ~uVar6 & uVar5;\n    }" { (while_statement "while (uVar1 != 0) {\n        uVar1 = uVar1 - 1;\n        uVar6 = 1 << (uVar1 & 0x1f);\n        if (uVar8 == 0) goto LAB_001847b0;\nLAB_00184770:\n        uVar8 = uVar8 - 1;\n        uVar5 = *puVar7;\n        if ((1 << (uVar8 & 0x1f) & *puVar10) == 0) goto LAB_001847cc;\nLAB_00184788:\n        iVar3 = iVar3 + -1;\n        *puVar7 = uVar6 | uVar5;\n        if (iVar3 == 0) goto LAB_001847e0;\n      }" while (parenthesized_expression "(uVar1 != 0)" ( (binary_expression "uVar1 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar1 = uVar1 - 1;\n        uVar6 = 1 << (uVar1 & 0x1f);\n        if (uVar8 == 0) goto LAB_001847b0;\nLAB_00184770:\n        uVar8 = uVar8 - 1;\n        uVar5 = *puVar7;\n        if ((1 << (uVar8 & 0x1f) & *puVar10) == 0) goto LAB_001847cc;\nLAB_00184788:\n        iVar3 = iVar3 + -1;\n        *puVar7 = uVar6 | uVar5;\n        if (iVar3 == 0) goto LAB_001847e0;\n      }" { (expression_statement "uVar1 = uVar1 - 1;" (assignment_expression "uVar1 = uVar1 - 1" identifier = (binary_expression "uVar1 - 1" identifier - number_literal)) ;) (expression_statement "uVar6 = 1 << (uVar1 & 0x1f);" (assignment_expression "uVar6 = 1 << (uVar1 & 0x1f)" identifier = (binary_expression "1 << (uVar1 & 0x1f)" number_literal << (parenthesized_expression "(uVar1 & 0x1f)" ( (binary_expression "uVar1 & 0x1f" identifier & number_literal) )))) ;) (if_statement "if (uVar8 == 0) goto LAB_001847b0;" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001847b0;" goto statement_identifier ;)) (labeled_statement "LAB_00184770:\n        uVar8 = uVar8 - 1;" statement_identifier : (expression_statement "uVar8 = uVar8 - 1;" (assignment_expression "uVar8 = uVar8 - 1" identifier = (binary_expression "uVar8 - 1" identifier - number_literal)) ;)) (expression_statement "uVar5 = *puVar7;" (assignment_expression "uVar5 = *puVar7" identifier = (pointer_expression "*puVar7" * identifier)) ;) (if_statement "if ((1 << (uVar8 & 0x1f) & *puVar10) == 0) goto LAB_001847cc;" if (parenthesized_expression "((1 << (uVar8 & 0x1f) & *puVar10) == 0)" ( (binary_expression "(1 << (uVar8 & 0x1f) & *puVar10) == 0" (parenthesized_expression "(1 << (uVar8 & 0x1f) & *puVar10)" ( (binary_expression "1 << (uVar8 & 0x1f) & *puVar10" (binary_expression "1 << (uVar8 & 0x1f)" number_literal << (parenthesized_expression "(uVar8 & 0x1f)" ( (binary_expression "uVar8 & 0x1f" identifier & number_literal) ))) & (pointer_expression "*puVar10" * identifier)) )) == number_literal) )) (goto_statement "goto LAB_001847cc;" goto statement_identifier ;)) (labeled_statement "LAB_00184788:\n        iVar3 = iVar3 + -1;" statement_identifier : (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ;)) (expression_statement "*puVar7 = uVar6 | uVar5;" (assignment_expression "*puVar7 = uVar6 | uVar5" (pointer_expression "*puVar7" * identifier) = (binary_expression "uVar6 | uVar5" identifier | identifier)) ;) (if_statement "if (iVar3 == 0) goto LAB_001847e0;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001847e0;" goto statement_identifier ;)) })) (expression_statement "puVar7 = puVar7 + -1;" (assignment_expression "puVar7 = puVar7 + -1" identifier = (binary_expression "puVar7 + -1" identifier + number_literal)) ;) (expression_statement "uVar6 = 0x80000000;" (assignment_expression "uVar6 = 0x80000000" identifier = number_literal) ;) (expression_statement "uVar1 = 0x1f;" (assignment_expression "uVar1 = 0x1f" identifier = number_literal) ;) (if_statement "if (uVar8 != 0) goto LAB_00184770;" if (parenthesized_expression "(uVar8 != 0)" ( (binary_expression "uVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00184770;" goto statement_identifier ;)) (labeled_statement "LAB_001847b0:\n      puVar10 = puVar10 + -1;" statement_identifier : (expression_statement "puVar10 = puVar10 + -1;" (assignment_expression "puVar10 = puVar10 + -1" identifier = (binary_expression "puVar10 + -1" identifier + number_literal)) ;)) (expression_statement "uVar5 = *puVar7;" (assignment_expression "uVar5 = *puVar7" identifier = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "uVar8 = 0x1f;" (assignment_expression "uVar8 = 0x1f" identifier = number_literal) ;) (if_statement "if ((*puVar10 & 0x80000000) != 0) goto LAB_00184788;" if (parenthesized_expression "((*puVar10 & 0x80000000) != 0)" ( (binary_expression "(*puVar10 & 0x80000000) != 0" (parenthesized_expression "(*puVar10 & 0x80000000)" ( (binary_expression "*puVar10 & 0x80000000" (pointer_expression "*puVar10" * identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00184788;" goto statement_identifier ;)) (labeled_statement "LAB_001847cc:\n      iVar3 = iVar3 + -1;" statement_identifier : (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ;)) (expression_statement "*puVar7 = ~uVar6 & uVar5;" (assignment_expression "*puVar7 = ~uVar6 & uVar5" (pointer_expression "*puVar7" * identifier) = (binary_expression "~uVar6 & uVar5" (unary_expression "~uVar6" ~ identifier) & identifier)) ;) }) while (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) ;) })) (labeled_statement "LAB_001847e0:\n  uVar1 = 1 << (param_3 & 0x1f);" statement_identifier : (expression_statement "uVar1 = 1 << (param_3 & 0x1f);" (assignment_expression "uVar1 = 1 << (param_3 & 0x1f)" identifier = (binary_expression "1 << (param_3 & 0x1f)" number_literal << (parenthesized_expression "(param_3 & 0x1f)" ( (binary_expression "param_3 & 0x1f" identifier & number_literal) )))) ;)) (if_statement "if (param_4 == 0) {\n    *param_2 = ~uVar1 & *param_2;\n  }\n  else {\n    *param_2 = uVar1 | *param_2;\n  }" if (parenthesized_expression "(param_4 == 0)" ( (binary_expression "param_4 == 0" identifier == number_literal) )) (compound_statement "{\n    *param_2 = ~uVar1 & *param_2;\n  }" { (expression_statement "*param_2 = ~uVar1 & *param_2;" (assignment_expression "*param_2 = ~uVar1 & *param_2" (pointer_expression "*param_2" * identifier) = (binary_expression "~uVar1 & *param_2" (unary_expression "~uVar1" ~ identifier) & (pointer_expression "*param_2" * identifier))) ;) }) (else_clause "else {\n    *param_2 = uVar1 | *param_2;\n  }" else (compound_statement "{\n    *param_2 = uVar1 | *param_2;\n  }" { (expression_statement "*param_2 = uVar1 | *param_2;" (assignment_expression "*param_2 = uVar1 | *param_2" (pointer_expression "*param_2" * identifier) = (binary_expression "uVar1 | *param_2" identifier | (pointer_expression "*param_2" * identifier))) ;) }))) (if_statement "if (uVar11 != 0x1f) {\n    param_1[3] = uVar12;\n    return;\n  }" if (parenthesized_expression "(uVar11 != 0x1f)" ( (binary_expression "uVar11 != 0x1f" identifier != number_literal) )) (compound_statement "{\n    param_1[3] = uVar12;\n    return;\n  }" { (expression_statement "param_1[3] = uVar12;" (assignment_expression "param_1[3] = uVar12" (subscript_expression "param_1[3]" identifier [ number_literal ]) = identifier) ;) (return_statement "return;" return ;) })) (expression_statement "param_1[3] = 0;" (assignment_expression "param_1[3] = 0" (subscript_expression "param_1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[2] = (int)(puVar9 + 1);" (assignment_expression "param_1[2] = (int)(puVar9 + 1)" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (cast_expression "(int)(puVar9 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar9 + 1)" ( (binary_expression "puVar9 + 1" identifier + number_literal) )))) ;) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n/* DWARF original prototype: void _M_insert_aux(vector<bool,_std::allocator<bool>_> * this, iterator\n   __position, bool __x) */\n\nvoid __thiscall\nstd::vector<bool,_std::allocator<bool>_>::_M_insert_aux\n          (vector<bool,_std::allocator<bool>_> *this,iterator __position,bool __x)\n\n{\n  uint uVar1;\n  _Bit_type *p_Var2;\n  int iVar3;\n  int iVar4;\n  undefined3 in_register_00000014;\n  uint *puVar5;\n  uint uVar6;\n  uint in_a2;\n  uint uVar7;\n  uint *puVar8;\n  int in_a3;\n  uint uVar9;\n  _Bit_type *p_Var10;\n  uint *puVar11;\n  uint uVar12;\n  uint uVar13;\n  _Bit_type *p_Var14;\n  uint *puVar15;\n  \n  puVar5 = (uint *)CONCAT31(in_register_00000014,__x);\n  p_Var10 = (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data.\n            _M_finish.super__Bit_iterator_base._M_p;\n  uVar12 = (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data.\n           _M_finish.super__Bit_iterator_base._M_offset;\n  if (p_Var10 ==\n      (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data.\n      _M_end_of_storage) {\n    uVar1 = (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data.\n            _M_start.super__Bit_iterator_base._M_offset;\n    iVar3 = ((int)p_Var10 -\n            (int)(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data\n                 ._M_start.super__Bit_iterator_base._M_p) * 8 + uVar12;\n    uVar12 = iVar3 - uVar1;\n    if (uVar1 + 0x7fffffe0 == iVar3) {\n      (*(code *)PTR___throw_length_error_004c1e74)(PTR_s__s_004c1a50 + 0xd54);\n      return;\n    }\n    uVar1 = uVar12 * 2;\n    if (uVar12 == 0) {\n      iVar3 = 4;\n    }\n    else if (uVar1 < uVar12) {\n      iVar3 = 0xffffffc;\n    }\n    else {\n      uVar12 = 0x7fffffe0;\n      if (uVar1 < 0x7fffffe1) {\n        uVar12 = uVar1;\n      }\n      iVar3 = (uVar12 + 0x1f >> 5) << 2;\n    }\n    p_Var10 = (_Bit_type *)(*(code *)PTR_operator_new_004c13a8)(iVar3);\n    puVar15 = (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data.\n              _M_start.super__Bit_iterator_base._M_p;\n    if (puVar5 != puVar15) {\n      (*(code *)PTR_memmove_004c5af8)(p_Var10,puVar15,(int)puVar5 - (int)puVar15);\n    }\n    puVar8 = (uint *)((int)p_Var10 + ((int)puVar5 - (int)puVar15));\n    if ((int)in_a2 < 1) {\n      uVar12 = 1;\n      uVar1 = 1;\n      puVar11 = puVar8;\n    }\n    else {\n      uVar13 = 0;\n      uVar9 = in_a2;\n      puVar11 = puVar5;\n      do {\n        while( true ) {\n          uVar12 = 1 << (uVar13 & 0x1f);\n          if ((uVar12 & *puVar11) != 0) break;\n          *puVar8 = ~uVar12 & *puVar8;\n          if (uVar13 != 0x1f) goto LAB_00184984;\nLAB_001849c0:\n          uVar9 = uVar9 - 1;\n          puVar11 = puVar11 + 1;\n          puVar8 = puVar8 + 1;\n          uVar12 = 1;\n          uVar1 = 1;\n          uVar7 = 0;\n          uVar13 = uVar7;\n          if (uVar9 == 0) goto LAB_001849dc;\n        }\n        *puVar8 = uVar12 | *puVar8;\n        if (uVar13 == 0x1f) goto LAB_001849c0;\nLAB_00184984:\n        uVar7 = uVar13 + 1;\n        uVar9 = uVar9 - 1;\n        uVar1 = uVar13 + 2;\n        uVar12 = 1 << (uVar7 & 0x1f);\n        uVar13 = uVar7;\n      } while (uVar9 != 0);\nLAB_001849dc:\n      puVar11 = puVar8;\n      if (uVar7 == 0x1f) {\n        uVar1 = 0;\n        puVar11 = puVar8 + 1;\n      }\n    }\n    if (in_a3 == 0) {\n      uVar12 = ~uVar12 & *puVar8;\n    }\n    else {\n      uVar12 = *puVar8 | uVar12;\n    }\n    iVar4 = ((int)(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.\n                  super__Bvector_impl_data._M_finish.super__Bit_iterator_base._M_p - (int)puVar5) *\n            8 + ((this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data\n                 ._M_finish.super__Bit_iterator_base._M_offset - in_a2);\n    *puVar8 = uVar12;\n    if (0 < iVar4) {\n      do {\n        while( true ) {\n          uVar12 = 1 << (uVar1 & 0x1f);\n          if ((1 << (in_a2 & 0x1f) & *puVar5) != 0) break;\n          *puVar11 = ~uVar12 & *puVar11;\n          if (in_a2 != 0x1f) goto LAB_00184a30;\nLAB_00184a6c:\n          puVar5 = puVar5 + 1;\n          in_a2 = 0;\n          if (uVar1 != 0x1f) goto LAB_00184a38;\nLAB_00184a78:\n          iVar4 = iVar4 + -1;\n          puVar11 = puVar11 + 1;\n          uVar1 = 0;\n          if (iVar4 == 0) goto LAB_00184a88;\n        }\n        *puVar11 = *puVar11 | uVar12;\n        if (in_a2 == 0x1f) goto LAB_00184a6c;\nLAB_00184a30:\n        in_a2 = in_a2 + 1;\n        if (uVar1 == 0x1f) goto LAB_00184a78;\nLAB_00184a38:\n        iVar4 = iVar4 + -1;\n        uVar1 = uVar1 + 1;\n      } while (iVar4 != 0);\n    }\nLAB_00184a88:\n    if (puVar15 != (uint *)0x0) {\n      (*(code *)PTR_operator_delete_004c12fc)(puVar15);\n      (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.\n      super__Bit_iterator_base._M_p = (_Bit_type *)0x0;\n      (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.\n      super__Bit_iterator_base._M_offset = 0;\n      (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_start.\n      super__Bit_iterator_base._M_p = (_Bit_type *)0x0;\n      (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_start.\n      super__Bit_iterator_base._M_offset = 0;\n    }\n    (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_start.\n    super__Bit_iterator_base._M_p = p_Var10;\n    (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data.\n    _M_end_of_storage = (_Bit_pointer)((int)p_Var10 + iVar3);\n    (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.\n    super__Bit_iterator_base._M_p = puVar11;\n    (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.\n    super__Bit_iterator_base._M_offset = uVar1;\n    (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_start.\n    super__Bit_iterator_base._M_offset = 0;\n    return;\n  }\n  uVar13 = uVar12 + 1;\n  uVar1 = uVar13;\n  if ((int)uVar13 < 0) {\n    uVar1 = uVar12 + 0x20;\n  }\n  p_Var2 = p_Var10 + ((int)uVar1 >> 5);\n  if ((int)uVar13 < 0) {\n    uVar1 = ((uVar13 & 0x8000001f) - 1 | 0xffffffe0) + 1;\n  }\n  else {\n    uVar1 = uVar13 & 0x8000001f;\n  }\n  if ((int)uVar1 < 0) {\n    uVar1 = uVar1 + 0x20;\n    p_Var2 = p_Var2 + -1;\n  }\n  iVar3 = ((int)p_Var10 - (int)puVar5) * 8 + (uVar12 - in_a2);\n  uVar9 = uVar12;\n  p_Var14 = p_Var10;\n  if (0 < iVar3) {\n    do {\n      while (uVar1 != 0) {\n        uVar1 = uVar1 - 1;\n        uVar7 = 1 << (uVar1 & 0x1f);\n        if (uVar9 == 0) goto LAB_001847b0;\nLAB_00184770:\n        uVar9 = uVar9 - 1;\n        uVar6 = *p_Var2;\n        if ((1 << (uVar9 & 0x1f) & *p_Var14) == 0) goto LAB_001847cc;\nLAB_00184788:\n        iVar3 = iVar3 + -1;\n        *p_Var2 = uVar7 | uVar6;\n        if (iVar3 == 0) goto LAB_001847e0;\n      }\n      p_Var2 = p_Var2 + -1;\n      uVar7 = 0x80000000;\n      uVar1 = 0x1f;\n      if (uVar9 != 0) goto LAB_00184770;\nLAB_001847b0:\n      p_Var14 = p_Var14 + -1;\n      uVar6 = *p_Var2;\n      uVar9 = 0x1f;\n      if ((*p_Var14 & 0x80000000) != 0) goto LAB_00184788;\nLAB_001847cc:\n      iVar3 = iVar3 + -1;\n      *p_Var2 = ~uVar7 & uVar6;\n    } while (iVar3 != 0);\n  }\nLAB_001847e0:\n  uVar1 = 1 << (in_a2 & 0x1f);\n  if (in_a3 == 0) {\n    *puVar5 = ~uVar1 & *puVar5;\n  }\n  else {\n    *puVar5 = uVar1 | *puVar5;\n  }\n  if (uVar12 != 0x1f) {\n    (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.\n    super__Bit_iterator_base._M_offset = uVar13;\n    return;\n  }\n  (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.\n  super__Bit_iterator_base._M_offset = 0;\n  (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.\n  super__Bit_iterator_base._M_p = p_Var10 + 1;\n  return;\n}\n\n" comment comment (declaration "void __thiscall\nstd::vector<bool,_std::allocator<bool>_>::_M_insert_aux\n          (vector<bool,_std::allocator<bool>_> *this,iterator __position,bool __x)\n\n{\n  uint uVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "std::" identifier : :) identifier (ERROR "<bool" < primitive_type) , (ERROR "_std::allocator<bool>_>::_M_insert_aux\n          (vector<bool,_std::allocator<bool>_> *this,iterator __position,bool __x)\n\n{\n  uint" identifier : : identifier < primitive_type > identifier > : : (function_declarator "_M_insert_aux\n          (vector<bool,_std::allocator<bool>_> *this,iterator __position,bool __x)" identifier (parameter_list "(vector<bool,_std::allocator<bool>_> *this,iterator __position,bool __x)" ( (parameter_declaration "vector" type_identifier) (ERROR "<bool" < primitive_type) , (parameter_declaration "_std::allocator<bool>_> *this" type_identifier (ERROR "::allocator<bool>_>" : : identifier < primitive_type > identifier >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "iterator __position" type_identifier identifier) , (parameter_declaration "bool __x" primitive_type identifier) ))) { identifier) identifier ;) (declaration "_Bit_type *p_Var2;" type_identifier (pointer_declarator "*p_Var2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined3 in_register_00000014;" type_identifier identifier ;) (declaration "uint *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint in_a2;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "uint *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int in_a3;" primitive_type identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "_Bit_type *p_Var10;" type_identifier (pointer_declarator "*p_Var10" * identifier) ;) (declaration "uint *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "_Bit_type *p_Var14;" type_identifier (pointer_declarator "*p_Var14" * identifier) ;) (declaration "uint *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (expression_statement "puVar5 = (uint *)CONCAT31(in_register_00000014,__x);" (assignment_expression "puVar5 = (uint *)CONCAT31(in_register_00000014,__x)" identifier = (cast_expression "(uint *)CONCAT31(in_register_00000014,__x)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31(in_register_00000014,__x)" identifier (argument_list "(in_register_00000014,__x)" ( identifier , identifier ))))) ;) (expression_statement "p_Var10 = (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data.\n            _M_finish.super__Bit_iterator_base._M_p;" (assignment_expression "p_Var10 = (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data.\n            _M_finish.super__Bit_iterator_base._M_p" identifier = (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data.\n            _M_finish.super__Bit_iterator_base._M_p" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data.\n            _M_finish.super__Bit_iterator_base" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data.\n            _M_finish" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl" (parenthesized_expression "(this->super__Bvector_base<std::allocator<bool>_>)" ( (binary_expression "this->super__Bvector_base<std::allocator<bool>_>" (binary_expression "this->super__Bvector_base<std::allocator<bool>_" (binary_expression "this->super__Bvector_base<std::allocator<bool" (binary_expression "this->super__Bvector_base<std" (field_expression "this->super__Bvector_base" identifier -> field_identifier) < identifier) (ERROR "::allocator" : : identifier) < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "uVar12 = (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data.\n           _M_finish.super__Bit_iterator_base._M_offset;" (assignment_expression "uVar12 = (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data.\n           _M_finish.super__Bit_iterator_base._M_offset" identifier = (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data.\n           _M_finish.super__Bit_iterator_base._M_offset" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data.\n           _M_finish.super__Bit_iterator_base" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data.\n           _M_finish" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl" (parenthesized_expression "(this->super__Bvector_base<std::allocator<bool>_>)" ( (binary_expression "this->super__Bvector_base<std::allocator<bool>_>" (binary_expression "this->super__Bvector_base<std::allocator<bool>_" (binary_expression "this->super__Bvector_base<std::allocator<bool" (binary_expression "this->super__Bvector_base<std" (field_expression "this->super__Bvector_base" identifier -> field_identifier) < identifier) (ERROR "::allocator" : : identifier) < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ;) (if_statement "if (p_Var10 ==\n      (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data.\n      _M_end_of_storage) {\n    uVar1 = (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data.\n            _M_start.super__Bit_iterator_base._M_offset;\n    iVar3 = ((int)p_Var10 -\n            (int)(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data\n                 ._M_start.super__Bit_iterator_base._M_p) * 8 + uVar12;\n    uVar12 = iVar3 - uVar1;\n    if (uVar1 + 0x7fffffe0 == iVar3) {\n      (*(code *)PTR___throw_length_error_004c1e74)(PTR_s__s_004c1a50 + 0xd54);\n      return;\n    }\n    uVar1 = uVar12 * 2;\n    if (uVar12 == 0) {\n      iVar3 = 4;\n    }\n    else if (uVar1 < uVar12) {\n      iVar3 = 0xffffffc;\n    }\n    else {\n      uVar12 = 0x7fffffe0;\n      if (uVar1 < 0x7fffffe1) {\n        uVar12 = uVar1;\n      }\n      iVar3 = (uVar12 + 0x1f >> 5) << 2;\n    }\n    p_Var10 = (_Bit_type *)(*(code *)PTR_operator_new_004c13a8)(iVar3);\n    puVar15 = (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data.\n              _M_start.super__Bit_iterator_base._M_p;\n    if (puVar5 != puVar15) {\n      (*(code *)PTR_memmove_004c5af8)(p_Var10,puVar15,(int)puVar5 - (int)puVar15);\n    }\n    puVar8 = (uint *)((int)p_Var10 + ((int)puVar5 - (int)puVar15));\n    if ((int)in_a2 < 1) {\n      uVar12 = 1;\n      uVar1 = 1;\n      puVar11 = puVar8;\n    }\n    else {\n      uVar13 = 0;\n      uVar9 = in_a2;\n      puVar11 = puVar5;\n      do {\n        while( true ) {\n          uVar12 = 1 << (uVar13 & 0x1f);\n          if ((uVar12 & *puVar11) != 0) break;\n          *puVar8 = ~uVar12 & *puVar8;\n          if (uVar13 != 0x1f) goto LAB_00184984;\nLAB_001849c0:\n          uVar9 = uVar9 - 1;\n          puVar11 = puVar11 + 1;\n          puVar8 = puVar8 + 1;\n          uVar12 = 1;\n          uVar1 = 1;\n          uVar7 = 0;\n          uVar13 = uVar7;\n          if (uVar9 == 0) goto LAB_001849dc;\n        }\n        *puVar8 = uVar12 | *puVar8;\n        if (uVar13 == 0x1f) goto LAB_001849c0;\nLAB_00184984:\n        uVar7 = uVar13 + 1;\n        uVar9 = uVar9 - 1;\n        uVar1 = uVar13 + 2;\n        uVar12 = 1 << (uVar7 & 0x1f);\n        uVar13 = uVar7;\n      } while (uVar9 != 0);\nLAB_001849dc:\n      puVar11 = puVar8;\n      if (uVar7 == 0x1f) {\n        uVar1 = 0;\n        puVar11 = puVar8 + 1;\n      }\n    }\n    if (in_a3 == 0) {\n      uVar12 = ~uVar12 & *puVar8;\n    }\n    else {\n      uVar12 = *puVar8 | uVar12;\n    }\n    iVar4 = ((int)(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.\n                  super__Bvector_impl_data._M_finish.super__Bit_iterator_base._M_p - (int)puVar5) *\n            8 + ((this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data\n                 ._M_finish.super__Bit_iterator_base._M_offset - in_a2);\n    *puVar8 = uVar12;\n    if (0 < iVar4) {\n      do {\n        while( true ) {\n          uVar12 = 1 << (uVar1 & 0x1f);\n          if ((1 << (in_a2 & 0x1f) & *puVar5) != 0) break;\n          *puVar11 = ~uVar12 & *puVar11;\n          if (in_a2 != 0x1f) goto LAB_00184a30;\nLAB_00184a6c:\n          puVar5 = puVar5 + 1;\n          in_a2 = 0;\n          if (uVar1 != 0x1f) goto LAB_00184a38;\nLAB_00184a78:\n          iVar4 = iVar4 + -1;\n          puVar11 = puVar11 + 1;\n          uVar1 = 0;\n          if (iVar4 == 0) goto LAB_00184a88;\n        }\n        *puVar11 = *puVar11 | uVar12;\n        if (in_a2 == 0x1f) goto LAB_00184a6c;\nLAB_00184a30:\n        in_a2 = in_a2 + 1;\n        if (uVar1 == 0x1f) goto LAB_00184a78;\nLAB_00184a38:\n        iVar4 = iVar4 + -1;\n        uVar1 = uVar1 + 1;\n      } while (iVar4 != 0);\n    }\nLAB_00184a88:\n    if (puVar15 != (uint *)0x0) {\n      (*(code *)PTR_operator_delete_004c12fc)(puVar15);\n      (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.\n      super__Bit_iterator_base._M_p = (_Bit_type *)0x0;\n      (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.\n      super__Bit_iterator_base._M_offset = 0;\n      (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_start.\n      super__Bit_iterator_base._M_p = (_Bit_type *)0x0;\n      (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_start.\n      super__Bit_iterator_base._M_offset = 0;\n    }\n    (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_start.\n    super__Bit_iterator_base._M_p = p_Var10;\n    (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data.\n    _M_end_of_storage = (_Bit_pointer)((int)p_Var10 + iVar3);\n    (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.\n    super__Bit_iterator_base._M_p = puVar11;\n    (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.\n    super__Bit_iterator_base._M_offset = uVar1;\n    (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_start.\n    super__Bit_iterator_base._M_offset = 0;\n    return;\n  }" if (parenthesized_expression "(p_Var10 ==\n      (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data.\n      _M_end_of_storage)" ( (binary_expression "p_Var10 ==\n      (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data.\n      _M_end_of_storage" identifier == (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data.\n      _M_end_of_storage" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl" (parenthesized_expression "(this->super__Bvector_base<std::allocator<bool>_>)" ( (binary_expression "this->super__Bvector_base<std::allocator<bool>_>" (binary_expression "this->super__Bvector_base<std::allocator<bool>_" (binary_expression "this->super__Bvector_base<std::allocator<bool" (binary_expression "this->super__Bvector_base<std" (field_expression "this->super__Bvector_base" identifier -> field_identifier) < identifier) (ERROR "::allocator" : : identifier) < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier) . field_identifier)) )) (compound_statement "{\n    uVar1 = (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data.\n            _M_start.super__Bit_iterator_base._M_offset;\n    iVar3 = ((int)p_Var10 -\n            (int)(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data\n                 ._M_start.super__Bit_iterator_base._M_p) * 8 + uVar12;\n    uVar12 = iVar3 - uVar1;\n    if (uVar1 + 0x7fffffe0 == iVar3) {\n      (*(code *)PTR___throw_length_error_004c1e74)(PTR_s__s_004c1a50 + 0xd54);\n      return;\n    }\n    uVar1 = uVar12 * 2;\n    if (uVar12 == 0) {\n      iVar3 = 4;\n    }\n    else if (uVar1 < uVar12) {\n      iVar3 = 0xffffffc;\n    }\n    else {\n      uVar12 = 0x7fffffe0;\n      if (uVar1 < 0x7fffffe1) {\n        uVar12 = uVar1;\n      }\n      iVar3 = (uVar12 + 0x1f >> 5) << 2;\n    }\n    p_Var10 = (_Bit_type *)(*(code *)PTR_operator_new_004c13a8)(iVar3);\n    puVar15 = (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data.\n              _M_start.super__Bit_iterator_base._M_p;\n    if (puVar5 != puVar15) {\n      (*(code *)PTR_memmove_004c5af8)(p_Var10,puVar15,(int)puVar5 - (int)puVar15);\n    }\n    puVar8 = (uint *)((int)p_Var10 + ((int)puVar5 - (int)puVar15));\n    if ((int)in_a2 < 1) {\n      uVar12 = 1;\n      uVar1 = 1;\n      puVar11 = puVar8;\n    }\n    else {\n      uVar13 = 0;\n      uVar9 = in_a2;\n      puVar11 = puVar5;\n      do {\n        while( true ) {\n          uVar12 = 1 << (uVar13 & 0x1f);\n          if ((uVar12 & *puVar11) != 0) break;\n          *puVar8 = ~uVar12 & *puVar8;\n          if (uVar13 != 0x1f) goto LAB_00184984;\nLAB_001849c0:\n          uVar9 = uVar9 - 1;\n          puVar11 = puVar11 + 1;\n          puVar8 = puVar8 + 1;\n          uVar12 = 1;\n          uVar1 = 1;\n          uVar7 = 0;\n          uVar13 = uVar7;\n          if (uVar9 == 0) goto LAB_001849dc;\n        }\n        *puVar8 = uVar12 | *puVar8;\n        if (uVar13 == 0x1f) goto LAB_001849c0;\nLAB_00184984:\n        uVar7 = uVar13 + 1;\n        uVar9 = uVar9 - 1;\n        uVar1 = uVar13 + 2;\n        uVar12 = 1 << (uVar7 & 0x1f);\n        uVar13 = uVar7;\n      } while (uVar9 != 0);\nLAB_001849dc:\n      puVar11 = puVar8;\n      if (uVar7 == 0x1f) {\n        uVar1 = 0;\n        puVar11 = puVar8 + 1;\n      }\n    }\n    if (in_a3 == 0) {\n      uVar12 = ~uVar12 & *puVar8;\n    }\n    else {\n      uVar12 = *puVar8 | uVar12;\n    }\n    iVar4 = ((int)(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.\n                  super__Bvector_impl_data._M_finish.super__Bit_iterator_base._M_p - (int)puVar5) *\n            8 + ((this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data\n                 ._M_finish.super__Bit_iterator_base._M_offset - in_a2);\n    *puVar8 = uVar12;\n    if (0 < iVar4) {\n      do {\n        while( true ) {\n          uVar12 = 1 << (uVar1 & 0x1f);\n          if ((1 << (in_a2 & 0x1f) & *puVar5) != 0) break;\n          *puVar11 = ~uVar12 & *puVar11;\n          if (in_a2 != 0x1f) goto LAB_00184a30;\nLAB_00184a6c:\n          puVar5 = puVar5 + 1;\n          in_a2 = 0;\n          if (uVar1 != 0x1f) goto LAB_00184a38;\nLAB_00184a78:\n          iVar4 = iVar4 + -1;\n          puVar11 = puVar11 + 1;\n          uVar1 = 0;\n          if (iVar4 == 0) goto LAB_00184a88;\n        }\n        *puVar11 = *puVar11 | uVar12;\n        if (in_a2 == 0x1f) goto LAB_00184a6c;\nLAB_00184a30:\n        in_a2 = in_a2 + 1;\n        if (uVar1 == 0x1f) goto LAB_00184a78;\nLAB_00184a38:\n        iVar4 = iVar4 + -1;\n        uVar1 = uVar1 + 1;\n      } while (iVar4 != 0);\n    }\nLAB_00184a88:\n    if (puVar15 != (uint *)0x0) {\n      (*(code *)PTR_operator_delete_004c12fc)(puVar15);\n      (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.\n      super__Bit_iterator_base._M_p = (_Bit_type *)0x0;\n      (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.\n      super__Bit_iterator_base._M_offset = 0;\n      (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_start.\n      super__Bit_iterator_base._M_p = (_Bit_type *)0x0;\n      (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_start.\n      super__Bit_iterator_base._M_offset = 0;\n    }\n    (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_start.\n    super__Bit_iterator_base._M_p = p_Var10;\n    (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data.\n    _M_end_of_storage = (_Bit_pointer)((int)p_Var10 + iVar3);\n    (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.\n    super__Bit_iterator_base._M_p = puVar11;\n    (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.\n    super__Bit_iterator_base._M_offset = uVar1;\n    (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_start.\n    super__Bit_iterator_base._M_offset = 0;\n    return;\n  }" { (expression_statement "uVar1 = (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data.\n            _M_start.super__Bit_iterator_base._M_offset;" (assignment_expression "uVar1 = (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data.\n            _M_start.super__Bit_iterator_base._M_offset" identifier = (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data.\n            _M_start.super__Bit_iterator_base._M_offset" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data.\n            _M_start.super__Bit_iterator_base" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data.\n            _M_start" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl" (parenthesized_expression "(this->super__Bvector_base<std::allocator<bool>_>)" ( (binary_expression "this->super__Bvector_base<std::allocator<bool>_>" (binary_expression "this->super__Bvector_base<std::allocator<bool>_" (binary_expression "this->super__Bvector_base<std::allocator<bool" (binary_expression "this->super__Bvector_base<std" (field_expression "this->super__Bvector_base" identifier -> field_identifier) < identifier) (ERROR "::allocator" : : identifier) < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "iVar3 = ((int)p_Var10 -\n            (int)(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data\n                 ._M_start.super__Bit_iterator_base._M_p) * 8 + uVar12;" (assignment_expression "iVar3 = ((int)p_Var10 -\n            (int)(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data\n                 ._M_start.super__Bit_iterator_base._M_p) * 8 + uVar12" identifier = (binary_expression "((int)p_Var10 -\n            (int)(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data\n                 ._M_start.super__Bit_iterator_base._M_p) * 8 + uVar12" (binary_expression "((int)p_Var10 -\n            (int)(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data\n                 ._M_start.super__Bit_iterator_base._M_p) * 8" (parenthesized_expression "((int)p_Var10 -\n            (int)(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data\n                 ._M_start.super__Bit_iterator_base._M_p)" ( (binary_expression "(int)p_Var10 -\n            (int)(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data\n                 ._M_start.super__Bit_iterator_base._M_p" (cast_expression "(int)p_Var10" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data\n                 ._M_start.super__Bit_iterator_base._M_p" ( (type_descriptor "int" primitive_type) ) (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data\n                 ._M_start.super__Bit_iterator_base._M_p" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data\n                 ._M_start.super__Bit_iterator_base" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data\n                 ._M_start" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl" (parenthesized_expression "(this->super__Bvector_base<std::allocator<bool>_>)" ( (binary_expression "this->super__Bvector_base<std::allocator<bool>_>" (binary_expression "this->super__Bvector_base<std::allocator<bool>_" (binary_expression "this->super__Bvector_base<std::allocator<bool" (binary_expression "this->super__Bvector_base<std" (field_expression "this->super__Bvector_base" identifier -> field_identifier) < identifier) (ERROR "::allocator" : : identifier) < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier))) )) * number_literal) + identifier)) ;) (expression_statement "uVar12 = iVar3 - uVar1;" (assignment_expression "uVar12 = iVar3 - uVar1" identifier = (binary_expression "iVar3 - uVar1" identifier - identifier)) ;) (if_statement "if (uVar1 + 0x7fffffe0 == iVar3) {\n      (*(code *)PTR___throw_length_error_004c1e74)(PTR_s__s_004c1a50 + 0xd54);\n      return;\n    }" if (parenthesized_expression "(uVar1 + 0x7fffffe0 == iVar3)" ( (binary_expression "uVar1 + 0x7fffffe0 == iVar3" (binary_expression "uVar1 + 0x7fffffe0" identifier + number_literal) == identifier) )) (compound_statement "{\n      (*(code *)PTR___throw_length_error_004c1e74)(PTR_s__s_004c1a50 + 0xd54);\n      return;\n    }" { (expression_statement "(*(code *)PTR___throw_length_error_004c1e74)(PTR_s__s_004c1a50 + 0xd54);" (call_expression "(*(code *)PTR___throw_length_error_004c1e74)(PTR_s__s_004c1a50 + 0xd54)" (parenthesized_expression "(*(code *)PTR___throw_length_error_004c1e74)" ( (pointer_expression "*(code *)PTR___throw_length_error_004c1e74" * (cast_expression "(code *)PTR___throw_length_error_004c1e74" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s__s_004c1a50 + 0xd54)" ( (binary_expression "PTR_s__s_004c1a50 + 0xd54" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar1 = uVar12 * 2;" (assignment_expression "uVar1 = uVar12 * 2" identifier = (binary_expression "uVar12 * 2" identifier * number_literal)) ;) (if_statement "if (uVar12 == 0) {\n      iVar3 = 4;\n    }\n    else if (uVar1 < uVar12) {\n      iVar3 = 0xffffffc;\n    }\n    else {\n      uVar12 = 0x7fffffe0;\n      if (uVar1 < 0x7fffffe1) {\n        uVar12 = uVar1;\n      }\n      iVar3 = (uVar12 + 0x1f >> 5) << 2;\n    }" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar3 = 4;\n    }" { (expression_statement "iVar3 = 4;" (assignment_expression "iVar3 = 4" identifier = number_literal) ;) }) (else_clause "else if (uVar1 < uVar12) {\n      iVar3 = 0xffffffc;\n    }\n    else {\n      uVar12 = 0x7fffffe0;\n      if (uVar1 < 0x7fffffe1) {\n        uVar12 = uVar1;\n      }\n      iVar3 = (uVar12 + 0x1f >> 5) << 2;\n    }" else (if_statement "if (uVar1 < uVar12) {\n      iVar3 = 0xffffffc;\n    }\n    else {\n      uVar12 = 0x7fffffe0;\n      if (uVar1 < 0x7fffffe1) {\n        uVar12 = uVar1;\n      }\n      iVar3 = (uVar12 + 0x1f >> 5) << 2;\n    }" if (parenthesized_expression "(uVar1 < uVar12)" ( (binary_expression "uVar1 < uVar12" identifier < identifier) )) (compound_statement "{\n      iVar3 = 0xffffffc;\n    }" { (expression_statement "iVar3 = 0xffffffc;" (assignment_expression "iVar3 = 0xffffffc" identifier = number_literal) ;) }) (else_clause "else {\n      uVar12 = 0x7fffffe0;\n      if (uVar1 < 0x7fffffe1) {\n        uVar12 = uVar1;\n      }\n      iVar3 = (uVar12 + 0x1f >> 5) << 2;\n    }" else (compound_statement "{\n      uVar12 = 0x7fffffe0;\n      if (uVar1 < 0x7fffffe1) {\n        uVar12 = uVar1;\n      }\n      iVar3 = (uVar12 + 0x1f >> 5) << 2;\n    }" { (expression_statement "uVar12 = 0x7fffffe0;" (assignment_expression "uVar12 = 0x7fffffe0" identifier = number_literal) ;) (if_statement "if (uVar1 < 0x7fffffe1) {\n        uVar12 = uVar1;\n      }" if (parenthesized_expression "(uVar1 < 0x7fffffe1)" ( (binary_expression "uVar1 < 0x7fffffe1" identifier < number_literal) )) (compound_statement "{\n        uVar12 = uVar1;\n      }" { (expression_statement "uVar12 = uVar1;" (assignment_expression "uVar12 = uVar1" identifier = identifier) ;) })) (expression_statement "iVar3 = (uVar12 + 0x1f >> 5) << 2;" (assignment_expression "iVar3 = (uVar12 + 0x1f >> 5) << 2" identifier = (binary_expression "(uVar12 + 0x1f >> 5) << 2" (parenthesized_expression "(uVar12 + 0x1f >> 5)" ( (binary_expression "uVar12 + 0x1f >> 5" (binary_expression "uVar12 + 0x1f" identifier + number_literal) >> number_literal) )) << number_literal)) ;) }))))) (expression_statement "p_Var10 = (_Bit_type *)(*(code *)PTR_operator_new_004c13a8)(iVar3);" (assignment_expression "p_Var10 = (_Bit_type *)(*(code *)PTR_operator_new_004c13a8)(iVar3)" identifier = (cast_expression "(_Bit_type *)(*(code *)PTR_operator_new_004c13a8)(iVar3)" ( (type_descriptor "_Bit_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(iVar3)" (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 "(iVar3)" ( identifier ))))) ;) (expression_statement "puVar15 = (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data.\n              _M_start.super__Bit_iterator_base._M_p;" (assignment_expression "puVar15 = (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data.\n              _M_start.super__Bit_iterator_base._M_p" identifier = (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data.\n              _M_start.super__Bit_iterator_base._M_p" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data.\n              _M_start.super__Bit_iterator_base" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data.\n              _M_start" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl" (parenthesized_expression "(this->super__Bvector_base<std::allocator<bool>_>)" ( (binary_expression "this->super__Bvector_base<std::allocator<bool>_>" (binary_expression "this->super__Bvector_base<std::allocator<bool>_" (binary_expression "this->super__Bvector_base<std::allocator<bool" (binary_expression "this->super__Bvector_base<std" (field_expression "this->super__Bvector_base" identifier -> field_identifier) < identifier) (ERROR "::allocator" : : identifier) < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ;) (if_statement "if (puVar5 != puVar15) {\n      (*(code *)PTR_memmove_004c5af8)(p_Var10,puVar15,(int)puVar5 - (int)puVar15);\n    }" if (parenthesized_expression "(puVar5 != puVar15)" ( (binary_expression "puVar5 != puVar15" identifier != identifier) )) (compound_statement "{\n      (*(code *)PTR_memmove_004c5af8)(p_Var10,puVar15,(int)puVar5 - (int)puVar15);\n    }" { (expression_statement "(*(code *)PTR_memmove_004c5af8)(p_Var10,puVar15,(int)puVar5 - (int)puVar15);" (call_expression "(*(code *)PTR_memmove_004c5af8)(p_Var10,puVar15,(int)puVar5 - (int)puVar15)" (parenthesized_expression "(*(code *)PTR_memmove_004c5af8)" ( (pointer_expression "*(code *)PTR_memmove_004c5af8" * (cast_expression "(code *)PTR_memmove_004c5af8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(p_Var10,puVar15,(int)puVar5 - (int)puVar15)" ( identifier , identifier , (binary_expression "(int)puVar5 - (int)puVar15" (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ;) })) (expression_statement "puVar8 = (uint *)((int)p_Var10 + ((int)puVar5 - (int)puVar15));" (assignment_expression "puVar8 = (uint *)((int)p_Var10 + ((int)puVar5 - (int)puVar15))" identifier = (cast_expression "(uint *)((int)p_Var10 + ((int)puVar5 - (int)puVar15))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)p_Var10 + ((int)puVar5 - (int)puVar15))" ( (binary_expression "(int)p_Var10 + ((int)puVar5 - (int)puVar15)" (cast_expression "(int)p_Var10" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((int)puVar5 - (int)puVar15)" ( (binary_expression "(int)puVar5 - (int)puVar15" (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (if_statement "if ((int)in_a2 < 1) {\n      uVar12 = 1;\n      uVar1 = 1;\n      puVar11 = puVar8;\n    }\n    else {\n      uVar13 = 0;\n      uVar9 = in_a2;\n      puVar11 = puVar5;\n      do {\n        while( true ) {\n          uVar12 = 1 << (uVar13 & 0x1f);\n          if ((uVar12 & *puVar11) != 0) break;\n          *puVar8 = ~uVar12 & *puVar8;\n          if (uVar13 != 0x1f) goto LAB_00184984;\nLAB_001849c0:\n          uVar9 = uVar9 - 1;\n          puVar11 = puVar11 + 1;\n          puVar8 = puVar8 + 1;\n          uVar12 = 1;\n          uVar1 = 1;\n          uVar7 = 0;\n          uVar13 = uVar7;\n          if (uVar9 == 0) goto LAB_001849dc;\n        }\n        *puVar8 = uVar12 | *puVar8;\n        if (uVar13 == 0x1f) goto LAB_001849c0;\nLAB_00184984:\n        uVar7 = uVar13 + 1;\n        uVar9 = uVar9 - 1;\n        uVar1 = uVar13 + 2;\n        uVar12 = 1 << (uVar7 & 0x1f);\n        uVar13 = uVar7;\n      } while (uVar9 != 0);\nLAB_001849dc:\n      puVar11 = puVar8;\n      if (uVar7 == 0x1f) {\n        uVar1 = 0;\n        puVar11 = puVar8 + 1;\n      }\n    }" if (parenthesized_expression "((int)in_a2 < 1)" ( (binary_expression "(int)in_a2 < 1" (cast_expression "(int)in_a2" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      uVar12 = 1;\n      uVar1 = 1;\n      puVar11 = puVar8;\n    }" { (expression_statement "uVar12 = 1;" (assignment_expression "uVar12 = 1" identifier = number_literal) ;) (expression_statement "uVar1 = 1;" (assignment_expression "uVar1 = 1" identifier = number_literal) ;) (expression_statement "puVar11 = puVar8;" (assignment_expression "puVar11 = puVar8" identifier = identifier) ;) }) (else_clause "else {\n      uVar13 = 0;\n      uVar9 = in_a2;\n      puVar11 = puVar5;\n      do {\n        while( true ) {\n          uVar12 = 1 << (uVar13 & 0x1f);\n          if ((uVar12 & *puVar11) != 0) break;\n          *puVar8 = ~uVar12 & *puVar8;\n          if (uVar13 != 0x1f) goto LAB_00184984;\nLAB_001849c0:\n          uVar9 = uVar9 - 1;\n          puVar11 = puVar11 + 1;\n          puVar8 = puVar8 + 1;\n          uVar12 = 1;\n          uVar1 = 1;\n          uVar7 = 0;\n          uVar13 = uVar7;\n          if (uVar9 == 0) goto LAB_001849dc;\n        }\n        *puVar8 = uVar12 | *puVar8;\n        if (uVar13 == 0x1f) goto LAB_001849c0;\nLAB_00184984:\n        uVar7 = uVar13 + 1;\n        uVar9 = uVar9 - 1;\n        uVar1 = uVar13 + 2;\n        uVar12 = 1 << (uVar7 & 0x1f);\n        uVar13 = uVar7;\n      } while (uVar9 != 0);\nLAB_001849dc:\n      puVar11 = puVar8;\n      if (uVar7 == 0x1f) {\n        uVar1 = 0;\n        puVar11 = puVar8 + 1;\n      }\n    }" else (compound_statement "{\n      uVar13 = 0;\n      uVar9 = in_a2;\n      puVar11 = puVar5;\n      do {\n        while( true ) {\n          uVar12 = 1 << (uVar13 & 0x1f);\n          if ((uVar12 & *puVar11) != 0) break;\n          *puVar8 = ~uVar12 & *puVar8;\n          if (uVar13 != 0x1f) goto LAB_00184984;\nLAB_001849c0:\n          uVar9 = uVar9 - 1;\n          puVar11 = puVar11 + 1;\n          puVar8 = puVar8 + 1;\n          uVar12 = 1;\n          uVar1 = 1;\n          uVar7 = 0;\n          uVar13 = uVar7;\n          if (uVar9 == 0) goto LAB_001849dc;\n        }\n        *puVar8 = uVar12 | *puVar8;\n        if (uVar13 == 0x1f) goto LAB_001849c0;\nLAB_00184984:\n        uVar7 = uVar13 + 1;\n        uVar9 = uVar9 - 1;\n        uVar1 = uVar13 + 2;\n        uVar12 = 1 << (uVar7 & 0x1f);\n        uVar13 = uVar7;\n      } while (uVar9 != 0);\nLAB_001849dc:\n      puVar11 = puVar8;\n      if (uVar7 == 0x1f) {\n        uVar1 = 0;\n        puVar11 = puVar8 + 1;\n      }\n    }" { (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) (expression_statement "uVar9 = in_a2;" (assignment_expression "uVar9 = in_a2" identifier = identifier) ;) (expression_statement "puVar11 = puVar5;" (assignment_expression "puVar11 = puVar5" identifier = identifier) ;) (do_statement "do {\n        while( true ) {\n          uVar12 = 1 << (uVar13 & 0x1f);\n          if ((uVar12 & *puVar11) != 0) break;\n          *puVar8 = ~uVar12 & *puVar8;\n          if (uVar13 != 0x1f) goto LAB_00184984;\nLAB_001849c0:\n          uVar9 = uVar9 - 1;\n          puVar11 = puVar11 + 1;\n          puVar8 = puVar8 + 1;\n          uVar12 = 1;\n          uVar1 = 1;\n          uVar7 = 0;\n          uVar13 = uVar7;\n          if (uVar9 == 0) goto LAB_001849dc;\n        }\n        *puVar8 = uVar12 | *puVar8;\n        if (uVar13 == 0x1f) goto LAB_001849c0;\nLAB_00184984:\n        uVar7 = uVar13 + 1;\n        uVar9 = uVar9 - 1;\n        uVar1 = uVar13 + 2;\n        uVar12 = 1 << (uVar7 & 0x1f);\n        uVar13 = uVar7;\n      } while (uVar9 != 0);" do (compound_statement "{\n        while( true ) {\n          uVar12 = 1 << (uVar13 & 0x1f);\n          if ((uVar12 & *puVar11) != 0) break;\n          *puVar8 = ~uVar12 & *puVar8;\n          if (uVar13 != 0x1f) goto LAB_00184984;\nLAB_001849c0:\n          uVar9 = uVar9 - 1;\n          puVar11 = puVar11 + 1;\n          puVar8 = puVar8 + 1;\n          uVar12 = 1;\n          uVar1 = 1;\n          uVar7 = 0;\n          uVar13 = uVar7;\n          if (uVar9 == 0) goto LAB_001849dc;\n        }\n        *puVar8 = uVar12 | *puVar8;\n        if (uVar13 == 0x1f) goto LAB_001849c0;\nLAB_00184984:\n        uVar7 = uVar13 + 1;\n        uVar9 = uVar9 - 1;\n        uVar1 = uVar13 + 2;\n        uVar12 = 1 << (uVar7 & 0x1f);\n        uVar13 = uVar7;\n      }" { (while_statement "while( true ) {\n          uVar12 = 1 << (uVar13 & 0x1f);\n          if ((uVar12 & *puVar11) != 0) break;\n          *puVar8 = ~uVar12 & *puVar8;\n          if (uVar13 != 0x1f) goto LAB_00184984;\nLAB_001849c0:\n          uVar9 = uVar9 - 1;\n          puVar11 = puVar11 + 1;\n          puVar8 = puVar8 + 1;\n          uVar12 = 1;\n          uVar1 = 1;\n          uVar7 = 0;\n          uVar13 = uVar7;\n          if (uVar9 == 0) goto LAB_001849dc;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          uVar12 = 1 << (uVar13 & 0x1f);\n          if ((uVar12 & *puVar11) != 0) break;\n          *puVar8 = ~uVar12 & *puVar8;\n          if (uVar13 != 0x1f) goto LAB_00184984;\nLAB_001849c0:\n          uVar9 = uVar9 - 1;\n          puVar11 = puVar11 + 1;\n          puVar8 = puVar8 + 1;\n          uVar12 = 1;\n          uVar1 = 1;\n          uVar7 = 0;\n          uVar13 = uVar7;\n          if (uVar9 == 0) goto LAB_001849dc;\n        }" { (expression_statement "uVar12 = 1 << (uVar13 & 0x1f);" (assignment_expression "uVar12 = 1 << (uVar13 & 0x1f)" identifier = (binary_expression "1 << (uVar13 & 0x1f)" number_literal << (parenthesized_expression "(uVar13 & 0x1f)" ( (binary_expression "uVar13 & 0x1f" identifier & number_literal) )))) ;) (if_statement "if ((uVar12 & *puVar11) != 0) break;" if (parenthesized_expression "((uVar12 & *puVar11) != 0)" ( (binary_expression "(uVar12 & *puVar11) != 0" (parenthesized_expression "(uVar12 & *puVar11)" ( (binary_expression "uVar12 & *puVar11" identifier & (pointer_expression "*puVar11" * identifier)) )) != number_literal) )) (break_statement "break;" break ;)) (expression_statement "*puVar8 = ~uVar12 & *puVar8;" (assignment_expression "*puVar8 = ~uVar12 & *puVar8" (pointer_expression "*puVar8" * identifier) = (binary_expression "~uVar12 & *puVar8" (unary_expression "~uVar12" ~ identifier) & (pointer_expression "*puVar8" * identifier))) ;) (if_statement "if (uVar13 != 0x1f) goto LAB_00184984;" if (parenthesized_expression "(uVar13 != 0x1f)" ( (binary_expression "uVar13 != 0x1f" identifier != number_literal) )) (goto_statement "goto LAB_00184984;" goto statement_identifier ;)) (labeled_statement "LAB_001849c0:\n          uVar9 = uVar9 - 1;" statement_identifier : (expression_statement "uVar9 = uVar9 - 1;" (assignment_expression "uVar9 = uVar9 - 1" identifier = (binary_expression "uVar9 - 1" identifier - number_literal)) ;)) (expression_statement "puVar11 = puVar11 + 1;" (assignment_expression "puVar11 = puVar11 + 1" identifier = (binary_expression "puVar11 + 1" identifier + number_literal)) ;) (expression_statement "puVar8 = puVar8 + 1;" (assignment_expression "puVar8 = puVar8 + 1" identifier = (binary_expression "puVar8 + 1" identifier + number_literal)) ;) (expression_statement "uVar12 = 1;" (assignment_expression "uVar12 = 1" identifier = number_literal) ;) (expression_statement "uVar1 = 1;" (assignment_expression "uVar1 = 1" identifier = number_literal) ;) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (expression_statement "uVar13 = uVar7;" (assignment_expression "uVar13 = uVar7" identifier = identifier) ;) (if_statement "if (uVar9 == 0) goto LAB_001849dc;" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001849dc;" goto statement_identifier ;)) })) (expression_statement "*puVar8 = uVar12 | *puVar8;" (assignment_expression "*puVar8 = uVar12 | *puVar8" (pointer_expression "*puVar8" * identifier) = (binary_expression "uVar12 | *puVar8" identifier | (pointer_expression "*puVar8" * identifier))) ;) (if_statement "if (uVar13 == 0x1f) goto LAB_001849c0;" if (parenthesized_expression "(uVar13 == 0x1f)" ( (binary_expression "uVar13 == 0x1f" identifier == number_literal) )) (goto_statement "goto LAB_001849c0;" goto statement_identifier ;)) (labeled_statement "LAB_00184984:\n        uVar7 = uVar13 + 1;" statement_identifier : (expression_statement "uVar7 = uVar13 + 1;" (assignment_expression "uVar7 = uVar13 + 1" identifier = (binary_expression "uVar13 + 1" identifier + number_literal)) ;)) (expression_statement "uVar9 = uVar9 - 1;" (assignment_expression "uVar9 = uVar9 - 1" identifier = (binary_expression "uVar9 - 1" identifier - number_literal)) ;) (expression_statement "uVar1 = uVar13 + 2;" (assignment_expression "uVar1 = uVar13 + 2" identifier = (binary_expression "uVar13 + 2" identifier + number_literal)) ;) (expression_statement "uVar12 = 1 << (uVar7 & 0x1f);" (assignment_expression "uVar12 = 1 << (uVar7 & 0x1f)" identifier = (binary_expression "1 << (uVar7 & 0x1f)" number_literal << (parenthesized_expression "(uVar7 & 0x1f)" ( (binary_expression "uVar7 & 0x1f" identifier & number_literal) )))) ;) (expression_statement "uVar13 = uVar7;" (assignment_expression "uVar13 = uVar7" identifier = identifier) ;) }) while (parenthesized_expression "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )) ;) (labeled_statement "LAB_001849dc:\n      puVar11 = puVar8;" statement_identifier : (expression_statement "puVar11 = puVar8;" (assignment_expression "puVar11 = puVar8" identifier = identifier) ;)) (if_statement "if (uVar7 == 0x1f) {\n        uVar1 = 0;\n        puVar11 = puVar8 + 1;\n      }" if (parenthesized_expression "(uVar7 == 0x1f)" ( (binary_expression "uVar7 == 0x1f" identifier == number_literal) )) (compound_statement "{\n        uVar1 = 0;\n        puVar11 = puVar8 + 1;\n      }" { (expression_statement "uVar1 = 0;" (assignment_expression "uVar1 = 0" identifier = number_literal) ;) (expression_statement "puVar11 = puVar8 + 1;" (assignment_expression "puVar11 = puVar8 + 1" identifier = (binary_expression "puVar8 + 1" identifier + number_literal)) ;) })) }))) (if_statement "if (in_a3 == 0) {\n      uVar12 = ~uVar12 & *puVar8;\n    }\n    else {\n      uVar12 = *puVar8 | uVar12;\n    }" if (parenthesized_expression "(in_a3 == 0)" ( (binary_expression "in_a3 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar12 = ~uVar12 & *puVar8;\n    }" { (expression_statement "uVar12 = ~uVar12 & *puVar8;" (assignment_expression "uVar12 = ~uVar12 & *puVar8" identifier = (binary_expression "~uVar12 & *puVar8" (unary_expression "~uVar12" ~ identifier) & (pointer_expression "*puVar8" * identifier))) ;) }) (else_clause "else {\n      uVar12 = *puVar8 | uVar12;\n    }" else (compound_statement "{\n      uVar12 = *puVar8 | uVar12;\n    }" { (expression_statement "uVar12 = *puVar8 | uVar12;" (assignment_expression "uVar12 = *puVar8 | uVar12" identifier = (binary_expression "*puVar8 | uVar12" (pointer_expression "*puVar8" * identifier) | identifier)) ;) }))) (expression_statement "iVar4 = ((int)(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.\n                  super__Bvector_impl_data._M_finish.super__Bit_iterator_base._M_p - (int)puVar5) *\n            8 + ((this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data\n                 ._M_finish.super__Bit_iterator_base._M_offset - in_a2);" (assignment_expression "iVar4 = ((int)(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.\n                  super__Bvector_impl_data._M_finish.super__Bit_iterator_base._M_p - (int)puVar5) *\n            8 + ((this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data\n                 ._M_finish.super__Bit_iterator_base._M_offset - in_a2)" identifier = (binary_expression "((int)(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.\n                  super__Bvector_impl_data._M_finish.super__Bit_iterator_base._M_p - (int)puVar5) *\n            8 + ((this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data\n                 ._M_finish.super__Bit_iterator_base._M_offset - in_a2)" (binary_expression "((int)(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.\n                  super__Bvector_impl_data._M_finish.super__Bit_iterator_base._M_p - (int)puVar5) *\n            8" (parenthesized_expression "((int)(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.\n                  super__Bvector_impl_data._M_finish.super__Bit_iterator_base._M_p - (int)puVar5)" ( (binary_expression "(int)(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.\n                  super__Bvector_impl_data._M_finish.super__Bit_iterator_base._M_p - (int)puVar5" (cast_expression "(int)(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.\n                  super__Bvector_impl_data._M_finish.super__Bit_iterator_base._M_p" ( (type_descriptor "int" primitive_type) ) (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.\n                  super__Bvector_impl_data._M_finish.super__Bit_iterator_base._M_p" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.\n                  super__Bvector_impl_data._M_finish.super__Bit_iterator_base" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.\n                  super__Bvector_impl_data._M_finish" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.\n                  super__Bvector_impl_data" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl" (parenthesized_expression "(this->super__Bvector_base<std::allocator<bool>_>)" ( (binary_expression "this->super__Bvector_base<std::allocator<bool>_>" (binary_expression "this->super__Bvector_base<std::allocator<bool>_" (binary_expression "this->super__Bvector_base<std::allocator<bool" (binary_expression "this->super__Bvector_base<std" (field_expression "this->super__Bvector_base" identifier -> field_identifier) < identifier) (ERROR "::allocator" : : identifier) < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) - (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )) * number_literal) + (parenthesized_expression "((this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data\n                 ._M_finish.super__Bit_iterator_base._M_offset - in_a2)" ( (binary_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data\n                 ._M_finish.super__Bit_iterator_base._M_offset - in_a2" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data\n                 ._M_finish.super__Bit_iterator_base._M_offset" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data\n                 ._M_finish.super__Bit_iterator_base" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data\n                 ._M_finish" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl" (parenthesized_expression "(this->super__Bvector_base<std::allocator<bool>_>)" ( (binary_expression "this->super__Bvector_base<std::allocator<bool>_>" (binary_expression "this->super__Bvector_base<std::allocator<bool>_" (binary_expression "this->super__Bvector_base<std::allocator<bool" (binary_expression "this->super__Bvector_base<std" (field_expression "this->super__Bvector_base" identifier -> field_identifier) < identifier) (ERROR "::allocator" : : identifier) < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) - identifier) )))) ;) (expression_statement "*puVar8 = uVar12;" (assignment_expression "*puVar8 = uVar12" (pointer_expression "*puVar8" * identifier) = identifier) ;) (if_statement "if (0 < iVar4) {\n      do {\n        while( true ) {\n          uVar12 = 1 << (uVar1 & 0x1f);\n          if ((1 << (in_a2 & 0x1f) & *puVar5) != 0) break;\n          *puVar11 = ~uVar12 & *puVar11;\n          if (in_a2 != 0x1f) goto LAB_00184a30;\nLAB_00184a6c:\n          puVar5 = puVar5 + 1;\n          in_a2 = 0;\n          if (uVar1 != 0x1f) goto LAB_00184a38;\nLAB_00184a78:\n          iVar4 = iVar4 + -1;\n          puVar11 = puVar11 + 1;\n          uVar1 = 0;\n          if (iVar4 == 0) goto LAB_00184a88;\n        }\n        *puVar11 = *puVar11 | uVar12;\n        if (in_a2 == 0x1f) goto LAB_00184a6c;\nLAB_00184a30:\n        in_a2 = in_a2 + 1;\n        if (uVar1 == 0x1f) goto LAB_00184a78;\nLAB_00184a38:\n        iVar4 = iVar4 + -1;\n        uVar1 = uVar1 + 1;\n      } while (iVar4 != 0);\n    }" if (parenthesized_expression "(0 < iVar4)" ( (binary_expression "0 < iVar4" number_literal < identifier) )) (compound_statement "{\n      do {\n        while( true ) {\n          uVar12 = 1 << (uVar1 & 0x1f);\n          if ((1 << (in_a2 & 0x1f) & *puVar5) != 0) break;\n          *puVar11 = ~uVar12 & *puVar11;\n          if (in_a2 != 0x1f) goto LAB_00184a30;\nLAB_00184a6c:\n          puVar5 = puVar5 + 1;\n          in_a2 = 0;\n          if (uVar1 != 0x1f) goto LAB_00184a38;\nLAB_00184a78:\n          iVar4 = iVar4 + -1;\n          puVar11 = puVar11 + 1;\n          uVar1 = 0;\n          if (iVar4 == 0) goto LAB_00184a88;\n        }\n        *puVar11 = *puVar11 | uVar12;\n        if (in_a2 == 0x1f) goto LAB_00184a6c;\nLAB_00184a30:\n        in_a2 = in_a2 + 1;\n        if (uVar1 == 0x1f) goto LAB_00184a78;\nLAB_00184a38:\n        iVar4 = iVar4 + -1;\n        uVar1 = uVar1 + 1;\n      } while (iVar4 != 0);\n    }" { (do_statement "do {\n        while( true ) {\n          uVar12 = 1 << (uVar1 & 0x1f);\n          if ((1 << (in_a2 & 0x1f) & *puVar5) != 0) break;\n          *puVar11 = ~uVar12 & *puVar11;\n          if (in_a2 != 0x1f) goto LAB_00184a30;\nLAB_00184a6c:\n          puVar5 = puVar5 + 1;\n          in_a2 = 0;\n          if (uVar1 != 0x1f) goto LAB_00184a38;\nLAB_00184a78:\n          iVar4 = iVar4 + -1;\n          puVar11 = puVar11 + 1;\n          uVar1 = 0;\n          if (iVar4 == 0) goto LAB_00184a88;\n        }\n        *puVar11 = *puVar11 | uVar12;\n        if (in_a2 == 0x1f) goto LAB_00184a6c;\nLAB_00184a30:\n        in_a2 = in_a2 + 1;\n        if (uVar1 == 0x1f) goto LAB_00184a78;\nLAB_00184a38:\n        iVar4 = iVar4 + -1;\n        uVar1 = uVar1 + 1;\n      } while (iVar4 != 0);" do (compound_statement "{\n        while( true ) {\n          uVar12 = 1 << (uVar1 & 0x1f);\n          if ((1 << (in_a2 & 0x1f) & *puVar5) != 0) break;\n          *puVar11 = ~uVar12 & *puVar11;\n          if (in_a2 != 0x1f) goto LAB_00184a30;\nLAB_00184a6c:\n          puVar5 = puVar5 + 1;\n          in_a2 = 0;\n          if (uVar1 != 0x1f) goto LAB_00184a38;\nLAB_00184a78:\n          iVar4 = iVar4 + -1;\n          puVar11 = puVar11 + 1;\n          uVar1 = 0;\n          if (iVar4 == 0) goto LAB_00184a88;\n        }\n        *puVar11 = *puVar11 | uVar12;\n        if (in_a2 == 0x1f) goto LAB_00184a6c;\nLAB_00184a30:\n        in_a2 = in_a2 + 1;\n        if (uVar1 == 0x1f) goto LAB_00184a78;\nLAB_00184a38:\n        iVar4 = iVar4 + -1;\n        uVar1 = uVar1 + 1;\n      }" { (while_statement "while( true ) {\n          uVar12 = 1 << (uVar1 & 0x1f);\n          if ((1 << (in_a2 & 0x1f) & *puVar5) != 0) break;\n          *puVar11 = ~uVar12 & *puVar11;\n          if (in_a2 != 0x1f) goto LAB_00184a30;\nLAB_00184a6c:\n          puVar5 = puVar5 + 1;\n          in_a2 = 0;\n          if (uVar1 != 0x1f) goto LAB_00184a38;\nLAB_00184a78:\n          iVar4 = iVar4 + -1;\n          puVar11 = puVar11 + 1;\n          uVar1 = 0;\n          if (iVar4 == 0) goto LAB_00184a88;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          uVar12 = 1 << (uVar1 & 0x1f);\n          if ((1 << (in_a2 & 0x1f) & *puVar5) != 0) break;\n          *puVar11 = ~uVar12 & *puVar11;\n          if (in_a2 != 0x1f) goto LAB_00184a30;\nLAB_00184a6c:\n          puVar5 = puVar5 + 1;\n          in_a2 = 0;\n          if (uVar1 != 0x1f) goto LAB_00184a38;\nLAB_00184a78:\n          iVar4 = iVar4 + -1;\n          puVar11 = puVar11 + 1;\n          uVar1 = 0;\n          if (iVar4 == 0) goto LAB_00184a88;\n        }" { (expression_statement "uVar12 = 1 << (uVar1 & 0x1f);" (assignment_expression "uVar12 = 1 << (uVar1 & 0x1f)" identifier = (binary_expression "1 << (uVar1 & 0x1f)" number_literal << (parenthesized_expression "(uVar1 & 0x1f)" ( (binary_expression "uVar1 & 0x1f" identifier & number_literal) )))) ;) (if_statement "if ((1 << (in_a2 & 0x1f) & *puVar5) != 0) break;" if (parenthesized_expression "((1 << (in_a2 & 0x1f) & *puVar5) != 0)" ( (binary_expression "(1 << (in_a2 & 0x1f) & *puVar5) != 0" (parenthesized_expression "(1 << (in_a2 & 0x1f) & *puVar5)" ( (binary_expression "1 << (in_a2 & 0x1f) & *puVar5" (binary_expression "1 << (in_a2 & 0x1f)" number_literal << (parenthesized_expression "(in_a2 & 0x1f)" ( (binary_expression "in_a2 & 0x1f" identifier & number_literal) ))) & (pointer_expression "*puVar5" * identifier)) )) != number_literal) )) (break_statement "break;" break ;)) (expression_statement "*puVar11 = ~uVar12 & *puVar11;" (assignment_expression "*puVar11 = ~uVar12 & *puVar11" (pointer_expression "*puVar11" * identifier) = (binary_expression "~uVar12 & *puVar11" (unary_expression "~uVar12" ~ identifier) & (pointer_expression "*puVar11" * identifier))) ;) (if_statement "if (in_a2 != 0x1f) goto LAB_00184a30;" if (parenthesized_expression "(in_a2 != 0x1f)" ( (binary_expression "in_a2 != 0x1f" identifier != number_literal) )) (goto_statement "goto LAB_00184a30;" goto statement_identifier ;)) (labeled_statement "LAB_00184a6c:\n          puVar5 = puVar5 + 1;" statement_identifier : (expression_statement "puVar5 = puVar5 + 1;" (assignment_expression "puVar5 = puVar5 + 1" identifier = (binary_expression "puVar5 + 1" identifier + number_literal)) ;)) (expression_statement "in_a2 = 0;" (assignment_expression "in_a2 = 0" identifier = number_literal) ;) (if_statement "if (uVar1 != 0x1f) goto LAB_00184a38;" if (parenthesized_expression "(uVar1 != 0x1f)" ( (binary_expression "uVar1 != 0x1f" identifier != number_literal) )) (goto_statement "goto LAB_00184a38;" goto statement_identifier ;)) (labeled_statement "LAB_00184a78:\n          iVar4 = iVar4 + -1;" statement_identifier : (expression_statement "iVar4 = iVar4 + -1;" (assignment_expression "iVar4 = iVar4 + -1" identifier = (binary_expression "iVar4 + -1" identifier + number_literal)) ;)) (expression_statement "puVar11 = puVar11 + 1;" (assignment_expression "puVar11 = puVar11 + 1" identifier = (binary_expression "puVar11 + 1" identifier + number_literal)) ;) (expression_statement "uVar1 = 0;" (assignment_expression "uVar1 = 0" identifier = number_literal) ;) (if_statement "if (iVar4 == 0) goto LAB_00184a88;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00184a88;" goto statement_identifier ;)) })) (expression_statement "*puVar11 = *puVar11 | uVar12;" (assignment_expression "*puVar11 = *puVar11 | uVar12" (pointer_expression "*puVar11" * identifier) = (binary_expression "*puVar11 | uVar12" (pointer_expression "*puVar11" * identifier) | identifier)) ;) (if_statement "if (in_a2 == 0x1f) goto LAB_00184a6c;" if (parenthesized_expression "(in_a2 == 0x1f)" ( (binary_expression "in_a2 == 0x1f" identifier == number_literal) )) (goto_statement "goto LAB_00184a6c;" goto statement_identifier ;)) (labeled_statement "LAB_00184a30:\n        in_a2 = in_a2 + 1;" statement_identifier : (expression_statement "in_a2 = in_a2 + 1;" (assignment_expression "in_a2 = in_a2 + 1" identifier = (binary_expression "in_a2 + 1" identifier + number_literal)) ;)) (if_statement "if (uVar1 == 0x1f) goto LAB_00184a78;" if (parenthesized_expression "(uVar1 == 0x1f)" ( (binary_expression "uVar1 == 0x1f" identifier == number_literal) )) (goto_statement "goto LAB_00184a78;" goto statement_identifier ;)) (labeled_statement "LAB_00184a38:\n        iVar4 = iVar4 + -1;" statement_identifier : (expression_statement "iVar4 = iVar4 + -1;" (assignment_expression "iVar4 = iVar4 + -1" identifier = (binary_expression "iVar4 + -1" identifier + number_literal)) ;)) (expression_statement "uVar1 = uVar1 + 1;" (assignment_expression "uVar1 = uVar1 + 1" identifier = (binary_expression "uVar1 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) ;) })) (labeled_statement "LAB_00184a88:\n    if (puVar15 != (uint *)0x0) {\n      (*(code *)PTR_operator_delete_004c12fc)(puVar15);\n      (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.\n      super__Bit_iterator_base._M_p = (_Bit_type *)0x0;\n      (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.\n      super__Bit_iterator_base._M_offset = 0;\n      (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_start.\n      super__Bit_iterator_base._M_p = (_Bit_type *)0x0;\n      (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_start.\n      super__Bit_iterator_base._M_offset = 0;\n    }" statement_identifier : (if_statement "if (puVar15 != (uint *)0x0) {\n      (*(code *)PTR_operator_delete_004c12fc)(puVar15);\n      (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.\n      super__Bit_iterator_base._M_p = (_Bit_type *)0x0;\n      (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.\n      super__Bit_iterator_base._M_offset = 0;\n      (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_start.\n      super__Bit_iterator_base._M_p = (_Bit_type *)0x0;\n      (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_start.\n      super__Bit_iterator_base._M_offset = 0;\n    }" if (parenthesized_expression "(puVar15 != (uint *)0x0)" ( (binary_expression "puVar15 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (*(code *)PTR_operator_delete_004c12fc)(puVar15);\n      (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.\n      super__Bit_iterator_base._M_p = (_Bit_type *)0x0;\n      (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.\n      super__Bit_iterator_base._M_offset = 0;\n      (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_start.\n      super__Bit_iterator_base._M_p = (_Bit_type *)0x0;\n      (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_start.\n      super__Bit_iterator_base._M_offset = 0;\n    }" { (expression_statement "(*(code *)PTR_operator_delete_004c12fc)(puVar15);" (call_expression "(*(code *)PTR_operator_delete_004c12fc)(puVar15)" (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 "(puVar15)" ( identifier ))) ;) (expression_statement "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.\n      super__Bit_iterator_base._M_p = (_Bit_type *)0x0;" (assignment_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.\n      super__Bit_iterator_base._M_p = (_Bit_type *)0x0" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.\n      super__Bit_iterator_base._M_p" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.\n      super__Bit_iterator_base" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl" (parenthesized_expression "(this->super__Bvector_base<std::allocator<bool>_>)" ( (binary_expression "this->super__Bvector_base<std::allocator<bool>_>" (binary_expression "this->super__Bvector_base<std::allocator<bool>_" (binary_expression "this->super__Bvector_base<std::allocator<bool" (binary_expression "this->super__Bvector_base<std" (field_expression "this->super__Bvector_base" identifier -> field_identifier) < identifier) (ERROR "::allocator" : : identifier) < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(_Bit_type *)0x0" ( (type_descriptor "_Bit_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.\n      super__Bit_iterator_base._M_offset = 0;" (assignment_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.\n      super__Bit_iterator_base._M_offset = 0" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.\n      super__Bit_iterator_base._M_offset" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.\n      super__Bit_iterator_base" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl" (parenthesized_expression "(this->super__Bvector_base<std::allocator<bool>_>)" ( (binary_expression "this->super__Bvector_base<std::allocator<bool>_>" (binary_expression "this->super__Bvector_base<std::allocator<bool>_" (binary_expression "this->super__Bvector_base<std::allocator<bool" (binary_expression "this->super__Bvector_base<std" (field_expression "this->super__Bvector_base" identifier -> field_identifier) < identifier) (ERROR "::allocator" : : identifier) < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_start.\n      super__Bit_iterator_base._M_p = (_Bit_type *)0x0;" (assignment_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_start.\n      super__Bit_iterator_base._M_p = (_Bit_type *)0x0" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_start.\n      super__Bit_iterator_base._M_p" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_start.\n      super__Bit_iterator_base" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_start" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl" (parenthesized_expression "(this->super__Bvector_base<std::allocator<bool>_>)" ( (binary_expression "this->super__Bvector_base<std::allocator<bool>_>" (binary_expression "this->super__Bvector_base<std::allocator<bool>_" (binary_expression "this->super__Bvector_base<std::allocator<bool" (binary_expression "this->super__Bvector_base<std" (field_expression "this->super__Bvector_base" identifier -> field_identifier) < identifier) (ERROR "::allocator" : : identifier) < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(_Bit_type *)0x0" ( (type_descriptor "_Bit_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_start.\n      super__Bit_iterator_base._M_offset = 0;" (assignment_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_start.\n      super__Bit_iterator_base._M_offset = 0" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_start.\n      super__Bit_iterator_base._M_offset" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_start.\n      super__Bit_iterator_base" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_start" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl" (parenthesized_expression "(this->super__Bvector_base<std::allocator<bool>_>)" ( (binary_expression "this->super__Bvector_base<std::allocator<bool>_>" (binary_expression "this->super__Bvector_base<std::allocator<bool>_" (binary_expression "this->super__Bvector_base<std::allocator<bool" (binary_expression "this->super__Bvector_base<std" (field_expression "this->super__Bvector_base" identifier -> field_identifier) < identifier) (ERROR "::allocator" : : identifier) < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) }))) (expression_statement "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_start.\n    super__Bit_iterator_base._M_p = p_Var10;" (assignment_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_start.\n    super__Bit_iterator_base._M_p = p_Var10" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_start.\n    super__Bit_iterator_base._M_p" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_start.\n    super__Bit_iterator_base" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_start" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl" (parenthesized_expression "(this->super__Bvector_base<std::allocator<bool>_>)" ( (binary_expression "this->super__Bvector_base<std::allocator<bool>_>" (binary_expression "this->super__Bvector_base<std::allocator<bool>_" (binary_expression "this->super__Bvector_base<std::allocator<bool" (binary_expression "this->super__Bvector_base<std" (field_expression "this->super__Bvector_base" identifier -> field_identifier) < identifier) (ERROR "::allocator" : : identifier) < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data.\n    _M_end_of_storage = (_Bit_pointer)((int)p_Var10 + iVar3);" (assignment_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data.\n    _M_end_of_storage = (_Bit_pointer)((int)p_Var10 + iVar3)" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data.\n    _M_end_of_storage" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl" (parenthesized_expression "(this->super__Bvector_base<std::allocator<bool>_>)" ( (binary_expression "this->super__Bvector_base<std::allocator<bool>_>" (binary_expression "this->super__Bvector_base<std::allocator<bool>_" (binary_expression "this->super__Bvector_base<std::allocator<bool" (binary_expression "this->super__Bvector_base<std" (field_expression "this->super__Bvector_base" identifier -> field_identifier) < identifier) (ERROR "::allocator" : : identifier) < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier) . field_identifier) = (call_expression "(_Bit_pointer)((int)p_Var10 + iVar3)" (parenthesized_expression "(_Bit_pointer)" ( identifier )) (argument_list "((int)p_Var10 + iVar3)" ( (binary_expression "(int)p_Var10 + iVar3" (cast_expression "(int)p_Var10" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.\n    super__Bit_iterator_base._M_p = puVar11;" (assignment_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.\n    super__Bit_iterator_base._M_p = puVar11" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.\n    super__Bit_iterator_base._M_p" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.\n    super__Bit_iterator_base" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl" (parenthesized_expression "(this->super__Bvector_base<std::allocator<bool>_>)" ( (binary_expression "this->super__Bvector_base<std::allocator<bool>_>" (binary_expression "this->super__Bvector_base<std::allocator<bool>_" (binary_expression "this->super__Bvector_base<std::allocator<bool" (binary_expression "this->super__Bvector_base<std" (field_expression "this->super__Bvector_base" identifier -> field_identifier) < identifier) (ERROR "::allocator" : : identifier) < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.\n    super__Bit_iterator_base._M_offset = uVar1;" (assignment_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.\n    super__Bit_iterator_base._M_offset = uVar1" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.\n    super__Bit_iterator_base._M_offset" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.\n    super__Bit_iterator_base" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl" (parenthesized_expression "(this->super__Bvector_base<std::allocator<bool>_>)" ( (binary_expression "this->super__Bvector_base<std::allocator<bool>_>" (binary_expression "this->super__Bvector_base<std::allocator<bool>_" (binary_expression "this->super__Bvector_base<std::allocator<bool" (binary_expression "this->super__Bvector_base<std" (field_expression "this->super__Bvector_base" identifier -> field_identifier) < identifier) (ERROR "::allocator" : : identifier) < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_start.\n    super__Bit_iterator_base._M_offset = 0;" (assignment_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_start.\n    super__Bit_iterator_base._M_offset = 0" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_start.\n    super__Bit_iterator_base._M_offset" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_start.\n    super__Bit_iterator_base" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_start" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl" (parenthesized_expression "(this->super__Bvector_base<std::allocator<bool>_>)" ( (binary_expression "this->super__Bvector_base<std::allocator<bool>_>" (binary_expression "this->super__Bvector_base<std::allocator<bool>_" (binary_expression "this->super__Bvector_base<std::allocator<bool" (binary_expression "this->super__Bvector_base<std" (field_expression "this->super__Bvector_base" identifier -> field_identifier) < identifier) (ERROR "::allocator" : : identifier) < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (return_statement "return;" return ;) })) (expression_statement "uVar13 = uVar12 + 1;" (assignment_expression "uVar13 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (expression_statement "uVar1 = uVar13;" (assignment_expression "uVar1 = uVar13" identifier = identifier) ;) (if_statement "if ((int)uVar13 < 0) {\n    uVar1 = uVar12 + 0x20;\n  }" if (parenthesized_expression "((int)uVar13 < 0)" ( (binary_expression "(int)uVar13 < 0" (cast_expression "(int)uVar13" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    uVar1 = uVar12 + 0x20;\n  }" { (expression_statement "uVar1 = uVar12 + 0x20;" (assignment_expression "uVar1 = uVar12 + 0x20" identifier = (binary_expression "uVar12 + 0x20" identifier + number_literal)) ;) })) (expression_statement "p_Var2 = p_Var10 + ((int)uVar1 >> 5);" (assignment_expression "p_Var2 = p_Var10 + ((int)uVar1 >> 5)" identifier = (binary_expression "p_Var10 + ((int)uVar1 >> 5)" identifier + (parenthesized_expression "((int)uVar1 >> 5)" ( (binary_expression "(int)uVar1 >> 5" (cast_expression "(int)uVar1" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (if_statement "if ((int)uVar13 < 0) {\n    uVar1 = ((uVar13 & 0x8000001f) - 1 | 0xffffffe0) + 1;\n  }\n  else {\n    uVar1 = uVar13 & 0x8000001f;\n  }" if (parenthesized_expression "((int)uVar13 < 0)" ( (binary_expression "(int)uVar13 < 0" (cast_expression "(int)uVar13" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    uVar1 = ((uVar13 & 0x8000001f) - 1 | 0xffffffe0) + 1;\n  }" { (expression_statement "uVar1 = ((uVar13 & 0x8000001f) - 1 | 0xffffffe0) + 1;" (assignment_expression "uVar1 = ((uVar13 & 0x8000001f) - 1 | 0xffffffe0) + 1" identifier = (binary_expression "((uVar13 & 0x8000001f) - 1 | 0xffffffe0) + 1" (parenthesized_expression "((uVar13 & 0x8000001f) - 1 | 0xffffffe0)" ( (binary_expression "(uVar13 & 0x8000001f) - 1 | 0xffffffe0" (binary_expression "(uVar13 & 0x8000001f) - 1" (parenthesized_expression "(uVar13 & 0x8000001f)" ( (binary_expression "uVar13 & 0x8000001f" identifier & number_literal) )) - number_literal) | number_literal) )) + number_literal)) ;) }) (else_clause "else {\n    uVar1 = uVar13 & 0x8000001f;\n  }" else (compound_statement "{\n    uVar1 = uVar13 & 0x8000001f;\n  }" { (expression_statement "uVar1 = uVar13 & 0x8000001f;" (assignment_expression "uVar1 = uVar13 & 0x8000001f" identifier = (binary_expression "uVar13 & 0x8000001f" identifier & number_literal)) ;) }))) (if_statement "if ((int)uVar1 < 0) {\n    uVar1 = uVar1 + 0x20;\n    p_Var2 = p_Var2 + -1;\n  }" if (parenthesized_expression "((int)uVar1 < 0)" ( (binary_expression "(int)uVar1 < 0" (cast_expression "(int)uVar1" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    uVar1 = uVar1 + 0x20;\n    p_Var2 = p_Var2 + -1;\n  }" { (expression_statement "uVar1 = uVar1 + 0x20;" (assignment_expression "uVar1 = uVar1 + 0x20" identifier = (binary_expression "uVar1 + 0x20" identifier + number_literal)) ;) (expression_statement "p_Var2 = p_Var2 + -1;" (assignment_expression "p_Var2 = p_Var2 + -1" identifier = (binary_expression "p_Var2 + -1" identifier + number_literal)) ;) })) (expression_statement "iVar3 = ((int)p_Var10 - (int)puVar5) * 8 + (uVar12 - in_a2);" (assignment_expression "iVar3 = ((int)p_Var10 - (int)puVar5) * 8 + (uVar12 - in_a2)" identifier = (binary_expression "((int)p_Var10 - (int)puVar5) * 8 + (uVar12 - in_a2)" (binary_expression "((int)p_Var10 - (int)puVar5) * 8" (parenthesized_expression "((int)p_Var10 - (int)puVar5)" ( (binary_expression "(int)p_Var10 - (int)puVar5" (cast_expression "(int)p_Var10" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )) * number_literal) + (parenthesized_expression "(uVar12 - in_a2)" ( (binary_expression "uVar12 - in_a2" identifier - identifier) )))) ;) (expression_statement "uVar9 = uVar12;" (assignment_expression "uVar9 = uVar12" identifier = identifier) ;) (expression_statement "p_Var14 = p_Var10;" (assignment_expression "p_Var14 = p_Var10" identifier = identifier) ;) (if_statement "if (0 < iVar3) {\n    do {\n      while (uVar1 != 0) {\n        uVar1 = uVar1 - 1;\n        uVar7 = 1 << (uVar1 & 0x1f);\n        if (uVar9 == 0) goto LAB_001847b0;\nLAB_00184770:\n        uVar9 = uVar9 - 1;\n        uVar6 = *p_Var2;\n        if ((1 << (uVar9 & 0x1f) & *p_Var14) == 0) goto LAB_001847cc;\nLAB_00184788:\n        iVar3 = iVar3 + -1;\n        *p_Var2 = uVar7 | uVar6;\n        if (iVar3 == 0) goto LAB_001847e0;\n      }\n      p_Var2 = p_Var2 + -1;\n      uVar7 = 0x80000000;\n      uVar1 = 0x1f;\n      if (uVar9 != 0) goto LAB_00184770;\nLAB_001847b0:\n      p_Var14 = p_Var14 + -1;\n      uVar6 = *p_Var2;\n      uVar9 = 0x1f;\n      if ((*p_Var14 & 0x80000000) != 0) goto LAB_00184788;\nLAB_001847cc:\n      iVar3 = iVar3 + -1;\n      *p_Var2 = ~uVar7 & uVar6;\n    } while (iVar3 != 0);\n  }" if (parenthesized_expression "(0 < iVar3)" ( (binary_expression "0 < iVar3" number_literal < identifier) )) (compound_statement "{\n    do {\n      while (uVar1 != 0) {\n        uVar1 = uVar1 - 1;\n        uVar7 = 1 << (uVar1 & 0x1f);\n        if (uVar9 == 0) goto LAB_001847b0;\nLAB_00184770:\n        uVar9 = uVar9 - 1;\n        uVar6 = *p_Var2;\n        if ((1 << (uVar9 & 0x1f) & *p_Var14) == 0) goto LAB_001847cc;\nLAB_00184788:\n        iVar3 = iVar3 + -1;\n        *p_Var2 = uVar7 | uVar6;\n        if (iVar3 == 0) goto LAB_001847e0;\n      }\n      p_Var2 = p_Var2 + -1;\n      uVar7 = 0x80000000;\n      uVar1 = 0x1f;\n      if (uVar9 != 0) goto LAB_00184770;\nLAB_001847b0:\n      p_Var14 = p_Var14 + -1;\n      uVar6 = *p_Var2;\n      uVar9 = 0x1f;\n      if ((*p_Var14 & 0x80000000) != 0) goto LAB_00184788;\nLAB_001847cc:\n      iVar3 = iVar3 + -1;\n      *p_Var2 = ~uVar7 & uVar6;\n    } while (iVar3 != 0);\n  }" { (do_statement "do {\n      while (uVar1 != 0) {\n        uVar1 = uVar1 - 1;\n        uVar7 = 1 << (uVar1 & 0x1f);\n        if (uVar9 == 0) goto LAB_001847b0;\nLAB_00184770:\n        uVar9 = uVar9 - 1;\n        uVar6 = *p_Var2;\n        if ((1 << (uVar9 & 0x1f) & *p_Var14) == 0) goto LAB_001847cc;\nLAB_00184788:\n        iVar3 = iVar3 + -1;\n        *p_Var2 = uVar7 | uVar6;\n        if (iVar3 == 0) goto LAB_001847e0;\n      }\n      p_Var2 = p_Var2 + -1;\n      uVar7 = 0x80000000;\n      uVar1 = 0x1f;\n      if (uVar9 != 0) goto LAB_00184770;\nLAB_001847b0:\n      p_Var14 = p_Var14 + -1;\n      uVar6 = *p_Var2;\n      uVar9 = 0x1f;\n      if ((*p_Var14 & 0x80000000) != 0) goto LAB_00184788;\nLAB_001847cc:\n      iVar3 = iVar3 + -1;\n      *p_Var2 = ~uVar7 & uVar6;\n    } while (iVar3 != 0);" do (compound_statement "{\n      while (uVar1 != 0) {\n        uVar1 = uVar1 - 1;\n        uVar7 = 1 << (uVar1 & 0x1f);\n        if (uVar9 == 0) goto LAB_001847b0;\nLAB_00184770:\n        uVar9 = uVar9 - 1;\n        uVar6 = *p_Var2;\n        if ((1 << (uVar9 & 0x1f) & *p_Var14) == 0) goto LAB_001847cc;\nLAB_00184788:\n        iVar3 = iVar3 + -1;\n        *p_Var2 = uVar7 | uVar6;\n        if (iVar3 == 0) goto LAB_001847e0;\n      }\n      p_Var2 = p_Var2 + -1;\n      uVar7 = 0x80000000;\n      uVar1 = 0x1f;\n      if (uVar9 != 0) goto LAB_00184770;\nLAB_001847b0:\n      p_Var14 = p_Var14 + -1;\n      uVar6 = *p_Var2;\n      uVar9 = 0x1f;\n      if ((*p_Var14 & 0x80000000) != 0) goto LAB_00184788;\nLAB_001847cc:\n      iVar3 = iVar3 + -1;\n      *p_Var2 = ~uVar7 & uVar6;\n    }" { (while_statement "while (uVar1 != 0) {\n        uVar1 = uVar1 - 1;\n        uVar7 = 1 << (uVar1 & 0x1f);\n        if (uVar9 == 0) goto LAB_001847b0;\nLAB_00184770:\n        uVar9 = uVar9 - 1;\n        uVar6 = *p_Var2;\n        if ((1 << (uVar9 & 0x1f) & *p_Var14) == 0) goto LAB_001847cc;\nLAB_00184788:\n        iVar3 = iVar3 + -1;\n        *p_Var2 = uVar7 | uVar6;\n        if (iVar3 == 0) goto LAB_001847e0;\n      }" while (parenthesized_expression "(uVar1 != 0)" ( (binary_expression "uVar1 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar1 = uVar1 - 1;\n        uVar7 = 1 << (uVar1 & 0x1f);\n        if (uVar9 == 0) goto LAB_001847b0;\nLAB_00184770:\n        uVar9 = uVar9 - 1;\n        uVar6 = *p_Var2;\n        if ((1 << (uVar9 & 0x1f) & *p_Var14) == 0) goto LAB_001847cc;\nLAB_00184788:\n        iVar3 = iVar3 + -1;\n        *p_Var2 = uVar7 | uVar6;\n        if (iVar3 == 0) goto LAB_001847e0;\n      }" { (expression_statement "uVar1 = uVar1 - 1;" (assignment_expression "uVar1 = uVar1 - 1" identifier = (binary_expression "uVar1 - 1" identifier - number_literal)) ;) (expression_statement "uVar7 = 1 << (uVar1 & 0x1f);" (assignment_expression "uVar7 = 1 << (uVar1 & 0x1f)" identifier = (binary_expression "1 << (uVar1 & 0x1f)" number_literal << (parenthesized_expression "(uVar1 & 0x1f)" ( (binary_expression "uVar1 & 0x1f" identifier & number_literal) )))) ;) (if_statement "if (uVar9 == 0) goto LAB_001847b0;" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001847b0;" goto statement_identifier ;)) (labeled_statement "LAB_00184770:\n        uVar9 = uVar9 - 1;" statement_identifier : (expression_statement "uVar9 = uVar9 - 1;" (assignment_expression "uVar9 = uVar9 - 1" identifier = (binary_expression "uVar9 - 1" identifier - number_literal)) ;)) (expression_statement "uVar6 = *p_Var2;" (assignment_expression "uVar6 = *p_Var2" identifier = (pointer_expression "*p_Var2" * identifier)) ;) (if_statement "if ((1 << (uVar9 & 0x1f) & *p_Var14) == 0) goto LAB_001847cc;" if (parenthesized_expression "((1 << (uVar9 & 0x1f) & *p_Var14) == 0)" ( (binary_expression "(1 << (uVar9 & 0x1f) & *p_Var14) == 0" (parenthesized_expression "(1 << (uVar9 & 0x1f) & *p_Var14)" ( (binary_expression "1 << (uVar9 & 0x1f) & *p_Var14" (binary_expression "1 << (uVar9 & 0x1f)" number_literal << (parenthesized_expression "(uVar9 & 0x1f)" ( (binary_expression "uVar9 & 0x1f" identifier & number_literal) ))) & (pointer_expression "*p_Var14" * identifier)) )) == number_literal) )) (goto_statement "goto LAB_001847cc;" goto statement_identifier ;)) (labeled_statement "LAB_00184788:\n        iVar3 = iVar3 + -1;" statement_identifier : (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ;)) (expression_statement "*p_Var2 = uVar7 | uVar6;" (assignment_expression "*p_Var2 = uVar7 | uVar6" (pointer_expression "*p_Var2" * identifier) = (binary_expression "uVar7 | uVar6" identifier | identifier)) ;) (if_statement "if (iVar3 == 0) goto LAB_001847e0;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001847e0;" goto statement_identifier ;)) })) (expression_statement "p_Var2 = p_Var2 + -1;" (assignment_expression "p_Var2 = p_Var2 + -1" identifier = (binary_expression "p_Var2 + -1" identifier + number_literal)) ;) (expression_statement "uVar7 = 0x80000000;" (assignment_expression "uVar7 = 0x80000000" identifier = number_literal) ;) (expression_statement "uVar1 = 0x1f;" (assignment_expression "uVar1 = 0x1f" identifier = number_literal) ;) (if_statement "if (uVar9 != 0) goto LAB_00184770;" if (parenthesized_expression "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00184770;" goto statement_identifier ;)) (labeled_statement "LAB_001847b0:\n      p_Var14 = p_Var14 + -1;" statement_identifier : (expression_statement "p_Var14 = p_Var14 + -1;" (assignment_expression "p_Var14 = p_Var14 + -1" identifier = (binary_expression "p_Var14 + -1" identifier + number_literal)) ;)) (expression_statement "uVar6 = *p_Var2;" (assignment_expression "uVar6 = *p_Var2" identifier = (pointer_expression "*p_Var2" * identifier)) ;) (expression_statement "uVar9 = 0x1f;" (assignment_expression "uVar9 = 0x1f" identifier = number_literal) ;) (if_statement "if ((*p_Var14 & 0x80000000) != 0) goto LAB_00184788;" if (parenthesized_expression "((*p_Var14 & 0x80000000) != 0)" ( (binary_expression "(*p_Var14 & 0x80000000) != 0" (parenthesized_expression "(*p_Var14 & 0x80000000)" ( (binary_expression "*p_Var14 & 0x80000000" (pointer_expression "*p_Var14" * identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00184788;" goto statement_identifier ;)) (labeled_statement "LAB_001847cc:\n      iVar3 = iVar3 + -1;" statement_identifier : (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ;)) (expression_statement "*p_Var2 = ~uVar7 & uVar6;" (assignment_expression "*p_Var2 = ~uVar7 & uVar6" (pointer_expression "*p_Var2" * identifier) = (binary_expression "~uVar7 & uVar6" (unary_expression "~uVar7" ~ identifier) & identifier)) ;) }) while (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) ;) })) (labeled_statement "LAB_001847e0:\n  uVar1 = 1 << (in_a2 & 0x1f);" statement_identifier : (expression_statement "uVar1 = 1 << (in_a2 & 0x1f);" (assignment_expression "uVar1 = 1 << (in_a2 & 0x1f)" identifier = (binary_expression "1 << (in_a2 & 0x1f)" number_literal << (parenthesized_expression "(in_a2 & 0x1f)" ( (binary_expression "in_a2 & 0x1f" identifier & number_literal) )))) ;)) (if_statement "if (in_a3 == 0) {\n    *puVar5 = ~uVar1 & *puVar5;\n  }\n  else {\n    *puVar5 = uVar1 | *puVar5;\n  }" if (parenthesized_expression "(in_a3 == 0)" ( (binary_expression "in_a3 == 0" identifier == number_literal) )) (compound_statement "{\n    *puVar5 = ~uVar1 & *puVar5;\n  }" { (expression_statement "*puVar5 = ~uVar1 & *puVar5;" (assignment_expression "*puVar5 = ~uVar1 & *puVar5" (pointer_expression "*puVar5" * identifier) = (binary_expression "~uVar1 & *puVar5" (unary_expression "~uVar1" ~ identifier) & (pointer_expression "*puVar5" * identifier))) ;) }) (else_clause "else {\n    *puVar5 = uVar1 | *puVar5;\n  }" else (compound_statement "{\n    *puVar5 = uVar1 | *puVar5;\n  }" { (expression_statement "*puVar5 = uVar1 | *puVar5;" (assignment_expression "*puVar5 = uVar1 | *puVar5" (pointer_expression "*puVar5" * identifier) = (binary_expression "uVar1 | *puVar5" identifier | (pointer_expression "*puVar5" * identifier))) ;) }))) (if_statement "if (uVar12 != 0x1f) {\n    (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.\n    super__Bit_iterator_base._M_offset = uVar13;\n    return;\n  }" if (parenthesized_expression "(uVar12 != 0x1f)" ( (binary_expression "uVar12 != 0x1f" identifier != number_literal) )) (compound_statement "{\n    (this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.\n    super__Bit_iterator_base._M_offset = uVar13;\n    return;\n  }" { (expression_statement "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.\n    super__Bit_iterator_base._M_offset = uVar13;" (assignment_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.\n    super__Bit_iterator_base._M_offset = uVar13" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.\n    super__Bit_iterator_base._M_offset" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.\n    super__Bit_iterator_base" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl" (parenthesized_expression "(this->super__Bvector_base<std::allocator<bool>_>)" ( (binary_expression "this->super__Bvector_base<std::allocator<bool>_>" (binary_expression "this->super__Bvector_base<std::allocator<bool>_" (binary_expression "this->super__Bvector_base<std::allocator<bool" (binary_expression "this->super__Bvector_base<std" (field_expression "this->super__Bvector_base" identifier -> field_identifier) < identifier) (ERROR "::allocator" : : identifier) < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (return_statement "return;" return ;) })) (expression_statement "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.\n  super__Bit_iterator_base._M_offset = 0;" (assignment_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.\n  super__Bit_iterator_base._M_offset = 0" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.\n  super__Bit_iterator_base._M_offset" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.\n  super__Bit_iterator_base" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl" (parenthesized_expression "(this->super__Bvector_base<std::allocator<bool>_>)" ( (binary_expression "this->super__Bvector_base<std::allocator<bool>_>" (binary_expression "this->super__Bvector_base<std::allocator<bool>_" (binary_expression "this->super__Bvector_base<std::allocator<bool" (binary_expression "this->super__Bvector_base<std" (field_expression "this->super__Bvector_base" identifier -> field_identifier) < identifier) (ERROR "::allocator" : : identifier) < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.\n  super__Bit_iterator_base._M_p = p_Var10 + 1;" (assignment_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.\n  super__Bit_iterator_base._M_p = p_Var10 + 1" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.\n  super__Bit_iterator_base._M_p" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish.\n  super__Bit_iterator_base" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data._M_finish" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl.super__Bvector_impl_data" (field_expression "(this->super__Bvector_base<std::allocator<bool>_>)._M_impl" (parenthesized_expression "(this->super__Bvector_base<std::allocator<bool>_>)" ( (binary_expression "this->super__Bvector_base<std::allocator<bool>_>" (binary_expression "this->super__Bvector_base<std::allocator<bool>_" (binary_expression "this->super__Bvector_base<std::allocator<bool" (binary_expression "this->super__Bvector_base<std" (field_expression "this->super__Bvector_base" identifier -> field_identifier) < identifier) (ERROR "::allocator" : : identifier) < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = (binary_expression "p_Var10 + 1" identifier + number_literal)) ;) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void std::vector<bool,std::allocator<bool>>::_M_insert_aux\n               (int *param_1,uint *param_2,uint param_3,int param_4)\n\n{\n  uint uVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  uint uVar6;\n  uint *puVar7;\n  uint uVar8;\n  uint *puVar9;\n  uint *puVar10;\n  uint uVar11;\n  uint uVar12;\n  \n  puVar9 = (uint *)param_1[2];\n  uVar11 = param_1[3];\n  if (puVar9 == (uint *)param_1[4]) {\n    iVar3 = ((int)puVar9 - *param_1) * 8 + uVar11;\n    uVar11 = iVar3 - param_1[1];\n    if (param_1[1] + 0x7fffffe0 == iVar3) {\n      (*(code *)PTR___throw_length_error_004c1e74)(PTR_s__s_004c1a50 + 0xd54);\n      return;\n    }\n    uVar1 = uVar11 * 2;\n    if (uVar11 == 0) {\n      iVar3 = 4;\n    }\n    else if (uVar1 < uVar11) {\n      iVar3 = 0xffffffc;\n    }\n    else {\n      uVar11 = 0x7fffffe0;\n      if (uVar1 < 0x7fffffe1) {\n        uVar11 = uVar1;\n      }\n      iVar3 = (uVar11 + 0x1f >> 5) << 2;\n    }\n    iVar2 = (*(code *)PTR_operator_new_004c13a8)(iVar3);\n    puVar9 = (uint *)*param_1;\n    if (param_2 != puVar9) {\n      (*(code *)PTR_memmove_004c5af8)(iVar2,puVar9,(int)param_2 - (int)puVar9);\n    }\n    puVar7 = (uint *)(iVar2 + ((int)param_2 - (int)puVar9));\n    if ((int)param_3 < 1) {\n      uVar11 = 1;\n      uVar1 = 1;\n      puVar10 = puVar7;\n    }\n    else {\n      uVar12 = 0;\n      uVar8 = param_3;\n      puVar10 = param_2;\n      do {\n        while( true ) {\n          uVar11 = 1 << (uVar12 & 0x1f);\n          if ((uVar11 & *puVar10) != 0) break;\n          *puVar7 = ~uVar11 & *puVar7;\n          if (uVar12 != 0x1f) goto LAB_00184984;\nLAB_001849c0:\n          uVar8 = uVar8 - 1;\n          puVar10 = puVar10 + 1;\n          puVar7 = puVar7 + 1;\n          uVar11 = 1;\n          uVar1 = 1;\n          uVar6 = 0;\n          uVar12 = uVar6;\n          if (uVar8 == 0) goto LAB_001849dc;\n        }\n        *puVar7 = uVar11 | *puVar7;\n        if (uVar12 == 0x1f) goto LAB_001849c0;\nLAB_00184984:\n        uVar6 = uVar12 + 1;\n        uVar8 = uVar8 - 1;\n        uVar1 = uVar12 + 2;\n        uVar11 = 1 << (uVar6 & 0x1f);\n        uVar12 = uVar6;\n      } while (uVar8 != 0);\nLAB_001849dc:\n      puVar10 = puVar7;\n      if (uVar6 == 0x1f) {\n        uVar1 = 0;\n        puVar10 = puVar7 + 1;\n      }\n    }\n    if (param_4 == 0) {\n      uVar11 = ~uVar11 & *puVar7;\n    }\n    else {\n      uVar11 = *puVar7 | uVar11;\n    }\n    iVar4 = (param_1[2] - (int)param_2) * 8 + (param_1[3] - param_3);\n    *puVar7 = uVar11;\n    if (0 < iVar4) {\n      do {\n        while( true ) {\n          uVar11 = 1 << (uVar1 & 0x1f);\n          if ((1 << (param_3 & 0x1f) & *param_2) != 0) break;\n          *puVar10 = ~uVar11 & *puVar10;\n          if (param_3 != 0x1f) goto LAB_00184a30;\nLAB_00184a6c:\n          param_2 = param_2 + 1;\n          param_3 = 0;\n          if (uVar1 != 0x1f) goto LAB_00184a38;\nLAB_00184a78:\n          iVar4 = iVar4 + -1;\n          puVar10 = puVar10 + 1;\n          uVar1 = 0;\n          if (iVar4 == 0) goto LAB_00184a88;\n        }\n        *puVar10 = *puVar10 | uVar11;\n        if (param_3 == 0x1f) goto LAB_00184a6c;\nLAB_00184a30:\n        param_3 = param_3 + 1;\n        if (uVar1 == 0x1f) goto LAB_00184a78;\nLAB_00184a38:\n        iVar4 = iVar4 + -1;\n        uVar1 = uVar1 + 1;\n      } while (iVar4 != 0);\n    }\nLAB_00184a88:\n    if (puVar9 != (uint *)0x0) {\n      (*(code *)PTR_operator_delete_004c12fc)(puVar9);\n      param_1[2] = 0;\n      param_1[3] = 0;\n      *param_1 = 0;\n      param_1[1] = 0;\n    }\n    *param_1 = iVar2;\n    param_1[4] = iVar2 + iVar3;\n    param_1[2] = (int)puVar10;\n    param_1[3] = uVar1;\n    param_1[1] = 0;\n    return;\n  }\n  uVar12 = uVar11 + 1;\n  uVar1 = uVar12;\n  if ((int)uVar12 < 0) {\n    uVar1 = uVar11 + 0x20;\n  }\n  puVar7 = puVar9 + ((int)uVar1 >> 5);\n  if ((int)uVar12 < 0) {\n    uVar1 = ((uVar12 & 0x8000001f) - 1 | 0xffffffe0) + 1;\n  }\n  else {\n    uVar1 = uVar12 & 0x8000001f;\n  }\n  if ((int)uVar1 < 0) {\n    uVar1 = uVar1 + 0x20;\n    puVar7 = puVar7 + -1;\n  }\n  iVar3 = ((int)puVar9 - (int)param_2) * 8 + (uVar11 - param_3);\n  uVar8 = uVar11;\n  puVar10 = puVar9;\n  if (0 < iVar3) {\n    do {\n      while (uVar1 != 0) {\n        uVar1 = uVar1 - 1;\n        uVar6 = 1 << (uVar1 & 0x1f);\n        if (uVar8 == 0) goto LAB_001847b0;\nLAB_00184770:\n        uVar8 = uVar8 - 1;\n        uVar5 = *puVar7;\n        if ((1 << (uVar8 & 0x1f) & *puVar10) == 0) goto LAB_001847cc;\nLAB_00184788:\n        iVar3 = iVar3 + -1;\n        *puVar7 = uVar6 | uVar5;\n        if (iVar3 == 0) goto LAB_001847e0;\n      }\n      puVar7 = puVar7 + -1;\n      uVar6 = 0x80000000;\n      uVar1 = 0x1f;\n      if (uVar8 != 0) goto LAB_00184770;\nLAB_001847b0:\n      puVar10 = puVar10 + -1;\n      uVar5 = *puVar7;\n      uVar8 = 0x1f;\n      if ((*puVar10 & 0x80000000) != 0) goto LAB_00184788;\nLAB_001847cc:\n      iVar3 = iVar3 + -1;\n      *puVar7 = ~uVar6 & uVar5;\n    } while (iVar3 != 0);\n  }\nLAB_001847e0:\n  uVar1 = 1 << (param_3 & 0x1f);\n  if (param_4 == 0) {\n    *param_2 = ~uVar1 & *param_2;\n  }\n  else {\n    *param_2 = uVar1 | *param_2;\n  }\n  if (uVar11 != 0x1f) {\n    param_1[3] = uVar12;\n    return;\n  }\n  param_1[3] = 0;\n  param_1[2] = (int)(puVar9 + 1);\n  return;\n}\n\n" (declaration "void std::vector<bool,std::allocator<bool>>::_M_insert_aux\n               (int *param_1,uint *param_2,uint param_3,int param_4)\n\n{\n  uint uVar1;" primitive_type (ERROR "std::" identifier : :) identifier (ERROR "<bool" < primitive_type) , (ERROR "std::allocator<bool>>::_M_insert_aux\n               (int *param_1,uint *param_2,uint param_3,int param_4)\n\n{\n  uint" identifier : : identifier < primitive_type >> : : (function_declarator "_M_insert_aux\n               (int *param_1,uint *param_2,uint param_3,int param_4)" identifier (parameter_list "(int *param_1,uint *param_2,uint param_3,int param_4)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "int param_4" primitive_type identifier) ))) { identifier) identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "uint *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (expression_statement "puVar9 = (uint *)param_1[2];" (assignment_expression "puVar9 = (uint *)param_1[2]" identifier = (cast_expression "(uint *)param_1[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) (expression_statement "uVar11 = param_1[3];" (assignment_expression "uVar11 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (if_statement "if (puVar9 == (uint *)param_1[4]) {\n    iVar3 = ((int)puVar9 - *param_1) * 8 + uVar11;\n    uVar11 = iVar3 - param_1[1];\n    if (param_1[1] + 0x7fffffe0 == iVar3) {\n      (*(code *)PTR___throw_length_error_004c1e74)(PTR_s__s_004c1a50 + 0xd54);\n      return;\n    }\n    uVar1 = uVar11 * 2;\n    if (uVar11 == 0) {\n      iVar3 = 4;\n    }\n    else if (uVar1 < uVar11) {\n      iVar3 = 0xffffffc;\n    }\n    else {\n      uVar11 = 0x7fffffe0;\n      if (uVar1 < 0x7fffffe1) {\n        uVar11 = uVar1;\n      }\n      iVar3 = (uVar11 + 0x1f >> 5) << 2;\n    }\n    iVar2 = (*(code *)PTR_operator_new_004c13a8)(iVar3);\n    puVar9 = (uint *)*param_1;\n    if (param_2 != puVar9) {\n      (*(code *)PTR_memmove_004c5af8)(iVar2,puVar9,(int)param_2 - (int)puVar9);\n    }\n    puVar7 = (uint *)(iVar2 + ((int)param_2 - (int)puVar9));\n    if ((int)param_3 < 1) {\n      uVar11 = 1;\n      uVar1 = 1;\n      puVar10 = puVar7;\n    }\n    else {\n      uVar12 = 0;\n      uVar8 = param_3;\n      puVar10 = param_2;\n      do {\n        while( true ) {\n          uVar11 = 1 << (uVar12 & 0x1f);\n          if ((uVar11 & *puVar10) != 0) break;\n          *puVar7 = ~uVar11 & *puVar7;\n          if (uVar12 != 0x1f) goto LAB_00184984;\nLAB_001849c0:\n          uVar8 = uVar8 - 1;\n          puVar10 = puVar10 + 1;\n          puVar7 = puVar7 + 1;\n          uVar11 = 1;\n          uVar1 = 1;\n          uVar6 = 0;\n          uVar12 = uVar6;\n          if (uVar8 == 0) goto LAB_001849dc;\n        }\n        *puVar7 = uVar11 | *puVar7;\n        if (uVar12 == 0x1f) goto LAB_001849c0;\nLAB_00184984:\n        uVar6 = uVar12 + 1;\n        uVar8 = uVar8 - 1;\n        uVar1 = uVar12 + 2;\n        uVar11 = 1 << (uVar6 & 0x1f);\n        uVar12 = uVar6;\n      } while (uVar8 != 0);\nLAB_001849dc:\n      puVar10 = puVar7;\n      if (uVar6 == 0x1f) {\n        uVar1 = 0;\n        puVar10 = puVar7 + 1;\n      }\n    }\n    if (param_4 == 0) {\n      uVar11 = ~uVar11 & *puVar7;\n    }\n    else {\n      uVar11 = *puVar7 | uVar11;\n    }\n    iVar4 = (param_1[2] - (int)param_2) * 8 + (param_1[3] - param_3);\n    *puVar7 = uVar11;\n    if (0 < iVar4) {\n      do {\n        while( true ) {\n          uVar11 = 1 << (uVar1 & 0x1f);\n          if ((1 << (param_3 & 0x1f) & *param_2) != 0) break;\n          *puVar10 = ~uVar11 & *puVar10;\n          if (param_3 != 0x1f) goto LAB_00184a30;\nLAB_00184a6c:\n          param_2 = param_2 + 1;\n          param_3 = 0;\n          if (uVar1 != 0x1f) goto LAB_00184a38;\nLAB_00184a78:\n          iVar4 = iVar4 + -1;\n          puVar10 = puVar10 + 1;\n          uVar1 = 0;\n          if (iVar4 == 0) goto LAB_00184a88;\n        }\n        *puVar10 = *puVar10 | uVar11;\n        if (param_3 == 0x1f) goto LAB_00184a6c;\nLAB_00184a30:\n        param_3 = param_3 + 1;\n        if (uVar1 == 0x1f) goto LAB_00184a78;\nLAB_00184a38:\n        iVar4 = iVar4 + -1;\n        uVar1 = uVar1 + 1;\n      } while (iVar4 != 0);\n    }\nLAB_00184a88:\n    if (puVar9 != (uint *)0x0) {\n      (*(code *)PTR_operator_delete_004c12fc)(puVar9);\n      param_1[2] = 0;\n      param_1[3] = 0;\n      *param_1 = 0;\n      param_1[1] = 0;\n    }\n    *param_1 = iVar2;\n    param_1[4] = iVar2 + iVar3;\n    param_1[2] = (int)puVar10;\n    param_1[3] = uVar1;\n    param_1[1] = 0;\n    return;\n  }" if (parenthesized_expression "(puVar9 == (uint *)param_1[4])" ( (binary_expression "puVar9 == (uint *)param_1[4]" identifier == (cast_expression "(uint *)param_1[4]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[4]" identifier [ number_literal ]))) )) (compound_statement "{\n    iVar3 = ((int)puVar9 - *param_1) * 8 + uVar11;\n    uVar11 = iVar3 - param_1[1];\n    if (param_1[1] + 0x7fffffe0 == iVar3) {\n      (*(code *)PTR___throw_length_error_004c1e74)(PTR_s__s_004c1a50 + 0xd54);\n      return;\n    }\n    uVar1 = uVar11 * 2;\n    if (uVar11 == 0) {\n      iVar3 = 4;\n    }\n    else if (uVar1 < uVar11) {\n      iVar3 = 0xffffffc;\n    }\n    else {\n      uVar11 = 0x7fffffe0;\n      if (uVar1 < 0x7fffffe1) {\n        uVar11 = uVar1;\n      }\n      iVar3 = (uVar11 + 0x1f >> 5) << 2;\n    }\n    iVar2 = (*(code *)PTR_operator_new_004c13a8)(iVar3);\n    puVar9 = (uint *)*param_1;\n    if (param_2 != puVar9) {\n      (*(code *)PTR_memmove_004c5af8)(iVar2,puVar9,(int)param_2 - (int)puVar9);\n    }\n    puVar7 = (uint *)(iVar2 + ((int)param_2 - (int)puVar9));\n    if ((int)param_3 < 1) {\n      uVar11 = 1;\n      uVar1 = 1;\n      puVar10 = puVar7;\n    }\n    else {\n      uVar12 = 0;\n      uVar8 = param_3;\n      puVar10 = param_2;\n      do {\n        while( true ) {\n          uVar11 = 1 << (uVar12 & 0x1f);\n          if ((uVar11 & *puVar10) != 0) break;\n          *puVar7 = ~uVar11 & *puVar7;\n          if (uVar12 != 0x1f) goto LAB_00184984;\nLAB_001849c0:\n          uVar8 = uVar8 - 1;\n          puVar10 = puVar10 + 1;\n          puVar7 = puVar7 + 1;\n          uVar11 = 1;\n          uVar1 = 1;\n          uVar6 = 0;\n          uVar12 = uVar6;\n          if (uVar8 == 0) goto LAB_001849dc;\n        }\n        *puVar7 = uVar11 | *puVar7;\n        if (uVar12 == 0x1f) goto LAB_001849c0;\nLAB_00184984:\n        uVar6 = uVar12 + 1;\n        uVar8 = uVar8 - 1;\n        uVar1 = uVar12 + 2;\n        uVar11 = 1 << (uVar6 & 0x1f);\n        uVar12 = uVar6;\n      } while (uVar8 != 0);\nLAB_001849dc:\n      puVar10 = puVar7;\n      if (uVar6 == 0x1f) {\n        uVar1 = 0;\n        puVar10 = puVar7 + 1;\n      }\n    }\n    if (param_4 == 0) {\n      uVar11 = ~uVar11 & *puVar7;\n    }\n    else {\n      uVar11 = *puVar7 | uVar11;\n    }\n    iVar4 = (param_1[2] - (int)param_2) * 8 + (param_1[3] - param_3);\n    *puVar7 = uVar11;\n    if (0 < iVar4) {\n      do {\n        while( true ) {\n          uVar11 = 1 << (uVar1 & 0x1f);\n          if ((1 << (param_3 & 0x1f) & *param_2) != 0) break;\n          *puVar10 = ~uVar11 & *puVar10;\n          if (param_3 != 0x1f) goto LAB_00184a30;\nLAB_00184a6c:\n          param_2 = param_2 + 1;\n          param_3 = 0;\n          if (uVar1 != 0x1f) goto LAB_00184a38;\nLAB_00184a78:\n          iVar4 = iVar4 + -1;\n          puVar10 = puVar10 + 1;\n          uVar1 = 0;\n          if (iVar4 == 0) goto LAB_00184a88;\n        }\n        *puVar10 = *puVar10 | uVar11;\n        if (param_3 == 0x1f) goto LAB_00184a6c;\nLAB_00184a30:\n        param_3 = param_3 + 1;\n        if (uVar1 == 0x1f) goto LAB_00184a78;\nLAB_00184a38:\n        iVar4 = iVar4 + -1;\n        uVar1 = uVar1 + 1;\n      } while (iVar4 != 0);\n    }\nLAB_00184a88:\n    if (puVar9 != (uint *)0x0) {\n      (*(code *)PTR_operator_delete_004c12fc)(puVar9);\n      param_1[2] = 0;\n      param_1[3] = 0;\n      *param_1 = 0;\n      param_1[1] = 0;\n    }\n    *param_1 = iVar2;\n    param_1[4] = iVar2 + iVar3;\n    param_1[2] = (int)puVar10;\n    param_1[3] = uVar1;\n    param_1[1] = 0;\n    return;\n  }" { (expression_statement "iVar3 = ((int)puVar9 - *param_1) * 8 + uVar11;" (assignment_expression "iVar3 = ((int)puVar9 - *param_1) * 8 + uVar11" identifier = (binary_expression "((int)puVar9 - *param_1) * 8 + uVar11" (binary_expression "((int)puVar9 - *param_1) * 8" (parenthesized_expression "((int)puVar9 - *param_1)" ( (binary_expression "(int)puVar9 - *param_1" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*param_1" * identifier)) )) * number_literal) + identifier)) ;) (expression_statement "uVar11 = iVar3 - param_1[1];" (assignment_expression "uVar11 = iVar3 - param_1[1]" identifier = (binary_expression "iVar3 - param_1[1]" identifier - (subscript_expression "param_1[1]" identifier [ number_literal ]))) ;) (if_statement "if (param_1[1] + 0x7fffffe0 == iVar3) {\n      (*(code *)PTR___throw_length_error_004c1e74)(PTR_s__s_004c1a50 + 0xd54);\n      return;\n    }" if (parenthesized_expression "(param_1[1] + 0x7fffffe0 == iVar3)" ( (binary_expression "param_1[1] + 0x7fffffe0 == iVar3" (binary_expression "param_1[1] + 0x7fffffe0" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) == identifier) )) (compound_statement "{\n      (*(code *)PTR___throw_length_error_004c1e74)(PTR_s__s_004c1a50 + 0xd54);\n      return;\n    }" { (expression_statement "(*(code *)PTR___throw_length_error_004c1e74)(PTR_s__s_004c1a50 + 0xd54);" (call_expression "(*(code *)PTR___throw_length_error_004c1e74)(PTR_s__s_004c1a50 + 0xd54)" (parenthesized_expression "(*(code *)PTR___throw_length_error_004c1e74)" ( (pointer_expression "*(code *)PTR___throw_length_error_004c1e74" * (cast_expression "(code *)PTR___throw_length_error_004c1e74" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s__s_004c1a50 + 0xd54)" ( (binary_expression "PTR_s__s_004c1a50 + 0xd54" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar1 = uVar11 * 2;" (assignment_expression "uVar1 = uVar11 * 2" identifier = (binary_expression "uVar11 * 2" identifier * number_literal)) ;) (if_statement "if (uVar11 == 0) {\n      iVar3 = 4;\n    }\n    else if (uVar1 < uVar11) {\n      iVar3 = 0xffffffc;\n    }\n    else {\n      uVar11 = 0x7fffffe0;\n      if (uVar1 < 0x7fffffe1) {\n        uVar11 = uVar1;\n      }\n      iVar3 = (uVar11 + 0x1f >> 5) << 2;\n    }" if (parenthesized_expression "(uVar11 == 0)" ( (binary_expression "uVar11 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar3 = 4;\n    }" { (expression_statement "iVar3 = 4;" (assignment_expression "iVar3 = 4" identifier = number_literal) ;) }) (else_clause "else if (uVar1 < uVar11) {\n      iVar3 = 0xffffffc;\n    }\n    else {\n      uVar11 = 0x7fffffe0;\n      if (uVar1 < 0x7fffffe1) {\n        uVar11 = uVar1;\n      }\n      iVar3 = (uVar11 + 0x1f >> 5) << 2;\n    }" else (if_statement "if (uVar1 < uVar11) {\n      iVar3 = 0xffffffc;\n    }\n    else {\n      uVar11 = 0x7fffffe0;\n      if (uVar1 < 0x7fffffe1) {\n        uVar11 = uVar1;\n      }\n      iVar3 = (uVar11 + 0x1f >> 5) << 2;\n    }" if (parenthesized_expression "(uVar1 < uVar11)" ( (binary_expression "uVar1 < uVar11" identifier < identifier) )) (compound_statement "{\n      iVar3 = 0xffffffc;\n    }" { (expression_statement "iVar3 = 0xffffffc;" (assignment_expression "iVar3 = 0xffffffc" identifier = number_literal) ;) }) (else_clause "else {\n      uVar11 = 0x7fffffe0;\n      if (uVar1 < 0x7fffffe1) {\n        uVar11 = uVar1;\n      }\n      iVar3 = (uVar11 + 0x1f >> 5) << 2;\n    }" else (compound_statement "{\n      uVar11 = 0x7fffffe0;\n      if (uVar1 < 0x7fffffe1) {\n        uVar11 = uVar1;\n      }\n      iVar3 = (uVar11 + 0x1f >> 5) << 2;\n    }" { (expression_statement "uVar11 = 0x7fffffe0;" (assignment_expression "uVar11 = 0x7fffffe0" identifier = number_literal) ;) (if_statement "if (uVar1 < 0x7fffffe1) {\n        uVar11 = uVar1;\n      }" if (parenthesized_expression "(uVar1 < 0x7fffffe1)" ( (binary_expression "uVar1 < 0x7fffffe1" identifier < number_literal) )) (compound_statement "{\n        uVar11 = uVar1;\n      }" { (expression_statement "uVar11 = uVar1;" (assignment_expression "uVar11 = uVar1" identifier = identifier) ;) })) (expression_statement "iVar3 = (uVar11 + 0x1f >> 5) << 2;" (assignment_expression "iVar3 = (uVar11 + 0x1f >> 5) << 2" identifier = (binary_expression "(uVar11 + 0x1f >> 5) << 2" (parenthesized_expression "(uVar11 + 0x1f >> 5)" ( (binary_expression "uVar11 + 0x1f >> 5" (binary_expression "uVar11 + 0x1f" identifier + number_literal) >> number_literal) )) << number_literal)) ;) }))))) (expression_statement "iVar2 = (*(code *)PTR_operator_new_004c13a8)(iVar3);" (assignment_expression "iVar2 = (*(code *)PTR_operator_new_004c13a8)(iVar3)" identifier = (call_expression "(*(code *)PTR_operator_new_004c13a8)(iVar3)" (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 "(iVar3)" ( identifier )))) ;) (expression_statement "puVar9 = (uint *)*param_1;" (assignment_expression "puVar9 = (uint *)*param_1" identifier = (cast_expression "(uint *)*param_1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (if_statement "if (param_2 != puVar9) {\n      (*(code *)PTR_memmove_004c5af8)(iVar2,puVar9,(int)param_2 - (int)puVar9);\n    }" if (parenthesized_expression "(param_2 != puVar9)" ( (binary_expression "param_2 != puVar9" identifier != identifier) )) (compound_statement "{\n      (*(code *)PTR_memmove_004c5af8)(iVar2,puVar9,(int)param_2 - (int)puVar9);\n    }" { (expression_statement "(*(code *)PTR_memmove_004c5af8)(iVar2,puVar9,(int)param_2 - (int)puVar9);" (call_expression "(*(code *)PTR_memmove_004c5af8)(iVar2,puVar9,(int)param_2 - (int)puVar9)" (parenthesized_expression "(*(code *)PTR_memmove_004c5af8)" ( (pointer_expression "*(code *)PTR_memmove_004c5af8" * (cast_expression "(code *)PTR_memmove_004c5af8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar2,puVar9,(int)param_2 - (int)puVar9)" ( identifier , identifier , (binary_expression "(int)param_2 - (int)puVar9" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ;) })) (expression_statement "puVar7 = (uint *)(iVar2 + ((int)param_2 - (int)puVar9));" (assignment_expression "puVar7 = (uint *)(iVar2 + ((int)param_2 - (int)puVar9))" identifier = (cast_expression "(uint *)(iVar2 + ((int)param_2 - (int)puVar9))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + ((int)param_2 - (int)puVar9))" ( (binary_expression "iVar2 + ((int)param_2 - (int)puVar9)" identifier + (parenthesized_expression "((int)param_2 - (int)puVar9)" ( (binary_expression "(int)param_2 - (int)puVar9" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (if_statement "if ((int)param_3 < 1) {\n      uVar11 = 1;\n      uVar1 = 1;\n      puVar10 = puVar7;\n    }\n    else {\n      uVar12 = 0;\n      uVar8 = param_3;\n      puVar10 = param_2;\n      do {\n        while( true ) {\n          uVar11 = 1 << (uVar12 & 0x1f);\n          if ((uVar11 & *puVar10) != 0) break;\n          *puVar7 = ~uVar11 & *puVar7;\n          if (uVar12 != 0x1f) goto LAB_00184984;\nLAB_001849c0:\n          uVar8 = uVar8 - 1;\n          puVar10 = puVar10 + 1;\n          puVar7 = puVar7 + 1;\n          uVar11 = 1;\n          uVar1 = 1;\n          uVar6 = 0;\n          uVar12 = uVar6;\n          if (uVar8 == 0) goto LAB_001849dc;\n        }\n        *puVar7 = uVar11 | *puVar7;\n        if (uVar12 == 0x1f) goto LAB_001849c0;\nLAB_00184984:\n        uVar6 = uVar12 + 1;\n        uVar8 = uVar8 - 1;\n        uVar1 = uVar12 + 2;\n        uVar11 = 1 << (uVar6 & 0x1f);\n        uVar12 = uVar6;\n      } while (uVar8 != 0);\nLAB_001849dc:\n      puVar10 = puVar7;\n      if (uVar6 == 0x1f) {\n        uVar1 = 0;\n        puVar10 = puVar7 + 1;\n      }\n    }" if (parenthesized_expression "((int)param_3 < 1)" ( (binary_expression "(int)param_3 < 1" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      uVar11 = 1;\n      uVar1 = 1;\n      puVar10 = puVar7;\n    }" { (expression_statement "uVar11 = 1;" (assignment_expression "uVar11 = 1" identifier = number_literal) ;) (expression_statement "uVar1 = 1;" (assignment_expression "uVar1 = 1" identifier = number_literal) ;) (expression_statement "puVar10 = puVar7;" (assignment_expression "puVar10 = puVar7" identifier = identifier) ;) }) (else_clause "else {\n      uVar12 = 0;\n      uVar8 = param_3;\n      puVar10 = param_2;\n      do {\n        while( true ) {\n          uVar11 = 1 << (uVar12 & 0x1f);\n          if ((uVar11 & *puVar10) != 0) break;\n          *puVar7 = ~uVar11 & *puVar7;\n          if (uVar12 != 0x1f) goto LAB_00184984;\nLAB_001849c0:\n          uVar8 = uVar8 - 1;\n          puVar10 = puVar10 + 1;\n          puVar7 = puVar7 + 1;\n          uVar11 = 1;\n          uVar1 = 1;\n          uVar6 = 0;\n          uVar12 = uVar6;\n          if (uVar8 == 0) goto LAB_001849dc;\n        }\n        *puVar7 = uVar11 | *puVar7;\n        if (uVar12 == 0x1f) goto LAB_001849c0;\nLAB_00184984:\n        uVar6 = uVar12 + 1;\n        uVar8 = uVar8 - 1;\n        uVar1 = uVar12 + 2;\n        uVar11 = 1 << (uVar6 & 0x1f);\n        uVar12 = uVar6;\n      } while (uVar8 != 0);\nLAB_001849dc:\n      puVar10 = puVar7;\n      if (uVar6 == 0x1f) {\n        uVar1 = 0;\n        puVar10 = puVar7 + 1;\n      }\n    }" else (compound_statement "{\n      uVar12 = 0;\n      uVar8 = param_3;\n      puVar10 = param_2;\n      do {\n        while( true ) {\n          uVar11 = 1 << (uVar12 & 0x1f);\n          if ((uVar11 & *puVar10) != 0) break;\n          *puVar7 = ~uVar11 & *puVar7;\n          if (uVar12 != 0x1f) goto LAB_00184984;\nLAB_001849c0:\n          uVar8 = uVar8 - 1;\n          puVar10 = puVar10 + 1;\n          puVar7 = puVar7 + 1;\n          uVar11 = 1;\n          uVar1 = 1;\n          uVar6 = 0;\n          uVar12 = uVar6;\n          if (uVar8 == 0) goto LAB_001849dc;\n        }\n        *puVar7 = uVar11 | *puVar7;\n        if (uVar12 == 0x1f) goto LAB_001849c0;\nLAB_00184984:\n        uVar6 = uVar12 + 1;\n        uVar8 = uVar8 - 1;\n        uVar1 = uVar12 + 2;\n        uVar11 = 1 << (uVar6 & 0x1f);\n        uVar12 = uVar6;\n      } while (uVar8 != 0);\nLAB_001849dc:\n      puVar10 = puVar7;\n      if (uVar6 == 0x1f) {\n        uVar1 = 0;\n        puVar10 = puVar7 + 1;\n      }\n    }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (expression_statement "uVar8 = param_3;" (assignment_expression "uVar8 = param_3" identifier = identifier) ;) (expression_statement "puVar10 = param_2;" (assignment_expression "puVar10 = param_2" identifier = identifier) ;) (do_statement "do {\n        while( true ) {\n          uVar11 = 1 << (uVar12 & 0x1f);\n          if ((uVar11 & *puVar10) != 0) break;\n          *puVar7 = ~uVar11 & *puVar7;\n          if (uVar12 != 0x1f) goto LAB_00184984;\nLAB_001849c0:\n          uVar8 = uVar8 - 1;\n          puVar10 = puVar10 + 1;\n          puVar7 = puVar7 + 1;\n          uVar11 = 1;\n          uVar1 = 1;\n          uVar6 = 0;\n          uVar12 = uVar6;\n          if (uVar8 == 0) goto LAB_001849dc;\n        }\n        *puVar7 = uVar11 | *puVar7;\n        if (uVar12 == 0x1f) goto LAB_001849c0;\nLAB_00184984:\n        uVar6 = uVar12 + 1;\n        uVar8 = uVar8 - 1;\n        uVar1 = uVar12 + 2;\n        uVar11 = 1 << (uVar6 & 0x1f);\n        uVar12 = uVar6;\n      } while (uVar8 != 0);" do (compound_statement "{\n        while( true ) {\n          uVar11 = 1 << (uVar12 & 0x1f);\n          if ((uVar11 & *puVar10) != 0) break;\n          *puVar7 = ~uVar11 & *puVar7;\n          if (uVar12 != 0x1f) goto LAB_00184984;\nLAB_001849c0:\n          uVar8 = uVar8 - 1;\n          puVar10 = puVar10 + 1;\n          puVar7 = puVar7 + 1;\n          uVar11 = 1;\n          uVar1 = 1;\n          uVar6 = 0;\n          uVar12 = uVar6;\n          if (uVar8 == 0) goto LAB_001849dc;\n        }\n        *puVar7 = uVar11 | *puVar7;\n        if (uVar12 == 0x1f) goto LAB_001849c0;\nLAB_00184984:\n        uVar6 = uVar12 + 1;\n        uVar8 = uVar8 - 1;\n        uVar1 = uVar12 + 2;\n        uVar11 = 1 << (uVar6 & 0x1f);\n        uVar12 = uVar6;\n      }" { (while_statement "while( true ) {\n          uVar11 = 1 << (uVar12 & 0x1f);\n          if ((uVar11 & *puVar10) != 0) break;\n          *puVar7 = ~uVar11 & *puVar7;\n          if (uVar12 != 0x1f) goto LAB_00184984;\nLAB_001849c0:\n          uVar8 = uVar8 - 1;\n          puVar10 = puVar10 + 1;\n          puVar7 = puVar7 + 1;\n          uVar11 = 1;\n          uVar1 = 1;\n          uVar6 = 0;\n          uVar12 = uVar6;\n          if (uVar8 == 0) goto LAB_001849dc;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          uVar11 = 1 << (uVar12 & 0x1f);\n          if ((uVar11 & *puVar10) != 0) break;\n          *puVar7 = ~uVar11 & *puVar7;\n          if (uVar12 != 0x1f) goto LAB_00184984;\nLAB_001849c0:\n          uVar8 = uVar8 - 1;\n          puVar10 = puVar10 + 1;\n          puVar7 = puVar7 + 1;\n          uVar11 = 1;\n          uVar1 = 1;\n          uVar6 = 0;\n          uVar12 = uVar6;\n          if (uVar8 == 0) goto LAB_001849dc;\n        }" { (expression_statement "uVar11 = 1 << (uVar12 & 0x1f);" (assignment_expression "uVar11 = 1 << (uVar12 & 0x1f)" identifier = (binary_expression "1 << (uVar12 & 0x1f)" number_literal << (parenthesized_expression "(uVar12 & 0x1f)" ( (binary_expression "uVar12 & 0x1f" identifier & number_literal) )))) ;) (if_statement "if ((uVar11 & *puVar10) != 0) break;" if (parenthesized_expression "((uVar11 & *puVar10) != 0)" ( (binary_expression "(uVar11 & *puVar10) != 0" (parenthesized_expression "(uVar11 & *puVar10)" ( (binary_expression "uVar11 & *puVar10" identifier & (pointer_expression "*puVar10" * identifier)) )) != number_literal) )) (break_statement "break;" break ;)) (expression_statement "*puVar7 = ~uVar11 & *puVar7;" (assignment_expression "*puVar7 = ~uVar11 & *puVar7" (pointer_expression "*puVar7" * identifier) = (binary_expression "~uVar11 & *puVar7" (unary_expression "~uVar11" ~ identifier) & (pointer_expression "*puVar7" * identifier))) ;) (if_statement "if (uVar12 != 0x1f) goto LAB_00184984;" if (parenthesized_expression "(uVar12 != 0x1f)" ( (binary_expression "uVar12 != 0x1f" identifier != number_literal) )) (goto_statement "goto LAB_00184984;" goto statement_identifier ;)) (labeled_statement "LAB_001849c0:\n          uVar8 = uVar8 - 1;" statement_identifier : (expression_statement "uVar8 = uVar8 - 1;" (assignment_expression "uVar8 = uVar8 - 1" identifier = (binary_expression "uVar8 - 1" identifier - number_literal)) ;)) (expression_statement "puVar10 = puVar10 + 1;" (assignment_expression "puVar10 = puVar10 + 1" identifier = (binary_expression "puVar10 + 1" identifier + number_literal)) ;) (expression_statement "puVar7 = puVar7 + 1;" (assignment_expression "puVar7 = puVar7 + 1" identifier = (binary_expression "puVar7 + 1" identifier + number_literal)) ;) (expression_statement "uVar11 = 1;" (assignment_expression "uVar11 = 1" identifier = number_literal) ;) (expression_statement "uVar1 = 1;" (assignment_expression "uVar1 = 1" identifier = number_literal) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (expression_statement "uVar12 = uVar6;" (assignment_expression "uVar12 = uVar6" identifier = identifier) ;) (if_statement "if (uVar8 == 0) goto LAB_001849dc;" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001849dc;" goto statement_identifier ;)) })) (expression_statement "*puVar7 = uVar11 | *puVar7;" (assignment_expression "*puVar7 = uVar11 | *puVar7" (pointer_expression "*puVar7" * identifier) = (binary_expression "uVar11 | *puVar7" identifier | (pointer_expression "*puVar7" * identifier))) ;) (if_statement "if (uVar12 == 0x1f) goto LAB_001849c0;" if (parenthesized_expression "(uVar12 == 0x1f)" ( (binary_expression "uVar12 == 0x1f" identifier == number_literal) )) (goto_statement "goto LAB_001849c0;" goto statement_identifier ;)) (labeled_statement "LAB_00184984:\n        uVar6 = uVar12 + 1;" statement_identifier : (expression_statement "uVar6 = uVar12 + 1;" (assignment_expression "uVar6 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;)) (expression_statement "uVar8 = uVar8 - 1;" (assignment_expression "uVar8 = uVar8 - 1" identifier = (binary_expression "uVar8 - 1" identifier - number_literal)) ;) (expression_statement "uVar1 = uVar12 + 2;" (assignment_expression "uVar1 = uVar12 + 2" identifier = (binary_expression "uVar12 + 2" identifier + number_literal)) ;) (expression_statement "uVar11 = 1 << (uVar6 & 0x1f);" (assignment_expression "uVar11 = 1 << (uVar6 & 0x1f)" identifier = (binary_expression "1 << (uVar6 & 0x1f)" number_literal << (parenthesized_expression "(uVar6 & 0x1f)" ( (binary_expression "uVar6 & 0x1f" identifier & number_literal) )))) ;) (expression_statement "uVar12 = uVar6;" (assignment_expression "uVar12 = uVar6" identifier = identifier) ;) }) while (parenthesized_expression "(uVar8 != 0)" ( (binary_expression "uVar8 != 0" identifier != number_literal) )) ;) (labeled_statement "LAB_001849dc:\n      puVar10 = puVar7;" statement_identifier : (expression_statement "puVar10 = puVar7;" (assignment_expression "puVar10 = puVar7" identifier = identifier) ;)) (if_statement "if (uVar6 == 0x1f) {\n        uVar1 = 0;\n        puVar10 = puVar7 + 1;\n      }" if (parenthesized_expression "(uVar6 == 0x1f)" ( (binary_expression "uVar6 == 0x1f" identifier == number_literal) )) (compound_statement "{\n        uVar1 = 0;\n        puVar10 = puVar7 + 1;\n      }" { (expression_statement "uVar1 = 0;" (assignment_expression "uVar1 = 0" identifier = number_literal) ;) (expression_statement "puVar10 = puVar7 + 1;" (assignment_expression "puVar10 = puVar7 + 1" identifier = (binary_expression "puVar7 + 1" identifier + number_literal)) ;) })) }))) (if_statement "if (param_4 == 0) {\n      uVar11 = ~uVar11 & *puVar7;\n    }\n    else {\n      uVar11 = *puVar7 | uVar11;\n    }" if (parenthesized_expression "(param_4 == 0)" ( (binary_expression "param_4 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar11 = ~uVar11 & *puVar7;\n    }" { (expression_statement "uVar11 = ~uVar11 & *puVar7;" (assignment_expression "uVar11 = ~uVar11 & *puVar7" identifier = (binary_expression "~uVar11 & *puVar7" (unary_expression "~uVar11" ~ identifier) & (pointer_expression "*puVar7" * identifier))) ;) }) (else_clause "else {\n      uVar11 = *puVar7 | uVar11;\n    }" else (compound_statement "{\n      uVar11 = *puVar7 | uVar11;\n    }" { (expression_statement "uVar11 = *puVar7 | uVar11;" (assignment_expression "uVar11 = *puVar7 | uVar11" identifier = (binary_expression "*puVar7 | uVar11" (pointer_expression "*puVar7" * identifier) | identifier)) ;) }))) (expression_statement "iVar4 = (param_1[2] - (int)param_2) * 8 + (param_1[3] - param_3);" (assignment_expression "iVar4 = (param_1[2] - (int)param_2) * 8 + (param_1[3] - param_3)" identifier = (binary_expression "(param_1[2] - (int)param_2) * 8 + (param_1[3] - param_3)" (binary_expression "(param_1[2] - (int)param_2) * 8" (parenthesized_expression "(param_1[2] - (int)param_2)" ( (binary_expression "param_1[2] - (int)param_2" (subscript_expression "param_1[2]" identifier [ number_literal ]) - (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )) * number_literal) + (parenthesized_expression "(param_1[3] - param_3)" ( (binary_expression "param_1[3] - param_3" (subscript_expression "param_1[3]" identifier [ number_literal ]) - identifier) )))) ;) (expression_statement "*puVar7 = uVar11;" (assignment_expression "*puVar7 = uVar11" (pointer_expression "*puVar7" * identifier) = identifier) ;) (if_statement "if (0 < iVar4) {\n      do {\n        while( true ) {\n          uVar11 = 1 << (uVar1 & 0x1f);\n          if ((1 << (param_3 & 0x1f) & *param_2) != 0) break;\n          *puVar10 = ~uVar11 & *puVar10;\n          if (param_3 != 0x1f) goto LAB_00184a30;\nLAB_00184a6c:\n          param_2 = param_2 + 1;\n          param_3 = 0;\n          if (uVar1 != 0x1f) goto LAB_00184a38;\nLAB_00184a78:\n          iVar4 = iVar4 + -1;\n          puVar10 = puVar10 + 1;\n          uVar1 = 0;\n          if (iVar4 == 0) goto LAB_00184a88;\n        }\n        *puVar10 = *puVar10 | uVar11;\n        if (param_3 == 0x1f) goto LAB_00184a6c;\nLAB_00184a30:\n        param_3 = param_3 + 1;\n        if (uVar1 == 0x1f) goto LAB_00184a78;\nLAB_00184a38:\n        iVar4 = iVar4 + -1;\n        uVar1 = uVar1 + 1;\n      } while (iVar4 != 0);\n    }" if (parenthesized_expression "(0 < iVar4)" ( (binary_expression "0 < iVar4" number_literal < identifier) )) (compound_statement "{\n      do {\n        while( true ) {\n          uVar11 = 1 << (uVar1 & 0x1f);\n          if ((1 << (param_3 & 0x1f) & *param_2) != 0) break;\n          *puVar10 = ~uVar11 & *puVar10;\n          if (param_3 != 0x1f) goto LAB_00184a30;\nLAB_00184a6c:\n          param_2 = param_2 + 1;\n          param_3 = 0;\n          if (uVar1 != 0x1f) goto LAB_00184a38;\nLAB_00184a78:\n          iVar4 = iVar4 + -1;\n          puVar10 = puVar10 + 1;\n          uVar1 = 0;\n          if (iVar4 == 0) goto LAB_00184a88;\n        }\n        *puVar10 = *puVar10 | uVar11;\n        if (param_3 == 0x1f) goto LAB_00184a6c;\nLAB_00184a30:\n        param_3 = param_3 + 1;\n        if (uVar1 == 0x1f) goto LAB_00184a78;\nLAB_00184a38:\n        iVar4 = iVar4 + -1;\n        uVar1 = uVar1 + 1;\n      } while (iVar4 != 0);\n    }" { (do_statement "do {\n        while( true ) {\n          uVar11 = 1 << (uVar1 & 0x1f);\n          if ((1 << (param_3 & 0x1f) & *param_2) != 0) break;\n          *puVar10 = ~uVar11 & *puVar10;\n          if (param_3 != 0x1f) goto LAB_00184a30;\nLAB_00184a6c:\n          param_2 = param_2 + 1;\n          param_3 = 0;\n          if (uVar1 != 0x1f) goto LAB_00184a38;\nLAB_00184a78:\n          iVar4 = iVar4 + -1;\n          puVar10 = puVar10 + 1;\n          uVar1 = 0;\n          if (iVar4 == 0) goto LAB_00184a88;\n        }\n        *puVar10 = *puVar10 | uVar11;\n        if (param_3 == 0x1f) goto LAB_00184a6c;\nLAB_00184a30:\n        param_3 = param_3 + 1;\n        if (uVar1 == 0x1f) goto LAB_00184a78;\nLAB_00184a38:\n        iVar4 = iVar4 + -1;\n        uVar1 = uVar1 + 1;\n      } while (iVar4 != 0);" do (compound_statement "{\n        while( true ) {\n          uVar11 = 1 << (uVar1 & 0x1f);\n          if ((1 << (param_3 & 0x1f) & *param_2) != 0) break;\n          *puVar10 = ~uVar11 & *puVar10;\n          if (param_3 != 0x1f) goto LAB_00184a30;\nLAB_00184a6c:\n          param_2 = param_2 + 1;\n          param_3 = 0;\n          if (uVar1 != 0x1f) goto LAB_00184a38;\nLAB_00184a78:\n          iVar4 = iVar4 + -1;\n          puVar10 = puVar10 + 1;\n          uVar1 = 0;\n          if (iVar4 == 0) goto LAB_00184a88;\n        }\n        *puVar10 = *puVar10 | uVar11;\n        if (param_3 == 0x1f) goto LAB_00184a6c;\nLAB_00184a30:\n        param_3 = param_3 + 1;\n        if (uVar1 == 0x1f) goto LAB_00184a78;\nLAB_00184a38:\n        iVar4 = iVar4 + -1;\n        uVar1 = uVar1 + 1;\n      }" { (while_statement "while( true ) {\n          uVar11 = 1 << (uVar1 & 0x1f);\n          if ((1 << (param_3 & 0x1f) & *param_2) != 0) break;\n          *puVar10 = ~uVar11 & *puVar10;\n          if (param_3 != 0x1f) goto LAB_00184a30;\nLAB_00184a6c:\n          param_2 = param_2 + 1;\n          param_3 = 0;\n          if (uVar1 != 0x1f) goto LAB_00184a38;\nLAB_00184a78:\n          iVar4 = iVar4 + -1;\n          puVar10 = puVar10 + 1;\n          uVar1 = 0;\n          if (iVar4 == 0) goto LAB_00184a88;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          uVar11 = 1 << (uVar1 & 0x1f);\n          if ((1 << (param_3 & 0x1f) & *param_2) != 0) break;\n          *puVar10 = ~uVar11 & *puVar10;\n          if (param_3 != 0x1f) goto LAB_00184a30;\nLAB_00184a6c:\n          param_2 = param_2 + 1;\n          param_3 = 0;\n          if (uVar1 != 0x1f) goto LAB_00184a38;\nLAB_00184a78:\n          iVar4 = iVar4 + -1;\n          puVar10 = puVar10 + 1;\n          uVar1 = 0;\n          if (iVar4 == 0) goto LAB_00184a88;\n        }" { (expression_statement "uVar11 = 1 << (uVar1 & 0x1f);" (assignment_expression "uVar11 = 1 << (uVar1 & 0x1f)" identifier = (binary_expression "1 << (uVar1 & 0x1f)" number_literal << (parenthesized_expression "(uVar1 & 0x1f)" ( (binary_expression "uVar1 & 0x1f" identifier & number_literal) )))) ;) (if_statement "if ((1 << (param_3 & 0x1f) & *param_2) != 0) break;" if (parenthesized_expression "((1 << (param_3 & 0x1f) & *param_2) != 0)" ( (binary_expression "(1 << (param_3 & 0x1f) & *param_2) != 0" (parenthesized_expression "(1 << (param_3 & 0x1f) & *param_2)" ( (binary_expression "1 << (param_3 & 0x1f) & *param_2" (binary_expression "1 << (param_3 & 0x1f)" number_literal << (parenthesized_expression "(param_3 & 0x1f)" ( (binary_expression "param_3 & 0x1f" identifier & number_literal) ))) & (pointer_expression "*param_2" * identifier)) )) != number_literal) )) (break_statement "break;" break ;)) (expression_statement "*puVar10 = ~uVar11 & *puVar10;" (assignment_expression "*puVar10 = ~uVar11 & *puVar10" (pointer_expression "*puVar10" * identifier) = (binary_expression "~uVar11 & *puVar10" (unary_expression "~uVar11" ~ identifier) & (pointer_expression "*puVar10" * identifier))) ;) (if_statement "if (param_3 != 0x1f) goto LAB_00184a30;" if (parenthesized_expression "(param_3 != 0x1f)" ( (binary_expression "param_3 != 0x1f" identifier != number_literal) )) (goto_statement "goto LAB_00184a30;" goto statement_identifier ;)) (labeled_statement "LAB_00184a6c:\n          param_2 = param_2 + 1;" statement_identifier : (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;)) (expression_statement "param_3 = 0;" (assignment_expression "param_3 = 0" identifier = number_literal) ;) (if_statement "if (uVar1 != 0x1f) goto LAB_00184a38;" if (parenthesized_expression "(uVar1 != 0x1f)" ( (binary_expression "uVar1 != 0x1f" identifier != number_literal) )) (goto_statement "goto LAB_00184a38;" goto statement_identifier ;)) (labeled_statement "LAB_00184a78:\n          iVar4 = iVar4 + -1;" statement_identifier : (expression_statement "iVar4 = iVar4 + -1;" (assignment_expression "iVar4 = iVar4 + -1" identifier = (binary_expression "iVar4 + -1" identifier + number_literal)) ;)) (expression_statement "puVar10 = puVar10 + 1;" (assignment_expression "puVar10 = puVar10 + 1" identifier = (binary_expression "puVar10 + 1" identifier + number_literal)) ;) (expression_statement "uVar1 = 0;" (assignment_expression "uVar1 = 0" identifier = number_literal) ;) (if_statement "if (iVar4 == 0) goto LAB_00184a88;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00184a88;" goto statement_identifier ;)) })) (expression_statement "*puVar10 = *puVar10 | uVar11;" (assignment_expression "*puVar10 = *puVar10 | uVar11" (pointer_expression "*puVar10" * identifier) = (binary_expression "*puVar10 | uVar11" (pointer_expression "*puVar10" * identifier) | identifier)) ;) (if_statement "if (param_3 == 0x1f) goto LAB_00184a6c;" if (parenthesized_expression "(param_3 == 0x1f)" ( (binary_expression "param_3 == 0x1f" identifier == number_literal) )) (goto_statement "goto LAB_00184a6c;" goto statement_identifier ;)) (labeled_statement "LAB_00184a30:\n        param_3 = param_3 + 1;" statement_identifier : (expression_statement "param_3 = param_3 + 1;" (assignment_expression "param_3 = param_3 + 1" identifier = (binary_expression "param_3 + 1" identifier + number_literal)) ;)) (if_statement "if (uVar1 == 0x1f) goto LAB_00184a78;" if (parenthesized_expression "(uVar1 == 0x1f)" ( (binary_expression "uVar1 == 0x1f" identifier == number_literal) )) (goto_statement "goto LAB_00184a78;" goto statement_identifier ;)) (labeled_statement "LAB_00184a38:\n        iVar4 = iVar4 + -1;" statement_identifier : (expression_statement "iVar4 = iVar4 + -1;" (assignment_expression "iVar4 = iVar4 + -1" identifier = (binary_expression "iVar4 + -1" identifier + number_literal)) ;)) (expression_statement "uVar1 = uVar1 + 1;" (assignment_expression "uVar1 = uVar1 + 1" identifier = (binary_expression "uVar1 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) ;) })) (labeled_statement "LAB_00184a88:\n    if (puVar9 != (uint *)0x0) {\n      (*(code *)PTR_operator_delete_004c12fc)(puVar9);\n      param_1[2] = 0;\n      param_1[3] = 0;\n      *param_1 = 0;\n      param_1[1] = 0;\n    }" statement_identifier : (if_statement "if (puVar9 != (uint *)0x0) {\n      (*(code *)PTR_operator_delete_004c12fc)(puVar9);\n      param_1[2] = 0;\n      param_1[3] = 0;\n      *param_1 = 0;\n      param_1[1] = 0;\n    }" if (parenthesized_expression "(puVar9 != (uint *)0x0)" ( (binary_expression "puVar9 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (*(code *)PTR_operator_delete_004c12fc)(puVar9);\n      param_1[2] = 0;\n      param_1[3] = 0;\n      *param_1 = 0;\n      param_1[1] = 0;\n    }" { (expression_statement "(*(code *)PTR_operator_delete_004c12fc)(puVar9);" (call_expression "(*(code *)PTR_operator_delete_004c12fc)(puVar9)" (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 "(puVar9)" ( identifier ))) ;) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[3] = 0;" (assignment_expression "param_1[3] = 0" (subscript_expression "param_1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*param_1 = 0;" (assignment_expression "*param_1 = 0" (pointer_expression "*param_1" * identifier) = number_literal) ;) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) }))) (expression_statement "*param_1 = iVar2;" (assignment_expression "*param_1 = iVar2" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[4] = iVar2 + iVar3;" (assignment_expression "param_1[4] = iVar2 + iVar3" (subscript_expression "param_1[4]" identifier [ number_literal ]) = (binary_expression "iVar2 + iVar3" identifier + identifier)) ;) (expression_statement "param_1[2] = (int)puVar10;" (assignment_expression "param_1[2] = (int)puVar10" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "param_1[3] = uVar1;" (assignment_expression "param_1[3] = uVar1" (subscript_expression "param_1[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (return_statement "return;" return ;) })) (expression_statement "uVar12 = uVar11 + 1;" (assignment_expression "uVar12 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ;) (expression_statement "uVar1 = uVar12;" (assignment_expression "uVar1 = uVar12" identifier = identifier) ;) (if_statement "if ((int)uVar12 < 0) {\n    uVar1 = uVar11 + 0x20;\n  }" if (parenthesized_expression "((int)uVar12 < 0)" ( (binary_expression "(int)uVar12 < 0" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    uVar1 = uVar11 + 0x20;\n  }" { (expression_statement "uVar1 = uVar11 + 0x20;" (assignment_expression "uVar1 = uVar11 + 0x20" identifier = (binary_expression "uVar11 + 0x20" identifier + number_literal)) ;) })) (expression_statement "puVar7 = puVar9 + ((int)uVar1 >> 5);" (assignment_expression "puVar7 = puVar9 + ((int)uVar1 >> 5)" identifier = (binary_expression "puVar9 + ((int)uVar1 >> 5)" identifier + (parenthesized_expression "((int)uVar1 >> 5)" ( (binary_expression "(int)uVar1 >> 5" (cast_expression "(int)uVar1" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (if_statement "if ((int)uVar12 < 0) {\n    uVar1 = ((uVar12 & 0x8000001f) - 1 | 0xffffffe0) + 1;\n  }\n  else {\n    uVar1 = uVar12 & 0x8000001f;\n  }" if (parenthesized_expression "((int)uVar12 < 0)" ( (binary_expression "(int)uVar12 < 0" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    uVar1 = ((uVar12 & 0x8000001f) - 1 | 0xffffffe0) + 1;\n  }" { (expression_statement "uVar1 = ((uVar12 & 0x8000001f) - 1 | 0xffffffe0) + 1;" (assignment_expression "uVar1 = ((uVar12 & 0x8000001f) - 1 | 0xffffffe0) + 1" identifier = (binary_expression "((uVar12 & 0x8000001f) - 1 | 0xffffffe0) + 1" (parenthesized_expression "((uVar12 & 0x8000001f) - 1 | 0xffffffe0)" ( (binary_expression "(uVar12 & 0x8000001f) - 1 | 0xffffffe0" (binary_expression "(uVar12 & 0x8000001f) - 1" (parenthesized_expression "(uVar12 & 0x8000001f)" ( (binary_expression "uVar12 & 0x8000001f" identifier & number_literal) )) - number_literal) | number_literal) )) + number_literal)) ;) }) (else_clause "else {\n    uVar1 = uVar12 & 0x8000001f;\n  }" else (compound_statement "{\n    uVar1 = uVar12 & 0x8000001f;\n  }" { (expression_statement "uVar1 = uVar12 & 0x8000001f;" (assignment_expression "uVar1 = uVar12 & 0x8000001f" identifier = (binary_expression "uVar12 & 0x8000001f" identifier & number_literal)) ;) }))) (if_statement "if ((int)uVar1 < 0) {\n    uVar1 = uVar1 + 0x20;\n    puVar7 = puVar7 + -1;\n  }" if (parenthesized_expression "((int)uVar1 < 0)" ( (binary_expression "(int)uVar1 < 0" (cast_expression "(int)uVar1" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    uVar1 = uVar1 + 0x20;\n    puVar7 = puVar7 + -1;\n  }" { (expression_statement "uVar1 = uVar1 + 0x20;" (assignment_expression "uVar1 = uVar1 + 0x20" identifier = (binary_expression "uVar1 + 0x20" identifier + number_literal)) ;) (expression_statement "puVar7 = puVar7 + -1;" (assignment_expression "puVar7 = puVar7 + -1" identifier = (binary_expression "puVar7 + -1" identifier + number_literal)) ;) })) (expression_statement "iVar3 = ((int)puVar9 - (int)param_2) * 8 + (uVar11 - param_3);" (assignment_expression "iVar3 = ((int)puVar9 - (int)param_2) * 8 + (uVar11 - param_3)" identifier = (binary_expression "((int)puVar9 - (int)param_2) * 8 + (uVar11 - param_3)" (binary_expression "((int)puVar9 - (int)param_2) * 8" (parenthesized_expression "((int)puVar9 - (int)param_2)" ( (binary_expression "(int)puVar9 - (int)param_2" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )) * number_literal) + (parenthesized_expression "(uVar11 - param_3)" ( (binary_expression "uVar11 - param_3" identifier - identifier) )))) ;) (expression_statement "uVar8 = uVar11;" (assignment_expression "uVar8 = uVar11" identifier = identifier) ;) (expression_statement "puVar10 = puVar9;" (assignment_expression "puVar10 = puVar9" identifier = identifier) ;) (if_statement "if (0 < iVar3) {\n    do {\n      while (uVar1 != 0) {\n        uVar1 = uVar1 - 1;\n        uVar6 = 1 << (uVar1 & 0x1f);\n        if (uVar8 == 0) goto LAB_001847b0;\nLAB_00184770:\n        uVar8 = uVar8 - 1;\n        uVar5 = *puVar7;\n        if ((1 << (uVar8 & 0x1f) & *puVar10) == 0) goto LAB_001847cc;\nLAB_00184788:\n        iVar3 = iVar3 + -1;\n        *puVar7 = uVar6 | uVar5;\n        if (iVar3 == 0) goto LAB_001847e0;\n      }\n      puVar7 = puVar7 + -1;\n      uVar6 = 0x80000000;\n      uVar1 = 0x1f;\n      if (uVar8 != 0) goto LAB_00184770;\nLAB_001847b0:\n      puVar10 = puVar10 + -1;\n      uVar5 = *puVar7;\n      uVar8 = 0x1f;\n      if ((*puVar10 & 0x80000000) != 0) goto LAB_00184788;\nLAB_001847cc:\n      iVar3 = iVar3 + -1;\n      *puVar7 = ~uVar6 & uVar5;\n    } while (iVar3 != 0);\n  }" if (parenthesized_expression "(0 < iVar3)" ( (binary_expression "0 < iVar3" number_literal < identifier) )) (compound_statement "{\n    do {\n      while (uVar1 != 0) {\n        uVar1 = uVar1 - 1;\n        uVar6 = 1 << (uVar1 & 0x1f);\n        if (uVar8 == 0) goto LAB_001847b0;\nLAB_00184770:\n        uVar8 = uVar8 - 1;\n        uVar5 = *puVar7;\n        if ((1 << (uVar8 & 0x1f) & *puVar10) == 0) goto LAB_001847cc;\nLAB_00184788:\n        iVar3 = iVar3 + -1;\n        *puVar7 = uVar6 | uVar5;\n        if (iVar3 == 0) goto LAB_001847e0;\n      }\n      puVar7 = puVar7 + -1;\n      uVar6 = 0x80000000;\n      uVar1 = 0x1f;\n      if (uVar8 != 0) goto LAB_00184770;\nLAB_001847b0:\n      puVar10 = puVar10 + -1;\n      uVar5 = *puVar7;\n      uVar8 = 0x1f;\n      if ((*puVar10 & 0x80000000) != 0) goto LAB_00184788;\nLAB_001847cc:\n      iVar3 = iVar3 + -1;\n      *puVar7 = ~uVar6 & uVar5;\n    } while (iVar3 != 0);\n  }" { (do_statement "do {\n      while (uVar1 != 0) {\n        uVar1 = uVar1 - 1;\n        uVar6 = 1 << (uVar1 & 0x1f);\n        if (uVar8 == 0) goto LAB_001847b0;\nLAB_00184770:\n        uVar8 = uVar8 - 1;\n        uVar5 = *puVar7;\n        if ((1 << (uVar8 & 0x1f) & *puVar10) == 0) goto LAB_001847cc;\nLAB_00184788:\n        iVar3 = iVar3 + -1;\n        *puVar7 = uVar6 | uVar5;\n        if (iVar3 == 0) goto LAB_001847e0;\n      }\n      puVar7 = puVar7 + -1;\n      uVar6 = 0x80000000;\n      uVar1 = 0x1f;\n      if (uVar8 != 0) goto LAB_00184770;\nLAB_001847b0:\n      puVar10 = puVar10 + -1;\n      uVar5 = *puVar7;\n      uVar8 = 0x1f;\n      if ((*puVar10 & 0x80000000) != 0) goto LAB_00184788;\nLAB_001847cc:\n      iVar3 = iVar3 + -1;\n      *puVar7 = ~uVar6 & uVar5;\n    } while (iVar3 != 0);" do (compound_statement "{\n      while (uVar1 != 0) {\n        uVar1 = uVar1 - 1;\n        uVar6 = 1 << (uVar1 & 0x1f);\n        if (uVar8 == 0) goto LAB_001847b0;\nLAB_00184770:\n        uVar8 = uVar8 - 1;\n        uVar5 = *puVar7;\n        if ((1 << (uVar8 & 0x1f) & *puVar10) == 0) goto LAB_001847cc;\nLAB_00184788:\n        iVar3 = iVar3 + -1;\n        *puVar7 = uVar6 | uVar5;\n        if (iVar3 == 0) goto LAB_001847e0;\n      }\n      puVar7 = puVar7 + -1;\n      uVar6 = 0x80000000;\n      uVar1 = 0x1f;\n      if (uVar8 != 0) goto LAB_00184770;\nLAB_001847b0:\n      puVar10 = puVar10 + -1;\n      uVar5 = *puVar7;\n      uVar8 = 0x1f;\n      if ((*puVar10 & 0x80000000) != 0) goto LAB_00184788;\nLAB_001847cc:\n      iVar3 = iVar3 + -1;\n      *puVar7 = ~uVar6 & uVar5;\n    }" { (while_statement "while (uVar1 != 0) {\n        uVar1 = uVar1 - 1;\n        uVar6 = 1 << (uVar1 & 0x1f);\n        if (uVar8 == 0) goto LAB_001847b0;\nLAB_00184770:\n        uVar8 = uVar8 - 1;\n        uVar5 = *puVar7;\n        if ((1 << (uVar8 & 0x1f) & *puVar10) == 0) goto LAB_001847cc;\nLAB_00184788:\n        iVar3 = iVar3 + -1;\n        *puVar7 = uVar6 | uVar5;\n        if (iVar3 == 0) goto LAB_001847e0;\n      }" while (parenthesized_expression "(uVar1 != 0)" ( (binary_expression "uVar1 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar1 = uVar1 - 1;\n        uVar6 = 1 << (uVar1 & 0x1f);\n        if (uVar8 == 0) goto LAB_001847b0;\nLAB_00184770:\n        uVar8 = uVar8 - 1;\n        uVar5 = *puVar7;\n        if ((1 << (uVar8 & 0x1f) & *puVar10) == 0) goto LAB_001847cc;\nLAB_00184788:\n        iVar3 = iVar3 + -1;\n        *puVar7 = uVar6 | uVar5;\n        if (iVar3 == 0) goto LAB_001847e0;\n      }" { (expression_statement "uVar1 = uVar1 - 1;" (assignment_expression "uVar1 = uVar1 - 1" identifier = (binary_expression "uVar1 - 1" identifier - number_literal)) ;) (expression_statement "uVar6 = 1 << (uVar1 & 0x1f);" (assignment_expression "uVar6 = 1 << (uVar1 & 0x1f)" identifier = (binary_expression "1 << (uVar1 & 0x1f)" number_literal << (parenthesized_expression "(uVar1 & 0x1f)" ( (binary_expression "uVar1 & 0x1f" identifier & number_literal) )))) ;) (if_statement "if (uVar8 == 0) goto LAB_001847b0;" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001847b0;" goto statement_identifier ;)) (labeled_statement "LAB_00184770:\n        uVar8 = uVar8 - 1;" statement_identifier : (expression_statement "uVar8 = uVar8 - 1;" (assignment_expression "uVar8 = uVar8 - 1" identifier = (binary_expression "uVar8 - 1" identifier - number_literal)) ;)) (expression_statement "uVar5 = *puVar7;" (assignment_expression "uVar5 = *puVar7" identifier = (pointer_expression "*puVar7" * identifier)) ;) (if_statement "if ((1 << (uVar8 & 0x1f) & *puVar10) == 0) goto LAB_001847cc;" if (parenthesized_expression "((1 << (uVar8 & 0x1f) & *puVar10) == 0)" ( (binary_expression "(1 << (uVar8 & 0x1f) & *puVar10) == 0" (parenthesized_expression "(1 << (uVar8 & 0x1f) & *puVar10)" ( (binary_expression "1 << (uVar8 & 0x1f) & *puVar10" (binary_expression "1 << (uVar8 & 0x1f)" number_literal << (parenthesized_expression "(uVar8 & 0x1f)" ( (binary_expression "uVar8 & 0x1f" identifier & number_literal) ))) & (pointer_expression "*puVar10" * identifier)) )) == number_literal) )) (goto_statement "goto LAB_001847cc;" goto statement_identifier ;)) (labeled_statement "LAB_00184788:\n        iVar3 = iVar3 + -1;" statement_identifier : (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ;)) (expression_statement "*puVar7 = uVar6 | uVar5;" (assignment_expression "*puVar7 = uVar6 | uVar5" (pointer_expression "*puVar7" * identifier) = (binary_expression "uVar6 | uVar5" identifier | identifier)) ;) (if_statement "if (iVar3 == 0) goto LAB_001847e0;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001847e0;" goto statement_identifier ;)) })) (expression_statement "puVar7 = puVar7 + -1;" (assignment_expression "puVar7 = puVar7 + -1" identifier = (binary_expression "puVar7 + -1" identifier + number_literal)) ;) (expression_statement "uVar6 = 0x80000000;" (assignment_expression "uVar6 = 0x80000000" identifier = number_literal) ;) (expression_statement "uVar1 = 0x1f;" (assignment_expression "uVar1 = 0x1f" identifier = number_literal) ;) (if_statement "if (uVar8 != 0) goto LAB_00184770;" if (parenthesized_expression "(uVar8 != 0)" ( (binary_expression "uVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00184770;" goto statement_identifier ;)) (labeled_statement "LAB_001847b0:\n      puVar10 = puVar10 + -1;" statement_identifier : (expression_statement "puVar10 = puVar10 + -1;" (assignment_expression "puVar10 = puVar10 + -1" identifier = (binary_expression "puVar10 + -1" identifier + number_literal)) ;)) (expression_statement "uVar5 = *puVar7;" (assignment_expression "uVar5 = *puVar7" identifier = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "uVar8 = 0x1f;" (assignment_expression "uVar8 = 0x1f" identifier = number_literal) ;) (if_statement "if ((*puVar10 & 0x80000000) != 0) goto LAB_00184788;" if (parenthesized_expression "((*puVar10 & 0x80000000) != 0)" ( (binary_expression "(*puVar10 & 0x80000000) != 0" (parenthesized_expression "(*puVar10 & 0x80000000)" ( (binary_expression "*puVar10 & 0x80000000" (pointer_expression "*puVar10" * identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00184788;" goto statement_identifier ;)) (labeled_statement "LAB_001847cc:\n      iVar3 = iVar3 + -1;" statement_identifier : (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ;)) (expression_statement "*puVar7 = ~uVar6 & uVar5;" (assignment_expression "*puVar7 = ~uVar6 & uVar5" (pointer_expression "*puVar7" * identifier) = (binary_expression "~uVar6 & uVar5" (unary_expression "~uVar6" ~ identifier) & identifier)) ;) }) while (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) ;) })) (labeled_statement "LAB_001847e0:\n  uVar1 = 1 << (param_3 & 0x1f);" statement_identifier : (expression_statement "uVar1 = 1 << (param_3 & 0x1f);" (assignment_expression "uVar1 = 1 << (param_3 & 0x1f)" identifier = (binary_expression "1 << (param_3 & 0x1f)" number_literal << (parenthesized_expression "(param_3 & 0x1f)" ( (binary_expression "param_3 & 0x1f" identifier & number_literal) )))) ;)) (if_statement "if (param_4 == 0) {\n    *param_2 = ~uVar1 & *param_2;\n  }\n  else {\n    *param_2 = uVar1 | *param_2;\n  }" if (parenthesized_expression "(param_4 == 0)" ( (binary_expression "param_4 == 0" identifier == number_literal) )) (compound_statement "{\n    *param_2 = ~uVar1 & *param_2;\n  }" { (expression_statement "*param_2 = ~uVar1 & *param_2;" (assignment_expression "*param_2 = ~uVar1 & *param_2" (pointer_expression "*param_2" * identifier) = (binary_expression "~uVar1 & *param_2" (unary_expression "~uVar1" ~ identifier) & (pointer_expression "*param_2" * identifier))) ;) }) (else_clause "else {\n    *param_2 = uVar1 | *param_2;\n  }" else (compound_statement "{\n    *param_2 = uVar1 | *param_2;\n  }" { (expression_statement "*param_2 = uVar1 | *param_2;" (assignment_expression "*param_2 = uVar1 | *param_2" (pointer_expression "*param_2" * identifier) = (binary_expression "uVar1 | *param_2" identifier | (pointer_expression "*param_2" * identifier))) ;) }))) (if_statement "if (uVar11 != 0x1f) {\n    param_1[3] = uVar12;\n    return;\n  }" if (parenthesized_expression "(uVar11 != 0x1f)" ( (binary_expression "uVar11 != 0x1f" identifier != number_literal) )) (compound_statement "{\n    param_1[3] = uVar12;\n    return;\n  }" { (expression_statement "param_1[3] = uVar12;" (assignment_expression "param_1[3] = uVar12" (subscript_expression "param_1[3]" identifier [ number_literal ]) = identifier) ;) (return_statement "return;" return ;) })) (expression_statement "param_1[3] = 0;" (assignment_expression "param_1[3] = 0" (subscript_expression "param_1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[2] = (int)(puVar9 + 1);" (assignment_expression "param_1[2] = (int)(puVar9 + 1)" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (cast_expression "(int)(puVar9 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar9 + 1)" ( (binary_expression "puVar9 + 1" identifier + number_literal) )))) ;) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit (declaration TYPE (ERROR IDENT : :) IDENT (ERROR < TYPE) , (ERROR IDENT : : IDENT < TYPE >> : : (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) { IDENT) 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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (pointer_expression * IDENT)) )) * LIT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) == IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) >> LIT) )) << LIT)) ;) }))))) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression LIT << (parenthesized_expression ( (binary_expression IDENT & LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & (pointer_expression * IDENT)) )) != LIT) )) (break_statement break ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (unary_expression ~ IDENT) & (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT | (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression LIT << (parenthesized_expression ( (binary_expression IDENT & LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (unary_expression ~ IDENT) & (pointer_expression * IDENT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) | IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) * LIT) + (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) - IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression LIT << (parenthesized_expression ( (binary_expression IDENT & LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression LIT << (parenthesized_expression ( (binary_expression IDENT & LIT) ))) & (pointer_expression * IDENT)) )) != LIT) )) (break_statement break ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (unary_expression ~ IDENT) & (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }))) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) - LIT) | LIT) )) + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) * LIT) + (parenthesized_expression ( (binary_expression IDENT - IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression LIT << (parenthesized_expression ( (binary_expression IDENT & LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression LIT << (parenthesized_expression ( (binary_expression IDENT & LIT) ))) & (pointer_expression * IDENT)) )) == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT | IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (unary_expression ~ IDENT) & IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression LIT << (parenthesized_expression ( (binary_expression IDENT & LIT) )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (unary_expression ~ IDENT) & (pointer_expression * IDENT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT | (pointer_expression * IDENT))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (return_statement return ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (return_statement return ;) (ERROR }))
(declaration "void std::vector<bool,std::allocator<bool>>::_M_insert_aux\n               (int *param_1,uint *param_2,uint param_3,int param_4)\n\n{\n  uint uVar1;" (primitive_type "void") (ERROR "std::" (identifier "std") (: ":") (: ":")) (identifier "vector") (ERROR "<bool" (< "<") (primitive_type "bool")) (, ",") (ERROR "std::allocator<bool>>::_M_insert_aux\n               (int *param_1,uint *param_2,uint param_3,int param_4)\n\n{\n  uint" (identifier "std") (: ":") (: ":") (identifier "allocator") (< "<") (primitive_type "bool") (>> ">>") (: ":") (: ":") (function_declarator "_M_insert_aux\n               (int *param_1,uint *param_2,uint param_3,int param_4)" (identifier "_M_insert_aux") (parameter_list "(int *param_1,uint *param_2,uint param_3,int param_4)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "uint *param_2" (type_identifier "uint") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "uint param_3" (type_identifier "uint") (identifier "param_3")) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) () ")"))) ({ "{") (identifier "uint")) (identifier "uVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "uint *puVar7;" (type_identifier "uint") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "uint *puVar9;" (type_identifier "uint") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "uint *puVar10;" (type_identifier "uint") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (expression_statement "puVar9 = (uint *)param_1[2];" (assignment_expression "puVar9 = (uint *)param_1[2]" (identifier "puVar9") (= "=") (cast_expression "(uint *)param_1[2]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "uVar11 = param_1[3];" (assignment_expression "uVar11 = param_1[3]" (identifier "uVar11") (= "=") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]"))) (; ";")) (if_statement "if (puVar9 == (uint *)param_1[4]) {\n    iVar3 = ((int)puVar9 - *param_1) * 8 + uVar11;\n    uVar11 = iVar3 - param_1[1];\n    if (param_1[1] + 0x7fffffe0 == iVar3) {\n      (*(code *)PTR___throw_length_error_004c1e74)(PTR_s__s_004c1a50 + 0xd54);\n      return;\n    }\n    uVar1 = uVar11 * 2;\n    if (uVar11 == 0) {\n      iVar3 = 4;\n    }\n    else if (uVar1 < uVar11) {\n      iVar3 = 0xffffffc;\n    }\n    else {\n      uVar11 = 0x7fffffe0;\n      if (uVar1 < 0x7fffffe1) {\n        uVar11 = uVar1;\n      }\n      iVar3 = (uVar11 + 0x1f >> 5) << 2;\n    }\n    iVar2 = (*(code *)PTR_operator_new_004c13a8)(iVar3);\n    puVar9 = (uint *)*param_1;\n    if (param_2 != puVar9) {\n      (*(code *)PTR_memmove_004c5af8)(iVar2,puVar9,(int)param_2 - (int)puVar9);\n    }\n    puVar7 = (uint *)(iVar2 + ((int)param_2 - (int)puVar9));\n    if ((int)param_3 < 1) {\n      uVar11 = 1;\n      uVar1 = 1;\n      puVar10 = puVar7;\n    }\n    else {\n      uVar12 = 0;\n      uVar8 = param_3;\n      puVar10 = param_2;\n      do {\n        while( true ) {\n          uVar11 = 1 << (uVar12 & 0x1f);\n          if ((uVar11 & *puVar10) != 0) break;\n          *puVar7 = ~uVar11 & *puVar7;\n          if (uVar12 != 0x1f) goto LAB_00184984;\nLAB_001849c0:\n          uVar8 = uVar8 - 1;\n          puVar10 = puVar10 + 1;\n          puVar7 = puVar7 + 1;\n          uVar11 = 1;\n          uVar1 = 1;\n          uVar6 = 0;\n          uVar12 = uVar6;\n          if (uVar8 == 0) goto LAB_001849dc;\n        }\n        *puVar7 = uVar11 | *puVar7;\n        if (uVar12 == 0x1f) goto LAB_001849c0;\nLAB_00184984:\n        uVar6 = uVar12 + 1;\n        uVar8 = uVar8 - 1;\n        uVar1 = uVar12 + 2;\n        uVar11 = 1 << (uVar6 & 0x1f);\n        uVar12 = uVar6;\n      } while (uVar8 != 0);\nLAB_001849dc:\n      puVar10 = puVar7;\n      if (uVar6 == 0x1f) {\n        uVar1 = 0;\n        puVar10 = puVar7 + 1;\n      }\n    }\n    if (param_4 == 0) {\n      uVar11 = ~uVar11 & *puVar7;\n    }\n    else {\n      uVar11 = *puVar7 | uVar11;\n    }\n    iVar4 = (param_1[2] - (int)param_2) * 8 + (param_1[3] - param_3);\n    *puVar7 = uVar11;\n    if (0 < iVar4) {\n      do {\n        while( true ) {\n          uVar11 = 1 << (uVar1 & 0x1f);\n          if ((1 << (param_3 & 0x1f) & *param_2) != 0) break;\n          *puVar10 = ~uVar11 & *puVar10;\n          if (param_3 != 0x1f) goto LAB_00184a30;\nLAB_00184a6c:\n          param_2 = param_2 + 1;\n          param_3 = 0;\n          if (uVar1 != 0x1f) goto LAB_00184a38;\nLAB_00184a78:\n          iVar4 = iVar4 + -1;\n          puVar10 = puVar10 + 1;\n          uVar1 = 0;\n          if (iVar4 == 0) goto LAB_00184a88;\n        }\n        *puVar10 = *puVar10 | uVar11;\n        if (param_3 == 0x1f) goto LAB_00184a6c;\nLAB_00184a30:\n        param_3 = param_3 + 1;\n        if (uVar1 == 0x1f) goto LAB_00184a78;\nLAB_00184a38:\n        iVar4 = iVar4 + -1;\n        uVar1 = uVar1 + 1;\n      } while (iVar4 != 0);\n    }\nLAB_00184a88:\n    if (puVar9 != (uint *)0x0) {\n      (*(code *)PTR_operator_delete_004c12fc)(puVar9);\n      param_1[2] = 0;\n      param_1[3] = 0;\n      *param_1 = 0;\n      param_1[1] = 0;\n    }\n    *param_1 = iVar2;\n    param_1[4] = iVar2 + iVar3;\n    param_1[2] = (int)puVar10;\n    param_1[3] = uVar1;\n    param_1[1] = 0;\n    return;\n  }" (if "if") (parenthesized_expression "(puVar9 == (uint *)param_1[4])" (( "(") (binary_expression "puVar9 == (uint *)param_1[4]" (identifier "puVar9") (== "==") (cast_expression "(uint *)param_1[4]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")))) () ")")) (compound_statement "{\n    iVar3 = ((int)puVar9 - *param_1) * 8 + uVar11;\n    uVar11 = iVar3 - param_1[1];\n    if (param_1[1] + 0x7fffffe0 == iVar3) {\n      (*(code *)PTR___throw_length_error_004c1e74)(PTR_s__s_004c1a50 + 0xd54);\n      return;\n    }\n    uVar1 = uVar11 * 2;\n    if (uVar11 == 0) {\n      iVar3 = 4;\n    }\n    else if (uVar1 < uVar11) {\n      iVar3 = 0xffffffc;\n    }\n    else {\n      uVar11 = 0x7fffffe0;\n      if (uVar1 < 0x7fffffe1) {\n        uVar11 = uVar1;\n      }\n      iVar3 = (uVar11 + 0x1f >> 5) << 2;\n    }\n    iVar2 = (*(code *)PTR_operator_new_004c13a8)(iVar3);\n    puVar9 = (uint *)*param_1;\n    if (param_2 != puVar9) {\n      (*(code *)PTR_memmove_004c5af8)(iVar2,puVar9,(int)param_2 - (int)puVar9);\n    }\n    puVar7 = (uint *)(iVar2 + ((int)param_2 - (int)puVar9));\n    if ((int)param_3 < 1) {\n      uVar11 = 1;\n      uVar1 = 1;\n      puVar10 = puVar7;\n    }\n    else {\n      uVar12 = 0;\n      uVar8 = param_3;\n      puVar10 = param_2;\n      do {\n        while( true ) {\n          uVar11 = 1 << (uVar12 & 0x1f);\n          if ((uVar11 & *puVar10) != 0) break;\n          *puVar7 = ~uVar11 & *puVar7;\n          if (uVar12 != 0x1f) goto LAB_00184984;\nLAB_001849c0:\n          uVar8 = uVar8 - 1;\n          puVar10 = puVar10 + 1;\n          puVar7 = puVar7 + 1;\n          uVar11 = 1;\n          uVar1 = 1;\n          uVar6 = 0;\n          uVar12 = uVar6;\n          if (uVar8 == 0) goto LAB_001849dc;\n        }\n        *puVar7 = uVar11 | *puVar7;\n        if (uVar12 == 0x1f) goto LAB_001849c0;\nLAB_00184984:\n        uVar6 = uVar12 + 1;\n        uVar8 = uVar8 - 1;\n        uVar1 = uVar12 + 2;\n        uVar11 = 1 << (uVar6 & 0x1f);\n        uVar12 = uVar6;\n      } while (uVar8 != 0);\nLAB_001849dc:\n      puVar10 = puVar7;\n      if (uVar6 == 0x1f) {\n        uVar1 = 0;\n        puVar10 = puVar7 + 1;\n      }\n    }\n    if (param_4 == 0) {\n      uVar11 = ~uVar11 & *puVar7;\n    }\n    else {\n      uVar11 = *puVar7 | uVar11;\n    }\n    iVar4 = (param_1[2] - (int)param_2) * 8 + (param_1[3] - param_3);\n    *puVar7 = uVar11;\n    if (0 < iVar4) {\n      do {\n        while( true ) {\n          uVar11 = 1 << (uVar1 & 0x1f);\n          if ((1 << (param_3 & 0x1f) & *param_2) != 0) break;\n          *puVar10 = ~uVar11 & *puVar10;\n          if (param_3 != 0x1f) goto LAB_00184a30;\nLAB_00184a6c:\n          param_2 = param_2 + 1;\n          param_3 = 0;\n          if (uVar1 != 0x1f) goto LAB_00184a38;\nLAB_00184a78:\n          iVar4 = iVar4 + -1;\n          puVar10 = puVar10 + 1;\n          uVar1 = 0;\n          if (iVar4 == 0) goto LAB_00184a88;\n        }\n        *puVar10 = *puVar10 | uVar11;\n        if (param_3 == 0x1f) goto LAB_00184a6c;\nLAB_00184a30:\n        param_3 = param_3 + 1;\n        if (uVar1 == 0x1f) goto LAB_00184a78;\nLAB_00184a38:\n        iVar4 = iVar4 + -1;\n        uVar1 = uVar1 + 1;\n      } while (iVar4 != 0);\n    }\nLAB_00184a88:\n    if (puVar9 != (uint *)0x0) {\n      (*(code *)PTR_operator_delete_004c12fc)(puVar9);\n      param_1[2] = 0;\n      param_1[3] = 0;\n      *param_1 = 0;\n      param_1[1] = 0;\n    }\n    *param_1 = iVar2;\n    param_1[4] = iVar2 + iVar3;\n    param_1[2] = (int)puVar10;\n    param_1[3] = uVar1;\n    param_1[1] = 0;\n    return;\n  }" ({ "{") (expression_statement "iVar3 = ((int)puVar9 - *param_1) * 8 + uVar11;" (assignment_expression "iVar3 = ((int)puVar9 - *param_1) * 8 + uVar11" (identifier "iVar3") (= "=") (binary_expression "((int)puVar9 - *param_1) * 8 + uVar11" (binary_expression "((int)puVar9 - *param_1) * 8" (parenthesized_expression "((int)puVar9 - *param_1)" (( "(") (binary_expression "(int)puVar9 - *param_1" (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9")) (- "-") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) () ")")) (* "*") (number_literal "8")) (+ "+") (identifier "uVar11"))) (; ";")) (expression_statement "uVar11 = iVar3 - param_1[1];" (assignment_expression "uVar11 = iVar3 - param_1[1]" (identifier "uVar11") (= "=") (binary_expression "iVar3 - param_1[1]" (identifier "iVar3") (- "-") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")))) (; ";")) (if_statement "if (param_1[1] + 0x7fffffe0 == iVar3) {\n      (*(code *)PTR___throw_length_error_004c1e74)(PTR_s__s_004c1a50 + 0xd54);\n      return;\n    }" (if "if") (parenthesized_expression "(param_1[1] + 0x7fffffe0 == iVar3)" (( "(") (binary_expression "param_1[1] + 0x7fffffe0 == iVar3" (binary_expression "param_1[1] + 0x7fffffe0" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x7fffffe0")) (== "==") (identifier "iVar3")) () ")")) (compound_statement "{\n      (*(code *)PTR___throw_length_error_004c1e74)(PTR_s__s_004c1a50 + 0xd54);\n      return;\n    }" ({ "{") (expression_statement "(*(code *)PTR___throw_length_error_004c1e74)(PTR_s__s_004c1a50 + 0xd54);" (call_expression "(*(code *)PTR___throw_length_error_004c1e74)(PTR_s__s_004c1a50 + 0xd54)" (parenthesized_expression "(*(code *)PTR___throw_length_error_004c1e74)" (( "(") (pointer_expression "*(code *)PTR___throw_length_error_004c1e74" (* "*") (cast_expression "(code *)PTR___throw_length_error_004c1e74" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___throw_length_error_004c1e74"))) () ")")) (argument_list "(PTR_s__s_004c1a50 + 0xd54)" (( "(") (binary_expression "PTR_s__s_004c1a50 + 0xd54" (identifier "PTR_s__s_004c1a50") (+ "+") (number_literal "0xd54")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar1 = uVar11 * 2;" (assignment_expression "uVar1 = uVar11 * 2" (identifier "uVar1") (= "=") (binary_expression "uVar11 * 2" (identifier "uVar11") (* "*") (number_literal "2"))) (; ";")) (if_statement "if (uVar11 == 0) {\n      iVar3 = 4;\n    }\n    else if (uVar1 < uVar11) {\n      iVar3 = 0xffffffc;\n    }\n    else {\n      uVar11 = 0x7fffffe0;\n      if (uVar1 < 0x7fffffe1) {\n        uVar11 = uVar1;\n      }\n      iVar3 = (uVar11 + 0x1f >> 5) << 2;\n    }" (if "if") (parenthesized_expression "(uVar11 == 0)" (( "(") (binary_expression "uVar11 == 0" (identifier "uVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar3 = 4;\n    }" ({ "{") (expression_statement "iVar3 = 4;" (assignment_expression "iVar3 = 4" (identifier "iVar3") (= "=") (number_literal "4")) (; ";")) (} "}")) (else_clause "else if (uVar1 < uVar11) {\n      iVar3 = 0xffffffc;\n    }\n    else {\n      uVar11 = 0x7fffffe0;\n      if (uVar1 < 0x7fffffe1) {\n        uVar11 = uVar1;\n      }\n      iVar3 = (uVar11 + 0x1f >> 5) << 2;\n    }" (else "else") (if_statement "if (uVar1 < uVar11) {\n      iVar3 = 0xffffffc;\n    }\n    else {\n      uVar11 = 0x7fffffe0;\n      if (uVar1 < 0x7fffffe1) {\n        uVar11 = uVar1;\n      }\n      iVar3 = (uVar11 + 0x1f >> 5) << 2;\n    }" (if "if") (parenthesized_expression "(uVar1 < uVar11)" (( "(") (binary_expression "uVar1 < uVar11" (identifier "uVar1") (< "<") (identifier "uVar11")) () ")")) (compound_statement "{\n      iVar3 = 0xffffffc;\n    }" ({ "{") (expression_statement "iVar3 = 0xffffffc;" (assignment_expression "iVar3 = 0xffffffc" (identifier "iVar3") (= "=") (number_literal "0xffffffc")) (; ";")) (} "}")) (else_clause "else {\n      uVar11 = 0x7fffffe0;\n      if (uVar1 < 0x7fffffe1) {\n        uVar11 = uVar1;\n      }\n      iVar3 = (uVar11 + 0x1f >> 5) << 2;\n    }" (else "else") (compound_statement "{\n      uVar11 = 0x7fffffe0;\n      if (uVar1 < 0x7fffffe1) {\n        uVar11 = uVar1;\n      }\n      iVar3 = (uVar11 + 0x1f >> 5) << 2;\n    }" ({ "{") (expression_statement "uVar11 = 0x7fffffe0;" (assignment_expression "uVar11 = 0x7fffffe0" (identifier "uVar11") (= "=") (number_literal "0x7fffffe0")) (; ";")) (if_statement "if (uVar1 < 0x7fffffe1) {\n        uVar11 = uVar1;\n      }" (if "if") (parenthesized_expression "(uVar1 < 0x7fffffe1)" (( "(") (binary_expression "uVar1 < 0x7fffffe1" (identifier "uVar1") (< "<") (number_literal "0x7fffffe1")) () ")")) (compound_statement "{\n        uVar11 = uVar1;\n      }" ({ "{") (expression_statement "uVar11 = uVar1;" (assignment_expression "uVar11 = uVar1" (identifier "uVar11") (= "=") (identifier "uVar1")) (; ";")) (} "}"))) (expression_statement "iVar3 = (uVar11 + 0x1f >> 5) << 2;" (assignment_expression "iVar3 = (uVar11 + 0x1f >> 5) << 2" (identifier "iVar3") (= "=") (binary_expression "(uVar11 + 0x1f >> 5) << 2" (parenthesized_expression "(uVar11 + 0x1f >> 5)" (( "(") (binary_expression "uVar11 + 0x1f >> 5" (binary_expression "uVar11 + 0x1f" (identifier "uVar11") (+ "+") (number_literal "0x1f")) (>> ">>") (number_literal "5")) () ")")) (<< "<<") (number_literal "2"))) (; ";")) (} "}")))))) (expression_statement "iVar2 = (*(code *)PTR_operator_new_004c13a8)(iVar3);" (assignment_expression "iVar2 = (*(code *)PTR_operator_new_004c13a8)(iVar3)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_operator_new_004c13a8)(iVar3)" (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 "(iVar3)" (( "(") (identifier "iVar3") () ")")))) (; ";")) (expression_statement "puVar9 = (uint *)*param_1;" (assignment_expression "puVar9 = (uint *)*param_1" (identifier "puVar9") (= "=") (cast_expression "(uint *)*param_1" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (if_statement "if (param_2 != puVar9) {\n      (*(code *)PTR_memmove_004c5af8)(iVar2,puVar9,(int)param_2 - (int)puVar9);\n    }" (if "if") (parenthesized_expression "(param_2 != puVar9)" (( "(") (binary_expression "param_2 != puVar9" (identifier "param_2") (!= "!=") (identifier "puVar9")) () ")")) (compound_statement "{\n      (*(code *)PTR_memmove_004c5af8)(iVar2,puVar9,(int)param_2 - (int)puVar9);\n    }" ({ "{") (expression_statement "(*(code *)PTR_memmove_004c5af8)(iVar2,puVar9,(int)param_2 - (int)puVar9);" (call_expression "(*(code *)PTR_memmove_004c5af8)(iVar2,puVar9,(int)param_2 - (int)puVar9)" (parenthesized_expression "(*(code *)PTR_memmove_004c5af8)" (( "(") (pointer_expression "*(code *)PTR_memmove_004c5af8" (* "*") (cast_expression "(code *)PTR_memmove_004c5af8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memmove_004c5af8"))) () ")")) (argument_list "(iVar2,puVar9,(int)param_2 - (int)puVar9)" (( "(") (identifier "iVar2") (, ",") (identifier "puVar9") (, ",") (binary_expression "(int)param_2 - (int)puVar9" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (- "-") (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9"))) () ")"))) (; ";")) (} "}"))) (expression_statement "puVar7 = (uint *)(iVar2 + ((int)param_2 - (int)puVar9));" (assignment_expression "puVar7 = (uint *)(iVar2 + ((int)param_2 - (int)puVar9))" (identifier "puVar7") (= "=") (cast_expression "(uint *)(iVar2 + ((int)param_2 - (int)puVar9))" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + ((int)param_2 - (int)puVar9))" (( "(") (binary_expression "iVar2 + ((int)param_2 - (int)puVar9)" (identifier "iVar2") (+ "+") (parenthesized_expression "((int)param_2 - (int)puVar9)" (( "(") (binary_expression "(int)param_2 - (int)puVar9" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (- "-") (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9"))) () ")"))) () ")")))) (; ";")) (if_statement "if ((int)param_3 < 1) {\n      uVar11 = 1;\n      uVar1 = 1;\n      puVar10 = puVar7;\n    }\n    else {\n      uVar12 = 0;\n      uVar8 = param_3;\n      puVar10 = param_2;\n      do {\n        while( true ) {\n          uVar11 = 1 << (uVar12 & 0x1f);\n          if ((uVar11 & *puVar10) != 0) break;\n          *puVar7 = ~uVar11 & *puVar7;\n          if (uVar12 != 0x1f) goto LAB_00184984;\nLAB_001849c0:\n          uVar8 = uVar8 - 1;\n          puVar10 = puVar10 + 1;\n          puVar7 = puVar7 + 1;\n          uVar11 = 1;\n          uVar1 = 1;\n          uVar6 = 0;\n          uVar12 = uVar6;\n          if (uVar8 == 0) goto LAB_001849dc;\n        }\n        *puVar7 = uVar11 | *puVar7;\n        if (uVar12 == 0x1f) goto LAB_001849c0;\nLAB_00184984:\n        uVar6 = uVar12 + 1;\n        uVar8 = uVar8 - 1;\n        uVar1 = uVar12 + 2;\n        uVar11 = 1 << (uVar6 & 0x1f);\n        uVar12 = uVar6;\n      } while (uVar8 != 0);\nLAB_001849dc:\n      puVar10 = puVar7;\n      if (uVar6 == 0x1f) {\n        uVar1 = 0;\n        puVar10 = puVar7 + 1;\n      }\n    }" (if "if") (parenthesized_expression "((int)param_3 < 1)" (( "(") (binary_expression "(int)param_3 < 1" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n      uVar11 = 1;\n      uVar1 = 1;\n      puVar10 = puVar7;\n    }" ({ "{") (expression_statement "uVar11 = 1;" (assignment_expression "uVar11 = 1" (identifier "uVar11") (= "=") (number_literal "1")) (; ";")) (expression_statement "uVar1 = 1;" (assignment_expression "uVar1 = 1" (identifier "uVar1") (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar10 = puVar7;" (assignment_expression "puVar10 = puVar7" (identifier "puVar10") (= "=") (identifier "puVar7")) (; ";")) (} "}")) (else_clause "else {\n      uVar12 = 0;\n      uVar8 = param_3;\n      puVar10 = param_2;\n      do {\n        while( true ) {\n          uVar11 = 1 << (uVar12 & 0x1f);\n          if ((uVar11 & *puVar10) != 0) break;\n          *puVar7 = ~uVar11 & *puVar7;\n          if (uVar12 != 0x1f) goto LAB_00184984;\nLAB_001849c0:\n          uVar8 = uVar8 - 1;\n          puVar10 = puVar10 + 1;\n          puVar7 = puVar7 + 1;\n          uVar11 = 1;\n          uVar1 = 1;\n          uVar6 = 0;\n          uVar12 = uVar6;\n          if (uVar8 == 0) goto LAB_001849dc;\n        }\n        *puVar7 = uVar11 | *puVar7;\n        if (uVar12 == 0x1f) goto LAB_001849c0;\nLAB_00184984:\n        uVar6 = uVar12 + 1;\n        uVar8 = uVar8 - 1;\n        uVar1 = uVar12 + 2;\n        uVar11 = 1 << (uVar6 & 0x1f);\n        uVar12 = uVar6;\n      } while (uVar8 != 0);\nLAB_001849dc:\n      puVar10 = puVar7;\n      if (uVar6 == 0x1f) {\n        uVar1 = 0;\n        puVar10 = puVar7 + 1;\n      }\n    }" (else "else") (compound_statement "{\n      uVar12 = 0;\n      uVar8 = param_3;\n      puVar10 = param_2;\n      do {\n        while( true ) {\n          uVar11 = 1 << (uVar12 & 0x1f);\n          if ((uVar11 & *puVar10) != 0) break;\n          *puVar7 = ~uVar11 & *puVar7;\n          if (uVar12 != 0x1f) goto LAB_00184984;\nLAB_001849c0:\n          uVar8 = uVar8 - 1;\n          puVar10 = puVar10 + 1;\n          puVar7 = puVar7 + 1;\n          uVar11 = 1;\n          uVar1 = 1;\n          uVar6 = 0;\n          uVar12 = uVar6;\n          if (uVar8 == 0) goto LAB_001849dc;\n        }\n        *puVar7 = uVar11 | *puVar7;\n        if (uVar12 == 0x1f) goto LAB_001849c0;\nLAB_00184984:\n        uVar6 = uVar12 + 1;\n        uVar8 = uVar8 - 1;\n        uVar1 = uVar12 + 2;\n        uVar11 = 1 << (uVar6 & 0x1f);\n        uVar12 = uVar6;\n      } while (uVar8 != 0);\nLAB_001849dc:\n      puVar10 = puVar7;\n      if (uVar6 == 0x1f) {\n        uVar1 = 0;\n        puVar10 = puVar7 + 1;\n      }\n    }" ({ "{") (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" (identifier "uVar12") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar8 = param_3;" (assignment_expression "uVar8 = param_3" (identifier "uVar8") (= "=") (identifier "param_3")) (; ";")) (expression_statement "puVar10 = param_2;" (assignment_expression "puVar10 = param_2" (identifier "puVar10") (= "=") (identifier "param_2")) (; ";")) (do_statement "do {\n        while( true ) {\n          uVar11 = 1 << (uVar12 & 0x1f);\n          if ((uVar11 & *puVar10) != 0) break;\n          *puVar7 = ~uVar11 & *puVar7;\n          if (uVar12 != 0x1f) goto LAB_00184984;\nLAB_001849c0:\n          uVar8 = uVar8 - 1;\n          puVar10 = puVar10 + 1;\n          puVar7 = puVar7 + 1;\n          uVar11 = 1;\n          uVar1 = 1;\n          uVar6 = 0;\n          uVar12 = uVar6;\n          if (uVar8 == 0) goto LAB_001849dc;\n        }\n        *puVar7 = uVar11 | *puVar7;\n        if (uVar12 == 0x1f) goto LAB_001849c0;\nLAB_00184984:\n        uVar6 = uVar12 + 1;\n        uVar8 = uVar8 - 1;\n        uVar1 = uVar12 + 2;\n        uVar11 = 1 << (uVar6 & 0x1f);\n        uVar12 = uVar6;\n      } while (uVar8 != 0);" (do "do") (compound_statement "{\n        while( true ) {\n          uVar11 = 1 << (uVar12 & 0x1f);\n          if ((uVar11 & *puVar10) != 0) break;\n          *puVar7 = ~uVar11 & *puVar7;\n          if (uVar12 != 0x1f) goto LAB_00184984;\nLAB_001849c0:\n          uVar8 = uVar8 - 1;\n          puVar10 = puVar10 + 1;\n          puVar7 = puVar7 + 1;\n          uVar11 = 1;\n          uVar1 = 1;\n          uVar6 = 0;\n          uVar12 = uVar6;\n          if (uVar8 == 0) goto LAB_001849dc;\n        }\n        *puVar7 = uVar11 | *puVar7;\n        if (uVar12 == 0x1f) goto LAB_001849c0;\nLAB_00184984:\n        uVar6 = uVar12 + 1;\n        uVar8 = uVar8 - 1;\n        uVar1 = uVar12 + 2;\n        uVar11 = 1 << (uVar6 & 0x1f);\n        uVar12 = uVar6;\n      }" ({ "{") (while_statement "while( true ) {\n          uVar11 = 1 << (uVar12 & 0x1f);\n          if ((uVar11 & *puVar10) != 0) break;\n          *puVar7 = ~uVar11 & *puVar7;\n          if (uVar12 != 0x1f) goto LAB_00184984;\nLAB_001849c0:\n          uVar8 = uVar8 - 1;\n          puVar10 = puVar10 + 1;\n          puVar7 = puVar7 + 1;\n          uVar11 = 1;\n          uVar1 = 1;\n          uVar6 = 0;\n          uVar12 = uVar6;\n          if (uVar8 == 0) goto LAB_001849dc;\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          uVar11 = 1 << (uVar12 & 0x1f);\n          if ((uVar11 & *puVar10) != 0) break;\n          *puVar7 = ~uVar11 & *puVar7;\n          if (uVar12 != 0x1f) goto LAB_00184984;\nLAB_001849c0:\n          uVar8 = uVar8 - 1;\n          puVar10 = puVar10 + 1;\n          puVar7 = puVar7 + 1;\n          uVar11 = 1;\n          uVar1 = 1;\n          uVar6 = 0;\n          uVar12 = uVar6;\n          if (uVar8 == 0) goto LAB_001849dc;\n        }" ({ "{") (expression_statement "uVar11 = 1 << (uVar12 & 0x1f);" (assignment_expression "uVar11 = 1 << (uVar12 & 0x1f)" (identifier "uVar11") (= "=") (binary_expression "1 << (uVar12 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "(uVar12 & 0x1f)" (( "(") (binary_expression "uVar12 & 0x1f" (identifier "uVar12") (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (if_statement "if ((uVar11 & *puVar10) != 0) break;" (if "if") (parenthesized_expression "((uVar11 & *puVar10) != 0)" (( "(") (binary_expression "(uVar11 & *puVar10) != 0" (parenthesized_expression "(uVar11 & *puVar10)" (( "(") (binary_expression "uVar11 & *puVar10" (identifier "uVar11") (& "&") (pointer_expression "*puVar10" (* "*") (identifier "puVar10"))) () ")")) (!= "!=") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "*puVar7 = ~uVar11 & *puVar7;" (assignment_expression "*puVar7 = ~uVar11 & *puVar7" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (binary_expression "~uVar11 & *puVar7" (unary_expression "~uVar11" (~ "~") (identifier "uVar11")) (& "&") (pointer_expression "*puVar7" (* "*") (identifier "puVar7")))) (; ";")) (if_statement "if (uVar12 != 0x1f) goto LAB_00184984;" (if "if") (parenthesized_expression "(uVar12 != 0x1f)" (( "(") (binary_expression "uVar12 != 0x1f" (identifier "uVar12") (!= "!=") (number_literal "0x1f")) () ")")) (goto_statement "goto LAB_00184984;" (goto "goto") (statement_identifier "LAB_00184984") (; ";"))) (labeled_statement "LAB_001849c0:\n          uVar8 = uVar8 - 1;" (statement_identifier "LAB_001849c0") (: ":") (expression_statement "uVar8 = uVar8 - 1;" (assignment_expression "uVar8 = uVar8 - 1" (identifier "uVar8") (= "=") (binary_expression "uVar8 - 1" (identifier "uVar8") (- "-") (number_literal "1"))) (; ";"))) (expression_statement "puVar10 = puVar10 + 1;" (assignment_expression "puVar10 = puVar10 + 1" (identifier "puVar10") (= "=") (binary_expression "puVar10 + 1" (identifier "puVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar7 = puVar7 + 1;" (assignment_expression "puVar7 = puVar7 + 1" (identifier "puVar7") (= "=") (binary_expression "puVar7 + 1" (identifier "puVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar11 = 1;" (assignment_expression "uVar11 = 1" (identifier "uVar11") (= "=") (number_literal "1")) (; ";")) (expression_statement "uVar1 = 1;" (assignment_expression "uVar1 = 1" (identifier "uVar1") (= "=") (number_literal "1")) (; ";")) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" (identifier "uVar6") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar12 = uVar6;" (assignment_expression "uVar12 = uVar6" (identifier "uVar12") (= "=") (identifier "uVar6")) (; ";")) (if_statement "if (uVar8 == 0) goto LAB_001849dc;" (if "if") (parenthesized_expression "(uVar8 == 0)" (( "(") (binary_expression "uVar8 == 0" (identifier "uVar8") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001849dc;" (goto "goto") (statement_identifier "LAB_001849dc") (; ";"))) (} "}"))) (expression_statement "*puVar7 = uVar11 | *puVar7;" (assignment_expression "*puVar7 = uVar11 | *puVar7" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (binary_expression "uVar11 | *puVar7" (identifier "uVar11") (| "|") (pointer_expression "*puVar7" (* "*") (identifier "puVar7")))) (; ";")) (if_statement "if (uVar12 == 0x1f) goto LAB_001849c0;" (if "if") (parenthesized_expression "(uVar12 == 0x1f)" (( "(") (binary_expression "uVar12 == 0x1f" (identifier "uVar12") (== "==") (number_literal "0x1f")) () ")")) (goto_statement "goto LAB_001849c0;" (goto "goto") (statement_identifier "LAB_001849c0") (; ";"))) (labeled_statement "LAB_00184984:\n        uVar6 = uVar12 + 1;" (statement_identifier "LAB_00184984") (: ":") (expression_statement "uVar6 = uVar12 + 1;" (assignment_expression "uVar6 = uVar12 + 1" (identifier "uVar6") (= "=") (binary_expression "uVar12 + 1" (identifier "uVar12") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "uVar8 = uVar8 - 1;" (assignment_expression "uVar8 = uVar8 - 1" (identifier "uVar8") (= "=") (binary_expression "uVar8 - 1" (identifier "uVar8") (- "-") (number_literal "1"))) (; ";")) (expression_statement "uVar1 = uVar12 + 2;" (assignment_expression "uVar1 = uVar12 + 2" (identifier "uVar1") (= "=") (binary_expression "uVar12 + 2" (identifier "uVar12") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "uVar11 = 1 << (uVar6 & 0x1f);" (assignment_expression "uVar11 = 1 << (uVar6 & 0x1f)" (identifier "uVar11") (= "=") (binary_expression "1 << (uVar6 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "(uVar6 & 0x1f)" (( "(") (binary_expression "uVar6 & 0x1f" (identifier "uVar6") (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "uVar12 = uVar6;" (assignment_expression "uVar12 = uVar6" (identifier "uVar12") (= "=") (identifier "uVar6")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar8 != 0)" (( "(") (binary_expression "uVar8 != 0" (identifier "uVar8") (!= "!=") (number_literal "0")) () ")")) (; ";")) (labeled_statement "LAB_001849dc:\n      puVar10 = puVar7;" (statement_identifier "LAB_001849dc") (: ":") (expression_statement "puVar10 = puVar7;" (assignment_expression "puVar10 = puVar7" (identifier "puVar10") (= "=") (identifier "puVar7")) (; ";"))) (if_statement "if (uVar6 == 0x1f) {\n        uVar1 = 0;\n        puVar10 = puVar7 + 1;\n      }" (if "if") (parenthesized_expression "(uVar6 == 0x1f)" (( "(") (binary_expression "uVar6 == 0x1f" (identifier "uVar6") (== "==") (number_literal "0x1f")) () ")")) (compound_statement "{\n        uVar1 = 0;\n        puVar10 = puVar7 + 1;\n      }" ({ "{") (expression_statement "uVar1 = 0;" (assignment_expression "uVar1 = 0" (identifier "uVar1") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar10 = puVar7 + 1;" (assignment_expression "puVar10 = puVar7 + 1" (identifier "puVar10") (= "=") (binary_expression "puVar7 + 1" (identifier "puVar7") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (} "}")))) (if_statement "if (param_4 == 0) {\n      uVar11 = ~uVar11 & *puVar7;\n    }\n    else {\n      uVar11 = *puVar7 | uVar11;\n    }" (if "if") (parenthesized_expression "(param_4 == 0)" (( "(") (binary_expression "param_4 == 0" (identifier "param_4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar11 = ~uVar11 & *puVar7;\n    }" ({ "{") (expression_statement "uVar11 = ~uVar11 & *puVar7;" (assignment_expression "uVar11 = ~uVar11 & *puVar7" (identifier "uVar11") (= "=") (binary_expression "~uVar11 & *puVar7" (unary_expression "~uVar11" (~ "~") (identifier "uVar11")) (& "&") (pointer_expression "*puVar7" (* "*") (identifier "puVar7")))) (; ";")) (} "}")) (else_clause "else {\n      uVar11 = *puVar7 | uVar11;\n    }" (else "else") (compound_statement "{\n      uVar11 = *puVar7 | uVar11;\n    }" ({ "{") (expression_statement "uVar11 = *puVar7 | uVar11;" (assignment_expression "uVar11 = *puVar7 | uVar11" (identifier "uVar11") (= "=") (binary_expression "*puVar7 | uVar11" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (| "|") (identifier "uVar11"))) (; ";")) (} "}")))) (expression_statement "iVar4 = (param_1[2] - (int)param_2) * 8 + (param_1[3] - param_3);" (assignment_expression "iVar4 = (param_1[2] - (int)param_2) * 8 + (param_1[3] - param_3)" (identifier "iVar4") (= "=") (binary_expression "(param_1[2] - (int)param_2) * 8 + (param_1[3] - param_3)" (binary_expression "(param_1[2] - (int)param_2) * 8" (parenthesized_expression "(param_1[2] - (int)param_2)" (( "(") (binary_expression "param_1[2] - (int)param_2" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (- "-") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2"))) () ")")) (* "*") (number_literal "8")) (+ "+") (parenthesized_expression "(param_1[3] - param_3)" (( "(") (binary_expression "param_1[3] - param_3" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (- "-") (identifier "param_3")) () ")")))) (; ";")) (expression_statement "*puVar7 = uVar11;" (assignment_expression "*puVar7 = uVar11" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (identifier "uVar11")) (; ";")) (if_statement "if (0 < iVar4) {\n      do {\n        while( true ) {\n          uVar11 = 1 << (uVar1 & 0x1f);\n          if ((1 << (param_3 & 0x1f) & *param_2) != 0) break;\n          *puVar10 = ~uVar11 & *puVar10;\n          if (param_3 != 0x1f) goto LAB_00184a30;\nLAB_00184a6c:\n          param_2 = param_2 + 1;\n          param_3 = 0;\n          if (uVar1 != 0x1f) goto LAB_00184a38;\nLAB_00184a78:\n          iVar4 = iVar4 + -1;\n          puVar10 = puVar10 + 1;\n          uVar1 = 0;\n          if (iVar4 == 0) goto LAB_00184a88;\n        }\n        *puVar10 = *puVar10 | uVar11;\n        if (param_3 == 0x1f) goto LAB_00184a6c;\nLAB_00184a30:\n        param_3 = param_3 + 1;\n        if (uVar1 == 0x1f) goto LAB_00184a78;\nLAB_00184a38:\n        iVar4 = iVar4 + -1;\n        uVar1 = uVar1 + 1;\n      } while (iVar4 != 0);\n    }" (if "if") (parenthesized_expression "(0 < iVar4)" (( "(") (binary_expression "0 < iVar4" (number_literal "0") (< "<") (identifier "iVar4")) () ")")) (compound_statement "{\n      do {\n        while( true ) {\n          uVar11 = 1 << (uVar1 & 0x1f);\n          if ((1 << (param_3 & 0x1f) & *param_2) != 0) break;\n          *puVar10 = ~uVar11 & *puVar10;\n          if (param_3 != 0x1f) goto LAB_00184a30;\nLAB_00184a6c:\n          param_2 = param_2 + 1;\n          param_3 = 0;\n          if (uVar1 != 0x1f) goto LAB_00184a38;\nLAB_00184a78:\n          iVar4 = iVar4 + -1;\n          puVar10 = puVar10 + 1;\n          uVar1 = 0;\n          if (iVar4 == 0) goto LAB_00184a88;\n        }\n        *puVar10 = *puVar10 | uVar11;\n        if (param_3 == 0x1f) goto LAB_00184a6c;\nLAB_00184a30:\n        param_3 = param_3 + 1;\n        if (uVar1 == 0x1f) goto LAB_00184a78;\nLAB_00184a38:\n        iVar4 = iVar4 + -1;\n        uVar1 = uVar1 + 1;\n      } while (iVar4 != 0);\n    }" ({ "{") (do_statement "do {\n        while( true ) {\n          uVar11 = 1 << (uVar1 & 0x1f);\n          if ((1 << (param_3 & 0x1f) & *param_2) != 0) break;\n          *puVar10 = ~uVar11 & *puVar10;\n          if (param_3 != 0x1f) goto LAB_00184a30;\nLAB_00184a6c:\n          param_2 = param_2 + 1;\n          param_3 = 0;\n          if (uVar1 != 0x1f) goto LAB_00184a38;\nLAB_00184a78:\n          iVar4 = iVar4 + -1;\n          puVar10 = puVar10 + 1;\n          uVar1 = 0;\n          if (iVar4 == 0) goto LAB_00184a88;\n        }\n        *puVar10 = *puVar10 | uVar11;\n        if (param_3 == 0x1f) goto LAB_00184a6c;\nLAB_00184a30:\n        param_3 = param_3 + 1;\n        if (uVar1 == 0x1f) goto LAB_00184a78;\nLAB_00184a38:\n        iVar4 = iVar4 + -1;\n        uVar1 = uVar1 + 1;\n      } while (iVar4 != 0);" (do "do") (compound_statement "{\n        while( true ) {\n          uVar11 = 1 << (uVar1 & 0x1f);\n          if ((1 << (param_3 & 0x1f) & *param_2) != 0) break;\n          *puVar10 = ~uVar11 & *puVar10;\n          if (param_3 != 0x1f) goto LAB_00184a30;\nLAB_00184a6c:\n          param_2 = param_2 + 1;\n          param_3 = 0;\n          if (uVar1 != 0x1f) goto LAB_00184a38;\nLAB_00184a78:\n          iVar4 = iVar4 + -1;\n          puVar10 = puVar10 + 1;\n          uVar1 = 0;\n          if (iVar4 == 0) goto LAB_00184a88;\n        }\n        *puVar10 = *puVar10 | uVar11;\n        if (param_3 == 0x1f) goto LAB_00184a6c;\nLAB_00184a30:\n        param_3 = param_3 + 1;\n        if (uVar1 == 0x1f) goto LAB_00184a78;\nLAB_00184a38:\n        iVar4 = iVar4 + -1;\n        uVar1 = uVar1 + 1;\n      }" ({ "{") (while_statement "while( true ) {\n          uVar11 = 1 << (uVar1 & 0x1f);\n          if ((1 << (param_3 & 0x1f) & *param_2) != 0) break;\n          *puVar10 = ~uVar11 & *puVar10;\n          if (param_3 != 0x1f) goto LAB_00184a30;\nLAB_00184a6c:\n          param_2 = param_2 + 1;\n          param_3 = 0;\n          if (uVar1 != 0x1f) goto LAB_00184a38;\nLAB_00184a78:\n          iVar4 = iVar4 + -1;\n          puVar10 = puVar10 + 1;\n          uVar1 = 0;\n          if (iVar4 == 0) goto LAB_00184a88;\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          uVar11 = 1 << (uVar1 & 0x1f);\n          if ((1 << (param_3 & 0x1f) & *param_2) != 0) break;\n          *puVar10 = ~uVar11 & *puVar10;\n          if (param_3 != 0x1f) goto LAB_00184a30;\nLAB_00184a6c:\n          param_2 = param_2 + 1;\n          param_3 = 0;\n          if (uVar1 != 0x1f) goto LAB_00184a38;\nLAB_00184a78:\n          iVar4 = iVar4 + -1;\n          puVar10 = puVar10 + 1;\n          uVar1 = 0;\n          if (iVar4 == 0) goto LAB_00184a88;\n        }" ({ "{") (expression_statement "uVar11 = 1 << (uVar1 & 0x1f);" (assignment_expression "uVar11 = 1 << (uVar1 & 0x1f)" (identifier "uVar11") (= "=") (binary_expression "1 << (uVar1 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "(uVar1 & 0x1f)" (( "(") (binary_expression "uVar1 & 0x1f" (identifier "uVar1") (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (if_statement "if ((1 << (param_3 & 0x1f) & *param_2) != 0) break;" (if "if") (parenthesized_expression "((1 << (param_3 & 0x1f) & *param_2) != 0)" (( "(") (binary_expression "(1 << (param_3 & 0x1f) & *param_2) != 0" (parenthesized_expression "(1 << (param_3 & 0x1f) & *param_2)" (( "(") (binary_expression "1 << (param_3 & 0x1f) & *param_2" (binary_expression "1 << (param_3 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "(param_3 & 0x1f)" (( "(") (binary_expression "param_3 & 0x1f" (identifier "param_3") (& "&") (number_literal "0x1f")) () ")"))) (& "&") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) () ")")) (!= "!=") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "*puVar10 = ~uVar11 & *puVar10;" (assignment_expression "*puVar10 = ~uVar11 & *puVar10" (pointer_expression "*puVar10" (* "*") (identifier "puVar10")) (= "=") (binary_expression "~uVar11 & *puVar10" (unary_expression "~uVar11" (~ "~") (identifier "uVar11")) (& "&") (pointer_expression "*puVar10" (* "*") (identifier "puVar10")))) (; ";")) (if_statement "if (param_3 != 0x1f) goto LAB_00184a30;" (if "if") (parenthesized_expression "(param_3 != 0x1f)" (( "(") (binary_expression "param_3 != 0x1f" (identifier "param_3") (!= "!=") (number_literal "0x1f")) () ")")) (goto_statement "goto LAB_00184a30;" (goto "goto") (statement_identifier "LAB_00184a30") (; ";"))) (labeled_statement "LAB_00184a6c:\n          param_2 = param_2 + 1;" (statement_identifier "LAB_00184a6c") (: ":") (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" (identifier "param_2") (= "=") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "param_3 = 0;" (assignment_expression "param_3 = 0" (identifier "param_3") (= "=") (number_literal "0")) (; ";")) (if_statement "if (uVar1 != 0x1f) goto LAB_00184a38;" (if "if") (parenthesized_expression "(uVar1 != 0x1f)" (( "(") (binary_expression "uVar1 != 0x1f" (identifier "uVar1") (!= "!=") (number_literal "0x1f")) () ")")) (goto_statement "goto LAB_00184a38;" (goto "goto") (statement_identifier "LAB_00184a38") (; ";"))) (labeled_statement "LAB_00184a78:\n          iVar4 = iVar4 + -1;" (statement_identifier "LAB_00184a78") (: ":") (expression_statement "iVar4 = iVar4 + -1;" (assignment_expression "iVar4 = iVar4 + -1" (identifier "iVar4") (= "=") (binary_expression "iVar4 + -1" (identifier "iVar4") (+ "+") (number_literal "-1"))) (; ";"))) (expression_statement "puVar10 = puVar10 + 1;" (assignment_expression "puVar10 = puVar10 + 1" (identifier "puVar10") (= "=") (binary_expression "puVar10 + 1" (identifier "puVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar1 = 0;" (assignment_expression "uVar1 = 0" (identifier "uVar1") (= "=") (number_literal "0")) (; ";")) (if_statement "if (iVar4 == 0) goto LAB_00184a88;" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00184a88;" (goto "goto") (statement_identifier "LAB_00184a88") (; ";"))) (} "}"))) (expression_statement "*puVar10 = *puVar10 | uVar11;" (assignment_expression "*puVar10 = *puVar10 | uVar11" (pointer_expression "*puVar10" (* "*") (identifier "puVar10")) (= "=") (binary_expression "*puVar10 | uVar11" (pointer_expression "*puVar10" (* "*") (identifier "puVar10")) (| "|") (identifier "uVar11"))) (; ";")) (if_statement "if (param_3 == 0x1f) goto LAB_00184a6c;" (if "if") (parenthesized_expression "(param_3 == 0x1f)" (( "(") (binary_expression "param_3 == 0x1f" (identifier "param_3") (== "==") (number_literal "0x1f")) () ")")) (goto_statement "goto LAB_00184a6c;" (goto "goto") (statement_identifier "LAB_00184a6c") (; ";"))) (labeled_statement "LAB_00184a30:\n        param_3 = param_3 + 1;" (statement_identifier "LAB_00184a30") (: ":") (expression_statement "param_3 = param_3 + 1;" (assignment_expression "param_3 = param_3 + 1" (identifier "param_3") (= "=") (binary_expression "param_3 + 1" (identifier "param_3") (+ "+") (number_literal "1"))) (; ";"))) (if_statement "if (uVar1 == 0x1f) goto LAB_00184a78;" (if "if") (parenthesized_expression "(uVar1 == 0x1f)" (( "(") (binary_expression "uVar1 == 0x1f" (identifier "uVar1") (== "==") (number_literal "0x1f")) () ")")) (goto_statement "goto LAB_00184a78;" (goto "goto") (statement_identifier "LAB_00184a78") (; ";"))) (labeled_statement "LAB_00184a38:\n        iVar4 = iVar4 + -1;" (statement_identifier "LAB_00184a38") (: ":") (expression_statement "iVar4 = iVar4 + -1;" (assignment_expression "iVar4 = iVar4 + -1" (identifier "iVar4") (= "=") (binary_expression "iVar4 + -1" (identifier "iVar4") (+ "+") (number_literal "-1"))) (; ";"))) (expression_statement "uVar1 = uVar1 + 1;" (assignment_expression "uVar1 = uVar1 + 1" (identifier "uVar1") (= "=") (binary_expression "uVar1 + 1" (identifier "uVar1") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_00184a88:\n    if (puVar9 != (uint *)0x0) {\n      (*(code *)PTR_operator_delete_004c12fc)(puVar9);\n      param_1[2] = 0;\n      param_1[3] = 0;\n      *param_1 = 0;\n      param_1[1] = 0;\n    }" (statement_identifier "LAB_00184a88") (: ":") (if_statement "if (puVar9 != (uint *)0x0) {\n      (*(code *)PTR_operator_delete_004c12fc)(puVar9);\n      param_1[2] = 0;\n      param_1[3] = 0;\n      *param_1 = 0;\n      param_1[1] = 0;\n    }" (if "if") (parenthesized_expression "(puVar9 != (uint *)0x0)" (( "(") (binary_expression "puVar9 != (uint *)0x0" (identifier "puVar9") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      (*(code *)PTR_operator_delete_004c12fc)(puVar9);\n      param_1[2] = 0;\n      param_1[3] = 0;\n      *param_1 = 0;\n      param_1[1] = 0;\n    }" ({ "{") (expression_statement "(*(code *)PTR_operator_delete_004c12fc)(puVar9);" (call_expression "(*(code *)PTR_operator_delete_004c12fc)(puVar9)" (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 "(puVar9)" (( "(") (identifier "puVar9") () ")"))) (; ";")) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[3] = 0;" (assignment_expression "param_1[3] = 0" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*param_1 = 0;" (assignment_expression "*param_1 = 0" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "*param_1 = iVar2;" (assignment_expression "*param_1 = iVar2" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "iVar2")) (; ";")) (expression_statement "param_1[4] = iVar2 + iVar3;" (assignment_expression "param_1[4] = iVar2 + iVar3" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (binary_expression "iVar2 + iVar3" (identifier "iVar2") (+ "+") (identifier "iVar3"))) (; ";")) (expression_statement "param_1[2] = (int)puVar10;" (assignment_expression "param_1[2] = (int)puVar10" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(int)puVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar10"))) (; ";")) (expression_statement "param_1[3] = uVar1;" (assignment_expression "param_1[3] = uVar1" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar12 = uVar11 + 1;" (assignment_expression "uVar12 = uVar11 + 1" (identifier "uVar12") (= "=") (binary_expression "uVar11 + 1" (identifier "uVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar1 = uVar12;" (assignment_expression "uVar1 = uVar12" (identifier "uVar1") (= "=") (identifier "uVar12")) (; ";")) (if_statement "if ((int)uVar12 < 0) {\n    uVar1 = uVar11 + 0x20;\n  }" (if "if") (parenthesized_expression "((int)uVar12 < 0)" (( "(") (binary_expression "(int)uVar12 < 0" (cast_expression "(int)uVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar12")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    uVar1 = uVar11 + 0x20;\n  }" ({ "{") (expression_statement "uVar1 = uVar11 + 0x20;" (assignment_expression "uVar1 = uVar11 + 0x20" (identifier "uVar1") (= "=") (binary_expression "uVar11 + 0x20" (identifier "uVar11") (+ "+") (number_literal "0x20"))) (; ";")) (} "}"))) (expression_statement "puVar7 = puVar9 + ((int)uVar1 >> 5);" (assignment_expression "puVar7 = puVar9 + ((int)uVar1 >> 5)" (identifier "puVar7") (= "=") (binary_expression "puVar9 + ((int)uVar1 >> 5)" (identifier "puVar9") (+ "+") (parenthesized_expression "((int)uVar1 >> 5)" (( "(") (binary_expression "(int)uVar1 >> 5" (cast_expression "(int)uVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar1")) (>> ">>") (number_literal "5")) () ")")))) (; ";")) (if_statement "if ((int)uVar12 < 0) {\n    uVar1 = ((uVar12 & 0x8000001f) - 1 | 0xffffffe0) + 1;\n  }\n  else {\n    uVar1 = uVar12 & 0x8000001f;\n  }" (if "if") (parenthesized_expression "((int)uVar12 < 0)" (( "(") (binary_expression "(int)uVar12 < 0" (cast_expression "(int)uVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar12")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    uVar1 = ((uVar12 & 0x8000001f) - 1 | 0xffffffe0) + 1;\n  }" ({ "{") (expression_statement "uVar1 = ((uVar12 & 0x8000001f) - 1 | 0xffffffe0) + 1;" (assignment_expression "uVar1 = ((uVar12 & 0x8000001f) - 1 | 0xffffffe0) + 1" (identifier "uVar1") (= "=") (binary_expression "((uVar12 & 0x8000001f) - 1 | 0xffffffe0) + 1" (parenthesized_expression "((uVar12 & 0x8000001f) - 1 | 0xffffffe0)" (( "(") (binary_expression "(uVar12 & 0x8000001f) - 1 | 0xffffffe0" (binary_expression "(uVar12 & 0x8000001f) - 1" (parenthesized_expression "(uVar12 & 0x8000001f)" (( "(") (binary_expression "uVar12 & 0x8000001f" (identifier "uVar12") (& "&") (number_literal "0x8000001f")) () ")")) (- "-") (number_literal "1")) (| "|") (number_literal "0xffffffe0")) () ")")) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n    uVar1 = uVar12 & 0x8000001f;\n  }" (else "else") (compound_statement "{\n    uVar1 = uVar12 & 0x8000001f;\n  }" ({ "{") (expression_statement "uVar1 = uVar12 & 0x8000001f;" (assignment_expression "uVar1 = uVar12 & 0x8000001f" (identifier "uVar1") (= "=") (binary_expression "uVar12 & 0x8000001f" (identifier "uVar12") (& "&") (number_literal "0x8000001f"))) (; ";")) (} "}")))) (if_statement "if ((int)uVar1 < 0) {\n    uVar1 = uVar1 + 0x20;\n    puVar7 = puVar7 + -1;\n  }" (if "if") (parenthesized_expression "((int)uVar1 < 0)" (( "(") (binary_expression "(int)uVar1 < 0" (cast_expression "(int)uVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar1")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    uVar1 = uVar1 + 0x20;\n    puVar7 = puVar7 + -1;\n  }" ({ "{") (expression_statement "uVar1 = uVar1 + 0x20;" (assignment_expression "uVar1 = uVar1 + 0x20" (identifier "uVar1") (= "=") (binary_expression "uVar1 + 0x20" (identifier "uVar1") (+ "+") (number_literal "0x20"))) (; ";")) (expression_statement "puVar7 = puVar7 + -1;" (assignment_expression "puVar7 = puVar7 + -1" (identifier "puVar7") (= "=") (binary_expression "puVar7 + -1" (identifier "puVar7") (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (expression_statement "iVar3 = ((int)puVar9 - (int)param_2) * 8 + (uVar11 - param_3);" (assignment_expression "iVar3 = ((int)puVar9 - (int)param_2) * 8 + (uVar11 - param_3)" (identifier "iVar3") (= "=") (binary_expression "((int)puVar9 - (int)param_2) * 8 + (uVar11 - param_3)" (binary_expression "((int)puVar9 - (int)param_2) * 8" (parenthesized_expression "((int)puVar9 - (int)param_2)" (( "(") (binary_expression "(int)puVar9 - (int)param_2" (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9")) (- "-") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2"))) () ")")) (* "*") (number_literal "8")) (+ "+") (parenthesized_expression "(uVar11 - param_3)" (( "(") (binary_expression "uVar11 - param_3" (identifier "uVar11") (- "-") (identifier "param_3")) () ")")))) (; ";")) (expression_statement "uVar8 = uVar11;" (assignment_expression "uVar8 = uVar11" (identifier "uVar8") (= "=") (identifier "uVar11")) (; ";")) (expression_statement "puVar10 = puVar9;" (assignment_expression "puVar10 = puVar9" (identifier "puVar10") (= "=") (identifier "puVar9")) (; ";")) (if_statement "if (0 < iVar3) {\n    do {\n      while (uVar1 != 0) {\n        uVar1 = uVar1 - 1;\n        uVar6 = 1 << (uVar1 & 0x1f);\n        if (uVar8 == 0) goto LAB_001847b0;\nLAB_00184770:\n        uVar8 = uVar8 - 1;\n        uVar5 = *puVar7;\n        if ((1 << (uVar8 & 0x1f) & *puVar10) == 0) goto LAB_001847cc;\nLAB_00184788:\n        iVar3 = iVar3 + -1;\n        *puVar7 = uVar6 | uVar5;\n        if (iVar3 == 0) goto LAB_001847e0;\n      }\n      puVar7 = puVar7 + -1;\n      uVar6 = 0x80000000;\n      uVar1 = 0x1f;\n      if (uVar8 != 0) goto LAB_00184770;\nLAB_001847b0:\n      puVar10 = puVar10 + -1;\n      uVar5 = *puVar7;\n      uVar8 = 0x1f;\n      if ((*puVar10 & 0x80000000) != 0) goto LAB_00184788;\nLAB_001847cc:\n      iVar3 = iVar3 + -1;\n      *puVar7 = ~uVar6 & uVar5;\n    } while (iVar3 != 0);\n  }" (if "if") (parenthesized_expression "(0 < iVar3)" (( "(") (binary_expression "0 < iVar3" (number_literal "0") (< "<") (identifier "iVar3")) () ")")) (compound_statement "{\n    do {\n      while (uVar1 != 0) {\n        uVar1 = uVar1 - 1;\n        uVar6 = 1 << (uVar1 & 0x1f);\n        if (uVar8 == 0) goto LAB_001847b0;\nLAB_00184770:\n        uVar8 = uVar8 - 1;\n        uVar5 = *puVar7;\n        if ((1 << (uVar8 & 0x1f) & *puVar10) == 0) goto LAB_001847cc;\nLAB_00184788:\n        iVar3 = iVar3 + -1;\n        *puVar7 = uVar6 | uVar5;\n        if (iVar3 == 0) goto LAB_001847e0;\n      }\n      puVar7 = puVar7 + -1;\n      uVar6 = 0x80000000;\n      uVar1 = 0x1f;\n      if (uVar8 != 0) goto LAB_00184770;\nLAB_001847b0:\n      puVar10 = puVar10 + -1;\n      uVar5 = *puVar7;\n      uVar8 = 0x1f;\n      if ((*puVar10 & 0x80000000) != 0) goto LAB_00184788;\nLAB_001847cc:\n      iVar3 = iVar3 + -1;\n      *puVar7 = ~uVar6 & uVar5;\n    } while (iVar3 != 0);\n  }" ({ "{") (do_statement "do {\n      while (uVar1 != 0) {\n        uVar1 = uVar1 - 1;\n        uVar6 = 1 << (uVar1 & 0x1f);\n        if (uVar8 == 0) goto LAB_001847b0;\nLAB_00184770:\n        uVar8 = uVar8 - 1;\n        uVar5 = *puVar7;\n        if ((1 << (uVar8 & 0x1f) & *puVar10) == 0) goto LAB_001847cc;\nLAB_00184788:\n        iVar3 = iVar3 + -1;\n        *puVar7 = uVar6 | uVar5;\n        if (iVar3 == 0) goto LAB_001847e0;\n      }\n      puVar7 = puVar7 + -1;\n      uVar6 = 0x80000000;\n      uVar1 = 0x1f;\n      if (uVar8 != 0) goto LAB_00184770;\nLAB_001847b0:\n      puVar10 = puVar10 + -1;\n      uVar5 = *puVar7;\n      uVar8 = 0x1f;\n      if ((*puVar10 & 0x80000000) != 0) goto LAB_00184788;\nLAB_001847cc:\n      iVar3 = iVar3 + -1;\n      *puVar7 = ~uVar6 & uVar5;\n    } while (iVar3 != 0);" (do "do") (compound_statement "{\n      while (uVar1 != 0) {\n        uVar1 = uVar1 - 1;\n        uVar6 = 1 << (uVar1 & 0x1f);\n        if (uVar8 == 0) goto LAB_001847b0;\nLAB_00184770:\n        uVar8 = uVar8 - 1;\n        uVar5 = *puVar7;\n        if ((1 << (uVar8 & 0x1f) & *puVar10) == 0) goto LAB_001847cc;\nLAB_00184788:\n        iVar3 = iVar3 + -1;\n        *puVar7 = uVar6 | uVar5;\n        if (iVar3 == 0) goto LAB_001847e0;\n      }\n      puVar7 = puVar7 + -1;\n      uVar6 = 0x80000000;\n      uVar1 = 0x1f;\n      if (uVar8 != 0) goto LAB_00184770;\nLAB_001847b0:\n      puVar10 = puVar10 + -1;\n      uVar5 = *puVar7;\n      uVar8 = 0x1f;\n      if ((*puVar10 & 0x80000000) != 0) goto LAB_00184788;\nLAB_001847cc:\n      iVar3 = iVar3 + -1;\n      *puVar7 = ~uVar6 & uVar5;\n    }" ({ "{") (while_statement "while (uVar1 != 0) {\n        uVar1 = uVar1 - 1;\n        uVar6 = 1 << (uVar1 & 0x1f);\n        if (uVar8 == 0) goto LAB_001847b0;\nLAB_00184770:\n        uVar8 = uVar8 - 1;\n        uVar5 = *puVar7;\n        if ((1 << (uVar8 & 0x1f) & *puVar10) == 0) goto LAB_001847cc;\nLAB_00184788:\n        iVar3 = iVar3 + -1;\n        *puVar7 = uVar6 | uVar5;\n        if (iVar3 == 0) goto LAB_001847e0;\n      }" (while "while") (parenthesized_expression "(uVar1 != 0)" (( "(") (binary_expression "uVar1 != 0" (identifier "uVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar1 = uVar1 - 1;\n        uVar6 = 1 << (uVar1 & 0x1f);\n        if (uVar8 == 0) goto LAB_001847b0;\nLAB_00184770:\n        uVar8 = uVar8 - 1;\n        uVar5 = *puVar7;\n        if ((1 << (uVar8 & 0x1f) & *puVar10) == 0) goto LAB_001847cc;\nLAB_00184788:\n        iVar3 = iVar3 + -1;\n        *puVar7 = uVar6 | uVar5;\n        if (iVar3 == 0) goto LAB_001847e0;\n      }" ({ "{") (expression_statement "uVar1 = uVar1 - 1;" (assignment_expression "uVar1 = uVar1 - 1" (identifier "uVar1") (= "=") (binary_expression "uVar1 - 1" (identifier "uVar1") (- "-") (number_literal "1"))) (; ";")) (expression_statement "uVar6 = 1 << (uVar1 & 0x1f);" (assignment_expression "uVar6 = 1 << (uVar1 & 0x1f)" (identifier "uVar6") (= "=") (binary_expression "1 << (uVar1 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "(uVar1 & 0x1f)" (( "(") (binary_expression "uVar1 & 0x1f" (identifier "uVar1") (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (if_statement "if (uVar8 == 0) goto LAB_001847b0;" (if "if") (parenthesized_expression "(uVar8 == 0)" (( "(") (binary_expression "uVar8 == 0" (identifier "uVar8") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001847b0;" (goto "goto") (statement_identifier "LAB_001847b0") (; ";"))) (labeled_statement "LAB_00184770:\n        uVar8 = uVar8 - 1;" (statement_identifier "LAB_00184770") (: ":") (expression_statement "uVar8 = uVar8 - 1;" (assignment_expression "uVar8 = uVar8 - 1" (identifier "uVar8") (= "=") (binary_expression "uVar8 - 1" (identifier "uVar8") (- "-") (number_literal "1"))) (; ";"))) (expression_statement "uVar5 = *puVar7;" (assignment_expression "uVar5 = *puVar7" (identifier "uVar5") (= "=") (pointer_expression "*puVar7" (* "*") (identifier "puVar7"))) (; ";")) (if_statement "if ((1 << (uVar8 & 0x1f) & *puVar10) == 0) goto LAB_001847cc;" (if "if") (parenthesized_expression "((1 << (uVar8 & 0x1f) & *puVar10) == 0)" (( "(") (binary_expression "(1 << (uVar8 & 0x1f) & *puVar10) == 0" (parenthesized_expression "(1 << (uVar8 & 0x1f) & *puVar10)" (( "(") (binary_expression "1 << (uVar8 & 0x1f) & *puVar10" (binary_expression "1 << (uVar8 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "(uVar8 & 0x1f)" (( "(") (binary_expression "uVar8 & 0x1f" (identifier "uVar8") (& "&") (number_literal "0x1f")) () ")"))) (& "&") (pointer_expression "*puVar10" (* "*") (identifier "puVar10"))) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001847cc;" (goto "goto") (statement_identifier "LAB_001847cc") (; ";"))) (labeled_statement "LAB_00184788:\n        iVar3 = iVar3 + -1;" (statement_identifier "LAB_00184788") (: ":") (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + -1" (identifier "iVar3") (+ "+") (number_literal "-1"))) (; ";"))) (expression_statement "*puVar7 = uVar6 | uVar5;" (assignment_expression "*puVar7 = uVar6 | uVar5" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (binary_expression "uVar6 | uVar5" (identifier "uVar6") (| "|") (identifier "uVar5"))) (; ";")) (if_statement "if (iVar3 == 0) goto LAB_001847e0;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001847e0;" (goto "goto") (statement_identifier "LAB_001847e0") (; ";"))) (} "}"))) (expression_statement "puVar7 = puVar7 + -1;" (assignment_expression "puVar7 = puVar7 + -1" (identifier "puVar7") (= "=") (binary_expression "puVar7 + -1" (identifier "puVar7") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar6 = 0x80000000;" (assignment_expression "uVar6 = 0x80000000" (identifier "uVar6") (= "=") (number_literal "0x80000000")) (; ";")) (expression_statement "uVar1 = 0x1f;" (assignment_expression "uVar1 = 0x1f" (identifier "uVar1") (= "=") (number_literal "0x1f")) (; ";")) (if_statement "if (uVar8 != 0) goto LAB_00184770;" (if "if") (parenthesized_expression "(uVar8 != 0)" (( "(") (binary_expression "uVar8 != 0" (identifier "uVar8") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00184770;" (goto "goto") (statement_identifier "LAB_00184770") (; ";"))) (labeled_statement "LAB_001847b0:\n      puVar10 = puVar10 + -1;" (statement_identifier "LAB_001847b0") (: ":") (expression_statement "puVar10 = puVar10 + -1;" (assignment_expression "puVar10 = puVar10 + -1" (identifier "puVar10") (= "=") (binary_expression "puVar10 + -1" (identifier "puVar10") (+ "+") (number_literal "-1"))) (; ";"))) (expression_statement "uVar5 = *puVar7;" (assignment_expression "uVar5 = *puVar7" (identifier "uVar5") (= "=") (pointer_expression "*puVar7" (* "*") (identifier "puVar7"))) (; ";")) (expression_statement "uVar8 = 0x1f;" (assignment_expression "uVar8 = 0x1f" (identifier "uVar8") (= "=") (number_literal "0x1f")) (; ";")) (if_statement "if ((*puVar10 & 0x80000000) != 0) goto LAB_00184788;" (if "if") (parenthesized_expression "((*puVar10 & 0x80000000) != 0)" (( "(") (binary_expression "(*puVar10 & 0x80000000) != 0" (parenthesized_expression "(*puVar10 & 0x80000000)" (( "(") (binary_expression "*puVar10 & 0x80000000" (pointer_expression "*puVar10" (* "*") (identifier "puVar10")) (& "&") (number_literal "0x80000000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00184788;" (goto "goto") (statement_identifier "LAB_00184788") (; ";"))) (labeled_statement "LAB_001847cc:\n      iVar3 = iVar3 + -1;" (statement_identifier "LAB_001847cc") (: ":") (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + -1" (identifier "iVar3") (+ "+") (number_literal "-1"))) (; ";"))) (expression_statement "*puVar7 = ~uVar6 & uVar5;" (assignment_expression "*puVar7 = ~uVar6 & uVar5" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (binary_expression "~uVar6 & uVar5" (unary_expression "~uVar6" (~ "~") (identifier "uVar6")) (& "&") (identifier "uVar5"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_001847e0:\n  uVar1 = 1 << (param_3 & 0x1f);" (statement_identifier "LAB_001847e0") (: ":") (expression_statement "uVar1 = 1 << (param_3 & 0x1f);" (assignment_expression "uVar1 = 1 << (param_3 & 0x1f)" (identifier "uVar1") (= "=") (binary_expression "1 << (param_3 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "(param_3 & 0x1f)" (( "(") (binary_expression "param_3 & 0x1f" (identifier "param_3") (& "&") (number_literal "0x1f")) () ")")))) (; ";"))) (if_statement "if (param_4 == 0) {\n    *param_2 = ~uVar1 & *param_2;\n  }\n  else {\n    *param_2 = uVar1 | *param_2;\n  }" (if "if") (parenthesized_expression "(param_4 == 0)" (( "(") (binary_expression "param_4 == 0" (identifier "param_4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    *param_2 = ~uVar1 & *param_2;\n  }" ({ "{") (expression_statement "*param_2 = ~uVar1 & *param_2;" (assignment_expression "*param_2 = ~uVar1 & *param_2" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (binary_expression "~uVar1 & *param_2" (unary_expression "~uVar1" (~ "~") (identifier "uVar1")) (& "&") (pointer_expression "*param_2" (* "*") (identifier "param_2")))) (; ";")) (} "}")) (else_clause "else {\n    *param_2 = uVar1 | *param_2;\n  }" (else "else") (compound_statement "{\n    *param_2 = uVar1 | *param_2;\n  }" ({ "{") (expression_statement "*param_2 = uVar1 | *param_2;" (assignment_expression "*param_2 = uVar1 | *param_2" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (binary_expression "uVar1 | *param_2" (identifier "uVar1") (| "|") (pointer_expression "*param_2" (* "*") (identifier "param_2")))) (; ";")) (} "}")))) (if_statement "if (uVar11 != 0x1f) {\n    param_1[3] = uVar12;\n    return;\n  }" (if "if") (parenthesized_expression "(uVar11 != 0x1f)" (( "(") (binary_expression "uVar11 != 0x1f" (identifier "uVar11") (!= "!=") (number_literal "0x1f")) () ")")) (compound_statement "{\n    param_1[3] = uVar12;\n    return;\n  }" ({ "{") (expression_statement "param_1[3] = uVar12;" (assignment_expression "param_1[3] = uVar12" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar12")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "param_1[3] = 0;" (assignment_expression "param_1[3] = 0" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[2] = (int)(puVar9 + 1);" (assignment_expression "param_1[2] = (int)(puVar9 + 1)" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(int)(puVar9 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(puVar9 + 1)" (( "(") (binary_expression "puVar9 + 1" (identifier "puVar9") (+ "+") (number_literal "1")) () ")")))) (; ";")) (return_statement "return;" (return "return") (; ";")) (ERROR "}" (} "}"))
(translation_unit (declaration type: (primitive_type) (ERROR (identifier)) declarator: (identifier) (ERROR (primitive_type)) (ERROR (identifier) (identifier) (primitive_type) (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)))) (identifier)) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (pointer_expression argument: (identifier)))) right: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))) (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) 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 (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (unary_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (labeled_statement label: (statement_identifier) (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (unary_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) right: (number_literal)) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (pointer_expression argument: (identifier)))) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (unary_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)) right: (number_literal))) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) right: (number_literal)) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (pointer_expression argument: (identifier)))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (unary_expression argument: (identifier)) right: (identifier))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (unary_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (return_statement))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (return_statement) (ERROR))

/* std::vector<bool, std::allocator<bool> >::MASKED(std::_Bit_iterator, bool) */

void std::vector<bool,std::allocator<bool>>::MASKED
               (int *param_1,uint *param_2,uint param_3,int param_4)

{
  uint uVar1;
  int iVar2;
  int iVar3;
  int iVar4;
  uint uVar5;
  uint uVar6;
  uint *puVar7;
  uint uVar8;
  uint *puVar9;
  uint *puVar10;
  uint uVar11;
  uint uVar12;
  
  puVar9 = (uint *)param_1[2];
  uVar11 = param_1[3];
  if (puVar9 == (uint *)param_1[4]) {
    iVar3 = ((int)puVar9 - *param_1) * 8 + uVar11;
    uVar11 = iVar3 - param_1[1];
    if (param_1[1] + 0x7fffffe0 == iVar3) {
      (*(code *)PTR___throw_length_error_004c1e74)(PTR_s__s_004c1a50 + 0xd54);
      return;
    }
    uVar1 = uVar11 * 2;
    if (uVar11 == 0) {
      iVar3 = 4;
    }
    else if (uVar1 < uVar11) {
      iVar3 = 0xffffffc;
    }
    else {
      uVar11 = 0x7fffffe0;
      if (uVar1 < 0x7fffffe1) {
        uVar11 = uVar1;
      }
      iVar3 = (uVar11 + 0x1f >> 5) << 2;
    }
    iVar2 = (*(code *)PTR_operator_new_004c13a8)(iVar3);
    puVar9 = (uint *)*param_1;
    if (param_2 != puVar9) {
      (*(code *)PTR_memmove_004c5af8)(iVar2,puVar9,(int)param_2 - (int)puVar9);
    }
    puVar7 = (uint *)(iVar2 + ((int)param_2 - (int)puVar9));
    if ((int)param_3 < 1) {
      uVar11 = 1;
      uVar1 = 1;
      puVar10 = puVar7;
    }
    else {
      uVar12 = 0;
      uVar8 = param_3;
      puVar10 = param_2;
      do {
        while( true ) {
          uVar11 = 1 << (uVar12 & 0x1f);
          if ((uVar11 & *puVar10) != 0) break;
          *puVar7 = ~uVar11 & *puVar7;
          if (uVar12 != 0x1f) goto LAB_00184984;
LAB_001849c0:
          uVar8 = uVar8 - 1;
          puVar10 = puVar10 + 1;
          puVar7 = puVar7 + 1;
          uVar11 = 1;
          uVar1 = 1;
          uVar6 = 0;
          uVar12 = uVar6;
          if (uVar8 == 0) goto LAB_001849dc;
        }
        *puVar7 = uVar11 | *puVar7;
        if (uVar12 == 0x1f) goto LAB_001849c0;
LAB_00184984:
        uVar6 = uVar12 + 1;
        uVar8 = uVar8 - 1;
        uVar1 = uVar12 + 2;
        uVar11 = 1 << (uVar6 & 0x1f);
        uVar12 = uVar6;
      } while (uVar8 != 0);
LAB_001849dc:
      puVar10 = puVar7;
      if (uVar6 == 0x1f) {
        uVar1 = 0;
        puVar10 = puVar7 + 1;
      }
    }
    if (param_4 == 0) {
      uVar11 = ~uVar11 & *puVar7;
    }
    else {
      uVar11 = *puVar7 | uVar11;
    }
    iVar4 = (param_1[2] - (int)param_2) * 8 + (param_1[3] - param_3);
    *puVar7 = uVar11;
    if (0 < iVar4) {
      do {
        while( true ) {
          uVar11 = 1 << (uVar1 & 0x1f);
          if ((1 << (param_3 & 0x1f) & *param_2) != 0) break;
          *puVar10 = ~uVar11 & *puVar10;
          if (param_3 != 0x1f) goto LAB_00184a30;
LAB_00184a6c:
          param_2 = param_2 + 1;
          param_3 = 0;
          if (uVar1 != 0x1f) goto LAB_00184a38;
LAB_00184a78:
          iVar4 = iVar4 + -1;
          puVar10 = puVar10 + 1;
          uVar1 = 0;
          if (iVar4 == 0) goto LAB_00184a88;
        }
        *puVar10 = *puVar10 | uVar11;
        if (param_3 == 0x1f) goto LAB_00184a6c;
LAB_00184a30:
        param_3 = param_3 + 1;
        if (uVar1 == 0x1f) goto LAB_00184a78;
LAB_00184a38:
        iVar4 = iVar4 + -1;
        uVar1 = uVar1 + 1;
      } while (iVar4 != 0);
    }
LAB_00184a88:
    if (puVar9 != (uint *)0x0) {
      (*(code *)PTR_operator_delete_004c12fc)(puVar9);
      param_1[2] = 0;
      param_1[3] = 0;
      *param_1 = 0;
      param_1[1] = 0;
    }
    *param_1 = iVar2;
    param_1[4] = iVar2 + iVar3;
    param_1[2] = (int)puVar10;
    param_1[3] = uVar1;
    param_1[1] = 0;
    return;
  }
  uVar12 = uVar11 + 1;
  uVar1 = uVar12;
  if ((int)uVar12 < 0) {
    uVar1 = uVar11 + 0x20;
  }
  puVar7 = puVar9 + ((int)uVar1 >> 5);
  if ((int)uVar12 < 0) {
    uVar1 = ((uVar12 & 0x8000001f) - 1 | 0xffffffe0) + 1;
  }
  else {
    uVar1 = uVar12 & 0x8000001f;
  }
  if ((int)uVar1 < 0) {
    uVar1 = uVar1 + 0x20;
    puVar7 = puVar7 + -1;
  }
  iVar3 = ((int)puVar9 - (int)param_2) * 8 + (uVar11 - param_3);
  uVar8 = uVar11;
  puVar10 = puVar9;
  if (0 < iVar3) {
    do {
      while (uVar1 != 0) {
        uVar1 = uVar1 - 1;
        uVar6 = 1 << (uVar1 & 0x1f);
        if (uVar8 == 0) goto LAB_001847b0;
LAB_00184770:
        uVar8 = uVar8 - 1;
        uVar5 = *puVar7;
        if ((1 << (uVar8 & 0x1f) & *puVar10) == 0) goto LAB_001847cc;
LAB_00184788:
        iVar3 = iVar3 + -1;
        *puVar7 = uVar6 | uVar5;
        if (iVar3 == 0) goto LAB_001847e0;
      }
      puVar7 = puVar7 + -1;
      uVar6 = 0x80000000;
      uVar1 = 0x1f;
      if (uVar8 != 0) goto LAB_00184770;
LAB_001847b0:
      puVar10 = puVar10 + -1;
      uVar5 = *puVar7;
      uVar8 = 0x1f;
      if ((*puVar10 & 0x80000000) != 0) goto LAB_00184788;
LAB_001847cc:
      iVar3 = iVar3 + -1;
      *puVar7 = ~uVar6 & uVar5;
    } while (iVar3 != 0);
  }
LAB_001847e0:
  uVar1 = 1 << (param_3 & 0x1f);
  if (param_4 == 0) {
    *param_2 = ~uVar1 & *param_2;
  }
  else {
    *param_2 = uVar1 | *param_2;
  }
  if (uVar11 != 0x1f) {
    param_1[3] = uVar12;
    return;
  }
  param_1[3] = 0;
  param_1[2] = (int)(puVar9 + 1);
  return;
}

