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

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

{
  size_type *psVar1;
  _Alloc_hider *p_Var2;
  undefined *puVar3;
  uchar *puVar4;
  ushort uVar8;
  pointer pbVar5;
  int iVar6;
  undefined4 uVar7;
  pointer ppVVar9;
  Verdef *pVVar10;
  uint uVar11;
  byte *pbVar12;
  uchar *puVar13;
  pointer pbVar14;
  pointer ppVVar15;
  uint uVar16;
  pointer pbVar17;
  uint uVar18;
  uint uVar19;
  uchar *puVar20;
  pointer ppVVar21;
  
  if (this->is_finalized_ == false) goto LAB_0026477c;
  ppVVar9 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.
            _M_start;
  ppVVar15 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl
             ._M_finish;
  if (ppVVar15 == ppVVar9) {
LAB_00264760:
    uVar7 = 0x702;
    goto LAB_00264764;
  }
  uVar19 = 0;
  do {
    pVVar10 = *ppVVar9;
    ppVVar9 = ppVVar9 + 1;
    uVar19 = uVar19 + ((int)(pVVar10->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)(pVVar10->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 (ppVVar15 != ppVVar9);
  puVar4 = (uchar *)(*(code *)PTR_operator_new___004322dc)(uVar19);
  ppVVar15 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl
             ._M_start;
  ppVVar9 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.
            _M_finish;
  if (ppVVar15 != ppVVar9) {
    uVar18 = 0;
    puVar20 = puVar4;
    ppVVar21 = ppVVar15;
    do {
      pVVar10 = *ppVVar21;
      uVar18 = uVar18 + 1;
      puVar20[0] = '\0';
      puVar20[1] = '\x01';
      uVar8 = (ushort)pVVar10->is_base_;
      if (pVVar10->is_weak_ != false) {
        uVar8 = uVar8 | 2;
      }
      if (pVVar10->is_info_ != false) {
        uVar8 = uVar8 | 4;
      }
      uVar16 = (pVVar10->super_Version_base).index_;
      *(ushort *)(puVar20 + 2) = uVar8;
      if (uVar16 == 0xffffffff) {
        (*(code *)PTR_do_gold_unreachable_004323c4)
                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_s__0043226c + 0x1a58);
        goto LAB_00264760;
      }
      pbVar17 = (pVVar10->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;
      uVar11 = 0;
      pbVar5 = (pVVar10->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;
      pbVar12 = (byte *)pVVar10->name_;
      *(short *)(puVar20 + 4) = (short)uVar16;
      iVar6 = ((int)pbVar5 - (int)pbVar17 >> 3) * -0x55555555 + 1;
      *(short *)(puVar20 + 6) = (short)iVar6;
      while (uVar16 = (uint)*pbVar12, uVar16 != 0) {
        while( true ) {
          pbVar12 = pbVar12 + 1;
          uVar11 = uVar16 + uVar11 * 0x10;
          if ((uVar11 & 0xf0000000) == 0) break;
          uVar11 = (uVar11 & 0xf0000000) >> 0x18 ^ uVar11 & 0xfffffff;
          uVar16 = (uint)*pbVar12;
          if (uVar16 == 0) goto LAB_002645f4;
        }
      }
LAB_002645f4:
      *(uint *)(puVar20 + 8) = uVar11;
      puVar20[0xc] = '\0';
      puVar3 = PTR_get_offset_004323e0;
      puVar20[0xd] = '\0';
      puVar20[0xe] = '\0';
      puVar20[0xf] = '\x14';
      if (uVar18 < (uint)((int)ppVVar9 - (int)ppVVar15 >> 2)) {
        iVar6 = iVar6 * 8 + 0x14;
      }
      else {
        iVar6 = 0;
      }
      *(int *)(puVar20 + 0x10) = iVar6;
      uVar7 = (*(code *)puVar3)(dynpool);
      puVar13 = puVar20 + 0x1c;
      pbVar17 = (pVVar10->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;
      pbVar5 = (pVVar10->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;
      *(undefined4 *)(puVar20 + 0x14) = uVar7;
      if (pbVar17 == pbVar5) {
        ppVVar9 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.
                  _M_impl._M_finish;
        puVar20[0x18] = '\0';
        puVar20[0x19] = '\0';
        puVar20[0x1a] = '\0';
        puVar20[0x1b] = '\0';
        if (ppVVar9 == ppVVar21 + 1) goto LAB_002646d4;
      }
      else {
        uVar16 = 0;
        puVar20[0x18] = '\0';
        puVar20[0x19] = '\0';
        puVar20[0x1a] = '\0';
        puVar20[0x1b] = '\b';
        puVar20 = puVar13;
        do {
          p_Var2 = &pbVar17->_M_dataplus;
          puVar13 = puVar20 + 8;
          psVar1 = &pbVar17->_M_string_length;
          uVar16 = uVar16 + 1;
          pbVar17 = pbVar17 + 1;
          uVar7 = (*(code *)PTR_get_offset_with_length_004351bc)(dynpool,p_Var2->_M_p,*psVar1);
          pbVar14 = (pVVar10->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;
          pbVar5 = (pVVar10->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;
          *(undefined4 *)puVar20 = uVar7;
          uVar7 = 8;
          if ((uint)(((int)pbVar14 - (int)pbVar5 >> 3) * -0x55555555) <= uVar16) {
            uVar7 = 0;
          }
          *(undefined4 *)(puVar20 + 4) = uVar7;
          puVar20 = puVar13;
        } while (pbVar14 != pbVar17);
        ppVVar9 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.
                  _M_impl._M_finish;
        if (ppVVar9 == ppVVar21 + 1) goto LAB_002646d4;
      }
      ppVVar21 = ppVVar21 + 1;
      ppVVar15 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.
                 _M_impl._M_start;
      puVar20 = puVar13;
    } while( true );
  }
  uVar18 = 0;
LAB_002646dc:
  uVar7 = 0x71c;
  if (uVar19 == uVar18) {
    ppVVar9 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.
              _M_impl._M_start;
    *pp = puVar4;
    *psize = uVar19;
    *pentries = (int)ppVVar15 - (int)ppVVar9 >> 2;
    return;
  }
LAB_00264764:
  do {
    (*(code *)PTR_do_gold_unreachable_004323c4)
              (PTR_s__0043226c + 0x13e0,uVar7,PTR_s__0043226c + 0x17f0);
LAB_0026477c:
    uVar7 = 0x701;
  } while( true );
LAB_002646d4:
  ppVVar15 = ppVVar21 + 1;
  uVar18 = (int)puVar13 - (int)puVar4;
  goto LAB_002646dc;
}



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

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

{
  undefined *puVar1;
  uchar *puVar2;
  ushort uVar5;
  int iVar3;
  undefined4 uVar4;
  int *piVar6;
  int iVar7;
  uint uVar8;
  undefined4 *puVar9;
  byte *pbVar10;
  uchar *puVar11;
  int iVar12;
  uint uVar13;
  undefined4 *puVar14;
  int iVar15;
  uint uVar16;
  uint uVar17;
  uchar *puVar18;
  int *piVar19;
  int *piVar20;
  
  if (this[0x34] == (Versions)0x0) {
    uVar4 = 0x701;
    goto LAB_00264764;
  }
  piVar6 = *(int **)this;
  if (*(int **)(this + 4) == piVar6) {
    uVar4 = 0x702;
    goto LAB_00264764;
  }
  uVar17 = 0;
  do {
    iVar7 = *piVar6;
    piVar6 = piVar6 + 1;
    uVar17 = uVar17 + (*(int *)(iVar7 + 0x10) - *(int *)(iVar7 + 0xc) >> 3) * 0x55555558 + 0x1c;
  } while (*(int **)(this + 4) != piVar6);
  puVar2 = (uchar *)(*(code *)PTR_operator_new___004322dc)(uVar17);
  piVar19 = *(int **)this;
  piVar6 = *(int **)(this + 4);
  if (piVar19 != piVar6) {
    uVar16 = 0;
    puVar18 = puVar2;
    piVar20 = piVar19;
    do {
      iVar7 = *piVar20;
      uVar16 = uVar16 + 1;
      puVar18[0] = '\0';
      puVar18[1] = '\x01';
      uVar5 = (ushort)*(byte *)(iVar7 + 0x18);
      if (*(char *)(iVar7 + 0x19) != '\0') {
        uVar5 = uVar5 | 2;
      }
      if (*(char *)(iVar7 + 0x1a) != '\0') {
        uVar5 = uVar5 | 4;
      }
      iVar12 = *(int *)(iVar7 + 4);
      *(ushort *)(puVar18 + 2) = uVar5;
      if (iVar12 == -1) {
        (*(code *)PTR_do_gold_unreachable_004323c4)
                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_DAT_0043226c + 0x1a58);
        return;
      }
      iVar15 = *(int *)(iVar7 + 0xc);
      uVar8 = 0;
      iVar3 = *(int *)(iVar7 + 0x10);
      pbVar10 = *(byte **)(iVar7 + 8);
      *(short *)(puVar18 + 4) = (short)iVar12;
      iVar12 = (iVar3 - iVar15 >> 3) * -0x55555555 + 1;
      *(short *)(puVar18 + 6) = (short)iVar12;
      while (uVar13 = (uint)*pbVar10, uVar13 != 0) {
        while( true ) {
          pbVar10 = pbVar10 + 1;
          uVar8 = uVar13 + uVar8 * 0x10;
          if ((uVar8 & 0xf0000000) == 0) break;
          uVar8 = (uVar8 & 0xf0000000) >> 0x18 ^ uVar8 & 0xfffffff;
          uVar13 = (uint)*pbVar10;
          if (uVar13 == 0) goto LAB_002645f4;
        }
      }
LAB_002645f4:
      *(uint *)(puVar18 + 8) = uVar8;
      puVar18[0xc] = '\0';
      puVar1 = PTR_get_offset_004323e0;
      puVar18[0xd] = '\0';
      puVar18[0xe] = '\0';
      puVar18[0xf] = '\x14';
      if (uVar16 < (uint)((int)piVar6 - (int)piVar19 >> 2)) {
        iVar12 = iVar12 * 8 + 0x14;
      }
      else {
        iVar12 = 0;
      }
      *(int *)(puVar18 + 0x10) = iVar12;
      uVar4 = (*(code *)puVar1)(param_1);
      puVar11 = puVar18 + 0x1c;
      puVar14 = *(undefined4 **)(iVar7 + 0xc);
      puVar9 = *(undefined4 **)(iVar7 + 0x10);
      *(undefined4 *)(puVar18 + 0x14) = uVar4;
      if (puVar14 == puVar9) {
        piVar6 = *(int **)(this + 4);
        puVar18[0x18] = '\0';
        puVar18[0x19] = '\0';
        puVar18[0x1a] = '\0';
        puVar18[0x1b] = '\0';
        if (piVar6 == piVar20 + 1) goto LAB_002646d4;
      }
      else {
        uVar8 = 0;
        puVar18[0x18] = '\0';
        puVar18[0x19] = '\0';
        puVar18[0x1a] = '\0';
        puVar18[0x1b] = '\b';
        puVar18 = puVar11;
        do {
          uVar4 = *puVar14;
          puVar11 = puVar18 + 8;
          puVar9 = puVar14 + 1;
          uVar8 = uVar8 + 1;
          puVar14 = puVar14 + 6;
          uVar4 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar4,*puVar9);
          puVar9 = *(undefined4 **)(iVar7 + 0x10);
          iVar12 = *(int *)(iVar7 + 0xc);
          *(undefined4 *)puVar18 = uVar4;
          uVar4 = 8;
          if ((uint)(((int)puVar9 - iVar12 >> 3) * -0x55555555) <= uVar8) {
            uVar4 = 0;
          }
          *(undefined4 *)(puVar18 + 4) = uVar4;
          puVar18 = puVar11;
        } while (puVar9 != puVar14);
        piVar6 = *(int **)(this + 4);
        if (piVar6 == piVar20 + 1) goto LAB_002646d4;
      }
      piVar20 = piVar20 + 1;
      piVar19 = *(int **)this;
      puVar18 = puVar11;
    } while( true );
  }
  uVar16 = 0;
  goto LAB_002646dc;
LAB_002646d4:
  piVar19 = piVar20 + 1;
  uVar16 = (int)puVar11 - (int)puVar2;
LAB_002646dc:
  uVar4 = 0x71c;
  if (uVar17 == uVar16) {
    iVar7 = *(int *)this;
    *param_2 = puVar2;
    *param_3 = uVar17;
    *param_4 = (int)piVar19 - iVar7 >> 2;
    return;
  }
LAB_00264764:
  (*(code *)PTR_do_gold_unreachable_004323c4)
            (PTR_DAT_0043226c + 0x13e0,uVar4,PTR_DAT_0043226c + 0x17f0);
  return;
}


lui gp,0x1d
addiu gp,gp,0x5d64
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,0x0026477c
_sw a3,0x54(sp)
lw v1,0x0(a0)
lw a2,0x4(a0)
beq a2,v1,0x00264760
_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,0x002644d8
_addu s2,s2,v0
lw t9,-0x7ef4(gp)
jalr t9
_or a0,s2,zero
or s7,v0,zero
lw s8,0x0(s1)
lw gp,0x10(sp)
sw v0,0x1c(sp)
lw v0,0x4(s1)
beq s8,v0,0x0026473c
_lui s3,0xaaaa
or s0,zero,zero
ori v1,s3,0xaaab
or a0,s8,zero
sw v1,0x18(sp)
lw s3,0x0(s8)
subu v0,v0,a0
li v1,0x1
sra t1,v0,0x2
addiu s0,s0,0x1
sh v1,0x0(s7)
lbu a0,0x19(s3)
beq a0,zero,0x00264564
_lbu v0,0x18(s3)
ori v0,v0,0x2
lbu a0,0x1a(s3)
beq a0,zero,0x00264574
_nop
ori v0,v0,0x4
lw a2,0x4(s3)
li a0,-0x1
beq a2,a0,0x00264744
_sh v0,0x2(s7)
lw t2,0xc(s3)
or a0,zero,zero
lw v0,0x10(s3)
lw v1,0x18(sp)
lw a1,0x8(s3)
subu v0,v0,t2
sh a2,0x4(s7)
sra v0,v0,0x3
or t2,a1,zero
mul v0,v0,v1
addiu v0,v0,0x1
sh v0,0x6(s7)
addiu t2,t2,0x1
lbu a2,-0x1(t2)
beq a2,zero,0x002645f4
_nop
sll a0,a0,0x4
lui v1,0xf000
addu a0,a2,a0
and a2,a0,v1
beq a2,zero,0x002645b4
_srl a2,a2,0x18
addiu t2,t2,0x1
ext a0,a0,0x0,0x1c
xor a0,a2,a0
lbu a2,-0x1(t2)
bne a2,zero,0x002645c4
_nop
sw a0,0x8(s7)
li a0,0x14
sltu t1,s0,t1
beq t1,zero,0x002646b8
_sw a0,0xc(s7)
sll v0,v0,0x3
addiu v0,v0,0x14
lw t9,-0x7df0(gp)
or a0,s4,zero
jalr t9
_sw v0,0x10(s7)
addiu a1,s7,0x1c
lw t1,0xc(s3)
lw a0,0x10(s3)
lw gp,0x10(sp)
beq t1,a0,0x002646c0
_sw v0,0x14(s7)
li v0,0x8
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)
lw a0,0xc(s3)
lw gp,0x10(sp)
lw v1,0x18(sp)
sw v0,-0x8(s7)
subu v0,a1,a0
sra v0,v0,0x3
mul v0,v0,v1
li v1,0x8
sltu v0,s6,v0
movz v1,zero,v0
bne a1,s5,0x0026464c
_sw v1,-0x4(s7)
lw v0,0x4(s1)
addiu s8,s8,0x4
beq v0,s8,0x002646d4
_nop
b 0x0026453c
_lw a0,0x0(s1)
b 0x00264610
_or v0,zero,zero
lw v0,0x4(s1)
addiu s8,s8,0x4
sw zero,0x18(s7)
bne v0,s8,0x002646b0
_or s7,a1,zero
lw v0,0x1c(sp)
subu v1,s7,v0
bne s2,v1,0x00264764
_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 0x002646dc
_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,0x17f0
jalr t9
_addiu a0,a0,0x13e0
b 0x00264764
_li a1,0x701
(translation_unit "/* void gold::Versions::def_section_contents<64, true>(gold::Stringpool_template<char> const*,\n   unsigned char**, unsigned int*, unsigned int*) const */\n\nvoid __thiscall\ngold::Versions::def_section_contents<64,true>\n          (Versions *this,Stringpool_template *param_1,uchar **param_2,uint *param_3,uint *param_4)\n\n{\n  undefined *puVar1;\n  uchar *puVar2;\n  ushort uVar5;\n  int iVar3;\n  undefined4 uVar4;\n  int *piVar6;\n  int iVar7;\n  uint uVar8;\n  undefined4 *puVar9;\n  byte *pbVar10;\n  uchar *puVar11;\n  int iVar12;\n  uint uVar13;\n  undefined4 *puVar14;\n  int iVar15;\n  uint uVar16;\n  uint uVar17;\n  uchar *puVar18;\n  int *piVar19;\n  int *piVar20;\n  \n  if (this[0x34] == (Versions)0x0) {\n    uVar4 = 0x701;\n    goto LAB_00264764;\n  }\n  piVar6 = *(int **)this;\n  if (*(int **)(this + 4) == piVar6) {\n    uVar4 = 0x702;\n    goto LAB_00264764;\n  }\n  uVar17 = 0;\n  do {\n    iVar7 = *piVar6;\n    piVar6 = piVar6 + 1;\n    uVar17 = uVar17 + (*(int *)(iVar7 + 0x10) - *(int *)(iVar7 + 0xc) >> 3) * 0x55555558 + 0x1c;\n  } while (*(int **)(this + 4) != piVar6);\n  puVar2 = (uchar *)(*(code *)PTR_operator_new___004322dc)(uVar17);\n  piVar19 = *(int **)this;\n  piVar6 = *(int **)(this + 4);\n  if (piVar19 != piVar6) {\n    uVar16 = 0;\n    puVar18 = puVar2;\n    piVar20 = piVar19;\n    do {\n      iVar7 = *piVar20;\n      uVar16 = uVar16 + 1;\n      puVar18[0] = '\0';\n      puVar18[1] = '\x01';\n      uVar5 = (ushort)*(byte *)(iVar7 + 0x18);\n      if (*(char *)(iVar7 + 0x19) != '\0') {\n        uVar5 = uVar5 | 2;\n      }\n      if (*(char *)(iVar7 + 0x1a) != '\0') {\n        uVar5 = uVar5 | 4;\n      }\n      iVar12 = *(int *)(iVar7 + 4);\n      *(ushort *)(puVar18 + 2) = uVar5;\n      if (iVar12 == -1) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_DAT_0043226c + 0x1a58);\n        return;\n      }\n      iVar15 = *(int *)(iVar7 + 0xc);\n      uVar8 = 0;\n      iVar3 = *(int *)(iVar7 + 0x10);\n      pbVar10 = *(byte **)(iVar7 + 8);\n      *(short *)(puVar18 + 4) = (short)iVar12;\n      iVar12 = (iVar3 - iVar15 >> 3) * -0x55555555 + 1;\n      *(short *)(puVar18 + 6) = (short)iVar12;\n      while (uVar13 = (uint)*pbVar10, uVar13 != 0) {\n        while( true ) {\n          pbVar10 = pbVar10 + 1;\n          uVar8 = uVar13 + uVar8 * 0x10;\n          if ((uVar8 & 0xf0000000) == 0) break;\n          uVar8 = (uVar8 & 0xf0000000) >> 0x18 ^ uVar8 & 0xfffffff;\n          uVar13 = (uint)*pbVar10;\n          if (uVar13 == 0) goto LAB_002645f4;\n        }\n      }\nLAB_002645f4:\n      *(uint *)(puVar18 + 8) = uVar8;\n      puVar18[0xc] = '\0';\n      puVar1 = PTR_get_offset_004323e0;\n      puVar18[0xd] = '\0';\n      puVar18[0xe] = '\0';\n      puVar18[0xf] = '\x14';\n      if (uVar16 < (uint)((int)piVar6 - (int)piVar19 >> 2)) {\n        iVar12 = iVar12 * 8 + 0x14;\n      }\n      else {\n        iVar12 = 0;\n      }\n      *(int *)(puVar18 + 0x10) = iVar12;\n      uVar4 = (*(code *)puVar1)(param_1);\n      puVar11 = puVar18 + 0x1c;\n      puVar14 = *(undefined4 **)(iVar7 + 0xc);\n      puVar9 = *(undefined4 **)(iVar7 + 0x10);\n      *(undefined4 *)(puVar18 + 0x14) = uVar4;\n      if (puVar14 == puVar9) {\n        piVar6 = *(int **)(this + 4);\n        puVar18[0x18] = '\0';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\0';\n        if (piVar6 == piVar20 + 1) goto LAB_002646d4;\n      }\n      else {\n        uVar8 = 0;\n        puVar18[0x18] = '\0';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\b';\n        puVar18 = puVar11;\n        do {\n          uVar4 = *puVar14;\n          puVar11 = puVar18 + 8;\n          puVar9 = puVar14 + 1;\n          uVar8 = uVar8 + 1;\n          puVar14 = puVar14 + 6;\n          uVar4 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar4,*puVar9);\n          puVar9 = *(undefined4 **)(iVar7 + 0x10);\n          iVar12 = *(int *)(iVar7 + 0xc);\n          *(undefined4 *)puVar18 = uVar4;\n          uVar4 = 8;\n          if ((uint)(((int)puVar9 - iVar12 >> 3) * -0x55555555) <= uVar8) {\n            uVar4 = 0;\n          }\n          *(undefined4 *)(puVar18 + 4) = uVar4;\n          puVar18 = puVar11;\n        } while (puVar9 != puVar14);\n        piVar6 = *(int **)(this + 4);\n        if (piVar6 == piVar20 + 1) goto LAB_002646d4;\n      }\n      piVar20 = piVar20 + 1;\n      piVar19 = *(int **)this;\n      puVar18 = puVar11;\n    } while( true );\n  }\n  uVar16 = 0;\n  goto LAB_002646dc;\nLAB_002646d4:\n  piVar19 = piVar20 + 1;\n  uVar16 = (int)puVar11 - (int)puVar2;\nLAB_002646dc:\n  uVar4 = 0x71c;\n  if (uVar17 == uVar16) {\n    iVar7 = *(int *)this;\n    *param_2 = puVar2;\n    *param_3 = uVar17;\n    *param_4 = (int)piVar19 - iVar7 >> 2;\n    return;\n  }\nLAB_00264764:\n  (*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_DAT_0043226c + 0x13e0,uVar4,PTR_DAT_0043226c + 0x17f0);\n  return;\n}\n\n" comment (declaration "void __thiscall\ngold::Versions::def_section_contents<64,true>\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 "true>\n          (Versions *this,Stringpool_template *param_1,uchar **param_2,uint *param_3,uint *param_4)\n\n{\n  undefined" (function_declarator "true>\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 "uchar *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "ushort uVar5;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "uchar *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "uchar *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "int *piVar19;" primitive_type (pointer_declarator "*piVar19" * identifier) ;) (declaration "int *piVar20;" primitive_type (pointer_declarator "*piVar20" * identifier) ;) (if_statement "if (this[0x34] == (Versions)0x0) {\n    uVar4 = 0x701;\n    goto LAB_00264764;\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    uVar4 = 0x701;\n    goto LAB_00264764;\n  }" { (expression_statement "uVar4 = 0x701;" (assignment_expression "uVar4 = 0x701" identifier = number_literal) ;) (goto_statement "goto LAB_00264764;" goto statement_identifier ;) })) (expression_statement "piVar6 = *(int **)this;" (assignment_expression "piVar6 = *(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) == piVar6) {\n    uVar4 = 0x702;\n    goto LAB_00264764;\n  }" if (parenthesized_expression "(*(int **)(this + 4) == piVar6)" ( (binary_expression "*(int **)(this + 4) == piVar6" (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    uVar4 = 0x702;\n    goto LAB_00264764;\n  }" { (expression_statement "uVar4 = 0x702;" (assignment_expression "uVar4 = 0x702" identifier = number_literal) ;) (goto_statement "goto LAB_00264764;" goto statement_identifier ;) })) (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (do_statement "do {\n    iVar7 = *piVar6;\n    piVar6 = piVar6 + 1;\n    uVar17 = uVar17 + (*(int *)(iVar7 + 0x10) - *(int *)(iVar7 + 0xc) >> 3) * 0x55555558 + 0x1c;\n  } while (*(int **)(this + 4) != piVar6);" do (compound_statement "{\n    iVar7 = *piVar6;\n    piVar6 = piVar6 + 1;\n    uVar17 = uVar17 + (*(int *)(iVar7 + 0x10) - *(int *)(iVar7 + 0xc) >> 3) * 0x55555558 + 0x1c;\n  }" { (expression_statement "iVar7 = *piVar6;" (assignment_expression "iVar7 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "piVar6 = piVar6 + 1;" (assignment_expression "piVar6 = piVar6 + 1" identifier = (binary_expression "piVar6 + 1" identifier + number_literal)) ;) (expression_statement "uVar17 = uVar17 + (*(int *)(iVar7 + 0x10) - *(int *)(iVar7 + 0xc) >> 3) * 0x55555558 + 0x1c;" (assignment_expression "uVar17 = uVar17 + (*(int *)(iVar7 + 0x10) - *(int *)(iVar7 + 0xc) >> 3) * 0x55555558 + 0x1c" identifier = (binary_expression "uVar17 + (*(int *)(iVar7 + 0x10) - *(int *)(iVar7 + 0xc) >> 3) * 0x55555558 + 0x1c" (binary_expression "uVar17 + (*(int *)(iVar7 + 0x10) - *(int *)(iVar7 + 0xc) >> 3) * 0x55555558" identifier + (binary_expression "(*(int *)(iVar7 + 0x10) - *(int *)(iVar7 + 0xc) >> 3) * 0x55555558" (parenthesized_expression "(*(int *)(iVar7 + 0x10) - *(int *)(iVar7 + 0xc) >> 3)" ( (binary_expression "*(int *)(iVar7 + 0x10) - *(int *)(iVar7 + 0xc) >> 3" (binary_expression "*(int *)(iVar7 + 0x10) - *(int *)(iVar7 + 0xc)" (pointer_expression "*(int *)(iVar7 + 0x10)" * (cast_expression "(int *)(iVar7 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x10)" ( (binary_expression "iVar7 + 0x10" identifier + number_literal) )))) - (pointer_expression "*(int *)(iVar7 + 0xc)" * (cast_expression "(int *)(iVar7 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) ))))) >> number_literal) )) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(*(int **)(this + 4) != piVar6)" ( (binary_expression "*(int **)(this + 4) != piVar6" (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 "puVar2 = (uchar *)(*(code *)PTR_operator_new___004322dc)(uVar17);" (assignment_expression "puVar2 = (uchar *)(*(code *)PTR_operator_new___004322dc)(uVar17)" identifier = (cast_expression "(uchar *)(*(code *)PTR_operator_new___004322dc)(uVar17)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new___004322dc)(uVar17)" (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 "(uVar17)" ( identifier ))))) ;) (expression_statement "piVar19 = *(int **)this;" (assignment_expression "piVar19 = *(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 "piVar6 = *(int **)(this + 4);" (assignment_expression "piVar6 = *(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 (piVar19 != piVar6) {\n    uVar16 = 0;\n    puVar18 = puVar2;\n    piVar20 = piVar19;\n    do {\n      iVar7 = *piVar20;\n      uVar16 = uVar16 + 1;\n      puVar18[0] = '\0';\n      puVar18[1] = '\x01';\n      uVar5 = (ushort)*(byte *)(iVar7 + 0x18);\n      if (*(char *)(iVar7 + 0x19) != '\0') {\n        uVar5 = uVar5 | 2;\n      }\n      if (*(char *)(iVar7 + 0x1a) != '\0') {\n        uVar5 = uVar5 | 4;\n      }\n      iVar12 = *(int *)(iVar7 + 4);\n      *(ushort *)(puVar18 + 2) = uVar5;\n      if (iVar12 == -1) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_DAT_0043226c + 0x1a58);\n        return;\n      }\n      iVar15 = *(int *)(iVar7 + 0xc);\n      uVar8 = 0;\n      iVar3 = *(int *)(iVar7 + 0x10);\n      pbVar10 = *(byte **)(iVar7 + 8);\n      *(short *)(puVar18 + 4) = (short)iVar12;\n      iVar12 = (iVar3 - iVar15 >> 3) * -0x55555555 + 1;\n      *(short *)(puVar18 + 6) = (short)iVar12;\n      while (uVar13 = (uint)*pbVar10, uVar13 != 0) {\n        while( true ) {\n          pbVar10 = pbVar10 + 1;\n          uVar8 = uVar13 + uVar8 * 0x10;\n          if ((uVar8 & 0xf0000000) == 0) break;\n          uVar8 = (uVar8 & 0xf0000000) >> 0x18 ^ uVar8 & 0xfffffff;\n          uVar13 = (uint)*pbVar10;\n          if (uVar13 == 0) goto LAB_002645f4;\n        }\n      }\nLAB_002645f4:\n      *(uint *)(puVar18 + 8) = uVar8;\n      puVar18[0xc] = '\0';\n      puVar1 = PTR_get_offset_004323e0;\n      puVar18[0xd] = '\0';\n      puVar18[0xe] = '\0';\n      puVar18[0xf] = '\x14';\n      if (uVar16 < (uint)((int)piVar6 - (int)piVar19 >> 2)) {\n        iVar12 = iVar12 * 8 + 0x14;\n      }\n      else {\n        iVar12 = 0;\n      }\n      *(int *)(puVar18 + 0x10) = iVar12;\n      uVar4 = (*(code *)puVar1)(param_1);\n      puVar11 = puVar18 + 0x1c;\n      puVar14 = *(undefined4 **)(iVar7 + 0xc);\n      puVar9 = *(undefined4 **)(iVar7 + 0x10);\n      *(undefined4 *)(puVar18 + 0x14) = uVar4;\n      if (puVar14 == puVar9) {\n        piVar6 = *(int **)(this + 4);\n        puVar18[0x18] = '\0';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\0';\n        if (piVar6 == piVar20 + 1) goto LAB_002646d4;\n      }\n      else {\n        uVar8 = 0;\n        puVar18[0x18] = '\0';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\b';\n        puVar18 = puVar11;\n        do {\n          uVar4 = *puVar14;\n          puVar11 = puVar18 + 8;\n          puVar9 = puVar14 + 1;\n          uVar8 = uVar8 + 1;\n          puVar14 = puVar14 + 6;\n          uVar4 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar4,*puVar9);\n          puVar9 = *(undefined4 **)(iVar7 + 0x10);\n          iVar12 = *(int *)(iVar7 + 0xc);\n          *(undefined4 *)puVar18 = uVar4;\n          uVar4 = 8;\n          if ((uint)(((int)puVar9 - iVar12 >> 3) * -0x55555555) <= uVar8) {\n            uVar4 = 0;\n          }\n          *(undefined4 *)(puVar18 + 4) = uVar4;\n          puVar18 = puVar11;\n        } while (puVar9 != puVar14);\n        piVar6 = *(int **)(this + 4);\n        if (piVar6 == piVar20 + 1) goto LAB_002646d4;\n      }\n      piVar20 = piVar20 + 1;\n      piVar19 = *(int **)this;\n      puVar18 = puVar11;\n    } while( true );\n  }" if (parenthesized_expression "(piVar19 != piVar6)" ( (binary_expression "piVar19 != piVar6" identifier != identifier) )) (compound_statement "{\n    uVar16 = 0;\n    puVar18 = puVar2;\n    piVar20 = piVar19;\n    do {\n      iVar7 = *piVar20;\n      uVar16 = uVar16 + 1;\n      puVar18[0] = '\0';\n      puVar18[1] = '\x01';\n      uVar5 = (ushort)*(byte *)(iVar7 + 0x18);\n      if (*(char *)(iVar7 + 0x19) != '\0') {\n        uVar5 = uVar5 | 2;\n      }\n      if (*(char *)(iVar7 + 0x1a) != '\0') {\n        uVar5 = uVar5 | 4;\n      }\n      iVar12 = *(int *)(iVar7 + 4);\n      *(ushort *)(puVar18 + 2) = uVar5;\n      if (iVar12 == -1) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_DAT_0043226c + 0x1a58);\n        return;\n      }\n      iVar15 = *(int *)(iVar7 + 0xc);\n      uVar8 = 0;\n      iVar3 = *(int *)(iVar7 + 0x10);\n      pbVar10 = *(byte **)(iVar7 + 8);\n      *(short *)(puVar18 + 4) = (short)iVar12;\n      iVar12 = (iVar3 - iVar15 >> 3) * -0x55555555 + 1;\n      *(short *)(puVar18 + 6) = (short)iVar12;\n      while (uVar13 = (uint)*pbVar10, uVar13 != 0) {\n        while( true ) {\n          pbVar10 = pbVar10 + 1;\n          uVar8 = uVar13 + uVar8 * 0x10;\n          if ((uVar8 & 0xf0000000) == 0) break;\n          uVar8 = (uVar8 & 0xf0000000) >> 0x18 ^ uVar8 & 0xfffffff;\n          uVar13 = (uint)*pbVar10;\n          if (uVar13 == 0) goto LAB_002645f4;\n        }\n      }\nLAB_002645f4:\n      *(uint *)(puVar18 + 8) = uVar8;\n      puVar18[0xc] = '\0';\n      puVar1 = PTR_get_offset_004323e0;\n      puVar18[0xd] = '\0';\n      puVar18[0xe] = '\0';\n      puVar18[0xf] = '\x14';\n      if (uVar16 < (uint)((int)piVar6 - (int)piVar19 >> 2)) {\n        iVar12 = iVar12 * 8 + 0x14;\n      }\n      else {\n        iVar12 = 0;\n      }\n      *(int *)(puVar18 + 0x10) = iVar12;\n      uVar4 = (*(code *)puVar1)(param_1);\n      puVar11 = puVar18 + 0x1c;\n      puVar14 = *(undefined4 **)(iVar7 + 0xc);\n      puVar9 = *(undefined4 **)(iVar7 + 0x10);\n      *(undefined4 *)(puVar18 + 0x14) = uVar4;\n      if (puVar14 == puVar9) {\n        piVar6 = *(int **)(this + 4);\n        puVar18[0x18] = '\0';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\0';\n        if (piVar6 == piVar20 + 1) goto LAB_002646d4;\n      }\n      else {\n        uVar8 = 0;\n        puVar18[0x18] = '\0';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\b';\n        puVar18 = puVar11;\n        do {\n          uVar4 = *puVar14;\n          puVar11 = puVar18 + 8;\n          puVar9 = puVar14 + 1;\n          uVar8 = uVar8 + 1;\n          puVar14 = puVar14 + 6;\n          uVar4 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar4,*puVar9);\n          puVar9 = *(undefined4 **)(iVar7 + 0x10);\n          iVar12 = *(int *)(iVar7 + 0xc);\n          *(undefined4 *)puVar18 = uVar4;\n          uVar4 = 8;\n          if ((uint)(((int)puVar9 - iVar12 >> 3) * -0x55555555) <= uVar8) {\n            uVar4 = 0;\n          }\n          *(undefined4 *)(puVar18 + 4) = uVar4;\n          puVar18 = puVar11;\n        } while (puVar9 != puVar14);\n        piVar6 = *(int **)(this + 4);\n        if (piVar6 == piVar20 + 1) goto LAB_002646d4;\n      }\n      piVar20 = piVar20 + 1;\n      piVar19 = *(int **)this;\n      puVar18 = puVar11;\n    } while( true );\n  }" { (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (expression_statement "puVar18 = puVar2;" (assignment_expression "puVar18 = puVar2" identifier = identifier) ;) (expression_statement "piVar20 = piVar19;" (assignment_expression "piVar20 = piVar19" identifier = identifier) ;) (do_statement "do {\n      iVar7 = *piVar20;\n      uVar16 = uVar16 + 1;\n      puVar18[0] = '\0';\n      puVar18[1] = '\x01';\n      uVar5 = (ushort)*(byte *)(iVar7 + 0x18);\n      if (*(char *)(iVar7 + 0x19) != '\0') {\n        uVar5 = uVar5 | 2;\n      }\n      if (*(char *)(iVar7 + 0x1a) != '\0') {\n        uVar5 = uVar5 | 4;\n      }\n      iVar12 = *(int *)(iVar7 + 4);\n      *(ushort *)(puVar18 + 2) = uVar5;\n      if (iVar12 == -1) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_DAT_0043226c + 0x1a58);\n        return;\n      }\n      iVar15 = *(int *)(iVar7 + 0xc);\n      uVar8 = 0;\n      iVar3 = *(int *)(iVar7 + 0x10);\n      pbVar10 = *(byte **)(iVar7 + 8);\n      *(short *)(puVar18 + 4) = (short)iVar12;\n      iVar12 = (iVar3 - iVar15 >> 3) * -0x55555555 + 1;\n      *(short *)(puVar18 + 6) = (short)iVar12;\n      while (uVar13 = (uint)*pbVar10, uVar13 != 0) {\n        while( true ) {\n          pbVar10 = pbVar10 + 1;\n          uVar8 = uVar13 + uVar8 * 0x10;\n          if ((uVar8 & 0xf0000000) == 0) break;\n          uVar8 = (uVar8 & 0xf0000000) >> 0x18 ^ uVar8 & 0xfffffff;\n          uVar13 = (uint)*pbVar10;\n          if (uVar13 == 0) goto LAB_002645f4;\n        }\n      }\nLAB_002645f4:\n      *(uint *)(puVar18 + 8) = uVar8;\n      puVar18[0xc] = '\0';\n      puVar1 = PTR_get_offset_004323e0;\n      puVar18[0xd] = '\0';\n      puVar18[0xe] = '\0';\n      puVar18[0xf] = '\x14';\n      if (uVar16 < (uint)((int)piVar6 - (int)piVar19 >> 2)) {\n        iVar12 = iVar12 * 8 + 0x14;\n      }\n      else {\n        iVar12 = 0;\n      }\n      *(int *)(puVar18 + 0x10) = iVar12;\n      uVar4 = (*(code *)puVar1)(param_1);\n      puVar11 = puVar18 + 0x1c;\n      puVar14 = *(undefined4 **)(iVar7 + 0xc);\n      puVar9 = *(undefined4 **)(iVar7 + 0x10);\n      *(undefined4 *)(puVar18 + 0x14) = uVar4;\n      if (puVar14 == puVar9) {\n        piVar6 = *(int **)(this + 4);\n        puVar18[0x18] = '\0';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\0';\n        if (piVar6 == piVar20 + 1) goto LAB_002646d4;\n      }\n      else {\n        uVar8 = 0;\n        puVar18[0x18] = '\0';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\b';\n        puVar18 = puVar11;\n        do {\n          uVar4 = *puVar14;\n          puVar11 = puVar18 + 8;\n          puVar9 = puVar14 + 1;\n          uVar8 = uVar8 + 1;\n          puVar14 = puVar14 + 6;\n          uVar4 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar4,*puVar9);\n          puVar9 = *(undefined4 **)(iVar7 + 0x10);\n          iVar12 = *(int *)(iVar7 + 0xc);\n          *(undefined4 *)puVar18 = uVar4;\n          uVar4 = 8;\n          if ((uint)(((int)puVar9 - iVar12 >> 3) * -0x55555555) <= uVar8) {\n            uVar4 = 0;\n          }\n          *(undefined4 *)(puVar18 + 4) = uVar4;\n          puVar18 = puVar11;\n        } while (puVar9 != puVar14);\n        piVar6 = *(int **)(this + 4);\n        if (piVar6 == piVar20 + 1) goto LAB_002646d4;\n      }\n      piVar20 = piVar20 + 1;\n      piVar19 = *(int **)this;\n      puVar18 = puVar11;\n    } while( true );" do (compound_statement "{\n      iVar7 = *piVar20;\n      uVar16 = uVar16 + 1;\n      puVar18[0] = '\0';\n      puVar18[1] = '\x01';\n      uVar5 = (ushort)*(byte *)(iVar7 + 0x18);\n      if (*(char *)(iVar7 + 0x19) != '\0') {\n        uVar5 = uVar5 | 2;\n      }\n      if (*(char *)(iVar7 + 0x1a) != '\0') {\n        uVar5 = uVar5 | 4;\n      }\n      iVar12 = *(int *)(iVar7 + 4);\n      *(ushort *)(puVar18 + 2) = uVar5;\n      if (iVar12 == -1) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_DAT_0043226c + 0x1a58);\n        return;\n      }\n      iVar15 = *(int *)(iVar7 + 0xc);\n      uVar8 = 0;\n      iVar3 = *(int *)(iVar7 + 0x10);\n      pbVar10 = *(byte **)(iVar7 + 8);\n      *(short *)(puVar18 + 4) = (short)iVar12;\n      iVar12 = (iVar3 - iVar15 >> 3) * -0x55555555 + 1;\n      *(short *)(puVar18 + 6) = (short)iVar12;\n      while (uVar13 = (uint)*pbVar10, uVar13 != 0) {\n        while( true ) {\n          pbVar10 = pbVar10 + 1;\n          uVar8 = uVar13 + uVar8 * 0x10;\n          if ((uVar8 & 0xf0000000) == 0) break;\n          uVar8 = (uVar8 & 0xf0000000) >> 0x18 ^ uVar8 & 0xfffffff;\n          uVar13 = (uint)*pbVar10;\n          if (uVar13 == 0) goto LAB_002645f4;\n        }\n      }\nLAB_002645f4:\n      *(uint *)(puVar18 + 8) = uVar8;\n      puVar18[0xc] = '\0';\n      puVar1 = PTR_get_offset_004323e0;\n      puVar18[0xd] = '\0';\n      puVar18[0xe] = '\0';\n      puVar18[0xf] = '\x14';\n      if (uVar16 < (uint)((int)piVar6 - (int)piVar19 >> 2)) {\n        iVar12 = iVar12 * 8 + 0x14;\n      }\n      else {\n        iVar12 = 0;\n      }\n      *(int *)(puVar18 + 0x10) = iVar12;\n      uVar4 = (*(code *)puVar1)(param_1);\n      puVar11 = puVar18 + 0x1c;\n      puVar14 = *(undefined4 **)(iVar7 + 0xc);\n      puVar9 = *(undefined4 **)(iVar7 + 0x10);\n      *(undefined4 *)(puVar18 + 0x14) = uVar4;\n      if (puVar14 == puVar9) {\n        piVar6 = *(int **)(this + 4);\n        puVar18[0x18] = '\0';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\0';\n        if (piVar6 == piVar20 + 1) goto LAB_002646d4;\n      }\n      else {\n        uVar8 = 0;\n        puVar18[0x18] = '\0';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\b';\n        puVar18 = puVar11;\n        do {\n          uVar4 = *puVar14;\n          puVar11 = puVar18 + 8;\n          puVar9 = puVar14 + 1;\n          uVar8 = uVar8 + 1;\n          puVar14 = puVar14 + 6;\n          uVar4 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar4,*puVar9);\n          puVar9 = *(undefined4 **)(iVar7 + 0x10);\n          iVar12 = *(int *)(iVar7 + 0xc);\n          *(undefined4 *)puVar18 = uVar4;\n          uVar4 = 8;\n          if ((uint)(((int)puVar9 - iVar12 >> 3) * -0x55555555) <= uVar8) {\n            uVar4 = 0;\n          }\n          *(undefined4 *)(puVar18 + 4) = uVar4;\n          puVar18 = puVar11;\n        } while (puVar9 != puVar14);\n        piVar6 = *(int **)(this + 4);\n        if (piVar6 == piVar20 + 1) goto LAB_002646d4;\n      }\n      piVar20 = piVar20 + 1;\n      piVar19 = *(int **)this;\n      puVar18 = puVar11;\n    }" { (expression_statement "iVar7 = *piVar20;" (assignment_expression "iVar7 = *piVar20" identifier = (pointer_expression "*piVar20" * identifier)) ;) (expression_statement "uVar16 = uVar16 + 1;" (assignment_expression "uVar16 = uVar16 + 1" identifier = (binary_expression "uVar16 + 1" identifier + number_literal)) ;) (expression_statement "puVar18[0] = '\0';" (assignment_expression "puVar18[0] = '\0'" (subscript_expression "puVar18[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar18[1] = '\x01';" (assignment_expression "puVar18[1] = '\x01'" (subscript_expression "puVar18[1]" identifier [ number_literal ]) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "uVar5 = (ushort)*(byte *)(iVar7 + 0x18);" (assignment_expression "uVar5 = (ushort)*(byte *)(iVar7 + 0x18)" identifier = (binary_expression "(ushort)*(byte *)(iVar7 + 0x18)" (parenthesized_expression "(ushort)" ( identifier )) * (cast_expression "(byte *)(iVar7 + 0x18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x18)" ( (binary_expression "iVar7 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(iVar7 + 0x19) != '\0') {\n        uVar5 = uVar5 | 2;\n      }" if (parenthesized_expression "(*(char *)(iVar7 + 0x19) != '\0')" ( (binary_expression "*(char *)(iVar7 + 0x19) != '\0'" (pointer_expression "*(char *)(iVar7 + 0x19)" * (cast_expression "(char *)(iVar7 + 0x19)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x19)" ( (binary_expression "iVar7 + 0x19" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (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 (*(char *)(iVar7 + 0x1a) != '\0') {\n        uVar5 = uVar5 | 4;\n      }" if (parenthesized_expression "(*(char *)(iVar7 + 0x1a) != '\0')" ( (binary_expression "*(char *)(iVar7 + 0x1a) != '\0'" (pointer_expression "*(char *)(iVar7 + 0x1a)" * (cast_expression "(char *)(iVar7 + 0x1a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x1a)" ( (binary_expression "iVar7 + 0x1a" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (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 "iVar12 = *(int *)(iVar7 + 4);" (assignment_expression "iVar12 = *(int *)(iVar7 + 4)" identifier = (pointer_expression "*(int *)(iVar7 + 4)" * (cast_expression "(int *)(iVar7 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(ushort *)(puVar18 + 2) = uVar5;" (assignment_expression "*(ushort *)(puVar18 + 2) = uVar5" (pointer_expression "*(ushort *)(puVar18 + 2)" * (cast_expression "(ushort *)(puVar18 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 2)" ( (binary_expression "puVar18 + 2" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar12 == -1) {\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 "(iVar12 == -1)" ( (binary_expression "iVar12 == -1" 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 "iVar15 = *(int *)(iVar7 + 0xc);" (assignment_expression "iVar15 = *(int *)(iVar7 + 0xc)" identifier = (pointer_expression "*(int *)(iVar7 + 0xc)" * (cast_expression "(int *)(iVar7 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (expression_statement "iVar3 = *(int *)(iVar7 + 0x10);" (assignment_expression "iVar3 = *(int *)(iVar7 + 0x10)" identifier = (pointer_expression "*(int *)(iVar7 + 0x10)" * (cast_expression "(int *)(iVar7 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x10)" ( (binary_expression "iVar7 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "pbVar10 = *(byte **)(iVar7 + 8);" (assignment_expression "pbVar10 = *(byte **)(iVar7 + 8)" identifier = (pointer_expression "*(byte **)(iVar7 + 8)" * (cast_expression "(byte **)(iVar7 + 8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 8)" ( (binary_expression "iVar7 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(short *)(puVar18 + 4) = (short)iVar12;" (assignment_expression "*(short *)(puVar18 + 4) = (short)iVar12" (pointer_expression "*(short *)(puVar18 + 4)" * (cast_expression "(short *)(puVar18 + 4)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 4)" ( (binary_expression "puVar18 + 4" identifier + number_literal) )))) = (cast_expression "(short)iVar12" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (expression_statement "iVar12 = (iVar3 - iVar15 >> 3) * -0x55555555 + 1;" (assignment_expression "iVar12 = (iVar3 - iVar15 >> 3) * -0x55555555 + 1" identifier = (binary_expression "(iVar3 - iVar15 >> 3) * -0x55555555 + 1" (binary_expression "(iVar3 - iVar15 >> 3) * -0x55555555" (parenthesized_expression "(iVar3 - iVar15 >> 3)" ( (binary_expression "iVar3 - iVar15 >> 3" (binary_expression "iVar3 - iVar15" identifier - identifier) >> number_literal) )) * number_literal) + number_literal)) ;) (expression_statement "*(short *)(puVar18 + 6) = (short)iVar12;" (assignment_expression "*(short *)(puVar18 + 6) = (short)iVar12" (pointer_expression "*(short *)(puVar18 + 6)" * (cast_expression "(short *)(puVar18 + 6)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 6)" ( (binary_expression "puVar18 + 6" identifier + number_literal) )))) = (cast_expression "(short)iVar12" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (while_statement "while (uVar13 = (uint)*pbVar10, uVar13 != 0) {\n        while( true ) {\n          pbVar10 = pbVar10 + 1;\n          uVar8 = uVar13 + uVar8 * 0x10;\n          if ((uVar8 & 0xf0000000) == 0) break;\n          uVar8 = (uVar8 & 0xf0000000) >> 0x18 ^ uVar8 & 0xfffffff;\n          uVar13 = (uint)*pbVar10;\n          if (uVar13 == 0) goto LAB_002645f4;\n        }\n      }" while (parenthesized_expression "(uVar13 = (uint)*pbVar10, uVar13 != 0)" ( (comma_expression "uVar13 = (uint)*pbVar10, uVar13 != 0" (assignment_expression "uVar13 = (uint)*pbVar10" identifier = (binary_expression "(uint)*pbVar10" (parenthesized_expression "(uint)" ( identifier )) * identifier)) , (binary_expression "uVar13 != 0" identifier != number_literal)) )) (compound_statement "{\n        while( true ) {\n          pbVar10 = pbVar10 + 1;\n          uVar8 = uVar13 + uVar8 * 0x10;\n          if ((uVar8 & 0xf0000000) == 0) break;\n          uVar8 = (uVar8 & 0xf0000000) >> 0x18 ^ uVar8 & 0xfffffff;\n          uVar13 = (uint)*pbVar10;\n          if (uVar13 == 0) goto LAB_002645f4;\n        }\n      }" { (while_statement "while( true ) {\n          pbVar10 = pbVar10 + 1;\n          uVar8 = uVar13 + uVar8 * 0x10;\n          if ((uVar8 & 0xf0000000) == 0) break;\n          uVar8 = (uVar8 & 0xf0000000) >> 0x18 ^ uVar8 & 0xfffffff;\n          uVar13 = (uint)*pbVar10;\n          if (uVar13 == 0) goto LAB_002645f4;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          pbVar10 = pbVar10 + 1;\n          uVar8 = uVar13 + uVar8 * 0x10;\n          if ((uVar8 & 0xf0000000) == 0) break;\n          uVar8 = (uVar8 & 0xf0000000) >> 0x18 ^ uVar8 & 0xfffffff;\n          uVar13 = (uint)*pbVar10;\n          if (uVar13 == 0) goto LAB_002645f4;\n        }" { (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) (expression_statement "uVar8 = uVar13 + uVar8 * 0x10;" (assignment_expression "uVar8 = uVar13 + uVar8 * 0x10" identifier = (binary_expression "uVar13 + uVar8 * 0x10" identifier + (binary_expression "uVar8 * 0x10" identifier * number_literal))) ;) (if_statement "if ((uVar8 & 0xf0000000) == 0) break;" if (parenthesized_expression "((uVar8 & 0xf0000000) == 0)" ( (binary_expression "(uVar8 & 0xf0000000) == 0" (parenthesized_expression "(uVar8 & 0xf0000000)" ( (binary_expression "uVar8 & 0xf0000000" identifier & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar8 = (uVar8 & 0xf0000000) >> 0x18 ^ uVar8 & 0xfffffff;" (assignment_expression "uVar8 = (uVar8 & 0xf0000000) >> 0x18 ^ uVar8 & 0xfffffff" identifier = (binary_expression "(uVar8 & 0xf0000000) >> 0x18 ^ uVar8 & 0xfffffff" (binary_expression "(uVar8 & 0xf0000000) >> 0x18" (parenthesized_expression "(uVar8 & 0xf0000000)" ( (binary_expression "uVar8 & 0xf0000000" identifier & number_literal) )) >> number_literal) ^ (binary_expression "uVar8 & 0xfffffff" identifier & number_literal))) ;) (expression_statement "uVar13 = (uint)*pbVar10;" (assignment_expression "uVar13 = (uint)*pbVar10" identifier = (binary_expression "(uint)*pbVar10" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (if_statement "if (uVar13 == 0) goto LAB_002645f4;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (goto_statement "goto LAB_002645f4;" goto statement_identifier ;)) })) })) (labeled_statement "LAB_002645f4:\n      *(uint *)(puVar18 + 8) = uVar8;" statement_identifier : (expression_statement "*(uint *)(puVar18 + 8) = uVar8;" (assignment_expression "*(uint *)(puVar18 + 8) = uVar8" (pointer_expression "*(uint *)(puVar18 + 8)" * (cast_expression "(uint *)(puVar18 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 8)" ( (binary_expression "puVar18 + 8" identifier + number_literal) )))) = identifier) ;)) (expression_statement "puVar18[0xc] = '\0';" (assignment_expression "puVar18[0xc] = '\0'" (subscript_expression "puVar18[0xc]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar1 = PTR_get_offset_004323e0;" (assignment_expression "puVar1 = PTR_get_offset_004323e0" identifier = identifier) ;) (expression_statement "puVar18[0xd] = '\0';" (assignment_expression "puVar18[0xd] = '\0'" (subscript_expression "puVar18[0xd]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar18[0xe] = '\0';" (assignment_expression "puVar18[0xe] = '\0'" (subscript_expression "puVar18[0xe]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar18[0xf] = '\x14';" (assignment_expression "puVar18[0xf] = '\x14'" (subscript_expression "puVar18[0xf]" identifier [ number_literal ]) = (char_literal "'\x14'" ' escape_sequence ')) ;) (if_statement "if (uVar16 < (uint)((int)piVar6 - (int)piVar19 >> 2)) {\n        iVar12 = iVar12 * 8 + 0x14;\n      }\n      else {\n        iVar12 = 0;\n      }" if (parenthesized_expression "(uVar16 < (uint)((int)piVar6 - (int)piVar19 >> 2))" ( (binary_expression "uVar16 < (uint)((int)piVar6 - (int)piVar19 >> 2)" identifier < (call_expression "(uint)((int)piVar6 - (int)piVar19 >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)piVar6 - (int)piVar19 >> 2)" ( (binary_expression "(int)piVar6 - (int)piVar19 >> 2" (binary_expression "(int)piVar6 - (int)piVar19" (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piVar19" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) )))) )) (compound_statement "{\n        iVar12 = iVar12 * 8 + 0x14;\n      }" { (expression_statement "iVar12 = iVar12 * 8 + 0x14;" (assignment_expression "iVar12 = iVar12 * 8 + 0x14" identifier = (binary_expression "iVar12 * 8 + 0x14" (binary_expression "iVar12 * 8" identifier * number_literal) + number_literal)) ;) }) (else_clause "else {\n        iVar12 = 0;\n      }" else (compound_statement "{\n        iVar12 = 0;\n      }" { (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) }))) (expression_statement "*(int *)(puVar18 + 0x10) = iVar12;" (assignment_expression "*(int *)(puVar18 + 0x10) = iVar12" (pointer_expression "*(int *)(puVar18 + 0x10)" * (cast_expression "(int *)(puVar18 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x10)" ( (binary_expression "puVar18 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar4 = (*(code *)puVar1)(param_1);" (assignment_expression "uVar4 = (*(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 "puVar11 = puVar18 + 0x1c;" (assignment_expression "puVar11 = puVar18 + 0x1c" identifier = (binary_expression "puVar18 + 0x1c" identifier + number_literal)) ;) (expression_statement "puVar14 = *(undefined4 **)(iVar7 + 0xc);" (assignment_expression "puVar14 = *(undefined4 **)(iVar7 + 0xc)" identifier = (pointer_expression "*(undefined4 **)(iVar7 + 0xc)" * (cast_expression "(undefined4 **)(iVar7 + 0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "puVar9 = *(undefined4 **)(iVar7 + 0x10);" (assignment_expression "puVar9 = *(undefined4 **)(iVar7 + 0x10)" identifier = (pointer_expression "*(undefined4 **)(iVar7 + 0x10)" * (cast_expression "(undefined4 **)(iVar7 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x10)" ( (binary_expression "iVar7 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar18 + 0x14) = uVar4;" (assignment_expression "*(undefined4 *)(puVar18 + 0x14) = uVar4" (pointer_expression "*(undefined4 *)(puVar18 + 0x14)" * (cast_expression "(undefined4 *)(puVar18 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x14)" ( (binary_expression "puVar18 + 0x14" identifier + number_literal) )))) = identifier) ;) (if_statement "if (puVar14 == puVar9) {\n        piVar6 = *(int **)(this + 4);\n        puVar18[0x18] = '\0';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\0';\n        if (piVar6 == piVar20 + 1) goto LAB_002646d4;\n      }\n      else {\n        uVar8 = 0;\n        puVar18[0x18] = '\0';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\b';\n        puVar18 = puVar11;\n        do {\n          uVar4 = *puVar14;\n          puVar11 = puVar18 + 8;\n          puVar9 = puVar14 + 1;\n          uVar8 = uVar8 + 1;\n          puVar14 = puVar14 + 6;\n          uVar4 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar4,*puVar9);\n          puVar9 = *(undefined4 **)(iVar7 + 0x10);\n          iVar12 = *(int *)(iVar7 + 0xc);\n          *(undefined4 *)puVar18 = uVar4;\n          uVar4 = 8;\n          if ((uint)(((int)puVar9 - iVar12 >> 3) * -0x55555555) <= uVar8) {\n            uVar4 = 0;\n          }\n          *(undefined4 *)(puVar18 + 4) = uVar4;\n          puVar18 = puVar11;\n        } while (puVar9 != puVar14);\n        piVar6 = *(int **)(this + 4);\n        if (piVar6 == piVar20 + 1) goto LAB_002646d4;\n      }" if (parenthesized_expression "(puVar14 == puVar9)" ( (binary_expression "puVar14 == puVar9" identifier == identifier) )) (compound_statement "{\n        piVar6 = *(int **)(this + 4);\n        puVar18[0x18] = '\0';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\0';\n        if (piVar6 == piVar20 + 1) goto LAB_002646d4;\n      }" { (expression_statement "piVar6 = *(int **)(this + 4);" (assignment_expression "piVar6 = *(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 "puVar18[0x18] = '\0';" (assignment_expression "puVar18[0x18] = '\0'" (subscript_expression "puVar18[0x18]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar18[0x19] = '\0';" (assignment_expression "puVar18[0x19] = '\0'" (subscript_expression "puVar18[0x19]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar18[0x1a] = '\0';" (assignment_expression "puVar18[0x1a] = '\0'" (subscript_expression "puVar18[0x1a]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar18[0x1b] = '\0';" (assignment_expression "puVar18[0x1b] = '\0'" (subscript_expression "puVar18[0x1b]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (piVar6 == piVar20 + 1) goto LAB_002646d4;" if (parenthesized_expression "(piVar6 == piVar20 + 1)" ( (binary_expression "piVar6 == piVar20 + 1" identifier == (binary_expression "piVar20 + 1" identifier + number_literal)) )) (goto_statement "goto LAB_002646d4;" goto statement_identifier ;)) }) (else_clause "else {\n        uVar8 = 0;\n        puVar18[0x18] = '\0';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\b';\n        puVar18 = puVar11;\n        do {\n          uVar4 = *puVar14;\n          puVar11 = puVar18 + 8;\n          puVar9 = puVar14 + 1;\n          uVar8 = uVar8 + 1;\n          puVar14 = puVar14 + 6;\n          uVar4 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar4,*puVar9);\n          puVar9 = *(undefined4 **)(iVar7 + 0x10);\n          iVar12 = *(int *)(iVar7 + 0xc);\n          *(undefined4 *)puVar18 = uVar4;\n          uVar4 = 8;\n          if ((uint)(((int)puVar9 - iVar12 >> 3) * -0x55555555) <= uVar8) {\n            uVar4 = 0;\n          }\n          *(undefined4 *)(puVar18 + 4) = uVar4;\n          puVar18 = puVar11;\n        } while (puVar9 != puVar14);\n        piVar6 = *(int **)(this + 4);\n        if (piVar6 == piVar20 + 1) goto LAB_002646d4;\n      }" else (compound_statement "{\n        uVar8 = 0;\n        puVar18[0x18] = '\0';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\b';\n        puVar18 = puVar11;\n        do {\n          uVar4 = *puVar14;\n          puVar11 = puVar18 + 8;\n          puVar9 = puVar14 + 1;\n          uVar8 = uVar8 + 1;\n          puVar14 = puVar14 + 6;\n          uVar4 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar4,*puVar9);\n          puVar9 = *(undefined4 **)(iVar7 + 0x10);\n          iVar12 = *(int *)(iVar7 + 0xc);\n          *(undefined4 *)puVar18 = uVar4;\n          uVar4 = 8;\n          if ((uint)(((int)puVar9 - iVar12 >> 3) * -0x55555555) <= uVar8) {\n            uVar4 = 0;\n          }\n          *(undefined4 *)(puVar18 + 4) = uVar4;\n          puVar18 = puVar11;\n        } while (puVar9 != puVar14);\n        piVar6 = *(int **)(this + 4);\n        if (piVar6 == piVar20 + 1) goto LAB_002646d4;\n      }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (expression_statement "puVar18[0x18] = '\0';" (assignment_expression "puVar18[0x18] = '\0'" (subscript_expression "puVar18[0x18]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar18[0x19] = '\0';" (assignment_expression "puVar18[0x19] = '\0'" (subscript_expression "puVar18[0x19]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar18[0x1a] = '\0';" (assignment_expression "puVar18[0x1a] = '\0'" (subscript_expression "puVar18[0x1a]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar18[0x1b] = '\b';" (assignment_expression "puVar18[0x1b] = '\b'" (subscript_expression "puVar18[0x1b]" identifier [ number_literal ]) = (char_literal "'\b'" ' escape_sequence ')) ;) (expression_statement "puVar18 = puVar11;" (assignment_expression "puVar18 = puVar11" identifier = identifier) ;) (do_statement "do {\n          uVar4 = *puVar14;\n          puVar11 = puVar18 + 8;\n          puVar9 = puVar14 + 1;\n          uVar8 = uVar8 + 1;\n          puVar14 = puVar14 + 6;\n          uVar4 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar4,*puVar9);\n          puVar9 = *(undefined4 **)(iVar7 + 0x10);\n          iVar12 = *(int *)(iVar7 + 0xc);\n          *(undefined4 *)puVar18 = uVar4;\n          uVar4 = 8;\n          if ((uint)(((int)puVar9 - iVar12 >> 3) * -0x55555555) <= uVar8) {\n            uVar4 = 0;\n          }\n          *(undefined4 *)(puVar18 + 4) = uVar4;\n          puVar18 = puVar11;\n        } while (puVar9 != puVar14);" do (compound_statement "{\n          uVar4 = *puVar14;\n          puVar11 = puVar18 + 8;\n          puVar9 = puVar14 + 1;\n          uVar8 = uVar8 + 1;\n          puVar14 = puVar14 + 6;\n          uVar4 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar4,*puVar9);\n          puVar9 = *(undefined4 **)(iVar7 + 0x10);\n          iVar12 = *(int *)(iVar7 + 0xc);\n          *(undefined4 *)puVar18 = uVar4;\n          uVar4 = 8;\n          if ((uint)(((int)puVar9 - iVar12 >> 3) * -0x55555555) <= uVar8) {\n            uVar4 = 0;\n          }\n          *(undefined4 *)(puVar18 + 4) = uVar4;\n          puVar18 = puVar11;\n        }" { (expression_statement "uVar4 = *puVar14;" (assignment_expression "uVar4 = *puVar14" identifier = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "puVar11 = puVar18 + 8;" (assignment_expression "puVar11 = puVar18 + 8" identifier = (binary_expression "puVar18 + 8" identifier + number_literal)) ;) (expression_statement "puVar9 = puVar14 + 1;" (assignment_expression "puVar9 = puVar14 + 1" identifier = (binary_expression "puVar14 + 1" identifier + number_literal)) ;) (expression_statement "uVar8 = uVar8 + 1;" (assignment_expression "uVar8 = uVar8 + 1" identifier = (binary_expression "uVar8 + 1" identifier + number_literal)) ;) (expression_statement "puVar14 = puVar14 + 6;" (assignment_expression "puVar14 = puVar14 + 6" identifier = (binary_expression "puVar14 + 6" identifier + number_literal)) ;) (expression_statement "uVar4 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar4,*puVar9);" (assignment_expression "uVar4 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar4,*puVar9)" identifier = (call_expression "(*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar4,*puVar9)" (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,uVar4,*puVar9)" ( identifier , identifier , (pointer_expression "*puVar9" * identifier) )))) ;) (expression_statement "puVar9 = *(undefined4 **)(iVar7 + 0x10);" (assignment_expression "puVar9 = *(undefined4 **)(iVar7 + 0x10)" identifier = (pointer_expression "*(undefined4 **)(iVar7 + 0x10)" * (cast_expression "(undefined4 **)(iVar7 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x10)" ( (binary_expression "iVar7 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = *(int *)(iVar7 + 0xc);" (assignment_expression "iVar12 = *(int *)(iVar7 + 0xc)" identifier = (pointer_expression "*(int *)(iVar7 + 0xc)" * (cast_expression "(int *)(iVar7 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)puVar18 = uVar4;" (assignment_expression "*(undefined4 *)puVar18 = uVar4" (pointer_expression "*(undefined4 *)puVar18" * (cast_expression "(undefined4 *)puVar18" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "uVar4 = 8;" (assignment_expression "uVar4 = 8" identifier = number_literal) ;) (if_statement "if ((uint)(((int)puVar9 - iVar12 >> 3) * -0x55555555) <= uVar8) {\n            uVar4 = 0;\n          }" if (parenthesized_expression "((uint)(((int)puVar9 - iVar12 >> 3) * -0x55555555) <= uVar8)" ( (binary_expression "(uint)(((int)puVar9 - iVar12 >> 3) * -0x55555555) <= uVar8" (call_expression "(uint)(((int)puVar9 - iVar12 >> 3) * -0x55555555)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(((int)puVar9 - iVar12 >> 3) * -0x55555555)" ( (binary_expression "((int)puVar9 - iVar12 >> 3) * -0x55555555" (parenthesized_expression "((int)puVar9 - iVar12 >> 3)" ( (binary_expression "(int)puVar9 - iVar12 >> 3" (binary_expression "(int)puVar9 - iVar12" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) >> number_literal) )) * number_literal) ))) <= identifier) )) (compound_statement "{\n            uVar4 = 0;\n          }" { (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) })) (expression_statement "*(undefined4 *)(puVar18 + 4) = uVar4;" (assignment_expression "*(undefined4 *)(puVar18 + 4) = uVar4" (pointer_expression "*(undefined4 *)(puVar18 + 4)" * (cast_expression "(undefined4 *)(puVar18 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 4)" ( (binary_expression "puVar18 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar18 = puVar11;" (assignment_expression "puVar18 = puVar11" identifier = identifier) ;) }) while (parenthesized_expression "(puVar9 != puVar14)" ( (binary_expression "puVar9 != puVar14" identifier != identifier) )) ;) (expression_statement "piVar6 = *(int **)(this + 4);" (assignment_expression "piVar6 = *(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 (piVar6 == piVar20 + 1) goto LAB_002646d4;" if (parenthesized_expression "(piVar6 == piVar20 + 1)" ( (binary_expression "piVar6 == piVar20 + 1" identifier == (binary_expression "piVar20 + 1" identifier + number_literal)) )) (goto_statement "goto LAB_002646d4;" goto statement_identifier ;)) }))) (expression_statement "piVar20 = piVar20 + 1;" (assignment_expression "piVar20 = piVar20 + 1" identifier = (binary_expression "piVar20 + 1" identifier + number_literal)) ;) (expression_statement "piVar19 = *(int **)this;" (assignment_expression "piVar19 = *(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 "puVar18 = puVar11;" (assignment_expression "puVar18 = puVar11" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_002646dc;" goto statement_identifier ;) (labeled_statement "LAB_002646d4:\n  piVar19 = piVar20 + 1;" statement_identifier : (expression_statement "piVar19 = piVar20 + 1;" (assignment_expression "piVar19 = piVar20 + 1" identifier = (binary_expression "piVar20 + 1" identifier + number_literal)) ;)) (expression_statement "uVar16 = (int)puVar11 - (int)puVar2;" (assignment_expression "uVar16 = (int)puVar11 - (int)puVar2" identifier = (binary_expression "(int)puVar11 - (int)puVar2" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar2" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (labeled_statement "LAB_002646dc:\n  uVar4 = 0x71c;" statement_identifier : (expression_statement "uVar4 = 0x71c;" (assignment_expression "uVar4 = 0x71c" identifier = number_literal) ;)) (if_statement "if (uVar17 == uVar16) {\n    iVar7 = *(int *)this;\n    *param_2 = puVar2;\n    *param_3 = uVar17;\n    *param_4 = (int)piVar19 - iVar7 >> 2;\n    return;\n  }" if (parenthesized_expression "(uVar17 == uVar16)" ( (binary_expression "uVar17 == uVar16" identifier == identifier) )) (compound_statement "{\n    iVar7 = *(int *)this;\n    *param_2 = puVar2;\n    *param_3 = uVar17;\n    *param_4 = (int)piVar19 - iVar7 >> 2;\n    return;\n  }" { (expression_statement "iVar7 = *(int *)this;" (assignment_expression "iVar7 = *(int *)this" identifier = (pointer_expression "*(int *)this" * (cast_expression "(int *)this" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*param_2 = puVar2;" (assignment_expression "*param_2 = puVar2" (pointer_expression "*param_2" * identifier) = identifier) ;) (expression_statement "*param_3 = uVar17;" (assignment_expression "*param_3 = uVar17" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "*param_4 = (int)piVar19 - iVar7 >> 2;" (assignment_expression "*param_4 = (int)piVar19 - iVar7 >> 2" (pointer_expression "*param_4" * identifier) = (binary_expression "(int)piVar19 - iVar7 >> 2" (binary_expression "(int)piVar19 - iVar7" (cast_expression "(int)piVar19" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) >> number_literal)) ;) (return_statement "return;" return ;) })) (labeled_statement "LAB_00264764:\n  (*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_DAT_0043226c + 0x13e0,uVar4,PTR_DAT_0043226c + 0x17f0);" statement_identifier : (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_DAT_0043226c + 0x13e0,uVar4,PTR_DAT_0043226c + 0x17f0);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_DAT_0043226c + 0x13e0,uVar4,PTR_DAT_0043226c + 0x17f0)" (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,uVar4,PTR_DAT_0043226c + 0x17f0)" ( (binary_expression "PTR_DAT_0043226c + 0x13e0" identifier + number_literal) , identifier , (binary_expression "PTR_DAT_0043226c + 0x17f0" identifier + number_literal) ))) ;)) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "/* DWARF original name: def_section_contents<64, true>\n   DWARF original prototype: void def_section_contents<64,_true>(Versions * this, Stringpool *\n   dynpool, uchar * * pp, uint * psize, uint * pentries) */\n\nvoid __thiscall\ngold::Versions::def_section_contents<64,_true>\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  uchar *puVar4;\n  ushort uVar8;\n  pointer pbVar5;\n  int iVar6;\n  undefined4 uVar7;\n  pointer ppVVar9;\n  Verdef *pVVar10;\n  uint uVar11;\n  byte *pbVar12;\n  uchar *puVar13;\n  pointer pbVar14;\n  pointer ppVVar15;\n  uint uVar16;\n  pointer pbVar17;\n  uint uVar18;\n  uint uVar19;\n  uchar *puVar20;\n  pointer ppVVar21;\n  \n  if (this->is_finalized_ == false) goto LAB_0026477c;\n  ppVVar9 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n            _M_start;\n  ppVVar15 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl\n             ._M_finish;\n  if (ppVVar15 == ppVVar9) {\nLAB_00264760:\n    uVar7 = 0x702;\n    goto LAB_00264764;\n  }\n  uVar19 = 0;\n  do {\n    pVVar10 = *ppVVar9;\n    ppVVar9 = ppVVar9 + 1;\n    uVar19 = uVar19 + ((int)(pVVar10->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)(pVVar10->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 (ppVVar15 != ppVVar9);\n  puVar4 = (uchar *)(*(code *)PTR_operator_new___004322dc)(uVar19);\n  ppVVar15 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl\n             ._M_start;\n  ppVVar9 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n            _M_finish;\n  if (ppVVar15 != ppVVar9) {\n    uVar18 = 0;\n    puVar20 = puVar4;\n    ppVVar21 = ppVVar15;\n    do {\n      pVVar10 = *ppVVar21;\n      uVar18 = uVar18 + 1;\n      puVar20[0] = '\0';\n      puVar20[1] = '\x01';\n      uVar8 = (ushort)pVVar10->is_base_;\n      if (pVVar10->is_weak_ != false) {\n        uVar8 = uVar8 | 2;\n      }\n      if (pVVar10->is_info_ != false) {\n        uVar8 = uVar8 | 4;\n      }\n      uVar16 = (pVVar10->super_Version_base).index_;\n      *(ushort *)(puVar20 + 2) = uVar8;\n      if (uVar16 == 0xffffffff) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_s__0043226c + 0x1a58);\n        goto LAB_00264760;\n      }\n      pbVar17 = (pVVar10->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      uVar11 = 0;\n      pbVar5 = (pVVar10->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      pbVar12 = (byte *)pVVar10->name_;\n      *(short *)(puVar20 + 4) = (short)uVar16;\n      iVar6 = ((int)pbVar5 - (int)pbVar17 >> 3) * -0x55555555 + 1;\n      *(short *)(puVar20 + 6) = (short)iVar6;\n      while (uVar16 = (uint)*pbVar12, uVar16 != 0) {\n        while( true ) {\n          pbVar12 = pbVar12 + 1;\n          uVar11 = uVar16 + uVar11 * 0x10;\n          if ((uVar11 & 0xf0000000) == 0) break;\n          uVar11 = (uVar11 & 0xf0000000) >> 0x18 ^ uVar11 & 0xfffffff;\n          uVar16 = (uint)*pbVar12;\n          if (uVar16 == 0) goto LAB_002645f4;\n        }\n      }\nLAB_002645f4:\n      *(uint *)(puVar20 + 8) = uVar11;\n      puVar20[0xc] = '\0';\n      puVar3 = PTR_get_offset_004323e0;\n      puVar20[0xd] = '\0';\n      puVar20[0xe] = '\0';\n      puVar20[0xf] = '\x14';\n      if (uVar18 < (uint)((int)ppVVar9 - (int)ppVVar15 >> 2)) {\n        iVar6 = iVar6 * 8 + 0x14;\n      }\n      else {\n        iVar6 = 0;\n      }\n      *(int *)(puVar20 + 0x10) = iVar6;\n      uVar7 = (*(code *)puVar3)(dynpool);\n      puVar13 = puVar20 + 0x1c;\n      pbVar17 = (pVVar10->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      pbVar5 = (pVVar10->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      *(undefined4 *)(puVar20 + 0x14) = uVar7;\n      if (pbVar17 == pbVar5) {\n        ppVVar9 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                  _M_impl._M_finish;\n        puVar20[0x18] = '\0';\n        puVar20[0x19] = '\0';\n        puVar20[0x1a] = '\0';\n        puVar20[0x1b] = '\0';\n        if (ppVVar9 == ppVVar21 + 1) goto LAB_002646d4;\n      }\n      else {\n        uVar16 = 0;\n        puVar20[0x18] = '\0';\n        puVar20[0x19] = '\0';\n        puVar20[0x1a] = '\0';\n        puVar20[0x1b] = '\b';\n        puVar20 = puVar13;\n        do {\n          p_Var2 = &pbVar17->_M_dataplus;\n          puVar13 = puVar20 + 8;\n          psVar1 = &pbVar17->_M_string_length;\n          uVar16 = uVar16 + 1;\n          pbVar17 = pbVar17 + 1;\n          uVar7 = (*(code *)PTR_get_offset_with_length_004351bc)(dynpool,p_Var2->_M_p,*psVar1);\n          pbVar14 = (pVVar10->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          pbVar5 = (pVVar10->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          *(undefined4 *)puVar20 = uVar7;\n          uVar7 = 8;\n          if ((uint)(((int)pbVar14 - (int)pbVar5 >> 3) * -0x55555555) <= uVar16) {\n            uVar7 = 0;\n          }\n          *(undefined4 *)(puVar20 + 4) = uVar7;\n          puVar20 = puVar13;\n        } while (pbVar14 != pbVar17);\n        ppVVar9 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                  _M_impl._M_finish;\n        if (ppVVar9 == ppVVar21 + 1) goto LAB_002646d4;\n      }\n      ppVVar21 = ppVVar21 + 1;\n      ppVVar15 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                 _M_impl._M_start;\n      puVar20 = puVar13;\n    } while( true );\n  }\n  uVar18 = 0;\nLAB_002646dc:\n  uVar7 = 0x71c;\n  if (uVar19 == uVar18) {\n    ppVVar9 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n              _M_impl._M_start;\n    *pp = puVar4;\n    *psize = uVar19;\n    *pentries = (int)ppVVar15 - (int)ppVVar9 >> 2;\n    return;\n  }\nLAB_00264764:\n  do {\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s__0043226c + 0x13e0,uVar7,PTR_s__0043226c + 0x17f0);\nLAB_0026477c:\n    uVar7 = 0x701;\n  } while( true );\nLAB_002646d4:\n  ppVVar15 = ppVVar21 + 1;\n  uVar18 = (int)puVar13 - (int)puVar4;\n  goto LAB_002646dc;\n}\n\n" comment (declaration "void __thiscall\ngold::Versions::def_section_contents<64,_true>\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 "_true>\n          (Versions *this,Stringpool *dynpool,uchar **pp,uint *psize,uint *pentries)\n\n{\n  size_type" (function_declarator "_true>\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 "uchar *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "ushort uVar8;" type_identifier identifier ;) (declaration "pointer pbVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "pointer ppVVar9;" type_identifier identifier ;) (declaration "Verdef *pVVar10;" type_identifier (pointer_declarator "*pVVar10" * identifier) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "uchar *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "pointer pbVar14;" type_identifier identifier ;) (declaration "pointer ppVVar15;" type_identifier identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "pointer pbVar17;" type_identifier identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "uchar *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "pointer ppVVar21;" type_identifier identifier ;) (if_statement "if (this->is_finalized_ == false) goto LAB_0026477c;" 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_0026477c;" goto statement_identifier ;)) (expression_statement "ppVVar9 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n            _M_start;" (field_expression "ppVVar9 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n            _M_start" (field_expression "ppVVar9 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl" (binary_expression "ppVVar9 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_" (binary_expression "ppVVar9 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold" (binary_expression "ppVVar9 = (this->defs_).super__Vector_base<gold::Verdef*,_std" (assignment_expression "ppVVar9 = (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 "ppVVar15 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl\n             ._M_finish;" (field_expression "ppVVar15 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl\n             ._M_finish" (field_expression "ppVVar15 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl" (binary_expression "ppVVar15 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_" (binary_expression "ppVVar15 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold" (binary_expression "ppVVar15 = (this->defs_).super__Vector_base<gold::Verdef*,_std" (assignment_expression "ppVVar15 = (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 (ppVVar15 == ppVVar9) {\nLAB_00264760:\n    uVar7 = 0x702;\n    goto LAB_00264764;\n  }" if (parenthesized_expression "(ppVVar15 == ppVVar9)" ( (binary_expression "ppVVar15 == ppVVar9" identifier == identifier) )) (compound_statement "{\nLAB_00264760:\n    uVar7 = 0x702;\n    goto LAB_00264764;\n  }" { (labeled_statement "LAB_00264760:\n    uVar7 = 0x702;" statement_identifier : (expression_statement "uVar7 = 0x702;" (assignment_expression "uVar7 = 0x702" identifier = number_literal) ;)) (goto_statement "goto LAB_00264764;" goto statement_identifier ;) })) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (do_statement "do {\n    pVVar10 = *ppVVar9;\n    ppVVar9 = ppVVar9 + 1;\n    uVar19 = uVar19 + ((int)(pVVar10->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)(pVVar10->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 (ppVVar15 != ppVVar9);" do (compound_statement "{\n    pVVar10 = *ppVVar9;\n    ppVVar9 = ppVVar9 + 1;\n    uVar19 = uVar19 + ((int)(pVVar10->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)(pVVar10->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 "pVVar10 = *ppVVar9;" (assignment_expression "pVVar10 = *ppVVar9" identifier = (pointer_expression "*ppVVar9" * identifier)) ;) (expression_statement "ppVVar9 = ppVVar9 + 1;" (assignment_expression "ppVVar9 = ppVVar9 + 1" identifier = (binary_expression "ppVVar9 + 1" identifier + number_literal)) ;) (expression_statement "uVar19 = uVar19 + ((int)(pVVar10->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)(pVVar10->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 "uVar19 = uVar19 + ((int)(pVVar10->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)(pVVar10->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 "uVar19 + ((int)(pVVar10->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)(pVVar10->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 "uVar19 + ((int)(pVVar10->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)(pVVar10->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)(pVVar10->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)(pVVar10->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)(pVVar10->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)(pVVar10->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)(pVVar10->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)(pVVar10->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)(pVVar10->deps_).\n                            super__Vector_base<std::__cxx11::basic_string<char,_std" (binary_expression "(int)(pVVar10->deps_).\n                            super__Vector_base<std::__cxx11::basic_string<char" (binary_expression "(int)(pVVar10->deps_).\n                            super__Vector_base<std" (cast_expression "(int)(pVVar10->deps_).\n                            super__Vector_base" ( (type_descriptor "int" primitive_type) ) (field_expression "(pVVar10->deps_).\n                            super__Vector_base" (parenthesized_expression "(pVVar10->deps_)" ( (field_expression "pVVar10->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)(pVVar10->deps_).\n                            super__Vector_base<std" (binary_expression "allocator<char>_>_>_>\n                            ._M_impl._M_finish -\n                       (int)(pVVar10->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)(pVVar10->deps_).\n                            super__Vector_base" ( (type_descriptor "int" primitive_type) ) (field_expression "(pVVar10->deps_).\n                            super__Vector_base" (parenthesized_expression "(pVVar10->deps_)" ( (field_expression "pVVar10->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 "(ppVVar15 != ppVVar9)" ( (binary_expression "ppVVar15 != ppVVar9" identifier != identifier) )) ;) (expression_statement "puVar4 = (uchar *)(*(code *)PTR_operator_new___004322dc)(uVar19);" (assignment_expression "puVar4 = (uchar *)(*(code *)PTR_operator_new___004322dc)(uVar19)" identifier = (cast_expression "(uchar *)(*(code *)PTR_operator_new___004322dc)(uVar19)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new___004322dc)(uVar19)" (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 "(uVar19)" ( identifier ))))) ;) (expression_statement "ppVVar15 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl\n             ._M_start;" (field_expression "ppVVar15 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl\n             ._M_start" (field_expression "ppVVar15 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl" (binary_expression "ppVVar15 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_" (binary_expression "ppVVar15 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold" (binary_expression "ppVVar15 = (this->defs_).super__Vector_base<gold::Verdef*,_std" (assignment_expression "ppVVar15 = (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 "ppVVar9 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n            _M_finish;" (field_expression "ppVVar9 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n            _M_finish" (field_expression "ppVVar9 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl" (binary_expression "ppVVar9 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_" (binary_expression "ppVVar9 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold" (binary_expression "ppVVar9 = (this->defs_).super__Vector_base<gold::Verdef*,_std" (assignment_expression "ppVVar9 = (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 (ppVVar15 != ppVVar9) {\n    uVar18 = 0;\n    puVar20 = puVar4;\n    ppVVar21 = ppVVar15;\n    do {\n      pVVar10 = *ppVVar21;\n      uVar18 = uVar18 + 1;\n      puVar20[0] = '\0';\n      puVar20[1] = '\x01';\n      uVar8 = (ushort)pVVar10->is_base_;\n      if (pVVar10->is_weak_ != false) {\n        uVar8 = uVar8 | 2;\n      }\n      if (pVVar10->is_info_ != false) {\n        uVar8 = uVar8 | 4;\n      }\n      uVar16 = (pVVar10->super_Version_base).index_;\n      *(ushort *)(puVar20 + 2) = uVar8;\n      if (uVar16 == 0xffffffff) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_s__0043226c + 0x1a58);\n        goto LAB_00264760;\n      }\n      pbVar17 = (pVVar10->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      uVar11 = 0;\n      pbVar5 = (pVVar10->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      pbVar12 = (byte *)pVVar10->name_;\n      *(short *)(puVar20 + 4) = (short)uVar16;\n      iVar6 = ((int)pbVar5 - (int)pbVar17 >> 3) * -0x55555555 + 1;\n      *(short *)(puVar20 + 6) = (short)iVar6;\n      while (uVar16 = (uint)*pbVar12, uVar16 != 0) {\n        while( true ) {\n          pbVar12 = pbVar12 + 1;\n          uVar11 = uVar16 + uVar11 * 0x10;\n          if ((uVar11 & 0xf0000000) == 0) break;\n          uVar11 = (uVar11 & 0xf0000000) >> 0x18 ^ uVar11 & 0xfffffff;\n          uVar16 = (uint)*pbVar12;\n          if (uVar16 == 0) goto LAB_002645f4;\n        }\n      }\nLAB_002645f4:\n      *(uint *)(puVar20 + 8) = uVar11;\n      puVar20[0xc] = '\0';\n      puVar3 = PTR_get_offset_004323e0;\n      puVar20[0xd] = '\0';\n      puVar20[0xe] = '\0';\n      puVar20[0xf] = '\x14';\n      if (uVar18 < (uint)((int)ppVVar9 - (int)ppVVar15 >> 2)) {\n        iVar6 = iVar6 * 8 + 0x14;\n      }\n      else {\n        iVar6 = 0;\n      }\n      *(int *)(puVar20 + 0x10) = iVar6;\n      uVar7 = (*(code *)puVar3)(dynpool);\n      puVar13 = puVar20 + 0x1c;\n      pbVar17 = (pVVar10->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      pbVar5 = (pVVar10->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      *(undefined4 *)(puVar20 + 0x14) = uVar7;\n      if (pbVar17 == pbVar5) {\n        ppVVar9 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                  _M_impl._M_finish;\n        puVar20[0x18] = '\0';\n        puVar20[0x19] = '\0';\n        puVar20[0x1a] = '\0';\n        puVar20[0x1b] = '\0';\n        if (ppVVar9 == ppVVar21 + 1) goto LAB_002646d4;\n      }\n      else {\n        uVar16 = 0;\n        puVar20[0x18] = '\0';\n        puVar20[0x19] = '\0';\n        puVar20[0x1a] = '\0';\n        puVar20[0x1b] = '\b';\n        puVar20 = puVar13;\n        do {\n          p_Var2 = &pbVar17->_M_dataplus;\n          puVar13 = puVar20 + 8;\n          psVar1 = &pbVar17->_M_string_length;\n          uVar16 = uVar16 + 1;\n          pbVar17 = pbVar17 + 1;\n          uVar7 = (*(code *)PTR_get_offset_with_length_004351bc)(dynpool,p_Var2->_M_p,*psVar1);\n          pbVar14 = (pVVar10->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          pbVar5 = (pVVar10->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          *(undefined4 *)puVar20 = uVar7;\n          uVar7 = 8;\n          if ((uint)(((int)pbVar14 - (int)pbVar5 >> 3) * -0x55555555) <= uVar16) {\n            uVar7 = 0;\n          }\n          *(undefined4 *)(puVar20 + 4) = uVar7;\n          puVar20 = puVar13;\n        } while (pbVar14 != pbVar17);\n        ppVVar9 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                  _M_impl._M_finish;\n        if (ppVVar9 == ppVVar21 + 1) goto LAB_002646d4;\n      }\n      ppVVar21 = ppVVar21 + 1;\n      ppVVar15 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                 _M_impl._M_start;\n      puVar20 = puVar13;\n    } while( true );\n  }" if (parenthesized_expression "(ppVVar15 != ppVVar9)" ( (binary_expression "ppVVar15 != ppVVar9" identifier != identifier) )) (compound_statement "{\n    uVar18 = 0;\n    puVar20 = puVar4;\n    ppVVar21 = ppVVar15;\n    do {\n      pVVar10 = *ppVVar21;\n      uVar18 = uVar18 + 1;\n      puVar20[0] = '\0';\n      puVar20[1] = '\x01';\n      uVar8 = (ushort)pVVar10->is_base_;\n      if (pVVar10->is_weak_ != false) {\n        uVar8 = uVar8 | 2;\n      }\n      if (pVVar10->is_info_ != false) {\n        uVar8 = uVar8 | 4;\n      }\n      uVar16 = (pVVar10->super_Version_base).index_;\n      *(ushort *)(puVar20 + 2) = uVar8;\n      if (uVar16 == 0xffffffff) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_s__0043226c + 0x1a58);\n        goto LAB_00264760;\n      }\n      pbVar17 = (pVVar10->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      uVar11 = 0;\n      pbVar5 = (pVVar10->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      pbVar12 = (byte *)pVVar10->name_;\n      *(short *)(puVar20 + 4) = (short)uVar16;\n      iVar6 = ((int)pbVar5 - (int)pbVar17 >> 3) * -0x55555555 + 1;\n      *(short *)(puVar20 + 6) = (short)iVar6;\n      while (uVar16 = (uint)*pbVar12, uVar16 != 0) {\n        while( true ) {\n          pbVar12 = pbVar12 + 1;\n          uVar11 = uVar16 + uVar11 * 0x10;\n          if ((uVar11 & 0xf0000000) == 0) break;\n          uVar11 = (uVar11 & 0xf0000000) >> 0x18 ^ uVar11 & 0xfffffff;\n          uVar16 = (uint)*pbVar12;\n          if (uVar16 == 0) goto LAB_002645f4;\n        }\n      }\nLAB_002645f4:\n      *(uint *)(puVar20 + 8) = uVar11;\n      puVar20[0xc] = '\0';\n      puVar3 = PTR_get_offset_004323e0;\n      puVar20[0xd] = '\0';\n      puVar20[0xe] = '\0';\n      puVar20[0xf] = '\x14';\n      if (uVar18 < (uint)((int)ppVVar9 - (int)ppVVar15 >> 2)) {\n        iVar6 = iVar6 * 8 + 0x14;\n      }\n      else {\n        iVar6 = 0;\n      }\n      *(int *)(puVar20 + 0x10) = iVar6;\n      uVar7 = (*(code *)puVar3)(dynpool);\n      puVar13 = puVar20 + 0x1c;\n      pbVar17 = (pVVar10->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      pbVar5 = (pVVar10->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      *(undefined4 *)(puVar20 + 0x14) = uVar7;\n      if (pbVar17 == pbVar5) {\n        ppVVar9 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                  _M_impl._M_finish;\n        puVar20[0x18] = '\0';\n        puVar20[0x19] = '\0';\n        puVar20[0x1a] = '\0';\n        puVar20[0x1b] = '\0';\n        if (ppVVar9 == ppVVar21 + 1) goto LAB_002646d4;\n      }\n      else {\n        uVar16 = 0;\n        puVar20[0x18] = '\0';\n        puVar20[0x19] = '\0';\n        puVar20[0x1a] = '\0';\n        puVar20[0x1b] = '\b';\n        puVar20 = puVar13;\n        do {\n          p_Var2 = &pbVar17->_M_dataplus;\n          puVar13 = puVar20 + 8;\n          psVar1 = &pbVar17->_M_string_length;\n          uVar16 = uVar16 + 1;\n          pbVar17 = pbVar17 + 1;\n          uVar7 = (*(code *)PTR_get_offset_with_length_004351bc)(dynpool,p_Var2->_M_p,*psVar1);\n          pbVar14 = (pVVar10->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          pbVar5 = (pVVar10->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          *(undefined4 *)puVar20 = uVar7;\n          uVar7 = 8;\n          if ((uint)(((int)pbVar14 - (int)pbVar5 >> 3) * -0x55555555) <= uVar16) {\n            uVar7 = 0;\n          }\n          *(undefined4 *)(puVar20 + 4) = uVar7;\n          puVar20 = puVar13;\n        } while (pbVar14 != pbVar17);\n        ppVVar9 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                  _M_impl._M_finish;\n        if (ppVVar9 == ppVVar21 + 1) goto LAB_002646d4;\n      }\n      ppVVar21 = ppVVar21 + 1;\n      ppVVar15 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                 _M_impl._M_start;\n      puVar20 = puVar13;\n    } while( true );\n  }" { (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (expression_statement "puVar20 = puVar4;" (assignment_expression "puVar20 = puVar4" identifier = identifier) ;) (expression_statement "ppVVar21 = ppVVar15;" (assignment_expression "ppVVar21 = ppVVar15" identifier = identifier) ;) (do_statement "do {\n      pVVar10 = *ppVVar21;\n      uVar18 = uVar18 + 1;\n      puVar20[0] = '\0';\n      puVar20[1] = '\x01';\n      uVar8 = (ushort)pVVar10->is_base_;\n      if (pVVar10->is_weak_ != false) {\n        uVar8 = uVar8 | 2;\n      }\n      if (pVVar10->is_info_ != false) {\n        uVar8 = uVar8 | 4;\n      }\n      uVar16 = (pVVar10->super_Version_base).index_;\n      *(ushort *)(puVar20 + 2) = uVar8;\n      if (uVar16 == 0xffffffff) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_s__0043226c + 0x1a58);\n        goto LAB_00264760;\n      }\n      pbVar17 = (pVVar10->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      uVar11 = 0;\n      pbVar5 = (pVVar10->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      pbVar12 = (byte *)pVVar10->name_;\n      *(short *)(puVar20 + 4) = (short)uVar16;\n      iVar6 = ((int)pbVar5 - (int)pbVar17 >> 3) * -0x55555555 + 1;\n      *(short *)(puVar20 + 6) = (short)iVar6;\n      while (uVar16 = (uint)*pbVar12, uVar16 != 0) {\n        while( true ) {\n          pbVar12 = pbVar12 + 1;\n          uVar11 = uVar16 + uVar11 * 0x10;\n          if ((uVar11 & 0xf0000000) == 0) break;\n          uVar11 = (uVar11 & 0xf0000000) >> 0x18 ^ uVar11 & 0xfffffff;\n          uVar16 = (uint)*pbVar12;\n          if (uVar16 == 0) goto LAB_002645f4;\n        }\n      }\nLAB_002645f4:\n      *(uint *)(puVar20 + 8) = uVar11;\n      puVar20[0xc] = '\0';\n      puVar3 = PTR_get_offset_004323e0;\n      puVar20[0xd] = '\0';\n      puVar20[0xe] = '\0';\n      puVar20[0xf] = '\x14';\n      if (uVar18 < (uint)((int)ppVVar9 - (int)ppVVar15 >> 2)) {\n        iVar6 = iVar6 * 8 + 0x14;\n      }\n      else {\n        iVar6 = 0;\n      }\n      *(int *)(puVar20 + 0x10) = iVar6;\n      uVar7 = (*(code *)puVar3)(dynpool);\n      puVar13 = puVar20 + 0x1c;\n      pbVar17 = (pVVar10->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      pbVar5 = (pVVar10->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      *(undefined4 *)(puVar20 + 0x14) = uVar7;\n      if (pbVar17 == pbVar5) {\n        ppVVar9 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                  _M_impl._M_finish;\n        puVar20[0x18] = '\0';\n        puVar20[0x19] = '\0';\n        puVar20[0x1a] = '\0';\n        puVar20[0x1b] = '\0';\n        if (ppVVar9 == ppVVar21 + 1) goto LAB_002646d4;\n      }\n      else {\n        uVar16 = 0;\n        puVar20[0x18] = '\0';\n        puVar20[0x19] = '\0';\n        puVar20[0x1a] = '\0';\n        puVar20[0x1b] = '\b';\n        puVar20 = puVar13;\n        do {\n          p_Var2 = &pbVar17->_M_dataplus;\n          puVar13 = puVar20 + 8;\n          psVar1 = &pbVar17->_M_string_length;\n          uVar16 = uVar16 + 1;\n          pbVar17 = pbVar17 + 1;\n          uVar7 = (*(code *)PTR_get_offset_with_length_004351bc)(dynpool,p_Var2->_M_p,*psVar1);\n          pbVar14 = (pVVar10->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          pbVar5 = (pVVar10->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          *(undefined4 *)puVar20 = uVar7;\n          uVar7 = 8;\n          if ((uint)(((int)pbVar14 - (int)pbVar5 >> 3) * -0x55555555) <= uVar16) {\n            uVar7 = 0;\n          }\n          *(undefined4 *)(puVar20 + 4) = uVar7;\n          puVar20 = puVar13;\n        } while (pbVar14 != pbVar17);\n        ppVVar9 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                  _M_impl._M_finish;\n        if (ppVVar9 == ppVVar21 + 1) goto LAB_002646d4;\n      }\n      ppVVar21 = ppVVar21 + 1;\n      ppVVar15 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                 _M_impl._M_start;\n      puVar20 = puVar13;\n    } while( true );" do (compound_statement "{\n      pVVar10 = *ppVVar21;\n      uVar18 = uVar18 + 1;\n      puVar20[0] = '\0';\n      puVar20[1] = '\x01';\n      uVar8 = (ushort)pVVar10->is_base_;\n      if (pVVar10->is_weak_ != false) {\n        uVar8 = uVar8 | 2;\n      }\n      if (pVVar10->is_info_ != false) {\n        uVar8 = uVar8 | 4;\n      }\n      uVar16 = (pVVar10->super_Version_base).index_;\n      *(ushort *)(puVar20 + 2) = uVar8;\n      if (uVar16 == 0xffffffff) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_s__0043226c + 0x1a58);\n        goto LAB_00264760;\n      }\n      pbVar17 = (pVVar10->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      uVar11 = 0;\n      pbVar5 = (pVVar10->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      pbVar12 = (byte *)pVVar10->name_;\n      *(short *)(puVar20 + 4) = (short)uVar16;\n      iVar6 = ((int)pbVar5 - (int)pbVar17 >> 3) * -0x55555555 + 1;\n      *(short *)(puVar20 + 6) = (short)iVar6;\n      while (uVar16 = (uint)*pbVar12, uVar16 != 0) {\n        while( true ) {\n          pbVar12 = pbVar12 + 1;\n          uVar11 = uVar16 + uVar11 * 0x10;\n          if ((uVar11 & 0xf0000000) == 0) break;\n          uVar11 = (uVar11 & 0xf0000000) >> 0x18 ^ uVar11 & 0xfffffff;\n          uVar16 = (uint)*pbVar12;\n          if (uVar16 == 0) goto LAB_002645f4;\n        }\n      }\nLAB_002645f4:\n      *(uint *)(puVar20 + 8) = uVar11;\n      puVar20[0xc] = '\0';\n      puVar3 = PTR_get_offset_004323e0;\n      puVar20[0xd] = '\0';\n      puVar20[0xe] = '\0';\n      puVar20[0xf] = '\x14';\n      if (uVar18 < (uint)((int)ppVVar9 - (int)ppVVar15 >> 2)) {\n        iVar6 = iVar6 * 8 + 0x14;\n      }\n      else {\n        iVar6 = 0;\n      }\n      *(int *)(puVar20 + 0x10) = iVar6;\n      uVar7 = (*(code *)puVar3)(dynpool);\n      puVar13 = puVar20 + 0x1c;\n      pbVar17 = (pVVar10->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      pbVar5 = (pVVar10->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      *(undefined4 *)(puVar20 + 0x14) = uVar7;\n      if (pbVar17 == pbVar5) {\n        ppVVar9 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                  _M_impl._M_finish;\n        puVar20[0x18] = '\0';\n        puVar20[0x19] = '\0';\n        puVar20[0x1a] = '\0';\n        puVar20[0x1b] = '\0';\n        if (ppVVar9 == ppVVar21 + 1) goto LAB_002646d4;\n      }\n      else {\n        uVar16 = 0;\n        puVar20[0x18] = '\0';\n        puVar20[0x19] = '\0';\n        puVar20[0x1a] = '\0';\n        puVar20[0x1b] = '\b';\n        puVar20 = puVar13;\n        do {\n          p_Var2 = &pbVar17->_M_dataplus;\n          puVar13 = puVar20 + 8;\n          psVar1 = &pbVar17->_M_string_length;\n          uVar16 = uVar16 + 1;\n          pbVar17 = pbVar17 + 1;\n          uVar7 = (*(code *)PTR_get_offset_with_length_004351bc)(dynpool,p_Var2->_M_p,*psVar1);\n          pbVar14 = (pVVar10->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          pbVar5 = (pVVar10->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          *(undefined4 *)puVar20 = uVar7;\n          uVar7 = 8;\n          if ((uint)(((int)pbVar14 - (int)pbVar5 >> 3) * -0x55555555) <= uVar16) {\n            uVar7 = 0;\n          }\n          *(undefined4 *)(puVar20 + 4) = uVar7;\n          puVar20 = puVar13;\n        } while (pbVar14 != pbVar17);\n        ppVVar9 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                  _M_impl._M_finish;\n        if (ppVVar9 == ppVVar21 + 1) goto LAB_002646d4;\n      }\n      ppVVar21 = ppVVar21 + 1;\n      ppVVar15 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                 _M_impl._M_start;\n      puVar20 = puVar13;\n    }" { (expression_statement "pVVar10 = *ppVVar21;" (assignment_expression "pVVar10 = *ppVVar21" identifier = (pointer_expression "*ppVVar21" * identifier)) ;) (expression_statement "uVar18 = uVar18 + 1;" (assignment_expression "uVar18 = uVar18 + 1" identifier = (binary_expression "uVar18 + 1" identifier + number_literal)) ;) (expression_statement "puVar20[0] = '\0';" (assignment_expression "puVar20[0] = '\0'" (subscript_expression "puVar20[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar20[1] = '\x01';" (assignment_expression "puVar20[1] = '\x01'" (subscript_expression "puVar20[1]" identifier [ number_literal ]) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "uVar8 = (ushort)pVVar10->is_base_;" (assignment_expression "uVar8 = (ushort)pVVar10->is_base_" identifier = (cast_expression "(ushort)pVVar10->is_base_" ( (type_descriptor "ushort" type_identifier) ) (field_expression "pVVar10->is_base_" identifier -> field_identifier))) ;) (if_statement "if (pVVar10->is_weak_ != false) {\n        uVar8 = uVar8 | 2;\n      }" if (parenthesized_expression "(pVVar10->is_weak_ != false)" ( (binary_expression "pVVar10->is_weak_ != false" (field_expression "pVVar10->is_weak_" identifier -> field_identifier) != false) )) (compound_statement "{\n        uVar8 = uVar8 | 2;\n      }" { (expression_statement "uVar8 = uVar8 | 2;" (assignment_expression "uVar8 = uVar8 | 2" identifier = (binary_expression "uVar8 | 2" identifier | number_literal)) ;) })) (if_statement "if (pVVar10->is_info_ != false) {\n        uVar8 = uVar8 | 4;\n      }" if (parenthesized_expression "(pVVar10->is_info_ != false)" ( (binary_expression "pVVar10->is_info_ != false" (field_expression "pVVar10->is_info_" identifier -> field_identifier) != false) )) (compound_statement "{\n        uVar8 = uVar8 | 4;\n      }" { (expression_statement "uVar8 = uVar8 | 4;" (assignment_expression "uVar8 = uVar8 | 4" identifier = (binary_expression "uVar8 | 4" identifier | number_literal)) ;) })) (expression_statement "uVar16 = (pVVar10->super_Version_base).index_;" (assignment_expression "uVar16 = (pVVar10->super_Version_base).index_" identifier = (field_expression "(pVVar10->super_Version_base).index_" (parenthesized_expression "(pVVar10->super_Version_base)" ( (field_expression "pVVar10->super_Version_base" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "*(ushort *)(puVar20 + 2) = uVar8;" (assignment_expression "*(ushort *)(puVar20 + 2) = uVar8" (pointer_expression "*(ushort *)(puVar20 + 2)" * (cast_expression "(ushort *)(puVar20 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 2)" ( (binary_expression "puVar20 + 2" identifier + number_literal) )))) = identifier) ;) (if_statement "if (uVar16 == 0xffffffff) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_s__0043226c + 0x1a58);\n        goto LAB_00264760;\n      }" if (parenthesized_expression "(uVar16 == 0xffffffff)" ( (binary_expression "uVar16 == 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_00264760;\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_00264760;" goto statement_identifier ;) })) (ERROR "pbVar17 = (pVVar10->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 "pbVar17 = (pVVar10->deps_).\n                super__Vector_base<std" identifier = (binary_expression "(pVVar10->deps_).\n                super__Vector_base<std" (field_expression "(pVVar10->deps_).\n                super__Vector_base" (parenthesized_expression "(pVVar10->deps_)" ( (field_expression "pVVar10->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 "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (ERROR "pbVar5 = (pVVar10->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 "pbVar5 = (pVVar10->deps_).\n               super__Vector_base<std" identifier = (binary_expression "(pVVar10->deps_).\n               super__Vector_base<std" (field_expression "(pVVar10->deps_).\n               super__Vector_base" (parenthesized_expression "(pVVar10->deps_)" ( (field_expression "pVVar10->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 "pbVar12 = (byte *)pVVar10->name_;" (assignment_expression "pbVar12 = (byte *)pVVar10->name_" identifier = (cast_expression "(byte *)pVVar10->name_" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pVVar10->name_" identifier -> field_identifier))) ;) (expression_statement "*(short *)(puVar20 + 4) = (short)uVar16;" (assignment_expression "*(short *)(puVar20 + 4) = (short)uVar16" (pointer_expression "*(short *)(puVar20 + 4)" * (cast_expression "(short *)(puVar20 + 4)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 4)" ( (binary_expression "puVar20 + 4" identifier + number_literal) )))) = (cast_expression "(short)uVar16" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (expression_statement "iVar6 = ((int)pbVar5 - (int)pbVar17 >> 3) * -0x55555555 + 1;" (assignment_expression "iVar6 = ((int)pbVar5 - (int)pbVar17 >> 3) * -0x55555555 + 1" identifier = (binary_expression "((int)pbVar5 - (int)pbVar17 >> 3) * -0x55555555 + 1" (binary_expression "((int)pbVar5 - (int)pbVar17 >> 3) * -0x55555555" (parenthesized_expression "((int)pbVar5 - (int)pbVar17 >> 3)" ( (binary_expression "(int)pbVar5 - (int)pbVar17 >> 3" (binary_expression "(int)pbVar5 - (int)pbVar17" (cast_expression "(int)pbVar5" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar17" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) )) * number_literal) + number_literal)) ;) (expression_statement "*(short *)(puVar20 + 6) = (short)iVar6;" (assignment_expression "*(short *)(puVar20 + 6) = (short)iVar6" (pointer_expression "*(short *)(puVar20 + 6)" * (cast_expression "(short *)(puVar20 + 6)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 6)" ( (binary_expression "puVar20 + 6" identifier + number_literal) )))) = (cast_expression "(short)iVar6" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (while_statement "while (uVar16 = (uint)*pbVar12, uVar16 != 0) {\n        while( true ) {\n          pbVar12 = pbVar12 + 1;\n          uVar11 = uVar16 + uVar11 * 0x10;\n          if ((uVar11 & 0xf0000000) == 0) break;\n          uVar11 = (uVar11 & 0xf0000000) >> 0x18 ^ uVar11 & 0xfffffff;\n          uVar16 = (uint)*pbVar12;\n          if (uVar16 == 0) goto LAB_002645f4;\n        }\n      }" while (parenthesized_expression "(uVar16 = (uint)*pbVar12, uVar16 != 0)" ( (comma_expression "uVar16 = (uint)*pbVar12, uVar16 != 0" (assignment_expression "uVar16 = (uint)*pbVar12" identifier = (binary_expression "(uint)*pbVar12" (parenthesized_expression "(uint)" ( identifier )) * identifier)) , (binary_expression "uVar16 != 0" identifier != number_literal)) )) (compound_statement "{\n        while( true ) {\n          pbVar12 = pbVar12 + 1;\n          uVar11 = uVar16 + uVar11 * 0x10;\n          if ((uVar11 & 0xf0000000) == 0) break;\n          uVar11 = (uVar11 & 0xf0000000) >> 0x18 ^ uVar11 & 0xfffffff;\n          uVar16 = (uint)*pbVar12;\n          if (uVar16 == 0) goto LAB_002645f4;\n        }\n      }" { (while_statement "while( true ) {\n          pbVar12 = pbVar12 + 1;\n          uVar11 = uVar16 + uVar11 * 0x10;\n          if ((uVar11 & 0xf0000000) == 0) break;\n          uVar11 = (uVar11 & 0xf0000000) >> 0x18 ^ uVar11 & 0xfffffff;\n          uVar16 = (uint)*pbVar12;\n          if (uVar16 == 0) goto LAB_002645f4;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          pbVar12 = pbVar12 + 1;\n          uVar11 = uVar16 + uVar11 * 0x10;\n          if ((uVar11 & 0xf0000000) == 0) break;\n          uVar11 = (uVar11 & 0xf0000000) >> 0x18 ^ uVar11 & 0xfffffff;\n          uVar16 = (uint)*pbVar12;\n          if (uVar16 == 0) goto LAB_002645f4;\n        }" { (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) (expression_statement "uVar11 = uVar16 + uVar11 * 0x10;" (assignment_expression "uVar11 = uVar16 + uVar11 * 0x10" identifier = (binary_expression "uVar16 + uVar11 * 0x10" identifier + (binary_expression "uVar11 * 0x10" identifier * number_literal))) ;) (if_statement "if ((uVar11 & 0xf0000000) == 0) break;" if (parenthesized_expression "((uVar11 & 0xf0000000) == 0)" ( (binary_expression "(uVar11 & 0xf0000000) == 0" (parenthesized_expression "(uVar11 & 0xf0000000)" ( (binary_expression "uVar11 & 0xf0000000" identifier & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar11 = (uVar11 & 0xf0000000) >> 0x18 ^ uVar11 & 0xfffffff;" (assignment_expression "uVar11 = (uVar11 & 0xf0000000) >> 0x18 ^ uVar11 & 0xfffffff" identifier = (binary_expression "(uVar11 & 0xf0000000) >> 0x18 ^ uVar11 & 0xfffffff" (binary_expression "(uVar11 & 0xf0000000) >> 0x18" (parenthesized_expression "(uVar11 & 0xf0000000)" ( (binary_expression "uVar11 & 0xf0000000" identifier & number_literal) )) >> number_literal) ^ (binary_expression "uVar11 & 0xfffffff" identifier & number_literal))) ;) (expression_statement "uVar16 = (uint)*pbVar12;" (assignment_expression "uVar16 = (uint)*pbVar12" identifier = (binary_expression "(uint)*pbVar12" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (if_statement "if (uVar16 == 0) goto LAB_002645f4;" if (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) (goto_statement "goto LAB_002645f4;" goto statement_identifier ;)) })) })) (labeled_statement "LAB_002645f4:\n      *(uint *)(puVar20 + 8) = uVar11;" statement_identifier : (expression_statement "*(uint *)(puVar20 + 8) = uVar11;" (assignment_expression "*(uint *)(puVar20 + 8) = uVar11" (pointer_expression "*(uint *)(puVar20 + 8)" * (cast_expression "(uint *)(puVar20 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 8)" ( (binary_expression "puVar20 + 8" identifier + number_literal) )))) = identifier) ;)) (expression_statement "puVar20[0xc] = '\0';" (assignment_expression "puVar20[0xc] = '\0'" (subscript_expression "puVar20[0xc]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar3 = PTR_get_offset_004323e0;" (assignment_expression "puVar3 = PTR_get_offset_004323e0" identifier = identifier) ;) (expression_statement "puVar20[0xd] = '\0';" (assignment_expression "puVar20[0xd] = '\0'" (subscript_expression "puVar20[0xd]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar20[0xe] = '\0';" (assignment_expression "puVar20[0xe] = '\0'" (subscript_expression "puVar20[0xe]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar20[0xf] = '\x14';" (assignment_expression "puVar20[0xf] = '\x14'" (subscript_expression "puVar20[0xf]" identifier [ number_literal ]) = (char_literal "'\x14'" ' escape_sequence ')) ;) (if_statement "if (uVar18 < (uint)((int)ppVVar9 - (int)ppVVar15 >> 2)) {\n        iVar6 = iVar6 * 8 + 0x14;\n      }\n      else {\n        iVar6 = 0;\n      }" if (parenthesized_expression "(uVar18 < (uint)((int)ppVVar9 - (int)ppVVar15 >> 2))" ( (binary_expression "uVar18 < (uint)((int)ppVVar9 - (int)ppVVar15 >> 2)" identifier < (call_expression "(uint)((int)ppVVar9 - (int)ppVVar15 >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)ppVVar9 - (int)ppVVar15 >> 2)" ( (binary_expression "(int)ppVVar9 - (int)ppVVar15 >> 2" (binary_expression "(int)ppVVar9 - (int)ppVVar15" (cast_expression "(int)ppVVar9" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)ppVVar15" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) )))) )) (compound_statement "{\n        iVar6 = iVar6 * 8 + 0x14;\n      }" { (expression_statement "iVar6 = iVar6 * 8 + 0x14;" (assignment_expression "iVar6 = iVar6 * 8 + 0x14" identifier = (binary_expression "iVar6 * 8 + 0x14" (binary_expression "iVar6 * 8" identifier * 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 "*(int *)(puVar20 + 0x10) = iVar6;" (assignment_expression "*(int *)(puVar20 + 0x10) = iVar6" (pointer_expression "*(int *)(puVar20 + 0x10)" * (cast_expression "(int *)(puVar20 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x10)" ( (binary_expression "puVar20 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar7 = (*(code *)puVar3)(dynpool);" (assignment_expression "uVar7 = (*(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 "puVar13 = puVar20 + 0x1c;" (assignment_expression "puVar13 = puVar20 + 0x1c" identifier = (binary_expression "puVar20 + 0x1c" identifier + number_literal)) ;) (ERROR "pbVar17 = (pVVar10->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 "pbVar17 = (pVVar10->deps_).\n                super__Vector_base<std" identifier = (binary_expression "(pVVar10->deps_).\n                super__Vector_base<std" (field_expression "(pVVar10->deps_).\n                super__Vector_base" (parenthesized_expression "(pVVar10->deps_)" ( (field_expression "pVVar10->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 "pbVar5 = (pVVar10->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 "pbVar5 = (pVVar10->deps_).\n               super__Vector_base<std" identifier = (binary_expression "(pVVar10->deps_).\n               super__Vector_base<std" (field_expression "(pVVar10->deps_).\n               super__Vector_base" (parenthesized_expression "(pVVar10->deps_)" ( (field_expression "pVVar10->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 "*(undefined4 *)(puVar20 + 0x14) = uVar7;" (assignment_expression "*(undefined4 *)(puVar20 + 0x14) = uVar7" (pointer_expression "*(undefined4 *)(puVar20 + 0x14)" * (cast_expression "(undefined4 *)(puVar20 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x14)" ( (binary_expression "puVar20 + 0x14" identifier + number_literal) )))) = identifier) ;) (if_statement "if (pbVar17 == pbVar5) {\n        ppVVar9 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                  _M_impl._M_finish;\n        puVar20[0x18] = '\0';\n        puVar20[0x19] = '\0';\n        puVar20[0x1a] = '\0';\n        puVar20[0x1b] = '\0';\n        if (ppVVar9 == ppVVar21 + 1) goto LAB_002646d4;\n      }\n      else {\n        uVar16 = 0;\n        puVar20[0x18] = '\0';\n        puVar20[0x19] = '\0';\n        puVar20[0x1a] = '\0';\n        puVar20[0x1b] = '\b';\n        puVar20 = puVar13;\n        do {\n          p_Var2 = &pbVar17->_M_dataplus;\n          puVar13 = puVar20 + 8;\n          psVar1 = &pbVar17->_M_string_length;\n          uVar16 = uVar16 + 1;\n          pbVar17 = pbVar17 + 1;\n          uVar7 = (*(code *)PTR_get_offset_with_length_004351bc)(dynpool,p_Var2->_M_p,*psVar1);\n          pbVar14 = (pVVar10->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          pbVar5 = (pVVar10->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          *(undefined4 *)puVar20 = uVar7;\n          uVar7 = 8;\n          if ((uint)(((int)pbVar14 - (int)pbVar5 >> 3) * -0x55555555) <= uVar16) {\n            uVar7 = 0;\n          }\n          *(undefined4 *)(puVar20 + 4) = uVar7;\n          puVar20 = puVar13;\n        } while (pbVar14 != pbVar17);\n        ppVVar9 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                  _M_impl._M_finish;\n        if (ppVVar9 == ppVVar21 + 1) goto LAB_002646d4;\n      }" if (parenthesized_expression "(pbVar17 == pbVar5)" ( (binary_expression "pbVar17 == pbVar5" identifier == identifier) )) (compound_statement "{\n        ppVVar9 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                  _M_impl._M_finish;\n        puVar20[0x18] = '\0';\n        puVar20[0x19] = '\0';\n        puVar20[0x1a] = '\0';\n        puVar20[0x1b] = '\0';\n        if (ppVVar9 == ppVVar21 + 1) goto LAB_002646d4;\n      }" { (expression_statement "ppVVar9 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                  _M_impl._M_finish;" (field_expression "ppVVar9 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                  _M_impl._M_finish" (field_expression "ppVVar9 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                  _M_impl" (binary_expression "ppVVar9 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_" (binary_expression "ppVVar9 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold" (binary_expression "ppVVar9 = (this->defs_).super__Vector_base<gold::Verdef*,_std" (assignment_expression "ppVVar9 = (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 "puVar20[0x18] = '\0';" (assignment_expression "puVar20[0x18] = '\0'" (subscript_expression "puVar20[0x18]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar20[0x19] = '\0';" (assignment_expression "puVar20[0x19] = '\0'" (subscript_expression "puVar20[0x19]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar20[0x1a] = '\0';" (assignment_expression "puVar20[0x1a] = '\0'" (subscript_expression "puVar20[0x1a]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar20[0x1b] = '\0';" (assignment_expression "puVar20[0x1b] = '\0'" (subscript_expression "puVar20[0x1b]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (ppVVar9 == ppVVar21 + 1) goto LAB_002646d4;" if (parenthesized_expression "(ppVVar9 == ppVVar21 + 1)" ( (binary_expression "ppVVar9 == ppVVar21 + 1" identifier == (binary_expression "ppVVar21 + 1" identifier + number_literal)) )) (goto_statement "goto LAB_002646d4;" goto statement_identifier ;)) }) (else_clause "else {\n        uVar16 = 0;\n        puVar20[0x18] = '\0';\n        puVar20[0x19] = '\0';\n        puVar20[0x1a] = '\0';\n        puVar20[0x1b] = '\b';\n        puVar20 = puVar13;\n        do {\n          p_Var2 = &pbVar17->_M_dataplus;\n          puVar13 = puVar20 + 8;\n          psVar1 = &pbVar17->_M_string_length;\n          uVar16 = uVar16 + 1;\n          pbVar17 = pbVar17 + 1;\n          uVar7 = (*(code *)PTR_get_offset_with_length_004351bc)(dynpool,p_Var2->_M_p,*psVar1);\n          pbVar14 = (pVVar10->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          pbVar5 = (pVVar10->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          *(undefined4 *)puVar20 = uVar7;\n          uVar7 = 8;\n          if ((uint)(((int)pbVar14 - (int)pbVar5 >> 3) * -0x55555555) <= uVar16) {\n            uVar7 = 0;\n          }\n          *(undefined4 *)(puVar20 + 4) = uVar7;\n          puVar20 = puVar13;\n        } while (pbVar14 != pbVar17);\n        ppVVar9 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                  _M_impl._M_finish;\n        if (ppVVar9 == ppVVar21 + 1) goto LAB_002646d4;\n      }" else (compound_statement "{\n        uVar16 = 0;\n        puVar20[0x18] = '\0';\n        puVar20[0x19] = '\0';\n        puVar20[0x1a] = '\0';\n        puVar20[0x1b] = '\b';\n        puVar20 = puVar13;\n        do {\n          p_Var2 = &pbVar17->_M_dataplus;\n          puVar13 = puVar20 + 8;\n          psVar1 = &pbVar17->_M_string_length;\n          uVar16 = uVar16 + 1;\n          pbVar17 = pbVar17 + 1;\n          uVar7 = (*(code *)PTR_get_offset_with_length_004351bc)(dynpool,p_Var2->_M_p,*psVar1);\n          pbVar14 = (pVVar10->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          pbVar5 = (pVVar10->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          *(undefined4 *)puVar20 = uVar7;\n          uVar7 = 8;\n          if ((uint)(((int)pbVar14 - (int)pbVar5 >> 3) * -0x55555555) <= uVar16) {\n            uVar7 = 0;\n          }\n          *(undefined4 *)(puVar20 + 4) = uVar7;\n          puVar20 = puVar13;\n        } while (pbVar14 != pbVar17);\n        ppVVar9 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                  _M_impl._M_finish;\n        if (ppVVar9 == ppVVar21 + 1) goto LAB_002646d4;\n      }" { (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (expression_statement "puVar20[0x18] = '\0';" (assignment_expression "puVar20[0x18] = '\0'" (subscript_expression "puVar20[0x18]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar20[0x19] = '\0';" (assignment_expression "puVar20[0x19] = '\0'" (subscript_expression "puVar20[0x19]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar20[0x1a] = '\0';" (assignment_expression "puVar20[0x1a] = '\0'" (subscript_expression "puVar20[0x1a]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar20[0x1b] = '\b';" (assignment_expression "puVar20[0x1b] = '\b'" (subscript_expression "puVar20[0x1b]" identifier [ number_literal ]) = (char_literal "'\b'" ' escape_sequence ')) ;) (expression_statement "puVar20 = puVar13;" (assignment_expression "puVar20 = puVar13" identifier = identifier) ;) (do_statement "do {\n          p_Var2 = &pbVar17->_M_dataplus;\n          puVar13 = puVar20 + 8;\n          psVar1 = &pbVar17->_M_string_length;\n          uVar16 = uVar16 + 1;\n          pbVar17 = pbVar17 + 1;\n          uVar7 = (*(code *)PTR_get_offset_with_length_004351bc)(dynpool,p_Var2->_M_p,*psVar1);\n          pbVar14 = (pVVar10->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          pbVar5 = (pVVar10->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          *(undefined4 *)puVar20 = uVar7;\n          uVar7 = 8;\n          if ((uint)(((int)pbVar14 - (int)pbVar5 >> 3) * -0x55555555) <= uVar16) {\n            uVar7 = 0;\n          }\n          *(undefined4 *)(puVar20 + 4) = uVar7;\n          puVar20 = puVar13;\n        } while (pbVar14 != pbVar17);" do (compound_statement "{\n          p_Var2 = &pbVar17->_M_dataplus;\n          puVar13 = puVar20 + 8;\n          psVar1 = &pbVar17->_M_string_length;\n          uVar16 = uVar16 + 1;\n          pbVar17 = pbVar17 + 1;\n          uVar7 = (*(code *)PTR_get_offset_with_length_004351bc)(dynpool,p_Var2->_M_p,*psVar1);\n          pbVar14 = (pVVar10->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          pbVar5 = (pVVar10->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          *(undefined4 *)puVar20 = uVar7;\n          uVar7 = 8;\n          if ((uint)(((int)pbVar14 - (int)pbVar5 >> 3) * -0x55555555) <= uVar16) {\n            uVar7 = 0;\n          }\n          *(undefined4 *)(puVar20 + 4) = uVar7;\n          puVar20 = puVar13;\n        }" { (expression_statement "p_Var2 = &pbVar17->_M_dataplus;" (assignment_expression "p_Var2 = &pbVar17->_M_dataplus" identifier = (pointer_expression "&pbVar17->_M_dataplus" & (field_expression "pbVar17->_M_dataplus" identifier -> field_identifier))) ;) (expression_statement "puVar13 = puVar20 + 8;" (assignment_expression "puVar13 = puVar20 + 8" identifier = (binary_expression "puVar20 + 8" identifier + number_literal)) ;) (expression_statement "psVar1 = &pbVar17->_M_string_length;" (assignment_expression "psVar1 = &pbVar17->_M_string_length" identifier = (pointer_expression "&pbVar17->_M_string_length" & (field_expression "pbVar17->_M_string_length" identifier -> field_identifier))) ;) (expression_statement "uVar16 = uVar16 + 1;" (assignment_expression "uVar16 = uVar16 + 1" identifier = (binary_expression "uVar16 + 1" identifier + number_literal)) ;) (expression_statement "pbVar17 = pbVar17 + 1;" (assignment_expression "pbVar17 = pbVar17 + 1" identifier = (binary_expression "pbVar17 + 1" identifier + number_literal)) ;) (expression_statement "uVar7 = (*(code *)PTR_get_offset_with_length_004351bc)(dynpool,p_Var2->_M_p,*psVar1);" (assignment_expression "uVar7 = (*(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 "pbVar14 = (pVVar10->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 "pbVar14 = (pVVar10->deps_).\n                    super__Vector_base<std" identifier = (binary_expression "(pVVar10->deps_).\n                    super__Vector_base<std" (field_expression "(pVVar10->deps_).\n                    super__Vector_base" (parenthesized_expression "(pVVar10->deps_)" ( (field_expression "pVVar10->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 "pbVar5 = (pVVar10->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 "pbVar5 = (pVVar10->deps_).\n                   super__Vector_base<std" identifier = (binary_expression "(pVVar10->deps_).\n                   super__Vector_base<std" (field_expression "(pVVar10->deps_).\n                   super__Vector_base" (parenthesized_expression "(pVVar10->deps_)" ( (field_expression "pVVar10->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 "*(undefined4 *)puVar20 = uVar7;" (assignment_expression "*(undefined4 *)puVar20 = uVar7" (pointer_expression "*(undefined4 *)puVar20" * (cast_expression "(undefined4 *)puVar20" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "uVar7 = 8;" (assignment_expression "uVar7 = 8" identifier = number_literal) ;) (if_statement "if ((uint)(((int)pbVar14 - (int)pbVar5 >> 3) * -0x55555555) <= uVar16) {\n            uVar7 = 0;\n          }" if (parenthesized_expression "((uint)(((int)pbVar14 - (int)pbVar5 >> 3) * -0x55555555) <= uVar16)" ( (binary_expression "(uint)(((int)pbVar14 - (int)pbVar5 >> 3) * -0x55555555) <= uVar16" (call_expression "(uint)(((int)pbVar14 - (int)pbVar5 >> 3) * -0x55555555)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(((int)pbVar14 - (int)pbVar5 >> 3) * -0x55555555)" ( (binary_expression "((int)pbVar14 - (int)pbVar5 >> 3) * -0x55555555" (parenthesized_expression "((int)pbVar14 - (int)pbVar5 >> 3)" ( (binary_expression "(int)pbVar14 - (int)pbVar5 >> 3" (binary_expression "(int)pbVar14 - (int)pbVar5" (cast_expression "(int)pbVar14" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar5" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) )) * number_literal) ))) <= identifier) )) (compound_statement "{\n            uVar7 = 0;\n          }" { (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) })) (expression_statement "*(undefined4 *)(puVar20 + 4) = uVar7;" (assignment_expression "*(undefined4 *)(puVar20 + 4) = uVar7" (pointer_expression "*(undefined4 *)(puVar20 + 4)" * (cast_expression "(undefined4 *)(puVar20 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 4)" ( (binary_expression "puVar20 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar20 = puVar13;" (assignment_expression "puVar20 = puVar13" identifier = identifier) ;) }) while (parenthesized_expression "(pbVar14 != pbVar17)" ( (binary_expression "pbVar14 != pbVar17" identifier != identifier) )) ;) (expression_statement "ppVVar9 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                  _M_impl._M_finish;" (field_expression "ppVVar9 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                  _M_impl._M_finish" (field_expression "ppVVar9 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                  _M_impl" (binary_expression "ppVVar9 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_" (binary_expression "ppVVar9 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold" (binary_expression "ppVVar9 = (this->defs_).super__Vector_base<gold::Verdef*,_std" (assignment_expression "ppVVar9 = (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 (ppVVar9 == ppVVar21 + 1) goto LAB_002646d4;" if (parenthesized_expression "(ppVVar9 == ppVVar21 + 1)" ( (binary_expression "ppVVar9 == ppVVar21 + 1" identifier == (binary_expression "ppVVar21 + 1" identifier + number_literal)) )) (goto_statement "goto LAB_002646d4;" goto statement_identifier ;)) }))) (expression_statement "ppVVar21 = ppVVar21 + 1;" (assignment_expression "ppVVar21 = ppVVar21 + 1" identifier = (binary_expression "ppVVar21 + 1" identifier + number_literal)) ;) (expression_statement "ppVVar15 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                 _M_impl._M_start;" (field_expression "ppVVar15 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                 _M_impl._M_start" (field_expression "ppVVar15 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                 _M_impl" (binary_expression "ppVVar15 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_" (binary_expression "ppVVar15 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold" (binary_expression "ppVVar15 = (this->defs_).super__Vector_base<gold::Verdef*,_std" (assignment_expression "ppVVar15 = (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 "puVar20 = puVar13;" (assignment_expression "puVar20 = puVar13" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (labeled_statement "LAB_002646dc:\n  uVar7 = 0x71c;" statement_identifier : (expression_statement "uVar7 = 0x71c;" (assignment_expression "uVar7 = 0x71c" identifier = number_literal) ;)) (if_statement "if (uVar19 == uVar18) {\n    ppVVar9 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n              _M_impl._M_start;\n    *pp = puVar4;\n    *psize = uVar19;\n    *pentries = (int)ppVVar15 - (int)ppVVar9 >> 2;\n    return;\n  }" if (parenthesized_expression "(uVar19 == uVar18)" ( (binary_expression "uVar19 == uVar18" identifier == identifier) )) (compound_statement "{\n    ppVVar9 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n              _M_impl._M_start;\n    *pp = puVar4;\n    *psize = uVar19;\n    *pentries = (int)ppVVar15 - (int)ppVVar9 >> 2;\n    return;\n  }" { (expression_statement "ppVVar9 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n              _M_impl._M_start;" (field_expression "ppVVar9 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n              _M_impl._M_start" (field_expression "ppVVar9 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n              _M_impl" (binary_expression "ppVVar9 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_" (binary_expression "ppVVar9 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold" (binary_expression "ppVVar9 = (this->defs_).super__Vector_base<gold::Verdef*,_std" (assignment_expression "ppVVar9 = (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 = puVar4;" (assignment_expression "*pp = puVar4" (pointer_expression "*pp" * identifier) = identifier) ;) (expression_statement "*psize = uVar19;" (assignment_expression "*psize = uVar19" (pointer_expression "*psize" * identifier) = identifier) ;) (expression_statement "*pentries = (int)ppVVar15 - (int)ppVVar9 >> 2;" (assignment_expression "*pentries = (int)ppVVar15 - (int)ppVVar9 >> 2" (pointer_expression "*pentries" * identifier) = (binary_expression "(int)ppVVar15 - (int)ppVVar9 >> 2" (binary_expression "(int)ppVVar15 - (int)ppVVar9" (cast_expression "(int)ppVVar15" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)ppVVar9" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) (return_statement "return;" return ;) })) (labeled_statement "LAB_00264764:\n  do {\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s__0043226c + 0x13e0,uVar7,PTR_s__0043226c + 0x17f0);\nLAB_0026477c:\n    uVar7 = 0x701;\n  } while( true );" statement_identifier : (do_statement "do {\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s__0043226c + 0x13e0,uVar7,PTR_s__0043226c + 0x17f0);\nLAB_0026477c:\n    uVar7 = 0x701;\n  } while( true );" do (compound_statement "{\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s__0043226c + 0x13e0,uVar7,PTR_s__0043226c + 0x17f0);\nLAB_0026477c:\n    uVar7 = 0x701;\n  }" { (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s__0043226c + 0x13e0,uVar7,PTR_s__0043226c + 0x17f0);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s__0043226c + 0x13e0,uVar7,PTR_s__0043226c + 0x17f0)" (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,uVar7,PTR_s__0043226c + 0x17f0)" ( (binary_expression "PTR_s__0043226c + 0x13e0" identifier + number_literal) , identifier , (binary_expression "PTR_s__0043226c + 0x17f0" identifier + number_literal) ))) ;) (labeled_statement "LAB_0026477c:\n    uVar7 = 0x701;" statement_identifier : (expression_statement "uVar7 = 0x701;" (assignment_expression "uVar7 = 0x701" identifier = number_literal) ;)) }) while (parenthesized_expression "( true )" ( true )) ;)) (labeled_statement "LAB_002646d4:\n  ppVVar15 = ppVVar21 + 1;" statement_identifier : (expression_statement "ppVVar15 = ppVVar21 + 1;" (assignment_expression "ppVVar15 = ppVVar21 + 1" identifier = (binary_expression "ppVVar21 + 1" identifier + number_literal)) ;)) (expression_statement "uVar18 = (int)puVar13 - (int)puVar4;" (assignment_expression "uVar18 = (int)puVar13 - (int)puVar4" identifier = (binary_expression "(int)puVar13 - (int)puVar4" (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (goto_statement "goto LAB_002646dc;" goto statement_identifier ;) (ERROR "}" }))
(translation_unit "void __thiscall\ngold::Versions::def_section_contents<64,true>\n          (Versions *this,Stringpool_template *param_1,uchar **param_2,uint *param_3,uint *param_4)\n\n{\n  undefined *puVar1;\n  uchar *puVar2;\n  ushort uVar5;\n  int iVar3;\n  undefined4 uVar4;\n  int *piVar6;\n  int iVar7;\n  uint uVar8;\n  undefined4 *puVar9;\n  byte *pbVar10;\n  uchar *puVar11;\n  int iVar12;\n  uint uVar13;\n  undefined4 *puVar14;\n  int iVar15;\n  uint uVar16;\n  uint uVar17;\n  uchar *puVar18;\n  int *piVar19;\n  int *piVar20;\n  \n  if (this[0x34] == (Versions)0x0) {\n    uVar4 = 0x701;\n    goto LAB_00264764;\n  }\n  piVar6 = *(int **)this;\n  if (*(int **)(this + 4) == piVar6) {\n    uVar4 = 0x702;\n    goto LAB_00264764;\n  }\n  uVar17 = 0;\n  do {\n    iVar7 = *piVar6;\n    piVar6 = piVar6 + 1;\n    uVar17 = uVar17 + (*(int *)(iVar7 + 0x10) - *(int *)(iVar7 + 0xc) >> 3) * 0x55555558 + 0x1c;\n  } while (*(int **)(this + 4) != piVar6);\n  puVar2 = (uchar *)(*(code *)PTR_operator_new___004322dc)(uVar17);\n  piVar19 = *(int **)this;\n  piVar6 = *(int **)(this + 4);\n  if (piVar19 != piVar6) {\n    uVar16 = 0;\n    puVar18 = puVar2;\n    piVar20 = piVar19;\n    do {\n      iVar7 = *piVar20;\n      uVar16 = uVar16 + 1;\n      puVar18[0] = '\0';\n      puVar18[1] = '\x01';\n      uVar5 = (ushort)*(byte *)(iVar7 + 0x18);\n      if (*(char *)(iVar7 + 0x19) != '\0') {\n        uVar5 = uVar5 | 2;\n      }\n      if (*(char *)(iVar7 + 0x1a) != '\0') {\n        uVar5 = uVar5 | 4;\n      }\n      iVar12 = *(int *)(iVar7 + 4);\n      *(ushort *)(puVar18 + 2) = uVar5;\n      if (iVar12 == -1) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_DAT_0043226c + 0x1a58);\n        return;\n      }\n      iVar15 = *(int *)(iVar7 + 0xc);\n      uVar8 = 0;\n      iVar3 = *(int *)(iVar7 + 0x10);\n      pbVar10 = *(byte **)(iVar7 + 8);\n      *(short *)(puVar18 + 4) = (short)iVar12;\n      iVar12 = (iVar3 - iVar15 >> 3) * -0x55555555 + 1;\n      *(short *)(puVar18 + 6) = (short)iVar12;\n      while (uVar13 = (uint)*pbVar10, uVar13 != 0) {\n        while( true ) {\n          pbVar10 = pbVar10 + 1;\n          uVar8 = uVar13 + uVar8 * 0x10;\n          if ((uVar8 & 0xf0000000) == 0) break;\n          uVar8 = (uVar8 & 0xf0000000) >> 0x18 ^ uVar8 & 0xfffffff;\n          uVar13 = (uint)*pbVar10;\n          if (uVar13 == 0) goto LAB_002645f4;\n        }\n      }\nLAB_002645f4:\n      *(uint *)(puVar18 + 8) = uVar8;\n      puVar18[0xc] = '\0';\n      puVar1 = PTR_get_offset_004323e0;\n      puVar18[0xd] = '\0';\n      puVar18[0xe] = '\0';\n      puVar18[0xf] = '\x14';\n      if (uVar16 < (uint)((int)piVar6 - (int)piVar19 >> 2)) {\n        iVar12 = iVar12 * 8 + 0x14;\n      }\n      else {\n        iVar12 = 0;\n      }\n      *(int *)(puVar18 + 0x10) = iVar12;\n      uVar4 = (*(code *)puVar1)(param_1);\n      puVar11 = puVar18 + 0x1c;\n      puVar14 = *(undefined4 **)(iVar7 + 0xc);\n      puVar9 = *(undefined4 **)(iVar7 + 0x10);\n      *(undefined4 *)(puVar18 + 0x14) = uVar4;\n      if (puVar14 == puVar9) {\n        piVar6 = *(int **)(this + 4);\n        puVar18[0x18] = '\0';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\0';\n        if (piVar6 == piVar20 + 1) goto LAB_002646d4;\n      }\n      else {\n        uVar8 = 0;\n        puVar18[0x18] = '\0';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\b';\n        puVar18 = puVar11;\n        do {\n          uVar4 = *puVar14;\n          puVar11 = puVar18 + 8;\n          puVar9 = puVar14 + 1;\n          uVar8 = uVar8 + 1;\n          puVar14 = puVar14 + 6;\n          uVar4 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar4,*puVar9);\n          puVar9 = *(undefined4 **)(iVar7 + 0x10);\n          iVar12 = *(int *)(iVar7 + 0xc);\n          *(undefined4 *)puVar18 = uVar4;\n          uVar4 = 8;\n          if ((uint)(((int)puVar9 - iVar12 >> 3) * -0x55555555) <= uVar8) {\n            uVar4 = 0;\n          }\n          *(undefined4 *)(puVar18 + 4) = uVar4;\n          puVar18 = puVar11;\n        } while (puVar9 != puVar14);\n        piVar6 = *(int **)(this + 4);\n        if (piVar6 == piVar20 + 1) goto LAB_002646d4;\n      }\n      piVar20 = piVar20 + 1;\n      piVar19 = *(int **)this;\n      puVar18 = puVar11;\n    } while( true );\n  }\n  uVar16 = 0;\n  goto LAB_002646dc;\nLAB_002646d4:\n  piVar19 = piVar20 + 1;\n  uVar16 = (int)puVar11 - (int)puVar2;\nLAB_002646dc:\n  uVar4 = 0x71c;\n  if (uVar17 == uVar16) {\n    iVar7 = *(int *)this;\n    *param_2 = puVar2;\n    *param_3 = uVar17;\n    *param_4 = (int)piVar19 - iVar7 >> 2;\n    return;\n  }\nLAB_00264764:\n  (*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_DAT_0043226c + 0x13e0,uVar4,PTR_DAT_0043226c + 0x17f0);\n  return;\n}\n\n" (declaration "void __thiscall\ngold::Versions::def_section_contents<64,true>\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 "true>\n          (Versions *this,Stringpool_template *param_1,uchar **param_2,uint *param_3,uint *param_4)\n\n{\n  undefined" (function_declarator "true>\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 "uchar *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "ushort uVar5;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "uchar *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "uchar *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "int *piVar19;" primitive_type (pointer_declarator "*piVar19" * identifier) ;) (declaration "int *piVar20;" primitive_type (pointer_declarator "*piVar20" * identifier) ;) (if_statement "if (this[0x34] == (Versions)0x0) {\n    uVar4 = 0x701;\n    goto LAB_00264764;\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    uVar4 = 0x701;\n    goto LAB_00264764;\n  }" { (expression_statement "uVar4 = 0x701;" (assignment_expression "uVar4 = 0x701" identifier = number_literal) ;) (goto_statement "goto LAB_00264764;" goto statement_identifier ;) })) (expression_statement "piVar6 = *(int **)this;" (assignment_expression "piVar6 = *(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) == piVar6) {\n    uVar4 = 0x702;\n    goto LAB_00264764;\n  }" if (parenthesized_expression "(*(int **)(this + 4) == piVar6)" ( (binary_expression "*(int **)(this + 4) == piVar6" (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    uVar4 = 0x702;\n    goto LAB_00264764;\n  }" { (expression_statement "uVar4 = 0x702;" (assignment_expression "uVar4 = 0x702" identifier = number_literal) ;) (goto_statement "goto LAB_00264764;" goto statement_identifier ;) })) (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (do_statement "do {\n    iVar7 = *piVar6;\n    piVar6 = piVar6 + 1;\n    uVar17 = uVar17 + (*(int *)(iVar7 + 0x10) - *(int *)(iVar7 + 0xc) >> 3) * 0x55555558 + 0x1c;\n  } while (*(int **)(this + 4) != piVar6);" do (compound_statement "{\n    iVar7 = *piVar6;\n    piVar6 = piVar6 + 1;\n    uVar17 = uVar17 + (*(int *)(iVar7 + 0x10) - *(int *)(iVar7 + 0xc) >> 3) * 0x55555558 + 0x1c;\n  }" { (expression_statement "iVar7 = *piVar6;" (assignment_expression "iVar7 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "piVar6 = piVar6 + 1;" (assignment_expression "piVar6 = piVar6 + 1" identifier = (binary_expression "piVar6 + 1" identifier + number_literal)) ;) (expression_statement "uVar17 = uVar17 + (*(int *)(iVar7 + 0x10) - *(int *)(iVar7 + 0xc) >> 3) * 0x55555558 + 0x1c;" (assignment_expression "uVar17 = uVar17 + (*(int *)(iVar7 + 0x10) - *(int *)(iVar7 + 0xc) >> 3) * 0x55555558 + 0x1c" identifier = (binary_expression "uVar17 + (*(int *)(iVar7 + 0x10) - *(int *)(iVar7 + 0xc) >> 3) * 0x55555558 + 0x1c" (binary_expression "uVar17 + (*(int *)(iVar7 + 0x10) - *(int *)(iVar7 + 0xc) >> 3) * 0x55555558" identifier + (binary_expression "(*(int *)(iVar7 + 0x10) - *(int *)(iVar7 + 0xc) >> 3) * 0x55555558" (parenthesized_expression "(*(int *)(iVar7 + 0x10) - *(int *)(iVar7 + 0xc) >> 3)" ( (binary_expression "*(int *)(iVar7 + 0x10) - *(int *)(iVar7 + 0xc) >> 3" (binary_expression "*(int *)(iVar7 + 0x10) - *(int *)(iVar7 + 0xc)" (pointer_expression "*(int *)(iVar7 + 0x10)" * (cast_expression "(int *)(iVar7 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x10)" ( (binary_expression "iVar7 + 0x10" identifier + number_literal) )))) - (pointer_expression "*(int *)(iVar7 + 0xc)" * (cast_expression "(int *)(iVar7 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) ))))) >> number_literal) )) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(*(int **)(this + 4) != piVar6)" ( (binary_expression "*(int **)(this + 4) != piVar6" (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 "puVar2 = (uchar *)(*(code *)PTR_operator_new___004322dc)(uVar17);" (assignment_expression "puVar2 = (uchar *)(*(code *)PTR_operator_new___004322dc)(uVar17)" identifier = (cast_expression "(uchar *)(*(code *)PTR_operator_new___004322dc)(uVar17)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new___004322dc)(uVar17)" (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 "(uVar17)" ( identifier ))))) ;) (expression_statement "piVar19 = *(int **)this;" (assignment_expression "piVar19 = *(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 "piVar6 = *(int **)(this + 4);" (assignment_expression "piVar6 = *(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 (piVar19 != piVar6) {\n    uVar16 = 0;\n    puVar18 = puVar2;\n    piVar20 = piVar19;\n    do {\n      iVar7 = *piVar20;\n      uVar16 = uVar16 + 1;\n      puVar18[0] = '\0';\n      puVar18[1] = '\x01';\n      uVar5 = (ushort)*(byte *)(iVar7 + 0x18);\n      if (*(char *)(iVar7 + 0x19) != '\0') {\n        uVar5 = uVar5 | 2;\n      }\n      if (*(char *)(iVar7 + 0x1a) != '\0') {\n        uVar5 = uVar5 | 4;\n      }\n      iVar12 = *(int *)(iVar7 + 4);\n      *(ushort *)(puVar18 + 2) = uVar5;\n      if (iVar12 == -1) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_DAT_0043226c + 0x1a58);\n        return;\n      }\n      iVar15 = *(int *)(iVar7 + 0xc);\n      uVar8 = 0;\n      iVar3 = *(int *)(iVar7 + 0x10);\n      pbVar10 = *(byte **)(iVar7 + 8);\n      *(short *)(puVar18 + 4) = (short)iVar12;\n      iVar12 = (iVar3 - iVar15 >> 3) * -0x55555555 + 1;\n      *(short *)(puVar18 + 6) = (short)iVar12;\n      while (uVar13 = (uint)*pbVar10, uVar13 != 0) {\n        while( true ) {\n          pbVar10 = pbVar10 + 1;\n          uVar8 = uVar13 + uVar8 * 0x10;\n          if ((uVar8 & 0xf0000000) == 0) break;\n          uVar8 = (uVar8 & 0xf0000000) >> 0x18 ^ uVar8 & 0xfffffff;\n          uVar13 = (uint)*pbVar10;\n          if (uVar13 == 0) goto LAB_002645f4;\n        }\n      }\nLAB_002645f4:\n      *(uint *)(puVar18 + 8) = uVar8;\n      puVar18[0xc] = '\0';\n      puVar1 = PTR_get_offset_004323e0;\n      puVar18[0xd] = '\0';\n      puVar18[0xe] = '\0';\n      puVar18[0xf] = '\x14';\n      if (uVar16 < (uint)((int)piVar6 - (int)piVar19 >> 2)) {\n        iVar12 = iVar12 * 8 + 0x14;\n      }\n      else {\n        iVar12 = 0;\n      }\n      *(int *)(puVar18 + 0x10) = iVar12;\n      uVar4 = (*(code *)puVar1)(param_1);\n      puVar11 = puVar18 + 0x1c;\n      puVar14 = *(undefined4 **)(iVar7 + 0xc);\n      puVar9 = *(undefined4 **)(iVar7 + 0x10);\n      *(undefined4 *)(puVar18 + 0x14) = uVar4;\n      if (puVar14 == puVar9) {\n        piVar6 = *(int **)(this + 4);\n        puVar18[0x18] = '\0';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\0';\n        if (piVar6 == piVar20 + 1) goto LAB_002646d4;\n      }\n      else {\n        uVar8 = 0;\n        puVar18[0x18] = '\0';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\b';\n        puVar18 = puVar11;\n        do {\n          uVar4 = *puVar14;\n          puVar11 = puVar18 + 8;\n          puVar9 = puVar14 + 1;\n          uVar8 = uVar8 + 1;\n          puVar14 = puVar14 + 6;\n          uVar4 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar4,*puVar9);\n          puVar9 = *(undefined4 **)(iVar7 + 0x10);\n          iVar12 = *(int *)(iVar7 + 0xc);\n          *(undefined4 *)puVar18 = uVar4;\n          uVar4 = 8;\n          if ((uint)(((int)puVar9 - iVar12 >> 3) * -0x55555555) <= uVar8) {\n            uVar4 = 0;\n          }\n          *(undefined4 *)(puVar18 + 4) = uVar4;\n          puVar18 = puVar11;\n        } while (puVar9 != puVar14);\n        piVar6 = *(int **)(this + 4);\n        if (piVar6 == piVar20 + 1) goto LAB_002646d4;\n      }\n      piVar20 = piVar20 + 1;\n      piVar19 = *(int **)this;\n      puVar18 = puVar11;\n    } while( true );\n  }" if (parenthesized_expression "(piVar19 != piVar6)" ( (binary_expression "piVar19 != piVar6" identifier != identifier) )) (compound_statement "{\n    uVar16 = 0;\n    puVar18 = puVar2;\n    piVar20 = piVar19;\n    do {\n      iVar7 = *piVar20;\n      uVar16 = uVar16 + 1;\n      puVar18[0] = '\0';\n      puVar18[1] = '\x01';\n      uVar5 = (ushort)*(byte *)(iVar7 + 0x18);\n      if (*(char *)(iVar7 + 0x19) != '\0') {\n        uVar5 = uVar5 | 2;\n      }\n      if (*(char *)(iVar7 + 0x1a) != '\0') {\n        uVar5 = uVar5 | 4;\n      }\n      iVar12 = *(int *)(iVar7 + 4);\n      *(ushort *)(puVar18 + 2) = uVar5;\n      if (iVar12 == -1) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_DAT_0043226c + 0x1a58);\n        return;\n      }\n      iVar15 = *(int *)(iVar7 + 0xc);\n      uVar8 = 0;\n      iVar3 = *(int *)(iVar7 + 0x10);\n      pbVar10 = *(byte **)(iVar7 + 8);\n      *(short *)(puVar18 + 4) = (short)iVar12;\n      iVar12 = (iVar3 - iVar15 >> 3) * -0x55555555 + 1;\n      *(short *)(puVar18 + 6) = (short)iVar12;\n      while (uVar13 = (uint)*pbVar10, uVar13 != 0) {\n        while( true ) {\n          pbVar10 = pbVar10 + 1;\n          uVar8 = uVar13 + uVar8 * 0x10;\n          if ((uVar8 & 0xf0000000) == 0) break;\n          uVar8 = (uVar8 & 0xf0000000) >> 0x18 ^ uVar8 & 0xfffffff;\n          uVar13 = (uint)*pbVar10;\n          if (uVar13 == 0) goto LAB_002645f4;\n        }\n      }\nLAB_002645f4:\n      *(uint *)(puVar18 + 8) = uVar8;\n      puVar18[0xc] = '\0';\n      puVar1 = PTR_get_offset_004323e0;\n      puVar18[0xd] = '\0';\n      puVar18[0xe] = '\0';\n      puVar18[0xf] = '\x14';\n      if (uVar16 < (uint)((int)piVar6 - (int)piVar19 >> 2)) {\n        iVar12 = iVar12 * 8 + 0x14;\n      }\n      else {\n        iVar12 = 0;\n      }\n      *(int *)(puVar18 + 0x10) = iVar12;\n      uVar4 = (*(code *)puVar1)(param_1);\n      puVar11 = puVar18 + 0x1c;\n      puVar14 = *(undefined4 **)(iVar7 + 0xc);\n      puVar9 = *(undefined4 **)(iVar7 + 0x10);\n      *(undefined4 *)(puVar18 + 0x14) = uVar4;\n      if (puVar14 == puVar9) {\n        piVar6 = *(int **)(this + 4);\n        puVar18[0x18] = '\0';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\0';\n        if (piVar6 == piVar20 + 1) goto LAB_002646d4;\n      }\n      else {\n        uVar8 = 0;\n        puVar18[0x18] = '\0';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\b';\n        puVar18 = puVar11;\n        do {\n          uVar4 = *puVar14;\n          puVar11 = puVar18 + 8;\n          puVar9 = puVar14 + 1;\n          uVar8 = uVar8 + 1;\n          puVar14 = puVar14 + 6;\n          uVar4 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar4,*puVar9);\n          puVar9 = *(undefined4 **)(iVar7 + 0x10);\n          iVar12 = *(int *)(iVar7 + 0xc);\n          *(undefined4 *)puVar18 = uVar4;\n          uVar4 = 8;\n          if ((uint)(((int)puVar9 - iVar12 >> 3) * -0x55555555) <= uVar8) {\n            uVar4 = 0;\n          }\n          *(undefined4 *)(puVar18 + 4) = uVar4;\n          puVar18 = puVar11;\n        } while (puVar9 != puVar14);\n        piVar6 = *(int **)(this + 4);\n        if (piVar6 == piVar20 + 1) goto LAB_002646d4;\n      }\n      piVar20 = piVar20 + 1;\n      piVar19 = *(int **)this;\n      puVar18 = puVar11;\n    } while( true );\n  }" { (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (expression_statement "puVar18 = puVar2;" (assignment_expression "puVar18 = puVar2" identifier = identifier) ;) (expression_statement "piVar20 = piVar19;" (assignment_expression "piVar20 = piVar19" identifier = identifier) ;) (do_statement "do {\n      iVar7 = *piVar20;\n      uVar16 = uVar16 + 1;\n      puVar18[0] = '\0';\n      puVar18[1] = '\x01';\n      uVar5 = (ushort)*(byte *)(iVar7 + 0x18);\n      if (*(char *)(iVar7 + 0x19) != '\0') {\n        uVar5 = uVar5 | 2;\n      }\n      if (*(char *)(iVar7 + 0x1a) != '\0') {\n        uVar5 = uVar5 | 4;\n      }\n      iVar12 = *(int *)(iVar7 + 4);\n      *(ushort *)(puVar18 + 2) = uVar5;\n      if (iVar12 == -1) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_DAT_0043226c + 0x1a58);\n        return;\n      }\n      iVar15 = *(int *)(iVar7 + 0xc);\n      uVar8 = 0;\n      iVar3 = *(int *)(iVar7 + 0x10);\n      pbVar10 = *(byte **)(iVar7 + 8);\n      *(short *)(puVar18 + 4) = (short)iVar12;\n      iVar12 = (iVar3 - iVar15 >> 3) * -0x55555555 + 1;\n      *(short *)(puVar18 + 6) = (short)iVar12;\n      while (uVar13 = (uint)*pbVar10, uVar13 != 0) {\n        while( true ) {\n          pbVar10 = pbVar10 + 1;\n          uVar8 = uVar13 + uVar8 * 0x10;\n          if ((uVar8 & 0xf0000000) == 0) break;\n          uVar8 = (uVar8 & 0xf0000000) >> 0x18 ^ uVar8 & 0xfffffff;\n          uVar13 = (uint)*pbVar10;\n          if (uVar13 == 0) goto LAB_002645f4;\n        }\n      }\nLAB_002645f4:\n      *(uint *)(puVar18 + 8) = uVar8;\n      puVar18[0xc] = '\0';\n      puVar1 = PTR_get_offset_004323e0;\n      puVar18[0xd] = '\0';\n      puVar18[0xe] = '\0';\n      puVar18[0xf] = '\x14';\n      if (uVar16 < (uint)((int)piVar6 - (int)piVar19 >> 2)) {\n        iVar12 = iVar12 * 8 + 0x14;\n      }\n      else {\n        iVar12 = 0;\n      }\n      *(int *)(puVar18 + 0x10) = iVar12;\n      uVar4 = (*(code *)puVar1)(param_1);\n      puVar11 = puVar18 + 0x1c;\n      puVar14 = *(undefined4 **)(iVar7 + 0xc);\n      puVar9 = *(undefined4 **)(iVar7 + 0x10);\n      *(undefined4 *)(puVar18 + 0x14) = uVar4;\n      if (puVar14 == puVar9) {\n        piVar6 = *(int **)(this + 4);\n        puVar18[0x18] = '\0';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\0';\n        if (piVar6 == piVar20 + 1) goto LAB_002646d4;\n      }\n      else {\n        uVar8 = 0;\n        puVar18[0x18] = '\0';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\b';\n        puVar18 = puVar11;\n        do {\n          uVar4 = *puVar14;\n          puVar11 = puVar18 + 8;\n          puVar9 = puVar14 + 1;\n          uVar8 = uVar8 + 1;\n          puVar14 = puVar14 + 6;\n          uVar4 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar4,*puVar9);\n          puVar9 = *(undefined4 **)(iVar7 + 0x10);\n          iVar12 = *(int *)(iVar7 + 0xc);\n          *(undefined4 *)puVar18 = uVar4;\n          uVar4 = 8;\n          if ((uint)(((int)puVar9 - iVar12 >> 3) * -0x55555555) <= uVar8) {\n            uVar4 = 0;\n          }\n          *(undefined4 *)(puVar18 + 4) = uVar4;\n          puVar18 = puVar11;\n        } while (puVar9 != puVar14);\n        piVar6 = *(int **)(this + 4);\n        if (piVar6 == piVar20 + 1) goto LAB_002646d4;\n      }\n      piVar20 = piVar20 + 1;\n      piVar19 = *(int **)this;\n      puVar18 = puVar11;\n    } while( true );" do (compound_statement "{\n      iVar7 = *piVar20;\n      uVar16 = uVar16 + 1;\n      puVar18[0] = '\0';\n      puVar18[1] = '\x01';\n      uVar5 = (ushort)*(byte *)(iVar7 + 0x18);\n      if (*(char *)(iVar7 + 0x19) != '\0') {\n        uVar5 = uVar5 | 2;\n      }\n      if (*(char *)(iVar7 + 0x1a) != '\0') {\n        uVar5 = uVar5 | 4;\n      }\n      iVar12 = *(int *)(iVar7 + 4);\n      *(ushort *)(puVar18 + 2) = uVar5;\n      if (iVar12 == -1) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_DAT_0043226c + 0x1a58);\n        return;\n      }\n      iVar15 = *(int *)(iVar7 + 0xc);\n      uVar8 = 0;\n      iVar3 = *(int *)(iVar7 + 0x10);\n      pbVar10 = *(byte **)(iVar7 + 8);\n      *(short *)(puVar18 + 4) = (short)iVar12;\n      iVar12 = (iVar3 - iVar15 >> 3) * -0x55555555 + 1;\n      *(short *)(puVar18 + 6) = (short)iVar12;\n      while (uVar13 = (uint)*pbVar10, uVar13 != 0) {\n        while( true ) {\n          pbVar10 = pbVar10 + 1;\n          uVar8 = uVar13 + uVar8 * 0x10;\n          if ((uVar8 & 0xf0000000) == 0) break;\n          uVar8 = (uVar8 & 0xf0000000) >> 0x18 ^ uVar8 & 0xfffffff;\n          uVar13 = (uint)*pbVar10;\n          if (uVar13 == 0) goto LAB_002645f4;\n        }\n      }\nLAB_002645f4:\n      *(uint *)(puVar18 + 8) = uVar8;\n      puVar18[0xc] = '\0';\n      puVar1 = PTR_get_offset_004323e0;\n      puVar18[0xd] = '\0';\n      puVar18[0xe] = '\0';\n      puVar18[0xf] = '\x14';\n      if (uVar16 < (uint)((int)piVar6 - (int)piVar19 >> 2)) {\n        iVar12 = iVar12 * 8 + 0x14;\n      }\n      else {\n        iVar12 = 0;\n      }\n      *(int *)(puVar18 + 0x10) = iVar12;\n      uVar4 = (*(code *)puVar1)(param_1);\n      puVar11 = puVar18 + 0x1c;\n      puVar14 = *(undefined4 **)(iVar7 + 0xc);\n      puVar9 = *(undefined4 **)(iVar7 + 0x10);\n      *(undefined4 *)(puVar18 + 0x14) = uVar4;\n      if (puVar14 == puVar9) {\n        piVar6 = *(int **)(this + 4);\n        puVar18[0x18] = '\0';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\0';\n        if (piVar6 == piVar20 + 1) goto LAB_002646d4;\n      }\n      else {\n        uVar8 = 0;\n        puVar18[0x18] = '\0';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\b';\n        puVar18 = puVar11;\n        do {\n          uVar4 = *puVar14;\n          puVar11 = puVar18 + 8;\n          puVar9 = puVar14 + 1;\n          uVar8 = uVar8 + 1;\n          puVar14 = puVar14 + 6;\n          uVar4 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar4,*puVar9);\n          puVar9 = *(undefined4 **)(iVar7 + 0x10);\n          iVar12 = *(int *)(iVar7 + 0xc);\n          *(undefined4 *)puVar18 = uVar4;\n          uVar4 = 8;\n          if ((uint)(((int)puVar9 - iVar12 >> 3) * -0x55555555) <= uVar8) {\n            uVar4 = 0;\n          }\n          *(undefined4 *)(puVar18 + 4) = uVar4;\n          puVar18 = puVar11;\n        } while (puVar9 != puVar14);\n        piVar6 = *(int **)(this + 4);\n        if (piVar6 == piVar20 + 1) goto LAB_002646d4;\n      }\n      piVar20 = piVar20 + 1;\n      piVar19 = *(int **)this;\n      puVar18 = puVar11;\n    }" { (expression_statement "iVar7 = *piVar20;" (assignment_expression "iVar7 = *piVar20" identifier = (pointer_expression "*piVar20" * identifier)) ;) (expression_statement "uVar16 = uVar16 + 1;" (assignment_expression "uVar16 = uVar16 + 1" identifier = (binary_expression "uVar16 + 1" identifier + number_literal)) ;) (expression_statement "puVar18[0] = '\0';" (assignment_expression "puVar18[0] = '\0'" (subscript_expression "puVar18[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar18[1] = '\x01';" (assignment_expression "puVar18[1] = '\x01'" (subscript_expression "puVar18[1]" identifier [ number_literal ]) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "uVar5 = (ushort)*(byte *)(iVar7 + 0x18);" (assignment_expression "uVar5 = (ushort)*(byte *)(iVar7 + 0x18)" identifier = (binary_expression "(ushort)*(byte *)(iVar7 + 0x18)" (parenthesized_expression "(ushort)" ( identifier )) * (cast_expression "(byte *)(iVar7 + 0x18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x18)" ( (binary_expression "iVar7 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(iVar7 + 0x19) != '\0') {\n        uVar5 = uVar5 | 2;\n      }" if (parenthesized_expression "(*(char *)(iVar7 + 0x19) != '\0')" ( (binary_expression "*(char *)(iVar7 + 0x19) != '\0'" (pointer_expression "*(char *)(iVar7 + 0x19)" * (cast_expression "(char *)(iVar7 + 0x19)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x19)" ( (binary_expression "iVar7 + 0x19" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (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 (*(char *)(iVar7 + 0x1a) != '\0') {\n        uVar5 = uVar5 | 4;\n      }" if (parenthesized_expression "(*(char *)(iVar7 + 0x1a) != '\0')" ( (binary_expression "*(char *)(iVar7 + 0x1a) != '\0'" (pointer_expression "*(char *)(iVar7 + 0x1a)" * (cast_expression "(char *)(iVar7 + 0x1a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x1a)" ( (binary_expression "iVar7 + 0x1a" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (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 "iVar12 = *(int *)(iVar7 + 4);" (assignment_expression "iVar12 = *(int *)(iVar7 + 4)" identifier = (pointer_expression "*(int *)(iVar7 + 4)" * (cast_expression "(int *)(iVar7 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(ushort *)(puVar18 + 2) = uVar5;" (assignment_expression "*(ushort *)(puVar18 + 2) = uVar5" (pointer_expression "*(ushort *)(puVar18 + 2)" * (cast_expression "(ushort *)(puVar18 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 2)" ( (binary_expression "puVar18 + 2" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar12 == -1) {\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 "(iVar12 == -1)" ( (binary_expression "iVar12 == -1" 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 "iVar15 = *(int *)(iVar7 + 0xc);" (assignment_expression "iVar15 = *(int *)(iVar7 + 0xc)" identifier = (pointer_expression "*(int *)(iVar7 + 0xc)" * (cast_expression "(int *)(iVar7 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (expression_statement "iVar3 = *(int *)(iVar7 + 0x10);" (assignment_expression "iVar3 = *(int *)(iVar7 + 0x10)" identifier = (pointer_expression "*(int *)(iVar7 + 0x10)" * (cast_expression "(int *)(iVar7 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x10)" ( (binary_expression "iVar7 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "pbVar10 = *(byte **)(iVar7 + 8);" (assignment_expression "pbVar10 = *(byte **)(iVar7 + 8)" identifier = (pointer_expression "*(byte **)(iVar7 + 8)" * (cast_expression "(byte **)(iVar7 + 8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 8)" ( (binary_expression "iVar7 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(short *)(puVar18 + 4) = (short)iVar12;" (assignment_expression "*(short *)(puVar18 + 4) = (short)iVar12" (pointer_expression "*(short *)(puVar18 + 4)" * (cast_expression "(short *)(puVar18 + 4)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 4)" ( (binary_expression "puVar18 + 4" identifier + number_literal) )))) = (cast_expression "(short)iVar12" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (expression_statement "iVar12 = (iVar3 - iVar15 >> 3) * -0x55555555 + 1;" (assignment_expression "iVar12 = (iVar3 - iVar15 >> 3) * -0x55555555 + 1" identifier = (binary_expression "(iVar3 - iVar15 >> 3) * -0x55555555 + 1" (binary_expression "(iVar3 - iVar15 >> 3) * -0x55555555" (parenthesized_expression "(iVar3 - iVar15 >> 3)" ( (binary_expression "iVar3 - iVar15 >> 3" (binary_expression "iVar3 - iVar15" identifier - identifier) >> number_literal) )) * number_literal) + number_literal)) ;) (expression_statement "*(short *)(puVar18 + 6) = (short)iVar12;" (assignment_expression "*(short *)(puVar18 + 6) = (short)iVar12" (pointer_expression "*(short *)(puVar18 + 6)" * (cast_expression "(short *)(puVar18 + 6)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 6)" ( (binary_expression "puVar18 + 6" identifier + number_literal) )))) = (cast_expression "(short)iVar12" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (while_statement "while (uVar13 = (uint)*pbVar10, uVar13 != 0) {\n        while( true ) {\n          pbVar10 = pbVar10 + 1;\n          uVar8 = uVar13 + uVar8 * 0x10;\n          if ((uVar8 & 0xf0000000) == 0) break;\n          uVar8 = (uVar8 & 0xf0000000) >> 0x18 ^ uVar8 & 0xfffffff;\n          uVar13 = (uint)*pbVar10;\n          if (uVar13 == 0) goto LAB_002645f4;\n        }\n      }" while (parenthesized_expression "(uVar13 = (uint)*pbVar10, uVar13 != 0)" ( (comma_expression "uVar13 = (uint)*pbVar10, uVar13 != 0" (assignment_expression "uVar13 = (uint)*pbVar10" identifier = (binary_expression "(uint)*pbVar10" (parenthesized_expression "(uint)" ( identifier )) * identifier)) , (binary_expression "uVar13 != 0" identifier != number_literal)) )) (compound_statement "{\n        while( true ) {\n          pbVar10 = pbVar10 + 1;\n          uVar8 = uVar13 + uVar8 * 0x10;\n          if ((uVar8 & 0xf0000000) == 0) break;\n          uVar8 = (uVar8 & 0xf0000000) >> 0x18 ^ uVar8 & 0xfffffff;\n          uVar13 = (uint)*pbVar10;\n          if (uVar13 == 0) goto LAB_002645f4;\n        }\n      }" { (while_statement "while( true ) {\n          pbVar10 = pbVar10 + 1;\n          uVar8 = uVar13 + uVar8 * 0x10;\n          if ((uVar8 & 0xf0000000) == 0) break;\n          uVar8 = (uVar8 & 0xf0000000) >> 0x18 ^ uVar8 & 0xfffffff;\n          uVar13 = (uint)*pbVar10;\n          if (uVar13 == 0) goto LAB_002645f4;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          pbVar10 = pbVar10 + 1;\n          uVar8 = uVar13 + uVar8 * 0x10;\n          if ((uVar8 & 0xf0000000) == 0) break;\n          uVar8 = (uVar8 & 0xf0000000) >> 0x18 ^ uVar8 & 0xfffffff;\n          uVar13 = (uint)*pbVar10;\n          if (uVar13 == 0) goto LAB_002645f4;\n        }" { (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) (expression_statement "uVar8 = uVar13 + uVar8 * 0x10;" (assignment_expression "uVar8 = uVar13 + uVar8 * 0x10" identifier = (binary_expression "uVar13 + uVar8 * 0x10" identifier + (binary_expression "uVar8 * 0x10" identifier * number_literal))) ;) (if_statement "if ((uVar8 & 0xf0000000) == 0) break;" if (parenthesized_expression "((uVar8 & 0xf0000000) == 0)" ( (binary_expression "(uVar8 & 0xf0000000) == 0" (parenthesized_expression "(uVar8 & 0xf0000000)" ( (binary_expression "uVar8 & 0xf0000000" identifier & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar8 = (uVar8 & 0xf0000000) >> 0x18 ^ uVar8 & 0xfffffff;" (assignment_expression "uVar8 = (uVar8 & 0xf0000000) >> 0x18 ^ uVar8 & 0xfffffff" identifier = (binary_expression "(uVar8 & 0xf0000000) >> 0x18 ^ uVar8 & 0xfffffff" (binary_expression "(uVar8 & 0xf0000000) >> 0x18" (parenthesized_expression "(uVar8 & 0xf0000000)" ( (binary_expression "uVar8 & 0xf0000000" identifier & number_literal) )) >> number_literal) ^ (binary_expression "uVar8 & 0xfffffff" identifier & number_literal))) ;) (expression_statement "uVar13 = (uint)*pbVar10;" (assignment_expression "uVar13 = (uint)*pbVar10" identifier = (binary_expression "(uint)*pbVar10" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (if_statement "if (uVar13 == 0) goto LAB_002645f4;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (goto_statement "goto LAB_002645f4;" goto statement_identifier ;)) })) })) (labeled_statement "LAB_002645f4:\n      *(uint *)(puVar18 + 8) = uVar8;" statement_identifier : (expression_statement "*(uint *)(puVar18 + 8) = uVar8;" (assignment_expression "*(uint *)(puVar18 + 8) = uVar8" (pointer_expression "*(uint *)(puVar18 + 8)" * (cast_expression "(uint *)(puVar18 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 8)" ( (binary_expression "puVar18 + 8" identifier + number_literal) )))) = identifier) ;)) (expression_statement "puVar18[0xc] = '\0';" (assignment_expression "puVar18[0xc] = '\0'" (subscript_expression "puVar18[0xc]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar1 = PTR_get_offset_004323e0;" (assignment_expression "puVar1 = PTR_get_offset_004323e0" identifier = identifier) ;) (expression_statement "puVar18[0xd] = '\0';" (assignment_expression "puVar18[0xd] = '\0'" (subscript_expression "puVar18[0xd]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar18[0xe] = '\0';" (assignment_expression "puVar18[0xe] = '\0'" (subscript_expression "puVar18[0xe]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar18[0xf] = '\x14';" (assignment_expression "puVar18[0xf] = '\x14'" (subscript_expression "puVar18[0xf]" identifier [ number_literal ]) = (char_literal "'\x14'" ' escape_sequence ')) ;) (if_statement "if (uVar16 < (uint)((int)piVar6 - (int)piVar19 >> 2)) {\n        iVar12 = iVar12 * 8 + 0x14;\n      }\n      else {\n        iVar12 = 0;\n      }" if (parenthesized_expression "(uVar16 < (uint)((int)piVar6 - (int)piVar19 >> 2))" ( (binary_expression "uVar16 < (uint)((int)piVar6 - (int)piVar19 >> 2)" identifier < (call_expression "(uint)((int)piVar6 - (int)piVar19 >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)piVar6 - (int)piVar19 >> 2)" ( (binary_expression "(int)piVar6 - (int)piVar19 >> 2" (binary_expression "(int)piVar6 - (int)piVar19" (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piVar19" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) )))) )) (compound_statement "{\n        iVar12 = iVar12 * 8 + 0x14;\n      }" { (expression_statement "iVar12 = iVar12 * 8 + 0x14;" (assignment_expression "iVar12 = iVar12 * 8 + 0x14" identifier = (binary_expression "iVar12 * 8 + 0x14" (binary_expression "iVar12 * 8" identifier * number_literal) + number_literal)) ;) }) (else_clause "else {\n        iVar12 = 0;\n      }" else (compound_statement "{\n        iVar12 = 0;\n      }" { (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) }))) (expression_statement "*(int *)(puVar18 + 0x10) = iVar12;" (assignment_expression "*(int *)(puVar18 + 0x10) = iVar12" (pointer_expression "*(int *)(puVar18 + 0x10)" * (cast_expression "(int *)(puVar18 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x10)" ( (binary_expression "puVar18 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar4 = (*(code *)puVar1)(param_1);" (assignment_expression "uVar4 = (*(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 "puVar11 = puVar18 + 0x1c;" (assignment_expression "puVar11 = puVar18 + 0x1c" identifier = (binary_expression "puVar18 + 0x1c" identifier + number_literal)) ;) (expression_statement "puVar14 = *(undefined4 **)(iVar7 + 0xc);" (assignment_expression "puVar14 = *(undefined4 **)(iVar7 + 0xc)" identifier = (pointer_expression "*(undefined4 **)(iVar7 + 0xc)" * (cast_expression "(undefined4 **)(iVar7 + 0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "puVar9 = *(undefined4 **)(iVar7 + 0x10);" (assignment_expression "puVar9 = *(undefined4 **)(iVar7 + 0x10)" identifier = (pointer_expression "*(undefined4 **)(iVar7 + 0x10)" * (cast_expression "(undefined4 **)(iVar7 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x10)" ( (binary_expression "iVar7 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar18 + 0x14) = uVar4;" (assignment_expression "*(undefined4 *)(puVar18 + 0x14) = uVar4" (pointer_expression "*(undefined4 *)(puVar18 + 0x14)" * (cast_expression "(undefined4 *)(puVar18 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x14)" ( (binary_expression "puVar18 + 0x14" identifier + number_literal) )))) = identifier) ;) (if_statement "if (puVar14 == puVar9) {\n        piVar6 = *(int **)(this + 4);\n        puVar18[0x18] = '\0';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\0';\n        if (piVar6 == piVar20 + 1) goto LAB_002646d4;\n      }\n      else {\n        uVar8 = 0;\n        puVar18[0x18] = '\0';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\b';\n        puVar18 = puVar11;\n        do {\n          uVar4 = *puVar14;\n          puVar11 = puVar18 + 8;\n          puVar9 = puVar14 + 1;\n          uVar8 = uVar8 + 1;\n          puVar14 = puVar14 + 6;\n          uVar4 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar4,*puVar9);\n          puVar9 = *(undefined4 **)(iVar7 + 0x10);\n          iVar12 = *(int *)(iVar7 + 0xc);\n          *(undefined4 *)puVar18 = uVar4;\n          uVar4 = 8;\n          if ((uint)(((int)puVar9 - iVar12 >> 3) * -0x55555555) <= uVar8) {\n            uVar4 = 0;\n          }\n          *(undefined4 *)(puVar18 + 4) = uVar4;\n          puVar18 = puVar11;\n        } while (puVar9 != puVar14);\n        piVar6 = *(int **)(this + 4);\n        if (piVar6 == piVar20 + 1) goto LAB_002646d4;\n      }" if (parenthesized_expression "(puVar14 == puVar9)" ( (binary_expression "puVar14 == puVar9" identifier == identifier) )) (compound_statement "{\n        piVar6 = *(int **)(this + 4);\n        puVar18[0x18] = '\0';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\0';\n        if (piVar6 == piVar20 + 1) goto LAB_002646d4;\n      }" { (expression_statement "piVar6 = *(int **)(this + 4);" (assignment_expression "piVar6 = *(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 "puVar18[0x18] = '\0';" (assignment_expression "puVar18[0x18] = '\0'" (subscript_expression "puVar18[0x18]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar18[0x19] = '\0';" (assignment_expression "puVar18[0x19] = '\0'" (subscript_expression "puVar18[0x19]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar18[0x1a] = '\0';" (assignment_expression "puVar18[0x1a] = '\0'" (subscript_expression "puVar18[0x1a]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar18[0x1b] = '\0';" (assignment_expression "puVar18[0x1b] = '\0'" (subscript_expression "puVar18[0x1b]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (piVar6 == piVar20 + 1) goto LAB_002646d4;" if (parenthesized_expression "(piVar6 == piVar20 + 1)" ( (binary_expression "piVar6 == piVar20 + 1" identifier == (binary_expression "piVar20 + 1" identifier + number_literal)) )) (goto_statement "goto LAB_002646d4;" goto statement_identifier ;)) }) (else_clause "else {\n        uVar8 = 0;\n        puVar18[0x18] = '\0';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\b';\n        puVar18 = puVar11;\n        do {\n          uVar4 = *puVar14;\n          puVar11 = puVar18 + 8;\n          puVar9 = puVar14 + 1;\n          uVar8 = uVar8 + 1;\n          puVar14 = puVar14 + 6;\n          uVar4 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar4,*puVar9);\n          puVar9 = *(undefined4 **)(iVar7 + 0x10);\n          iVar12 = *(int *)(iVar7 + 0xc);\n          *(undefined4 *)puVar18 = uVar4;\n          uVar4 = 8;\n          if ((uint)(((int)puVar9 - iVar12 >> 3) * -0x55555555) <= uVar8) {\n            uVar4 = 0;\n          }\n          *(undefined4 *)(puVar18 + 4) = uVar4;\n          puVar18 = puVar11;\n        } while (puVar9 != puVar14);\n        piVar6 = *(int **)(this + 4);\n        if (piVar6 == piVar20 + 1) goto LAB_002646d4;\n      }" else (compound_statement "{\n        uVar8 = 0;\n        puVar18[0x18] = '\0';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\b';\n        puVar18 = puVar11;\n        do {\n          uVar4 = *puVar14;\n          puVar11 = puVar18 + 8;\n          puVar9 = puVar14 + 1;\n          uVar8 = uVar8 + 1;\n          puVar14 = puVar14 + 6;\n          uVar4 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar4,*puVar9);\n          puVar9 = *(undefined4 **)(iVar7 + 0x10);\n          iVar12 = *(int *)(iVar7 + 0xc);\n          *(undefined4 *)puVar18 = uVar4;\n          uVar4 = 8;\n          if ((uint)(((int)puVar9 - iVar12 >> 3) * -0x55555555) <= uVar8) {\n            uVar4 = 0;\n          }\n          *(undefined4 *)(puVar18 + 4) = uVar4;\n          puVar18 = puVar11;\n        } while (puVar9 != puVar14);\n        piVar6 = *(int **)(this + 4);\n        if (piVar6 == piVar20 + 1) goto LAB_002646d4;\n      }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (expression_statement "puVar18[0x18] = '\0';" (assignment_expression "puVar18[0x18] = '\0'" (subscript_expression "puVar18[0x18]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar18[0x19] = '\0';" (assignment_expression "puVar18[0x19] = '\0'" (subscript_expression "puVar18[0x19]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar18[0x1a] = '\0';" (assignment_expression "puVar18[0x1a] = '\0'" (subscript_expression "puVar18[0x1a]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar18[0x1b] = '\b';" (assignment_expression "puVar18[0x1b] = '\b'" (subscript_expression "puVar18[0x1b]" identifier [ number_literal ]) = (char_literal "'\b'" ' escape_sequence ')) ;) (expression_statement "puVar18 = puVar11;" (assignment_expression "puVar18 = puVar11" identifier = identifier) ;) (do_statement "do {\n          uVar4 = *puVar14;\n          puVar11 = puVar18 + 8;\n          puVar9 = puVar14 + 1;\n          uVar8 = uVar8 + 1;\n          puVar14 = puVar14 + 6;\n          uVar4 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar4,*puVar9);\n          puVar9 = *(undefined4 **)(iVar7 + 0x10);\n          iVar12 = *(int *)(iVar7 + 0xc);\n          *(undefined4 *)puVar18 = uVar4;\n          uVar4 = 8;\n          if ((uint)(((int)puVar9 - iVar12 >> 3) * -0x55555555) <= uVar8) {\n            uVar4 = 0;\n          }\n          *(undefined4 *)(puVar18 + 4) = uVar4;\n          puVar18 = puVar11;\n        } while (puVar9 != puVar14);" do (compound_statement "{\n          uVar4 = *puVar14;\n          puVar11 = puVar18 + 8;\n          puVar9 = puVar14 + 1;\n          uVar8 = uVar8 + 1;\n          puVar14 = puVar14 + 6;\n          uVar4 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar4,*puVar9);\n          puVar9 = *(undefined4 **)(iVar7 + 0x10);\n          iVar12 = *(int *)(iVar7 + 0xc);\n          *(undefined4 *)puVar18 = uVar4;\n          uVar4 = 8;\n          if ((uint)(((int)puVar9 - iVar12 >> 3) * -0x55555555) <= uVar8) {\n            uVar4 = 0;\n          }\n          *(undefined4 *)(puVar18 + 4) = uVar4;\n          puVar18 = puVar11;\n        }" { (expression_statement "uVar4 = *puVar14;" (assignment_expression "uVar4 = *puVar14" identifier = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "puVar11 = puVar18 + 8;" (assignment_expression "puVar11 = puVar18 + 8" identifier = (binary_expression "puVar18 + 8" identifier + number_literal)) ;) (expression_statement "puVar9 = puVar14 + 1;" (assignment_expression "puVar9 = puVar14 + 1" identifier = (binary_expression "puVar14 + 1" identifier + number_literal)) ;) (expression_statement "uVar8 = uVar8 + 1;" (assignment_expression "uVar8 = uVar8 + 1" identifier = (binary_expression "uVar8 + 1" identifier + number_literal)) ;) (expression_statement "puVar14 = puVar14 + 6;" (assignment_expression "puVar14 = puVar14 + 6" identifier = (binary_expression "puVar14 + 6" identifier + number_literal)) ;) (expression_statement "uVar4 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar4,*puVar9);" (assignment_expression "uVar4 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar4,*puVar9)" identifier = (call_expression "(*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar4,*puVar9)" (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,uVar4,*puVar9)" ( identifier , identifier , (pointer_expression "*puVar9" * identifier) )))) ;) (expression_statement "puVar9 = *(undefined4 **)(iVar7 + 0x10);" (assignment_expression "puVar9 = *(undefined4 **)(iVar7 + 0x10)" identifier = (pointer_expression "*(undefined4 **)(iVar7 + 0x10)" * (cast_expression "(undefined4 **)(iVar7 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x10)" ( (binary_expression "iVar7 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = *(int *)(iVar7 + 0xc);" (assignment_expression "iVar12 = *(int *)(iVar7 + 0xc)" identifier = (pointer_expression "*(int *)(iVar7 + 0xc)" * (cast_expression "(int *)(iVar7 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)puVar18 = uVar4;" (assignment_expression "*(undefined4 *)puVar18 = uVar4" (pointer_expression "*(undefined4 *)puVar18" * (cast_expression "(undefined4 *)puVar18" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "uVar4 = 8;" (assignment_expression "uVar4 = 8" identifier = number_literal) ;) (if_statement "if ((uint)(((int)puVar9 - iVar12 >> 3) * -0x55555555) <= uVar8) {\n            uVar4 = 0;\n          }" if (parenthesized_expression "((uint)(((int)puVar9 - iVar12 >> 3) * -0x55555555) <= uVar8)" ( (binary_expression "(uint)(((int)puVar9 - iVar12 >> 3) * -0x55555555) <= uVar8" (call_expression "(uint)(((int)puVar9 - iVar12 >> 3) * -0x55555555)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(((int)puVar9 - iVar12 >> 3) * -0x55555555)" ( (binary_expression "((int)puVar9 - iVar12 >> 3) * -0x55555555" (parenthesized_expression "((int)puVar9 - iVar12 >> 3)" ( (binary_expression "(int)puVar9 - iVar12 >> 3" (binary_expression "(int)puVar9 - iVar12" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) >> number_literal) )) * number_literal) ))) <= identifier) )) (compound_statement "{\n            uVar4 = 0;\n          }" { (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) })) (expression_statement "*(undefined4 *)(puVar18 + 4) = uVar4;" (assignment_expression "*(undefined4 *)(puVar18 + 4) = uVar4" (pointer_expression "*(undefined4 *)(puVar18 + 4)" * (cast_expression "(undefined4 *)(puVar18 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 4)" ( (binary_expression "puVar18 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar18 = puVar11;" (assignment_expression "puVar18 = puVar11" identifier = identifier) ;) }) while (parenthesized_expression "(puVar9 != puVar14)" ( (binary_expression "puVar9 != puVar14" identifier != identifier) )) ;) (expression_statement "piVar6 = *(int **)(this + 4);" (assignment_expression "piVar6 = *(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 (piVar6 == piVar20 + 1) goto LAB_002646d4;" if (parenthesized_expression "(piVar6 == piVar20 + 1)" ( (binary_expression "piVar6 == piVar20 + 1" identifier == (binary_expression "piVar20 + 1" identifier + number_literal)) )) (goto_statement "goto LAB_002646d4;" goto statement_identifier ;)) }))) (expression_statement "piVar20 = piVar20 + 1;" (assignment_expression "piVar20 = piVar20 + 1" identifier = (binary_expression "piVar20 + 1" identifier + number_literal)) ;) (expression_statement "piVar19 = *(int **)this;" (assignment_expression "piVar19 = *(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 "puVar18 = puVar11;" (assignment_expression "puVar18 = puVar11" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_002646dc;" goto statement_identifier ;) (labeled_statement "LAB_002646d4:\n  piVar19 = piVar20 + 1;" statement_identifier : (expression_statement "piVar19 = piVar20 + 1;" (assignment_expression "piVar19 = piVar20 + 1" identifier = (binary_expression "piVar20 + 1" identifier + number_literal)) ;)) (expression_statement "uVar16 = (int)puVar11 - (int)puVar2;" (assignment_expression "uVar16 = (int)puVar11 - (int)puVar2" identifier = (binary_expression "(int)puVar11 - (int)puVar2" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar2" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (labeled_statement "LAB_002646dc:\n  uVar4 = 0x71c;" statement_identifier : (expression_statement "uVar4 = 0x71c;" (assignment_expression "uVar4 = 0x71c" identifier = number_literal) ;)) (if_statement "if (uVar17 == uVar16) {\n    iVar7 = *(int *)this;\n    *param_2 = puVar2;\n    *param_3 = uVar17;\n    *param_4 = (int)piVar19 - iVar7 >> 2;\n    return;\n  }" if (parenthesized_expression "(uVar17 == uVar16)" ( (binary_expression "uVar17 == uVar16" identifier == identifier) )) (compound_statement "{\n    iVar7 = *(int *)this;\n    *param_2 = puVar2;\n    *param_3 = uVar17;\n    *param_4 = (int)piVar19 - iVar7 >> 2;\n    return;\n  }" { (expression_statement "iVar7 = *(int *)this;" (assignment_expression "iVar7 = *(int *)this" identifier = (pointer_expression "*(int *)this" * (cast_expression "(int *)this" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*param_2 = puVar2;" (assignment_expression "*param_2 = puVar2" (pointer_expression "*param_2" * identifier) = identifier) ;) (expression_statement "*param_3 = uVar17;" (assignment_expression "*param_3 = uVar17" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "*param_4 = (int)piVar19 - iVar7 >> 2;" (assignment_expression "*param_4 = (int)piVar19 - iVar7 >> 2" (pointer_expression "*param_4" * identifier) = (binary_expression "(int)piVar19 - iVar7 >> 2" (binary_expression "(int)piVar19 - iVar7" (cast_expression "(int)piVar19" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) >> number_literal)) ;) (return_statement "return;" return ;) })) (labeled_statement "LAB_00264764:\n  (*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_DAT_0043226c + 0x13e0,uVar4,PTR_DAT_0043226c + 0x17f0);" statement_identifier : (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_DAT_0043226c + 0x13e0,uVar4,PTR_DAT_0043226c + 0x17f0);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_DAT_0043226c + 0x13e0,uVar4,PTR_DAT_0043226c + 0x17f0)" (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,uVar4,PTR_DAT_0043226c + 0x17f0)" ( (binary_expression "PTR_DAT_0043226c + 0x13e0" identifier + number_literal) , identifier , (binary_expression "PTR_DAT_0043226c + 0x17f0" 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 (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE 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) ;) (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 (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (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 = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 IDENT + LIT) )))) = (cast_expression ( (type_descriptor (sized_type_specifier short)) ) IDENT)) ;) (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 (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor (sized_type_specifier short)) ) IDENT)) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (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)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (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 ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (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 ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_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) = 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,true>\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 "true>\n          (Versions *this,Stringpool_template *param_1,uchar **param_2,uint *param_3,uint *param_4)\n\n{\n  undefined" (function_declarator "true>\n          (Versions *this,Stringpool_template *param_1,uchar **param_2,uint *param_3,uint *param_4)" (identifier "true") (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 "uchar *puVar2;" (type_identifier "uchar") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "ushort uVar5;" (type_identifier "ushort") (identifier "uVar5") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "int *piVar6;" (primitive_type "int") (pointer_declarator "*piVar6" (* "*") (identifier "piVar6")) (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "undefined4 *puVar9;" (type_identifier "undefined4") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "byte *pbVar10;" (type_identifier "byte") (pointer_declarator "*pbVar10" (* "*") (identifier "pbVar10")) (; ";")) (declaration "uchar *puVar11;" (type_identifier "uchar") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "uint uVar13;" (type_identifier "uint") (identifier "uVar13") (; ";")) (declaration "undefined4 *puVar14;" (type_identifier "undefined4") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "int iVar15;" (primitive_type "int") (identifier "iVar15") (; ";")) (declaration "uint uVar16;" (type_identifier "uint") (identifier "uVar16") (; ";")) (declaration "uint uVar17;" (type_identifier "uint") (identifier "uVar17") (; ";")) (declaration "uchar *puVar18;" (type_identifier "uchar") (pointer_declarator "*puVar18" (* "*") (identifier "puVar18")) (; ";")) (declaration "int *piVar19;" (primitive_type "int") (pointer_declarator "*piVar19" (* "*") (identifier "piVar19")) (; ";")) (declaration "int *piVar20;" (primitive_type "int") (pointer_declarator "*piVar20" (* "*") (identifier "piVar20")) (; ";")) (if_statement "if (this[0x34] == (Versions)0x0) {\n    uVar4 = 0x701;\n    goto LAB_00264764;\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    uVar4 = 0x701;\n    goto LAB_00264764;\n  }" ({ "{") (expression_statement "uVar4 = 0x701;" (assignment_expression "uVar4 = 0x701" (identifier "uVar4") (= "=") (number_literal "0x701")) (; ";")) (goto_statement "goto LAB_00264764;" (goto "goto") (statement_identifier "LAB_00264764") (; ";")) (} "}"))) (expression_statement "piVar6 = *(int **)this;" (assignment_expression "piVar6 = *(int **)this" (identifier "piVar6") (= "=") (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) == piVar6) {\n    uVar4 = 0x702;\n    goto LAB_00264764;\n  }" (if "if") (parenthesized_expression "(*(int **)(this + 4) == piVar6)" (( "(") (binary_expression "*(int **)(this + 4) == piVar6" (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 "piVar6")) () ")")) (compound_statement "{\n    uVar4 = 0x702;\n    goto LAB_00264764;\n  }" ({ "{") (expression_statement "uVar4 = 0x702;" (assignment_expression "uVar4 = 0x702" (identifier "uVar4") (= "=") (number_literal "0x702")) (; ";")) (goto_statement "goto LAB_00264764;" (goto "goto") (statement_identifier "LAB_00264764") (; ";")) (} "}"))) (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" (identifier "uVar17") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n    iVar7 = *piVar6;\n    piVar6 = piVar6 + 1;\n    uVar17 = uVar17 + (*(int *)(iVar7 + 0x10) - *(int *)(iVar7 + 0xc) >> 3) * 0x55555558 + 0x1c;\n  } while (*(int **)(this + 4) != piVar6);" (do "do") (compound_statement "{\n    iVar7 = *piVar6;\n    piVar6 = piVar6 + 1;\n    uVar17 = uVar17 + (*(int *)(iVar7 + 0x10) - *(int *)(iVar7 + 0xc) >> 3) * 0x55555558 + 0x1c;\n  }" ({ "{") (expression_statement "iVar7 = *piVar6;" (assignment_expression "iVar7 = *piVar6" (identifier "iVar7") (= "=") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) (; ";")) (expression_statement "piVar6 = piVar6 + 1;" (assignment_expression "piVar6 = piVar6 + 1" (identifier "piVar6") (= "=") (binary_expression "piVar6 + 1" (identifier "piVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar17 = uVar17 + (*(int *)(iVar7 + 0x10) - *(int *)(iVar7 + 0xc) >> 3) * 0x55555558 + 0x1c;" (assignment_expression "uVar17 = uVar17 + (*(int *)(iVar7 + 0x10) - *(int *)(iVar7 + 0xc) >> 3) * 0x55555558 + 0x1c" (identifier "uVar17") (= "=") (binary_expression "uVar17 + (*(int *)(iVar7 + 0x10) - *(int *)(iVar7 + 0xc) >> 3) * 0x55555558 + 0x1c" (binary_expression "uVar17 + (*(int *)(iVar7 + 0x10) - *(int *)(iVar7 + 0xc) >> 3) * 0x55555558" (identifier "uVar17") (+ "+") (binary_expression "(*(int *)(iVar7 + 0x10) - *(int *)(iVar7 + 0xc) >> 3) * 0x55555558" (parenthesized_expression "(*(int *)(iVar7 + 0x10) - *(int *)(iVar7 + 0xc) >> 3)" (( "(") (binary_expression "*(int *)(iVar7 + 0x10) - *(int *)(iVar7 + 0xc) >> 3" (binary_expression "*(int *)(iVar7 + 0x10) - *(int *)(iVar7 + 0xc)" (pointer_expression "*(int *)(iVar7 + 0x10)" (* "*") (cast_expression "(int *)(iVar7 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x10)" (( "(") (binary_expression "iVar7 + 0x10" (identifier "iVar7") (+ "+") (number_literal "0x10")) () ")")))) (- "-") (pointer_expression "*(int *)(iVar7 + 0xc)" (* "*") (cast_expression "(int *)(iVar7 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0xc)" (( "(") (binary_expression "iVar7 + 0xc" (identifier "iVar7") (+ "+") (number_literal "0xc")) () ")"))))) (>> ">>") (number_literal "3")) () ")")) (* "*") (number_literal "0x55555558"))) (+ "+") (number_literal "0x1c"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(int **)(this + 4) != piVar6)" (( "(") (binary_expression "*(int **)(this + 4) != piVar6" (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 "piVar6")) () ")")) (; ";")) (expression_statement "puVar2 = (uchar *)(*(code *)PTR_operator_new___004322dc)(uVar17);" (assignment_expression "puVar2 = (uchar *)(*(code *)PTR_operator_new___004322dc)(uVar17)" (identifier "puVar2") (= "=") (cast_expression "(uchar *)(*(code *)PTR_operator_new___004322dc)(uVar17)" (( "(") (type_descriptor "uchar *" (type_identifier "uchar") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_operator_new___004322dc)(uVar17)" (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 "(uVar17)" (( "(") (identifier "uVar17") () ")"))))) (; ";")) (expression_statement "piVar19 = *(int **)this;" (assignment_expression "piVar19 = *(int **)this" (identifier "piVar19") (= "=") (pointer_expression "*(int **)this" (* "*") (cast_expression "(int **)this" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "this")))) (; ";")) (expression_statement "piVar6 = *(int **)(this + 4);" (assignment_expression "piVar6 = *(int **)(this + 4)" (identifier "piVar6") (= "=") (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 (piVar19 != piVar6) {\n    uVar16 = 0;\n    puVar18 = puVar2;\n    piVar20 = piVar19;\n    do {\n      iVar7 = *piVar20;\n      uVar16 = uVar16 + 1;\n      puVar18[0] = '\0';\n      puVar18[1] = '\x01';\n      uVar5 = (ushort)*(byte *)(iVar7 + 0x18);\n      if (*(char *)(iVar7 + 0x19) != '\0') {\n        uVar5 = uVar5 | 2;\n      }\n      if (*(char *)(iVar7 + 0x1a) != '\0') {\n        uVar5 = uVar5 | 4;\n      }\n      iVar12 = *(int *)(iVar7 + 4);\n      *(ushort *)(puVar18 + 2) = uVar5;\n      if (iVar12 == -1) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_DAT_0043226c + 0x1a58);\n        return;\n      }\n      iVar15 = *(int *)(iVar7 + 0xc);\n      uVar8 = 0;\n      iVar3 = *(int *)(iVar7 + 0x10);\n      pbVar10 = *(byte **)(iVar7 + 8);\n      *(short *)(puVar18 + 4) = (short)iVar12;\n      iVar12 = (iVar3 - iVar15 >> 3) * -0x55555555 + 1;\n      *(short *)(puVar18 + 6) = (short)iVar12;\n      while (uVar13 = (uint)*pbVar10, uVar13 != 0) {\n        while( true ) {\n          pbVar10 = pbVar10 + 1;\n          uVar8 = uVar13 + uVar8 * 0x10;\n          if ((uVar8 & 0xf0000000) == 0) break;\n          uVar8 = (uVar8 & 0xf0000000) >> 0x18 ^ uVar8 & 0xfffffff;\n          uVar13 = (uint)*pbVar10;\n          if (uVar13 == 0) goto LAB_002645f4;\n        }\n      }\nLAB_002645f4:\n      *(uint *)(puVar18 + 8) = uVar8;\n      puVar18[0xc] = '\0';\n      puVar1 = PTR_get_offset_004323e0;\n      puVar18[0xd] = '\0';\n      puVar18[0xe] = '\0';\n      puVar18[0xf] = '\x14';\n      if (uVar16 < (uint)((int)piVar6 - (int)piVar19 >> 2)) {\n        iVar12 = iVar12 * 8 + 0x14;\n      }\n      else {\n        iVar12 = 0;\n      }\n      *(int *)(puVar18 + 0x10) = iVar12;\n      uVar4 = (*(code *)puVar1)(param_1);\n      puVar11 = puVar18 + 0x1c;\n      puVar14 = *(undefined4 **)(iVar7 + 0xc);\n      puVar9 = *(undefined4 **)(iVar7 + 0x10);\n      *(undefined4 *)(puVar18 + 0x14) = uVar4;\n      if (puVar14 == puVar9) {\n        piVar6 = *(int **)(this + 4);\n        puVar18[0x18] = '\0';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\0';\n        if (piVar6 == piVar20 + 1) goto LAB_002646d4;\n      }\n      else {\n        uVar8 = 0;\n        puVar18[0x18] = '\0';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\b';\n        puVar18 = puVar11;\n        do {\n          uVar4 = *puVar14;\n          puVar11 = puVar18 + 8;\n          puVar9 = puVar14 + 1;\n          uVar8 = uVar8 + 1;\n          puVar14 = puVar14 + 6;\n          uVar4 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar4,*puVar9);\n          puVar9 = *(undefined4 **)(iVar7 + 0x10);\n          iVar12 = *(int *)(iVar7 + 0xc);\n          *(undefined4 *)puVar18 = uVar4;\n          uVar4 = 8;\n          if ((uint)(((int)puVar9 - iVar12 >> 3) * -0x55555555) <= uVar8) {\n            uVar4 = 0;\n          }\n          *(undefined4 *)(puVar18 + 4) = uVar4;\n          puVar18 = puVar11;\n        } while (puVar9 != puVar14);\n        piVar6 = *(int **)(this + 4);\n        if (piVar6 == piVar20 + 1) goto LAB_002646d4;\n      }\n      piVar20 = piVar20 + 1;\n      piVar19 = *(int **)this;\n      puVar18 = puVar11;\n    } while( true );\n  }" (if "if") (parenthesized_expression "(piVar19 != piVar6)" (( "(") (binary_expression "piVar19 != piVar6" (identifier "piVar19") (!= "!=") (identifier "piVar6")) () ")")) (compound_statement "{\n    uVar16 = 0;\n    puVar18 = puVar2;\n    piVar20 = piVar19;\n    do {\n      iVar7 = *piVar20;\n      uVar16 = uVar16 + 1;\n      puVar18[0] = '\0';\n      puVar18[1] = '\x01';\n      uVar5 = (ushort)*(byte *)(iVar7 + 0x18);\n      if (*(char *)(iVar7 + 0x19) != '\0') {\n        uVar5 = uVar5 | 2;\n      }\n      if (*(char *)(iVar7 + 0x1a) != '\0') {\n        uVar5 = uVar5 | 4;\n      }\n      iVar12 = *(int *)(iVar7 + 4);\n      *(ushort *)(puVar18 + 2) = uVar5;\n      if (iVar12 == -1) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_DAT_0043226c + 0x1a58);\n        return;\n      }\n      iVar15 = *(int *)(iVar7 + 0xc);\n      uVar8 = 0;\n      iVar3 = *(int *)(iVar7 + 0x10);\n      pbVar10 = *(byte **)(iVar7 + 8);\n      *(short *)(puVar18 + 4) = (short)iVar12;\n      iVar12 = (iVar3 - iVar15 >> 3) * -0x55555555 + 1;\n      *(short *)(puVar18 + 6) = (short)iVar12;\n      while (uVar13 = (uint)*pbVar10, uVar13 != 0) {\n        while( true ) {\n          pbVar10 = pbVar10 + 1;\n          uVar8 = uVar13 + uVar8 * 0x10;\n          if ((uVar8 & 0xf0000000) == 0) break;\n          uVar8 = (uVar8 & 0xf0000000) >> 0x18 ^ uVar8 & 0xfffffff;\n          uVar13 = (uint)*pbVar10;\n          if (uVar13 == 0) goto LAB_002645f4;\n        }\n      }\nLAB_002645f4:\n      *(uint *)(puVar18 + 8) = uVar8;\n      puVar18[0xc] = '\0';\n      puVar1 = PTR_get_offset_004323e0;\n      puVar18[0xd] = '\0';\n      puVar18[0xe] = '\0';\n      puVar18[0xf] = '\x14';\n      if (uVar16 < (uint)((int)piVar6 - (int)piVar19 >> 2)) {\n        iVar12 = iVar12 * 8 + 0x14;\n      }\n      else {\n        iVar12 = 0;\n      }\n      *(int *)(puVar18 + 0x10) = iVar12;\n      uVar4 = (*(code *)puVar1)(param_1);\n      puVar11 = puVar18 + 0x1c;\n      puVar14 = *(undefined4 **)(iVar7 + 0xc);\n      puVar9 = *(undefined4 **)(iVar7 + 0x10);\n      *(undefined4 *)(puVar18 + 0x14) = uVar4;\n      if (puVar14 == puVar9) {\n        piVar6 = *(int **)(this + 4);\n        puVar18[0x18] = '\0';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\0';\n        if (piVar6 == piVar20 + 1) goto LAB_002646d4;\n      }\n      else {\n        uVar8 = 0;\n        puVar18[0x18] = '\0';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\b';\n        puVar18 = puVar11;\n        do {\n          uVar4 = *puVar14;\n          puVar11 = puVar18 + 8;\n          puVar9 = puVar14 + 1;\n          uVar8 = uVar8 + 1;\n          puVar14 = puVar14 + 6;\n          uVar4 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar4,*puVar9);\n          puVar9 = *(undefined4 **)(iVar7 + 0x10);\n          iVar12 = *(int *)(iVar7 + 0xc);\n          *(undefined4 *)puVar18 = uVar4;\n          uVar4 = 8;\n          if ((uint)(((int)puVar9 - iVar12 >> 3) * -0x55555555) <= uVar8) {\n            uVar4 = 0;\n          }\n          *(undefined4 *)(puVar18 + 4) = uVar4;\n          puVar18 = puVar11;\n        } while (puVar9 != puVar14);\n        piVar6 = *(int **)(this + 4);\n        if (piVar6 == piVar20 + 1) goto LAB_002646d4;\n      }\n      piVar20 = piVar20 + 1;\n      piVar19 = *(int **)this;\n      puVar18 = puVar11;\n    } while( true );\n  }" ({ "{") (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" (identifier "uVar16") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar18 = puVar2;" (assignment_expression "puVar18 = puVar2" (identifier "puVar18") (= "=") (identifier "puVar2")) (; ";")) (expression_statement "piVar20 = piVar19;" (assignment_expression "piVar20 = piVar19" (identifier "piVar20") (= "=") (identifier "piVar19")) (; ";")) (do_statement "do {\n      iVar7 = *piVar20;\n      uVar16 = uVar16 + 1;\n      puVar18[0] = '\0';\n      puVar18[1] = '\x01';\n      uVar5 = (ushort)*(byte *)(iVar7 + 0x18);\n      if (*(char *)(iVar7 + 0x19) != '\0') {\n        uVar5 = uVar5 | 2;\n      }\n      if (*(char *)(iVar7 + 0x1a) != '\0') {\n        uVar5 = uVar5 | 4;\n      }\n      iVar12 = *(int *)(iVar7 + 4);\n      *(ushort *)(puVar18 + 2) = uVar5;\n      if (iVar12 == -1) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_DAT_0043226c + 0x1a58);\n        return;\n      }\n      iVar15 = *(int *)(iVar7 + 0xc);\n      uVar8 = 0;\n      iVar3 = *(int *)(iVar7 + 0x10);\n      pbVar10 = *(byte **)(iVar7 + 8);\n      *(short *)(puVar18 + 4) = (short)iVar12;\n      iVar12 = (iVar3 - iVar15 >> 3) * -0x55555555 + 1;\n      *(short *)(puVar18 + 6) = (short)iVar12;\n      while (uVar13 = (uint)*pbVar10, uVar13 != 0) {\n        while( true ) {\n          pbVar10 = pbVar10 + 1;\n          uVar8 = uVar13 + uVar8 * 0x10;\n          if ((uVar8 & 0xf0000000) == 0) break;\n          uVar8 = (uVar8 & 0xf0000000) >> 0x18 ^ uVar8 & 0xfffffff;\n          uVar13 = (uint)*pbVar10;\n          if (uVar13 == 0) goto LAB_002645f4;\n        }\n      }\nLAB_002645f4:\n      *(uint *)(puVar18 + 8) = uVar8;\n      puVar18[0xc] = '\0';\n      puVar1 = PTR_get_offset_004323e0;\n      puVar18[0xd] = '\0';\n      puVar18[0xe] = '\0';\n      puVar18[0xf] = '\x14';\n      if (uVar16 < (uint)((int)piVar6 - (int)piVar19 >> 2)) {\n        iVar12 = iVar12 * 8 + 0x14;\n      }\n      else {\n        iVar12 = 0;\n      }\n      *(int *)(puVar18 + 0x10) = iVar12;\n      uVar4 = (*(code *)puVar1)(param_1);\n      puVar11 = puVar18 + 0x1c;\n      puVar14 = *(undefined4 **)(iVar7 + 0xc);\n      puVar9 = *(undefined4 **)(iVar7 + 0x10);\n      *(undefined4 *)(puVar18 + 0x14) = uVar4;\n      if (puVar14 == puVar9) {\n        piVar6 = *(int **)(this + 4);\n        puVar18[0x18] = '\0';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\0';\n        if (piVar6 == piVar20 + 1) goto LAB_002646d4;\n      }\n      else {\n        uVar8 = 0;\n        puVar18[0x18] = '\0';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\b';\n        puVar18 = puVar11;\n        do {\n          uVar4 = *puVar14;\n          puVar11 = puVar18 + 8;\n          puVar9 = puVar14 + 1;\n          uVar8 = uVar8 + 1;\n          puVar14 = puVar14 + 6;\n          uVar4 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar4,*puVar9);\n          puVar9 = *(undefined4 **)(iVar7 + 0x10);\n          iVar12 = *(int *)(iVar7 + 0xc);\n          *(undefined4 *)puVar18 = uVar4;\n          uVar4 = 8;\n          if ((uint)(((int)puVar9 - iVar12 >> 3) * -0x55555555) <= uVar8) {\n            uVar4 = 0;\n          }\n          *(undefined4 *)(puVar18 + 4) = uVar4;\n          puVar18 = puVar11;\n        } while (puVar9 != puVar14);\n        piVar6 = *(int **)(this + 4);\n        if (piVar6 == piVar20 + 1) goto LAB_002646d4;\n      }\n      piVar20 = piVar20 + 1;\n      piVar19 = *(int **)this;\n      puVar18 = puVar11;\n    } while( true );" (do "do") (compound_statement "{\n      iVar7 = *piVar20;\n      uVar16 = uVar16 + 1;\n      puVar18[0] = '\0';\n      puVar18[1] = '\x01';\n      uVar5 = (ushort)*(byte *)(iVar7 + 0x18);\n      if (*(char *)(iVar7 + 0x19) != '\0') {\n        uVar5 = uVar5 | 2;\n      }\n      if (*(char *)(iVar7 + 0x1a) != '\0') {\n        uVar5 = uVar5 | 4;\n      }\n      iVar12 = *(int *)(iVar7 + 4);\n      *(ushort *)(puVar18 + 2) = uVar5;\n      if (iVar12 == -1) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_DAT_0043226c + 0x1a58);\n        return;\n      }\n      iVar15 = *(int *)(iVar7 + 0xc);\n      uVar8 = 0;\n      iVar3 = *(int *)(iVar7 + 0x10);\n      pbVar10 = *(byte **)(iVar7 + 8);\n      *(short *)(puVar18 + 4) = (short)iVar12;\n      iVar12 = (iVar3 - iVar15 >> 3) * -0x55555555 + 1;\n      *(short *)(puVar18 + 6) = (short)iVar12;\n      while (uVar13 = (uint)*pbVar10, uVar13 != 0) {\n        while( true ) {\n          pbVar10 = pbVar10 + 1;\n          uVar8 = uVar13 + uVar8 * 0x10;\n          if ((uVar8 & 0xf0000000) == 0) break;\n          uVar8 = (uVar8 & 0xf0000000) >> 0x18 ^ uVar8 & 0xfffffff;\n          uVar13 = (uint)*pbVar10;\n          if (uVar13 == 0) goto LAB_002645f4;\n        }\n      }\nLAB_002645f4:\n      *(uint *)(puVar18 + 8) = uVar8;\n      puVar18[0xc] = '\0';\n      puVar1 = PTR_get_offset_004323e0;\n      puVar18[0xd] = '\0';\n      puVar18[0xe] = '\0';\n      puVar18[0xf] = '\x14';\n      if (uVar16 < (uint)((int)piVar6 - (int)piVar19 >> 2)) {\n        iVar12 = iVar12 * 8 + 0x14;\n      }\n      else {\n        iVar12 = 0;\n      }\n      *(int *)(puVar18 + 0x10) = iVar12;\n      uVar4 = (*(code *)puVar1)(param_1);\n      puVar11 = puVar18 + 0x1c;\n      puVar14 = *(undefined4 **)(iVar7 + 0xc);\n      puVar9 = *(undefined4 **)(iVar7 + 0x10);\n      *(undefined4 *)(puVar18 + 0x14) = uVar4;\n      if (puVar14 == puVar9) {\n        piVar6 = *(int **)(this + 4);\n        puVar18[0x18] = '\0';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\0';\n        if (piVar6 == piVar20 + 1) goto LAB_002646d4;\n      }\n      else {\n        uVar8 = 0;\n        puVar18[0x18] = '\0';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\b';\n        puVar18 = puVar11;\n        do {\n          uVar4 = *puVar14;\n          puVar11 = puVar18 + 8;\n          puVar9 = puVar14 + 1;\n          uVar8 = uVar8 + 1;\n          puVar14 = puVar14 + 6;\n          uVar4 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar4,*puVar9);\n          puVar9 = *(undefined4 **)(iVar7 + 0x10);\n          iVar12 = *(int *)(iVar7 + 0xc);\n          *(undefined4 *)puVar18 = uVar4;\n          uVar4 = 8;\n          if ((uint)(((int)puVar9 - iVar12 >> 3) * -0x55555555) <= uVar8) {\n            uVar4 = 0;\n          }\n          *(undefined4 *)(puVar18 + 4) = uVar4;\n          puVar18 = puVar11;\n        } while (puVar9 != puVar14);\n        piVar6 = *(int **)(this + 4);\n        if (piVar6 == piVar20 + 1) goto LAB_002646d4;\n      }\n      piVar20 = piVar20 + 1;\n      piVar19 = *(int **)this;\n      puVar18 = puVar11;\n    }" ({ "{") (expression_statement "iVar7 = *piVar20;" (assignment_expression "iVar7 = *piVar20" (identifier "iVar7") (= "=") (pointer_expression "*piVar20" (* "*") (identifier "piVar20"))) (; ";")) (expression_statement "uVar16 = uVar16 + 1;" (assignment_expression "uVar16 = uVar16 + 1" (identifier "uVar16") (= "=") (binary_expression "uVar16 + 1" (identifier "uVar16") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar18[0] = '\0';" (assignment_expression "puVar18[0] = '\0'" (subscript_expression "puVar18[0]" (identifier "puVar18") ([ "[") (number_literal "0") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "puVar18[1] = '\x01';" (assignment_expression "puVar18[1] = '\x01'" (subscript_expression "puVar18[1]" (identifier "puVar18") ([ "[") (number_literal "1") (] "]")) (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (expression_statement "uVar5 = (ushort)*(byte *)(iVar7 + 0x18);" (assignment_expression "uVar5 = (ushort)*(byte *)(iVar7 + 0x18)" (identifier "uVar5") (= "=") (binary_expression "(ushort)*(byte *)(iVar7 + 0x18)" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (* "*") (cast_expression "(byte *)(iVar7 + 0x18)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x18)" (( "(") (binary_expression "iVar7 + 0x18" (identifier "iVar7") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (*(char *)(iVar7 + 0x19) != '\0') {\n        uVar5 = uVar5 | 2;\n      }" (if "if") (parenthesized_expression "(*(char *)(iVar7 + 0x19) != '\0')" (( "(") (binary_expression "*(char *)(iVar7 + 0x19) != '\0'" (pointer_expression "*(char *)(iVar7 + 0x19)" (* "*") (cast_expression "(char *)(iVar7 + 0x19)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x19)" (( "(") (binary_expression "iVar7 + 0x19" (identifier "iVar7") (+ "+") (number_literal "0x19")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        uVar5 = uVar5 | 2;\n      }" ({ "{") (expression_statement "uVar5 = uVar5 | 2;" (assignment_expression "uVar5 = uVar5 | 2" (identifier "uVar5") (= "=") (binary_expression "uVar5 | 2" (identifier "uVar5") (| "|") (number_literal "2"))) (; ";")) (} "}"))) (if_statement "if (*(char *)(iVar7 + 0x1a) != '\0') {\n        uVar5 = uVar5 | 4;\n      }" (if "if") (parenthesized_expression "(*(char *)(iVar7 + 0x1a) != '\0')" (( "(") (binary_expression "*(char *)(iVar7 + 0x1a) != '\0'" (pointer_expression "*(char *)(iVar7 + 0x1a)" (* "*") (cast_expression "(char *)(iVar7 + 0x1a)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x1a)" (( "(") (binary_expression "iVar7 + 0x1a" (identifier "iVar7") (+ "+") (number_literal "0x1a")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        uVar5 = uVar5 | 4;\n      }" ({ "{") (expression_statement "uVar5 = uVar5 | 4;" (assignment_expression "uVar5 = uVar5 | 4" (identifier "uVar5") (= "=") (binary_expression "uVar5 | 4" (identifier "uVar5") (| "|") (number_literal "4"))) (; ";")) (} "}"))) (expression_statement "iVar12 = *(int *)(iVar7 + 4);" (assignment_expression "iVar12 = *(int *)(iVar7 + 4)" (identifier "iVar12") (= "=") (pointer_expression "*(int *)(iVar7 + 4)" (* "*") (cast_expression "(int *)(iVar7 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 4)" (( "(") (binary_expression "iVar7 + 4" (identifier "iVar7") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "*(ushort *)(puVar18 + 2) = uVar5;" (assignment_expression "*(ushort *)(puVar18 + 2) = uVar5" (pointer_expression "*(ushort *)(puVar18 + 2)" (* "*") (cast_expression "(ushort *)(puVar18 + 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 2)" (( "(") (binary_expression "puVar18 + 2" (identifier "puVar18") (+ "+") (number_literal "2")) () ")")))) (= "=") (identifier "uVar5")) (; ";")) (if_statement "if (iVar12 == -1) {\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 "(iVar12 == -1)" (( "(") (binary_expression "iVar12 == -1" (identifier "iVar12") (== "==") (number_literal "-1")) () ")")) (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 "iVar15 = *(int *)(iVar7 + 0xc);" (assignment_expression "iVar15 = *(int *)(iVar7 + 0xc)" (identifier "iVar15") (= "=") (pointer_expression "*(int *)(iVar7 + 0xc)" (* "*") (cast_expression "(int *)(iVar7 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0xc)" (( "(") (binary_expression "iVar7 + 0xc" (identifier "iVar7") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar3 = *(int *)(iVar7 + 0x10);" (assignment_expression "iVar3 = *(int *)(iVar7 + 0x10)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(iVar7 + 0x10)" (* "*") (cast_expression "(int *)(iVar7 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x10)" (( "(") (binary_expression "iVar7 + 0x10" (identifier "iVar7") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "pbVar10 = *(byte **)(iVar7 + 8);" (assignment_expression "pbVar10 = *(byte **)(iVar7 + 8)" (identifier "pbVar10") (= "=") (pointer_expression "*(byte **)(iVar7 + 8)" (* "*") (cast_expression "(byte **)(iVar7 + 8)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar7 + 8)" (( "(") (binary_expression "iVar7 + 8" (identifier "iVar7") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "*(short *)(puVar18 + 4) = (short)iVar12;" (assignment_expression "*(short *)(puVar18 + 4) = (short)iVar12" (pointer_expression "*(short *)(puVar18 + 4)" (* "*") (cast_expression "(short *)(puVar18 + 4)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 4)" (( "(") (binary_expression "puVar18 + 4" (identifier "puVar18") (+ "+") (number_literal "4")) () ")")))) (= "=") (cast_expression "(short)iVar12" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (identifier "iVar12"))) (; ";")) (expression_statement "iVar12 = (iVar3 - iVar15 >> 3) * -0x55555555 + 1;" (assignment_expression "iVar12 = (iVar3 - iVar15 >> 3) * -0x55555555 + 1" (identifier "iVar12") (= "=") (binary_expression "(iVar3 - iVar15 >> 3) * -0x55555555 + 1" (binary_expression "(iVar3 - iVar15 >> 3) * -0x55555555" (parenthesized_expression "(iVar3 - iVar15 >> 3)" (( "(") (binary_expression "iVar3 - iVar15 >> 3" (binary_expression "iVar3 - iVar15" (identifier "iVar3") (- "-") (identifier "iVar15")) (>> ">>") (number_literal "3")) () ")")) (* "*") (number_literal "-0x55555555")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(short *)(puVar18 + 6) = (short)iVar12;" (assignment_expression "*(short *)(puVar18 + 6) = (short)iVar12" (pointer_expression "*(short *)(puVar18 + 6)" (* "*") (cast_expression "(short *)(puVar18 + 6)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 6)" (( "(") (binary_expression "puVar18 + 6" (identifier "puVar18") (+ "+") (number_literal "6")) () ")")))) (= "=") (cast_expression "(short)iVar12" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (identifier "iVar12"))) (; ";")) (while_statement "while (uVar13 = (uint)*pbVar10, uVar13 != 0) {\n        while( true ) {\n          pbVar10 = pbVar10 + 1;\n          uVar8 = uVar13 + uVar8 * 0x10;\n          if ((uVar8 & 0xf0000000) == 0) break;\n          uVar8 = (uVar8 & 0xf0000000) >> 0x18 ^ uVar8 & 0xfffffff;\n          uVar13 = (uint)*pbVar10;\n          if (uVar13 == 0) goto LAB_002645f4;\n        }\n      }" (while "while") (parenthesized_expression "(uVar13 = (uint)*pbVar10, uVar13 != 0)" (( "(") (comma_expression "uVar13 = (uint)*pbVar10, uVar13 != 0" (assignment_expression "uVar13 = (uint)*pbVar10" (identifier "uVar13") (= "=") (binary_expression "(uint)*pbVar10" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar10"))) (, ",") (binary_expression "uVar13 != 0" (identifier "uVar13") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n        while( true ) {\n          pbVar10 = pbVar10 + 1;\n          uVar8 = uVar13 + uVar8 * 0x10;\n          if ((uVar8 & 0xf0000000) == 0) break;\n          uVar8 = (uVar8 & 0xf0000000) >> 0x18 ^ uVar8 & 0xfffffff;\n          uVar13 = (uint)*pbVar10;\n          if (uVar13 == 0) goto LAB_002645f4;\n        }\n      }" ({ "{") (while_statement "while( true ) {\n          pbVar10 = pbVar10 + 1;\n          uVar8 = uVar13 + uVar8 * 0x10;\n          if ((uVar8 & 0xf0000000) == 0) break;\n          uVar8 = (uVar8 & 0xf0000000) >> 0x18 ^ uVar8 & 0xfffffff;\n          uVar13 = (uint)*pbVar10;\n          if (uVar13 == 0) goto LAB_002645f4;\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          pbVar10 = pbVar10 + 1;\n          uVar8 = uVar13 + uVar8 * 0x10;\n          if ((uVar8 & 0xf0000000) == 0) break;\n          uVar8 = (uVar8 & 0xf0000000) >> 0x18 ^ uVar8 & 0xfffffff;\n          uVar13 = (uint)*pbVar10;\n          if (uVar13 == 0) goto LAB_002645f4;\n        }" ({ "{") (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" (identifier "pbVar10") (= "=") (binary_expression "pbVar10 + 1" (identifier "pbVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar8 = uVar13 + uVar8 * 0x10;" (assignment_expression "uVar8 = uVar13 + uVar8 * 0x10" (identifier "uVar8") (= "=") (binary_expression "uVar13 + uVar8 * 0x10" (identifier "uVar13") (+ "+") (binary_expression "uVar8 * 0x10" (identifier "uVar8") (* "*") (number_literal "0x10")))) (; ";")) (if_statement "if ((uVar8 & 0xf0000000) == 0) break;" (if "if") (parenthesized_expression "((uVar8 & 0xf0000000) == 0)" (( "(") (binary_expression "(uVar8 & 0xf0000000) == 0" (parenthesized_expression "(uVar8 & 0xf0000000)" (( "(") (binary_expression "uVar8 & 0xf0000000" (identifier "uVar8") (& "&") (number_literal "0xf0000000")) () ")")) (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar8 = (uVar8 & 0xf0000000) >> 0x18 ^ uVar8 & 0xfffffff;" (assignment_expression "uVar8 = (uVar8 & 0xf0000000) >> 0x18 ^ uVar8 & 0xfffffff" (identifier "uVar8") (= "=") (binary_expression "(uVar8 & 0xf0000000) >> 0x18 ^ uVar8 & 0xfffffff" (binary_expression "(uVar8 & 0xf0000000) >> 0x18" (parenthesized_expression "(uVar8 & 0xf0000000)" (( "(") (binary_expression "uVar8 & 0xf0000000" (identifier "uVar8") (& "&") (number_literal "0xf0000000")) () ")")) (>> ">>") (number_literal "0x18")) (^ "^") (binary_expression "uVar8 & 0xfffffff" (identifier "uVar8") (& "&") (number_literal "0xfffffff")))) (; ";")) (expression_statement "uVar13 = (uint)*pbVar10;" (assignment_expression "uVar13 = (uint)*pbVar10" (identifier "uVar13") (= "=") (binary_expression "(uint)*pbVar10" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar10"))) (; ";")) (if_statement "if (uVar13 == 0) goto LAB_002645f4;" (if "if") (parenthesized_expression "(uVar13 == 0)" (( "(") (binary_expression "uVar13 == 0" (identifier "uVar13") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_002645f4;" (goto "goto") (statement_identifier "LAB_002645f4") (; ";"))) (} "}"))) (} "}"))) (labeled_statement "LAB_002645f4:\n      *(uint *)(puVar18 + 8) = uVar8;" (statement_identifier "LAB_002645f4") (: ":") (expression_statement "*(uint *)(puVar18 + 8) = uVar8;" (assignment_expression "*(uint *)(puVar18 + 8) = uVar8" (pointer_expression "*(uint *)(puVar18 + 8)" (* "*") (cast_expression "(uint *)(puVar18 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 8)" (( "(") (binary_expression "puVar18 + 8" (identifier "puVar18") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "uVar8")) (; ";"))) (expression_statement "puVar18[0xc] = '\0';" (assignment_expression "puVar18[0xc] = '\0'" (subscript_expression "puVar18[0xc]" (identifier "puVar18") ([ "[") (number_literal "0xc") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "puVar1 = PTR_get_offset_004323e0;" (assignment_expression "puVar1 = PTR_get_offset_004323e0" (identifier "puVar1") (= "=") (identifier "PTR_get_offset_004323e0")) (; ";")) (expression_statement "puVar18[0xd] = '\0';" (assignment_expression "puVar18[0xd] = '\0'" (subscript_expression "puVar18[0xd]" (identifier "puVar18") ([ "[") (number_literal "0xd") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "puVar18[0xe] = '\0';" (assignment_expression "puVar18[0xe] = '\0'" (subscript_expression "puVar18[0xe]" (identifier "puVar18") ([ "[") (number_literal "0xe") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "puVar18[0xf] = '\x14';" (assignment_expression "puVar18[0xf] = '\x14'" (subscript_expression "puVar18[0xf]" (identifier "puVar18") ([ "[") (number_literal "0xf") (] "]")) (= "=") (char_literal "'\x14'" (' "'") (escape_sequence "\x14") (' "'"))) (; ";")) (if_statement "if (uVar16 < (uint)((int)piVar6 - (int)piVar19 >> 2)) {\n        iVar12 = iVar12 * 8 + 0x14;\n      }\n      else {\n        iVar12 = 0;\n      }" (if "if") (parenthesized_expression "(uVar16 < (uint)((int)piVar6 - (int)piVar19 >> 2))" (( "(") (binary_expression "uVar16 < (uint)((int)piVar6 - (int)piVar19 >> 2)" (identifier "uVar16") (< "<") (call_expression "(uint)((int)piVar6 - (int)piVar19 >> 2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)piVar6 - (int)piVar19 >> 2)" (( "(") (binary_expression "(int)piVar6 - (int)piVar19 >> 2" (binary_expression "(int)piVar6 - (int)piVar19" (cast_expression "(int)piVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar6")) (- "-") (cast_expression "(int)piVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar19"))) (>> ">>") (number_literal "2")) () ")")))) () ")")) (compound_statement "{\n        iVar12 = iVar12 * 8 + 0x14;\n      }" ({ "{") (expression_statement "iVar12 = iVar12 * 8 + 0x14;" (assignment_expression "iVar12 = iVar12 * 8 + 0x14" (identifier "iVar12") (= "=") (binary_expression "iVar12 * 8 + 0x14" (binary_expression "iVar12 * 8" (identifier "iVar12") (* "*") (number_literal "8")) (+ "+") (number_literal "0x14"))) (; ";")) (} "}")) (else_clause "else {\n        iVar12 = 0;\n      }" (else "else") (compound_statement "{\n        iVar12 = 0;\n      }" ({ "{") (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" (identifier "iVar12") (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "*(int *)(puVar18 + 0x10) = iVar12;" (assignment_expression "*(int *)(puVar18 + 0x10) = iVar12" (pointer_expression "*(int *)(puVar18 + 0x10)" (* "*") (cast_expression "(int *)(puVar18 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 0x10)" (( "(") (binary_expression "puVar18 + 0x10" (identifier "puVar18") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "iVar12")) (; ";")) (expression_statement "uVar4 = (*(code *)puVar1)(param_1);" (assignment_expression "uVar4 = (*(code *)puVar1)(param_1)" (identifier "uVar4") (= "=") (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 "puVar11 = puVar18 + 0x1c;" (assignment_expression "puVar11 = puVar18 + 0x1c" (identifier "puVar11") (= "=") (binary_expression "puVar18 + 0x1c" (identifier "puVar18") (+ "+") (number_literal "0x1c"))) (; ";")) (expression_statement "puVar14 = *(undefined4 **)(iVar7 + 0xc);" (assignment_expression "puVar14 = *(undefined4 **)(iVar7 + 0xc)" (identifier "puVar14") (= "=") (pointer_expression "*(undefined4 **)(iVar7 + 0xc)" (* "*") (cast_expression "(undefined4 **)(iVar7 + 0xc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar7 + 0xc)" (( "(") (binary_expression "iVar7 + 0xc" (identifier "iVar7") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "puVar9 = *(undefined4 **)(iVar7 + 0x10);" (assignment_expression "puVar9 = *(undefined4 **)(iVar7 + 0x10)" (identifier "puVar9") (= "=") (pointer_expression "*(undefined4 **)(iVar7 + 0x10)" (* "*") (cast_expression "(undefined4 **)(iVar7 + 0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar7 + 0x10)" (( "(") (binary_expression "iVar7 + 0x10" (identifier "iVar7") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + 0x14) = uVar4;" (assignment_expression "*(undefined4 *)(puVar18 + 0x14) = uVar4" (pointer_expression "*(undefined4 *)(puVar18 + 0x14)" (* "*") (cast_expression "(undefined4 *)(puVar18 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 0x14)" (( "(") (binary_expression "puVar18 + 0x14" (identifier "puVar18") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (if_statement "if (puVar14 == puVar9) {\n        piVar6 = *(int **)(this + 4);\n        puVar18[0x18] = '\0';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\0';\n        if (piVar6 == piVar20 + 1) goto LAB_002646d4;\n      }\n      else {\n        uVar8 = 0;\n        puVar18[0x18] = '\0';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\b';\n        puVar18 = puVar11;\n        do {\n          uVar4 = *puVar14;\n          puVar11 = puVar18 + 8;\n          puVar9 = puVar14 + 1;\n          uVar8 = uVar8 + 1;\n          puVar14 = puVar14 + 6;\n          uVar4 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar4,*puVar9);\n          puVar9 = *(undefined4 **)(iVar7 + 0x10);\n          iVar12 = *(int *)(iVar7 + 0xc);\n          *(undefined4 *)puVar18 = uVar4;\n          uVar4 = 8;\n          if ((uint)(((int)puVar9 - iVar12 >> 3) * -0x55555555) <= uVar8) {\n            uVar4 = 0;\n          }\n          *(undefined4 *)(puVar18 + 4) = uVar4;\n          puVar18 = puVar11;\n        } while (puVar9 != puVar14);\n        piVar6 = *(int **)(this + 4);\n        if (piVar6 == piVar20 + 1) goto LAB_002646d4;\n      }" (if "if") (parenthesized_expression "(puVar14 == puVar9)" (( "(") (binary_expression "puVar14 == puVar9" (identifier "puVar14") (== "==") (identifier "puVar9")) () ")")) (compound_statement "{\n        piVar6 = *(int **)(this + 4);\n        puVar18[0x18] = '\0';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\0';\n        if (piVar6 == piVar20 + 1) goto LAB_002646d4;\n      }" ({ "{") (expression_statement "piVar6 = *(int **)(this + 4);" (assignment_expression "piVar6 = *(int **)(this + 4)" (identifier "piVar6") (= "=") (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 "puVar18[0x18] = '\0';" (assignment_expression "puVar18[0x18] = '\0'" (subscript_expression "puVar18[0x18]" (identifier "puVar18") ([ "[") (number_literal "0x18") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "puVar18[0x19] = '\0';" (assignment_expression "puVar18[0x19] = '\0'" (subscript_expression "puVar18[0x19]" (identifier "puVar18") ([ "[") (number_literal "0x19") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "puVar18[0x1a] = '\0';" (assignment_expression "puVar18[0x1a] = '\0'" (subscript_expression "puVar18[0x1a]" (identifier "puVar18") ([ "[") (number_literal "0x1a") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "puVar18[0x1b] = '\0';" (assignment_expression "puVar18[0x1b] = '\0'" (subscript_expression "puVar18[0x1b]" (identifier "puVar18") ([ "[") (number_literal "0x1b") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (if_statement "if (piVar6 == piVar20 + 1) goto LAB_002646d4;" (if "if") (parenthesized_expression "(piVar6 == piVar20 + 1)" (( "(") (binary_expression "piVar6 == piVar20 + 1" (identifier "piVar6") (== "==") (binary_expression "piVar20 + 1" (identifier "piVar20") (+ "+") (number_literal "1"))) () ")")) (goto_statement "goto LAB_002646d4;" (goto "goto") (statement_identifier "LAB_002646d4") (; ";"))) (} "}")) (else_clause "else {\n        uVar8 = 0;\n        puVar18[0x18] = '\0';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\b';\n        puVar18 = puVar11;\n        do {\n          uVar4 = *puVar14;\n          puVar11 = puVar18 + 8;\n          puVar9 = puVar14 + 1;\n          uVar8 = uVar8 + 1;\n          puVar14 = puVar14 + 6;\n          uVar4 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar4,*puVar9);\n          puVar9 = *(undefined4 **)(iVar7 + 0x10);\n          iVar12 = *(int *)(iVar7 + 0xc);\n          *(undefined4 *)puVar18 = uVar4;\n          uVar4 = 8;\n          if ((uint)(((int)puVar9 - iVar12 >> 3) * -0x55555555) <= uVar8) {\n            uVar4 = 0;\n          }\n          *(undefined4 *)(puVar18 + 4) = uVar4;\n          puVar18 = puVar11;\n        } while (puVar9 != puVar14);\n        piVar6 = *(int **)(this + 4);\n        if (piVar6 == piVar20 + 1) goto LAB_002646d4;\n      }" (else "else") (compound_statement "{\n        uVar8 = 0;\n        puVar18[0x18] = '\0';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\b';\n        puVar18 = puVar11;\n        do {\n          uVar4 = *puVar14;\n          puVar11 = puVar18 + 8;\n          puVar9 = puVar14 + 1;\n          uVar8 = uVar8 + 1;\n          puVar14 = puVar14 + 6;\n          uVar4 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar4,*puVar9);\n          puVar9 = *(undefined4 **)(iVar7 + 0x10);\n          iVar12 = *(int *)(iVar7 + 0xc);\n          *(undefined4 *)puVar18 = uVar4;\n          uVar4 = 8;\n          if ((uint)(((int)puVar9 - iVar12 >> 3) * -0x55555555) <= uVar8) {\n            uVar4 = 0;\n          }\n          *(undefined4 *)(puVar18 + 4) = uVar4;\n          puVar18 = puVar11;\n        } while (puVar9 != puVar14);\n        piVar6 = *(int **)(this + 4);\n        if (piVar6 == piVar20 + 1) goto LAB_002646d4;\n      }" ({ "{") (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar18[0x18] = '\0';" (assignment_expression "puVar18[0x18] = '\0'" (subscript_expression "puVar18[0x18]" (identifier "puVar18") ([ "[") (number_literal "0x18") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "puVar18[0x19] = '\0';" (assignment_expression "puVar18[0x19] = '\0'" (subscript_expression "puVar18[0x19]" (identifier "puVar18") ([ "[") (number_literal "0x19") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "puVar18[0x1a] = '\0';" (assignment_expression "puVar18[0x1a] = '\0'" (subscript_expression "puVar18[0x1a]" (identifier "puVar18") ([ "[") (number_literal "0x1a") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "puVar18[0x1b] = '\b';" (assignment_expression "puVar18[0x1b] = '\b'" (subscript_expression "puVar18[0x1b]" (identifier "puVar18") ([ "[") (number_literal "0x1b") (] "]")) (= "=") (char_literal "'\b'" (' "'") (escape_sequence "\b") (' "'"))) (; ";")) (expression_statement "puVar18 = puVar11;" (assignment_expression "puVar18 = puVar11" (identifier "puVar18") (= "=") (identifier "puVar11")) (; ";")) (do_statement "do {\n          uVar4 = *puVar14;\n          puVar11 = puVar18 + 8;\n          puVar9 = puVar14 + 1;\n          uVar8 = uVar8 + 1;\n          puVar14 = puVar14 + 6;\n          uVar4 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar4,*puVar9);\n          puVar9 = *(undefined4 **)(iVar7 + 0x10);\n          iVar12 = *(int *)(iVar7 + 0xc);\n          *(undefined4 *)puVar18 = uVar4;\n          uVar4 = 8;\n          if ((uint)(((int)puVar9 - iVar12 >> 3) * -0x55555555) <= uVar8) {\n            uVar4 = 0;\n          }\n          *(undefined4 *)(puVar18 + 4) = uVar4;\n          puVar18 = puVar11;\n        } while (puVar9 != puVar14);" (do "do") (compound_statement "{\n          uVar4 = *puVar14;\n          puVar11 = puVar18 + 8;\n          puVar9 = puVar14 + 1;\n          uVar8 = uVar8 + 1;\n          puVar14 = puVar14 + 6;\n          uVar4 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar4,*puVar9);\n          puVar9 = *(undefined4 **)(iVar7 + 0x10);\n          iVar12 = *(int *)(iVar7 + 0xc);\n          *(undefined4 *)puVar18 = uVar4;\n          uVar4 = 8;\n          if ((uint)(((int)puVar9 - iVar12 >> 3) * -0x55555555) <= uVar8) {\n            uVar4 = 0;\n          }\n          *(undefined4 *)(puVar18 + 4) = uVar4;\n          puVar18 = puVar11;\n        }" ({ "{") (expression_statement "uVar4 = *puVar14;" (assignment_expression "uVar4 = *puVar14" (identifier "uVar4") (= "=") (pointer_expression "*puVar14" (* "*") (identifier "puVar14"))) (; ";")) (expression_statement "puVar11 = puVar18 + 8;" (assignment_expression "puVar11 = puVar18 + 8" (identifier "puVar11") (= "=") (binary_expression "puVar18 + 8" (identifier "puVar18") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "puVar9 = puVar14 + 1;" (assignment_expression "puVar9 = puVar14 + 1" (identifier "puVar9") (= "=") (binary_expression "puVar14 + 1" (identifier "puVar14") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar8 = uVar8 + 1;" (assignment_expression "uVar8 = uVar8 + 1" (identifier "uVar8") (= "=") (binary_expression "uVar8 + 1" (identifier "uVar8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar14 = puVar14 + 6;" (assignment_expression "puVar14 = puVar14 + 6" (identifier "puVar14") (= "=") (binary_expression "puVar14 + 6" (identifier "puVar14") (+ "+") (number_literal "6"))) (; ";")) (expression_statement "uVar4 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar4,*puVar9);" (assignment_expression "uVar4 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar4,*puVar9)" (identifier "uVar4") (= "=") (call_expression "(*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar4,*puVar9)" (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,uVar4,*puVar9)" (( "(") (identifier "param_1") (, ",") (identifier "uVar4") (, ",") (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) () ")")))) (; ";")) (expression_statement "puVar9 = *(undefined4 **)(iVar7 + 0x10);" (assignment_expression "puVar9 = *(undefined4 **)(iVar7 + 0x10)" (identifier "puVar9") (= "=") (pointer_expression "*(undefined4 **)(iVar7 + 0x10)" (* "*") (cast_expression "(undefined4 **)(iVar7 + 0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar7 + 0x10)" (( "(") (binary_expression "iVar7 + 0x10" (identifier "iVar7") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "iVar12 = *(int *)(iVar7 + 0xc);" (assignment_expression "iVar12 = *(int *)(iVar7 + 0xc)" (identifier "iVar12") (= "=") (pointer_expression "*(int *)(iVar7 + 0xc)" (* "*") (cast_expression "(int *)(iVar7 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0xc)" (( "(") (binary_expression "iVar7 + 0xc" (identifier "iVar7") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)puVar18 = uVar4;" (assignment_expression "*(undefined4 *)puVar18 = uVar4" (pointer_expression "*(undefined4 *)puVar18" (* "*") (cast_expression "(undefined4 *)puVar18" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar18"))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "uVar4 = 8;" (assignment_expression "uVar4 = 8" (identifier "uVar4") (= "=") (number_literal "8")) (; ";")) (if_statement "if ((uint)(((int)puVar9 - iVar12 >> 3) * -0x55555555) <= uVar8) {\n            uVar4 = 0;\n          }" (if "if") (parenthesized_expression "((uint)(((int)puVar9 - iVar12 >> 3) * -0x55555555) <= uVar8)" (( "(") (binary_expression "(uint)(((int)puVar9 - iVar12 >> 3) * -0x55555555) <= uVar8" (call_expression "(uint)(((int)puVar9 - iVar12 >> 3) * -0x55555555)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(((int)puVar9 - iVar12 >> 3) * -0x55555555)" (( "(") (binary_expression "((int)puVar9 - iVar12 >> 3) * -0x55555555" (parenthesized_expression "((int)puVar9 - iVar12 >> 3)" (( "(") (binary_expression "(int)puVar9 - iVar12 >> 3" (binary_expression "(int)puVar9 - iVar12" (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9")) (- "-") (identifier "iVar12")) (>> ">>") (number_literal "3")) () ")")) (* "*") (number_literal "-0x55555555")) () ")"))) (<= "<=") (identifier "uVar8")) () ")")) (compound_statement "{\n            uVar4 = 0;\n          }" ({ "{") (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" (identifier "uVar4") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(puVar18 + 4) = uVar4;" (assignment_expression "*(undefined4 *)(puVar18 + 4) = uVar4" (pointer_expression "*(undefined4 *)(puVar18 + 4)" (* "*") (cast_expression "(undefined4 *)(puVar18 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 4)" (( "(") (binary_expression "puVar18 + 4" (identifier "puVar18") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "puVar18 = puVar11;" (assignment_expression "puVar18 = puVar11" (identifier "puVar18") (= "=") (identifier "puVar11")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar9 != puVar14)" (( "(") (binary_expression "puVar9 != puVar14" (identifier "puVar9") (!= "!=") (identifier "puVar14")) () ")")) (; ";")) (expression_statement "piVar6 = *(int **)(this + 4);" (assignment_expression "piVar6 = *(int **)(this + 4)" (identifier "piVar6") (= "=") (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 (piVar6 == piVar20 + 1) goto LAB_002646d4;" (if "if") (parenthesized_expression "(piVar6 == piVar20 + 1)" (( "(") (binary_expression "piVar6 == piVar20 + 1" (identifier "piVar6") (== "==") (binary_expression "piVar20 + 1" (identifier "piVar20") (+ "+") (number_literal "1"))) () ")")) (goto_statement "goto LAB_002646d4;" (goto "goto") (statement_identifier "LAB_002646d4") (; ";"))) (} "}")))) (expression_statement "piVar20 = piVar20 + 1;" (assignment_expression "piVar20 = piVar20 + 1" (identifier "piVar20") (= "=") (binary_expression "piVar20 + 1" (identifier "piVar20") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar19 = *(int **)this;" (assignment_expression "piVar19 = *(int **)this" (identifier "piVar19") (= "=") (pointer_expression "*(int **)this" (* "*") (cast_expression "(int **)this" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "this")))) (; ";")) (expression_statement "puVar18 = puVar11;" (assignment_expression "puVar18 = puVar11" (identifier "puVar18") (= "=") (identifier "puVar11")) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" (identifier "uVar16") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_002646dc;" (goto "goto") (statement_identifier "LAB_002646dc") (; ";")) (labeled_statement "LAB_002646d4:\n  piVar19 = piVar20 + 1;" (statement_identifier "LAB_002646d4") (: ":") (expression_statement "piVar19 = piVar20 + 1;" (assignment_expression "piVar19 = piVar20 + 1" (identifier "piVar19") (= "=") (binary_expression "piVar20 + 1" (identifier "piVar20") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "uVar16 = (int)puVar11 - (int)puVar2;" (assignment_expression "uVar16 = (int)puVar11 - (int)puVar2" (identifier "uVar16") (= "=") (binary_expression "(int)puVar11 - (int)puVar2" (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")) (- "-") (cast_expression "(int)puVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar2")))) (; ";")) (labeled_statement "LAB_002646dc:\n  uVar4 = 0x71c;" (statement_identifier "LAB_002646dc") (: ":") (expression_statement "uVar4 = 0x71c;" (assignment_expression "uVar4 = 0x71c" (identifier "uVar4") (= "=") (number_literal "0x71c")) (; ";"))) (if_statement "if (uVar17 == uVar16) {\n    iVar7 = *(int *)this;\n    *param_2 = puVar2;\n    *param_3 = uVar17;\n    *param_4 = (int)piVar19 - iVar7 >> 2;\n    return;\n  }" (if "if") (parenthesized_expression "(uVar17 == uVar16)" (( "(") (binary_expression "uVar17 == uVar16" (identifier "uVar17") (== "==") (identifier "uVar16")) () ")")) (compound_statement "{\n    iVar7 = *(int *)this;\n    *param_2 = puVar2;\n    *param_3 = uVar17;\n    *param_4 = (int)piVar19 - iVar7 >> 2;\n    return;\n  }" ({ "{") (expression_statement "iVar7 = *(int *)this;" (assignment_expression "iVar7 = *(int *)this" (identifier "iVar7") (= "=") (pointer_expression "*(int *)this" (* "*") (cast_expression "(int *)this" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "this")))) (; ";")) (expression_statement "*param_2 = puVar2;" (assignment_expression "*param_2 = puVar2" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (identifier "puVar2")) (; ";")) (expression_statement "*param_3 = uVar17;" (assignment_expression "*param_3 = uVar17" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "uVar17")) (; ";")) (expression_statement "*param_4 = (int)piVar19 - iVar7 >> 2;" (assignment_expression "*param_4 = (int)piVar19 - iVar7 >> 2" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (binary_expression "(int)piVar19 - iVar7 >> 2" (binary_expression "(int)piVar19 - iVar7" (cast_expression "(int)piVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar19")) (- "-") (identifier "iVar7")) (>> ">>") (number_literal "2"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (labeled_statement "LAB_00264764:\n  (*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_DAT_0043226c + 0x13e0,uVar4,PTR_DAT_0043226c + 0x17f0);" (statement_identifier "LAB_00264764") (: ":") (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_DAT_0043226c + 0x13e0,uVar4,PTR_DAT_0043226c + 0x17f0);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_DAT_0043226c + 0x13e0,uVar4,PTR_DAT_0043226c + 0x17f0)" (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,uVar4,PTR_DAT_0043226c + 0x17f0)" (( "(") (binary_expression "PTR_DAT_0043226c + 0x13e0" (identifier "PTR_DAT_0043226c") (+ "+") (number_literal "0x13e0")) (, ",") (identifier "uVar4") (, ",") (binary_expression "PTR_DAT_0043226c + 0x17f0" (identifier "PTR_DAT_0043226c") (+ "+") (number_literal "0x17f0")) () ")"))) (; ";"))) (return_statement "return;" (return "return") (; ";")) (ERROR "}" (} "}"))
(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: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) 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: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) 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: (type_identifier) 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: (type_identifier) 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: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator 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: (identifier) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)))) (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: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)))) (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) (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))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (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: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) (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: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (identifier))) (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (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: (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, true>(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;
  uchar *puVar2;
  ushort uVar5;
  int iVar3;
  undefined4 uVar4;
  int *piVar6;
  int iVar7;
  uint uVar8;
  undefined4 *puVar9;
  byte *pbVar10;
  uchar *puVar11;
  int iVar12;
  uint uVar13;
  undefined4 *puVar14;
  int iVar15;
  uint uVar16;
  uint uVar17;
  uchar *puVar18;
  int *piVar19;
  int *piVar20;
  
  if (this[0x34] == (Versions)0x0) {
    uVar4 = 0x701;
    goto LAB_00264764;
  }
  piVar6 = *(int **)this;
  if (*(int **)(this + 4) == piVar6) {
    uVar4 = 0x702;
    goto LAB_00264764;
  }
  uVar17 = 0;
  do {
    iVar7 = *piVar6;
    piVar6 = piVar6 + 1;
    uVar17 = uVar17 + (*(int *)(iVar7 + 0x10) - *(int *)(iVar7 + 0xc) >> 3) * 0x55555558 + 0x1c;
  } while (*(int **)(this + 4) != piVar6);
  puVar2 = (uchar *)(*(code *)PTR_operator_new___004322dc)(uVar17);
  piVar19 = *(int **)this;
  piVar6 = *(int **)(this + 4);
  if (piVar19 != piVar6) {
    uVar16 = 0;
    puVar18 = puVar2;
    piVar20 = piVar19;
    do {
      iVar7 = *piVar20;
      uVar16 = uVar16 + 1;
      puVar18[0] = '\0';
      puVar18[1] = '\x01';
      uVar5 = (ushort)*(byte *)(iVar7 + 0x18);
      if (*(char *)(iVar7 + 0x19) != '\0') {
        uVar5 = uVar5 | 2;
      }
      if (*(char *)(iVar7 + 0x1a) != '\0') {
        uVar5 = uVar5 | 4;
      }
      iVar12 = *(int *)(iVar7 + 4);
      *(ushort *)(puVar18 + 2) = uVar5;
      if (iVar12 == -1) {
        (*(code *)PTR_do_gold_unreachable_004323c4)
                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x179,PTR_DAT_0043226c + 0x1a58);
        return;
      }
      iVar15 = *(int *)(iVar7 + 0xc);
      uVar8 = 0;
      iVar3 = *(int *)(iVar7 + 0x10);
      pbVar10 = *(byte **)(iVar7 + 8);
      *(short *)(puVar18 + 4) = (short)iVar12;
      iVar12 = (iVar3 - iVar15 >> 3) * -0x55555555 + 1;
      *(short *)(puVar18 + 6) = (short)iVar12;
      while (uVar13 = (uint)*pbVar10, uVar13 != 0) {
        while( true ) {
          pbVar10 = pbVar10 + 1;
          uVar8 = uVar13 + uVar8 * 0x10;
          if ((uVar8 & 0xf0000000) == 0) break;
          uVar8 = (uVar8 & 0xf0000000) >> 0x18 ^ uVar8 & 0xfffffff;
          uVar13 = (uint)*pbVar10;
          if (uVar13 == 0) goto LAB_002645f4;
        }
      }
LAB_002645f4:
      *(uint *)(puVar18 + 8) = uVar8;
      puVar18[0xc] = '\0';
      puVar1 = PTR_get_offset_004323e0;
      puVar18[0xd] = '\0';
      puVar18[0xe] = '\0';
      puVar18[0xf] = '\x14';
      if (uVar16 < (uint)((int)piVar6 - (int)piVar19 >> 2)) {
        iVar12 = iVar12 * 8 + 0x14;
      }
      else {
        iVar12 = 0;
      }
      *(int *)(puVar18 + 0x10) = iVar12;
      uVar4 = (*(code *)puVar1)(param_1);
      puVar11 = puVar18 + 0x1c;
      puVar14 = *(undefined4 **)(iVar7 + 0xc);
      puVar9 = *(undefined4 **)(iVar7 + 0x10);
      *(undefined4 *)(puVar18 + 0x14) = uVar4;
      if (puVar14 == puVar9) {
        piVar6 = *(int **)(this + 4);
        puVar18[0x18] = '\0';
        puVar18[0x19] = '\0';
        puVar18[0x1a] = '\0';
        puVar18[0x1b] = '\0';
        if (piVar6 == piVar20 + 1) goto LAB_002646d4;
      }
      else {
        uVar8 = 0;
        puVar18[0x18] = '\0';
        puVar18[0x19] = '\0';
        puVar18[0x1a] = '\0';
        puVar18[0x1b] = '\b';
        puVar18 = puVar11;
        do {
          uVar4 = *puVar14;
          puVar11 = puVar18 + 8;
          puVar9 = puVar14 + 1;
          uVar8 = uVar8 + 1;
          puVar14 = puVar14 + 6;
          uVar4 = (*(code *)PTR_get_offset_with_length_004351bc)(param_1,uVar4,*puVar9);
          puVar9 = *(undefined4 **)(iVar7 + 0x10);
          iVar12 = *(int *)(iVar7 + 0xc);
          *(undefined4 *)puVar18 = uVar4;
          uVar4 = 8;
          if ((uint)(((int)puVar9 - iVar12 >> 3) * -0x55555555) <= uVar8) {
            uVar4 = 0;
          }
          *(undefined4 *)(puVar18 + 4) = uVar4;
          puVar18 = puVar11;
        } while (puVar9 != puVar14);
        piVar6 = *(int **)(this + 4);
        if (piVar6 == piVar20 + 1) goto LAB_002646d4;
      }
      piVar20 = piVar20 + 1;
      piVar19 = *(int **)this;
      puVar18 = puVar11;
    } while( true );
  }
  uVar16 = 0;
  goto LAB_002646dc;
LAB_002646d4:
  piVar19 = piVar20 + 1;
  uVar16 = (int)puVar11 - (int)puVar2;
LAB_002646dc:
  uVar4 = 0x71c;
  if (uVar17 == uVar16) {
    iVar7 = *(int *)this;
    *param_2 = puVar2;
    *param_3 = uVar17;
    *param_4 = (int)piVar19 - iVar7 >> 2;
    return;
  }
LAB_00264764:
  (*(code *)PTR_do_gold_unreachable_004323c4)
            (PTR_DAT_0043226c + 0x13e0,uVar4,PTR_DAT_0043226c + 0x17f0);
  return;
}

