
/* DWARF original name: def_section_contents<64, false>
   DWARF original prototype: void def_section_contents<64,_false>(Versions * this, Stringpool *
   dynpool, uchar * * pp, uint * psize, uint * pentries) */

void __thiscall
gold::Versions::def_section_contents<64,_false>
          (Versions *this,Stringpool *dynpool,uchar **pp,uint *psize,uint *pentries)

{
  size_type *psVar1;
  _Alloc_hider *p_Var2;
  undefined *puVar3;
  int *piVar4;
  uint uVar5;
  int iVar6;
  pointer ppVVar7;
  Verdef *pVVar8;
  pointer pbVar9;
  uint uVar10;
  byte *pbVar11;
  pointer pbVar12;
  undefined4 uVar13;
  pointer ppVVar14;
  uint uVar15;
  pointer pbVar16;
  uint uVar17;
  uint uVar18;
  int *piVar19;
  int *piVar20;
  pointer ppVVar21;
  
  if (this->is_finalized_ == false) goto LAB_00264464;
  ppVVar7 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.
            _M_start;
  ppVVar14 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl
             ._M_finish;
  if (ppVVar14 == ppVVar7) {
LAB_00264448:
    uVar13 = 0x702;
    goto LAB_0026444c;
  }
  uVar18 = 0;
  do {
    pVVar8 = *ppVVar7;
    ppVVar7 = ppVVar7 + 1;
    uVar18 = uVar18 + ((int)(pVVar8->deps_).
                            super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>
                            ._M_impl._M_finish -
                       (int)(pVVar8->deps_).
                            super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>
                            ._M_impl._M_start >> 3) * 0x55555558 + 0x1c;
  } while (ppVVar14 != ppVVar7);
  piVar4 = (int *)(*(code *)PTR_operator_new___004322dc)(uVar18);
  ppVVar7 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.
            _M_start;
  ppVVar14 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl
             ._M_finish;
  if (ppVVar7 != ppVVar14) {
    uVar17 = 0;
    piVar19 = piVar4;
    ppVVar21 = ppVVar7;
    do {
      pVVar8 = *ppVVar21;
      uVar17 = uVar17 + 1;
      *(undefined2 *)piVar19 = 0x100;
      uVar5 = (uint)pVVar8->is_base_;
      if (pVVar8->is_weak_ != false) {
        uVar5 = uVar5 | 2;
      }
      if (pVVar8->is_info_ != false) {
        uVar5 = uVar5 | 4;
      }
      uVar10 = (pVVar8->super_Version_base).index_;
      *(short *)((int)piVar19 + 2) = (short)(uVar5 << 8);
      if (uVar10 == 0xffffffff) {
        (*(code *)PTR_do_gold_unreachable_004323c4)
                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_s__0043226c + 0x1a58);
        goto LAB_00264448;
      }
      pbVar16 = (pVVar8->deps_).
                super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>
                ._M_impl._M_start;
      pbVar9 = (pVVar8->deps_).
               super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>
               ._M_impl._M_finish;
      uVar5 = 0;
      pbVar11 = (byte *)pVVar8->name_;
      *(ushort *)(piVar19 + 1) = (ushort)((uVar10 & 0xff) << 8) | (ushort)(uVar10 >> 8) & 0xff;
      uVar10 = ((int)pbVar9 - (int)pbVar16 >> 3) * -0x55555555 + 1;
      *(ushort *)((int)piVar19 + 6) = (ushort)((uVar10 & 0xff) << 8) | (ushort)(uVar10 >> 8) & 0xff;
      while (uVar15 = (uint)*pbVar11, uVar15 != 0) {
        while( true ) {
          pbVar11 = pbVar11 + 1;
          uVar5 = uVar15 + uVar5 * 0x10;
          if ((uVar5 & 0xf0000000) == 0) break;
          uVar5 = (uVar5 & 0xf0000000) >> 0x18 ^ uVar5 & 0xfffffff;
          uVar15 = (uint)*pbVar11;
          if (uVar15 == 0) goto LAB_002642bc;
        }
      }
LAB_002642bc:
      piVar19[3] = 0x14000000;
      piVar19[2] = (((uVar5 >> 0x10) << 0x18 | (uVar5 >> 0x18) << 0x10) >> 0x10) +
                   ((uVar5 & 0xff) << 8 | uVar5 >> 8 & 0xff) * 0x10000;
      puVar3 = PTR_get_offset_004323e0;
      if (uVar17 < (uint)((int)ppVVar14 - (int)ppVVar7 >> 2)) {
        uVar5 = uVar10 * 8 + 0x14;
        iVar6 = (((uVar5 >> 0x10) << 0x18 | (uVar5 >> 0x18) << 0x10) >> 0x10) +
                ((uVar5 & 0xff) << 8 | uVar5 >> 8 & 0xff) * 0x10000;
      }
      else {
        iVar6 = 0;
      }
      piVar19[4] = iVar6;
      uVar5 = (*(code *)puVar3)(dynpool);
      piVar20 = piVar19 + 7;
      pbVar16 = (pVVar8->deps_).
                super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>
                ._M_impl._M_start;
      pbVar9 = (pVVar8->deps_).
               super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>
               ._M_impl._M_finish;
      piVar19[5] = (((uVar5 >> 0x10) << 0x18 | (uVar5 >> 0x18) << 0x10) >> 0x10) +
                   ((uVar5 & 0xff) << 8 | uVar5 >> 8 & 0xff) * 0x10000;
      if (pbVar16 == pbVar9) {
        ppVVar14 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.
                   _M_impl._M_finish;
        piVar19[6] = 0;
        if (ppVVar14 == ppVVar21 + 1) goto LAB_002643bc;
      }
      else {
        uVar5 = 0;
        piVar19[6] = 0x8000000;
        piVar19 = piVar20;
        do {
          p_Var2 = &pbVar16->_M_dataplus;
          piVar20 = piVar19 + 2;
          psVar1 = &pbVar16->_M_string_length;
          uVar5 = uVar5 + 1;
          pbVar16 = pbVar16 + 1;
          uVar10 = (*(code *)PTR_get_offset_with_length_004351bc)(dynpool,p_Var2->_M_p,*psVar1);
          pbVar12 = (pVVar8->deps_).
                    super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>
                    ._M_impl._M_finish;
          pbVar9 = (pVVar8->deps_).
                   super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>
                   ._M_impl._M_start;
          *piVar19 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +
                     ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;
          iVar6 = 0x8000000;
          if ((uint)(((int)pbVar12 - (int)pbVar9 >> 3) * -0x55555555) <= uVar5) {
            iVar6 = 0;
          }
          piVar19[1] = iVar6;
          piVar19 = piVar20;
        } while (pbVar12 != pbVar16);
        ppVVar14 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.
                   _M_impl._M_finish;
        if (ppVVar14 == ppVVar21 + 1) goto LAB_002643bc;
      }
      ppVVar21 = ppVVar21 + 1;
      ppVVar7 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.
                _M_impl._M_start;
      piVar19 = piVar20;
    } while( true );
  }
  uVar17 = 0;
LAB_002643c4:
  uVar13 = 0x71c;
  if (uVar18 == uVar17) {
    ppVVar14 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.
               _M_impl._M_start;
    *pp = (uchar *)piVar4;
    *psize = uVar18;
    *pentries = (int)ppVVar7 - (int)ppVVar14 >> 2;
    return;
  }
LAB_0026444c:
  do {
    (*(code *)PTR_do_gold_unreachable_004323c4)
              (PTR_s__0043226c + 0x13e0,uVar13,PTR_s__0043226c + 0x1808);
LAB_00264464:
    uVar13 = 0x701;
  } while( true );
LAB_002643bc:
  ppVVar7 = ppVVar21 + 1;
  uVar17 = (int)piVar20 - (int)piVar4;
  goto LAB_002643c4;
}



/* void gold::Versions::def_section_contents<64, false>(gold::Stringpool_template<char> const*,
   unsigned char**, unsigned int*, unsigned int*) const */

void __thiscall
gold::Versions::def_section_contents<64,false>
          (Versions *this,Stringpool_template *param_1,uchar **param_2,uint *param_3,uint *param_4)

{
  undefined *puVar1;
  uint uVar2;
  int *piVar3;
  int iVar4;
  int iVar5;
  undefined4 *puVar6;
  uint uVar7;
  byte *pbVar8;
  undefined4 uVar9;
  int *piVar10;
  uint uVar11;
  undefined4 *puVar12;
  int iVar13;
  uint uVar14;
  uint uVar15;
  int *piVar16;
  int *piVar17;
  int *piVar18;
  int *piVar19;
  
  if (this[0x34] == (Versions)0x0) {
    uVar9 = 0x701;
    goto LAB_0026444c;
  }
  piVar3 = *(int **)this;
  if (*(int **)(this + 4) == piVar3) {
    uVar9 = 0x702;
    goto LAB_0026444c;
  }
  uVar15 = 0;
  do {
    iVar4 = *piVar3;
    piVar3 = piVar3 + 1;
    uVar15 = uVar15 + (*(int *)(iVar4 + 0x10) - *(int *)(iVar4 + 0xc) >> 3) * 0x55555558 + 0x1c;
  } while (*(int **)(this + 4) != piVar3);
  piVar3 = (int *)(*(code *)PTR_operator_new___004322dc)(uVar15);
  piVar18 = *(int **)this;
  piVar10 = *(int **)(this + 4);
  if (piVar18 != piVar10) {
    uVar14 = 0;
    piVar16 = piVar3;
    piVar19 = piVar18;
    do {
      iVar4 = *piVar19;
      uVar14 = uVar14 + 1;
      *(undefined2 *)piVar16 = 0x100;
      uVar2 = (uint)*(byte *)(iVar4 + 0x18);
      if (*(char *)(iVar4 + 0x19) != '\0') {
        uVar2 = uVar2 | 2;
      }
      if (*(char *)(iVar4 + 0x1a) != '\0') {
        uVar2 = uVar2 | 4;
      }
      uVar7 = *(uint *)(iVar4 + 4);
      *(short *)((int)piVar16 + 2) = (short)(uVar2 << 8);
      if (uVar7 == 0xffffffff) {
        (*(code *)PTR_do_gold_unreachable_004323c4)
                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_DAT_0043226c + 0x1a58);
        return;
      }
      iVar13 = *(int *)(iVar4 + 0xc);
      iVar5 = *(int *)(iVar4 + 0x10);
      uVar2 = 0;
      pbVar8 = *(byte **)(iVar4 + 8);
      *(ushort *)(piVar16 + 1) = (ushort)((uVar7 & 0xff) << 8) | (ushort)(uVar7 >> 8) & 0xff;
      uVar7 = (iVar5 - iVar13 >> 3) * -0x55555555 + 1;
      *(ushort *)((int)piVar16 + 6) = (ushort)((uVar7 & 0xff) << 8) | (ushort)(uVar7 >> 8) & 0xff;
      while (uVar11 = (uint)*pbVar8, uVar11 != 0) {
        while( true ) {
          pbVar8 = pbVar8 + 1;
          uVar2 = uVar11 + uVar2 * 0x10;
          if ((uVar2 & 0xf0000000) == 0) break;
          uVar2 = (uVar2 & 0xf0000000) >> 0x18 ^ uVar2 & 0xfffffff;
          uVar11 = (uint)*pbVar8;
          if (uVar11 == 0) goto LAB_002642bc;
        }
      }
LAB_002642bc:
      piVar16[3] = 0x14000000;
      piVar16[2] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +
                   ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;
      puVar1 = PTR_get_offset_004323e0;
      if (uVar14 < (uint)((int)piVar10 - (int)piVar18 >> 2)) {
        uVar2 = uVar7 * 8 + 0x14;
        iVar5 = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +
                ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;
      }
      else {
        iVar5 = 0;
      }
      piVar16[4] = iVar5;
      uVar2 = (*(code *)puVar1)(param_1);
      piVar17 = piVar16 + 7;
      puVar12 = *(undefined4 **)(iVar4 + 0xc);
      puVar6 = *(undefined4 **)(iVar4 + 0x10);
      piVar16[5] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +
                   ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;
      if (puVar12 == puVar6) {
        piVar10 = *(int **)(this + 4);
        piVar16[6] = 0;
        if (piVar10 == piVar19 + 1) goto LAB_002643bc;
      }
      else {
        uVar2 = 0;
        piVar16[6] = 0x8000000;
        piVar18 = piVar17;
        do {
          uVar9 = *puVar12;
          piVar17 = piVar18 + 2;
          puVar6 = puVar12 + 1;
          uVar2 = uVar2 + 1;
          puVar12 = puVar12 + 6;
          uVar7 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar9,*puVar6);
          puVar6 = *(undefined4 **)(iVar4 + 0x10);
          iVar13 = *(int *)(iVar4 + 0xc);
          *piVar18 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +
                     ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;
          iVar5 = 0x8000000;
          if ((uint)(((int)puVar6 - iVar13 >> 3) * -0x55555555) <= uVar2) {
            iVar5 = 0;
          }
          piVar18[1] = iVar5;
          piVar18 = piVar17;
        } while (puVar6 != puVar12);
        piVar10 = *(int **)(this + 4);
        if (piVar10 == piVar19 + 1) goto LAB_002643bc;
      }
      piVar19 = piVar19 + 1;
      piVar18 = *(int **)this;
      piVar16 = piVar17;
    } while( true );
  }
  uVar14 = 0;
  goto LAB_002643c4;
LAB_002643bc:
  piVar18 = piVar19 + 1;
  uVar14 = (int)piVar17 - (int)piVar3;
LAB_002643c4:
  uVar9 = 0x71c;
  if (uVar15 == uVar14) {
    iVar4 = *(int *)this;
    *param_2 = (uchar *)piVar3;
    *param_3 = uVar15;
    *param_4 = (int)piVar18 - iVar4 >> 2;
    return;
  }
LAB_0026444c:
  (*(code *)PTR_do_gold_unreachable_004323c4)
            (PTR_DAT_0043226c + 0x13e0,uVar9,PTR_DAT_0043226c + 0x1808);
  return;
}


lui gp,0x1d
addiu gp,gp,0x60a8
addu gp,gp,t9
addiu sp,sp,-0x48
lbu v0,0x34(a0)
sw gp,0x10(sp)
sw ra,0x44(sp)
sw s8,0x40(sp)
sw s7,0x3c(sp)
sw s6,0x38(sp)
sw s5,0x34(sp)
sw s4,0x30(sp)
sw s3,0x2c(sp)
sw s2,0x28(sp)
sw s1,0x24(sp)
sw s0,0x20(sp)
sw a2,0x50(sp)
beq v0,zero,0x00264464
_sw a3,0x54(sp)
lw v1,0x0(a0)
lw a2,0x4(a0)
beq a2,v1,0x00264448
_or s1,a0,zero
or s4,a1,zero
lui a1,0xaaaa
or s2,zero,zero
ori a1,a1,0xaaab
lw a0,0x0(v1)
addiu v1,v1,0x4
lw v0,0x10(a0)
lw a0,0xc(a0)
subu v0,v0,a0
sra v0,v0,0x3
mul v0,v0,a1
sll v0,v0,0x3
addiu v0,v0,0x1c
bne a2,v1,0x00264194
_addu s2,s2,v0
lw t9,-0x7ef4(gp)
jalr t9
_or a0,s2,zero
lw s8,0x0(s1)
or s7,v0,zero
lw a2,0x4(s1)
lw gp,0x10(sp)
beq s8,a2,0x00264424
_sw v0,0x1c(sp)
lui s3,0xaaaa
or s0,zero,zero
ori v1,s3,0xaaab
or v0,s8,zero
sw v1,0x18(sp)
lw s3,0x0(s8)
subu a2,a2,v0
li v0,0x100
addiu s0,s0,0x1
sh v0,0x0(s7)
sra a2,a2,0x2
lbu a0,0x19(s3)
beq a0,zero,0x00264220
_lbu v0,0x18(s3)
ori v0,v0,0x2
lbu a0,0x1a(s3)
beq a0,zero,0x00264230
_nop
ori v0,v0,0x4
lw a1,0x4(s3)
wsbh v0,v0
li a0,-0x1
beq a1,a0,0x0026442c
_sh v0,0x2(s7)
lw t2,0xc(s3)
wsbh t1,a1
lw a0,0x10(s3)
or v0,zero,zero
lw v1,0x18(sp)
lw a1,0x8(s3)
subu a0,a0,t2
sh t1,0x4(s7)
sra a0,a0,0x3
or t2,a1,zero
mul a0,a0,v1
addiu a0,a0,0x1
wsbh t1,a0
sh t1,0x6(s7)
addiu t2,t2,0x1
lbu t1,-0x1(t2)
beq t1,zero,0x002642bc
_nop
sll v0,v0,0x4
lui v1,0xf000
addu v0,t1,v0
and t1,v0,v1
beq t1,zero,0x0026427c
_srl t1,t1,0x18
addiu t2,t2,0x1
ext v0,v0,0x0,0x1c
xor v0,t1,v0
lbu t1,-0x1(t2)
bne t1,zero,0x0026428c
_nop
wsbh v0,v0
lui t1,0x1400
rotr v0,v0,0x10
sltu a2,s0,a2
sw t1,0xc(s7)
beq a2,zero,0x002643a0
_sw v0,0x8(s7)
sll v0,a0,0x3
addiu v0,v0,0x14
wsbh v0,v0
rotr v0,v0,0x10
lw t9,-0x7df0(gp)
or a0,s4,zero
jalr t9
_sw v0,0x10(s7)
addiu a1,s7,0x1c
wsbh v0,v0
lw t1,0xc(s3)
lw a0,0x10(s3)
rotr v0,v0,0x10
lw gp,0x10(sp)
beq t1,a0,0x002643a8
_sw v0,0x14(s7)
lui v0,0x800
or s6,zero,zero
sw v0,0x18(s7)
or s5,t1,zero
or s7,a1,zero
lw a1,0x0(s5)
or a0,s4,zero
lw t9,-0x5014(gp)
addiu s7,s7,0x8
lw a2,0x4(s5)
addiu s6,s6,0x1
jalr t9
_addiu s5,s5,0x18
lw a1,0x10(s3)
wsbh v0,v0
lw a0,0xc(s3)
rotr v0,v0,0x10
lw gp,0x10(sp)
subu a0,a1,a0
sw v0,-0x8(s7)
lw v0,0x18(sp)
sra a0,a0,0x3
mul a0,a0,v0
lui v0,0x800
sltu a0,s6,a0
movz v0,zero,a0
bne a1,s5,0x0026432c
_sw v0,-0x4(s7)
lw a2,0x4(s1)
addiu s8,s8,0x4
beq a2,s8,0x002643bc
_nop
b 0x002641f8
_lw v0,0x0(s1)
b 0x002642e8
_or v0,zero,zero
lw a2,0x4(s1)
addiu s8,s8,0x4
sw zero,0x18(s7)
bne a2,s8,0x00264398
_or s7,a1,zero
lw v0,0x1c(sp)
subu v1,s7,v0
bne s2,v1,0x0026444c
_li a1,0x71c
lw v1,0x50(sp)
lw v0,0x0(s1)
lw a0,0x1c(sp)
lw ra,0x44(sp)
subu a3,s8,v0
lw v0,0x58(sp)
lw s8,0x40(sp)
lw s7,0x3c(sp)
sra a3,a3,0x2
lw s6,0x38(sp)
lw s5,0x34(sp)
lw s4,0x30(sp)
lw s3,0x2c(sp)
lw s1,0x24(sp)
lw s0,0x20(sp)
sw a0,0x0(v1)
lw v1,0x54(sp)
sw s2,0x0(v1)
sw a3,0x0(v0)
lw s2,0x28(sp)
jr ra
_addiu sp,sp,0x48
b 0x002643c4
_or v1,zero,zero
lw a2,-0x7f64(gp)
li a1,0x179
lw a0,-0x7e1c(gp)
lw t9,-0x7e0c(gp)
addiu a2,a2,0x1a58
jalr t9
_addiu a0,a0,-0x4f94
li a1,0x702
lw a2,-0x7f64(gp)
lw a0,-0x7f64(gp)
lw t9,-0x7e0c(gp)
addiu a2,a2,0x1808
jalr t9
_addiu a0,a0,0x13e0
b 0x0026444c
_li a1,0x701
(translation_unit "/* void gold::Versions::def_section_contents<64, false>(gold::Stringpool_template<char> const*,\n   unsigned char**, unsigned int*, unsigned int*) const */\n\nvoid __thiscall\ngold::Versions::def_section_contents<64,false>\n          (Versions *this,Stringpool_template *param_1,uchar **param_2,uint *param_3,uint *param_4)\n\n{\n  undefined *puVar1;\n  uint uVar2;\n  int *piVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  uint uVar7;\n  byte *pbVar8;\n  undefined4 uVar9;\n  int *piVar10;\n  uint uVar11;\n  undefined4 *puVar12;\n  int iVar13;\n  uint uVar14;\n  uint uVar15;\n  int *piVar16;\n  int *piVar17;\n  int *piVar18;\n  int *piVar19;\n  \n  if (this[0x34] == (Versions)0x0) {\n    uVar9 = 0x701;\n    goto LAB_0026444c;\n  }\n  piVar3 = *(int **)this;\n  if (*(int **)(this + 4) == piVar3) {\n    uVar9 = 0x702;\n    goto LAB_0026444c;\n  }\n  uVar15 = 0;\n  do {\n    iVar4 = *piVar3;\n    piVar3 = piVar3 + 1;\n    uVar15 = uVar15 + (*(int *)(iVar4 + 0x10) - *(int *)(iVar4 + 0xc) >> 3) * 0x55555558 + 0x1c;\n  } while (*(int **)(this + 4) != piVar3);\n  piVar3 = (int *)(*(code *)PTR_operator_new___004322dc)(uVar15);\n  piVar18 = *(int **)this;\n  piVar10 = *(int **)(this + 4);\n  if (piVar18 != piVar10) {\n    uVar14 = 0;\n    piVar16 = piVar3;\n    piVar19 = piVar18;\n    do {\n      iVar4 = *piVar19;\n      uVar14 = uVar14 + 1;\n      *(undefined2 *)piVar16 = 0x100;\n      uVar2 = (uint)*(byte *)(iVar4 + 0x18);\n      if (*(char *)(iVar4 + 0x19) != '\0') {\n        uVar2 = uVar2 | 2;\n      }\n      if (*(char *)(iVar4 + 0x1a) != '\0') {\n        uVar2 = uVar2 | 4;\n      }\n      uVar7 = *(uint *)(iVar4 + 4);\n      *(short *)((int)piVar16 + 2) = (short)(uVar2 << 8);\n      if (uVar7 == 0xffffffff) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_DAT_0043226c + 0x1a58);\n        return;\n      }\n      iVar13 = *(int *)(iVar4 + 0xc);\n      iVar5 = *(int *)(iVar4 + 0x10);\n      uVar2 = 0;\n      pbVar8 = *(byte **)(iVar4 + 8);\n      *(ushort *)(piVar16 + 1) = (ushort)((uVar7 & 0xff) << 8) | (ushort)(uVar7 >> 8) & 0xff;\n      uVar7 = (iVar5 - iVar13 >> 3) * -0x55555555 + 1;\n      *(ushort *)((int)piVar16 + 6) = (ushort)((uVar7 & 0xff) << 8) | (ushort)(uVar7 >> 8) & 0xff;\n      while (uVar11 = (uint)*pbVar8, uVar11 != 0) {\n        while( true ) {\n          pbVar8 = pbVar8 + 1;\n          uVar2 = uVar11 + uVar2 * 0x10;\n          if ((uVar2 & 0xf0000000) == 0) break;\n          uVar2 = (uVar2 & 0xf0000000) >> 0x18 ^ uVar2 & 0xfffffff;\n          uVar11 = (uint)*pbVar8;\n          if (uVar11 == 0) goto LAB_002642bc;\n        }\n      }\nLAB_002642bc:\n      piVar16[3] = 0x14000000;\n      piVar16[2] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n      puVar1 = PTR_get_offset_004323e0;\n      if (uVar14 < (uint)((int)piVar10 - (int)piVar18 >> 2)) {\n        uVar2 = uVar7 * 8 + 0x14;\n        iVar5 = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n      }\n      else {\n        iVar5 = 0;\n      }\n      piVar16[4] = iVar5;\n      uVar2 = (*(code *)puVar1)(param_1);\n      piVar17 = piVar16 + 7;\n      puVar12 = *(undefined4 **)(iVar4 + 0xc);\n      puVar6 = *(undefined4 **)(iVar4 + 0x10);\n      piVar16[5] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n      if (puVar12 == puVar6) {\n        piVar10 = *(int **)(this + 4);\n        piVar16[6] = 0;\n        if (piVar10 == piVar19 + 1) goto LAB_002643bc;\n      }\n      else {\n        uVar2 = 0;\n        piVar16[6] = 0x8000000;\n        piVar18 = piVar17;\n        do {\n          uVar9 = *puVar12;\n          piVar17 = piVar18 + 2;\n          puVar6 = puVar12 + 1;\n          uVar2 = uVar2 + 1;\n          puVar12 = puVar12 + 6;\n          uVar7 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar9,*puVar6);\n          puVar6 = *(undefined4 **)(iVar4 + 0x10);\n          iVar13 = *(int *)(iVar4 + 0xc);\n          *piVar18 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;\n          iVar5 = 0x8000000;\n          if ((uint)(((int)puVar6 - iVar13 >> 3) * -0x55555555) <= uVar2) {\n            iVar5 = 0;\n          }\n          piVar18[1] = iVar5;\n          piVar18 = piVar17;\n        } while (puVar6 != puVar12);\n        piVar10 = *(int **)(this + 4);\n        if (piVar10 == piVar19 + 1) goto LAB_002643bc;\n      }\n      piVar19 = piVar19 + 1;\n      piVar18 = *(int **)this;\n      piVar16 = piVar17;\n    } while( true );\n  }\n  uVar14 = 0;\n  goto LAB_002643c4;\nLAB_002643bc:\n  piVar18 = piVar19 + 1;\n  uVar14 = (int)piVar17 - (int)piVar3;\nLAB_002643c4:\n  uVar9 = 0x71c;\n  if (uVar15 == uVar14) {\n    iVar4 = *(int *)this;\n    *param_2 = (uchar *)piVar3;\n    *param_3 = uVar15;\n    *param_4 = (int)piVar18 - iVar4 >> 2;\n    return;\n  }\nLAB_0026444c:\n  (*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_DAT_0043226c + 0x13e0,uVar9,PTR_DAT_0043226c + 0x1808);\n  return;\n}\n\n" comment (declaration "void __thiscall\ngold::Versions::def_section_contents<64,false>\n          (Versions *this,Stringpool_template *param_1,uchar **param_2,uint *param_3,uint *param_4)\n\n{\n  undefined *puVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Versions::" identifier : : identifier : :) identifier (ERROR "<64" < number_literal) , (ERROR "false>\n          (Versions *this,Stringpool_template *param_1,uchar **param_2,uint *param_3,uint *param_4)\n\n{\n  undefined" (function_declarator "false>\n          (Versions *this,Stringpool_template *param_1,uchar **param_2,uint *param_3,uint *param_4)" identifier (ERROR ">" >) (parameter_list "(Versions *this,Stringpool_template *param_1,uchar **param_2,uint *param_3,uint *param_4)" ( (parameter_declaration "Versions *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Stringpool_template *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uchar **param_2" type_identifier (pointer_declarator "**param_2" * (pointer_declarator "*param_2" * identifier))) , (parameter_declaration "uint *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "uint *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) ))) { identifier) (pointer_declarator "*puVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "undefined4 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "int *piVar16;" primitive_type (pointer_declarator "*piVar16" * identifier) ;) (declaration "int *piVar17;" primitive_type (pointer_declarator "*piVar17" * identifier) ;) (declaration "int *piVar18;" primitive_type (pointer_declarator "*piVar18" * identifier) ;) (declaration "int *piVar19;" primitive_type (pointer_declarator "*piVar19" * identifier) ;) (if_statement "if (this[0x34] == (Versions)0x0) {\n    uVar9 = 0x701;\n    goto LAB_0026444c;\n  }" if (parenthesized_expression "(this[0x34] == (Versions)0x0)" ( (binary_expression "this[0x34] == (Versions)0x0" (subscript_expression "this[0x34]" identifier [ number_literal ]) == (cast_expression "(Versions)0x0" ( (type_descriptor "Versions" type_identifier) ) number_literal)) )) (compound_statement "{\n    uVar9 = 0x701;\n    goto LAB_0026444c;\n  }" { (expression_statement "uVar9 = 0x701;" (assignment_expression "uVar9 = 0x701" identifier = number_literal) ;) (goto_statement "goto LAB_0026444c;" goto statement_identifier ;) })) (expression_statement "piVar3 = *(int **)this;" (assignment_expression "piVar3 = *(int **)this" identifier = (pointer_expression "*(int **)this" * (cast_expression "(int **)this" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (*(int **)(this + 4) == piVar3) {\n    uVar9 = 0x702;\n    goto LAB_0026444c;\n  }" if (parenthesized_expression "(*(int **)(this + 4) == piVar3)" ( (binary_expression "*(int **)(this + 4) == piVar3" (pointer_expression "*(int **)(this + 4)" * (cast_expression "(int **)(this + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n    uVar9 = 0x702;\n    goto LAB_0026444c;\n  }" { (expression_statement "uVar9 = 0x702;" (assignment_expression "uVar9 = 0x702" identifier = number_literal) ;) (goto_statement "goto LAB_0026444c;" goto statement_identifier ;) })) (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" identifier = number_literal) ;) (do_statement "do {\n    iVar4 = *piVar3;\n    piVar3 = piVar3 + 1;\n    uVar15 = uVar15 + (*(int *)(iVar4 + 0x10) - *(int *)(iVar4 + 0xc) >> 3) * 0x55555558 + 0x1c;\n  } while (*(int **)(this + 4) != piVar3);" do (compound_statement "{\n    iVar4 = *piVar3;\n    piVar3 = piVar3 + 1;\n    uVar15 = uVar15 + (*(int *)(iVar4 + 0x10) - *(int *)(iVar4 + 0xc) >> 3) * 0x55555558 + 0x1c;\n  }" { (expression_statement "iVar4 = *piVar3;" (assignment_expression "iVar4 = *piVar3" identifier = (pointer_expression "*piVar3" * identifier)) ;) (expression_statement "piVar3 = piVar3 + 1;" (assignment_expression "piVar3 = piVar3 + 1" identifier = (binary_expression "piVar3 + 1" identifier + number_literal)) ;) (expression_statement "uVar15 = uVar15 + (*(int *)(iVar4 + 0x10) - *(int *)(iVar4 + 0xc) >> 3) * 0x55555558 + 0x1c;" (assignment_expression "uVar15 = uVar15 + (*(int *)(iVar4 + 0x10) - *(int *)(iVar4 + 0xc) >> 3) * 0x55555558 + 0x1c" identifier = (binary_expression "uVar15 + (*(int *)(iVar4 + 0x10) - *(int *)(iVar4 + 0xc) >> 3) * 0x55555558 + 0x1c" (binary_expression "uVar15 + (*(int *)(iVar4 + 0x10) - *(int *)(iVar4 + 0xc) >> 3) * 0x55555558" identifier + (binary_expression "(*(int *)(iVar4 + 0x10) - *(int *)(iVar4 + 0xc) >> 3) * 0x55555558" (parenthesized_expression "(*(int *)(iVar4 + 0x10) - *(int *)(iVar4 + 0xc) >> 3)" ( (binary_expression "*(int *)(iVar4 + 0x10) - *(int *)(iVar4 + 0xc) >> 3" (binary_expression "*(int *)(iVar4 + 0x10) - *(int *)(iVar4 + 0xc)" (pointer_expression "*(int *)(iVar4 + 0x10)" * (cast_expression "(int *)(iVar4 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x10)" ( (binary_expression "iVar4 + 0x10" identifier + number_literal) )))) - (pointer_expression "*(int *)(iVar4 + 0xc)" * (cast_expression "(int *)(iVar4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) ))))) >> number_literal) )) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(*(int **)(this + 4) != piVar3)" ( (binary_expression "*(int **)(this + 4) != piVar3" (pointer_expression "*(int **)(this + 4)" * (cast_expression "(int **)(this + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) != identifier) )) ;) (expression_statement "piVar3 = (int *)(*(code *)PTR_operator_new___004322dc)(uVar15);" (assignment_expression "piVar3 = (int *)(*(code *)PTR_operator_new___004322dc)(uVar15)" identifier = (cast_expression "(int *)(*(code *)PTR_operator_new___004322dc)(uVar15)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new___004322dc)(uVar15)" (parenthesized_expression "(*(code *)PTR_operator_new___004322dc)" ( (pointer_expression "*(code *)PTR_operator_new___004322dc" * (cast_expression "(code *)PTR_operator_new___004322dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar15)" ( identifier ))))) ;) (expression_statement "piVar18 = *(int **)this;" (assignment_expression "piVar18 = *(int **)this" identifier = (pointer_expression "*(int **)this" * (cast_expression "(int **)this" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "piVar10 = *(int **)(this + 4);" (assignment_expression "piVar10 = *(int **)(this + 4)" identifier = (pointer_expression "*(int **)(this + 4)" * (cast_expression "(int **)(this + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) ))))) ;) (if_statement "if (piVar18 != piVar10) {\n    uVar14 = 0;\n    piVar16 = piVar3;\n    piVar19 = piVar18;\n    do {\n      iVar4 = *piVar19;\n      uVar14 = uVar14 + 1;\n      *(undefined2 *)piVar16 = 0x100;\n      uVar2 = (uint)*(byte *)(iVar4 + 0x18);\n      if (*(char *)(iVar4 + 0x19) != '\0') {\n        uVar2 = uVar2 | 2;\n      }\n      if (*(char *)(iVar4 + 0x1a) != '\0') {\n        uVar2 = uVar2 | 4;\n      }\n      uVar7 = *(uint *)(iVar4 + 4);\n      *(short *)((int)piVar16 + 2) = (short)(uVar2 << 8);\n      if (uVar7 == 0xffffffff) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_DAT_0043226c + 0x1a58);\n        return;\n      }\n      iVar13 = *(int *)(iVar4 + 0xc);\n      iVar5 = *(int *)(iVar4 + 0x10);\n      uVar2 = 0;\n      pbVar8 = *(byte **)(iVar4 + 8);\n      *(ushort *)(piVar16 + 1) = (ushort)((uVar7 & 0xff) << 8) | (ushort)(uVar7 >> 8) & 0xff;\n      uVar7 = (iVar5 - iVar13 >> 3) * -0x55555555 + 1;\n      *(ushort *)((int)piVar16 + 6) = (ushort)((uVar7 & 0xff) << 8) | (ushort)(uVar7 >> 8) & 0xff;\n      while (uVar11 = (uint)*pbVar8, uVar11 != 0) {\n        while( true ) {\n          pbVar8 = pbVar8 + 1;\n          uVar2 = uVar11 + uVar2 * 0x10;\n          if ((uVar2 & 0xf0000000) == 0) break;\n          uVar2 = (uVar2 & 0xf0000000) >> 0x18 ^ uVar2 & 0xfffffff;\n          uVar11 = (uint)*pbVar8;\n          if (uVar11 == 0) goto LAB_002642bc;\n        }\n      }\nLAB_002642bc:\n      piVar16[3] = 0x14000000;\n      piVar16[2] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n      puVar1 = PTR_get_offset_004323e0;\n      if (uVar14 < (uint)((int)piVar10 - (int)piVar18 >> 2)) {\n        uVar2 = uVar7 * 8 + 0x14;\n        iVar5 = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n      }\n      else {\n        iVar5 = 0;\n      }\n      piVar16[4] = iVar5;\n      uVar2 = (*(code *)puVar1)(param_1);\n      piVar17 = piVar16 + 7;\n      puVar12 = *(undefined4 **)(iVar4 + 0xc);\n      puVar6 = *(undefined4 **)(iVar4 + 0x10);\n      piVar16[5] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n      if (puVar12 == puVar6) {\n        piVar10 = *(int **)(this + 4);\n        piVar16[6] = 0;\n        if (piVar10 == piVar19 + 1) goto LAB_002643bc;\n      }\n      else {\n        uVar2 = 0;\n        piVar16[6] = 0x8000000;\n        piVar18 = piVar17;\n        do {\n          uVar9 = *puVar12;\n          piVar17 = piVar18 + 2;\n          puVar6 = puVar12 + 1;\n          uVar2 = uVar2 + 1;\n          puVar12 = puVar12 + 6;\n          uVar7 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar9,*puVar6);\n          puVar6 = *(undefined4 **)(iVar4 + 0x10);\n          iVar13 = *(int *)(iVar4 + 0xc);\n          *piVar18 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;\n          iVar5 = 0x8000000;\n          if ((uint)(((int)puVar6 - iVar13 >> 3) * -0x55555555) <= uVar2) {\n            iVar5 = 0;\n          }\n          piVar18[1] = iVar5;\n          piVar18 = piVar17;\n        } while (puVar6 != puVar12);\n        piVar10 = *(int **)(this + 4);\n        if (piVar10 == piVar19 + 1) goto LAB_002643bc;\n      }\n      piVar19 = piVar19 + 1;\n      piVar18 = *(int **)this;\n      piVar16 = piVar17;\n    } while( true );\n  }" if (parenthesized_expression "(piVar18 != piVar10)" ( (binary_expression "piVar18 != piVar10" identifier != identifier) )) (compound_statement "{\n    uVar14 = 0;\n    piVar16 = piVar3;\n    piVar19 = piVar18;\n    do {\n      iVar4 = *piVar19;\n      uVar14 = uVar14 + 1;\n      *(undefined2 *)piVar16 = 0x100;\n      uVar2 = (uint)*(byte *)(iVar4 + 0x18);\n      if (*(char *)(iVar4 + 0x19) != '\0') {\n        uVar2 = uVar2 | 2;\n      }\n      if (*(char *)(iVar4 + 0x1a) != '\0') {\n        uVar2 = uVar2 | 4;\n      }\n      uVar7 = *(uint *)(iVar4 + 4);\n      *(short *)((int)piVar16 + 2) = (short)(uVar2 << 8);\n      if (uVar7 == 0xffffffff) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_DAT_0043226c + 0x1a58);\n        return;\n      }\n      iVar13 = *(int *)(iVar4 + 0xc);\n      iVar5 = *(int *)(iVar4 + 0x10);\n      uVar2 = 0;\n      pbVar8 = *(byte **)(iVar4 + 8);\n      *(ushort *)(piVar16 + 1) = (ushort)((uVar7 & 0xff) << 8) | (ushort)(uVar7 >> 8) & 0xff;\n      uVar7 = (iVar5 - iVar13 >> 3) * -0x55555555 + 1;\n      *(ushort *)((int)piVar16 + 6) = (ushort)((uVar7 & 0xff) << 8) | (ushort)(uVar7 >> 8) & 0xff;\n      while (uVar11 = (uint)*pbVar8, uVar11 != 0) {\n        while( true ) {\n          pbVar8 = pbVar8 + 1;\n          uVar2 = uVar11 + uVar2 * 0x10;\n          if ((uVar2 & 0xf0000000) == 0) break;\n          uVar2 = (uVar2 & 0xf0000000) >> 0x18 ^ uVar2 & 0xfffffff;\n          uVar11 = (uint)*pbVar8;\n          if (uVar11 == 0) goto LAB_002642bc;\n        }\n      }\nLAB_002642bc:\n      piVar16[3] = 0x14000000;\n      piVar16[2] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n      puVar1 = PTR_get_offset_004323e0;\n      if (uVar14 < (uint)((int)piVar10 - (int)piVar18 >> 2)) {\n        uVar2 = uVar7 * 8 + 0x14;\n        iVar5 = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n      }\n      else {\n        iVar5 = 0;\n      }\n      piVar16[4] = iVar5;\n      uVar2 = (*(code *)puVar1)(param_1);\n      piVar17 = piVar16 + 7;\n      puVar12 = *(undefined4 **)(iVar4 + 0xc);\n      puVar6 = *(undefined4 **)(iVar4 + 0x10);\n      piVar16[5] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n      if (puVar12 == puVar6) {\n        piVar10 = *(int **)(this + 4);\n        piVar16[6] = 0;\n        if (piVar10 == piVar19 + 1) goto LAB_002643bc;\n      }\n      else {\n        uVar2 = 0;\n        piVar16[6] = 0x8000000;\n        piVar18 = piVar17;\n        do {\n          uVar9 = *puVar12;\n          piVar17 = piVar18 + 2;\n          puVar6 = puVar12 + 1;\n          uVar2 = uVar2 + 1;\n          puVar12 = puVar12 + 6;\n          uVar7 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar9,*puVar6);\n          puVar6 = *(undefined4 **)(iVar4 + 0x10);\n          iVar13 = *(int *)(iVar4 + 0xc);\n          *piVar18 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;\n          iVar5 = 0x8000000;\n          if ((uint)(((int)puVar6 - iVar13 >> 3) * -0x55555555) <= uVar2) {\n            iVar5 = 0;\n          }\n          piVar18[1] = iVar5;\n          piVar18 = piVar17;\n        } while (puVar6 != puVar12);\n        piVar10 = *(int **)(this + 4);\n        if (piVar10 == piVar19 + 1) goto LAB_002643bc;\n      }\n      piVar19 = piVar19 + 1;\n      piVar18 = *(int **)this;\n      piVar16 = piVar17;\n    } while( true );\n  }" { (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "piVar16 = piVar3;" (assignment_expression "piVar16 = piVar3" identifier = identifier) ;) (expression_statement "piVar19 = piVar18;" (assignment_expression "piVar19 = piVar18" identifier = identifier) ;) (do_statement "do {\n      iVar4 = *piVar19;\n      uVar14 = uVar14 + 1;\n      *(undefined2 *)piVar16 = 0x100;\n      uVar2 = (uint)*(byte *)(iVar4 + 0x18);\n      if (*(char *)(iVar4 + 0x19) != '\0') {\n        uVar2 = uVar2 | 2;\n      }\n      if (*(char *)(iVar4 + 0x1a) != '\0') {\n        uVar2 = uVar2 | 4;\n      }\n      uVar7 = *(uint *)(iVar4 + 4);\n      *(short *)((int)piVar16 + 2) = (short)(uVar2 << 8);\n      if (uVar7 == 0xffffffff) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_DAT_0043226c + 0x1a58);\n        return;\n      }\n      iVar13 = *(int *)(iVar4 + 0xc);\n      iVar5 = *(int *)(iVar4 + 0x10);\n      uVar2 = 0;\n      pbVar8 = *(byte **)(iVar4 + 8);\n      *(ushort *)(piVar16 + 1) = (ushort)((uVar7 & 0xff) << 8) | (ushort)(uVar7 >> 8) & 0xff;\n      uVar7 = (iVar5 - iVar13 >> 3) * -0x55555555 + 1;\n      *(ushort *)((int)piVar16 + 6) = (ushort)((uVar7 & 0xff) << 8) | (ushort)(uVar7 >> 8) & 0xff;\n      while (uVar11 = (uint)*pbVar8, uVar11 != 0) {\n        while( true ) {\n          pbVar8 = pbVar8 + 1;\n          uVar2 = uVar11 + uVar2 * 0x10;\n          if ((uVar2 & 0xf0000000) == 0) break;\n          uVar2 = (uVar2 & 0xf0000000) >> 0x18 ^ uVar2 & 0xfffffff;\n          uVar11 = (uint)*pbVar8;\n          if (uVar11 == 0) goto LAB_002642bc;\n        }\n      }\nLAB_002642bc:\n      piVar16[3] = 0x14000000;\n      piVar16[2] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n      puVar1 = PTR_get_offset_004323e0;\n      if (uVar14 < (uint)((int)piVar10 - (int)piVar18 >> 2)) {\n        uVar2 = uVar7 * 8 + 0x14;\n        iVar5 = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n      }\n      else {\n        iVar5 = 0;\n      }\n      piVar16[4] = iVar5;\n      uVar2 = (*(code *)puVar1)(param_1);\n      piVar17 = piVar16 + 7;\n      puVar12 = *(undefined4 **)(iVar4 + 0xc);\n      puVar6 = *(undefined4 **)(iVar4 + 0x10);\n      piVar16[5] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n      if (puVar12 == puVar6) {\n        piVar10 = *(int **)(this + 4);\n        piVar16[6] = 0;\n        if (piVar10 == piVar19 + 1) goto LAB_002643bc;\n      }\n      else {\n        uVar2 = 0;\n        piVar16[6] = 0x8000000;\n        piVar18 = piVar17;\n        do {\n          uVar9 = *puVar12;\n          piVar17 = piVar18 + 2;\n          puVar6 = puVar12 + 1;\n          uVar2 = uVar2 + 1;\n          puVar12 = puVar12 + 6;\n          uVar7 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar9,*puVar6);\n          puVar6 = *(undefined4 **)(iVar4 + 0x10);\n          iVar13 = *(int *)(iVar4 + 0xc);\n          *piVar18 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;\n          iVar5 = 0x8000000;\n          if ((uint)(((int)puVar6 - iVar13 >> 3) * -0x55555555) <= uVar2) {\n            iVar5 = 0;\n          }\n          piVar18[1] = iVar5;\n          piVar18 = piVar17;\n        } while (puVar6 != puVar12);\n        piVar10 = *(int **)(this + 4);\n        if (piVar10 == piVar19 + 1) goto LAB_002643bc;\n      }\n      piVar19 = piVar19 + 1;\n      piVar18 = *(int **)this;\n      piVar16 = piVar17;\n    } while( true );" do (compound_statement "{\n      iVar4 = *piVar19;\n      uVar14 = uVar14 + 1;\n      *(undefined2 *)piVar16 = 0x100;\n      uVar2 = (uint)*(byte *)(iVar4 + 0x18);\n      if (*(char *)(iVar4 + 0x19) != '\0') {\n        uVar2 = uVar2 | 2;\n      }\n      if (*(char *)(iVar4 + 0x1a) != '\0') {\n        uVar2 = uVar2 | 4;\n      }\n      uVar7 = *(uint *)(iVar4 + 4);\n      *(short *)((int)piVar16 + 2) = (short)(uVar2 << 8);\n      if (uVar7 == 0xffffffff) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_DAT_0043226c + 0x1a58);\n        return;\n      }\n      iVar13 = *(int *)(iVar4 + 0xc);\n      iVar5 = *(int *)(iVar4 + 0x10);\n      uVar2 = 0;\n      pbVar8 = *(byte **)(iVar4 + 8);\n      *(ushort *)(piVar16 + 1) = (ushort)((uVar7 & 0xff) << 8) | (ushort)(uVar7 >> 8) & 0xff;\n      uVar7 = (iVar5 - iVar13 >> 3) * -0x55555555 + 1;\n      *(ushort *)((int)piVar16 + 6) = (ushort)((uVar7 & 0xff) << 8) | (ushort)(uVar7 >> 8) & 0xff;\n      while (uVar11 = (uint)*pbVar8, uVar11 != 0) {\n        while( true ) {\n          pbVar8 = pbVar8 + 1;\n          uVar2 = uVar11 + uVar2 * 0x10;\n          if ((uVar2 & 0xf0000000) == 0) break;\n          uVar2 = (uVar2 & 0xf0000000) >> 0x18 ^ uVar2 & 0xfffffff;\n          uVar11 = (uint)*pbVar8;\n          if (uVar11 == 0) goto LAB_002642bc;\n        }\n      }\nLAB_002642bc:\n      piVar16[3] = 0x14000000;\n      piVar16[2] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n      puVar1 = PTR_get_offset_004323e0;\n      if (uVar14 < (uint)((int)piVar10 - (int)piVar18 >> 2)) {\n        uVar2 = uVar7 * 8 + 0x14;\n        iVar5 = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n      }\n      else {\n        iVar5 = 0;\n      }\n      piVar16[4] = iVar5;\n      uVar2 = (*(code *)puVar1)(param_1);\n      piVar17 = piVar16 + 7;\n      puVar12 = *(undefined4 **)(iVar4 + 0xc);\n      puVar6 = *(undefined4 **)(iVar4 + 0x10);\n      piVar16[5] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n      if (puVar12 == puVar6) {\n        piVar10 = *(int **)(this + 4);\n        piVar16[6] = 0;\n        if (piVar10 == piVar19 + 1) goto LAB_002643bc;\n      }\n      else {\n        uVar2 = 0;\n        piVar16[6] = 0x8000000;\n        piVar18 = piVar17;\n        do {\n          uVar9 = *puVar12;\n          piVar17 = piVar18 + 2;\n          puVar6 = puVar12 + 1;\n          uVar2 = uVar2 + 1;\n          puVar12 = puVar12 + 6;\n          uVar7 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar9,*puVar6);\n          puVar6 = *(undefined4 **)(iVar4 + 0x10);\n          iVar13 = *(int *)(iVar4 + 0xc);\n          *piVar18 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;\n          iVar5 = 0x8000000;\n          if ((uint)(((int)puVar6 - iVar13 >> 3) * -0x55555555) <= uVar2) {\n            iVar5 = 0;\n          }\n          piVar18[1] = iVar5;\n          piVar18 = piVar17;\n        } while (puVar6 != puVar12);\n        piVar10 = *(int **)(this + 4);\n        if (piVar10 == piVar19 + 1) goto LAB_002643bc;\n      }\n      piVar19 = piVar19 + 1;\n      piVar18 = *(int **)this;\n      piVar16 = piVar17;\n    }" { (expression_statement "iVar4 = *piVar19;" (assignment_expression "iVar4 = *piVar19" identifier = (pointer_expression "*piVar19" * identifier)) ;) (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined2 *)piVar16 = 0x100;" (assignment_expression "*(undefined2 *)piVar16 = 0x100" (pointer_expression "*(undefined2 *)piVar16" * (cast_expression "(undefined2 *)piVar16" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "uVar2 = (uint)*(byte *)(iVar4 + 0x18);" (assignment_expression "uVar2 = (uint)*(byte *)(iVar4 + 0x18)" identifier = (binary_expression "(uint)*(byte *)(iVar4 + 0x18)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar4 + 0x18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(iVar4 + 0x19) != '\0') {\n        uVar2 = uVar2 | 2;\n      }" if (parenthesized_expression "(*(char *)(iVar4 + 0x19) != '\0')" ( (binary_expression "*(char *)(iVar4 + 0x19) != '\0'" (pointer_expression "*(char *)(iVar4 + 0x19)" * (cast_expression "(char *)(iVar4 + 0x19)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x19)" ( (binary_expression "iVar4 + 0x19" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        uVar2 = uVar2 | 2;\n      }" { (expression_statement "uVar2 = uVar2 | 2;" (assignment_expression "uVar2 = uVar2 | 2" identifier = (binary_expression "uVar2 | 2" identifier | number_literal)) ;) })) (if_statement "if (*(char *)(iVar4 + 0x1a) != '\0') {\n        uVar2 = uVar2 | 4;\n      }" if (parenthesized_expression "(*(char *)(iVar4 + 0x1a) != '\0')" ( (binary_expression "*(char *)(iVar4 + 0x1a) != '\0'" (pointer_expression "*(char *)(iVar4 + 0x1a)" * (cast_expression "(char *)(iVar4 + 0x1a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1a)" ( (binary_expression "iVar4 + 0x1a" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        uVar2 = uVar2 | 4;\n      }" { (expression_statement "uVar2 = uVar2 | 4;" (assignment_expression "uVar2 = uVar2 | 4" identifier = (binary_expression "uVar2 | 4" identifier | number_literal)) ;) })) (expression_statement "uVar7 = *(uint *)(iVar4 + 4);" (assignment_expression "uVar7 = *(uint *)(iVar4 + 4)" identifier = (pointer_expression "*(uint *)(iVar4 + 4)" * (cast_expression "(uint *)(iVar4 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 4)" ( (binary_expression "iVar4 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(short *)((int)piVar16 + 2) = (short)(uVar2 << 8);" (assignment_expression "*(short *)((int)piVar16 + 2) = (short)(uVar2 << 8)" (pointer_expression "*(short *)((int)piVar16 + 2)" * (cast_expression "(short *)((int)piVar16 + 2)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + 2)" ( (binary_expression "(int)piVar16 + 2" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(short)(uVar2 << 8)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "(uVar2 << 8)" ( (binary_expression "uVar2 << 8" identifier << number_literal) )))) ;) (if_statement "if (uVar7 == 0xffffffff) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_DAT_0043226c + 0x1a58);\n        return;\n      }" if (parenthesized_expression "(uVar7 == 0xffffffff)" ( (binary_expression "uVar7 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_DAT_0043226c + 0x1a58);\n        return;\n      }" { (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_DAT_0043226c + 0x1a58);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_DAT_0043226c + 0x1a58)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_DAT_0043226c + 0x1a58)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x4f94" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0043226c + 0x1a58" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (expression_statement "iVar13 = *(int *)(iVar4 + 0xc);" (assignment_expression "iVar13 = *(int *)(iVar4 + 0xc)" identifier = (pointer_expression "*(int *)(iVar4 + 0xc)" * (cast_expression "(int *)(iVar4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = *(int *)(iVar4 + 0x10);" (assignment_expression "iVar5 = *(int *)(iVar4 + 0x10)" identifier = (pointer_expression "*(int *)(iVar4 + 0x10)" * (cast_expression "(int *)(iVar4 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x10)" ( (binary_expression "iVar4 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (expression_statement "pbVar8 = *(byte **)(iVar4 + 8);" (assignment_expression "pbVar8 = *(byte **)(iVar4 + 8)" identifier = (pointer_expression "*(byte **)(iVar4 + 8)" * (cast_expression "(byte **)(iVar4 + 8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(ushort *)(piVar16 + 1) = (ushort)((uVar7 & 0xff) << 8) | (ushort)(uVar7 >> 8) & 0xff;" (assignment_expression "*(ushort *)(piVar16 + 1) = (ushort)((uVar7 & 0xff) << 8) | (ushort)(uVar7 >> 8) & 0xff" (pointer_expression "*(ushort *)(piVar16 + 1)" * (cast_expression "(ushort *)(piVar16 + 1)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar16 + 1)" ( (binary_expression "piVar16 + 1" identifier + number_literal) )))) = (binary_expression "(ushort)((uVar7 & 0xff) << 8) | (ushort)(uVar7 >> 8) & 0xff" (call_expression "(ushort)((uVar7 & 0xff) << 8)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "((uVar7 & 0xff) << 8)" ( (binary_expression "(uVar7 & 0xff) << 8" (parenthesized_expression "(uVar7 & 0xff)" ( (binary_expression "uVar7 & 0xff" identifier & number_literal) )) << number_literal) ))) | (binary_expression "(ushort)(uVar7 >> 8) & 0xff" (call_expression "(ushort)(uVar7 >> 8)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(uVar7 >> 8)" ( (binary_expression "uVar7 >> 8" identifier >> number_literal) ))) & number_literal))) ;) (expression_statement "uVar7 = (iVar5 - iVar13 >> 3) * -0x55555555 + 1;" (assignment_expression "uVar7 = (iVar5 - iVar13 >> 3) * -0x55555555 + 1" identifier = (binary_expression "(iVar5 - iVar13 >> 3) * -0x55555555 + 1" (binary_expression "(iVar5 - iVar13 >> 3) * -0x55555555" (parenthesized_expression "(iVar5 - iVar13 >> 3)" ( (binary_expression "iVar5 - iVar13 >> 3" (binary_expression "iVar5 - iVar13" identifier - identifier) >> number_literal) )) * number_literal) + number_literal)) ;) (expression_statement "*(ushort *)((int)piVar16 + 6) = (ushort)((uVar7 & 0xff) << 8) | (ushort)(uVar7 >> 8) & 0xff;" (assignment_expression "*(ushort *)((int)piVar16 + 6) = (ushort)((uVar7 & 0xff) << 8) | (ushort)(uVar7 >> 8) & 0xff" (pointer_expression "*(ushort *)((int)piVar16 + 6)" * (cast_expression "(ushort *)((int)piVar16 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + 6)" ( (binary_expression "(int)piVar16 + 6" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(ushort)((uVar7 & 0xff) << 8) | (ushort)(uVar7 >> 8) & 0xff" (call_expression "(ushort)((uVar7 & 0xff) << 8)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "((uVar7 & 0xff) << 8)" ( (binary_expression "(uVar7 & 0xff) << 8" (parenthesized_expression "(uVar7 & 0xff)" ( (binary_expression "uVar7 & 0xff" identifier & number_literal) )) << number_literal) ))) | (binary_expression "(ushort)(uVar7 >> 8) & 0xff" (call_expression "(ushort)(uVar7 >> 8)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(uVar7 >> 8)" ( (binary_expression "uVar7 >> 8" identifier >> number_literal) ))) & number_literal))) ;) (while_statement "while (uVar11 = (uint)*pbVar8, uVar11 != 0) {\n        while( true ) {\n          pbVar8 = pbVar8 + 1;\n          uVar2 = uVar11 + uVar2 * 0x10;\n          if ((uVar2 & 0xf0000000) == 0) break;\n          uVar2 = (uVar2 & 0xf0000000) >> 0x18 ^ uVar2 & 0xfffffff;\n          uVar11 = (uint)*pbVar8;\n          if (uVar11 == 0) goto LAB_002642bc;\n        }\n      }" while (parenthesized_expression "(uVar11 = (uint)*pbVar8, uVar11 != 0)" ( (comma_expression "uVar11 = (uint)*pbVar8, uVar11 != 0" (assignment_expression "uVar11 = (uint)*pbVar8" identifier = (binary_expression "(uint)*pbVar8" (parenthesized_expression "(uint)" ( identifier )) * identifier)) , (binary_expression "uVar11 != 0" identifier != number_literal)) )) (compound_statement "{\n        while( true ) {\n          pbVar8 = pbVar8 + 1;\n          uVar2 = uVar11 + uVar2 * 0x10;\n          if ((uVar2 & 0xf0000000) == 0) break;\n          uVar2 = (uVar2 & 0xf0000000) >> 0x18 ^ uVar2 & 0xfffffff;\n          uVar11 = (uint)*pbVar8;\n          if (uVar11 == 0) goto LAB_002642bc;\n        }\n      }" { (while_statement "while( true ) {\n          pbVar8 = pbVar8 + 1;\n          uVar2 = uVar11 + uVar2 * 0x10;\n          if ((uVar2 & 0xf0000000) == 0) break;\n          uVar2 = (uVar2 & 0xf0000000) >> 0x18 ^ uVar2 & 0xfffffff;\n          uVar11 = (uint)*pbVar8;\n          if (uVar11 == 0) goto LAB_002642bc;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          pbVar8 = pbVar8 + 1;\n          uVar2 = uVar11 + uVar2 * 0x10;\n          if ((uVar2 & 0xf0000000) == 0) break;\n          uVar2 = (uVar2 & 0xf0000000) >> 0x18 ^ uVar2 & 0xfffffff;\n          uVar11 = (uint)*pbVar8;\n          if (uVar11 == 0) goto LAB_002642bc;\n        }" { (expression_statement "pbVar8 = pbVar8 + 1;" (assignment_expression "pbVar8 = pbVar8 + 1" identifier = (binary_expression "pbVar8 + 1" identifier + number_literal)) ;) (expression_statement "uVar2 = uVar11 + uVar2 * 0x10;" (assignment_expression "uVar2 = uVar11 + uVar2 * 0x10" identifier = (binary_expression "uVar11 + uVar2 * 0x10" identifier + (binary_expression "uVar2 * 0x10" identifier * number_literal))) ;) (if_statement "if ((uVar2 & 0xf0000000) == 0) break;" if (parenthesized_expression "((uVar2 & 0xf0000000) == 0)" ( (binary_expression "(uVar2 & 0xf0000000) == 0" (parenthesized_expression "(uVar2 & 0xf0000000)" ( (binary_expression "uVar2 & 0xf0000000" identifier & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar2 = (uVar2 & 0xf0000000) >> 0x18 ^ uVar2 & 0xfffffff;" (assignment_expression "uVar2 = (uVar2 & 0xf0000000) >> 0x18 ^ uVar2 & 0xfffffff" identifier = (binary_expression "(uVar2 & 0xf0000000) >> 0x18 ^ uVar2 & 0xfffffff" (binary_expression "(uVar2 & 0xf0000000) >> 0x18" (parenthesized_expression "(uVar2 & 0xf0000000)" ( (binary_expression "uVar2 & 0xf0000000" identifier & number_literal) )) >> number_literal) ^ (binary_expression "uVar2 & 0xfffffff" identifier & number_literal))) ;) (expression_statement "uVar11 = (uint)*pbVar8;" (assignment_expression "uVar11 = (uint)*pbVar8" identifier = (binary_expression "(uint)*pbVar8" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (if_statement "if (uVar11 == 0) goto LAB_002642bc;" if (parenthesized_expression "(uVar11 == 0)" ( (binary_expression "uVar11 == 0" identifier == number_literal) )) (goto_statement "goto LAB_002642bc;" goto statement_identifier ;)) })) })) (labeled_statement "LAB_002642bc:\n      piVar16[3] = 0x14000000;" statement_identifier : (expression_statement "piVar16[3] = 0x14000000;" (assignment_expression "piVar16[3] = 0x14000000" (subscript_expression "piVar16[3]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "piVar16[2] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;" (assignment_expression "piVar16[2] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000" (subscript_expression "piVar16[2]" identifier [ number_literal ]) = (binary_expression "(((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10)" ( (binary_expression "(uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10" (binary_expression "(uVar2 >> 0x10) << 0x18" (parenthesized_expression "(uVar2 >> 0x10)" ( (binary_expression "uVar2 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar2 >> 0x18) << 0x10" (parenthesized_expression "(uVar2 >> 0x18)" ( (binary_expression "uVar2 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff)" ( (binary_expression "(uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff" (binary_expression "(uVar2 & 0xff) << 8" (parenthesized_expression "(uVar2 & 0xff)" ( (binary_expression "uVar2 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar2 >> 8 & 0xff" (binary_expression "uVar2 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) (expression_statement "puVar1 = PTR_get_offset_004323e0;" (assignment_expression "puVar1 = PTR_get_offset_004323e0" identifier = identifier) ;) (if_statement "if (uVar14 < (uint)((int)piVar10 - (int)piVar18 >> 2)) {\n        uVar2 = uVar7 * 8 + 0x14;\n        iVar5 = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n      }\n      else {\n        iVar5 = 0;\n      }" if (parenthesized_expression "(uVar14 < (uint)((int)piVar10 - (int)piVar18 >> 2))" ( (binary_expression "uVar14 < (uint)((int)piVar10 - (int)piVar18 >> 2)" identifier < (call_expression "(uint)((int)piVar10 - (int)piVar18 >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)piVar10 - (int)piVar18 >> 2)" ( (binary_expression "(int)piVar10 - (int)piVar18 >> 2" (binary_expression "(int)piVar10 - (int)piVar18" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piVar18" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) )))) )) (compound_statement "{\n        uVar2 = uVar7 * 8 + 0x14;\n        iVar5 = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n      }" { (expression_statement "uVar2 = uVar7 * 8 + 0x14;" (assignment_expression "uVar2 = uVar7 * 8 + 0x14" identifier = (binary_expression "uVar7 * 8 + 0x14" (binary_expression "uVar7 * 8" identifier * number_literal) + number_literal)) ;) (expression_statement "iVar5 = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;" (assignment_expression "iVar5 = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000" identifier = (binary_expression "(((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10)" ( (binary_expression "(uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10" (binary_expression "(uVar2 >> 0x10) << 0x18" (parenthesized_expression "(uVar2 >> 0x10)" ( (binary_expression "uVar2 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar2 >> 0x18) << 0x10" (parenthesized_expression "(uVar2 >> 0x18)" ( (binary_expression "uVar2 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff)" ( (binary_expression "(uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff" (binary_expression "(uVar2 & 0xff) << 8" (parenthesized_expression "(uVar2 & 0xff)" ( (binary_expression "uVar2 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar2 >> 8 & 0xff" (binary_expression "uVar2 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) }) (else_clause "else {\n        iVar5 = 0;\n      }" else (compound_statement "{\n        iVar5 = 0;\n      }" { (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) }))) (expression_statement "piVar16[4] = iVar5;" (assignment_expression "piVar16[4] = iVar5" (subscript_expression "piVar16[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar2 = (*(code *)puVar1)(param_1);" (assignment_expression "uVar2 = (*(code *)puVar1)(param_1)" identifier = (call_expression "(*(code *)puVar1)(param_1)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "piVar17 = piVar16 + 7;" (assignment_expression "piVar17 = piVar16 + 7" identifier = (binary_expression "piVar16 + 7" identifier + number_literal)) ;) (expression_statement "puVar12 = *(undefined4 **)(iVar4 + 0xc);" (assignment_expression "puVar12 = *(undefined4 **)(iVar4 + 0xc)" identifier = (pointer_expression "*(undefined4 **)(iVar4 + 0xc)" * (cast_expression "(undefined4 **)(iVar4 + 0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "puVar6 = *(undefined4 **)(iVar4 + 0x10);" (assignment_expression "puVar6 = *(undefined4 **)(iVar4 + 0x10)" identifier = (pointer_expression "*(undefined4 **)(iVar4 + 0x10)" * (cast_expression "(undefined4 **)(iVar4 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x10)" ( (binary_expression "iVar4 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "piVar16[5] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;" (assignment_expression "piVar16[5] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000" (subscript_expression "piVar16[5]" identifier [ number_literal ]) = (binary_expression "(((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10)" ( (binary_expression "(uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10" (binary_expression "(uVar2 >> 0x10) << 0x18" (parenthesized_expression "(uVar2 >> 0x10)" ( (binary_expression "uVar2 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar2 >> 0x18) << 0x10" (parenthesized_expression "(uVar2 >> 0x18)" ( (binary_expression "uVar2 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff)" ( (binary_expression "(uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff" (binary_expression "(uVar2 & 0xff) << 8" (parenthesized_expression "(uVar2 & 0xff)" ( (binary_expression "uVar2 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar2 >> 8 & 0xff" (binary_expression "uVar2 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) (if_statement "if (puVar12 == puVar6) {\n        piVar10 = *(int **)(this + 4);\n        piVar16[6] = 0;\n        if (piVar10 == piVar19 + 1) goto LAB_002643bc;\n      }\n      else {\n        uVar2 = 0;\n        piVar16[6] = 0x8000000;\n        piVar18 = piVar17;\n        do {\n          uVar9 = *puVar12;\n          piVar17 = piVar18 + 2;\n          puVar6 = puVar12 + 1;\n          uVar2 = uVar2 + 1;\n          puVar12 = puVar12 + 6;\n          uVar7 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar9,*puVar6);\n          puVar6 = *(undefined4 **)(iVar4 + 0x10);\n          iVar13 = *(int *)(iVar4 + 0xc);\n          *piVar18 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;\n          iVar5 = 0x8000000;\n          if ((uint)(((int)puVar6 - iVar13 >> 3) * -0x55555555) <= uVar2) {\n            iVar5 = 0;\n          }\n          piVar18[1] = iVar5;\n          piVar18 = piVar17;\n        } while (puVar6 != puVar12);\n        piVar10 = *(int **)(this + 4);\n        if (piVar10 == piVar19 + 1) goto LAB_002643bc;\n      }" if (parenthesized_expression "(puVar12 == puVar6)" ( (binary_expression "puVar12 == puVar6" identifier == identifier) )) (compound_statement "{\n        piVar10 = *(int **)(this + 4);\n        piVar16[6] = 0;\n        if (piVar10 == piVar19 + 1) goto LAB_002643bc;\n      }" { (expression_statement "piVar10 = *(int **)(this + 4);" (assignment_expression "piVar10 = *(int **)(this + 4)" identifier = (pointer_expression "*(int **)(this + 4)" * (cast_expression "(int **)(this + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) ))))) ;) (expression_statement "piVar16[6] = 0;" (assignment_expression "piVar16[6] = 0" (subscript_expression "piVar16[6]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (piVar10 == piVar19 + 1) goto LAB_002643bc;" if (parenthesized_expression "(piVar10 == piVar19 + 1)" ( (binary_expression "piVar10 == piVar19 + 1" identifier == (binary_expression "piVar19 + 1" identifier + number_literal)) )) (goto_statement "goto LAB_002643bc;" goto statement_identifier ;)) }) (else_clause "else {\n        uVar2 = 0;\n        piVar16[6] = 0x8000000;\n        piVar18 = piVar17;\n        do {\n          uVar9 = *puVar12;\n          piVar17 = piVar18 + 2;\n          puVar6 = puVar12 + 1;\n          uVar2 = uVar2 + 1;\n          puVar12 = puVar12 + 6;\n          uVar7 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar9,*puVar6);\n          puVar6 = *(undefined4 **)(iVar4 + 0x10);\n          iVar13 = *(int *)(iVar4 + 0xc);\n          *piVar18 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;\n          iVar5 = 0x8000000;\n          if ((uint)(((int)puVar6 - iVar13 >> 3) * -0x55555555) <= uVar2) {\n            iVar5 = 0;\n          }\n          piVar18[1] = iVar5;\n          piVar18 = piVar17;\n        } while (puVar6 != puVar12);\n        piVar10 = *(int **)(this + 4);\n        if (piVar10 == piVar19 + 1) goto LAB_002643bc;\n      }" else (compound_statement "{\n        uVar2 = 0;\n        piVar16[6] = 0x8000000;\n        piVar18 = piVar17;\n        do {\n          uVar9 = *puVar12;\n          piVar17 = piVar18 + 2;\n          puVar6 = puVar12 + 1;\n          uVar2 = uVar2 + 1;\n          puVar12 = puVar12 + 6;\n          uVar7 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar9,*puVar6);\n          puVar6 = *(undefined4 **)(iVar4 + 0x10);\n          iVar13 = *(int *)(iVar4 + 0xc);\n          *piVar18 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;\n          iVar5 = 0x8000000;\n          if ((uint)(((int)puVar6 - iVar13 >> 3) * -0x55555555) <= uVar2) {\n            iVar5 = 0;\n          }\n          piVar18[1] = iVar5;\n          piVar18 = piVar17;\n        } while (puVar6 != puVar12);\n        piVar10 = *(int **)(this + 4);\n        if (piVar10 == piVar19 + 1) goto LAB_002643bc;\n      }" { (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (expression_statement "piVar16[6] = 0x8000000;" (assignment_expression "piVar16[6] = 0x8000000" (subscript_expression "piVar16[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar18 = piVar17;" (assignment_expression "piVar18 = piVar17" identifier = identifier) ;) (do_statement "do {\n          uVar9 = *puVar12;\n          piVar17 = piVar18 + 2;\n          puVar6 = puVar12 + 1;\n          uVar2 = uVar2 + 1;\n          puVar12 = puVar12 + 6;\n          uVar7 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar9,*puVar6);\n          puVar6 = *(undefined4 **)(iVar4 + 0x10);\n          iVar13 = *(int *)(iVar4 + 0xc);\n          *piVar18 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;\n          iVar5 = 0x8000000;\n          if ((uint)(((int)puVar6 - iVar13 >> 3) * -0x55555555) <= uVar2) {\n            iVar5 = 0;\n          }\n          piVar18[1] = iVar5;\n          piVar18 = piVar17;\n        } while (puVar6 != puVar12);" do (compound_statement "{\n          uVar9 = *puVar12;\n          piVar17 = piVar18 + 2;\n          puVar6 = puVar12 + 1;\n          uVar2 = uVar2 + 1;\n          puVar12 = puVar12 + 6;\n          uVar7 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar9,*puVar6);\n          puVar6 = *(undefined4 **)(iVar4 + 0x10);\n          iVar13 = *(int *)(iVar4 + 0xc);\n          *piVar18 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;\n          iVar5 = 0x8000000;\n          if ((uint)(((int)puVar6 - iVar13 >> 3) * -0x55555555) <= uVar2) {\n            iVar5 = 0;\n          }\n          piVar18[1] = iVar5;\n          piVar18 = piVar17;\n        }" { (expression_statement "uVar9 = *puVar12;" (assignment_expression "uVar9 = *puVar12" identifier = (pointer_expression "*puVar12" * identifier)) ;) (expression_statement "piVar17 = piVar18 + 2;" (assignment_expression "piVar17 = piVar18 + 2" identifier = (binary_expression "piVar18 + 2" identifier + number_literal)) ;) (expression_statement "puVar6 = puVar12 + 1;" (assignment_expression "puVar6 = puVar12 + 1" identifier = (binary_expression "puVar12 + 1" identifier + number_literal)) ;) (expression_statement "uVar2 = uVar2 + 1;" (assignment_expression "uVar2 = uVar2 + 1" identifier = (binary_expression "uVar2 + 1" identifier + number_literal)) ;) (expression_statement "puVar12 = puVar12 + 6;" (assignment_expression "puVar12 = puVar12 + 6" identifier = (binary_expression "puVar12 + 6" identifier + number_literal)) ;) (expression_statement "uVar7 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar9,*puVar6);" (assignment_expression "uVar7 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar9,*puVar6)" identifier = (call_expression "(*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar9,*puVar6)" (parenthesized_expression "(*(code *)PTR_get_offset_with_length_004351bc)" ( (pointer_expression "*(code *)PTR_get_offset_with_length_004351bc" * (cast_expression "(code *)PTR_get_offset_with_length_004351bc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,uVar9,*puVar6)" ( identifier , identifier , (pointer_expression "*puVar6" * identifier) )))) ;) (expression_statement "puVar6 = *(undefined4 **)(iVar4 + 0x10);" (assignment_expression "puVar6 = *(undefined4 **)(iVar4 + 0x10)" identifier = (pointer_expression "*(undefined4 **)(iVar4 + 0x10)" * (cast_expression "(undefined4 **)(iVar4 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x10)" ( (binary_expression "iVar4 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar13 = *(int *)(iVar4 + 0xc);" (assignment_expression "iVar13 = *(int *)(iVar4 + 0xc)" identifier = (pointer_expression "*(int *)(iVar4 + 0xc)" * (cast_expression "(int *)(iVar4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*piVar18 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;" (assignment_expression "*piVar18 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000" (pointer_expression "*piVar18" * identifier) = (binary_expression "(((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10)" ( (binary_expression "(uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10" (binary_expression "(uVar7 >> 0x10) << 0x18" (parenthesized_expression "(uVar7 >> 0x10)" ( (binary_expression "uVar7 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar7 >> 0x18) << 0x10" (parenthesized_expression "(uVar7 >> 0x18)" ( (binary_expression "uVar7 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff)" ( (binary_expression "(uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff" (binary_expression "(uVar7 & 0xff) << 8" (parenthesized_expression "(uVar7 & 0xff)" ( (binary_expression "uVar7 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar7 >> 8 & 0xff" (binary_expression "uVar7 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) (expression_statement "iVar5 = 0x8000000;" (assignment_expression "iVar5 = 0x8000000" identifier = number_literal) ;) (if_statement "if ((uint)(((int)puVar6 - iVar13 >> 3) * -0x55555555) <= uVar2) {\n            iVar5 = 0;\n          }" if (parenthesized_expression "((uint)(((int)puVar6 - iVar13 >> 3) * -0x55555555) <= uVar2)" ( (binary_expression "(uint)(((int)puVar6 - iVar13 >> 3) * -0x55555555) <= uVar2" (call_expression "(uint)(((int)puVar6 - iVar13 >> 3) * -0x55555555)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(((int)puVar6 - iVar13 >> 3) * -0x55555555)" ( (binary_expression "((int)puVar6 - iVar13 >> 3) * -0x55555555" (parenthesized_expression "((int)puVar6 - iVar13 >> 3)" ( (binary_expression "(int)puVar6 - iVar13 >> 3" (binary_expression "(int)puVar6 - iVar13" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) >> number_literal) )) * number_literal) ))) <= identifier) )) (compound_statement "{\n            iVar5 = 0;\n          }" { (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) })) (expression_statement "piVar18[1] = iVar5;" (assignment_expression "piVar18[1] = iVar5" (subscript_expression "piVar18[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar18 = piVar17;" (assignment_expression "piVar18 = piVar17" identifier = identifier) ;) }) while (parenthesized_expression "(puVar6 != puVar12)" ( (binary_expression "puVar6 != puVar12" identifier != identifier) )) ;) (expression_statement "piVar10 = *(int **)(this + 4);" (assignment_expression "piVar10 = *(int **)(this + 4)" identifier = (pointer_expression "*(int **)(this + 4)" * (cast_expression "(int **)(this + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) ))))) ;) (if_statement "if (piVar10 == piVar19 + 1) goto LAB_002643bc;" if (parenthesized_expression "(piVar10 == piVar19 + 1)" ( (binary_expression "piVar10 == piVar19 + 1" identifier == (binary_expression "piVar19 + 1" identifier + number_literal)) )) (goto_statement "goto LAB_002643bc;" goto statement_identifier ;)) }))) (expression_statement "piVar19 = piVar19 + 1;" (assignment_expression "piVar19 = piVar19 + 1" identifier = (binary_expression "piVar19 + 1" identifier + number_literal)) ;) (expression_statement "piVar18 = *(int **)this;" (assignment_expression "piVar18 = *(int **)this" identifier = (pointer_expression "*(int **)this" * (cast_expression "(int **)this" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "piVar16 = piVar17;" (assignment_expression "piVar16 = piVar17" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_002643c4;" goto statement_identifier ;) (labeled_statement "LAB_002643bc:\n  piVar18 = piVar19 + 1;" statement_identifier : (expression_statement "piVar18 = piVar19 + 1;" (assignment_expression "piVar18 = piVar19 + 1" identifier = (binary_expression "piVar19 + 1" identifier + number_literal)) ;)) (expression_statement "uVar14 = (int)piVar17 - (int)piVar3;" (assignment_expression "uVar14 = (int)piVar17 - (int)piVar3" identifier = (binary_expression "(int)piVar17 - (int)piVar3" (cast_expression "(int)piVar17" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (labeled_statement "LAB_002643c4:\n  uVar9 = 0x71c;" statement_identifier : (expression_statement "uVar9 = 0x71c;" (assignment_expression "uVar9 = 0x71c" identifier = number_literal) ;)) (if_statement "if (uVar15 == uVar14) {\n    iVar4 = *(int *)this;\n    *param_2 = (uchar *)piVar3;\n    *param_3 = uVar15;\n    *param_4 = (int)piVar18 - iVar4 >> 2;\n    return;\n  }" if (parenthesized_expression "(uVar15 == uVar14)" ( (binary_expression "uVar15 == uVar14" identifier == identifier) )) (compound_statement "{\n    iVar4 = *(int *)this;\n    *param_2 = (uchar *)piVar3;\n    *param_3 = uVar15;\n    *param_4 = (int)piVar18 - iVar4 >> 2;\n    return;\n  }" { (expression_statement "iVar4 = *(int *)this;" (assignment_expression "iVar4 = *(int *)this" identifier = (pointer_expression "*(int *)this" * (cast_expression "(int *)this" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*param_2 = (uchar *)piVar3;" (assignment_expression "*param_2 = (uchar *)piVar3" (pointer_expression "*param_2" * identifier) = (cast_expression "(uchar *)piVar3" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "*param_3 = uVar15;" (assignment_expression "*param_3 = uVar15" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "*param_4 = (int)piVar18 - iVar4 >> 2;" (assignment_expression "*param_4 = (int)piVar18 - iVar4 >> 2" (pointer_expression "*param_4" * identifier) = (binary_expression "(int)piVar18 - iVar4 >> 2" (binary_expression "(int)piVar18 - iVar4" (cast_expression "(int)piVar18" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) >> number_literal)) ;) (return_statement "return;" return ;) })) (labeled_statement "LAB_0026444c:\n  (*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_DAT_0043226c + 0x13e0,uVar9,PTR_DAT_0043226c + 0x1808);" statement_identifier : (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_DAT_0043226c + 0x13e0,uVar9,PTR_DAT_0043226c + 0x1808);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_DAT_0043226c + 0x13e0,uVar9,PTR_DAT_0043226c + 0x1808)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0043226c + 0x13e0,uVar9,PTR_DAT_0043226c + 0x1808)" ( (binary_expression "PTR_DAT_0043226c + 0x13e0" identifier + number_literal) , identifier , (binary_expression "PTR_DAT_0043226c + 0x1808" identifier + number_literal) ))) ;)) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "/* DWARF original name: def_section_contents<64, false>\n   DWARF original prototype: void def_section_contents<64,_false>(Versions * this, Stringpool *\n   dynpool, uchar * * pp, uint * psize, uint * pentries) */\n\nvoid __thiscall\ngold::Versions::def_section_contents<64,_false>\n          (Versions *this,Stringpool *dynpool,uchar **pp,uint *psize,uint *pentries)\n\n{\n  size_type *psVar1;\n  _Alloc_hider *p_Var2;\n  undefined *puVar3;\n  int *piVar4;\n  uint uVar5;\n  int iVar6;\n  pointer ppVVar7;\n  Verdef *pVVar8;\n  pointer pbVar9;\n  uint uVar10;\n  byte *pbVar11;\n  pointer pbVar12;\n  undefined4 uVar13;\n  pointer ppVVar14;\n  uint uVar15;\n  pointer pbVar16;\n  uint uVar17;\n  uint uVar18;\n  int *piVar19;\n  int *piVar20;\n  pointer ppVVar21;\n  \n  if (this->is_finalized_ == false) goto LAB_00264464;\n  ppVVar7 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n            _M_start;\n  ppVVar14 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl\n             ._M_finish;\n  if (ppVVar14 == ppVVar7) {\nLAB_00264448:\n    uVar13 = 0x702;\n    goto LAB_0026444c;\n  }\n  uVar18 = 0;\n  do {\n    pVVar8 = *ppVVar7;\n    ppVVar7 = ppVVar7 + 1;\n    uVar18 = uVar18 + ((int)(pVVar8->deps_).\n                            super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                            ._M_impl._M_finish -\n                       (int)(pVVar8->deps_).\n                            super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                            ._M_impl._M_start >> 3) * 0x55555558 + 0x1c;\n  } while (ppVVar14 != ppVVar7);\n  piVar4 = (int *)(*(code *)PTR_operator_new___004322dc)(uVar18);\n  ppVVar7 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n            _M_start;\n  ppVVar14 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl\n             ._M_finish;\n  if (ppVVar7 != ppVVar14) {\n    uVar17 = 0;\n    piVar19 = piVar4;\n    ppVVar21 = ppVVar7;\n    do {\n      pVVar8 = *ppVVar21;\n      uVar17 = uVar17 + 1;\n      *(undefined2 *)piVar19 = 0x100;\n      uVar5 = (uint)pVVar8->is_base_;\n      if (pVVar8->is_weak_ != false) {\n        uVar5 = uVar5 | 2;\n      }\n      if (pVVar8->is_info_ != false) {\n        uVar5 = uVar5 | 4;\n      }\n      uVar10 = (pVVar8->super_Version_base).index_;\n      *(short *)((int)piVar19 + 2) = (short)(uVar5 << 8);\n      if (uVar10 == 0xffffffff) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_s__0043226c + 0x1a58);\n        goto LAB_00264448;\n      }\n      pbVar16 = (pVVar8->deps_).\n                super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                ._M_impl._M_start;\n      pbVar9 = (pVVar8->deps_).\n               super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n               ._M_impl._M_finish;\n      uVar5 = 0;\n      pbVar11 = (byte *)pVVar8->name_;\n      *(ushort *)(piVar19 + 1) = (ushort)((uVar10 & 0xff) << 8) | (ushort)(uVar10 >> 8) & 0xff;\n      uVar10 = ((int)pbVar9 - (int)pbVar16 >> 3) * -0x55555555 + 1;\n      *(ushort *)((int)piVar19 + 6) = (ushort)((uVar10 & 0xff) << 8) | (ushort)(uVar10 >> 8) & 0xff;\n      while (uVar15 = (uint)*pbVar11, uVar15 != 0) {\n        while( true ) {\n          pbVar11 = pbVar11 + 1;\n          uVar5 = uVar15 + uVar5 * 0x10;\n          if ((uVar5 & 0xf0000000) == 0) break;\n          uVar5 = (uVar5 & 0xf0000000) >> 0x18 ^ uVar5 & 0xfffffff;\n          uVar15 = (uint)*pbVar11;\n          if (uVar15 == 0) goto LAB_002642bc;\n        }\n      }\nLAB_002642bc:\n      piVar19[3] = 0x14000000;\n      piVar19[2] = (((uVar5 >> 0x10) << 0x18 | (uVar5 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar5 & 0xff) << 8 | uVar5 >> 8 & 0xff) * 0x10000;\n      puVar3 = PTR_get_offset_004323e0;\n      if (uVar17 < (uint)((int)ppVVar14 - (int)ppVVar7 >> 2)) {\n        uVar5 = uVar10 * 8 + 0x14;\n        iVar6 = (((uVar5 >> 0x10) << 0x18 | (uVar5 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar5 & 0xff) << 8 | uVar5 >> 8 & 0xff) * 0x10000;\n      }\n      else {\n        iVar6 = 0;\n      }\n      piVar19[4] = iVar6;\n      uVar5 = (*(code *)puVar3)(dynpool);\n      piVar20 = piVar19 + 7;\n      pbVar16 = (pVVar8->deps_).\n                super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                ._M_impl._M_start;\n      pbVar9 = (pVVar8->deps_).\n               super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n               ._M_impl._M_finish;\n      piVar19[5] = (((uVar5 >> 0x10) << 0x18 | (uVar5 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar5 & 0xff) << 8 | uVar5 >> 8 & 0xff) * 0x10000;\n      if (pbVar16 == pbVar9) {\n        ppVVar14 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                   _M_impl._M_finish;\n        piVar19[6] = 0;\n        if (ppVVar14 == ppVVar21 + 1) goto LAB_002643bc;\n      }\n      else {\n        uVar5 = 0;\n        piVar19[6] = 0x8000000;\n        piVar19 = piVar20;\n        do {\n          p_Var2 = &pbVar16->_M_dataplus;\n          piVar20 = piVar19 + 2;\n          psVar1 = &pbVar16->_M_string_length;\n          uVar5 = uVar5 + 1;\n          pbVar16 = pbVar16 + 1;\n          uVar10 = (*(code *)PTR_get_offset_with_length_004351bc)(dynpool,p_Var2->_M_p,*psVar1);\n          pbVar12 = (pVVar8->deps_).\n                    super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                    ._M_impl._M_finish;\n          pbVar9 = (pVVar8->deps_).\n                   super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                   ._M_impl._M_start;\n          *piVar19 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n          iVar6 = 0x8000000;\n          if ((uint)(((int)pbVar12 - (int)pbVar9 >> 3) * -0x55555555) <= uVar5) {\n            iVar6 = 0;\n          }\n          piVar19[1] = iVar6;\n          piVar19 = piVar20;\n        } while (pbVar12 != pbVar16);\n        ppVVar14 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                   _M_impl._M_finish;\n        if (ppVVar14 == ppVVar21 + 1) goto LAB_002643bc;\n      }\n      ppVVar21 = ppVVar21 + 1;\n      ppVVar7 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                _M_impl._M_start;\n      piVar19 = piVar20;\n    } while( true );\n  }\n  uVar17 = 0;\nLAB_002643c4:\n  uVar13 = 0x71c;\n  if (uVar18 == uVar17) {\n    ppVVar14 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n               _M_impl._M_start;\n    *pp = (uchar *)piVar4;\n    *psize = uVar18;\n    *pentries = (int)ppVVar7 - (int)ppVVar14 >> 2;\n    return;\n  }\nLAB_0026444c:\n  do {\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s__0043226c + 0x13e0,uVar13,PTR_s__0043226c + 0x1808);\nLAB_00264464:\n    uVar13 = 0x701;\n  } while( true );\nLAB_002643bc:\n  ppVVar7 = ppVVar21 + 1;\n  uVar17 = (int)piVar20 - (int)piVar4;\n  goto LAB_002643c4;\n}\n\n" comment (declaration "void __thiscall\ngold::Versions::def_section_contents<64,_false>\n          (Versions *this,Stringpool *dynpool,uchar **pp,uint *psize,uint *pentries)\n\n{\n  size_type *psVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Versions::" identifier : : identifier : :) identifier (ERROR "<64" < number_literal) , (ERROR "_false>\n          (Versions *this,Stringpool *dynpool,uchar **pp,uint *psize,uint *pentries)\n\n{\n  size_type" (function_declarator "_false>\n          (Versions *this,Stringpool *dynpool,uchar **pp,uint *psize,uint *pentries)" identifier (ERROR ">" >) (parameter_list "(Versions *this,Stringpool *dynpool,uchar **pp,uint *psize,uint *pentries)" ( (parameter_declaration "Versions *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Stringpool *dynpool" type_identifier (pointer_declarator "*dynpool" * identifier)) , (parameter_declaration "uchar **pp" type_identifier (pointer_declarator "**pp" * (pointer_declarator "*pp" * identifier))) , (parameter_declaration "uint *psize" type_identifier (pointer_declarator "*psize" * identifier)) , (parameter_declaration "uint *pentries" type_identifier (pointer_declarator "*pentries" * identifier)) ))) { identifier) (pointer_declarator "*psVar1" * identifier) ;) (declaration "_Alloc_hider *p_Var2;" type_identifier (pointer_declarator "*p_Var2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "pointer ppVVar7;" type_identifier identifier ;) (declaration "Verdef *pVVar8;" type_identifier (pointer_declarator "*pVVar8" * identifier) ;) (declaration "pointer pbVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "pointer pbVar12;" type_identifier identifier ;) (declaration "undefined4 uVar13;" type_identifier identifier ;) (declaration "pointer ppVVar14;" type_identifier identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "pointer pbVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "int *piVar19;" primitive_type (pointer_declarator "*piVar19" * identifier) ;) (declaration "int *piVar20;" primitive_type (pointer_declarator "*piVar20" * identifier) ;) (declaration "pointer ppVVar21;" type_identifier identifier ;) (if_statement "if (this->is_finalized_ == false) goto LAB_00264464;" if (parenthesized_expression "(this->is_finalized_ == false)" ( (binary_expression "this->is_finalized_ == false" (field_expression "this->is_finalized_" identifier -> field_identifier) == false) )) (goto_statement "goto LAB_00264464;" goto statement_identifier ;)) (expression_statement "ppVVar7 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n            _M_start;" (field_expression "ppVVar7 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n            _M_start" (field_expression "ppVVar7 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl" (binary_expression "ppVVar7 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_" (binary_expression "ppVVar7 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold" (binary_expression "ppVVar7 = (this->defs_).super__Vector_base<gold::Verdef*,_std" (assignment_expression "ppVVar7 = (this->defs_).super__Vector_base<gold" identifier = (binary_expression "(this->defs_).super__Vector_base<gold" (field_expression "(this->defs_).super__Vector_base" (parenthesized_expression "(this->defs_)" ( (field_expression "this->defs_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Verdef" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Verdef" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "ppVVar14 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl\n             ._M_finish;" (field_expression "ppVVar14 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl\n             ._M_finish" (field_expression "ppVVar14 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl" (binary_expression "ppVVar14 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_" (binary_expression "ppVVar14 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold" (binary_expression "ppVVar14 = (this->defs_).super__Vector_base<gold::Verdef*,_std" (assignment_expression "ppVVar14 = (this->defs_).super__Vector_base<gold" identifier = (binary_expression "(this->defs_).super__Vector_base<gold" (field_expression "(this->defs_).super__Vector_base" (parenthesized_expression "(this->defs_)" ( (field_expression "this->defs_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Verdef" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Verdef" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if (ppVVar14 == ppVVar7) {\nLAB_00264448:\n    uVar13 = 0x702;\n    goto LAB_0026444c;\n  }" if (parenthesized_expression "(ppVVar14 == ppVVar7)" ( (binary_expression "ppVVar14 == ppVVar7" identifier == identifier) )) (compound_statement "{\nLAB_00264448:\n    uVar13 = 0x702;\n    goto LAB_0026444c;\n  }" { (labeled_statement "LAB_00264448:\n    uVar13 = 0x702;" statement_identifier : (expression_statement "uVar13 = 0x702;" (assignment_expression "uVar13 = 0x702" identifier = number_literal) ;)) (goto_statement "goto LAB_0026444c;" goto statement_identifier ;) })) (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n    pVVar8 = *ppVVar7;\n    ppVVar7 = ppVVar7 + 1;\n    uVar18 = uVar18 + ((int)(pVVar8->deps_).\n                            super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                            ._M_impl._M_finish -\n                       (int)(pVVar8->deps_).\n                            super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                            ._M_impl._M_start >> 3) * 0x55555558 + 0x1c;\n  } while (ppVVar14 != ppVVar7);" do (compound_statement "{\n    pVVar8 = *ppVVar7;\n    ppVVar7 = ppVVar7 + 1;\n    uVar18 = uVar18 + ((int)(pVVar8->deps_).\n                            super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                            ._M_impl._M_finish -\n                       (int)(pVVar8->deps_).\n                            super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                            ._M_impl._M_start >> 3) * 0x55555558 + 0x1c;\n  }" { (expression_statement "pVVar8 = *ppVVar7;" (assignment_expression "pVVar8 = *ppVVar7" identifier = (pointer_expression "*ppVVar7" * identifier)) ;) (expression_statement "ppVVar7 = ppVVar7 + 1;" (assignment_expression "ppVVar7 = ppVVar7 + 1" identifier = (binary_expression "ppVVar7 + 1" identifier + number_literal)) ;) (expression_statement "uVar18 = uVar18 + ((int)(pVVar8->deps_).\n                            super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                            ._M_impl._M_finish -\n                       (int)(pVVar8->deps_).\n                            super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                            ._M_impl._M_start >> 3) * 0x55555558 + 0x1c;" (assignment_expression "uVar18 = uVar18 + ((int)(pVVar8->deps_).\n                            super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                            ._M_impl._M_finish -\n                       (int)(pVVar8->deps_).\n                            super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                            ._M_impl._M_start >> 3) * 0x55555558 + 0x1c" identifier = (binary_expression "uVar18 + ((int)(pVVar8->deps_).\n                            super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                            ._M_impl._M_finish -\n                       (int)(pVVar8->deps_).\n                            super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                            ._M_impl._M_start >> 3) * 0x55555558 + 0x1c" (binary_expression "uVar18 + ((int)(pVVar8->deps_).\n                            super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                            ._M_impl._M_finish -\n                       (int)(pVVar8->deps_).\n                            super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                            ._M_impl._M_start >> 3) * 0x55555558" identifier + (binary_expression "((int)(pVVar8->deps_).\n                            super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                            ._M_impl._M_finish -\n                       (int)(pVVar8->deps_).\n                            super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                            ._M_impl._M_start >> 3) * 0x55555558" (parenthesized_expression "((int)(pVVar8->deps_).\n                            super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                            ._M_impl._M_finish -\n                       (int)(pVVar8->deps_).\n                            super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                            ._M_impl._M_start >> 3)" ( (ERROR "(int)(pVVar8->deps_).\n                            super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                            ._M_impl._M_finish -\n                       (int)(pVVar8->deps_).\n                            super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::" (comma_expression "(int)(pVVar8->deps_).\n                            super__Vector_base<std::__cxx11::basic_string<char,_std" (binary_expression "(int)(pVVar8->deps_).\n                            super__Vector_base<std::__cxx11::basic_string<char" (binary_expression "(int)(pVVar8->deps_).\n                            super__Vector_base<std" (cast_expression "(int)(pVVar8->deps_).\n                            super__Vector_base" ( (type_descriptor "int" primitive_type) ) (field_expression "(pVVar8->deps_).\n                            super__Vector_base" (parenthesized_expression "(pVVar8->deps_)" ( (field_expression "pVVar8->deps_" identifier -> field_identifier) )) . field_identifier)) < identifier) (ERROR "::__cxx11::basic_string" : : identifier : : identifier) < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>_>_>\n                            ._M_impl._M_finish -\n                       (int)(pVVar8->deps_).\n                            super__Vector_base<std" (binary_expression "allocator<char>_>_>_>\n                            ._M_impl._M_finish -\n                       (int)(pVVar8->deps_).\n                            super__Vector_base" (field_expression "allocator<char>_>_>_>\n                            ._M_impl._M_finish" (field_expression "allocator<char>_>_>_>\n                            ._M_impl" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) - (cast_expression "(int)(pVVar8->deps_).\n                            super__Vector_base" ( (type_descriptor "int" primitive_type) ) (field_expression "(pVVar8->deps_).\n                            super__Vector_base" (parenthesized_expression "(pVVar8->deps_)" ( (field_expression "pVVar8->deps_" identifier -> field_identifier) )) . field_identifier))) < identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_>_>\n                            ._M_impl._M_start >> 3" (field_expression "allocator<char>_>_>_>\n                            ._M_impl._M_start" (field_expression "allocator<char>_>_>_>\n                            ._M_impl" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) >> number_literal) )) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(ppVVar14 != ppVVar7)" ( (binary_expression "ppVVar14 != ppVVar7" identifier != identifier) )) ;) (expression_statement "piVar4 = (int *)(*(code *)PTR_operator_new___004322dc)(uVar18);" (assignment_expression "piVar4 = (int *)(*(code *)PTR_operator_new___004322dc)(uVar18)" identifier = (cast_expression "(int *)(*(code *)PTR_operator_new___004322dc)(uVar18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new___004322dc)(uVar18)" (parenthesized_expression "(*(code *)PTR_operator_new___004322dc)" ( (pointer_expression "*(code *)PTR_operator_new___004322dc" * (cast_expression "(code *)PTR_operator_new___004322dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar18)" ( identifier ))))) ;) (expression_statement "ppVVar7 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n            _M_start;" (field_expression "ppVVar7 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n            _M_start" (field_expression "ppVVar7 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl" (binary_expression "ppVVar7 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_" (binary_expression "ppVVar7 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold" (binary_expression "ppVVar7 = (this->defs_).super__Vector_base<gold::Verdef*,_std" (assignment_expression "ppVVar7 = (this->defs_).super__Vector_base<gold" identifier = (binary_expression "(this->defs_).super__Vector_base<gold" (field_expression "(this->defs_).super__Vector_base" (parenthesized_expression "(this->defs_)" ( (field_expression "this->defs_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Verdef" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Verdef" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "ppVVar14 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl\n             ._M_finish;" (field_expression "ppVVar14 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl\n             ._M_finish" (field_expression "ppVVar14 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl" (binary_expression "ppVVar14 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_" (binary_expression "ppVVar14 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold" (binary_expression "ppVVar14 = (this->defs_).super__Vector_base<gold::Verdef*,_std" (assignment_expression "ppVVar14 = (this->defs_).super__Vector_base<gold" identifier = (binary_expression "(this->defs_).super__Vector_base<gold" (field_expression "(this->defs_).super__Vector_base" (parenthesized_expression "(this->defs_)" ( (field_expression "this->defs_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Verdef" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Verdef" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if (ppVVar7 != ppVVar14) {\n    uVar17 = 0;\n    piVar19 = piVar4;\n    ppVVar21 = ppVVar7;\n    do {\n      pVVar8 = *ppVVar21;\n      uVar17 = uVar17 + 1;\n      *(undefined2 *)piVar19 = 0x100;\n      uVar5 = (uint)pVVar8->is_base_;\n      if (pVVar8->is_weak_ != false) {\n        uVar5 = uVar5 | 2;\n      }\n      if (pVVar8->is_info_ != false) {\n        uVar5 = uVar5 | 4;\n      }\n      uVar10 = (pVVar8->super_Version_base).index_;\n      *(short *)((int)piVar19 + 2) = (short)(uVar5 << 8);\n      if (uVar10 == 0xffffffff) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_s__0043226c + 0x1a58);\n        goto LAB_00264448;\n      }\n      pbVar16 = (pVVar8->deps_).\n                super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                ._M_impl._M_start;\n      pbVar9 = (pVVar8->deps_).\n               super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n               ._M_impl._M_finish;\n      uVar5 = 0;\n      pbVar11 = (byte *)pVVar8->name_;\n      *(ushort *)(piVar19 + 1) = (ushort)((uVar10 & 0xff) << 8) | (ushort)(uVar10 >> 8) & 0xff;\n      uVar10 = ((int)pbVar9 - (int)pbVar16 >> 3) * -0x55555555 + 1;\n      *(ushort *)((int)piVar19 + 6) = (ushort)((uVar10 & 0xff) << 8) | (ushort)(uVar10 >> 8) & 0xff;\n      while (uVar15 = (uint)*pbVar11, uVar15 != 0) {\n        while( true ) {\n          pbVar11 = pbVar11 + 1;\n          uVar5 = uVar15 + uVar5 * 0x10;\n          if ((uVar5 & 0xf0000000) == 0) break;\n          uVar5 = (uVar5 & 0xf0000000) >> 0x18 ^ uVar5 & 0xfffffff;\n          uVar15 = (uint)*pbVar11;\n          if (uVar15 == 0) goto LAB_002642bc;\n        }\n      }\nLAB_002642bc:\n      piVar19[3] = 0x14000000;\n      piVar19[2] = (((uVar5 >> 0x10) << 0x18 | (uVar5 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar5 & 0xff) << 8 | uVar5 >> 8 & 0xff) * 0x10000;\n      puVar3 = PTR_get_offset_004323e0;\n      if (uVar17 < (uint)((int)ppVVar14 - (int)ppVVar7 >> 2)) {\n        uVar5 = uVar10 * 8 + 0x14;\n        iVar6 = (((uVar5 >> 0x10) << 0x18 | (uVar5 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar5 & 0xff) << 8 | uVar5 >> 8 & 0xff) * 0x10000;\n      }\n      else {\n        iVar6 = 0;\n      }\n      piVar19[4] = iVar6;\n      uVar5 = (*(code *)puVar3)(dynpool);\n      piVar20 = piVar19 + 7;\n      pbVar16 = (pVVar8->deps_).\n                super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                ._M_impl._M_start;\n      pbVar9 = (pVVar8->deps_).\n               super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n               ._M_impl._M_finish;\n      piVar19[5] = (((uVar5 >> 0x10) << 0x18 | (uVar5 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar5 & 0xff) << 8 | uVar5 >> 8 & 0xff) * 0x10000;\n      if (pbVar16 == pbVar9) {\n        ppVVar14 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                   _M_impl._M_finish;\n        piVar19[6] = 0;\n        if (ppVVar14 == ppVVar21 + 1) goto LAB_002643bc;\n      }\n      else {\n        uVar5 = 0;\n        piVar19[6] = 0x8000000;\n        piVar19 = piVar20;\n        do {\n          p_Var2 = &pbVar16->_M_dataplus;\n          piVar20 = piVar19 + 2;\n          psVar1 = &pbVar16->_M_string_length;\n          uVar5 = uVar5 + 1;\n          pbVar16 = pbVar16 + 1;\n          uVar10 = (*(code *)PTR_get_offset_with_length_004351bc)(dynpool,p_Var2->_M_p,*psVar1);\n          pbVar12 = (pVVar8->deps_).\n                    super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                    ._M_impl._M_finish;\n          pbVar9 = (pVVar8->deps_).\n                   super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                   ._M_impl._M_start;\n          *piVar19 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n          iVar6 = 0x8000000;\n          if ((uint)(((int)pbVar12 - (int)pbVar9 >> 3) * -0x55555555) <= uVar5) {\n            iVar6 = 0;\n          }\n          piVar19[1] = iVar6;\n          piVar19 = piVar20;\n        } while (pbVar12 != pbVar16);\n        ppVVar14 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                   _M_impl._M_finish;\n        if (ppVVar14 == ppVVar21 + 1) goto LAB_002643bc;\n      }\n      ppVVar21 = ppVVar21 + 1;\n      ppVVar7 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                _M_impl._M_start;\n      piVar19 = piVar20;\n    } while( true );\n  }" if (parenthesized_expression "(ppVVar7 != ppVVar14)" ( (binary_expression "ppVVar7 != ppVVar14" identifier != identifier) )) (compound_statement "{\n    uVar17 = 0;\n    piVar19 = piVar4;\n    ppVVar21 = ppVVar7;\n    do {\n      pVVar8 = *ppVVar21;\n      uVar17 = uVar17 + 1;\n      *(undefined2 *)piVar19 = 0x100;\n      uVar5 = (uint)pVVar8->is_base_;\n      if (pVVar8->is_weak_ != false) {\n        uVar5 = uVar5 | 2;\n      }\n      if (pVVar8->is_info_ != false) {\n        uVar5 = uVar5 | 4;\n      }\n      uVar10 = (pVVar8->super_Version_base).index_;\n      *(short *)((int)piVar19 + 2) = (short)(uVar5 << 8);\n      if (uVar10 == 0xffffffff) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_s__0043226c + 0x1a58);\n        goto LAB_00264448;\n      }\n      pbVar16 = (pVVar8->deps_).\n                super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                ._M_impl._M_start;\n      pbVar9 = (pVVar8->deps_).\n               super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n               ._M_impl._M_finish;\n      uVar5 = 0;\n      pbVar11 = (byte *)pVVar8->name_;\n      *(ushort *)(piVar19 + 1) = (ushort)((uVar10 & 0xff) << 8) | (ushort)(uVar10 >> 8) & 0xff;\n      uVar10 = ((int)pbVar9 - (int)pbVar16 >> 3) * -0x55555555 + 1;\n      *(ushort *)((int)piVar19 + 6) = (ushort)((uVar10 & 0xff) << 8) | (ushort)(uVar10 >> 8) & 0xff;\n      while (uVar15 = (uint)*pbVar11, uVar15 != 0) {\n        while( true ) {\n          pbVar11 = pbVar11 + 1;\n          uVar5 = uVar15 + uVar5 * 0x10;\n          if ((uVar5 & 0xf0000000) == 0) break;\n          uVar5 = (uVar5 & 0xf0000000) >> 0x18 ^ uVar5 & 0xfffffff;\n          uVar15 = (uint)*pbVar11;\n          if (uVar15 == 0) goto LAB_002642bc;\n        }\n      }\nLAB_002642bc:\n      piVar19[3] = 0x14000000;\n      piVar19[2] = (((uVar5 >> 0x10) << 0x18 | (uVar5 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar5 & 0xff) << 8 | uVar5 >> 8 & 0xff) * 0x10000;\n      puVar3 = PTR_get_offset_004323e0;\n      if (uVar17 < (uint)((int)ppVVar14 - (int)ppVVar7 >> 2)) {\n        uVar5 = uVar10 * 8 + 0x14;\n        iVar6 = (((uVar5 >> 0x10) << 0x18 | (uVar5 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar5 & 0xff) << 8 | uVar5 >> 8 & 0xff) * 0x10000;\n      }\n      else {\n        iVar6 = 0;\n      }\n      piVar19[4] = iVar6;\n      uVar5 = (*(code *)puVar3)(dynpool);\n      piVar20 = piVar19 + 7;\n      pbVar16 = (pVVar8->deps_).\n                super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                ._M_impl._M_start;\n      pbVar9 = (pVVar8->deps_).\n               super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n               ._M_impl._M_finish;\n      piVar19[5] = (((uVar5 >> 0x10) << 0x18 | (uVar5 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar5 & 0xff) << 8 | uVar5 >> 8 & 0xff) * 0x10000;\n      if (pbVar16 == pbVar9) {\n        ppVVar14 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                   _M_impl._M_finish;\n        piVar19[6] = 0;\n        if (ppVVar14 == ppVVar21 + 1) goto LAB_002643bc;\n      }\n      else {\n        uVar5 = 0;\n        piVar19[6] = 0x8000000;\n        piVar19 = piVar20;\n        do {\n          p_Var2 = &pbVar16->_M_dataplus;\n          piVar20 = piVar19 + 2;\n          psVar1 = &pbVar16->_M_string_length;\n          uVar5 = uVar5 + 1;\n          pbVar16 = pbVar16 + 1;\n          uVar10 = (*(code *)PTR_get_offset_with_length_004351bc)(dynpool,p_Var2->_M_p,*psVar1);\n          pbVar12 = (pVVar8->deps_).\n                    super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                    ._M_impl._M_finish;\n          pbVar9 = (pVVar8->deps_).\n                   super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                   ._M_impl._M_start;\n          *piVar19 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n          iVar6 = 0x8000000;\n          if ((uint)(((int)pbVar12 - (int)pbVar9 >> 3) * -0x55555555) <= uVar5) {\n            iVar6 = 0;\n          }\n          piVar19[1] = iVar6;\n          piVar19 = piVar20;\n        } while (pbVar12 != pbVar16);\n        ppVVar14 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                   _M_impl._M_finish;\n        if (ppVVar14 == ppVVar21 + 1) goto LAB_002643bc;\n      }\n      ppVVar21 = ppVVar21 + 1;\n      ppVVar7 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                _M_impl._M_start;\n      piVar19 = piVar20;\n    } while( true );\n  }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "piVar19 = piVar4;" (assignment_expression "piVar19 = piVar4" identifier = identifier) ;) (expression_statement "ppVVar21 = ppVVar7;" (assignment_expression "ppVVar21 = ppVVar7" identifier = identifier) ;) (do_statement "do {\n      pVVar8 = *ppVVar21;\n      uVar17 = uVar17 + 1;\n      *(undefined2 *)piVar19 = 0x100;\n      uVar5 = (uint)pVVar8->is_base_;\n      if (pVVar8->is_weak_ != false) {\n        uVar5 = uVar5 | 2;\n      }\n      if (pVVar8->is_info_ != false) {\n        uVar5 = uVar5 | 4;\n      }\n      uVar10 = (pVVar8->super_Version_base).index_;\n      *(short *)((int)piVar19 + 2) = (short)(uVar5 << 8);\n      if (uVar10 == 0xffffffff) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_s__0043226c + 0x1a58);\n        goto LAB_00264448;\n      }\n      pbVar16 = (pVVar8->deps_).\n                super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                ._M_impl._M_start;\n      pbVar9 = (pVVar8->deps_).\n               super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n               ._M_impl._M_finish;\n      uVar5 = 0;\n      pbVar11 = (byte *)pVVar8->name_;\n      *(ushort *)(piVar19 + 1) = (ushort)((uVar10 & 0xff) << 8) | (ushort)(uVar10 >> 8) & 0xff;\n      uVar10 = ((int)pbVar9 - (int)pbVar16 >> 3) * -0x55555555 + 1;\n      *(ushort *)((int)piVar19 + 6) = (ushort)((uVar10 & 0xff) << 8) | (ushort)(uVar10 >> 8) & 0xff;\n      while (uVar15 = (uint)*pbVar11, uVar15 != 0) {\n        while( true ) {\n          pbVar11 = pbVar11 + 1;\n          uVar5 = uVar15 + uVar5 * 0x10;\n          if ((uVar5 & 0xf0000000) == 0) break;\n          uVar5 = (uVar5 & 0xf0000000) >> 0x18 ^ uVar5 & 0xfffffff;\n          uVar15 = (uint)*pbVar11;\n          if (uVar15 == 0) goto LAB_002642bc;\n        }\n      }\nLAB_002642bc:\n      piVar19[3] = 0x14000000;\n      piVar19[2] = (((uVar5 >> 0x10) << 0x18 | (uVar5 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar5 & 0xff) << 8 | uVar5 >> 8 & 0xff) * 0x10000;\n      puVar3 = PTR_get_offset_004323e0;\n      if (uVar17 < (uint)((int)ppVVar14 - (int)ppVVar7 >> 2)) {\n        uVar5 = uVar10 * 8 + 0x14;\n        iVar6 = (((uVar5 >> 0x10) << 0x18 | (uVar5 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar5 & 0xff) << 8 | uVar5 >> 8 & 0xff) * 0x10000;\n      }\n      else {\n        iVar6 = 0;\n      }\n      piVar19[4] = iVar6;\n      uVar5 = (*(code *)puVar3)(dynpool);\n      piVar20 = piVar19 + 7;\n      pbVar16 = (pVVar8->deps_).\n                super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                ._M_impl._M_start;\n      pbVar9 = (pVVar8->deps_).\n               super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n               ._M_impl._M_finish;\n      piVar19[5] = (((uVar5 >> 0x10) << 0x18 | (uVar5 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar5 & 0xff) << 8 | uVar5 >> 8 & 0xff) * 0x10000;\n      if (pbVar16 == pbVar9) {\n        ppVVar14 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                   _M_impl._M_finish;\n        piVar19[6] = 0;\n        if (ppVVar14 == ppVVar21 + 1) goto LAB_002643bc;\n      }\n      else {\n        uVar5 = 0;\n        piVar19[6] = 0x8000000;\n        piVar19 = piVar20;\n        do {\n          p_Var2 = &pbVar16->_M_dataplus;\n          piVar20 = piVar19 + 2;\n          psVar1 = &pbVar16->_M_string_length;\n          uVar5 = uVar5 + 1;\n          pbVar16 = pbVar16 + 1;\n          uVar10 = (*(code *)PTR_get_offset_with_length_004351bc)(dynpool,p_Var2->_M_p,*psVar1);\n          pbVar12 = (pVVar8->deps_).\n                    super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                    ._M_impl._M_finish;\n          pbVar9 = (pVVar8->deps_).\n                   super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                   ._M_impl._M_start;\n          *piVar19 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n          iVar6 = 0x8000000;\n          if ((uint)(((int)pbVar12 - (int)pbVar9 >> 3) * -0x55555555) <= uVar5) {\n            iVar6 = 0;\n          }\n          piVar19[1] = iVar6;\n          piVar19 = piVar20;\n        } while (pbVar12 != pbVar16);\n        ppVVar14 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                   _M_impl._M_finish;\n        if (ppVVar14 == ppVVar21 + 1) goto LAB_002643bc;\n      }\n      ppVVar21 = ppVVar21 + 1;\n      ppVVar7 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                _M_impl._M_start;\n      piVar19 = piVar20;\n    } while( true );" do (compound_statement "{\n      pVVar8 = *ppVVar21;\n      uVar17 = uVar17 + 1;\n      *(undefined2 *)piVar19 = 0x100;\n      uVar5 = (uint)pVVar8->is_base_;\n      if (pVVar8->is_weak_ != false) {\n        uVar5 = uVar5 | 2;\n      }\n      if (pVVar8->is_info_ != false) {\n        uVar5 = uVar5 | 4;\n      }\n      uVar10 = (pVVar8->super_Version_base).index_;\n      *(short *)((int)piVar19 + 2) = (short)(uVar5 << 8);\n      if (uVar10 == 0xffffffff) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_s__0043226c + 0x1a58);\n        goto LAB_00264448;\n      }\n      pbVar16 = (pVVar8->deps_).\n                super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                ._M_impl._M_start;\n      pbVar9 = (pVVar8->deps_).\n               super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n               ._M_impl._M_finish;\n      uVar5 = 0;\n      pbVar11 = (byte *)pVVar8->name_;\n      *(ushort *)(piVar19 + 1) = (ushort)((uVar10 & 0xff) << 8) | (ushort)(uVar10 >> 8) & 0xff;\n      uVar10 = ((int)pbVar9 - (int)pbVar16 >> 3) * -0x55555555 + 1;\n      *(ushort *)((int)piVar19 + 6) = (ushort)((uVar10 & 0xff) << 8) | (ushort)(uVar10 >> 8) & 0xff;\n      while (uVar15 = (uint)*pbVar11, uVar15 != 0) {\n        while( true ) {\n          pbVar11 = pbVar11 + 1;\n          uVar5 = uVar15 + uVar5 * 0x10;\n          if ((uVar5 & 0xf0000000) == 0) break;\n          uVar5 = (uVar5 & 0xf0000000) >> 0x18 ^ uVar5 & 0xfffffff;\n          uVar15 = (uint)*pbVar11;\n          if (uVar15 == 0) goto LAB_002642bc;\n        }\n      }\nLAB_002642bc:\n      piVar19[3] = 0x14000000;\n      piVar19[2] = (((uVar5 >> 0x10) << 0x18 | (uVar5 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar5 & 0xff) << 8 | uVar5 >> 8 & 0xff) * 0x10000;\n      puVar3 = PTR_get_offset_004323e0;\n      if (uVar17 < (uint)((int)ppVVar14 - (int)ppVVar7 >> 2)) {\n        uVar5 = uVar10 * 8 + 0x14;\n        iVar6 = (((uVar5 >> 0x10) << 0x18 | (uVar5 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar5 & 0xff) << 8 | uVar5 >> 8 & 0xff) * 0x10000;\n      }\n      else {\n        iVar6 = 0;\n      }\n      piVar19[4] = iVar6;\n      uVar5 = (*(code *)puVar3)(dynpool);\n      piVar20 = piVar19 + 7;\n      pbVar16 = (pVVar8->deps_).\n                super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                ._M_impl._M_start;\n      pbVar9 = (pVVar8->deps_).\n               super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n               ._M_impl._M_finish;\n      piVar19[5] = (((uVar5 >> 0x10) << 0x18 | (uVar5 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar5 & 0xff) << 8 | uVar5 >> 8 & 0xff) * 0x10000;\n      if (pbVar16 == pbVar9) {\n        ppVVar14 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                   _M_impl._M_finish;\n        piVar19[6] = 0;\n        if (ppVVar14 == ppVVar21 + 1) goto LAB_002643bc;\n      }\n      else {\n        uVar5 = 0;\n        piVar19[6] = 0x8000000;\n        piVar19 = piVar20;\n        do {\n          p_Var2 = &pbVar16->_M_dataplus;\n          piVar20 = piVar19 + 2;\n          psVar1 = &pbVar16->_M_string_length;\n          uVar5 = uVar5 + 1;\n          pbVar16 = pbVar16 + 1;\n          uVar10 = (*(code *)PTR_get_offset_with_length_004351bc)(dynpool,p_Var2->_M_p,*psVar1);\n          pbVar12 = (pVVar8->deps_).\n                    super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                    ._M_impl._M_finish;\n          pbVar9 = (pVVar8->deps_).\n                   super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                   ._M_impl._M_start;\n          *piVar19 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n          iVar6 = 0x8000000;\n          if ((uint)(((int)pbVar12 - (int)pbVar9 >> 3) * -0x55555555) <= uVar5) {\n            iVar6 = 0;\n          }\n          piVar19[1] = iVar6;\n          piVar19 = piVar20;\n        } while (pbVar12 != pbVar16);\n        ppVVar14 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                   _M_impl._M_finish;\n        if (ppVVar14 == ppVVar21 + 1) goto LAB_002643bc;\n      }\n      ppVVar21 = ppVVar21 + 1;\n      ppVVar7 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                _M_impl._M_start;\n      piVar19 = piVar20;\n    }" { (expression_statement "pVVar8 = *ppVVar21;" (assignment_expression "pVVar8 = *ppVVar21" identifier = (pointer_expression "*ppVVar21" * identifier)) ;) (expression_statement "uVar17 = uVar17 + 1;" (assignment_expression "uVar17 = uVar17 + 1" identifier = (binary_expression "uVar17 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined2 *)piVar19 = 0x100;" (assignment_expression "*(undefined2 *)piVar19 = 0x100" (pointer_expression "*(undefined2 *)piVar19" * (cast_expression "(undefined2 *)piVar19" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "uVar5 = (uint)pVVar8->is_base_;" (assignment_expression "uVar5 = (uint)pVVar8->is_base_" identifier = (cast_expression "(uint)pVVar8->is_base_" ( (type_descriptor "uint" type_identifier) ) (field_expression "pVVar8->is_base_" identifier -> field_identifier))) ;) (if_statement "if (pVVar8->is_weak_ != false) {\n        uVar5 = uVar5 | 2;\n      }" if (parenthesized_expression "(pVVar8->is_weak_ != false)" ( (binary_expression "pVVar8->is_weak_ != false" (field_expression "pVVar8->is_weak_" identifier -> field_identifier) != false) )) (compound_statement "{\n        uVar5 = uVar5 | 2;\n      }" { (expression_statement "uVar5 = uVar5 | 2;" (assignment_expression "uVar5 = uVar5 | 2" identifier = (binary_expression "uVar5 | 2" identifier | number_literal)) ;) })) (if_statement "if (pVVar8->is_info_ != false) {\n        uVar5 = uVar5 | 4;\n      }" if (parenthesized_expression "(pVVar8->is_info_ != false)" ( (binary_expression "pVVar8->is_info_ != false" (field_expression "pVVar8->is_info_" identifier -> field_identifier) != false) )) (compound_statement "{\n        uVar5 = uVar5 | 4;\n      }" { (expression_statement "uVar5 = uVar5 | 4;" (assignment_expression "uVar5 = uVar5 | 4" identifier = (binary_expression "uVar5 | 4" identifier | number_literal)) ;) })) (expression_statement "uVar10 = (pVVar8->super_Version_base).index_;" (assignment_expression "uVar10 = (pVVar8->super_Version_base).index_" identifier = (field_expression "(pVVar8->super_Version_base).index_" (parenthesized_expression "(pVVar8->super_Version_base)" ( (field_expression "pVVar8->super_Version_base" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "*(short *)((int)piVar19 + 2) = (short)(uVar5 << 8);" (assignment_expression "*(short *)((int)piVar19 + 2) = (short)(uVar5 << 8)" (pointer_expression "*(short *)((int)piVar19 + 2)" * (cast_expression "(short *)((int)piVar19 + 2)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar19 + 2)" ( (binary_expression "(int)piVar19 + 2" (cast_expression "(int)piVar19" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(short)(uVar5 << 8)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "(uVar5 << 8)" ( (binary_expression "uVar5 << 8" identifier << number_literal) )))) ;) (if_statement "if (uVar10 == 0xffffffff) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_s__0043226c + 0x1a58);\n        goto LAB_00264448;\n      }" if (parenthesized_expression "(uVar10 == 0xffffffff)" ( (binary_expression "uVar10 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_s__0043226c + 0x1a58);\n        goto LAB_00264448;\n      }" { (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_s__0043226c + 0x1a58);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_s__0043226c + 0x1a58)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_s__0043226c + 0x1a58)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x4f94" identifier + number_literal) , number_literal , (binary_expression "PTR_s__0043226c + 0x1a58" identifier + number_literal) ))) ;) (goto_statement "goto LAB_00264448;" goto statement_identifier ;) })) (ERROR "pbVar16 = (pVVar8->deps_).\n                super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::" (assignment_expression "pbVar16 = (pVVar8->deps_).\n                super__Vector_base<std" identifier = (binary_expression "(pVVar8->deps_).\n                super__Vector_base<std" (field_expression "(pVVar8->deps_).\n                super__Vector_base" (parenthesized_expression "(pVVar8->deps_)" ( (field_expression "pVVar8->deps_" identifier -> field_identifier) )) . field_identifier) < identifier)) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : :) (expression_statement "allocator<char>_>_>_>\n                ._M_impl._M_start;" (field_expression "allocator<char>_>_>_>\n                ._M_impl._M_start" (field_expression "allocator<char>_>_>_>\n                ._M_impl" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (ERROR "pbVar9 = (pVVar8->deps_).\n               super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::" (assignment_expression "pbVar9 = (pVVar8->deps_).\n               super__Vector_base<std" identifier = (binary_expression "(pVVar8->deps_).\n               super__Vector_base<std" (field_expression "(pVVar8->deps_).\n               super__Vector_base" (parenthesized_expression "(pVVar8->deps_)" ( (field_expression "pVVar8->deps_" identifier -> field_identifier) )) . field_identifier) < identifier)) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : :) (expression_statement "allocator<char>_>_>_>\n               ._M_impl._M_finish;" (field_expression "allocator<char>_>_>_>\n               ._M_impl._M_finish" (field_expression "allocator<char>_>_>_>\n               ._M_impl" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "pbVar11 = (byte *)pVVar8->name_;" (assignment_expression "pbVar11 = (byte *)pVVar8->name_" identifier = (cast_expression "(byte *)pVVar8->name_" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pVVar8->name_" identifier -> field_identifier))) ;) (expression_statement "*(ushort *)(piVar19 + 1) = (ushort)((uVar10 & 0xff) << 8) | (ushort)(uVar10 >> 8) & 0xff;" (assignment_expression "*(ushort *)(piVar19 + 1) = (ushort)((uVar10 & 0xff) << 8) | (ushort)(uVar10 >> 8) & 0xff" (pointer_expression "*(ushort *)(piVar19 + 1)" * (cast_expression "(ushort *)(piVar19 + 1)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar19 + 1)" ( (binary_expression "piVar19 + 1" identifier + number_literal) )))) = (binary_expression "(ushort)((uVar10 & 0xff) << 8) | (ushort)(uVar10 >> 8) & 0xff" (call_expression "(ushort)((uVar10 & 0xff) << 8)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "((uVar10 & 0xff) << 8)" ( (binary_expression "(uVar10 & 0xff) << 8" (parenthesized_expression "(uVar10 & 0xff)" ( (binary_expression "uVar10 & 0xff" identifier & number_literal) )) << number_literal) ))) | (binary_expression "(ushort)(uVar10 >> 8) & 0xff" (call_expression "(ushort)(uVar10 >> 8)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(uVar10 >> 8)" ( (binary_expression "uVar10 >> 8" identifier >> number_literal) ))) & number_literal))) ;) (expression_statement "uVar10 = ((int)pbVar9 - (int)pbVar16 >> 3) * -0x55555555 + 1;" (assignment_expression "uVar10 = ((int)pbVar9 - (int)pbVar16 >> 3) * -0x55555555 + 1" identifier = (binary_expression "((int)pbVar9 - (int)pbVar16 >> 3) * -0x55555555 + 1" (binary_expression "((int)pbVar9 - (int)pbVar16 >> 3) * -0x55555555" (parenthesized_expression "((int)pbVar9 - (int)pbVar16 >> 3)" ( (binary_expression "(int)pbVar9 - (int)pbVar16 >> 3" (binary_expression "(int)pbVar9 - (int)pbVar16" (cast_expression "(int)pbVar9" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar16" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) )) * number_literal) + number_literal)) ;) (expression_statement "*(ushort *)((int)piVar19 + 6) = (ushort)((uVar10 & 0xff) << 8) | (ushort)(uVar10 >> 8) & 0xff;" (assignment_expression "*(ushort *)((int)piVar19 + 6) = (ushort)((uVar10 & 0xff) << 8) | (ushort)(uVar10 >> 8) & 0xff" (pointer_expression "*(ushort *)((int)piVar19 + 6)" * (cast_expression "(ushort *)((int)piVar19 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar19 + 6)" ( (binary_expression "(int)piVar19 + 6" (cast_expression "(int)piVar19" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(ushort)((uVar10 & 0xff) << 8) | (ushort)(uVar10 >> 8) & 0xff" (call_expression "(ushort)((uVar10 & 0xff) << 8)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "((uVar10 & 0xff) << 8)" ( (binary_expression "(uVar10 & 0xff) << 8" (parenthesized_expression "(uVar10 & 0xff)" ( (binary_expression "uVar10 & 0xff" identifier & number_literal) )) << number_literal) ))) | (binary_expression "(ushort)(uVar10 >> 8) & 0xff" (call_expression "(ushort)(uVar10 >> 8)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(uVar10 >> 8)" ( (binary_expression "uVar10 >> 8" identifier >> number_literal) ))) & number_literal))) ;) (while_statement "while (uVar15 = (uint)*pbVar11, uVar15 != 0) {\n        while( true ) {\n          pbVar11 = pbVar11 + 1;\n          uVar5 = uVar15 + uVar5 * 0x10;\n          if ((uVar5 & 0xf0000000) == 0) break;\n          uVar5 = (uVar5 & 0xf0000000) >> 0x18 ^ uVar5 & 0xfffffff;\n          uVar15 = (uint)*pbVar11;\n          if (uVar15 == 0) goto LAB_002642bc;\n        }\n      }" while (parenthesized_expression "(uVar15 = (uint)*pbVar11, uVar15 != 0)" ( (comma_expression "uVar15 = (uint)*pbVar11, uVar15 != 0" (assignment_expression "uVar15 = (uint)*pbVar11" identifier = (binary_expression "(uint)*pbVar11" (parenthesized_expression "(uint)" ( identifier )) * identifier)) , (binary_expression "uVar15 != 0" identifier != number_literal)) )) (compound_statement "{\n        while( true ) {\n          pbVar11 = pbVar11 + 1;\n          uVar5 = uVar15 + uVar5 * 0x10;\n          if ((uVar5 & 0xf0000000) == 0) break;\n          uVar5 = (uVar5 & 0xf0000000) >> 0x18 ^ uVar5 & 0xfffffff;\n          uVar15 = (uint)*pbVar11;\n          if (uVar15 == 0) goto LAB_002642bc;\n        }\n      }" { (while_statement "while( true ) {\n          pbVar11 = pbVar11 + 1;\n          uVar5 = uVar15 + uVar5 * 0x10;\n          if ((uVar5 & 0xf0000000) == 0) break;\n          uVar5 = (uVar5 & 0xf0000000) >> 0x18 ^ uVar5 & 0xfffffff;\n          uVar15 = (uint)*pbVar11;\n          if (uVar15 == 0) goto LAB_002642bc;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          pbVar11 = pbVar11 + 1;\n          uVar5 = uVar15 + uVar5 * 0x10;\n          if ((uVar5 & 0xf0000000) == 0) break;\n          uVar5 = (uVar5 & 0xf0000000) >> 0x18 ^ uVar5 & 0xfffffff;\n          uVar15 = (uint)*pbVar11;\n          if (uVar15 == 0) goto LAB_002642bc;\n        }" { (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) (expression_statement "uVar5 = uVar15 + uVar5 * 0x10;" (assignment_expression "uVar5 = uVar15 + uVar5 * 0x10" identifier = (binary_expression "uVar15 + uVar5 * 0x10" identifier + (binary_expression "uVar5 * 0x10" identifier * number_literal))) ;) (if_statement "if ((uVar5 & 0xf0000000) == 0) break;" if (parenthesized_expression "((uVar5 & 0xf0000000) == 0)" ( (binary_expression "(uVar5 & 0xf0000000) == 0" (parenthesized_expression "(uVar5 & 0xf0000000)" ( (binary_expression "uVar5 & 0xf0000000" identifier & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar5 = (uVar5 & 0xf0000000) >> 0x18 ^ uVar5 & 0xfffffff;" (assignment_expression "uVar5 = (uVar5 & 0xf0000000) >> 0x18 ^ uVar5 & 0xfffffff" identifier = (binary_expression "(uVar5 & 0xf0000000) >> 0x18 ^ uVar5 & 0xfffffff" (binary_expression "(uVar5 & 0xf0000000) >> 0x18" (parenthesized_expression "(uVar5 & 0xf0000000)" ( (binary_expression "uVar5 & 0xf0000000" identifier & number_literal) )) >> number_literal) ^ (binary_expression "uVar5 & 0xfffffff" identifier & number_literal))) ;) (expression_statement "uVar15 = (uint)*pbVar11;" (assignment_expression "uVar15 = (uint)*pbVar11" identifier = (binary_expression "(uint)*pbVar11" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (if_statement "if (uVar15 == 0) goto LAB_002642bc;" if (parenthesized_expression "(uVar15 == 0)" ( (binary_expression "uVar15 == 0" identifier == number_literal) )) (goto_statement "goto LAB_002642bc;" goto statement_identifier ;)) })) })) (labeled_statement "LAB_002642bc:\n      piVar19[3] = 0x14000000;" statement_identifier : (expression_statement "piVar19[3] = 0x14000000;" (assignment_expression "piVar19[3] = 0x14000000" (subscript_expression "piVar19[3]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "piVar19[2] = (((uVar5 >> 0x10) << 0x18 | (uVar5 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar5 & 0xff) << 8 | uVar5 >> 8 & 0xff) * 0x10000;" (assignment_expression "piVar19[2] = (((uVar5 >> 0x10) << 0x18 | (uVar5 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar5 & 0xff) << 8 | uVar5 >> 8 & 0xff) * 0x10000" (subscript_expression "piVar19[2]" identifier [ number_literal ]) = (binary_expression "(((uVar5 >> 0x10) << 0x18 | (uVar5 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar5 & 0xff) << 8 | uVar5 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar5 >> 0x10) << 0x18 | (uVar5 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar5 >> 0x10) << 0x18 | (uVar5 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar5 >> 0x10) << 0x18 | (uVar5 >> 0x18) << 0x10)" ( (binary_expression "(uVar5 >> 0x10) << 0x18 | (uVar5 >> 0x18) << 0x10" (binary_expression "(uVar5 >> 0x10) << 0x18" (parenthesized_expression "(uVar5 >> 0x10)" ( (binary_expression "uVar5 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar5 >> 0x18) << 0x10" (parenthesized_expression "(uVar5 >> 0x18)" ( (binary_expression "uVar5 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar5 & 0xff) << 8 | uVar5 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar5 & 0xff) << 8 | uVar5 >> 8 & 0xff)" ( (binary_expression "(uVar5 & 0xff) << 8 | uVar5 >> 8 & 0xff" (binary_expression "(uVar5 & 0xff) << 8" (parenthesized_expression "(uVar5 & 0xff)" ( (binary_expression "uVar5 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar5 >> 8 & 0xff" (binary_expression "uVar5 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) (expression_statement "puVar3 = PTR_get_offset_004323e0;" (assignment_expression "puVar3 = PTR_get_offset_004323e0" identifier = identifier) ;) (if_statement "if (uVar17 < (uint)((int)ppVVar14 - (int)ppVVar7 >> 2)) {\n        uVar5 = uVar10 * 8 + 0x14;\n        iVar6 = (((uVar5 >> 0x10) << 0x18 | (uVar5 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar5 & 0xff) << 8 | uVar5 >> 8 & 0xff) * 0x10000;\n      }\n      else {\n        iVar6 = 0;\n      }" if (parenthesized_expression "(uVar17 < (uint)((int)ppVVar14 - (int)ppVVar7 >> 2))" ( (binary_expression "uVar17 < (uint)((int)ppVVar14 - (int)ppVVar7 >> 2)" identifier < (call_expression "(uint)((int)ppVVar14 - (int)ppVVar7 >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)ppVVar14 - (int)ppVVar7 >> 2)" ( (binary_expression "(int)ppVVar14 - (int)ppVVar7 >> 2" (binary_expression "(int)ppVVar14 - (int)ppVVar7" (cast_expression "(int)ppVVar14" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)ppVVar7" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) )))) )) (compound_statement "{\n        uVar5 = uVar10 * 8 + 0x14;\n        iVar6 = (((uVar5 >> 0x10) << 0x18 | (uVar5 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar5 & 0xff) << 8 | uVar5 >> 8 & 0xff) * 0x10000;\n      }" { (expression_statement "uVar5 = uVar10 * 8 + 0x14;" (assignment_expression "uVar5 = uVar10 * 8 + 0x14" identifier = (binary_expression "uVar10 * 8 + 0x14" (binary_expression "uVar10 * 8" identifier * number_literal) + number_literal)) ;) (expression_statement "iVar6 = (((uVar5 >> 0x10) << 0x18 | (uVar5 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar5 & 0xff) << 8 | uVar5 >> 8 & 0xff) * 0x10000;" (assignment_expression "iVar6 = (((uVar5 >> 0x10) << 0x18 | (uVar5 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar5 & 0xff) << 8 | uVar5 >> 8 & 0xff) * 0x10000" identifier = (binary_expression "(((uVar5 >> 0x10) << 0x18 | (uVar5 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar5 & 0xff) << 8 | uVar5 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar5 >> 0x10) << 0x18 | (uVar5 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar5 >> 0x10) << 0x18 | (uVar5 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar5 >> 0x10) << 0x18 | (uVar5 >> 0x18) << 0x10)" ( (binary_expression "(uVar5 >> 0x10) << 0x18 | (uVar5 >> 0x18) << 0x10" (binary_expression "(uVar5 >> 0x10) << 0x18" (parenthesized_expression "(uVar5 >> 0x10)" ( (binary_expression "uVar5 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar5 >> 0x18) << 0x10" (parenthesized_expression "(uVar5 >> 0x18)" ( (binary_expression "uVar5 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar5 & 0xff) << 8 | uVar5 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar5 & 0xff) << 8 | uVar5 >> 8 & 0xff)" ( (binary_expression "(uVar5 & 0xff) << 8 | uVar5 >> 8 & 0xff" (binary_expression "(uVar5 & 0xff) << 8" (parenthesized_expression "(uVar5 & 0xff)" ( (binary_expression "uVar5 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar5 >> 8 & 0xff" (binary_expression "uVar5 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) }) (else_clause "else {\n        iVar6 = 0;\n      }" else (compound_statement "{\n        iVar6 = 0;\n      }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) }))) (expression_statement "piVar19[4] = iVar6;" (assignment_expression "piVar19[4] = iVar6" (subscript_expression "piVar19[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar5 = (*(code *)puVar3)(dynpool);" (assignment_expression "uVar5 = (*(code *)puVar3)(dynpool)" identifier = (call_expression "(*(code *)puVar3)(dynpool)" (parenthesized_expression "(*(code *)puVar3)" ( (pointer_expression "*(code *)puVar3" * (cast_expression "(code *)puVar3" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dynpool)" ( identifier )))) ;) (expression_statement "piVar20 = piVar19 + 7;" (assignment_expression "piVar20 = piVar19 + 7" identifier = (binary_expression "piVar19 + 7" identifier + number_literal)) ;) (ERROR "pbVar16 = (pVVar8->deps_).\n                super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::" (assignment_expression "pbVar16 = (pVVar8->deps_).\n                super__Vector_base<std" identifier = (binary_expression "(pVVar8->deps_).\n                super__Vector_base<std" (field_expression "(pVVar8->deps_).\n                super__Vector_base" (parenthesized_expression "(pVVar8->deps_)" ( (field_expression "pVVar8->deps_" identifier -> field_identifier) )) . field_identifier) < identifier)) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : :) (expression_statement "allocator<char>_>_>_>\n                ._M_impl._M_start;" (field_expression "allocator<char>_>_>_>\n                ._M_impl._M_start" (field_expression "allocator<char>_>_>_>\n                ._M_impl" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (ERROR "pbVar9 = (pVVar8->deps_).\n               super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::" (assignment_expression "pbVar9 = (pVVar8->deps_).\n               super__Vector_base<std" identifier = (binary_expression "(pVVar8->deps_).\n               super__Vector_base<std" (field_expression "(pVVar8->deps_).\n               super__Vector_base" (parenthesized_expression "(pVVar8->deps_)" ( (field_expression "pVVar8->deps_" identifier -> field_identifier) )) . field_identifier) < identifier)) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : :) (expression_statement "allocator<char>_>_>_>\n               ._M_impl._M_finish;" (field_expression "allocator<char>_>_>_>\n               ._M_impl._M_finish" (field_expression "allocator<char>_>_>_>\n               ._M_impl" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "piVar19[5] = (((uVar5 >> 0x10) << 0x18 | (uVar5 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar5 & 0xff) << 8 | uVar5 >> 8 & 0xff) * 0x10000;" (assignment_expression "piVar19[5] = (((uVar5 >> 0x10) << 0x18 | (uVar5 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar5 & 0xff) << 8 | uVar5 >> 8 & 0xff) * 0x10000" (subscript_expression "piVar19[5]" identifier [ number_literal ]) = (binary_expression "(((uVar5 >> 0x10) << 0x18 | (uVar5 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar5 & 0xff) << 8 | uVar5 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar5 >> 0x10) << 0x18 | (uVar5 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar5 >> 0x10) << 0x18 | (uVar5 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar5 >> 0x10) << 0x18 | (uVar5 >> 0x18) << 0x10)" ( (binary_expression "(uVar5 >> 0x10) << 0x18 | (uVar5 >> 0x18) << 0x10" (binary_expression "(uVar5 >> 0x10) << 0x18" (parenthesized_expression "(uVar5 >> 0x10)" ( (binary_expression "uVar5 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar5 >> 0x18) << 0x10" (parenthesized_expression "(uVar5 >> 0x18)" ( (binary_expression "uVar5 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar5 & 0xff) << 8 | uVar5 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar5 & 0xff) << 8 | uVar5 >> 8 & 0xff)" ( (binary_expression "(uVar5 & 0xff) << 8 | uVar5 >> 8 & 0xff" (binary_expression "(uVar5 & 0xff) << 8" (parenthesized_expression "(uVar5 & 0xff)" ( (binary_expression "uVar5 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar5 >> 8 & 0xff" (binary_expression "uVar5 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) (if_statement "if (pbVar16 == pbVar9) {\n        ppVVar14 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                   _M_impl._M_finish;\n        piVar19[6] = 0;\n        if (ppVVar14 == ppVVar21 + 1) goto LAB_002643bc;\n      }\n      else {\n        uVar5 = 0;\n        piVar19[6] = 0x8000000;\n        piVar19 = piVar20;\n        do {\n          p_Var2 = &pbVar16->_M_dataplus;\n          piVar20 = piVar19 + 2;\n          psVar1 = &pbVar16->_M_string_length;\n          uVar5 = uVar5 + 1;\n          pbVar16 = pbVar16 + 1;\n          uVar10 = (*(code *)PTR_get_offset_with_length_004351bc)(dynpool,p_Var2->_M_p,*psVar1);\n          pbVar12 = (pVVar8->deps_).\n                    super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                    ._M_impl._M_finish;\n          pbVar9 = (pVVar8->deps_).\n                   super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                   ._M_impl._M_start;\n          *piVar19 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n          iVar6 = 0x8000000;\n          if ((uint)(((int)pbVar12 - (int)pbVar9 >> 3) * -0x55555555) <= uVar5) {\n            iVar6 = 0;\n          }\n          piVar19[1] = iVar6;\n          piVar19 = piVar20;\n        } while (pbVar12 != pbVar16);\n        ppVVar14 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                   _M_impl._M_finish;\n        if (ppVVar14 == ppVVar21 + 1) goto LAB_002643bc;\n      }" if (parenthesized_expression "(pbVar16 == pbVar9)" ( (binary_expression "pbVar16 == pbVar9" identifier == identifier) )) (compound_statement "{\n        ppVVar14 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                   _M_impl._M_finish;\n        piVar19[6] = 0;\n        if (ppVVar14 == ppVVar21 + 1) goto LAB_002643bc;\n      }" { (expression_statement "ppVVar14 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                   _M_impl._M_finish;" (field_expression "ppVVar14 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                   _M_impl._M_finish" (field_expression "ppVVar14 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                   _M_impl" (binary_expression "ppVVar14 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_" (binary_expression "ppVVar14 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold" (binary_expression "ppVVar14 = (this->defs_).super__Vector_base<gold::Verdef*,_std" (assignment_expression "ppVVar14 = (this->defs_).super__Vector_base<gold" identifier = (binary_expression "(this->defs_).super__Vector_base<gold" (field_expression "(this->defs_).super__Vector_base" (parenthesized_expression "(this->defs_)" ( (field_expression "this->defs_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Verdef" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Verdef" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "piVar19[6] = 0;" (assignment_expression "piVar19[6] = 0" (subscript_expression "piVar19[6]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (ppVVar14 == ppVVar21 + 1) goto LAB_002643bc;" if (parenthesized_expression "(ppVVar14 == ppVVar21 + 1)" ( (binary_expression "ppVVar14 == ppVVar21 + 1" identifier == (binary_expression "ppVVar21 + 1" identifier + number_literal)) )) (goto_statement "goto LAB_002643bc;" goto statement_identifier ;)) }) (else_clause "else {\n        uVar5 = 0;\n        piVar19[6] = 0x8000000;\n        piVar19 = piVar20;\n        do {\n          p_Var2 = &pbVar16->_M_dataplus;\n          piVar20 = piVar19 + 2;\n          psVar1 = &pbVar16->_M_string_length;\n          uVar5 = uVar5 + 1;\n          pbVar16 = pbVar16 + 1;\n          uVar10 = (*(code *)PTR_get_offset_with_length_004351bc)(dynpool,p_Var2->_M_p,*psVar1);\n          pbVar12 = (pVVar8->deps_).\n                    super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                    ._M_impl._M_finish;\n          pbVar9 = (pVVar8->deps_).\n                   super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                   ._M_impl._M_start;\n          *piVar19 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n          iVar6 = 0x8000000;\n          if ((uint)(((int)pbVar12 - (int)pbVar9 >> 3) * -0x55555555) <= uVar5) {\n            iVar6 = 0;\n          }\n          piVar19[1] = iVar6;\n          piVar19 = piVar20;\n        } while (pbVar12 != pbVar16);\n        ppVVar14 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                   _M_impl._M_finish;\n        if (ppVVar14 == ppVVar21 + 1) goto LAB_002643bc;\n      }" else (compound_statement "{\n        uVar5 = 0;\n        piVar19[6] = 0x8000000;\n        piVar19 = piVar20;\n        do {\n          p_Var2 = &pbVar16->_M_dataplus;\n          piVar20 = piVar19 + 2;\n          psVar1 = &pbVar16->_M_string_length;\n          uVar5 = uVar5 + 1;\n          pbVar16 = pbVar16 + 1;\n          uVar10 = (*(code *)PTR_get_offset_with_length_004351bc)(dynpool,p_Var2->_M_p,*psVar1);\n          pbVar12 = (pVVar8->deps_).\n                    super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                    ._M_impl._M_finish;\n          pbVar9 = (pVVar8->deps_).\n                   super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                   ._M_impl._M_start;\n          *piVar19 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n          iVar6 = 0x8000000;\n          if ((uint)(((int)pbVar12 - (int)pbVar9 >> 3) * -0x55555555) <= uVar5) {\n            iVar6 = 0;\n          }\n          piVar19[1] = iVar6;\n          piVar19 = piVar20;\n        } while (pbVar12 != pbVar16);\n        ppVVar14 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                   _M_impl._M_finish;\n        if (ppVVar14 == ppVVar21 + 1) goto LAB_002643bc;\n      }" { (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "piVar19[6] = 0x8000000;" (assignment_expression "piVar19[6] = 0x8000000" (subscript_expression "piVar19[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar19 = piVar20;" (assignment_expression "piVar19 = piVar20" identifier = identifier) ;) (do_statement "do {\n          p_Var2 = &pbVar16->_M_dataplus;\n          piVar20 = piVar19 + 2;\n          psVar1 = &pbVar16->_M_string_length;\n          uVar5 = uVar5 + 1;\n          pbVar16 = pbVar16 + 1;\n          uVar10 = (*(code *)PTR_get_offset_with_length_004351bc)(dynpool,p_Var2->_M_p,*psVar1);\n          pbVar12 = (pVVar8->deps_).\n                    super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                    ._M_impl._M_finish;\n          pbVar9 = (pVVar8->deps_).\n                   super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                   ._M_impl._M_start;\n          *piVar19 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n          iVar6 = 0x8000000;\n          if ((uint)(((int)pbVar12 - (int)pbVar9 >> 3) * -0x55555555) <= uVar5) {\n            iVar6 = 0;\n          }\n          piVar19[1] = iVar6;\n          piVar19 = piVar20;\n        } while (pbVar12 != pbVar16);" do (compound_statement "{\n          p_Var2 = &pbVar16->_M_dataplus;\n          piVar20 = piVar19 + 2;\n          psVar1 = &pbVar16->_M_string_length;\n          uVar5 = uVar5 + 1;\n          pbVar16 = pbVar16 + 1;\n          uVar10 = (*(code *)PTR_get_offset_with_length_004351bc)(dynpool,p_Var2->_M_p,*psVar1);\n          pbVar12 = (pVVar8->deps_).\n                    super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                    ._M_impl._M_finish;\n          pbVar9 = (pVVar8->deps_).\n                   super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                   ._M_impl._M_start;\n          *piVar19 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n          iVar6 = 0x8000000;\n          if ((uint)(((int)pbVar12 - (int)pbVar9 >> 3) * -0x55555555) <= uVar5) {\n            iVar6 = 0;\n          }\n          piVar19[1] = iVar6;\n          piVar19 = piVar20;\n        }" { (expression_statement "p_Var2 = &pbVar16->_M_dataplus;" (assignment_expression "p_Var2 = &pbVar16->_M_dataplus" identifier = (pointer_expression "&pbVar16->_M_dataplus" & (field_expression "pbVar16->_M_dataplus" identifier -> field_identifier))) ;) (expression_statement "piVar20 = piVar19 + 2;" (assignment_expression "piVar20 = piVar19 + 2" identifier = (binary_expression "piVar19 + 2" identifier + number_literal)) ;) (expression_statement "psVar1 = &pbVar16->_M_string_length;" (assignment_expression "psVar1 = &pbVar16->_M_string_length" identifier = (pointer_expression "&pbVar16->_M_string_length" & (field_expression "pbVar16->_M_string_length" identifier -> field_identifier))) ;) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (expression_statement "pbVar16 = pbVar16 + 1;" (assignment_expression "pbVar16 = pbVar16 + 1" identifier = (binary_expression "pbVar16 + 1" identifier + number_literal)) ;) (expression_statement "uVar10 = (*(code *)PTR_get_offset_with_length_004351bc)(dynpool,p_Var2->_M_p,*psVar1);" (assignment_expression "uVar10 = (*(code *)PTR_get_offset_with_length_004351bc)(dynpool,p_Var2->_M_p,*psVar1)" identifier = (call_expression "(*(code *)PTR_get_offset_with_length_004351bc)(dynpool,p_Var2->_M_p,*psVar1)" (parenthesized_expression "(*(code *)PTR_get_offset_with_length_004351bc)" ( (pointer_expression "*(code *)PTR_get_offset_with_length_004351bc" * (cast_expression "(code *)PTR_get_offset_with_length_004351bc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dynpool,p_Var2->_M_p,*psVar1)" ( identifier , (field_expression "p_Var2->_M_p" identifier -> field_identifier) , (pointer_expression "*psVar1" * identifier) )))) ;) (ERROR "pbVar12 = (pVVar8->deps_).\n                    super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::" (assignment_expression "pbVar12 = (pVVar8->deps_).\n                    super__Vector_base<std" identifier = (binary_expression "(pVVar8->deps_).\n                    super__Vector_base<std" (field_expression "(pVVar8->deps_).\n                    super__Vector_base" (parenthesized_expression "(pVVar8->deps_)" ( (field_expression "pVVar8->deps_" identifier -> field_identifier) )) . field_identifier) < identifier)) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : :) (expression_statement "allocator<char>_>_>_>\n                    ._M_impl._M_finish;" (field_expression "allocator<char>_>_>_>\n                    ._M_impl._M_finish" (field_expression "allocator<char>_>_>_>\n                    ._M_impl" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (ERROR "pbVar9 = (pVVar8->deps_).\n                   super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::" (assignment_expression "pbVar9 = (pVVar8->deps_).\n                   super__Vector_base<std" identifier = (binary_expression "(pVVar8->deps_).\n                   super__Vector_base<std" (field_expression "(pVVar8->deps_).\n                   super__Vector_base" (parenthesized_expression "(pVVar8->deps_)" ( (field_expression "pVVar8->deps_" identifier -> field_identifier) )) . field_identifier) < identifier)) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : :) (expression_statement "allocator<char>_>_>_>\n                   ._M_impl._M_start;" (field_expression "allocator<char>_>_>_>\n                   ._M_impl._M_start" (field_expression "allocator<char>_>_>_>\n                   ._M_impl" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "*piVar19 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;" (assignment_expression "*piVar19 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000" (pointer_expression "*piVar19" * identifier) = (binary_expression "(((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10)" ( (binary_expression "(uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10" (binary_expression "(uVar10 >> 0x10) << 0x18" (parenthesized_expression "(uVar10 >> 0x10)" ( (binary_expression "uVar10 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar10 >> 0x18) << 0x10" (parenthesized_expression "(uVar10 >> 0x18)" ( (binary_expression "uVar10 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff)" ( (binary_expression "(uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff" (binary_expression "(uVar10 & 0xff) << 8" (parenthesized_expression "(uVar10 & 0xff)" ( (binary_expression "uVar10 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar10 >> 8 & 0xff" (binary_expression "uVar10 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) (expression_statement "iVar6 = 0x8000000;" (assignment_expression "iVar6 = 0x8000000" identifier = number_literal) ;) (if_statement "if ((uint)(((int)pbVar12 - (int)pbVar9 >> 3) * -0x55555555) <= uVar5) {\n            iVar6 = 0;\n          }" if (parenthesized_expression "((uint)(((int)pbVar12 - (int)pbVar9 >> 3) * -0x55555555) <= uVar5)" ( (binary_expression "(uint)(((int)pbVar12 - (int)pbVar9 >> 3) * -0x55555555) <= uVar5" (call_expression "(uint)(((int)pbVar12 - (int)pbVar9 >> 3) * -0x55555555)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(((int)pbVar12 - (int)pbVar9 >> 3) * -0x55555555)" ( (binary_expression "((int)pbVar12 - (int)pbVar9 >> 3) * -0x55555555" (parenthesized_expression "((int)pbVar12 - (int)pbVar9 >> 3)" ( (binary_expression "(int)pbVar12 - (int)pbVar9 >> 3" (binary_expression "(int)pbVar12 - (int)pbVar9" (cast_expression "(int)pbVar12" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar9" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) )) * number_literal) ))) <= identifier) )) (compound_statement "{\n            iVar6 = 0;\n          }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) })) (expression_statement "piVar19[1] = iVar6;" (assignment_expression "piVar19[1] = iVar6" (subscript_expression "piVar19[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar19 = piVar20;" (assignment_expression "piVar19 = piVar20" identifier = identifier) ;) }) while (parenthesized_expression "(pbVar12 != pbVar16)" ( (binary_expression "pbVar12 != pbVar16" identifier != identifier) )) ;) (expression_statement "ppVVar14 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                   _M_impl._M_finish;" (field_expression "ppVVar14 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                   _M_impl._M_finish" (field_expression "ppVVar14 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                   _M_impl" (binary_expression "ppVVar14 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_" (binary_expression "ppVVar14 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold" (binary_expression "ppVVar14 = (this->defs_).super__Vector_base<gold::Verdef*,_std" (assignment_expression "ppVVar14 = (this->defs_).super__Vector_base<gold" identifier = (binary_expression "(this->defs_).super__Vector_base<gold" (field_expression "(this->defs_).super__Vector_base" (parenthesized_expression "(this->defs_)" ( (field_expression "this->defs_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Verdef" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Verdef" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if (ppVVar14 == ppVVar21 + 1) goto LAB_002643bc;" if (parenthesized_expression "(ppVVar14 == ppVVar21 + 1)" ( (binary_expression "ppVVar14 == ppVVar21 + 1" identifier == (binary_expression "ppVVar21 + 1" identifier + number_literal)) )) (goto_statement "goto LAB_002643bc;" goto statement_identifier ;)) }))) (expression_statement "ppVVar21 = ppVVar21 + 1;" (assignment_expression "ppVVar21 = ppVVar21 + 1" identifier = (binary_expression "ppVVar21 + 1" identifier + number_literal)) ;) (expression_statement "ppVVar7 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                _M_impl._M_start;" (field_expression "ppVVar7 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                _M_impl._M_start" (field_expression "ppVVar7 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                _M_impl" (binary_expression "ppVVar7 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_" (binary_expression "ppVVar7 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold" (binary_expression "ppVVar7 = (this->defs_).super__Vector_base<gold::Verdef*,_std" (assignment_expression "ppVVar7 = (this->defs_).super__Vector_base<gold" identifier = (binary_expression "(this->defs_).super__Vector_base<gold" (field_expression "(this->defs_).super__Vector_base" (parenthesized_expression "(this->defs_)" ( (field_expression "this->defs_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Verdef" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Verdef" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "piVar19 = piVar20;" (assignment_expression "piVar19 = piVar20" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (labeled_statement "LAB_002643c4:\n  uVar13 = 0x71c;" statement_identifier : (expression_statement "uVar13 = 0x71c;" (assignment_expression "uVar13 = 0x71c" identifier = number_literal) ;)) (if_statement "if (uVar18 == uVar17) {\n    ppVVar14 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n               _M_impl._M_start;\n    *pp = (uchar *)piVar4;\n    *psize = uVar18;\n    *pentries = (int)ppVVar7 - (int)ppVVar14 >> 2;\n    return;\n  }" if (parenthesized_expression "(uVar18 == uVar17)" ( (binary_expression "uVar18 == uVar17" identifier == identifier) )) (compound_statement "{\n    ppVVar14 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n               _M_impl._M_start;\n    *pp = (uchar *)piVar4;\n    *psize = uVar18;\n    *pentries = (int)ppVVar7 - (int)ppVVar14 >> 2;\n    return;\n  }" { (expression_statement "ppVVar14 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n               _M_impl._M_start;" (field_expression "ppVVar14 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n               _M_impl._M_start" (field_expression "ppVVar14 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n               _M_impl" (binary_expression "ppVVar14 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_" (binary_expression "ppVVar14 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold" (binary_expression "ppVVar14 = (this->defs_).super__Vector_base<gold::Verdef*,_std" (assignment_expression "ppVVar14 = (this->defs_).super__Vector_base<gold" identifier = (binary_expression "(this->defs_).super__Vector_base<gold" (field_expression "(this->defs_).super__Vector_base" (parenthesized_expression "(this->defs_)" ( (field_expression "this->defs_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Verdef" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Verdef" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "*pp = (uchar *)piVar4;" (assignment_expression "*pp = (uchar *)piVar4" (pointer_expression "*pp" * identifier) = (cast_expression "(uchar *)piVar4" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "*psize = uVar18;" (assignment_expression "*psize = uVar18" (pointer_expression "*psize" * identifier) = identifier) ;) (expression_statement "*pentries = (int)ppVVar7 - (int)ppVVar14 >> 2;" (assignment_expression "*pentries = (int)ppVVar7 - (int)ppVVar14 >> 2" (pointer_expression "*pentries" * identifier) = (binary_expression "(int)ppVVar7 - (int)ppVVar14 >> 2" (binary_expression "(int)ppVVar7 - (int)ppVVar14" (cast_expression "(int)ppVVar7" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)ppVVar14" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) (return_statement "return;" return ;) })) (labeled_statement "LAB_0026444c:\n  do {\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s__0043226c + 0x13e0,uVar13,PTR_s__0043226c + 0x1808);\nLAB_00264464:\n    uVar13 = 0x701;\n  } while( true );" statement_identifier : (do_statement "do {\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s__0043226c + 0x13e0,uVar13,PTR_s__0043226c + 0x1808);\nLAB_00264464:\n    uVar13 = 0x701;\n  } while( true );" do (compound_statement "{\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s__0043226c + 0x13e0,uVar13,PTR_s__0043226c + 0x1808);\nLAB_00264464:\n    uVar13 = 0x701;\n  }" { (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s__0043226c + 0x13e0,uVar13,PTR_s__0043226c + 0x1808);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s__0043226c + 0x13e0,uVar13,PTR_s__0043226c + 0x1808)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s__0043226c + 0x13e0,uVar13,PTR_s__0043226c + 0x1808)" ( (binary_expression "PTR_s__0043226c + 0x13e0" identifier + number_literal) , identifier , (binary_expression "PTR_s__0043226c + 0x1808" identifier + number_literal) ))) ;) (labeled_statement "LAB_00264464:\n    uVar13 = 0x701;" statement_identifier : (expression_statement "uVar13 = 0x701;" (assignment_expression "uVar13 = 0x701" identifier = number_literal) ;)) }) while (parenthesized_expression "( true )" ( true )) ;)) (labeled_statement "LAB_002643bc:\n  ppVVar7 = ppVVar21 + 1;" statement_identifier : (expression_statement "ppVVar7 = ppVVar21 + 1;" (assignment_expression "ppVVar7 = ppVVar21 + 1" identifier = (binary_expression "ppVVar21 + 1" identifier + number_literal)) ;)) (expression_statement "uVar17 = (int)piVar20 - (int)piVar4;" (assignment_expression "uVar17 = (int)piVar20 - (int)piVar4" identifier = (binary_expression "(int)piVar20 - (int)piVar4" (cast_expression "(int)piVar20" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (goto_statement "goto LAB_002643c4;" goto statement_identifier ;) (ERROR "}" }))
(translation_unit "void __thiscall\ngold::Versions::def_section_contents<64,false>\n          (Versions *this,Stringpool_template *param_1,uchar **param_2,uint *param_3,uint *param_4)\n\n{\n  undefined *puVar1;\n  uint uVar2;\n  int *piVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  uint uVar7;\n  byte *pbVar8;\n  undefined4 uVar9;\n  int *piVar10;\n  uint uVar11;\n  undefined4 *puVar12;\n  int iVar13;\n  uint uVar14;\n  uint uVar15;\n  int *piVar16;\n  int *piVar17;\n  int *piVar18;\n  int *piVar19;\n  \n  if (this[0x34] == (Versions)0x0) {\n    uVar9 = 0x701;\n    goto LAB_0026444c;\n  }\n  piVar3 = *(int **)this;\n  if (*(int **)(this + 4) == piVar3) {\n    uVar9 = 0x702;\n    goto LAB_0026444c;\n  }\n  uVar15 = 0;\n  do {\n    iVar4 = *piVar3;\n    piVar3 = piVar3 + 1;\n    uVar15 = uVar15 + (*(int *)(iVar4 + 0x10) - *(int *)(iVar4 + 0xc) >> 3) * 0x55555558 + 0x1c;\n  } while (*(int **)(this + 4) != piVar3);\n  piVar3 = (int *)(*(code *)PTR_operator_new___004322dc)(uVar15);\n  piVar18 = *(int **)this;\n  piVar10 = *(int **)(this + 4);\n  if (piVar18 != piVar10) {\n    uVar14 = 0;\n    piVar16 = piVar3;\n    piVar19 = piVar18;\n    do {\n      iVar4 = *piVar19;\n      uVar14 = uVar14 + 1;\n      *(undefined2 *)piVar16 = 0x100;\n      uVar2 = (uint)*(byte *)(iVar4 + 0x18);\n      if (*(char *)(iVar4 + 0x19) != '\0') {\n        uVar2 = uVar2 | 2;\n      }\n      if (*(char *)(iVar4 + 0x1a) != '\0') {\n        uVar2 = uVar2 | 4;\n      }\n      uVar7 = *(uint *)(iVar4 + 4);\n      *(short *)((int)piVar16 + 2) = (short)(uVar2 << 8);\n      if (uVar7 == 0xffffffff) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_DAT_0043226c + 0x1a58);\n        return;\n      }\n      iVar13 = *(int *)(iVar4 + 0xc);\n      iVar5 = *(int *)(iVar4 + 0x10);\n      uVar2 = 0;\n      pbVar8 = *(byte **)(iVar4 + 8);\n      *(ushort *)(piVar16 + 1) = (ushort)((uVar7 & 0xff) << 8) | (ushort)(uVar7 >> 8) & 0xff;\n      uVar7 = (iVar5 - iVar13 >> 3) * -0x55555555 + 1;\n      *(ushort *)((int)piVar16 + 6) = (ushort)((uVar7 & 0xff) << 8) | (ushort)(uVar7 >> 8) & 0xff;\n      while (uVar11 = (uint)*pbVar8, uVar11 != 0) {\n        while( true ) {\n          pbVar8 = pbVar8 + 1;\n          uVar2 = uVar11 + uVar2 * 0x10;\n          if ((uVar2 & 0xf0000000) == 0) break;\n          uVar2 = (uVar2 & 0xf0000000) >> 0x18 ^ uVar2 & 0xfffffff;\n          uVar11 = (uint)*pbVar8;\n          if (uVar11 == 0) goto LAB_002642bc;\n        }\n      }\nLAB_002642bc:\n      piVar16[3] = 0x14000000;\n      piVar16[2] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n      puVar1 = PTR_get_offset_004323e0;\n      if (uVar14 < (uint)((int)piVar10 - (int)piVar18 >> 2)) {\n        uVar2 = uVar7 * 8 + 0x14;\n        iVar5 = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n      }\n      else {\n        iVar5 = 0;\n      }\n      piVar16[4] = iVar5;\n      uVar2 = (*(code *)puVar1)(param_1);\n      piVar17 = piVar16 + 7;\n      puVar12 = *(undefined4 **)(iVar4 + 0xc);\n      puVar6 = *(undefined4 **)(iVar4 + 0x10);\n      piVar16[5] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n      if (puVar12 == puVar6) {\n        piVar10 = *(int **)(this + 4);\n        piVar16[6] = 0;\n        if (piVar10 == piVar19 + 1) goto LAB_002643bc;\n      }\n      else {\n        uVar2 = 0;\n        piVar16[6] = 0x8000000;\n        piVar18 = piVar17;\n        do {\n          uVar9 = *puVar12;\n          piVar17 = piVar18 + 2;\n          puVar6 = puVar12 + 1;\n          uVar2 = uVar2 + 1;\n          puVar12 = puVar12 + 6;\n          uVar7 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar9,*puVar6);\n          puVar6 = *(undefined4 **)(iVar4 + 0x10);\n          iVar13 = *(int *)(iVar4 + 0xc);\n          *piVar18 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;\n          iVar5 = 0x8000000;\n          if ((uint)(((int)puVar6 - iVar13 >> 3) * -0x55555555) <= uVar2) {\n            iVar5 = 0;\n          }\n          piVar18[1] = iVar5;\n          piVar18 = piVar17;\n        } while (puVar6 != puVar12);\n        piVar10 = *(int **)(this + 4);\n        if (piVar10 == piVar19 + 1) goto LAB_002643bc;\n      }\n      piVar19 = piVar19 + 1;\n      piVar18 = *(int **)this;\n      piVar16 = piVar17;\n    } while( true );\n  }\n  uVar14 = 0;\n  goto LAB_002643c4;\nLAB_002643bc:\n  piVar18 = piVar19 + 1;\n  uVar14 = (int)piVar17 - (int)piVar3;\nLAB_002643c4:\n  uVar9 = 0x71c;\n  if (uVar15 == uVar14) {\n    iVar4 = *(int *)this;\n    *param_2 = (uchar *)piVar3;\n    *param_3 = uVar15;\n    *param_4 = (int)piVar18 - iVar4 >> 2;\n    return;\n  }\nLAB_0026444c:\n  (*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_DAT_0043226c + 0x13e0,uVar9,PTR_DAT_0043226c + 0x1808);\n  return;\n}\n\n" (declaration "void __thiscall\ngold::Versions::def_section_contents<64,false>\n          (Versions *this,Stringpool_template *param_1,uchar **param_2,uint *param_3,uint *param_4)\n\n{\n  undefined *puVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Versions::" identifier : : identifier : :) identifier (ERROR "<64" < number_literal) , (ERROR "false>\n          (Versions *this,Stringpool_template *param_1,uchar **param_2,uint *param_3,uint *param_4)\n\n{\n  undefined" (function_declarator "false>\n          (Versions *this,Stringpool_template *param_1,uchar **param_2,uint *param_3,uint *param_4)" identifier (ERROR ">" >) (parameter_list "(Versions *this,Stringpool_template *param_1,uchar **param_2,uint *param_3,uint *param_4)" ( (parameter_declaration "Versions *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Stringpool_template *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uchar **param_2" type_identifier (pointer_declarator "**param_2" * (pointer_declarator "*param_2" * identifier))) , (parameter_declaration "uint *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "uint *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) ))) { identifier) (pointer_declarator "*puVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "undefined4 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "int *piVar16;" primitive_type (pointer_declarator "*piVar16" * identifier) ;) (declaration "int *piVar17;" primitive_type (pointer_declarator "*piVar17" * identifier) ;) (declaration "int *piVar18;" primitive_type (pointer_declarator "*piVar18" * identifier) ;) (declaration "int *piVar19;" primitive_type (pointer_declarator "*piVar19" * identifier) ;) (if_statement "if (this[0x34] == (Versions)0x0) {\n    uVar9 = 0x701;\n    goto LAB_0026444c;\n  }" if (parenthesized_expression "(this[0x34] == (Versions)0x0)" ( (binary_expression "this[0x34] == (Versions)0x0" (subscript_expression "this[0x34]" identifier [ number_literal ]) == (cast_expression "(Versions)0x0" ( (type_descriptor "Versions" type_identifier) ) number_literal)) )) (compound_statement "{\n    uVar9 = 0x701;\n    goto LAB_0026444c;\n  }" { (expression_statement "uVar9 = 0x701;" (assignment_expression "uVar9 = 0x701" identifier = number_literal) ;) (goto_statement "goto LAB_0026444c;" goto statement_identifier ;) })) (expression_statement "piVar3 = *(int **)this;" (assignment_expression "piVar3 = *(int **)this" identifier = (pointer_expression "*(int **)this" * (cast_expression "(int **)this" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (*(int **)(this + 4) == piVar3) {\n    uVar9 = 0x702;\n    goto LAB_0026444c;\n  }" if (parenthesized_expression "(*(int **)(this + 4) == piVar3)" ( (binary_expression "*(int **)(this + 4) == piVar3" (pointer_expression "*(int **)(this + 4)" * (cast_expression "(int **)(this + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n    uVar9 = 0x702;\n    goto LAB_0026444c;\n  }" { (expression_statement "uVar9 = 0x702;" (assignment_expression "uVar9 = 0x702" identifier = number_literal) ;) (goto_statement "goto LAB_0026444c;" goto statement_identifier ;) })) (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" identifier = number_literal) ;) (do_statement "do {\n    iVar4 = *piVar3;\n    piVar3 = piVar3 + 1;\n    uVar15 = uVar15 + (*(int *)(iVar4 + 0x10) - *(int *)(iVar4 + 0xc) >> 3) * 0x55555558 + 0x1c;\n  } while (*(int **)(this + 4) != piVar3);" do (compound_statement "{\n    iVar4 = *piVar3;\n    piVar3 = piVar3 + 1;\n    uVar15 = uVar15 + (*(int *)(iVar4 + 0x10) - *(int *)(iVar4 + 0xc) >> 3) * 0x55555558 + 0x1c;\n  }" { (expression_statement "iVar4 = *piVar3;" (assignment_expression "iVar4 = *piVar3" identifier = (pointer_expression "*piVar3" * identifier)) ;) (expression_statement "piVar3 = piVar3 + 1;" (assignment_expression "piVar3 = piVar3 + 1" identifier = (binary_expression "piVar3 + 1" identifier + number_literal)) ;) (expression_statement "uVar15 = uVar15 + (*(int *)(iVar4 + 0x10) - *(int *)(iVar4 + 0xc) >> 3) * 0x55555558 + 0x1c;" (assignment_expression "uVar15 = uVar15 + (*(int *)(iVar4 + 0x10) - *(int *)(iVar4 + 0xc) >> 3) * 0x55555558 + 0x1c" identifier = (binary_expression "uVar15 + (*(int *)(iVar4 + 0x10) - *(int *)(iVar4 + 0xc) >> 3) * 0x55555558 + 0x1c" (binary_expression "uVar15 + (*(int *)(iVar4 + 0x10) - *(int *)(iVar4 + 0xc) >> 3) * 0x55555558" identifier + (binary_expression "(*(int *)(iVar4 + 0x10) - *(int *)(iVar4 + 0xc) >> 3) * 0x55555558" (parenthesized_expression "(*(int *)(iVar4 + 0x10) - *(int *)(iVar4 + 0xc) >> 3)" ( (binary_expression "*(int *)(iVar4 + 0x10) - *(int *)(iVar4 + 0xc) >> 3" (binary_expression "*(int *)(iVar4 + 0x10) - *(int *)(iVar4 + 0xc)" (pointer_expression "*(int *)(iVar4 + 0x10)" * (cast_expression "(int *)(iVar4 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x10)" ( (binary_expression "iVar4 + 0x10" identifier + number_literal) )))) - (pointer_expression "*(int *)(iVar4 + 0xc)" * (cast_expression "(int *)(iVar4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) ))))) >> number_literal) )) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(*(int **)(this + 4) != piVar3)" ( (binary_expression "*(int **)(this + 4) != piVar3" (pointer_expression "*(int **)(this + 4)" * (cast_expression "(int **)(this + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) != identifier) )) ;) (expression_statement "piVar3 = (int *)(*(code *)PTR_operator_new___004322dc)(uVar15);" (assignment_expression "piVar3 = (int *)(*(code *)PTR_operator_new___004322dc)(uVar15)" identifier = (cast_expression "(int *)(*(code *)PTR_operator_new___004322dc)(uVar15)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new___004322dc)(uVar15)" (parenthesized_expression "(*(code *)PTR_operator_new___004322dc)" ( (pointer_expression "*(code *)PTR_operator_new___004322dc" * (cast_expression "(code *)PTR_operator_new___004322dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar15)" ( identifier ))))) ;) (expression_statement "piVar18 = *(int **)this;" (assignment_expression "piVar18 = *(int **)this" identifier = (pointer_expression "*(int **)this" * (cast_expression "(int **)this" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "piVar10 = *(int **)(this + 4);" (assignment_expression "piVar10 = *(int **)(this + 4)" identifier = (pointer_expression "*(int **)(this + 4)" * (cast_expression "(int **)(this + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) ))))) ;) (if_statement "if (piVar18 != piVar10) {\n    uVar14 = 0;\n    piVar16 = piVar3;\n    piVar19 = piVar18;\n    do {\n      iVar4 = *piVar19;\n      uVar14 = uVar14 + 1;\n      *(undefined2 *)piVar16 = 0x100;\n      uVar2 = (uint)*(byte *)(iVar4 + 0x18);\n      if (*(char *)(iVar4 + 0x19) != '\0') {\n        uVar2 = uVar2 | 2;\n      }\n      if (*(char *)(iVar4 + 0x1a) != '\0') {\n        uVar2 = uVar2 | 4;\n      }\n      uVar7 = *(uint *)(iVar4 + 4);\n      *(short *)((int)piVar16 + 2) = (short)(uVar2 << 8);\n      if (uVar7 == 0xffffffff) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_DAT_0043226c + 0x1a58);\n        return;\n      }\n      iVar13 = *(int *)(iVar4 + 0xc);\n      iVar5 = *(int *)(iVar4 + 0x10);\n      uVar2 = 0;\n      pbVar8 = *(byte **)(iVar4 + 8);\n      *(ushort *)(piVar16 + 1) = (ushort)((uVar7 & 0xff) << 8) | (ushort)(uVar7 >> 8) & 0xff;\n      uVar7 = (iVar5 - iVar13 >> 3) * -0x55555555 + 1;\n      *(ushort *)((int)piVar16 + 6) = (ushort)((uVar7 & 0xff) << 8) | (ushort)(uVar7 >> 8) & 0xff;\n      while (uVar11 = (uint)*pbVar8, uVar11 != 0) {\n        while( true ) {\n          pbVar8 = pbVar8 + 1;\n          uVar2 = uVar11 + uVar2 * 0x10;\n          if ((uVar2 & 0xf0000000) == 0) break;\n          uVar2 = (uVar2 & 0xf0000000) >> 0x18 ^ uVar2 & 0xfffffff;\n          uVar11 = (uint)*pbVar8;\n          if (uVar11 == 0) goto LAB_002642bc;\n        }\n      }\nLAB_002642bc:\n      piVar16[3] = 0x14000000;\n      piVar16[2] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n      puVar1 = PTR_get_offset_004323e0;\n      if (uVar14 < (uint)((int)piVar10 - (int)piVar18 >> 2)) {\n        uVar2 = uVar7 * 8 + 0x14;\n        iVar5 = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n      }\n      else {\n        iVar5 = 0;\n      }\n      piVar16[4] = iVar5;\n      uVar2 = (*(code *)puVar1)(param_1);\n      piVar17 = piVar16 + 7;\n      puVar12 = *(undefined4 **)(iVar4 + 0xc);\n      puVar6 = *(undefined4 **)(iVar4 + 0x10);\n      piVar16[5] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n      if (puVar12 == puVar6) {\n        piVar10 = *(int **)(this + 4);\n        piVar16[6] = 0;\n        if (piVar10 == piVar19 + 1) goto LAB_002643bc;\n      }\n      else {\n        uVar2 = 0;\n        piVar16[6] = 0x8000000;\n        piVar18 = piVar17;\n        do {\n          uVar9 = *puVar12;\n          piVar17 = piVar18 + 2;\n          puVar6 = puVar12 + 1;\n          uVar2 = uVar2 + 1;\n          puVar12 = puVar12 + 6;\n          uVar7 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar9,*puVar6);\n          puVar6 = *(undefined4 **)(iVar4 + 0x10);\n          iVar13 = *(int *)(iVar4 + 0xc);\n          *piVar18 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;\n          iVar5 = 0x8000000;\n          if ((uint)(((int)puVar6 - iVar13 >> 3) * -0x55555555) <= uVar2) {\n            iVar5 = 0;\n          }\n          piVar18[1] = iVar5;\n          piVar18 = piVar17;\n        } while (puVar6 != puVar12);\n        piVar10 = *(int **)(this + 4);\n        if (piVar10 == piVar19 + 1) goto LAB_002643bc;\n      }\n      piVar19 = piVar19 + 1;\n      piVar18 = *(int **)this;\n      piVar16 = piVar17;\n    } while( true );\n  }" if (parenthesized_expression "(piVar18 != piVar10)" ( (binary_expression "piVar18 != piVar10" identifier != identifier) )) (compound_statement "{\n    uVar14 = 0;\n    piVar16 = piVar3;\n    piVar19 = piVar18;\n    do {\n      iVar4 = *piVar19;\n      uVar14 = uVar14 + 1;\n      *(undefined2 *)piVar16 = 0x100;\n      uVar2 = (uint)*(byte *)(iVar4 + 0x18);\n      if (*(char *)(iVar4 + 0x19) != '\0') {\n        uVar2 = uVar2 | 2;\n      }\n      if (*(char *)(iVar4 + 0x1a) != '\0') {\n        uVar2 = uVar2 | 4;\n      }\n      uVar7 = *(uint *)(iVar4 + 4);\n      *(short *)((int)piVar16 + 2) = (short)(uVar2 << 8);\n      if (uVar7 == 0xffffffff) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_DAT_0043226c + 0x1a58);\n        return;\n      }\n      iVar13 = *(int *)(iVar4 + 0xc);\n      iVar5 = *(int *)(iVar4 + 0x10);\n      uVar2 = 0;\n      pbVar8 = *(byte **)(iVar4 + 8);\n      *(ushort *)(piVar16 + 1) = (ushort)((uVar7 & 0xff) << 8) | (ushort)(uVar7 >> 8) & 0xff;\n      uVar7 = (iVar5 - iVar13 >> 3) * -0x55555555 + 1;\n      *(ushort *)((int)piVar16 + 6) = (ushort)((uVar7 & 0xff) << 8) | (ushort)(uVar7 >> 8) & 0xff;\n      while (uVar11 = (uint)*pbVar8, uVar11 != 0) {\n        while( true ) {\n          pbVar8 = pbVar8 + 1;\n          uVar2 = uVar11 + uVar2 * 0x10;\n          if ((uVar2 & 0xf0000000) == 0) break;\n          uVar2 = (uVar2 & 0xf0000000) >> 0x18 ^ uVar2 & 0xfffffff;\n          uVar11 = (uint)*pbVar8;\n          if (uVar11 == 0) goto LAB_002642bc;\n        }\n      }\nLAB_002642bc:\n      piVar16[3] = 0x14000000;\n      piVar16[2] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n      puVar1 = PTR_get_offset_004323e0;\n      if (uVar14 < (uint)((int)piVar10 - (int)piVar18 >> 2)) {\n        uVar2 = uVar7 * 8 + 0x14;\n        iVar5 = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n      }\n      else {\n        iVar5 = 0;\n      }\n      piVar16[4] = iVar5;\n      uVar2 = (*(code *)puVar1)(param_1);\n      piVar17 = piVar16 + 7;\n      puVar12 = *(undefined4 **)(iVar4 + 0xc);\n      puVar6 = *(undefined4 **)(iVar4 + 0x10);\n      piVar16[5] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n      if (puVar12 == puVar6) {\n        piVar10 = *(int **)(this + 4);\n        piVar16[6] = 0;\n        if (piVar10 == piVar19 + 1) goto LAB_002643bc;\n      }\n      else {\n        uVar2 = 0;\n        piVar16[6] = 0x8000000;\n        piVar18 = piVar17;\n        do {\n          uVar9 = *puVar12;\n          piVar17 = piVar18 + 2;\n          puVar6 = puVar12 + 1;\n          uVar2 = uVar2 + 1;\n          puVar12 = puVar12 + 6;\n          uVar7 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar9,*puVar6);\n          puVar6 = *(undefined4 **)(iVar4 + 0x10);\n          iVar13 = *(int *)(iVar4 + 0xc);\n          *piVar18 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;\n          iVar5 = 0x8000000;\n          if ((uint)(((int)puVar6 - iVar13 >> 3) * -0x55555555) <= uVar2) {\n            iVar5 = 0;\n          }\n          piVar18[1] = iVar5;\n          piVar18 = piVar17;\n        } while (puVar6 != puVar12);\n        piVar10 = *(int **)(this + 4);\n        if (piVar10 == piVar19 + 1) goto LAB_002643bc;\n      }\n      piVar19 = piVar19 + 1;\n      piVar18 = *(int **)this;\n      piVar16 = piVar17;\n    } while( true );\n  }" { (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "piVar16 = piVar3;" (assignment_expression "piVar16 = piVar3" identifier = identifier) ;) (expression_statement "piVar19 = piVar18;" (assignment_expression "piVar19 = piVar18" identifier = identifier) ;) (do_statement "do {\n      iVar4 = *piVar19;\n      uVar14 = uVar14 + 1;\n      *(undefined2 *)piVar16 = 0x100;\n      uVar2 = (uint)*(byte *)(iVar4 + 0x18);\n      if (*(char *)(iVar4 + 0x19) != '\0') {\n        uVar2 = uVar2 | 2;\n      }\n      if (*(char *)(iVar4 + 0x1a) != '\0') {\n        uVar2 = uVar2 | 4;\n      }\n      uVar7 = *(uint *)(iVar4 + 4);\n      *(short *)((int)piVar16 + 2) = (short)(uVar2 << 8);\n      if (uVar7 == 0xffffffff) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_DAT_0043226c + 0x1a58);\n        return;\n      }\n      iVar13 = *(int *)(iVar4 + 0xc);\n      iVar5 = *(int *)(iVar4 + 0x10);\n      uVar2 = 0;\n      pbVar8 = *(byte **)(iVar4 + 8);\n      *(ushort *)(piVar16 + 1) = (ushort)((uVar7 & 0xff) << 8) | (ushort)(uVar7 >> 8) & 0xff;\n      uVar7 = (iVar5 - iVar13 >> 3) * -0x55555555 + 1;\n      *(ushort *)((int)piVar16 + 6) = (ushort)((uVar7 & 0xff) << 8) | (ushort)(uVar7 >> 8) & 0xff;\n      while (uVar11 = (uint)*pbVar8, uVar11 != 0) {\n        while( true ) {\n          pbVar8 = pbVar8 + 1;\n          uVar2 = uVar11 + uVar2 * 0x10;\n          if ((uVar2 & 0xf0000000) == 0) break;\n          uVar2 = (uVar2 & 0xf0000000) >> 0x18 ^ uVar2 & 0xfffffff;\n          uVar11 = (uint)*pbVar8;\n          if (uVar11 == 0) goto LAB_002642bc;\n        }\n      }\nLAB_002642bc:\n      piVar16[3] = 0x14000000;\n      piVar16[2] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n      puVar1 = PTR_get_offset_004323e0;\n      if (uVar14 < (uint)((int)piVar10 - (int)piVar18 >> 2)) {\n        uVar2 = uVar7 * 8 + 0x14;\n        iVar5 = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n      }\n      else {\n        iVar5 = 0;\n      }\n      piVar16[4] = iVar5;\n      uVar2 = (*(code *)puVar1)(param_1);\n      piVar17 = piVar16 + 7;\n      puVar12 = *(undefined4 **)(iVar4 + 0xc);\n      puVar6 = *(undefined4 **)(iVar4 + 0x10);\n      piVar16[5] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n      if (puVar12 == puVar6) {\n        piVar10 = *(int **)(this + 4);\n        piVar16[6] = 0;\n        if (piVar10 == piVar19 + 1) goto LAB_002643bc;\n      }\n      else {\n        uVar2 = 0;\n        piVar16[6] = 0x8000000;\n        piVar18 = piVar17;\n        do {\n          uVar9 = *puVar12;\n          piVar17 = piVar18 + 2;\n          puVar6 = puVar12 + 1;\n          uVar2 = uVar2 + 1;\n          puVar12 = puVar12 + 6;\n          uVar7 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar9,*puVar6);\n          puVar6 = *(undefined4 **)(iVar4 + 0x10);\n          iVar13 = *(int *)(iVar4 + 0xc);\n          *piVar18 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;\n          iVar5 = 0x8000000;\n          if ((uint)(((int)puVar6 - iVar13 >> 3) * -0x55555555) <= uVar2) {\n            iVar5 = 0;\n          }\n          piVar18[1] = iVar5;\n          piVar18 = piVar17;\n        } while (puVar6 != puVar12);\n        piVar10 = *(int **)(this + 4);\n        if (piVar10 == piVar19 + 1) goto LAB_002643bc;\n      }\n      piVar19 = piVar19 + 1;\n      piVar18 = *(int **)this;\n      piVar16 = piVar17;\n    } while( true );" do (compound_statement "{\n      iVar4 = *piVar19;\n      uVar14 = uVar14 + 1;\n      *(undefined2 *)piVar16 = 0x100;\n      uVar2 = (uint)*(byte *)(iVar4 + 0x18);\n      if (*(char *)(iVar4 + 0x19) != '\0') {\n        uVar2 = uVar2 | 2;\n      }\n      if (*(char *)(iVar4 + 0x1a) != '\0') {\n        uVar2 = uVar2 | 4;\n      }\n      uVar7 = *(uint *)(iVar4 + 4);\n      *(short *)((int)piVar16 + 2) = (short)(uVar2 << 8);\n      if (uVar7 == 0xffffffff) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_DAT_0043226c + 0x1a58);\n        return;\n      }\n      iVar13 = *(int *)(iVar4 + 0xc);\n      iVar5 = *(int *)(iVar4 + 0x10);\n      uVar2 = 0;\n      pbVar8 = *(byte **)(iVar4 + 8);\n      *(ushort *)(piVar16 + 1) = (ushort)((uVar7 & 0xff) << 8) | (ushort)(uVar7 >> 8) & 0xff;\n      uVar7 = (iVar5 - iVar13 >> 3) * -0x55555555 + 1;\n      *(ushort *)((int)piVar16 + 6) = (ushort)((uVar7 & 0xff) << 8) | (ushort)(uVar7 >> 8) & 0xff;\n      while (uVar11 = (uint)*pbVar8, uVar11 != 0) {\n        while( true ) {\n          pbVar8 = pbVar8 + 1;\n          uVar2 = uVar11 + uVar2 * 0x10;\n          if ((uVar2 & 0xf0000000) == 0) break;\n          uVar2 = (uVar2 & 0xf0000000) >> 0x18 ^ uVar2 & 0xfffffff;\n          uVar11 = (uint)*pbVar8;\n          if (uVar11 == 0) goto LAB_002642bc;\n        }\n      }\nLAB_002642bc:\n      piVar16[3] = 0x14000000;\n      piVar16[2] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n      puVar1 = PTR_get_offset_004323e0;\n      if (uVar14 < (uint)((int)piVar10 - (int)piVar18 >> 2)) {\n        uVar2 = uVar7 * 8 + 0x14;\n        iVar5 = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n      }\n      else {\n        iVar5 = 0;\n      }\n      piVar16[4] = iVar5;\n      uVar2 = (*(code *)puVar1)(param_1);\n      piVar17 = piVar16 + 7;\n      puVar12 = *(undefined4 **)(iVar4 + 0xc);\n      puVar6 = *(undefined4 **)(iVar4 + 0x10);\n      piVar16[5] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n      if (puVar12 == puVar6) {\n        piVar10 = *(int **)(this + 4);\n        piVar16[6] = 0;\n        if (piVar10 == piVar19 + 1) goto LAB_002643bc;\n      }\n      else {\n        uVar2 = 0;\n        piVar16[6] = 0x8000000;\n        piVar18 = piVar17;\n        do {\n          uVar9 = *puVar12;\n          piVar17 = piVar18 + 2;\n          puVar6 = puVar12 + 1;\n          uVar2 = uVar2 + 1;\n          puVar12 = puVar12 + 6;\n          uVar7 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar9,*puVar6);\n          puVar6 = *(undefined4 **)(iVar4 + 0x10);\n          iVar13 = *(int *)(iVar4 + 0xc);\n          *piVar18 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;\n          iVar5 = 0x8000000;\n          if ((uint)(((int)puVar6 - iVar13 >> 3) * -0x55555555) <= uVar2) {\n            iVar5 = 0;\n          }\n          piVar18[1] = iVar5;\n          piVar18 = piVar17;\n        } while (puVar6 != puVar12);\n        piVar10 = *(int **)(this + 4);\n        if (piVar10 == piVar19 + 1) goto LAB_002643bc;\n      }\n      piVar19 = piVar19 + 1;\n      piVar18 = *(int **)this;\n      piVar16 = piVar17;\n    }" { (expression_statement "iVar4 = *piVar19;" (assignment_expression "iVar4 = *piVar19" identifier = (pointer_expression "*piVar19" * identifier)) ;) (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined2 *)piVar16 = 0x100;" (assignment_expression "*(undefined2 *)piVar16 = 0x100" (pointer_expression "*(undefined2 *)piVar16" * (cast_expression "(undefined2 *)piVar16" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "uVar2 = (uint)*(byte *)(iVar4 + 0x18);" (assignment_expression "uVar2 = (uint)*(byte *)(iVar4 + 0x18)" identifier = (binary_expression "(uint)*(byte *)(iVar4 + 0x18)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar4 + 0x18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(iVar4 + 0x19) != '\0') {\n        uVar2 = uVar2 | 2;\n      }" if (parenthesized_expression "(*(char *)(iVar4 + 0x19) != '\0')" ( (binary_expression "*(char *)(iVar4 + 0x19) != '\0'" (pointer_expression "*(char *)(iVar4 + 0x19)" * (cast_expression "(char *)(iVar4 + 0x19)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x19)" ( (binary_expression "iVar4 + 0x19" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        uVar2 = uVar2 | 2;\n      }" { (expression_statement "uVar2 = uVar2 | 2;" (assignment_expression "uVar2 = uVar2 | 2" identifier = (binary_expression "uVar2 | 2" identifier | number_literal)) ;) })) (if_statement "if (*(char *)(iVar4 + 0x1a) != '\0') {\n        uVar2 = uVar2 | 4;\n      }" if (parenthesized_expression "(*(char *)(iVar4 + 0x1a) != '\0')" ( (binary_expression "*(char *)(iVar4 + 0x1a) != '\0'" (pointer_expression "*(char *)(iVar4 + 0x1a)" * (cast_expression "(char *)(iVar4 + 0x1a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1a)" ( (binary_expression "iVar4 + 0x1a" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        uVar2 = uVar2 | 4;\n      }" { (expression_statement "uVar2 = uVar2 | 4;" (assignment_expression "uVar2 = uVar2 | 4" identifier = (binary_expression "uVar2 | 4" identifier | number_literal)) ;) })) (expression_statement "uVar7 = *(uint *)(iVar4 + 4);" (assignment_expression "uVar7 = *(uint *)(iVar4 + 4)" identifier = (pointer_expression "*(uint *)(iVar4 + 4)" * (cast_expression "(uint *)(iVar4 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 4)" ( (binary_expression "iVar4 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(short *)((int)piVar16 + 2) = (short)(uVar2 << 8);" (assignment_expression "*(short *)((int)piVar16 + 2) = (short)(uVar2 << 8)" (pointer_expression "*(short *)((int)piVar16 + 2)" * (cast_expression "(short *)((int)piVar16 + 2)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + 2)" ( (binary_expression "(int)piVar16 + 2" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(short)(uVar2 << 8)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "(uVar2 << 8)" ( (binary_expression "uVar2 << 8" identifier << number_literal) )))) ;) (if_statement "if (uVar7 == 0xffffffff) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_DAT_0043226c + 0x1a58);\n        return;\n      }" if (parenthesized_expression "(uVar7 == 0xffffffff)" ( (binary_expression "uVar7 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_DAT_0043226c + 0x1a58);\n        return;\n      }" { (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_DAT_0043226c + 0x1a58);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_DAT_0043226c + 0x1a58)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_DAT_0043226c + 0x1a58)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x4f94" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0043226c + 0x1a58" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (expression_statement "iVar13 = *(int *)(iVar4 + 0xc);" (assignment_expression "iVar13 = *(int *)(iVar4 + 0xc)" identifier = (pointer_expression "*(int *)(iVar4 + 0xc)" * (cast_expression "(int *)(iVar4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = *(int *)(iVar4 + 0x10);" (assignment_expression "iVar5 = *(int *)(iVar4 + 0x10)" identifier = (pointer_expression "*(int *)(iVar4 + 0x10)" * (cast_expression "(int *)(iVar4 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x10)" ( (binary_expression "iVar4 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (expression_statement "pbVar8 = *(byte **)(iVar4 + 8);" (assignment_expression "pbVar8 = *(byte **)(iVar4 + 8)" identifier = (pointer_expression "*(byte **)(iVar4 + 8)" * (cast_expression "(byte **)(iVar4 + 8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(ushort *)(piVar16 + 1) = (ushort)((uVar7 & 0xff) << 8) | (ushort)(uVar7 >> 8) & 0xff;" (assignment_expression "*(ushort *)(piVar16 + 1) = (ushort)((uVar7 & 0xff) << 8) | (ushort)(uVar7 >> 8) & 0xff" (pointer_expression "*(ushort *)(piVar16 + 1)" * (cast_expression "(ushort *)(piVar16 + 1)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar16 + 1)" ( (binary_expression "piVar16 + 1" identifier + number_literal) )))) = (binary_expression "(ushort)((uVar7 & 0xff) << 8) | (ushort)(uVar7 >> 8) & 0xff" (call_expression "(ushort)((uVar7 & 0xff) << 8)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "((uVar7 & 0xff) << 8)" ( (binary_expression "(uVar7 & 0xff) << 8" (parenthesized_expression "(uVar7 & 0xff)" ( (binary_expression "uVar7 & 0xff" identifier & number_literal) )) << number_literal) ))) | (binary_expression "(ushort)(uVar7 >> 8) & 0xff" (call_expression "(ushort)(uVar7 >> 8)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(uVar7 >> 8)" ( (binary_expression "uVar7 >> 8" identifier >> number_literal) ))) & number_literal))) ;) (expression_statement "uVar7 = (iVar5 - iVar13 >> 3) * -0x55555555 + 1;" (assignment_expression "uVar7 = (iVar5 - iVar13 >> 3) * -0x55555555 + 1" identifier = (binary_expression "(iVar5 - iVar13 >> 3) * -0x55555555 + 1" (binary_expression "(iVar5 - iVar13 >> 3) * -0x55555555" (parenthesized_expression "(iVar5 - iVar13 >> 3)" ( (binary_expression "iVar5 - iVar13 >> 3" (binary_expression "iVar5 - iVar13" identifier - identifier) >> number_literal) )) * number_literal) + number_literal)) ;) (expression_statement "*(ushort *)((int)piVar16 + 6) = (ushort)((uVar7 & 0xff) << 8) | (ushort)(uVar7 >> 8) & 0xff;" (assignment_expression "*(ushort *)((int)piVar16 + 6) = (ushort)((uVar7 & 0xff) << 8) | (ushort)(uVar7 >> 8) & 0xff" (pointer_expression "*(ushort *)((int)piVar16 + 6)" * (cast_expression "(ushort *)((int)piVar16 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + 6)" ( (binary_expression "(int)piVar16 + 6" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(ushort)((uVar7 & 0xff) << 8) | (ushort)(uVar7 >> 8) & 0xff" (call_expression "(ushort)((uVar7 & 0xff) << 8)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "((uVar7 & 0xff) << 8)" ( (binary_expression "(uVar7 & 0xff) << 8" (parenthesized_expression "(uVar7 & 0xff)" ( (binary_expression "uVar7 & 0xff" identifier & number_literal) )) << number_literal) ))) | (binary_expression "(ushort)(uVar7 >> 8) & 0xff" (call_expression "(ushort)(uVar7 >> 8)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(uVar7 >> 8)" ( (binary_expression "uVar7 >> 8" identifier >> number_literal) ))) & number_literal))) ;) (while_statement "while (uVar11 = (uint)*pbVar8, uVar11 != 0) {\n        while( true ) {\n          pbVar8 = pbVar8 + 1;\n          uVar2 = uVar11 + uVar2 * 0x10;\n          if ((uVar2 & 0xf0000000) == 0) break;\n          uVar2 = (uVar2 & 0xf0000000) >> 0x18 ^ uVar2 & 0xfffffff;\n          uVar11 = (uint)*pbVar8;\n          if (uVar11 == 0) goto LAB_002642bc;\n        }\n      }" while (parenthesized_expression "(uVar11 = (uint)*pbVar8, uVar11 != 0)" ( (comma_expression "uVar11 = (uint)*pbVar8, uVar11 != 0" (assignment_expression "uVar11 = (uint)*pbVar8" identifier = (binary_expression "(uint)*pbVar8" (parenthesized_expression "(uint)" ( identifier )) * identifier)) , (binary_expression "uVar11 != 0" identifier != number_literal)) )) (compound_statement "{\n        while( true ) {\n          pbVar8 = pbVar8 + 1;\n          uVar2 = uVar11 + uVar2 * 0x10;\n          if ((uVar2 & 0xf0000000) == 0) break;\n          uVar2 = (uVar2 & 0xf0000000) >> 0x18 ^ uVar2 & 0xfffffff;\n          uVar11 = (uint)*pbVar8;\n          if (uVar11 == 0) goto LAB_002642bc;\n        }\n      }" { (while_statement "while( true ) {\n          pbVar8 = pbVar8 + 1;\n          uVar2 = uVar11 + uVar2 * 0x10;\n          if ((uVar2 & 0xf0000000) == 0) break;\n          uVar2 = (uVar2 & 0xf0000000) >> 0x18 ^ uVar2 & 0xfffffff;\n          uVar11 = (uint)*pbVar8;\n          if (uVar11 == 0) goto LAB_002642bc;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          pbVar8 = pbVar8 + 1;\n          uVar2 = uVar11 + uVar2 * 0x10;\n          if ((uVar2 & 0xf0000000) == 0) break;\n          uVar2 = (uVar2 & 0xf0000000) >> 0x18 ^ uVar2 & 0xfffffff;\n          uVar11 = (uint)*pbVar8;\n          if (uVar11 == 0) goto LAB_002642bc;\n        }" { (expression_statement "pbVar8 = pbVar8 + 1;" (assignment_expression "pbVar8 = pbVar8 + 1" identifier = (binary_expression "pbVar8 + 1" identifier + number_literal)) ;) (expression_statement "uVar2 = uVar11 + uVar2 * 0x10;" (assignment_expression "uVar2 = uVar11 + uVar2 * 0x10" identifier = (binary_expression "uVar11 + uVar2 * 0x10" identifier + (binary_expression "uVar2 * 0x10" identifier * number_literal))) ;) (if_statement "if ((uVar2 & 0xf0000000) == 0) break;" if (parenthesized_expression "((uVar2 & 0xf0000000) == 0)" ( (binary_expression "(uVar2 & 0xf0000000) == 0" (parenthesized_expression "(uVar2 & 0xf0000000)" ( (binary_expression "uVar2 & 0xf0000000" identifier & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar2 = (uVar2 & 0xf0000000) >> 0x18 ^ uVar2 & 0xfffffff;" (assignment_expression "uVar2 = (uVar2 & 0xf0000000) >> 0x18 ^ uVar2 & 0xfffffff" identifier = (binary_expression "(uVar2 & 0xf0000000) >> 0x18 ^ uVar2 & 0xfffffff" (binary_expression "(uVar2 & 0xf0000000) >> 0x18" (parenthesized_expression "(uVar2 & 0xf0000000)" ( (binary_expression "uVar2 & 0xf0000000" identifier & number_literal) )) >> number_literal) ^ (binary_expression "uVar2 & 0xfffffff" identifier & number_literal))) ;) (expression_statement "uVar11 = (uint)*pbVar8;" (assignment_expression "uVar11 = (uint)*pbVar8" identifier = (binary_expression "(uint)*pbVar8" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (if_statement "if (uVar11 == 0) goto LAB_002642bc;" if (parenthesized_expression "(uVar11 == 0)" ( (binary_expression "uVar11 == 0" identifier == number_literal) )) (goto_statement "goto LAB_002642bc;" goto statement_identifier ;)) })) })) (labeled_statement "LAB_002642bc:\n      piVar16[3] = 0x14000000;" statement_identifier : (expression_statement "piVar16[3] = 0x14000000;" (assignment_expression "piVar16[3] = 0x14000000" (subscript_expression "piVar16[3]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "piVar16[2] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;" (assignment_expression "piVar16[2] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000" (subscript_expression "piVar16[2]" identifier [ number_literal ]) = (binary_expression "(((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10)" ( (binary_expression "(uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10" (binary_expression "(uVar2 >> 0x10) << 0x18" (parenthesized_expression "(uVar2 >> 0x10)" ( (binary_expression "uVar2 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar2 >> 0x18) << 0x10" (parenthesized_expression "(uVar2 >> 0x18)" ( (binary_expression "uVar2 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff)" ( (binary_expression "(uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff" (binary_expression "(uVar2 & 0xff) << 8" (parenthesized_expression "(uVar2 & 0xff)" ( (binary_expression "uVar2 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar2 >> 8 & 0xff" (binary_expression "uVar2 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) (expression_statement "puVar1 = PTR_get_offset_004323e0;" (assignment_expression "puVar1 = PTR_get_offset_004323e0" identifier = identifier) ;) (if_statement "if (uVar14 < (uint)((int)piVar10 - (int)piVar18 >> 2)) {\n        uVar2 = uVar7 * 8 + 0x14;\n        iVar5 = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n      }\n      else {\n        iVar5 = 0;\n      }" if (parenthesized_expression "(uVar14 < (uint)((int)piVar10 - (int)piVar18 >> 2))" ( (binary_expression "uVar14 < (uint)((int)piVar10 - (int)piVar18 >> 2)" identifier < (call_expression "(uint)((int)piVar10 - (int)piVar18 >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)piVar10 - (int)piVar18 >> 2)" ( (binary_expression "(int)piVar10 - (int)piVar18 >> 2" (binary_expression "(int)piVar10 - (int)piVar18" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piVar18" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) )))) )) (compound_statement "{\n        uVar2 = uVar7 * 8 + 0x14;\n        iVar5 = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n      }" { (expression_statement "uVar2 = uVar7 * 8 + 0x14;" (assignment_expression "uVar2 = uVar7 * 8 + 0x14" identifier = (binary_expression "uVar7 * 8 + 0x14" (binary_expression "uVar7 * 8" identifier * number_literal) + number_literal)) ;) (expression_statement "iVar5 = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;" (assignment_expression "iVar5 = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000" identifier = (binary_expression "(((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10)" ( (binary_expression "(uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10" (binary_expression "(uVar2 >> 0x10) << 0x18" (parenthesized_expression "(uVar2 >> 0x10)" ( (binary_expression "uVar2 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar2 >> 0x18) << 0x10" (parenthesized_expression "(uVar2 >> 0x18)" ( (binary_expression "uVar2 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff)" ( (binary_expression "(uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff" (binary_expression "(uVar2 & 0xff) << 8" (parenthesized_expression "(uVar2 & 0xff)" ( (binary_expression "uVar2 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar2 >> 8 & 0xff" (binary_expression "uVar2 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) }) (else_clause "else {\n        iVar5 = 0;\n      }" else (compound_statement "{\n        iVar5 = 0;\n      }" { (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) }))) (expression_statement "piVar16[4] = iVar5;" (assignment_expression "piVar16[4] = iVar5" (subscript_expression "piVar16[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar2 = (*(code *)puVar1)(param_1);" (assignment_expression "uVar2 = (*(code *)puVar1)(param_1)" identifier = (call_expression "(*(code *)puVar1)(param_1)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "piVar17 = piVar16 + 7;" (assignment_expression "piVar17 = piVar16 + 7" identifier = (binary_expression "piVar16 + 7" identifier + number_literal)) ;) (expression_statement "puVar12 = *(undefined4 **)(iVar4 + 0xc);" (assignment_expression "puVar12 = *(undefined4 **)(iVar4 + 0xc)" identifier = (pointer_expression "*(undefined4 **)(iVar4 + 0xc)" * (cast_expression "(undefined4 **)(iVar4 + 0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "puVar6 = *(undefined4 **)(iVar4 + 0x10);" (assignment_expression "puVar6 = *(undefined4 **)(iVar4 + 0x10)" identifier = (pointer_expression "*(undefined4 **)(iVar4 + 0x10)" * (cast_expression "(undefined4 **)(iVar4 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x10)" ( (binary_expression "iVar4 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "piVar16[5] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;" (assignment_expression "piVar16[5] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000" (subscript_expression "piVar16[5]" identifier [ number_literal ]) = (binary_expression "(((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10)" ( (binary_expression "(uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10" (binary_expression "(uVar2 >> 0x10) << 0x18" (parenthesized_expression "(uVar2 >> 0x10)" ( (binary_expression "uVar2 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar2 >> 0x18) << 0x10" (parenthesized_expression "(uVar2 >> 0x18)" ( (binary_expression "uVar2 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff)" ( (binary_expression "(uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff" (binary_expression "(uVar2 & 0xff) << 8" (parenthesized_expression "(uVar2 & 0xff)" ( (binary_expression "uVar2 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar2 >> 8 & 0xff" (binary_expression "uVar2 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) (if_statement "if (puVar12 == puVar6) {\n        piVar10 = *(int **)(this + 4);\n        piVar16[6] = 0;\n        if (piVar10 == piVar19 + 1) goto LAB_002643bc;\n      }\n      else {\n        uVar2 = 0;\n        piVar16[6] = 0x8000000;\n        piVar18 = piVar17;\n        do {\n          uVar9 = *puVar12;\n          piVar17 = piVar18 + 2;\n          puVar6 = puVar12 + 1;\n          uVar2 = uVar2 + 1;\n          puVar12 = puVar12 + 6;\n          uVar7 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar9,*puVar6);\n          puVar6 = *(undefined4 **)(iVar4 + 0x10);\n          iVar13 = *(int *)(iVar4 + 0xc);\n          *piVar18 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;\n          iVar5 = 0x8000000;\n          if ((uint)(((int)puVar6 - iVar13 >> 3) * -0x55555555) <= uVar2) {\n            iVar5 = 0;\n          }\n          piVar18[1] = iVar5;\n          piVar18 = piVar17;\n        } while (puVar6 != puVar12);\n        piVar10 = *(int **)(this + 4);\n        if (piVar10 == piVar19 + 1) goto LAB_002643bc;\n      }" if (parenthesized_expression "(puVar12 == puVar6)" ( (binary_expression "puVar12 == puVar6" identifier == identifier) )) (compound_statement "{\n        piVar10 = *(int **)(this + 4);\n        piVar16[6] = 0;\n        if (piVar10 == piVar19 + 1) goto LAB_002643bc;\n      }" { (expression_statement "piVar10 = *(int **)(this + 4);" (assignment_expression "piVar10 = *(int **)(this + 4)" identifier = (pointer_expression "*(int **)(this + 4)" * (cast_expression "(int **)(this + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) ))))) ;) (expression_statement "piVar16[6] = 0;" (assignment_expression "piVar16[6] = 0" (subscript_expression "piVar16[6]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (piVar10 == piVar19 + 1) goto LAB_002643bc;" if (parenthesized_expression "(piVar10 == piVar19 + 1)" ( (binary_expression "piVar10 == piVar19 + 1" identifier == (binary_expression "piVar19 + 1" identifier + number_literal)) )) (goto_statement "goto LAB_002643bc;" goto statement_identifier ;)) }) (else_clause "else {\n        uVar2 = 0;\n        piVar16[6] = 0x8000000;\n        piVar18 = piVar17;\n        do {\n          uVar9 = *puVar12;\n          piVar17 = piVar18 + 2;\n          puVar6 = puVar12 + 1;\n          uVar2 = uVar2 + 1;\n          puVar12 = puVar12 + 6;\n          uVar7 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar9,*puVar6);\n          puVar6 = *(undefined4 **)(iVar4 + 0x10);\n          iVar13 = *(int *)(iVar4 + 0xc);\n          *piVar18 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;\n          iVar5 = 0x8000000;\n          if ((uint)(((int)puVar6 - iVar13 >> 3) * -0x55555555) <= uVar2) {\n            iVar5 = 0;\n          }\n          piVar18[1] = iVar5;\n          piVar18 = piVar17;\n        } while (puVar6 != puVar12);\n        piVar10 = *(int **)(this + 4);\n        if (piVar10 == piVar19 + 1) goto LAB_002643bc;\n      }" else (compound_statement "{\n        uVar2 = 0;\n        piVar16[6] = 0x8000000;\n        piVar18 = piVar17;\n        do {\n          uVar9 = *puVar12;\n          piVar17 = piVar18 + 2;\n          puVar6 = puVar12 + 1;\n          uVar2 = uVar2 + 1;\n          puVar12 = puVar12 + 6;\n          uVar7 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar9,*puVar6);\n          puVar6 = *(undefined4 **)(iVar4 + 0x10);\n          iVar13 = *(int *)(iVar4 + 0xc);\n          *piVar18 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;\n          iVar5 = 0x8000000;\n          if ((uint)(((int)puVar6 - iVar13 >> 3) * -0x55555555) <= uVar2) {\n            iVar5 = 0;\n          }\n          piVar18[1] = iVar5;\n          piVar18 = piVar17;\n        } while (puVar6 != puVar12);\n        piVar10 = *(int **)(this + 4);\n        if (piVar10 == piVar19 + 1) goto LAB_002643bc;\n      }" { (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (expression_statement "piVar16[6] = 0x8000000;" (assignment_expression "piVar16[6] = 0x8000000" (subscript_expression "piVar16[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar18 = piVar17;" (assignment_expression "piVar18 = piVar17" identifier = identifier) ;) (do_statement "do {\n          uVar9 = *puVar12;\n          piVar17 = piVar18 + 2;\n          puVar6 = puVar12 + 1;\n          uVar2 = uVar2 + 1;\n          puVar12 = puVar12 + 6;\n          uVar7 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar9,*puVar6);\n          puVar6 = *(undefined4 **)(iVar4 + 0x10);\n          iVar13 = *(int *)(iVar4 + 0xc);\n          *piVar18 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;\n          iVar5 = 0x8000000;\n          if ((uint)(((int)puVar6 - iVar13 >> 3) * -0x55555555) <= uVar2) {\n            iVar5 = 0;\n          }\n          piVar18[1] = iVar5;\n          piVar18 = piVar17;\n        } while (puVar6 != puVar12);" do (compound_statement "{\n          uVar9 = *puVar12;\n          piVar17 = piVar18 + 2;\n          puVar6 = puVar12 + 1;\n          uVar2 = uVar2 + 1;\n          puVar12 = puVar12 + 6;\n          uVar7 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar9,*puVar6);\n          puVar6 = *(undefined4 **)(iVar4 + 0x10);\n          iVar13 = *(int *)(iVar4 + 0xc);\n          *piVar18 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;\n          iVar5 = 0x8000000;\n          if ((uint)(((int)puVar6 - iVar13 >> 3) * -0x55555555) <= uVar2) {\n            iVar5 = 0;\n          }\n          piVar18[1] = iVar5;\n          piVar18 = piVar17;\n        }" { (expression_statement "uVar9 = *puVar12;" (assignment_expression "uVar9 = *puVar12" identifier = (pointer_expression "*puVar12" * identifier)) ;) (expression_statement "piVar17 = piVar18 + 2;" (assignment_expression "piVar17 = piVar18 + 2" identifier = (binary_expression "piVar18 + 2" identifier + number_literal)) ;) (expression_statement "puVar6 = puVar12 + 1;" (assignment_expression "puVar6 = puVar12 + 1" identifier = (binary_expression "puVar12 + 1" identifier + number_literal)) ;) (expression_statement "uVar2 = uVar2 + 1;" (assignment_expression "uVar2 = uVar2 + 1" identifier = (binary_expression "uVar2 + 1" identifier + number_literal)) ;) (expression_statement "puVar12 = puVar12 + 6;" (assignment_expression "puVar12 = puVar12 + 6" identifier = (binary_expression "puVar12 + 6" identifier + number_literal)) ;) (expression_statement "uVar7 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar9,*puVar6);" (assignment_expression "uVar7 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar9,*puVar6)" identifier = (call_expression "(*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar9,*puVar6)" (parenthesized_expression "(*(code *)PTR_get_offset_with_length_004351bc)" ( (pointer_expression "*(code *)PTR_get_offset_with_length_004351bc" * (cast_expression "(code *)PTR_get_offset_with_length_004351bc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,uVar9,*puVar6)" ( identifier , identifier , (pointer_expression "*puVar6" * identifier) )))) ;) (expression_statement "puVar6 = *(undefined4 **)(iVar4 + 0x10);" (assignment_expression "puVar6 = *(undefined4 **)(iVar4 + 0x10)" identifier = (pointer_expression "*(undefined4 **)(iVar4 + 0x10)" * (cast_expression "(undefined4 **)(iVar4 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x10)" ( (binary_expression "iVar4 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar13 = *(int *)(iVar4 + 0xc);" (assignment_expression "iVar13 = *(int *)(iVar4 + 0xc)" identifier = (pointer_expression "*(int *)(iVar4 + 0xc)" * (cast_expression "(int *)(iVar4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*piVar18 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;" (assignment_expression "*piVar18 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000" (pointer_expression "*piVar18" * identifier) = (binary_expression "(((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10)" ( (binary_expression "(uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10" (binary_expression "(uVar7 >> 0x10) << 0x18" (parenthesized_expression "(uVar7 >> 0x10)" ( (binary_expression "uVar7 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar7 >> 0x18) << 0x10" (parenthesized_expression "(uVar7 >> 0x18)" ( (binary_expression "uVar7 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff)" ( (binary_expression "(uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff" (binary_expression "(uVar7 & 0xff) << 8" (parenthesized_expression "(uVar7 & 0xff)" ( (binary_expression "uVar7 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar7 >> 8 & 0xff" (binary_expression "uVar7 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) (expression_statement "iVar5 = 0x8000000;" (assignment_expression "iVar5 = 0x8000000" identifier = number_literal) ;) (if_statement "if ((uint)(((int)puVar6 - iVar13 >> 3) * -0x55555555) <= uVar2) {\n            iVar5 = 0;\n          }" if (parenthesized_expression "((uint)(((int)puVar6 - iVar13 >> 3) * -0x55555555) <= uVar2)" ( (binary_expression "(uint)(((int)puVar6 - iVar13 >> 3) * -0x55555555) <= uVar2" (call_expression "(uint)(((int)puVar6 - iVar13 >> 3) * -0x55555555)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(((int)puVar6 - iVar13 >> 3) * -0x55555555)" ( (binary_expression "((int)puVar6 - iVar13 >> 3) * -0x55555555" (parenthesized_expression "((int)puVar6 - iVar13 >> 3)" ( (binary_expression "(int)puVar6 - iVar13 >> 3" (binary_expression "(int)puVar6 - iVar13" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) >> number_literal) )) * number_literal) ))) <= identifier) )) (compound_statement "{\n            iVar5 = 0;\n          }" { (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) })) (expression_statement "piVar18[1] = iVar5;" (assignment_expression "piVar18[1] = iVar5" (subscript_expression "piVar18[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar18 = piVar17;" (assignment_expression "piVar18 = piVar17" identifier = identifier) ;) }) while (parenthesized_expression "(puVar6 != puVar12)" ( (binary_expression "puVar6 != puVar12" identifier != identifier) )) ;) (expression_statement "piVar10 = *(int **)(this + 4);" (assignment_expression "piVar10 = *(int **)(this + 4)" identifier = (pointer_expression "*(int **)(this + 4)" * (cast_expression "(int **)(this + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) ))))) ;) (if_statement "if (piVar10 == piVar19 + 1) goto LAB_002643bc;" if (parenthesized_expression "(piVar10 == piVar19 + 1)" ( (binary_expression "piVar10 == piVar19 + 1" identifier == (binary_expression "piVar19 + 1" identifier + number_literal)) )) (goto_statement "goto LAB_002643bc;" goto statement_identifier ;)) }))) (expression_statement "piVar19 = piVar19 + 1;" (assignment_expression "piVar19 = piVar19 + 1" identifier = (binary_expression "piVar19 + 1" identifier + number_literal)) ;) (expression_statement "piVar18 = *(int **)this;" (assignment_expression "piVar18 = *(int **)this" identifier = (pointer_expression "*(int **)this" * (cast_expression "(int **)this" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "piVar16 = piVar17;" (assignment_expression "piVar16 = piVar17" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_002643c4;" goto statement_identifier ;) (labeled_statement "LAB_002643bc:\n  piVar18 = piVar19 + 1;" statement_identifier : (expression_statement "piVar18 = piVar19 + 1;" (assignment_expression "piVar18 = piVar19 + 1" identifier = (binary_expression "piVar19 + 1" identifier + number_literal)) ;)) (expression_statement "uVar14 = (int)piVar17 - (int)piVar3;" (assignment_expression "uVar14 = (int)piVar17 - (int)piVar3" identifier = (binary_expression "(int)piVar17 - (int)piVar3" (cast_expression "(int)piVar17" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (labeled_statement "LAB_002643c4:\n  uVar9 = 0x71c;" statement_identifier : (expression_statement "uVar9 = 0x71c;" (assignment_expression "uVar9 = 0x71c" identifier = number_literal) ;)) (if_statement "if (uVar15 == uVar14) {\n    iVar4 = *(int *)this;\n    *param_2 = (uchar *)piVar3;\n    *param_3 = uVar15;\n    *param_4 = (int)piVar18 - iVar4 >> 2;\n    return;\n  }" if (parenthesized_expression "(uVar15 == uVar14)" ( (binary_expression "uVar15 == uVar14" identifier == identifier) )) (compound_statement "{\n    iVar4 = *(int *)this;\n    *param_2 = (uchar *)piVar3;\n    *param_3 = uVar15;\n    *param_4 = (int)piVar18 - iVar4 >> 2;\n    return;\n  }" { (expression_statement "iVar4 = *(int *)this;" (assignment_expression "iVar4 = *(int *)this" identifier = (pointer_expression "*(int *)this" * (cast_expression "(int *)this" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*param_2 = (uchar *)piVar3;" (assignment_expression "*param_2 = (uchar *)piVar3" (pointer_expression "*param_2" * identifier) = (cast_expression "(uchar *)piVar3" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "*param_3 = uVar15;" (assignment_expression "*param_3 = uVar15" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "*param_4 = (int)piVar18 - iVar4 >> 2;" (assignment_expression "*param_4 = (int)piVar18 - iVar4 >> 2" (pointer_expression "*param_4" * identifier) = (binary_expression "(int)piVar18 - iVar4 >> 2" (binary_expression "(int)piVar18 - iVar4" (cast_expression "(int)piVar18" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) >> number_literal)) ;) (return_statement "return;" return ;) })) (labeled_statement "LAB_0026444c:\n  (*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_DAT_0043226c + 0x13e0,uVar9,PTR_DAT_0043226c + 0x1808);" statement_identifier : (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_DAT_0043226c + 0x13e0,uVar9,PTR_DAT_0043226c + 0x1808);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_DAT_0043226c + 0x13e0,uVar9,PTR_DAT_0043226c + 0x1808)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0043226c + 0x13e0,uVar9,PTR_DAT_0043226c + 0x1808)" ( (binary_expression "PTR_DAT_0043226c + 0x13e0" identifier + number_literal) , identifier , (binary_expression "PTR_DAT_0043226c + 0x1808" identifier + number_literal) ))) ;)) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit (declaration TYPE (ms_call_modifier __thiscall) (ERROR IDENT : : IDENT : :) IDENT (ERROR < LIT) , (ERROR (function_declarator IDENT (ERROR >) (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * (pointer_declarator * IDENT))) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) { IDENT) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) >> LIT) )) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (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 { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (parenthesized_expression ( (binary_expression IDENT << LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT) ))) | (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))) & LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - IDENT) >> LIT) )) * LIT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT) ))) | (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))) & LIT))) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) , (binary_expression IDENT != LIT)) )) (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT) ^ (binary_expression IDENT & LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_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 (subscript_expression IDENT [ LIT ]) = LIT) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) << LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) << LIT)) )) >> LIT) )) + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT) | (binary_expression (binary_expression IDENT >> LIT) & LIT)) )) * LIT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) >> LIT) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * LIT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) << LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) << LIT)) )) >> LIT) )) + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT) | (binary_expression (binary_expression IDENT >> LIT) & LIT)) )) * LIT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) << LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) << LIT)) )) >> LIT) )) + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT) | (binary_expression (binary_expression IDENT >> LIT) & LIT)) )) * LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + LIT)) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (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 IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , (pointer_expression * IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) << LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) << LIT)) )) >> LIT) )) + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT) | (binary_expression (binary_expression IDENT >> LIT) & LIT)) )) * LIT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT) >> LIT) )) * LIT) ))) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + LIT)) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( BOOL )) ;) })) (expression_statement (assignment_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 (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT) >> LIT)) ;) (return_statement return ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , IDENT , (binary_expression IDENT + LIT) ))) ;)) (return_statement return ;) (ERROR }))
(declaration "void __thiscall\ngold::Versions::def_section_contents<64,false>\n          (Versions *this,Stringpool_template *param_1,uchar **param_2,uint *param_3,uint *param_4)\n\n{\n  undefined *puVar1;" (primitive_type "void") (ms_call_modifier "__thiscall" (__thiscall "__thiscall")) (ERROR "gold::Versions::" (identifier "gold") (: ":") (: ":") (identifier "Versions") (: ":") (: ":")) (identifier "def_section_contents") (ERROR "<64" (< "<") (number_literal "64")) (, ",") (ERROR "false>\n          (Versions *this,Stringpool_template *param_1,uchar **param_2,uint *param_3,uint *param_4)\n\n{\n  undefined" (function_declarator "false>\n          (Versions *this,Stringpool_template *param_1,uchar **param_2,uint *param_3,uint *param_4)" (identifier "false") (ERROR ">" (> ">")) (parameter_list "(Versions *this,Stringpool_template *param_1,uchar **param_2,uint *param_3,uint *param_4)" (( "(") (parameter_declaration "Versions *this" (type_identifier "Versions") (pointer_declarator "*this" (* "*") (identifier "this"))) (, ",") (parameter_declaration "Stringpool_template *param_1" (type_identifier "Stringpool_template") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "uchar **param_2" (type_identifier "uchar") (pointer_declarator "**param_2" (* "*") (pointer_declarator "*param_2" (* "*") (identifier "param_2")))) (, ",") (parameter_declaration "uint *param_3" (type_identifier "uint") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "uint *param_4" (type_identifier "uint") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) () ")"))) ({ "{") (identifier "undefined")) (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "int *piVar3;" (primitive_type "int") (pointer_declarator "*piVar3" (* "*") (identifier "piVar3")) (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "undefined4 *puVar6;" (type_identifier "undefined4") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "byte *pbVar8;" (type_identifier "byte") (pointer_declarator "*pbVar8" (* "*") (identifier "pbVar8")) (; ";")) (declaration "undefined4 uVar9;" (type_identifier "undefined4") (identifier "uVar9") (; ";")) (declaration "int *piVar10;" (primitive_type "int") (pointer_declarator "*piVar10" (* "*") (identifier "piVar10")) (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "undefined4 *puVar12;" (type_identifier "undefined4") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "uint uVar15;" (type_identifier "uint") (identifier "uVar15") (; ";")) (declaration "int *piVar16;" (primitive_type "int") (pointer_declarator "*piVar16" (* "*") (identifier "piVar16")) (; ";")) (declaration "int *piVar17;" (primitive_type "int") (pointer_declarator "*piVar17" (* "*") (identifier "piVar17")) (; ";")) (declaration "int *piVar18;" (primitive_type "int") (pointer_declarator "*piVar18" (* "*") (identifier "piVar18")) (; ";")) (declaration "int *piVar19;" (primitive_type "int") (pointer_declarator "*piVar19" (* "*") (identifier "piVar19")) (; ";")) (if_statement "if (this[0x34] == (Versions)0x0) {\n    uVar9 = 0x701;\n    goto LAB_0026444c;\n  }" (if "if") (parenthesized_expression "(this[0x34] == (Versions)0x0)" (( "(") (binary_expression "this[0x34] == (Versions)0x0" (subscript_expression "this[0x34]" (identifier "this") ([ "[") (number_literal "0x34") (] "]")) (== "==") (cast_expression "(Versions)0x0" (( "(") (type_descriptor "Versions" (type_identifier "Versions")) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    uVar9 = 0x701;\n    goto LAB_0026444c;\n  }" ({ "{") (expression_statement "uVar9 = 0x701;" (assignment_expression "uVar9 = 0x701" (identifier "uVar9") (= "=") (number_literal "0x701")) (; ";")) (goto_statement "goto LAB_0026444c;" (goto "goto") (statement_identifier "LAB_0026444c") (; ";")) (} "}"))) (expression_statement "piVar3 = *(int **)this;" (assignment_expression "piVar3 = *(int **)this" (identifier "piVar3") (= "=") (pointer_expression "*(int **)this" (* "*") (cast_expression "(int **)this" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "this")))) (; ";")) (if_statement "if (*(int **)(this + 4) == piVar3) {\n    uVar9 = 0x702;\n    goto LAB_0026444c;\n  }" (if "if") (parenthesized_expression "(*(int **)(this + 4) == piVar3)" (( "(") (binary_expression "*(int **)(this + 4) == piVar3" (pointer_expression "*(int **)(this + 4)" (* "*") (cast_expression "(int **)(this + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (== "==") (identifier "piVar3")) () ")")) (compound_statement "{\n    uVar9 = 0x702;\n    goto LAB_0026444c;\n  }" ({ "{") (expression_statement "uVar9 = 0x702;" (assignment_expression "uVar9 = 0x702" (identifier "uVar9") (= "=") (number_literal "0x702")) (; ";")) (goto_statement "goto LAB_0026444c;" (goto "goto") (statement_identifier "LAB_0026444c") (; ";")) (} "}"))) (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" (identifier "uVar15") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n    iVar4 = *piVar3;\n    piVar3 = piVar3 + 1;\n    uVar15 = uVar15 + (*(int *)(iVar4 + 0x10) - *(int *)(iVar4 + 0xc) >> 3) * 0x55555558 + 0x1c;\n  } while (*(int **)(this + 4) != piVar3);" (do "do") (compound_statement "{\n    iVar4 = *piVar3;\n    piVar3 = piVar3 + 1;\n    uVar15 = uVar15 + (*(int *)(iVar4 + 0x10) - *(int *)(iVar4 + 0xc) >> 3) * 0x55555558 + 0x1c;\n  }" ({ "{") (expression_statement "iVar4 = *piVar3;" (assignment_expression "iVar4 = *piVar3" (identifier "iVar4") (= "=") (pointer_expression "*piVar3" (* "*") (identifier "piVar3"))) (; ";")) (expression_statement "piVar3 = piVar3 + 1;" (assignment_expression "piVar3 = piVar3 + 1" (identifier "piVar3") (= "=") (binary_expression "piVar3 + 1" (identifier "piVar3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar15 = uVar15 + (*(int *)(iVar4 + 0x10) - *(int *)(iVar4 + 0xc) >> 3) * 0x55555558 + 0x1c;" (assignment_expression "uVar15 = uVar15 + (*(int *)(iVar4 + 0x10) - *(int *)(iVar4 + 0xc) >> 3) * 0x55555558 + 0x1c" (identifier "uVar15") (= "=") (binary_expression "uVar15 + (*(int *)(iVar4 + 0x10) - *(int *)(iVar4 + 0xc) >> 3) * 0x55555558 + 0x1c" (binary_expression "uVar15 + (*(int *)(iVar4 + 0x10) - *(int *)(iVar4 + 0xc) >> 3) * 0x55555558" (identifier "uVar15") (+ "+") (binary_expression "(*(int *)(iVar4 + 0x10) - *(int *)(iVar4 + 0xc) >> 3) * 0x55555558" (parenthesized_expression "(*(int *)(iVar4 + 0x10) - *(int *)(iVar4 + 0xc) >> 3)" (( "(") (binary_expression "*(int *)(iVar4 + 0x10) - *(int *)(iVar4 + 0xc) >> 3" (binary_expression "*(int *)(iVar4 + 0x10) - *(int *)(iVar4 + 0xc)" (pointer_expression "*(int *)(iVar4 + 0x10)" (* "*") (cast_expression "(int *)(iVar4 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x10)" (( "(") (binary_expression "iVar4 + 0x10" (identifier "iVar4") (+ "+") (number_literal "0x10")) () ")")))) (- "-") (pointer_expression "*(int *)(iVar4 + 0xc)" (* "*") (cast_expression "(int *)(iVar4 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xc)" (( "(") (binary_expression "iVar4 + 0xc" (identifier "iVar4") (+ "+") (number_literal "0xc")) () ")"))))) (>> ">>") (number_literal "3")) () ")")) (* "*") (number_literal "0x55555558"))) (+ "+") (number_literal "0x1c"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(int **)(this + 4) != piVar3)" (( "(") (binary_expression "*(int **)(this + 4) != piVar3" (pointer_expression "*(int **)(this + 4)" (* "*") (cast_expression "(int **)(this + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (!= "!=") (identifier "piVar3")) () ")")) (; ";")) (expression_statement "piVar3 = (int *)(*(code *)PTR_operator_new___004322dc)(uVar15);" (assignment_expression "piVar3 = (int *)(*(code *)PTR_operator_new___004322dc)(uVar15)" (identifier "piVar3") (= "=") (cast_expression "(int *)(*(code *)PTR_operator_new___004322dc)(uVar15)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_operator_new___004322dc)(uVar15)" (parenthesized_expression "(*(code *)PTR_operator_new___004322dc)" (( "(") (pointer_expression "*(code *)PTR_operator_new___004322dc" (* "*") (cast_expression "(code *)PTR_operator_new___004322dc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_new___004322dc"))) () ")")) (argument_list "(uVar15)" (( "(") (identifier "uVar15") () ")"))))) (; ";")) (expression_statement "piVar18 = *(int **)this;" (assignment_expression "piVar18 = *(int **)this" (identifier "piVar18") (= "=") (pointer_expression "*(int **)this" (* "*") (cast_expression "(int **)this" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "this")))) (; ";")) (expression_statement "piVar10 = *(int **)(this + 4);" (assignment_expression "piVar10 = *(int **)(this + 4)" (identifier "piVar10") (= "=") (pointer_expression "*(int **)(this + 4)" (* "*") (cast_expression "(int **)(this + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (piVar18 != piVar10) {\n    uVar14 = 0;\n    piVar16 = piVar3;\n    piVar19 = piVar18;\n    do {\n      iVar4 = *piVar19;\n      uVar14 = uVar14 + 1;\n      *(undefined2 *)piVar16 = 0x100;\n      uVar2 = (uint)*(byte *)(iVar4 + 0x18);\n      if (*(char *)(iVar4 + 0x19) != '\0') {\n        uVar2 = uVar2 | 2;\n      }\n      if (*(char *)(iVar4 + 0x1a) != '\0') {\n        uVar2 = uVar2 | 4;\n      }\n      uVar7 = *(uint *)(iVar4 + 4);\n      *(short *)((int)piVar16 + 2) = (short)(uVar2 << 8);\n      if (uVar7 == 0xffffffff) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_DAT_0043226c + 0x1a58);\n        return;\n      }\n      iVar13 = *(int *)(iVar4 + 0xc);\n      iVar5 = *(int *)(iVar4 + 0x10);\n      uVar2 = 0;\n      pbVar8 = *(byte **)(iVar4 + 8);\n      *(ushort *)(piVar16 + 1) = (ushort)((uVar7 & 0xff) << 8) | (ushort)(uVar7 >> 8) & 0xff;\n      uVar7 = (iVar5 - iVar13 >> 3) * -0x55555555 + 1;\n      *(ushort *)((int)piVar16 + 6) = (ushort)((uVar7 & 0xff) << 8) | (ushort)(uVar7 >> 8) & 0xff;\n      while (uVar11 = (uint)*pbVar8, uVar11 != 0) {\n        while( true ) {\n          pbVar8 = pbVar8 + 1;\n          uVar2 = uVar11 + uVar2 * 0x10;\n          if ((uVar2 & 0xf0000000) == 0) break;\n          uVar2 = (uVar2 & 0xf0000000) >> 0x18 ^ uVar2 & 0xfffffff;\n          uVar11 = (uint)*pbVar8;\n          if (uVar11 == 0) goto LAB_002642bc;\n        }\n      }\nLAB_002642bc:\n      piVar16[3] = 0x14000000;\n      piVar16[2] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n      puVar1 = PTR_get_offset_004323e0;\n      if (uVar14 < (uint)((int)piVar10 - (int)piVar18 >> 2)) {\n        uVar2 = uVar7 * 8 + 0x14;\n        iVar5 = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n      }\n      else {\n        iVar5 = 0;\n      }\n      piVar16[4] = iVar5;\n      uVar2 = (*(code *)puVar1)(param_1);\n      piVar17 = piVar16 + 7;\n      puVar12 = *(undefined4 **)(iVar4 + 0xc);\n      puVar6 = *(undefined4 **)(iVar4 + 0x10);\n      piVar16[5] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n      if (puVar12 == puVar6) {\n        piVar10 = *(int **)(this + 4);\n        piVar16[6] = 0;\n        if (piVar10 == piVar19 + 1) goto LAB_002643bc;\n      }\n      else {\n        uVar2 = 0;\n        piVar16[6] = 0x8000000;\n        piVar18 = piVar17;\n        do {\n          uVar9 = *puVar12;\n          piVar17 = piVar18 + 2;\n          puVar6 = puVar12 + 1;\n          uVar2 = uVar2 + 1;\n          puVar12 = puVar12 + 6;\n          uVar7 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar9,*puVar6);\n          puVar6 = *(undefined4 **)(iVar4 + 0x10);\n          iVar13 = *(int *)(iVar4 + 0xc);\n          *piVar18 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;\n          iVar5 = 0x8000000;\n          if ((uint)(((int)puVar6 - iVar13 >> 3) * -0x55555555) <= uVar2) {\n            iVar5 = 0;\n          }\n          piVar18[1] = iVar5;\n          piVar18 = piVar17;\n        } while (puVar6 != puVar12);\n        piVar10 = *(int **)(this + 4);\n        if (piVar10 == piVar19 + 1) goto LAB_002643bc;\n      }\n      piVar19 = piVar19 + 1;\n      piVar18 = *(int **)this;\n      piVar16 = piVar17;\n    } while( true );\n  }" (if "if") (parenthesized_expression "(piVar18 != piVar10)" (( "(") (binary_expression "piVar18 != piVar10" (identifier "piVar18") (!= "!=") (identifier "piVar10")) () ")")) (compound_statement "{\n    uVar14 = 0;\n    piVar16 = piVar3;\n    piVar19 = piVar18;\n    do {\n      iVar4 = *piVar19;\n      uVar14 = uVar14 + 1;\n      *(undefined2 *)piVar16 = 0x100;\n      uVar2 = (uint)*(byte *)(iVar4 + 0x18);\n      if (*(char *)(iVar4 + 0x19) != '\0') {\n        uVar2 = uVar2 | 2;\n      }\n      if (*(char *)(iVar4 + 0x1a) != '\0') {\n        uVar2 = uVar2 | 4;\n      }\n      uVar7 = *(uint *)(iVar4 + 4);\n      *(short *)((int)piVar16 + 2) = (short)(uVar2 << 8);\n      if (uVar7 == 0xffffffff) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_DAT_0043226c + 0x1a58);\n        return;\n      }\n      iVar13 = *(int *)(iVar4 + 0xc);\n      iVar5 = *(int *)(iVar4 + 0x10);\n      uVar2 = 0;\n      pbVar8 = *(byte **)(iVar4 + 8);\n      *(ushort *)(piVar16 + 1) = (ushort)((uVar7 & 0xff) << 8) | (ushort)(uVar7 >> 8) & 0xff;\n      uVar7 = (iVar5 - iVar13 >> 3) * -0x55555555 + 1;\n      *(ushort *)((int)piVar16 + 6) = (ushort)((uVar7 & 0xff) << 8) | (ushort)(uVar7 >> 8) & 0xff;\n      while (uVar11 = (uint)*pbVar8, uVar11 != 0) {\n        while( true ) {\n          pbVar8 = pbVar8 + 1;\n          uVar2 = uVar11 + uVar2 * 0x10;\n          if ((uVar2 & 0xf0000000) == 0) break;\n          uVar2 = (uVar2 & 0xf0000000) >> 0x18 ^ uVar2 & 0xfffffff;\n          uVar11 = (uint)*pbVar8;\n          if (uVar11 == 0) goto LAB_002642bc;\n        }\n      }\nLAB_002642bc:\n      piVar16[3] = 0x14000000;\n      piVar16[2] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n      puVar1 = PTR_get_offset_004323e0;\n      if (uVar14 < (uint)((int)piVar10 - (int)piVar18 >> 2)) {\n        uVar2 = uVar7 * 8 + 0x14;\n        iVar5 = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n      }\n      else {\n        iVar5 = 0;\n      }\n      piVar16[4] = iVar5;\n      uVar2 = (*(code *)puVar1)(param_1);\n      piVar17 = piVar16 + 7;\n      puVar12 = *(undefined4 **)(iVar4 + 0xc);\n      puVar6 = *(undefined4 **)(iVar4 + 0x10);\n      piVar16[5] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n      if (puVar12 == puVar6) {\n        piVar10 = *(int **)(this + 4);\n        piVar16[6] = 0;\n        if (piVar10 == piVar19 + 1) goto LAB_002643bc;\n      }\n      else {\n        uVar2 = 0;\n        piVar16[6] = 0x8000000;\n        piVar18 = piVar17;\n        do {\n          uVar9 = *puVar12;\n          piVar17 = piVar18 + 2;\n          puVar6 = puVar12 + 1;\n          uVar2 = uVar2 + 1;\n          puVar12 = puVar12 + 6;\n          uVar7 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar9,*puVar6);\n          puVar6 = *(undefined4 **)(iVar4 + 0x10);\n          iVar13 = *(int *)(iVar4 + 0xc);\n          *piVar18 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;\n          iVar5 = 0x8000000;\n          if ((uint)(((int)puVar6 - iVar13 >> 3) * -0x55555555) <= uVar2) {\n            iVar5 = 0;\n          }\n          piVar18[1] = iVar5;\n          piVar18 = piVar17;\n        } while (puVar6 != puVar12);\n        piVar10 = *(int **)(this + 4);\n        if (piVar10 == piVar19 + 1) goto LAB_002643bc;\n      }\n      piVar19 = piVar19 + 1;\n      piVar18 = *(int **)this;\n      piVar16 = piVar17;\n    } while( true );\n  }" ({ "{") (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" (identifier "uVar14") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar16 = piVar3;" (assignment_expression "piVar16 = piVar3" (identifier "piVar16") (= "=") (identifier "piVar3")) (; ";")) (expression_statement "piVar19 = piVar18;" (assignment_expression "piVar19 = piVar18" (identifier "piVar19") (= "=") (identifier "piVar18")) (; ";")) (do_statement "do {\n      iVar4 = *piVar19;\n      uVar14 = uVar14 + 1;\n      *(undefined2 *)piVar16 = 0x100;\n      uVar2 = (uint)*(byte *)(iVar4 + 0x18);\n      if (*(char *)(iVar4 + 0x19) != '\0') {\n        uVar2 = uVar2 | 2;\n      }\n      if (*(char *)(iVar4 + 0x1a) != '\0') {\n        uVar2 = uVar2 | 4;\n      }\n      uVar7 = *(uint *)(iVar4 + 4);\n      *(short *)((int)piVar16 + 2) = (short)(uVar2 << 8);\n      if (uVar7 == 0xffffffff) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_DAT_0043226c + 0x1a58);\n        return;\n      }\n      iVar13 = *(int *)(iVar4 + 0xc);\n      iVar5 = *(int *)(iVar4 + 0x10);\n      uVar2 = 0;\n      pbVar8 = *(byte **)(iVar4 + 8);\n      *(ushort *)(piVar16 + 1) = (ushort)((uVar7 & 0xff) << 8) | (ushort)(uVar7 >> 8) & 0xff;\n      uVar7 = (iVar5 - iVar13 >> 3) * -0x55555555 + 1;\n      *(ushort *)((int)piVar16 + 6) = (ushort)((uVar7 & 0xff) << 8) | (ushort)(uVar7 >> 8) & 0xff;\n      while (uVar11 = (uint)*pbVar8, uVar11 != 0) {\n        while( true ) {\n          pbVar8 = pbVar8 + 1;\n          uVar2 = uVar11 + uVar2 * 0x10;\n          if ((uVar2 & 0xf0000000) == 0) break;\n          uVar2 = (uVar2 & 0xf0000000) >> 0x18 ^ uVar2 & 0xfffffff;\n          uVar11 = (uint)*pbVar8;\n          if (uVar11 == 0) goto LAB_002642bc;\n        }\n      }\nLAB_002642bc:\n      piVar16[3] = 0x14000000;\n      piVar16[2] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n      puVar1 = PTR_get_offset_004323e0;\n      if (uVar14 < (uint)((int)piVar10 - (int)piVar18 >> 2)) {\n        uVar2 = uVar7 * 8 + 0x14;\n        iVar5 = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n      }\n      else {\n        iVar5 = 0;\n      }\n      piVar16[4] = iVar5;\n      uVar2 = (*(code *)puVar1)(param_1);\n      piVar17 = piVar16 + 7;\n      puVar12 = *(undefined4 **)(iVar4 + 0xc);\n      puVar6 = *(undefined4 **)(iVar4 + 0x10);\n      piVar16[5] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n      if (puVar12 == puVar6) {\n        piVar10 = *(int **)(this + 4);\n        piVar16[6] = 0;\n        if (piVar10 == piVar19 + 1) goto LAB_002643bc;\n      }\n      else {\n        uVar2 = 0;\n        piVar16[6] = 0x8000000;\n        piVar18 = piVar17;\n        do {\n          uVar9 = *puVar12;\n          piVar17 = piVar18 + 2;\n          puVar6 = puVar12 + 1;\n          uVar2 = uVar2 + 1;\n          puVar12 = puVar12 + 6;\n          uVar7 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar9,*puVar6);\n          puVar6 = *(undefined4 **)(iVar4 + 0x10);\n          iVar13 = *(int *)(iVar4 + 0xc);\n          *piVar18 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;\n          iVar5 = 0x8000000;\n          if ((uint)(((int)puVar6 - iVar13 >> 3) * -0x55555555) <= uVar2) {\n            iVar5 = 0;\n          }\n          piVar18[1] = iVar5;\n          piVar18 = piVar17;\n        } while (puVar6 != puVar12);\n        piVar10 = *(int **)(this + 4);\n        if (piVar10 == piVar19 + 1) goto LAB_002643bc;\n      }\n      piVar19 = piVar19 + 1;\n      piVar18 = *(int **)this;\n      piVar16 = piVar17;\n    } while( true );" (do "do") (compound_statement "{\n      iVar4 = *piVar19;\n      uVar14 = uVar14 + 1;\n      *(undefined2 *)piVar16 = 0x100;\n      uVar2 = (uint)*(byte *)(iVar4 + 0x18);\n      if (*(char *)(iVar4 + 0x19) != '\0') {\n        uVar2 = uVar2 | 2;\n      }\n      if (*(char *)(iVar4 + 0x1a) != '\0') {\n        uVar2 = uVar2 | 4;\n      }\n      uVar7 = *(uint *)(iVar4 + 4);\n      *(short *)((int)piVar16 + 2) = (short)(uVar2 << 8);\n      if (uVar7 == 0xffffffff) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_DAT_0043226c + 0x1a58);\n        return;\n      }\n      iVar13 = *(int *)(iVar4 + 0xc);\n      iVar5 = *(int *)(iVar4 + 0x10);\n      uVar2 = 0;\n      pbVar8 = *(byte **)(iVar4 + 8);\n      *(ushort *)(piVar16 + 1) = (ushort)((uVar7 & 0xff) << 8) | (ushort)(uVar7 >> 8) & 0xff;\n      uVar7 = (iVar5 - iVar13 >> 3) * -0x55555555 + 1;\n      *(ushort *)((int)piVar16 + 6) = (ushort)((uVar7 & 0xff) << 8) | (ushort)(uVar7 >> 8) & 0xff;\n      while (uVar11 = (uint)*pbVar8, uVar11 != 0) {\n        while( true ) {\n          pbVar8 = pbVar8 + 1;\n          uVar2 = uVar11 + uVar2 * 0x10;\n          if ((uVar2 & 0xf0000000) == 0) break;\n          uVar2 = (uVar2 & 0xf0000000) >> 0x18 ^ uVar2 & 0xfffffff;\n          uVar11 = (uint)*pbVar8;\n          if (uVar11 == 0) goto LAB_002642bc;\n        }\n      }\nLAB_002642bc:\n      piVar16[3] = 0x14000000;\n      piVar16[2] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n      puVar1 = PTR_get_offset_004323e0;\n      if (uVar14 < (uint)((int)piVar10 - (int)piVar18 >> 2)) {\n        uVar2 = uVar7 * 8 + 0x14;\n        iVar5 = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n      }\n      else {\n        iVar5 = 0;\n      }\n      piVar16[4] = iVar5;\n      uVar2 = (*(code *)puVar1)(param_1);\n      piVar17 = piVar16 + 7;\n      puVar12 = *(undefined4 **)(iVar4 + 0xc);\n      puVar6 = *(undefined4 **)(iVar4 + 0x10);\n      piVar16[5] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n      if (puVar12 == puVar6) {\n        piVar10 = *(int **)(this + 4);\n        piVar16[6] = 0;\n        if (piVar10 == piVar19 + 1) goto LAB_002643bc;\n      }\n      else {\n        uVar2 = 0;\n        piVar16[6] = 0x8000000;\n        piVar18 = piVar17;\n        do {\n          uVar9 = *puVar12;\n          piVar17 = piVar18 + 2;\n          puVar6 = puVar12 + 1;\n          uVar2 = uVar2 + 1;\n          puVar12 = puVar12 + 6;\n          uVar7 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar9,*puVar6);\n          puVar6 = *(undefined4 **)(iVar4 + 0x10);\n          iVar13 = *(int *)(iVar4 + 0xc);\n          *piVar18 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;\n          iVar5 = 0x8000000;\n          if ((uint)(((int)puVar6 - iVar13 >> 3) * -0x55555555) <= uVar2) {\n            iVar5 = 0;\n          }\n          piVar18[1] = iVar5;\n          piVar18 = piVar17;\n        } while (puVar6 != puVar12);\n        piVar10 = *(int **)(this + 4);\n        if (piVar10 == piVar19 + 1) goto LAB_002643bc;\n      }\n      piVar19 = piVar19 + 1;\n      piVar18 = *(int **)this;\n      piVar16 = piVar17;\n    }" ({ "{") (expression_statement "iVar4 = *piVar19;" (assignment_expression "iVar4 = *piVar19" (identifier "iVar4") (= "=") (pointer_expression "*piVar19" (* "*") (identifier "piVar19"))) (; ";")) (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" (identifier "uVar14") (= "=") (binary_expression "uVar14 + 1" (identifier "uVar14") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(undefined2 *)piVar16 = 0x100;" (assignment_expression "*(undefined2 *)piVar16 = 0x100" (pointer_expression "*(undefined2 *)piVar16" (* "*") (cast_expression "(undefined2 *)piVar16" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "piVar16"))) (= "=") (number_literal "0x100")) (; ";")) (expression_statement "uVar2 = (uint)*(byte *)(iVar4 + 0x18);" (assignment_expression "uVar2 = (uint)*(byte *)(iVar4 + 0x18)" (identifier "uVar2") (= "=") (binary_expression "(uint)*(byte *)(iVar4 + 0x18)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(iVar4 + 0x18)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x18)" (( "(") (binary_expression "iVar4 + 0x18" (identifier "iVar4") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (*(char *)(iVar4 + 0x19) != '\0') {\n        uVar2 = uVar2 | 2;\n      }" (if "if") (parenthesized_expression "(*(char *)(iVar4 + 0x19) != '\0')" (( "(") (binary_expression "*(char *)(iVar4 + 0x19) != '\0'" (pointer_expression "*(char *)(iVar4 + 0x19)" (* "*") (cast_expression "(char *)(iVar4 + 0x19)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x19)" (( "(") (binary_expression "iVar4 + 0x19" (identifier "iVar4") (+ "+") (number_literal "0x19")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        uVar2 = uVar2 | 2;\n      }" ({ "{") (expression_statement "uVar2 = uVar2 | 2;" (assignment_expression "uVar2 = uVar2 | 2" (identifier "uVar2") (= "=") (binary_expression "uVar2 | 2" (identifier "uVar2") (| "|") (number_literal "2"))) (; ";")) (} "}"))) (if_statement "if (*(char *)(iVar4 + 0x1a) != '\0') {\n        uVar2 = uVar2 | 4;\n      }" (if "if") (parenthesized_expression "(*(char *)(iVar4 + 0x1a) != '\0')" (( "(") (binary_expression "*(char *)(iVar4 + 0x1a) != '\0'" (pointer_expression "*(char *)(iVar4 + 0x1a)" (* "*") (cast_expression "(char *)(iVar4 + 0x1a)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x1a)" (( "(") (binary_expression "iVar4 + 0x1a" (identifier "iVar4") (+ "+") (number_literal "0x1a")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        uVar2 = uVar2 | 4;\n      }" ({ "{") (expression_statement "uVar2 = uVar2 | 4;" (assignment_expression "uVar2 = uVar2 | 4" (identifier "uVar2") (= "=") (binary_expression "uVar2 | 4" (identifier "uVar2") (| "|") (number_literal "4"))) (; ";")) (} "}"))) (expression_statement "uVar7 = *(uint *)(iVar4 + 4);" (assignment_expression "uVar7 = *(uint *)(iVar4 + 4)" (identifier "uVar7") (= "=") (pointer_expression "*(uint *)(iVar4 + 4)" (* "*") (cast_expression "(uint *)(iVar4 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 4)" (( "(") (binary_expression "iVar4 + 4" (identifier "iVar4") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "*(short *)((int)piVar16 + 2) = (short)(uVar2 << 8);" (assignment_expression "*(short *)((int)piVar16 + 2) = (short)(uVar2 << 8)" (pointer_expression "*(short *)((int)piVar16 + 2)" (* "*") (cast_expression "(short *)((int)piVar16 + 2)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + 2)" (( "(") (binary_expression "(int)piVar16 + 2" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "2")) () ")")))) (= "=") (cast_expression "(short)(uVar2 << 8)" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (parenthesized_expression "(uVar2 << 8)" (( "(") (binary_expression "uVar2 << 8" (identifier "uVar2") (<< "<<") (number_literal "8")) () ")")))) (; ";")) (if_statement "if (uVar7 == 0xffffffff) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_DAT_0043226c + 0x1a58);\n        return;\n      }" (if "if") (parenthesized_expression "(uVar7 == 0xffffffff)" (( "(") (binary_expression "uVar7 == 0xffffffff" (identifier "uVar7") (== "==") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_DAT_0043226c + 0x1a58);\n        return;\n      }" ({ "{") (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_DAT_0043226c + 0x1a58);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_DAT_0043226c + 0x1a58)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004323c4"))) () ")")) (argument_list "(PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_DAT_0043226c + 0x1a58)" (( "(") (binary_expression "PTR_s_alize_xindex_004323b4 + -0x4f94" (identifier "PTR_s_alize_xindex_004323b4") (+ "+") (number_literal "-0x4f94")) (, ",") (number_literal "0x179") (, ",") (binary_expression "PTR_DAT_0043226c + 0x1a58" (identifier "PTR_DAT_0043226c") (+ "+") (number_literal "0x1a58")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar13 = *(int *)(iVar4 + 0xc);" (assignment_expression "iVar13 = *(int *)(iVar4 + 0xc)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(iVar4 + 0xc)" (* "*") (cast_expression "(int *)(iVar4 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xc)" (( "(") (binary_expression "iVar4 + 0xc" (identifier "iVar4") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "iVar5 = *(int *)(iVar4 + 0x10);" (assignment_expression "iVar5 = *(int *)(iVar4 + 0x10)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(iVar4 + 0x10)" (* "*") (cast_expression "(int *)(iVar4 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x10)" (( "(") (binary_expression "iVar4 + 0x10" (identifier "iVar4") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" (identifier "uVar2") (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar8 = *(byte **)(iVar4 + 8);" (assignment_expression "pbVar8 = *(byte **)(iVar4 + 8)" (identifier "pbVar8") (= "=") (pointer_expression "*(byte **)(iVar4 + 8)" (* "*") (cast_expression "(byte **)(iVar4 + 8)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 8)" (( "(") (binary_expression "iVar4 + 8" (identifier "iVar4") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "*(ushort *)(piVar16 + 1) = (ushort)((uVar7 & 0xff) << 8) | (ushort)(uVar7 >> 8) & 0xff;" (assignment_expression "*(ushort *)(piVar16 + 1) = (ushort)((uVar7 & 0xff) << 8) | (ushort)(uVar7 >> 8) & 0xff" (pointer_expression "*(ushort *)(piVar16 + 1)" (* "*") (cast_expression "(ushort *)(piVar16 + 1)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar16 + 1)" (( "(") (binary_expression "piVar16 + 1" (identifier "piVar16") (+ "+") (number_literal "1")) () ")")))) (= "=") (binary_expression "(ushort)((uVar7 & 0xff) << 8) | (ushort)(uVar7 >> 8) & 0xff" (call_expression "(ushort)((uVar7 & 0xff) << 8)" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (argument_list "((uVar7 & 0xff) << 8)" (( "(") (binary_expression "(uVar7 & 0xff) << 8" (parenthesized_expression "(uVar7 & 0xff)" (( "(") (binary_expression "uVar7 & 0xff" (identifier "uVar7") (& "&") (number_literal "0xff")) () ")")) (<< "<<") (number_literal "8")) () ")"))) (| "|") (binary_expression "(ushort)(uVar7 >> 8) & 0xff" (call_expression "(ushort)(uVar7 >> 8)" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (argument_list "(uVar7 >> 8)" (( "(") (binary_expression "uVar7 >> 8" (identifier "uVar7") (>> ">>") (number_literal "8")) () ")"))) (& "&") (number_literal "0xff")))) (; ";")) (expression_statement "uVar7 = (iVar5 - iVar13 >> 3) * -0x55555555 + 1;" (assignment_expression "uVar7 = (iVar5 - iVar13 >> 3) * -0x55555555 + 1" (identifier "uVar7") (= "=") (binary_expression "(iVar5 - iVar13 >> 3) * -0x55555555 + 1" (binary_expression "(iVar5 - iVar13 >> 3) * -0x55555555" (parenthesized_expression "(iVar5 - iVar13 >> 3)" (( "(") (binary_expression "iVar5 - iVar13 >> 3" (binary_expression "iVar5 - iVar13" (identifier "iVar5") (- "-") (identifier "iVar13")) (>> ">>") (number_literal "3")) () ")")) (* "*") (number_literal "-0x55555555")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(ushort *)((int)piVar16 + 6) = (ushort)((uVar7 & 0xff) << 8) | (ushort)(uVar7 >> 8) & 0xff;" (assignment_expression "*(ushort *)((int)piVar16 + 6) = (ushort)((uVar7 & 0xff) << 8) | (ushort)(uVar7 >> 8) & 0xff" (pointer_expression "*(ushort *)((int)piVar16 + 6)" (* "*") (cast_expression "(ushort *)((int)piVar16 + 6)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + 6)" (( "(") (binary_expression "(int)piVar16 + 6" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "6")) () ")")))) (= "=") (binary_expression "(ushort)((uVar7 & 0xff) << 8) | (ushort)(uVar7 >> 8) & 0xff" (call_expression "(ushort)((uVar7 & 0xff) << 8)" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (argument_list "((uVar7 & 0xff) << 8)" (( "(") (binary_expression "(uVar7 & 0xff) << 8" (parenthesized_expression "(uVar7 & 0xff)" (( "(") (binary_expression "uVar7 & 0xff" (identifier "uVar7") (& "&") (number_literal "0xff")) () ")")) (<< "<<") (number_literal "8")) () ")"))) (| "|") (binary_expression "(ushort)(uVar7 >> 8) & 0xff" (call_expression "(ushort)(uVar7 >> 8)" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (argument_list "(uVar7 >> 8)" (( "(") (binary_expression "uVar7 >> 8" (identifier "uVar7") (>> ">>") (number_literal "8")) () ")"))) (& "&") (number_literal "0xff")))) (; ";")) (while_statement "while (uVar11 = (uint)*pbVar8, uVar11 != 0) {\n        while( true ) {\n          pbVar8 = pbVar8 + 1;\n          uVar2 = uVar11 + uVar2 * 0x10;\n          if ((uVar2 & 0xf0000000) == 0) break;\n          uVar2 = (uVar2 & 0xf0000000) >> 0x18 ^ uVar2 & 0xfffffff;\n          uVar11 = (uint)*pbVar8;\n          if (uVar11 == 0) goto LAB_002642bc;\n        }\n      }" (while "while") (parenthesized_expression "(uVar11 = (uint)*pbVar8, uVar11 != 0)" (( "(") (comma_expression "uVar11 = (uint)*pbVar8, uVar11 != 0" (assignment_expression "uVar11 = (uint)*pbVar8" (identifier "uVar11") (= "=") (binary_expression "(uint)*pbVar8" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar8"))) (, ",") (binary_expression "uVar11 != 0" (identifier "uVar11") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n        while( true ) {\n          pbVar8 = pbVar8 + 1;\n          uVar2 = uVar11 + uVar2 * 0x10;\n          if ((uVar2 & 0xf0000000) == 0) break;\n          uVar2 = (uVar2 & 0xf0000000) >> 0x18 ^ uVar2 & 0xfffffff;\n          uVar11 = (uint)*pbVar8;\n          if (uVar11 == 0) goto LAB_002642bc;\n        }\n      }" ({ "{") (while_statement "while( true ) {\n          pbVar8 = pbVar8 + 1;\n          uVar2 = uVar11 + uVar2 * 0x10;\n          if ((uVar2 & 0xf0000000) == 0) break;\n          uVar2 = (uVar2 & 0xf0000000) >> 0x18 ^ uVar2 & 0xfffffff;\n          uVar11 = (uint)*pbVar8;\n          if (uVar11 == 0) goto LAB_002642bc;\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          pbVar8 = pbVar8 + 1;\n          uVar2 = uVar11 + uVar2 * 0x10;\n          if ((uVar2 & 0xf0000000) == 0) break;\n          uVar2 = (uVar2 & 0xf0000000) >> 0x18 ^ uVar2 & 0xfffffff;\n          uVar11 = (uint)*pbVar8;\n          if (uVar11 == 0) goto LAB_002642bc;\n        }" ({ "{") (expression_statement "pbVar8 = pbVar8 + 1;" (assignment_expression "pbVar8 = pbVar8 + 1" (identifier "pbVar8") (= "=") (binary_expression "pbVar8 + 1" (identifier "pbVar8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar2 = uVar11 + uVar2 * 0x10;" (assignment_expression "uVar2 = uVar11 + uVar2 * 0x10" (identifier "uVar2") (= "=") (binary_expression "uVar11 + uVar2 * 0x10" (identifier "uVar11") (+ "+") (binary_expression "uVar2 * 0x10" (identifier "uVar2") (* "*") (number_literal "0x10")))) (; ";")) (if_statement "if ((uVar2 & 0xf0000000) == 0) break;" (if "if") (parenthesized_expression "((uVar2 & 0xf0000000) == 0)" (( "(") (binary_expression "(uVar2 & 0xf0000000) == 0" (parenthesized_expression "(uVar2 & 0xf0000000)" (( "(") (binary_expression "uVar2 & 0xf0000000" (identifier "uVar2") (& "&") (number_literal "0xf0000000")) () ")")) (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar2 = (uVar2 & 0xf0000000) >> 0x18 ^ uVar2 & 0xfffffff;" (assignment_expression "uVar2 = (uVar2 & 0xf0000000) >> 0x18 ^ uVar2 & 0xfffffff" (identifier "uVar2") (= "=") (binary_expression "(uVar2 & 0xf0000000) >> 0x18 ^ uVar2 & 0xfffffff" (binary_expression "(uVar2 & 0xf0000000) >> 0x18" (parenthesized_expression "(uVar2 & 0xf0000000)" (( "(") (binary_expression "uVar2 & 0xf0000000" (identifier "uVar2") (& "&") (number_literal "0xf0000000")) () ")")) (>> ">>") (number_literal "0x18")) (^ "^") (binary_expression "uVar2 & 0xfffffff" (identifier "uVar2") (& "&") (number_literal "0xfffffff")))) (; ";")) (expression_statement "uVar11 = (uint)*pbVar8;" (assignment_expression "uVar11 = (uint)*pbVar8" (identifier "uVar11") (= "=") (binary_expression "(uint)*pbVar8" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar8"))) (; ";")) (if_statement "if (uVar11 == 0) goto LAB_002642bc;" (if "if") (parenthesized_expression "(uVar11 == 0)" (( "(") (binary_expression "uVar11 == 0" (identifier "uVar11") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_002642bc;" (goto "goto") (statement_identifier "LAB_002642bc") (; ";"))) (} "}"))) (} "}"))) (labeled_statement "LAB_002642bc:\n      piVar16[3] = 0x14000000;" (statement_identifier "LAB_002642bc") (: ":") (expression_statement "piVar16[3] = 0x14000000;" (assignment_expression "piVar16[3] = 0x14000000" (subscript_expression "piVar16[3]" (identifier "piVar16") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0x14000000")) (; ";"))) (expression_statement "piVar16[2] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;" (assignment_expression "piVar16[2] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000" (subscript_expression "piVar16[2]" (identifier "piVar16") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "(((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10)" (( "(") (binary_expression "((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10)" (( "(") (binary_expression "(uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10" (binary_expression "(uVar2 >> 0x10) << 0x18" (parenthesized_expression "(uVar2 >> 0x10)" (( "(") (binary_expression "uVar2 >> 0x10" (identifier "uVar2") (>> ">>") (number_literal "0x10")) () ")")) (<< "<<") (number_literal "0x18")) (| "|") (binary_expression "(uVar2 >> 0x18) << 0x10" (parenthesized_expression "(uVar2 >> 0x18)" (( "(") (binary_expression "uVar2 >> 0x18" (identifier "uVar2") (>> ">>") (number_literal "0x18")) () ")")) (<< "<<") (number_literal "0x10"))) () ")")) (>> ">>") (number_literal "0x10")) () ")")) (+ "+") (binary_expression "((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff)" (( "(") (binary_expression "(uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff" (binary_expression "(uVar2 & 0xff) << 8" (parenthesized_expression "(uVar2 & 0xff)" (( "(") (binary_expression "uVar2 & 0xff" (identifier "uVar2") (& "&") (number_literal "0xff")) () ")")) (<< "<<") (number_literal "8")) (| "|") (binary_expression "uVar2 >> 8 & 0xff" (binary_expression "uVar2 >> 8" (identifier "uVar2") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff"))) () ")")) (* "*") (number_literal "0x10000")))) (; ";")) (expression_statement "puVar1 = PTR_get_offset_004323e0;" (assignment_expression "puVar1 = PTR_get_offset_004323e0" (identifier "puVar1") (= "=") (identifier "PTR_get_offset_004323e0")) (; ";")) (if_statement "if (uVar14 < (uint)((int)piVar10 - (int)piVar18 >> 2)) {\n        uVar2 = uVar7 * 8 + 0x14;\n        iVar5 = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n      }\n      else {\n        iVar5 = 0;\n      }" (if "if") (parenthesized_expression "(uVar14 < (uint)((int)piVar10 - (int)piVar18 >> 2))" (( "(") (binary_expression "uVar14 < (uint)((int)piVar10 - (int)piVar18 >> 2)" (identifier "uVar14") (< "<") (call_expression "(uint)((int)piVar10 - (int)piVar18 >> 2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)piVar10 - (int)piVar18 >> 2)" (( "(") (binary_expression "(int)piVar10 - (int)piVar18 >> 2" (binary_expression "(int)piVar10 - (int)piVar18" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (- "-") (cast_expression "(int)piVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar18"))) (>> ">>") (number_literal "2")) () ")")))) () ")")) (compound_statement "{\n        uVar2 = uVar7 * 8 + 0x14;\n        iVar5 = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n      }" ({ "{") (expression_statement "uVar2 = uVar7 * 8 + 0x14;" (assignment_expression "uVar2 = uVar7 * 8 + 0x14" (identifier "uVar2") (= "=") (binary_expression "uVar7 * 8 + 0x14" (binary_expression "uVar7 * 8" (identifier "uVar7") (* "*") (number_literal "8")) (+ "+") (number_literal "0x14"))) (; ";")) (expression_statement "iVar5 = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;" (assignment_expression "iVar5 = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000" (identifier "iVar5") (= "=") (binary_expression "(((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10)" (( "(") (binary_expression "((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10)" (( "(") (binary_expression "(uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10" (binary_expression "(uVar2 >> 0x10) << 0x18" (parenthesized_expression "(uVar2 >> 0x10)" (( "(") (binary_expression "uVar2 >> 0x10" (identifier "uVar2") (>> ">>") (number_literal "0x10")) () ")")) (<< "<<") (number_literal "0x18")) (| "|") (binary_expression "(uVar2 >> 0x18) << 0x10" (parenthesized_expression "(uVar2 >> 0x18)" (( "(") (binary_expression "uVar2 >> 0x18" (identifier "uVar2") (>> ">>") (number_literal "0x18")) () ")")) (<< "<<") (number_literal "0x10"))) () ")")) (>> ">>") (number_literal "0x10")) () ")")) (+ "+") (binary_expression "((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff)" (( "(") (binary_expression "(uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff" (binary_expression "(uVar2 & 0xff) << 8" (parenthesized_expression "(uVar2 & 0xff)" (( "(") (binary_expression "uVar2 & 0xff" (identifier "uVar2") (& "&") (number_literal "0xff")) () ")")) (<< "<<") (number_literal "8")) (| "|") (binary_expression "uVar2 >> 8 & 0xff" (binary_expression "uVar2 >> 8" (identifier "uVar2") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff"))) () ")")) (* "*") (number_literal "0x10000")))) (; ";")) (} "}")) (else_clause "else {\n        iVar5 = 0;\n      }" (else "else") (compound_statement "{\n        iVar5 = 0;\n      }" ({ "{") (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "piVar16[4] = iVar5;" (assignment_expression "piVar16[4] = iVar5" (subscript_expression "piVar16[4]" (identifier "piVar16") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "uVar2 = (*(code *)puVar1)(param_1);" (assignment_expression "uVar2 = (*(code *)puVar1)(param_1)" (identifier "uVar2") (= "=") (call_expression "(*(code *)puVar1)(param_1)" (parenthesized_expression "(*(code *)puVar1)" (( "(") (pointer_expression "*(code *)puVar1" (* "*") (cast_expression "(code *)puVar1" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1"))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "piVar17 = piVar16 + 7;" (assignment_expression "piVar17 = piVar16 + 7" (identifier "piVar17") (= "=") (binary_expression "piVar16 + 7" (identifier "piVar16") (+ "+") (number_literal "7"))) (; ";")) (expression_statement "puVar12 = *(undefined4 **)(iVar4 + 0xc);" (assignment_expression "puVar12 = *(undefined4 **)(iVar4 + 0xc)" (identifier "puVar12") (= "=") (pointer_expression "*(undefined4 **)(iVar4 + 0xc)" (* "*") (cast_expression "(undefined4 **)(iVar4 + 0xc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 0xc)" (( "(") (binary_expression "iVar4 + 0xc" (identifier "iVar4") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "puVar6 = *(undefined4 **)(iVar4 + 0x10);" (assignment_expression "puVar6 = *(undefined4 **)(iVar4 + 0x10)" (identifier "puVar6") (= "=") (pointer_expression "*(undefined4 **)(iVar4 + 0x10)" (* "*") (cast_expression "(undefined4 **)(iVar4 + 0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 0x10)" (( "(") (binary_expression "iVar4 + 0x10" (identifier "iVar4") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "piVar16[5] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;" (assignment_expression "piVar16[5] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000" (subscript_expression "piVar16[5]" (identifier "piVar16") ([ "[") (number_literal "5") (] "]")) (= "=") (binary_expression "(((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                   ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10)" (( "(") (binary_expression "((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10)" (( "(") (binary_expression "(uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10" (binary_expression "(uVar2 >> 0x10) << 0x18" (parenthesized_expression "(uVar2 >> 0x10)" (( "(") (binary_expression "uVar2 >> 0x10" (identifier "uVar2") (>> ">>") (number_literal "0x10")) () ")")) (<< "<<") (number_literal "0x18")) (| "|") (binary_expression "(uVar2 >> 0x18) << 0x10" (parenthesized_expression "(uVar2 >> 0x18)" (( "(") (binary_expression "uVar2 >> 0x18" (identifier "uVar2") (>> ">>") (number_literal "0x18")) () ")")) (<< "<<") (number_literal "0x10"))) () ")")) (>> ">>") (number_literal "0x10")) () ")")) (+ "+") (binary_expression "((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff)" (( "(") (binary_expression "(uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff" (binary_expression "(uVar2 & 0xff) << 8" (parenthesized_expression "(uVar2 & 0xff)" (( "(") (binary_expression "uVar2 & 0xff" (identifier "uVar2") (& "&") (number_literal "0xff")) () ")")) (<< "<<") (number_literal "8")) (| "|") (binary_expression "uVar2 >> 8 & 0xff" (binary_expression "uVar2 >> 8" (identifier "uVar2") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff"))) () ")")) (* "*") (number_literal "0x10000")))) (; ";")) (if_statement "if (puVar12 == puVar6) {\n        piVar10 = *(int **)(this + 4);\n        piVar16[6] = 0;\n        if (piVar10 == piVar19 + 1) goto LAB_002643bc;\n      }\n      else {\n        uVar2 = 0;\n        piVar16[6] = 0x8000000;\n        piVar18 = piVar17;\n        do {\n          uVar9 = *puVar12;\n          piVar17 = piVar18 + 2;\n          puVar6 = puVar12 + 1;\n          uVar2 = uVar2 + 1;\n          puVar12 = puVar12 + 6;\n          uVar7 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar9,*puVar6);\n          puVar6 = *(undefined4 **)(iVar4 + 0x10);\n          iVar13 = *(int *)(iVar4 + 0xc);\n          *piVar18 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;\n          iVar5 = 0x8000000;\n          if ((uint)(((int)puVar6 - iVar13 >> 3) * -0x55555555) <= uVar2) {\n            iVar5 = 0;\n          }\n          piVar18[1] = iVar5;\n          piVar18 = piVar17;\n        } while (puVar6 != puVar12);\n        piVar10 = *(int **)(this + 4);\n        if (piVar10 == piVar19 + 1) goto LAB_002643bc;\n      }" (if "if") (parenthesized_expression "(puVar12 == puVar6)" (( "(") (binary_expression "puVar12 == puVar6" (identifier "puVar12") (== "==") (identifier "puVar6")) () ")")) (compound_statement "{\n        piVar10 = *(int **)(this + 4);\n        piVar16[6] = 0;\n        if (piVar10 == piVar19 + 1) goto LAB_002643bc;\n      }" ({ "{") (expression_statement "piVar10 = *(int **)(this + 4);" (assignment_expression "piVar10 = *(int **)(this + 4)" (identifier "piVar10") (= "=") (pointer_expression "*(int **)(this + 4)" (* "*") (cast_expression "(int **)(this + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "piVar16[6] = 0;" (assignment_expression "piVar16[6] = 0" (subscript_expression "piVar16[6]" (identifier "piVar16") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (piVar10 == piVar19 + 1) goto LAB_002643bc;" (if "if") (parenthesized_expression "(piVar10 == piVar19 + 1)" (( "(") (binary_expression "piVar10 == piVar19 + 1" (identifier "piVar10") (== "==") (binary_expression "piVar19 + 1" (identifier "piVar19") (+ "+") (number_literal "1"))) () ")")) (goto_statement "goto LAB_002643bc;" (goto "goto") (statement_identifier "LAB_002643bc") (; ";"))) (} "}")) (else_clause "else {\n        uVar2 = 0;\n        piVar16[6] = 0x8000000;\n        piVar18 = piVar17;\n        do {\n          uVar9 = *puVar12;\n          piVar17 = piVar18 + 2;\n          puVar6 = puVar12 + 1;\n          uVar2 = uVar2 + 1;\n          puVar12 = puVar12 + 6;\n          uVar7 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar9,*puVar6);\n          puVar6 = *(undefined4 **)(iVar4 + 0x10);\n          iVar13 = *(int *)(iVar4 + 0xc);\n          *piVar18 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;\n          iVar5 = 0x8000000;\n          if ((uint)(((int)puVar6 - iVar13 >> 3) * -0x55555555) <= uVar2) {\n            iVar5 = 0;\n          }\n          piVar18[1] = iVar5;\n          piVar18 = piVar17;\n        } while (puVar6 != puVar12);\n        piVar10 = *(int **)(this + 4);\n        if (piVar10 == piVar19 + 1) goto LAB_002643bc;\n      }" (else "else") (compound_statement "{\n        uVar2 = 0;\n        piVar16[6] = 0x8000000;\n        piVar18 = piVar17;\n        do {\n          uVar9 = *puVar12;\n          piVar17 = piVar18 + 2;\n          puVar6 = puVar12 + 1;\n          uVar2 = uVar2 + 1;\n          puVar12 = puVar12 + 6;\n          uVar7 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar9,*puVar6);\n          puVar6 = *(undefined4 **)(iVar4 + 0x10);\n          iVar13 = *(int *)(iVar4 + 0xc);\n          *piVar18 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;\n          iVar5 = 0x8000000;\n          if ((uint)(((int)puVar6 - iVar13 >> 3) * -0x55555555) <= uVar2) {\n            iVar5 = 0;\n          }\n          piVar18[1] = iVar5;\n          piVar18 = piVar17;\n        } while (puVar6 != puVar12);\n        piVar10 = *(int **)(this + 4);\n        if (piVar10 == piVar19 + 1) goto LAB_002643bc;\n      }" ({ "{") (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" (identifier "uVar2") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar16[6] = 0x8000000;" (assignment_expression "piVar16[6] = 0x8000000" (subscript_expression "piVar16[6]" (identifier "piVar16") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0x8000000")) (; ";")) (expression_statement "piVar18 = piVar17;" (assignment_expression "piVar18 = piVar17" (identifier "piVar18") (= "=") (identifier "piVar17")) (; ";")) (do_statement "do {\n          uVar9 = *puVar12;\n          piVar17 = piVar18 + 2;\n          puVar6 = puVar12 + 1;\n          uVar2 = uVar2 + 1;\n          puVar12 = puVar12 + 6;\n          uVar7 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar9,*puVar6);\n          puVar6 = *(undefined4 **)(iVar4 + 0x10);\n          iVar13 = *(int *)(iVar4 + 0xc);\n          *piVar18 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;\n          iVar5 = 0x8000000;\n          if ((uint)(((int)puVar6 - iVar13 >> 3) * -0x55555555) <= uVar2) {\n            iVar5 = 0;\n          }\n          piVar18[1] = iVar5;\n          piVar18 = piVar17;\n        } while (puVar6 != puVar12);" (do "do") (compound_statement "{\n          uVar9 = *puVar12;\n          piVar17 = piVar18 + 2;\n          puVar6 = puVar12 + 1;\n          uVar2 = uVar2 + 1;\n          puVar12 = puVar12 + 6;\n          uVar7 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar9,*puVar6);\n          puVar6 = *(undefined4 **)(iVar4 + 0x10);\n          iVar13 = *(int *)(iVar4 + 0xc);\n          *piVar18 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;\n          iVar5 = 0x8000000;\n          if ((uint)(((int)puVar6 - iVar13 >> 3) * -0x55555555) <= uVar2) {\n            iVar5 = 0;\n          }\n          piVar18[1] = iVar5;\n          piVar18 = piVar17;\n        }" ({ "{") (expression_statement "uVar9 = *puVar12;" (assignment_expression "uVar9 = *puVar12" (identifier "uVar9") (= "=") (pointer_expression "*puVar12" (* "*") (identifier "puVar12"))) (; ";")) (expression_statement "piVar17 = piVar18 + 2;" (assignment_expression "piVar17 = piVar18 + 2" (identifier "piVar17") (= "=") (binary_expression "piVar18 + 2" (identifier "piVar18") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "puVar6 = puVar12 + 1;" (assignment_expression "puVar6 = puVar12 + 1" (identifier "puVar6") (= "=") (binary_expression "puVar12 + 1" (identifier "puVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar2 = uVar2 + 1;" (assignment_expression "uVar2 = uVar2 + 1" (identifier "uVar2") (= "=") (binary_expression "uVar2 + 1" (identifier "uVar2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar12 = puVar12 + 6;" (assignment_expression "puVar12 = puVar12 + 6" (identifier "puVar12") (= "=") (binary_expression "puVar12 + 6" (identifier "puVar12") (+ "+") (number_literal "6"))) (; ";")) (expression_statement "uVar7 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar9,*puVar6);" (assignment_expression "uVar7 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar9,*puVar6)" (identifier "uVar7") (= "=") (call_expression "(*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar9,*puVar6)" (parenthesized_expression "(*(code *)PTR_get_offset_with_length_004351bc)" (( "(") (pointer_expression "*(code *)PTR_get_offset_with_length_004351bc" (* "*") (cast_expression "(code *)PTR_get_offset_with_length_004351bc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_get_offset_with_length_004351bc"))) () ")")) (argument_list "(param_1,uVar9,*puVar6)" (( "(") (identifier "param_1") (, ",") (identifier "uVar9") (, ",") (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) () ")")))) (; ";")) (expression_statement "puVar6 = *(undefined4 **)(iVar4 + 0x10);" (assignment_expression "puVar6 = *(undefined4 **)(iVar4 + 0x10)" (identifier "puVar6") (= "=") (pointer_expression "*(undefined4 **)(iVar4 + 0x10)" (* "*") (cast_expression "(undefined4 **)(iVar4 + 0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 0x10)" (( "(") (binary_expression "iVar4 + 0x10" (identifier "iVar4") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "iVar13 = *(int *)(iVar4 + 0xc);" (assignment_expression "iVar13 = *(int *)(iVar4 + 0xc)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(iVar4 + 0xc)" (* "*") (cast_expression "(int *)(iVar4 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xc)" (( "(") (binary_expression "iVar4 + 0xc" (identifier "iVar4") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "*piVar18 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;" (assignment_expression "*piVar18 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000" (pointer_expression "*piVar18" (* "*") (identifier "piVar18")) (= "=") (binary_expression "(((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10)" (( "(") (binary_expression "((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10)" (( "(") (binary_expression "(uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10" (binary_expression "(uVar7 >> 0x10) << 0x18" (parenthesized_expression "(uVar7 >> 0x10)" (( "(") (binary_expression "uVar7 >> 0x10" (identifier "uVar7") (>> ">>") (number_literal "0x10")) () ")")) (<< "<<") (number_literal "0x18")) (| "|") (binary_expression "(uVar7 >> 0x18) << 0x10" (parenthesized_expression "(uVar7 >> 0x18)" (( "(") (binary_expression "uVar7 >> 0x18" (identifier "uVar7") (>> ">>") (number_literal "0x18")) () ")")) (<< "<<") (number_literal "0x10"))) () ")")) (>> ">>") (number_literal "0x10")) () ")")) (+ "+") (binary_expression "((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff)" (( "(") (binary_expression "(uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff" (binary_expression "(uVar7 & 0xff) << 8" (parenthesized_expression "(uVar7 & 0xff)" (( "(") (binary_expression "uVar7 & 0xff" (identifier "uVar7") (& "&") (number_literal "0xff")) () ")")) (<< "<<") (number_literal "8")) (| "|") (binary_expression "uVar7 >> 8 & 0xff" (binary_expression "uVar7 >> 8" (identifier "uVar7") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff"))) () ")")) (* "*") (number_literal "0x10000")))) (; ";")) (expression_statement "iVar5 = 0x8000000;" (assignment_expression "iVar5 = 0x8000000" (identifier "iVar5") (= "=") (number_literal "0x8000000")) (; ";")) (if_statement "if ((uint)(((int)puVar6 - iVar13 >> 3) * -0x55555555) <= uVar2) {\n            iVar5 = 0;\n          }" (if "if") (parenthesized_expression "((uint)(((int)puVar6 - iVar13 >> 3) * -0x55555555) <= uVar2)" (( "(") (binary_expression "(uint)(((int)puVar6 - iVar13 >> 3) * -0x55555555) <= uVar2" (call_expression "(uint)(((int)puVar6 - iVar13 >> 3) * -0x55555555)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(((int)puVar6 - iVar13 >> 3) * -0x55555555)" (( "(") (binary_expression "((int)puVar6 - iVar13 >> 3) * -0x55555555" (parenthesized_expression "((int)puVar6 - iVar13 >> 3)" (( "(") (binary_expression "(int)puVar6 - iVar13 >> 3" (binary_expression "(int)puVar6 - iVar13" (cast_expression "(int)puVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar6")) (- "-") (identifier "iVar13")) (>> ">>") (number_literal "3")) () ")")) (* "*") (number_literal "-0x55555555")) () ")"))) (<= "<=") (identifier "uVar2")) () ")")) (compound_statement "{\n            iVar5 = 0;\n          }" ({ "{") (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "piVar18[1] = iVar5;" (assignment_expression "piVar18[1] = iVar5" (subscript_expression "piVar18[1]" (identifier "piVar18") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "piVar18 = piVar17;" (assignment_expression "piVar18 = piVar17" (identifier "piVar18") (= "=") (identifier "piVar17")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar6 != puVar12)" (( "(") (binary_expression "puVar6 != puVar12" (identifier "puVar6") (!= "!=") (identifier "puVar12")) () ")")) (; ";")) (expression_statement "piVar10 = *(int **)(this + 4);" (assignment_expression "piVar10 = *(int **)(this + 4)" (identifier "piVar10") (= "=") (pointer_expression "*(int **)(this + 4)" (* "*") (cast_expression "(int **)(this + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (piVar10 == piVar19 + 1) goto LAB_002643bc;" (if "if") (parenthesized_expression "(piVar10 == piVar19 + 1)" (( "(") (binary_expression "piVar10 == piVar19 + 1" (identifier "piVar10") (== "==") (binary_expression "piVar19 + 1" (identifier "piVar19") (+ "+") (number_literal "1"))) () ")")) (goto_statement "goto LAB_002643bc;" (goto "goto") (statement_identifier "LAB_002643bc") (; ";"))) (} "}")))) (expression_statement "piVar19 = piVar19 + 1;" (assignment_expression "piVar19 = piVar19 + 1" (identifier "piVar19") (= "=") (binary_expression "piVar19 + 1" (identifier "piVar19") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar18 = *(int **)this;" (assignment_expression "piVar18 = *(int **)this" (identifier "piVar18") (= "=") (pointer_expression "*(int **)this" (* "*") (cast_expression "(int **)this" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "this")))) (; ";")) (expression_statement "piVar16 = piVar17;" (assignment_expression "piVar16 = piVar17" (identifier "piVar16") (= "=") (identifier "piVar17")) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" (identifier "uVar14") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_002643c4;" (goto "goto") (statement_identifier "LAB_002643c4") (; ";")) (labeled_statement "LAB_002643bc:\n  piVar18 = piVar19 + 1;" (statement_identifier "LAB_002643bc") (: ":") (expression_statement "piVar18 = piVar19 + 1;" (assignment_expression "piVar18 = piVar19 + 1" (identifier "piVar18") (= "=") (binary_expression "piVar19 + 1" (identifier "piVar19") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "uVar14 = (int)piVar17 - (int)piVar3;" (assignment_expression "uVar14 = (int)piVar17 - (int)piVar3" (identifier "uVar14") (= "=") (binary_expression "(int)piVar17 - (int)piVar3" (cast_expression "(int)piVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar17")) (- "-") (cast_expression "(int)piVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar3")))) (; ";")) (labeled_statement "LAB_002643c4:\n  uVar9 = 0x71c;" (statement_identifier "LAB_002643c4") (: ":") (expression_statement "uVar9 = 0x71c;" (assignment_expression "uVar9 = 0x71c" (identifier "uVar9") (= "=") (number_literal "0x71c")) (; ";"))) (if_statement "if (uVar15 == uVar14) {\n    iVar4 = *(int *)this;\n    *param_2 = (uchar *)piVar3;\n    *param_3 = uVar15;\n    *param_4 = (int)piVar18 - iVar4 >> 2;\n    return;\n  }" (if "if") (parenthesized_expression "(uVar15 == uVar14)" (( "(") (binary_expression "uVar15 == uVar14" (identifier "uVar15") (== "==") (identifier "uVar14")) () ")")) (compound_statement "{\n    iVar4 = *(int *)this;\n    *param_2 = (uchar *)piVar3;\n    *param_3 = uVar15;\n    *param_4 = (int)piVar18 - iVar4 >> 2;\n    return;\n  }" ({ "{") (expression_statement "iVar4 = *(int *)this;" (assignment_expression "iVar4 = *(int *)this" (identifier "iVar4") (= "=") (pointer_expression "*(int *)this" (* "*") (cast_expression "(int *)this" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "this")))) (; ";")) (expression_statement "*param_2 = (uchar *)piVar3;" (assignment_expression "*param_2 = (uchar *)piVar3" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(uchar *)piVar3" (( "(") (type_descriptor "uchar *" (type_identifier "uchar") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "piVar3"))) (; ";")) (expression_statement "*param_3 = uVar15;" (assignment_expression "*param_3 = uVar15" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "uVar15")) (; ";")) (expression_statement "*param_4 = (int)piVar18 - iVar4 >> 2;" (assignment_expression "*param_4 = (int)piVar18 - iVar4 >> 2" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (binary_expression "(int)piVar18 - iVar4 >> 2" (binary_expression "(int)piVar18 - iVar4" (cast_expression "(int)piVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar18")) (- "-") (identifier "iVar4")) (>> ">>") (number_literal "2"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (labeled_statement "LAB_0026444c:\n  (*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_DAT_0043226c + 0x13e0,uVar9,PTR_DAT_0043226c + 0x1808);" (statement_identifier "LAB_0026444c") (: ":") (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_DAT_0043226c + 0x13e0,uVar9,PTR_DAT_0043226c + 0x1808);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_DAT_0043226c + 0x13e0,uVar9,PTR_DAT_0043226c + 0x1808)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004323c4"))) () ")")) (argument_list "(PTR_DAT_0043226c + 0x13e0,uVar9,PTR_DAT_0043226c + 0x1808)" (( "(") (binary_expression "PTR_DAT_0043226c + 0x13e0" (identifier "PTR_DAT_0043226c") (+ "+") (number_literal "0x13e0")) (, ",") (identifier "uVar9") (, ",") (binary_expression "PTR_DAT_0043226c + 0x1808" (identifier "PTR_DAT_0043226c") (+ "+") (number_literal "0x1808")) () ")"))) (; ";"))) (return_statement "return;" (return "return") (; ";")) (ERROR "}" (} "}"))

/* DWARF original name: def_section_contents<64, false>
   DWARF original prototype: void def_section_contents<64,_false>(Versions * this, Stringpool *
   dynpool, uchar * * pp, uint * psize, uint * pentries) */

void __thiscall
var_1::Versions::def_section_contents<64,_false>
          (Versions *this,Stringpool *dynpool,type_11 **pp,type_3 *psize,type_3 *pentries)

{
  size_type *psVar1;
  type_1 *p_Var2;
  type_2 *puVar3;
  int *piVar4;
  type_3 var_10;
  int iVar6;
  type_4 var_5;
  type_5 *pVVar8;
  type_4 var_18;
  type_3 var_11;
  type_6 *var_15;
  type_4 var_20;
  type_7 uVar13;
  type_4 var_4;
  type_3 var_16;
  type_4 var_17;
  type_3 var_9;
  type_3 var_6;
  int *var_14;
  int *piVar20;
  type_4 var_19;
  
  if (this->is_finalized_ == false) goto LAB_00264464;
  var_5 = (this->defs_).super__Vector_base<var_1::type_5*,var_2::var_7<var_1::type_5*>var_3>._M_impl.
            _M_start;
  var_4 = (this->defs_).super__Vector_base<var_1::type_5*,var_2::var_7<var_1::type_5*>var_3>._M_impl
             ._M_finish;
  if (var_4 == var_5) {
LAB_00264448:
    uVar13 = 0x702;
    goto LAB_0026444c;
  }
  var_6 = 0;
  do {
    pVVar8 = *var_5;
    var_5 = var_5 + 1;
    var_6 = var_6 + ((int)(pVVar8->deps_).
                            super__Vector_base<std::__cxx11::basic_string<var_8,var_2::char_traits<var_8>,var_2::var_7<var_8>var_3>,var_2::var_7<std::__cxx11::basic_string<var_8,var_2::char_traits<var_8>,var_2::var_7<var_8>var_3>var_3>var_3>
                            ._M_impl._M_finish -
                       (int)(pVVar8->deps_).
                            super__Vector_base<std::__cxx11::basic_string<var_8,var_2::char_traits<var_8>,var_2::var_7<var_8>var_3>,var_2::var_7<std::__cxx11::basic_string<var_8,var_2::char_traits<var_8>,var_2::var_7<var_8>var_3>var_3>var_3>
                            ._M_impl._M_start >> 3) * 0x55555558 + 0x1c;
  } while (var_4 != var_5);
  piVar4 = (int *)(*(type_8 *)PTR_operator_new___004322dc)(var_6);
  var_5 = (this->defs_).super__Vector_base<var_1::type_5*,var_2::var_7<var_1::type_5*>var_3>._M_impl.
            _M_start;
  var_4 = (this->defs_).super__Vector_base<var_1::type_5*,var_2::var_7<var_1::type_5*>var_3>._M_impl
             ._M_finish;
  if (var_5 != var_4) {
    var_9 = 0;
    var_14 = piVar4;
    var_19 = var_5;
    do {
      pVVar8 = *var_19;
      var_9 = var_9 + 1;
      *(type_9 *)var_14 = 0x100;
      var_10 = (type_3)pVVar8->is_base_;
      if (pVVar8->is_weak_ != false) {
        var_10 = var_10 | 2;
      }
      if (pVVar8->is_info_ != false) {
        var_10 = var_10 | 4;
      }
      var_11 = (pVVar8->super_Version_base).index_;
      *(short *)((int)var_14 + 2) = (short)(var_10 << 8);
      if (var_11 == 0xffffffff) {
        (*(type_8 *)PTR_do_gold_unreachable_004323c4)
                  (var_12 + -0x4f94,0x179,var_13 + 0x1a58);
        goto LAB_00264448;
      }
      var_17 = (pVVar8->deps_).
                super__Vector_base<std::__cxx11::basic_string<var_8,var_2::char_traits<var_8>,var_2::var_7<var_8>var_3>,var_2::var_7<std::__cxx11::basic_string<var_8,var_2::char_traits<var_8>,var_2::var_7<var_8>var_3>var_3>var_3>
                ._M_impl._M_start;
      var_18 = (pVVar8->deps_).
               super__Vector_base<std::__cxx11::basic_string<var_8,var_2::char_traits<var_8>,var_2::var_7<var_8>var_3>,var_2::var_7<std::__cxx11::basic_string<var_8,var_2::char_traits<var_8>,var_2::var_7<var_8>var_3>var_3>var_3>
               ._M_impl._M_finish;
      var_10 = 0;
      var_15 = (type_6 *)pVVar8->name_;
      *(type_10 *)(var_14 + 1) = (type_10)((var_11 & 0xff) << 8) | (type_10)(var_11 >> 8) & 0xff;
      var_11 = ((int)var_18 - (int)var_17 >> 3) * -0x55555555 + 1;
      *(type_10 *)((int)var_14 + 6) = (type_10)((var_11 & 0xff) << 8) | (type_10)(var_11 >> 8) & 0xff;
      while (var_16 = (type_3)*var_15, var_16 != 0) {
        while( true ) {
          var_15 = var_15 + 1;
          var_10 = var_16 + var_10 * 0x10;
          if ((var_10 & 0xf0000000) == 0) break;
          var_10 = (var_10 & 0xf0000000) >> 0x18 ^ var_10 & 0xfffffff;
          var_16 = (type_3)*var_15;
          if (var_16 == 0) goto LAB_002642bc;
        }
      }
LAB_002642bc:
      var_14[3] = 0x14000000;
      var_14[2] = (((var_10 >> 0x10) << 0x18 | (var_10 >> 0x18) << 0x10) >> 0x10) +
                   ((var_10 & 0xff) << 8 | var_10 >> 8 & 0xff) * 0x10000;
      puVar3 = PTR_get_offset_004323e0;
      if (var_9 < (type_3)((int)var_4 - (int)var_5 >> 2)) {
        var_10 = var_11 * 8 + 0x14;
        iVar6 = (((var_10 >> 0x10) << 0x18 | (var_10 >> 0x18) << 0x10) >> 0x10) +
                ((var_10 & 0xff) << 8 | var_10 >> 8 & 0xff) * 0x10000;
      }
      else {
        iVar6 = 0;
      }
      var_14[4] = iVar6;
      var_10 = (*(type_8 *)puVar3)(dynpool);
      piVar20 = var_14 + 7;
      var_17 = (pVVar8->deps_).
                super__Vector_base<std::__cxx11::basic_string<var_8,var_2::char_traits<var_8>,var_2::var_7<var_8>var_3>,var_2::var_7<std::__cxx11::basic_string<var_8,var_2::char_traits<var_8>,var_2::var_7<var_8>var_3>var_3>var_3>
                ._M_impl._M_start;
      var_18 = (pVVar8->deps_).
               super__Vector_base<std::__cxx11::basic_string<var_8,var_2::char_traits<var_8>,var_2::var_7<var_8>var_3>,var_2::var_7<std::__cxx11::basic_string<var_8,var_2::char_traits<var_8>,var_2::var_7<var_8>var_3>var_3>var_3>
               ._M_impl._M_finish;
      var_14[5] = (((var_10 >> 0x10) << 0x18 | (var_10 >> 0x18) << 0x10) >> 0x10) +
                   ((var_10 & 0xff) << 8 | var_10 >> 8 & 0xff) * 0x10000;
      if (var_17 == var_18) {
        var_4 = (this->defs_).super__Vector_base<var_1::type_5*,var_2::var_7<var_1::type_5*>var_3>.
                   _M_impl._M_finish;
        var_14[6] = 0;
        if (var_4 == var_19 + 1) goto LAB_002643bc;
      }
      else {
        var_10 = 0;
        var_14[6] = 0x8000000;
        var_14 = piVar20;
        do {
          p_Var2 = &var_17->_M_dataplus;
          piVar20 = var_14 + 2;
          psVar1 = &var_17->_M_string_length;
          var_10 = var_10 + 1;
          var_17 = var_17 + 1;
          var_11 = (*(type_8 *)PTR_get_offset_with_length_004351bc)(dynpool,p_Var2->_M_p,*psVar1);
          var_20 = (pVVar8->deps_).
                    super__Vector_base<std::__cxx11::basic_string<var_8,var_2::char_traits<var_8>,var_2::var_7<var_8>var_3>,var_2::var_7<std::__cxx11::basic_string<var_8,var_2::char_traits<var_8>,var_2::var_7<var_8>var_3>var_3>var_3>
                    ._M_impl._M_finish;
          var_18 = (pVVar8->deps_).
                   super__Vector_base<std::__cxx11::basic_string<var_8,var_2::char_traits<var_8>,var_2::var_7<var_8>var_3>,var_2::var_7<std::__cxx11::basic_string<var_8,var_2::char_traits<var_8>,var_2::var_7<var_8>var_3>var_3>var_3>
                   ._M_impl._M_start;
          *var_14 = (((var_11 >> 0x10) << 0x18 | (var_11 >> 0x18) << 0x10) >> 0x10) +
                     ((var_11 & 0xff) << 8 | var_11 >> 8 & 0xff) * 0x10000;
          iVar6 = 0x8000000;
          if ((type_3)(((int)var_20 - (int)var_18 >> 3) * -0x55555555) <= var_10) {
            iVar6 = 0;
          }
          var_14[1] = iVar6;
          var_14 = piVar20;
        } while (var_20 != var_17);
        var_4 = (this->defs_).super__Vector_base<var_1::type_5*,var_2::var_7<var_1::type_5*>var_3>.
                   _M_impl._M_finish;
        if (var_4 == var_19 + 1) goto LAB_002643bc;
      }
      var_19 = var_19 + 1;
      var_5 = (this->defs_).super__Vector_base<var_1::type_5*,var_2::var_7<var_1::type_5*>var_3>.
                _M_impl._M_start;
      var_14 = piVar20;
    } while( true );
  }
  var_9 = 0;
LAB_002643c4:
  uVar13 = 0x71c;
  if (var_6 == var_9) {
    var_4 = (this->defs_).super__Vector_base<var_1::type_5*,var_2::var_7<var_1::type_5*>var_3>.
               _M_impl._M_start;
    *pp = (type_11 *)piVar4;
    *psize = var_6;
    *pentries = (int)var_5 - (int)var_4 >> 2;
    return;
  }
LAB_0026444c:
  do {
    (*(type_8 *)PTR_do_gold_unreachable_004323c4)
              (var_13 + 0x13e0,uVar13,var_13 + 0x1808);
LAB_00264464:
    uVar13 = 0x701;
  } while( true );
LAB_002643bc:
  var_5 = var_19 + 1;
  var_9 = (int)piVar20 - (int)piVar4;
  goto LAB_002643c4;
}


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

/* void gold::Versions::def_section_contents<64, false>(gold::Stringpool_template<char> const*,
   unsigned char**, unsigned int*, unsigned int*) const */

void __thiscall
gold::Versions::MASKED
          (Versions *this,Stringpool_template *param_1,uchar **param_2,uint *param_3,uint *param_4)

{
  undefined *puVar1;
  uint uVar2;
  int *piVar3;
  int iVar4;
  int iVar5;
  undefined4 *puVar6;
  uint uVar7;
  byte *pbVar8;
  undefined4 uVar9;
  int *piVar10;
  uint uVar11;
  undefined4 *puVar12;
  int iVar13;
  uint uVar14;
  uint uVar15;
  int *piVar16;
  int *piVar17;
  int *piVar18;
  int *piVar19;
  
  if (this[0x34] == (Versions)0x0) {
    uVar9 = 0x701;
    goto LAB_0026444c;
  }
  piVar3 = *(int **)this;
  if (*(int **)(this + 4) == piVar3) {
    uVar9 = 0x702;
    goto LAB_0026444c;
  }
  uVar15 = 0;
  do {
    iVar4 = *piVar3;
    piVar3 = piVar3 + 1;
    uVar15 = uVar15 + (*(int *)(iVar4 + 0x10) - *(int *)(iVar4 + 0xc) >> 3) * 0x55555558 + 0x1c;
  } while (*(int **)(this + 4) != piVar3);
  piVar3 = (int *)(*(code *)PTR_operator_new___004322dc)(uVar15);
  piVar18 = *(int **)this;
  piVar10 = *(int **)(this + 4);
  if (piVar18 != piVar10) {
    uVar14 = 0;
    piVar16 = piVar3;
    piVar19 = piVar18;
    do {
      iVar4 = *piVar19;
      uVar14 = uVar14 + 1;
      *(undefined2 *)piVar16 = 0x100;
      uVar2 = (uint)*(byte *)(iVar4 + 0x18);
      if (*(char *)(iVar4 + 0x19) != '\0') {
        uVar2 = uVar2 | 2;
      }
      if (*(char *)(iVar4 + 0x1a) != '\0') {
        uVar2 = uVar2 | 4;
      }
      uVar7 = *(uint *)(iVar4 + 4);
      *(short *)((int)piVar16 + 2) = (short)(uVar2 << 8);
      if (uVar7 == 0xffffffff) {
        (*(code *)PTR_do_gold_unreachable_004323c4)
                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_DAT_0043226c + 0x1a58);
        return;
      }
      iVar13 = *(int *)(iVar4 + 0xc);
      iVar5 = *(int *)(iVar4 + 0x10);
      uVar2 = 0;
      pbVar8 = *(byte **)(iVar4 + 8);
      *(ushort *)(piVar16 + 1) = (ushort)((uVar7 & 0xff) << 8) | (ushort)(uVar7 >> 8) & 0xff;
      uVar7 = (iVar5 - iVar13 >> 3) * -0x55555555 + 1;
      *(ushort *)((int)piVar16 + 6) = (ushort)((uVar7 & 0xff) << 8) | (ushort)(uVar7 >> 8) & 0xff;
      while (uVar11 = (uint)*pbVar8, uVar11 != 0) {
        while( true ) {
          pbVar8 = pbVar8 + 1;
          uVar2 = uVar11 + uVar2 * 0x10;
          if ((uVar2 & 0xf0000000) == 0) break;
          uVar2 = (uVar2 & 0xf0000000) >> 0x18 ^ uVar2 & 0xfffffff;
          uVar11 = (uint)*pbVar8;
          if (uVar11 == 0) goto LAB_002642bc;
        }
      }
LAB_002642bc:
      piVar16[3] = 0x14000000;
      piVar16[2] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +
                   ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;
      puVar1 = PTR_get_offset_004323e0;
      if (uVar14 < (uint)((int)piVar10 - (int)piVar18 >> 2)) {
        uVar2 = uVar7 * 8 + 0x14;
        iVar5 = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +
                ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;
      }
      else {
        iVar5 = 0;
      }
      piVar16[4] = iVar5;
      uVar2 = (*(code *)puVar1)(param_1);
      piVar17 = piVar16 + 7;
      puVar12 = *(undefined4 **)(iVar4 + 0xc);
      puVar6 = *(undefined4 **)(iVar4 + 0x10);
      piVar16[5] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +
                   ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;
      if (puVar12 == puVar6) {
        piVar10 = *(int **)(this + 4);
        piVar16[6] = 0;
        if (piVar10 == piVar19 + 1) goto LAB_002643bc;
      }
      else {
        uVar2 = 0;
        piVar16[6] = 0x8000000;
        piVar18 = piVar17;
        do {
          uVar9 = *puVar12;
          piVar17 = piVar18 + 2;
          puVar6 = puVar12 + 1;
          uVar2 = uVar2 + 1;
          puVar12 = puVar12 + 6;
          uVar7 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar9,*puVar6);
          puVar6 = *(undefined4 **)(iVar4 + 0x10);
          iVar13 = *(int *)(iVar4 + 0xc);
          *piVar18 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +
                     ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;
          iVar5 = 0x8000000;
          if ((uint)(((int)puVar6 - iVar13 >> 3) * -0x55555555) <= uVar2) {
            iVar5 = 0;
          }
          piVar18[1] = iVar5;
          piVar18 = piVar17;
        } while (puVar6 != puVar12);
        piVar10 = *(int **)(this + 4);
        if (piVar10 == piVar19 + 1) goto LAB_002643bc;
      }
      piVar19 = piVar19 + 1;
      piVar18 = *(int **)this;
      piVar16 = piVar17;
    } while( true );
  }
  uVar14 = 0;
  goto LAB_002643c4;
LAB_002643bc:
  piVar18 = piVar19 + 1;
  uVar14 = (int)piVar17 - (int)piVar3;
LAB_002643c4:
  uVar9 = 0x71c;
  if (uVar15 == uVar14) {
    iVar4 = *(int *)this;
    *param_2 = (uchar *)piVar3;
    *param_3 = uVar15;
    *param_4 = (int)piVar18 - iVar4 >> 2;
    return;
  }
LAB_0026444c:
  (*(code *)PTR_do_gold_unreachable_004323c4)
            (PTR_DAT_0043226c + 0x13e0,uVar9,PTR_DAT_0043226c + 0x1808);
  return;
}

