
/* DWARF original prototype: void find_dynsym_sections(Sized_dynobj<64,_true> * this, uchar *
   pshdrs, uint * pversym_shndx, uint * pverdef_shndx, uint * pverneed_shndx, uint * pdynamic_shndx)
    */

void __thiscall
gold::Sized_dynobj<64,_true>::find_dynsym_sections
          (Sized_dynobj<64,_true> *this,uchar *pshdrs,uint *pversym_shndx,uint *pverdef_shndx,
          uint *pverneed_shndx,uint *pdynamic_shndx)

{
  undefined *puVar1;
  undefined *puVar2;
  uint uVar3;
  undefined4 uVar4;
  Xindex *pXVar5;
  Object *pOVar6;
  Object *this_00;
  int iVar7;
  Sized_dynobj<64,_true> *pSVar8;
  uint uVar9;
  _func_int_varargs **pp_Var10;
  uint uVar11;
  uint *puVar12;
  uchar *puVar13;
  uint uVar14;
  uint uVar15;
  uint local_34;
  
  *pversym_shndx = 0xffffffff;
  *pverdef_shndx = 0xffffffff;
  *pverneed_shndx = 0xffffffff;
  *pdynamic_shndx = 0xffffffff;
  uVar14 = (this->super_Dynobj).super_Object.shnum_;
  if (uVar14 != 0) {
    puVar2 = PTR_s__s_004c1a50 + -0xd94;
    uVar11 = 0;
    local_34 = 0;
    uVar9 = 0;
    uVar15 = 0;
    puVar13 = pshdrs;
    do {
      uVar3 = *(uint *)(puVar13 + 4);
      pSVar8 = this;
      if (uVar3 == 0x12) {
        uVar9 = *(uint *)(puVar13 + 0x28);
        local_34 = uVar11;
        if (uVar9 < 0xff00) {
          if (this->dynsym_shndx_ == uVar9) {
LAB_0016da7c:
            (*(code *)PTR_initialize_shnum_004c1fc0)(&this->elf_file_);
            pp_Var10 = (_func_int_varargs **)(this->elf_file_).large_shndx_offset_;
            pOVar6 = (Object *)(*(code *)PTR_operator_new_004c13a8)(0x10);
            (((_Vector_base<unsigned_int,_std::allocator<unsigned_int>_> *)
             &(pOVar6->name_)._M_dataplus)->_M_impl)._M_start = (pointer)0x0;
            pOVar6->_vptr_Object = pp_Var10;
            (pOVar6->name_)._M_string_length = 0;
            puVar1 = PTR_read_symtab_xindex<64,_true>_004c36c0;
            (pOVar6->name_).field_2._M_allocated_capacity = 0;
            this_00 = pOVar6;
            (*(code *)puVar1)(pOVar6,this,uVar11,pshdrs);
            if ((this->super_Dynobj).super_Object.xindex_ != (Xindex *)0x0) goto LAB_0016db64;
            (this->super_Dynobj).super_Object.xindex_ = (Xindex *)pOVar6;
          }
        }
        else {
          (*(code *)PTR_initialize_shnum_004c1fc0)(&this->elf_file_);
          uVar9 = uVar9 + (this->elf_file_).large_shndx_offset_;
          if (this->dynsym_shndx_ == uVar9) goto LAB_0016da7c;
        }
      }
      else if (uVar3 < 0x13) {
        puVar12 = pdynamic_shndx;
        if (uVar3 == 6) goto LAB_0016d91c;
        if (uVar3 == 0xb) {
          this->dynsym_shndx_ = uVar11;
          if ((local_34 != 0) && (uVar9 == uVar11)) {
            (*(code *)PTR_initialize_shnum_004c1fc0)(&this->elf_file_);
            iVar7 = (this->elf_file_).large_shndx_offset_;
            pXVar5 = (Xindex *)(*(code *)PTR_operator_new_004c13a8)(0x10);
            puVar1 = PTR_read_symtab_xindex<64,_true>_004c36c0;
            pXVar5->large_shndx_offset_ = iVar7;
            (pXVar5->symtab_xindex_).super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>
            ._M_impl._M_start = (pointer)0x0;
            (pXVar5->symtab_xindex_).super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>
            ._M_impl._M_finish = (pointer)0x0;
            (pXVar5->symtab_xindex_).super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>
            ._M_impl._M_end_of_storage = (pointer)0x0;
            (*(code *)puVar1)(pXVar5,this,local_34,pshdrs);
            this_00 = (Object *)(this->super_Dynobj).super_Object.xindex_;
            if (this_00 != (Object *)0x0) goto LAB_0016db64;
            (this->super_Dynobj).super_Object.xindex_ = pXVar5;
          }
        }
        else if (uVar3 == 2) {
          uVar15 = uVar11;
        }
      }
      else {
        puVar12 = pverneed_shndx;
        if (((uVar3 == 0x6ffffffe) || (puVar12 = pversym_shndx, uVar3 == 0x6fffffff)) ||
           (puVar12 = pverdef_shndx, uVar3 == 0x6ffffffd)) {
LAB_0016d91c:
          if (*puVar12 != 0xffffffff) {
            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);
            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar13 + 4),*puVar12,uVar11);
          }
          *puVar12 = uVar11;
        }
      }
      puVar13 = puVar13 + 0x40;
      uVar11 = uVar11 + 1;
    } while (uVar11 != uVar14);
    if (((this->dynsym_shndx_ == 0xffffffff) && (uVar15 != 0)) &&
       ((this->dynsym_shndx_ = uVar15, local_34 != 0 && (uVar15 == uVar9)))) {
      (*(code *)PTR_initialize_shnum_004c1fc0)(&this->elf_file_);
      pp_Var10 = (_func_int_varargs **)(this->elf_file_).large_shndx_offset_;
      pOVar6 = (Object *)(*(code *)PTR_operator_new_004c13a8)(0x10);
      pOVar6->_vptr_Object = pp_Var10;
      (((_Vector_base<unsigned_int,_std::allocator<unsigned_int>_> *)&(pOVar6->name_)._M_dataplus)->
      _M_impl)._M_start = (pointer)0x0;
      (pOVar6->name_)._M_string_length = 0;
      puVar2 = PTR_read_symtab_xindex<64,_true>_004c36c0;
      (pOVar6->name_).field_2._M_allocated_capacity = 0;
      this_00 = pOVar6;
      pSVar8 = this;
      (*(code *)puVar2)(pOVar6,this,local_34,pshdrs);
      if ((this->super_Dynobj).super_Object.xindex_ != (Xindex *)0x0) {
LAB_0016db64:
                    /* WARNING: Subroutine does not return */
        Object::set_xindex(this_00,(Xindex *)pSVar8);
      }
      (this->super_Dynobj).super_Object.xindex_ = (Xindex *)pOVar6;
    }
  }
  return;
}



/* gold::Sized_dynobj<64, true>::find_dynsym_sections(unsigned char const*, unsigned int*, unsigned
   int*, unsigned int*, unsigned int*) */

void __thiscall
gold::Sized_dynobj<64,true>::find_dynsym_sections
          (Sized_dynobj<64,true> *this,uchar *param_1,uint *param_2,uint *param_3,uint *param_4,
          uint *param_5)

{
  undefined *puVar1;
  undefined *puVar2;
  uint uVar3;
  undefined4 uVar4;
  undefined4 *puVar5;
  uint uVar6;
  uint uVar7;
  uint *puVar8;
  uchar *puVar9;
  uint uVar10;
  uint uVar11;
  uint local_34;
  
  *param_2 = 0xffffffff;
  *param_3 = 0xffffffff;
  *param_4 = 0xffffffff;
  *param_5 = 0xffffffff;
  uVar10 = *(uint *)(this + 0x28);
  if (uVar10 != 0) {
    puVar2 = PTR_s__s_004c1a50 + -0xd94;
    uVar7 = 0;
    local_34 = 0;
    uVar6 = 0;
    uVar11 = 0;
    puVar9 = param_1;
    do {
      uVar3 = *(uint *)(puVar9 + 4);
      if (uVar3 == 0x12) {
        uVar6 = *(uint *)(puVar9 + 0x28);
        local_34 = uVar7;
        if (uVar6 < 0xff00) {
          if (*(uint *)(this + 0x80) == uVar6) {
LAB_0016da7c:
            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);
            uVar4 = *(undefined4 *)(this + 0x78);
            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);
            puVar5[1] = 0;
            *puVar5 = uVar4;
            puVar5[2] = 0;
            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;
            puVar5[3] = 0;
            (*(code *)puVar1)(puVar5,this,uVar7,param_1);
            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;
            *(undefined4 **)(this + 0x30) = puVar5;
          }
        }
        else {
          (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);
          uVar6 = uVar6 + *(int *)(this + 0x78);
          if (*(uint *)(this + 0x80) == uVar6) goto LAB_0016da7c;
        }
      }
      else if (uVar3 < 0x13) {
        puVar8 = param_5;
        if (uVar3 == 6) goto LAB_0016d91c;
        if (uVar3 == 0xb) {
          *(uint *)(this + 0x80) = uVar7;
          if ((local_34 != 0) && (uVar6 == uVar7)) {
            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);
            uVar4 = *(undefined4 *)(this + 0x78);
            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);
            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;
            *puVar5 = uVar4;
            puVar5[1] = 0;
            puVar5[2] = 0;
            puVar5[3] = 0;
            (*(code *)puVar1)(puVar5,this,local_34,param_1);
            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;
            *(undefined4 **)(this + 0x30) = puVar5;
          }
        }
        else if (uVar3 == 2) {
          uVar11 = uVar7;
        }
      }
      else {
        puVar8 = param_4;
        if (((uVar3 == 0x6ffffffe) || (puVar8 = param_2, uVar3 == 0x6fffffff)) ||
           (puVar8 = param_3, uVar3 == 0x6ffffffd)) {
LAB_0016d91c:
          if (*puVar8 != 0xffffffff) {
            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);
            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar9 + 4),*puVar8,uVar7);
          }
          *puVar8 = uVar7;
        }
      }
      puVar9 = puVar9 + 0x40;
      uVar7 = uVar7 + 1;
    } while (uVar7 != uVar10);
    if (((*(int *)(this + 0x80) == -1) && (uVar11 != 0)) &&
       ((*(uint *)(this + 0x80) = uVar11, local_34 != 0 && (uVar11 == uVar6)))) {
      (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);
      uVar4 = *(undefined4 *)(this + 0x78);
      puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);
      *puVar5 = uVar4;
      puVar5[1] = 0;
      puVar5[2] = 0;
      puVar2 = PTR_read_symtab_xindex<64,true>_004c36c0;
      puVar5[3] = 0;
      (*(code *)puVar2)(puVar5,this,local_34,param_1);
      if (*(int *)(this + 0x30) != 0) {
LAB_0016db64:
                    /* WARNING: Subroutine does not return */
        FUN_0015f554();
      }
      *(undefined4 **)(this + 0x30) = puVar5;
    }
  }
  return;
}


lui gp,0x36
addiu gp,gp,-0x45e8
addu gp,gp,t9
addiu sp,sp,-0x60
li v0,-0x1
lw v1,0x70(sp)
sw gp,0x18(sp)
sw s7,0x54(sp)
sw ra,0x5c(sp)
sw s8,0x58(sp)
sw s6,0x50(sp)
sw s5,0x4c(sp)
sw s4,0x48(sp)
sw s3,0x44(sp)
sw s2,0x40(sp)
sw s1,0x3c(sp)
sw s0,0x38(sp)
sw v0,0x0(a2)
sw v0,0x0(a3)
sw v0,0x0(v1)
lw v1,0x74(sp)
sw v0,0x0(v1)
lw s7,0x28(a0)
beq s7,zero,0x0016d978
_lw s4,-0x77f0(gp)
lui t2,0x6fff
sw a1,0x30(sp)
or s0,a0,zero
ori s2,t2,0xfffe
sw a3,0x28(sp)
addiu v0,s4,-0xd94
sw a2,0x24(sp)
or s3,zero,zero
sw zero,0x2c(sp)
or s1,zero,zero
sw v0,0x20(sp)
or s8,zero,zero
addiu s6,s2,0x1
b 0x0016d8ec
_or s5,a1,zero
li a0,0x6
beq v0,a0,0x0016d9b0
_li a0,0xb
beq v0,a0,0x0016d9e0
_xori v0,v0,0x2
movz s8,s3,v0
addiu s3,s3,0x1
beq s3,s7,0x0016d968
_addiu s5,s5,0x40
lw v0,0x4(s5)
li a0,0x12
beq v0,a0,0x0016d9b8
_sltiu a0,v0,0x13
bne a0,zero,0x0016d8c8
_nop
beq v0,s2,0x0016d91c
_lw s4,0x70(sp)
beq v0,s6,0x0016d9a8
_addiu a0,s2,-0x1
bne v0,a0,0x0016d8e0
_lw s4,0x28(sp)
lw a0,0x0(s4)
li v0,-0x1
beq a0,v0,0x0016d958
_lw t9,-0x3610(gp)
jalr t9
_lw a0,0x20(sp)
or a0,s0,zero
lw gp,0x18(sp)
or a1,v0,zero
lw a3,0x0(s4)
lw a2,0x4(s5)
lw t9,-0x77ec(gp)
jalr t9
_sw s3,0x10(sp)
lw gp,0x18(sp)
sw s3,0x0(s4)
addiu s3,s3,0x1
bne s3,s7,0x0016d8ec
_addiu s5,s5,0x40
lw v1,0x80(s0)
li v0,-0x1
beq v1,v0,0x0016dae8
_nop
lw ra,0x5c(sp)
lw s8,0x58(sp)
lw s7,0x54(sp)
lw s6,0x50(sp)
lw s5,0x4c(sp)
lw s4,0x48(sp)
lw s3,0x44(sp)
lw s2,0x40(sp)
lw s1,0x3c(sp)
lw s0,0x38(sp)
jr ra
_addiu sp,sp,0x60
b 0x0016d91c
_lw s4,0x24(sp)
b 0x0016d91c
_lw s4,0x74(sp)
lw s1,0x28(s5)
ori v0,zero,0xff00
sltu v0,s1,v0
beq v0,zero,0x0016da5c
_lw t9,-0x7280(gp)
lw v0,0x80(s0)
beq v0,s1,0x0016da7c
_nop
b 0x0016d8e0
_sw s3,0x2c(sp)
lw v0,0x2c(sp)
beq v0,zero,0x0016d8e0
_sw s3,0x80(s0)
bne s1,s3,0x0016d8e0
_lw t9,-0x7280(gp)
jalr t9
_addiu a0,s0,0x60
li a0,0x10
lw gp,0x18(sp)
lw a1,0x78(s0)
lw t9,-0x7e98(gp)
jalr t9
_sw a1,0x34(sp)
lw gp,0x18(sp)
or a0,v0,zero
lw a1,0x34(sp)
or s4,v0,zero
lw a3,0x30(sp)
lw a2,0x2c(sp)
lw t9,-0x5b80(gp)
sw a1,0x0(v0)
or a1,s0,zero
sw zero,0x4(v0)
sw zero,0x8(v0)
jalr t9
_sw zero,0xc(v0)
lw a0,0x30(s0)
bne a0,zero,0x0016db64
_lw gp,0x18(sp)
b 0x0016d8e0
_sw s4,0x30(s0)
jalr t9
_addiu a0,s0,0x60
lw v0,0x78(s0)
addu s1,s1,v0
lw v0,0x80(s0)
bne v0,s1,0x0016d9d8
_lw gp,0x18(sp)
lw t9,-0x7280(gp)
jalr t9
_addiu a0,s0,0x60
li a0,0x10
lw gp,0x18(sp)
lw a1,0x78(s0)
lw t9,-0x7e98(gp)
jalr t9
_sw a1,0x2c(sp)
or a2,s3,zero
lw gp,0x18(sp)
or a0,v0,zero
lw a1,0x2c(sp)
or s4,v0,zero
lw a3,0x30(sp)
sw zero,0x4(v0)
sw a1,0x0(v0)
or a1,s0,zero
sw zero,0x8(v0)
lw t9,-0x5b80(gp)
jalr t9
_sw zero,0xc(v0)
lw v0,0x30(s0)
bne v0,zero,0x0016db64
_lw gp,0x18(sp)
sw s4,0x30(s0)
b 0x0016d8e0
_sw s3,0x2c(sp)
beq s8,zero,0x0016d978
_lw v0,0x2c(sp)
beq v0,zero,0x0016d978
_sw s8,0x80(s0)
bne s8,s1,0x0016d97c
_lw ra,0x5c(sp)
lw t9,-0x7280(gp)
jalr t9
_addiu a0,s0,0x60
li a0,0x10
lw gp,0x18(sp)
lw t9,-0x7e98(gp)
jalr t9
_lw s2,0x78(s0)
or a1,s0,zero
lw gp,0x18(sp)
or a0,v0,zero
lw a3,0x30(sp)
or s1,v0,zero
lw a2,0x2c(sp)
sw s2,0x0(v0)
sw zero,0x4(v0)
sw zero,0x8(v0)
lw t9,-0x5b80(gp)
jalr t9
_sw zero,0xc(v0)
lw v0,0x30(s0)
bne v0,zero,0x0016db64
_lw gp,0x18(sp)
b 0x0016d978
_sw s1,0x30(s0)
lw t9,-0x6e1c(gp)
addiu t9,t9,-0xaac
bal 0x0015f554
_nop
(translation_unit "/* gold::Sized_dynobj<64, true>::find_dynsym_sections(unsigned char const*, unsigned int*, unsigned\n   int*, unsigned int*, unsigned int*) */\n\nvoid __thiscall\ngold::Sized_dynobj<64,true>::find_dynsym_sections\n          (Sized_dynobj<64,true> *this,uchar *param_1,uint *param_2,uint *param_3,uint *param_4,\n          uint *param_5)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  uint uVar3;\n  undefined4 uVar4;\n  undefined4 *puVar5;\n  uint uVar6;\n  uint uVar7;\n  uint *puVar8;\n  uchar *puVar9;\n  uint uVar10;\n  uint uVar11;\n  uint local_34;\n  \n  *param_2 = 0xffffffff;\n  *param_3 = 0xffffffff;\n  *param_4 = 0xffffffff;\n  *param_5 = 0xffffffff;\n  uVar10 = *(uint *)(this + 0x28);\n  if (uVar10 != 0) {\n    puVar2 = PTR_s__s_004c1a50 + -0xd94;\n    uVar7 = 0;\n    local_34 = 0;\n    uVar6 = 0;\n    uVar11 = 0;\n    puVar9 = param_1;\n    do {\n      uVar3 = *(uint *)(puVar9 + 4);\n      if (uVar3 == 0x12) {\n        uVar6 = *(uint *)(puVar9 + 0x28);\n        local_34 = uVar7;\n        if (uVar6 < 0xff00) {\n          if (*(uint *)(this + 0x80) == uVar6) {\nLAB_0016da7c:\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar5[1] = 0;\n            *puVar5 = uVar4;\n            puVar5[2] = 0;\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,uVar7,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }\n        else {\n          (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n          uVar6 = uVar6 + *(int *)(this + 0x78);\n          if (*(uint *)(this + 0x80) == uVar6) goto LAB_0016da7c;\n        }\n      }\n      else if (uVar3 < 0x13) {\n        puVar8 = param_5;\n        if (uVar3 == 6) goto LAB_0016d91c;\n        if (uVar3 == 0xb) {\n          *(uint *)(this + 0x80) = uVar7;\n          if ((local_34 != 0) && (uVar6 == uVar7)) {\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            *puVar5 = uVar4;\n            puVar5[1] = 0;\n            puVar5[2] = 0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,local_34,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }\n        else if (uVar3 == 2) {\n          uVar11 = uVar7;\n        }\n      }\n      else {\n        puVar8 = param_4;\n        if (((uVar3 == 0x6ffffffe) || (puVar8 = param_2, uVar3 == 0x6fffffff)) ||\n           (puVar8 = param_3, uVar3 == 0x6ffffffd)) {\nLAB_0016d91c:\n          if (*puVar8 != 0xffffffff) {\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar9 + 4),*puVar8,uVar7);\n          }\n          *puVar8 = uVar7;\n        }\n      }\n      puVar9 = puVar9 + 0x40;\n      uVar7 = uVar7 + 1;\n    } while (uVar7 != uVar10);\n    if (((*(int *)(this + 0x80) == -1) && (uVar11 != 0)) &&\n       ((*(uint *)(this + 0x80) = uVar11, local_34 != 0 && (uVar11 == uVar6)))) {\n      (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n      uVar4 = *(undefined4 *)(this + 0x78);\n      puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n      *puVar5 = uVar4;\n      puVar5[1] = 0;\n      puVar5[2] = 0;\n      puVar2 = PTR_read_symtab_xindex<64,true>_004c36c0;\n      puVar5[3] = 0;\n      (*(code *)puVar2)(puVar5,this,local_34,param_1);\n      if (*(int *)(this + 0x30) != 0) {\nLAB_0016db64:\n                    /* WARNING: Subroutine does not return */\n        FUN_0015f554();\n      }\n      *(undefined4 **)(this + 0x30) = puVar5;\n    }\n  }\n  return;\n}\n\n" comment (declaration "void __thiscall\ngold::Sized_dynobj<64,true>::find_dynsym_sections\n          (Sized_dynobj<64,true> *this,uchar *param_1,uint *param_2,uint *param_3,uint *param_4,\n          uint *param_5)\n\n{\n  undefined *puVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::" identifier : :) identifier (ERROR "<64" < number_literal) , (ERROR "true>::find_dynsym_sections\n          (Sized_dynobj<64,true> *this,uchar *param_1,uint *param_2,uint *param_3,uint *param_4,\n          uint *param_5)\n\n{\n  undefined" identifier > : : (function_declarator "find_dynsym_sections\n          (Sized_dynobj<64,true> *this,uchar *param_1,uint *param_2,uint *param_3,uint *param_4,\n          uint *param_5)" identifier (parameter_list "(Sized_dynobj<64,true> *this,uchar *param_1,uint *param_2,uint *param_3,uint *param_4,\n          uint *param_5)" ( (parameter_declaration "Sized_dynobj" type_identifier) (ERROR "<64" < number_literal) , (parameter_declaration "true> *this" type_identifier (ERROR ">" >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "uchar *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint *param_2" type_identifier (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)) , (parameter_declaration "uint *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) ))) { identifier) (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "uint *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "uchar *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "uint local_34;" type_identifier identifier ;) (expression_statement "*param_2 = 0xffffffff;" (assignment_expression "*param_2 = 0xffffffff" (pointer_expression "*param_2" * identifier) = number_literal) ;) (expression_statement "*param_3 = 0xffffffff;" (assignment_expression "*param_3 = 0xffffffff" (pointer_expression "*param_3" * identifier) = number_literal) ;) (expression_statement "*param_4 = 0xffffffff;" (assignment_expression "*param_4 = 0xffffffff" (pointer_expression "*param_4" * identifier) = number_literal) ;) (expression_statement "*param_5 = 0xffffffff;" (assignment_expression "*param_5 = 0xffffffff" (pointer_expression "*param_5" * identifier) = number_literal) ;) (expression_statement "uVar10 = *(uint *)(this + 0x28);" (assignment_expression "uVar10 = *(uint *)(this + 0x28)" identifier = (pointer_expression "*(uint *)(this + 0x28)" * (cast_expression "(uint *)(this + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x28)" ( (binary_expression "this + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (uVar10 != 0) {\n    puVar2 = PTR_s__s_004c1a50 + -0xd94;\n    uVar7 = 0;\n    local_34 = 0;\n    uVar6 = 0;\n    uVar11 = 0;\n    puVar9 = param_1;\n    do {\n      uVar3 = *(uint *)(puVar9 + 4);\n      if (uVar3 == 0x12) {\n        uVar6 = *(uint *)(puVar9 + 0x28);\n        local_34 = uVar7;\n        if (uVar6 < 0xff00) {\n          if (*(uint *)(this + 0x80) == uVar6) {\nLAB_0016da7c:\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar5[1] = 0;\n            *puVar5 = uVar4;\n            puVar5[2] = 0;\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,uVar7,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }\n        else {\n          (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n          uVar6 = uVar6 + *(int *)(this + 0x78);\n          if (*(uint *)(this + 0x80) == uVar6) goto LAB_0016da7c;\n        }\n      }\n      else if (uVar3 < 0x13) {\n        puVar8 = param_5;\n        if (uVar3 == 6) goto LAB_0016d91c;\n        if (uVar3 == 0xb) {\n          *(uint *)(this + 0x80) = uVar7;\n          if ((local_34 != 0) && (uVar6 == uVar7)) {\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            *puVar5 = uVar4;\n            puVar5[1] = 0;\n            puVar5[2] = 0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,local_34,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }\n        else if (uVar3 == 2) {\n          uVar11 = uVar7;\n        }\n      }\n      else {\n        puVar8 = param_4;\n        if (((uVar3 == 0x6ffffffe) || (puVar8 = param_2, uVar3 == 0x6fffffff)) ||\n           (puVar8 = param_3, uVar3 == 0x6ffffffd)) {\nLAB_0016d91c:\n          if (*puVar8 != 0xffffffff) {\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar9 + 4),*puVar8,uVar7);\n          }\n          *puVar8 = uVar7;\n        }\n      }\n      puVar9 = puVar9 + 0x40;\n      uVar7 = uVar7 + 1;\n    } while (uVar7 != uVar10);\n    if (((*(int *)(this + 0x80) == -1) && (uVar11 != 0)) &&\n       ((*(uint *)(this + 0x80) = uVar11, local_34 != 0 && (uVar11 == uVar6)))) {\n      (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n      uVar4 = *(undefined4 *)(this + 0x78);\n      puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n      *puVar5 = uVar4;\n      puVar5[1] = 0;\n      puVar5[2] = 0;\n      puVar2 = PTR_read_symtab_xindex<64,true>_004c36c0;\n      puVar5[3] = 0;\n      (*(code *)puVar2)(puVar5,this,local_34,param_1);\n      if (*(int *)(this + 0x30) != 0) {\nLAB_0016db64:\n                    /* WARNING: Subroutine does not return */\n        FUN_0015f554();\n      }\n      *(undefined4 **)(this + 0x30) = puVar5;\n    }\n  }" if (parenthesized_expression "(uVar10 != 0)" ( (binary_expression "uVar10 != 0" identifier != number_literal) )) (compound_statement "{\n    puVar2 = PTR_s__s_004c1a50 + -0xd94;\n    uVar7 = 0;\n    local_34 = 0;\n    uVar6 = 0;\n    uVar11 = 0;\n    puVar9 = param_1;\n    do {\n      uVar3 = *(uint *)(puVar9 + 4);\n      if (uVar3 == 0x12) {\n        uVar6 = *(uint *)(puVar9 + 0x28);\n        local_34 = uVar7;\n        if (uVar6 < 0xff00) {\n          if (*(uint *)(this + 0x80) == uVar6) {\nLAB_0016da7c:\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar5[1] = 0;\n            *puVar5 = uVar4;\n            puVar5[2] = 0;\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,uVar7,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }\n        else {\n          (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n          uVar6 = uVar6 + *(int *)(this + 0x78);\n          if (*(uint *)(this + 0x80) == uVar6) goto LAB_0016da7c;\n        }\n      }\n      else if (uVar3 < 0x13) {\n        puVar8 = param_5;\n        if (uVar3 == 6) goto LAB_0016d91c;\n        if (uVar3 == 0xb) {\n          *(uint *)(this + 0x80) = uVar7;\n          if ((local_34 != 0) && (uVar6 == uVar7)) {\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            *puVar5 = uVar4;\n            puVar5[1] = 0;\n            puVar5[2] = 0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,local_34,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }\n        else if (uVar3 == 2) {\n          uVar11 = uVar7;\n        }\n      }\n      else {\n        puVar8 = param_4;\n        if (((uVar3 == 0x6ffffffe) || (puVar8 = param_2, uVar3 == 0x6fffffff)) ||\n           (puVar8 = param_3, uVar3 == 0x6ffffffd)) {\nLAB_0016d91c:\n          if (*puVar8 != 0xffffffff) {\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar9 + 4),*puVar8,uVar7);\n          }\n          *puVar8 = uVar7;\n        }\n      }\n      puVar9 = puVar9 + 0x40;\n      uVar7 = uVar7 + 1;\n    } while (uVar7 != uVar10);\n    if (((*(int *)(this + 0x80) == -1) && (uVar11 != 0)) &&\n       ((*(uint *)(this + 0x80) = uVar11, local_34 != 0 && (uVar11 == uVar6)))) {\n      (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n      uVar4 = *(undefined4 *)(this + 0x78);\n      puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n      *puVar5 = uVar4;\n      puVar5[1] = 0;\n      puVar5[2] = 0;\n      puVar2 = PTR_read_symtab_xindex<64,true>_004c36c0;\n      puVar5[3] = 0;\n      (*(code *)puVar2)(puVar5,this,local_34,param_1);\n      if (*(int *)(this + 0x30) != 0) {\nLAB_0016db64:\n                    /* WARNING: Subroutine does not return */\n        FUN_0015f554();\n      }\n      *(undefined4 **)(this + 0x30) = puVar5;\n    }\n  }" { (expression_statement "puVar2 = PTR_s__s_004c1a50 + -0xd94;" (assignment_expression "puVar2 = PTR_s__s_004c1a50 + -0xd94" identifier = (binary_expression "PTR_s__s_004c1a50 + -0xd94" identifier + number_literal)) ;) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (expression_statement "puVar9 = param_1;" (assignment_expression "puVar9 = param_1" identifier = identifier) ;) (do_statement "do {\n      uVar3 = *(uint *)(puVar9 + 4);\n      if (uVar3 == 0x12) {\n        uVar6 = *(uint *)(puVar9 + 0x28);\n        local_34 = uVar7;\n        if (uVar6 < 0xff00) {\n          if (*(uint *)(this + 0x80) == uVar6) {\nLAB_0016da7c:\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar5[1] = 0;\n            *puVar5 = uVar4;\n            puVar5[2] = 0;\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,uVar7,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }\n        else {\n          (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n          uVar6 = uVar6 + *(int *)(this + 0x78);\n          if (*(uint *)(this + 0x80) == uVar6) goto LAB_0016da7c;\n        }\n      }\n      else if (uVar3 < 0x13) {\n        puVar8 = param_5;\n        if (uVar3 == 6) goto LAB_0016d91c;\n        if (uVar3 == 0xb) {\n          *(uint *)(this + 0x80) = uVar7;\n          if ((local_34 != 0) && (uVar6 == uVar7)) {\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            *puVar5 = uVar4;\n            puVar5[1] = 0;\n            puVar5[2] = 0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,local_34,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }\n        else if (uVar3 == 2) {\n          uVar11 = uVar7;\n        }\n      }\n      else {\n        puVar8 = param_4;\n        if (((uVar3 == 0x6ffffffe) || (puVar8 = param_2, uVar3 == 0x6fffffff)) ||\n           (puVar8 = param_3, uVar3 == 0x6ffffffd)) {\nLAB_0016d91c:\n          if (*puVar8 != 0xffffffff) {\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar9 + 4),*puVar8,uVar7);\n          }\n          *puVar8 = uVar7;\n        }\n      }\n      puVar9 = puVar9 + 0x40;\n      uVar7 = uVar7 + 1;\n    } while (uVar7 != uVar10);" do (compound_statement "{\n      uVar3 = *(uint *)(puVar9 + 4);\n      if (uVar3 == 0x12) {\n        uVar6 = *(uint *)(puVar9 + 0x28);\n        local_34 = uVar7;\n        if (uVar6 < 0xff00) {\n          if (*(uint *)(this + 0x80) == uVar6) {\nLAB_0016da7c:\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar5[1] = 0;\n            *puVar5 = uVar4;\n            puVar5[2] = 0;\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,uVar7,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }\n        else {\n          (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n          uVar6 = uVar6 + *(int *)(this + 0x78);\n          if (*(uint *)(this + 0x80) == uVar6) goto LAB_0016da7c;\n        }\n      }\n      else if (uVar3 < 0x13) {\n        puVar8 = param_5;\n        if (uVar3 == 6) goto LAB_0016d91c;\n        if (uVar3 == 0xb) {\n          *(uint *)(this + 0x80) = uVar7;\n          if ((local_34 != 0) && (uVar6 == uVar7)) {\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            *puVar5 = uVar4;\n            puVar5[1] = 0;\n            puVar5[2] = 0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,local_34,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }\n        else if (uVar3 == 2) {\n          uVar11 = uVar7;\n        }\n      }\n      else {\n        puVar8 = param_4;\n        if (((uVar3 == 0x6ffffffe) || (puVar8 = param_2, uVar3 == 0x6fffffff)) ||\n           (puVar8 = param_3, uVar3 == 0x6ffffffd)) {\nLAB_0016d91c:\n          if (*puVar8 != 0xffffffff) {\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar9 + 4),*puVar8,uVar7);\n          }\n          *puVar8 = uVar7;\n        }\n      }\n      puVar9 = puVar9 + 0x40;\n      uVar7 = uVar7 + 1;\n    }" { (expression_statement "uVar3 = *(uint *)(puVar9 + 4);" (assignment_expression "uVar3 = *(uint *)(puVar9 + 4)" identifier = (pointer_expression "*(uint *)(puVar9 + 4)" * (cast_expression "(uint *)(puVar9 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 4)" ( (binary_expression "puVar9 + 4" identifier + number_literal) ))))) ;) (if_statement "if (uVar3 == 0x12) {\n        uVar6 = *(uint *)(puVar9 + 0x28);\n        local_34 = uVar7;\n        if (uVar6 < 0xff00) {\n          if (*(uint *)(this + 0x80) == uVar6) {\nLAB_0016da7c:\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar5[1] = 0;\n            *puVar5 = uVar4;\n            puVar5[2] = 0;\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,uVar7,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }\n        else {\n          (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n          uVar6 = uVar6 + *(int *)(this + 0x78);\n          if (*(uint *)(this + 0x80) == uVar6) goto LAB_0016da7c;\n        }\n      }\n      else if (uVar3 < 0x13) {\n        puVar8 = param_5;\n        if (uVar3 == 6) goto LAB_0016d91c;\n        if (uVar3 == 0xb) {\n          *(uint *)(this + 0x80) = uVar7;\n          if ((local_34 != 0) && (uVar6 == uVar7)) {\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            *puVar5 = uVar4;\n            puVar5[1] = 0;\n            puVar5[2] = 0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,local_34,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }\n        else if (uVar3 == 2) {\n          uVar11 = uVar7;\n        }\n      }\n      else {\n        puVar8 = param_4;\n        if (((uVar3 == 0x6ffffffe) || (puVar8 = param_2, uVar3 == 0x6fffffff)) ||\n           (puVar8 = param_3, uVar3 == 0x6ffffffd)) {\nLAB_0016d91c:\n          if (*puVar8 != 0xffffffff) {\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar9 + 4),*puVar8,uVar7);\n          }\n          *puVar8 = uVar7;\n        }\n      }" if (parenthesized_expression "(uVar3 == 0x12)" ( (binary_expression "uVar3 == 0x12" identifier == number_literal) )) (compound_statement "{\n        uVar6 = *(uint *)(puVar9 + 0x28);\n        local_34 = uVar7;\n        if (uVar6 < 0xff00) {\n          if (*(uint *)(this + 0x80) == uVar6) {\nLAB_0016da7c:\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar5[1] = 0;\n            *puVar5 = uVar4;\n            puVar5[2] = 0;\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,uVar7,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }\n        else {\n          (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n          uVar6 = uVar6 + *(int *)(this + 0x78);\n          if (*(uint *)(this + 0x80) == uVar6) goto LAB_0016da7c;\n        }\n      }" { (expression_statement "uVar6 = *(uint *)(puVar9 + 0x28);" (assignment_expression "uVar6 = *(uint *)(puVar9 + 0x28)" identifier = (pointer_expression "*(uint *)(puVar9 + 0x28)" * (cast_expression "(uint *)(puVar9 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0x28)" ( (binary_expression "puVar9 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "local_34 = uVar7;" (assignment_expression "local_34 = uVar7" identifier = identifier) ;) (if_statement "if (uVar6 < 0xff00) {\n          if (*(uint *)(this + 0x80) == uVar6) {\nLAB_0016da7c:\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar5[1] = 0;\n            *puVar5 = uVar4;\n            puVar5[2] = 0;\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,uVar7,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }\n        else {\n          (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n          uVar6 = uVar6 + *(int *)(this + 0x78);\n          if (*(uint *)(this + 0x80) == uVar6) goto LAB_0016da7c;\n        }" if (parenthesized_expression "(uVar6 < 0xff00)" ( (binary_expression "uVar6 < 0xff00" identifier < number_literal) )) (compound_statement "{\n          if (*(uint *)(this + 0x80) == uVar6) {\nLAB_0016da7c:\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar5[1] = 0;\n            *puVar5 = uVar4;\n            puVar5[2] = 0;\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,uVar7,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }" { (if_statement "if (*(uint *)(this + 0x80) == uVar6) {\nLAB_0016da7c:\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar5[1] = 0;\n            *puVar5 = uVar4;\n            puVar5[2] = 0;\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,uVar7,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }" if (parenthesized_expression "(*(uint *)(this + 0x80) == uVar6)" ( (binary_expression "*(uint *)(this + 0x80) == uVar6" (pointer_expression "*(uint *)(this + 0x80)" * (cast_expression "(uint *)(this + 0x80)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x80)" ( (binary_expression "this + 0x80" identifier + number_literal) )))) == identifier) )) (compound_statement "{\nLAB_0016da7c:\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar5[1] = 0;\n            *puVar5 = uVar4;\n            puVar5[2] = 0;\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,uVar7,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }" { (labeled_statement "LAB_0016da7c:\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);" statement_identifier : (expression_statement "(*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);" (call_expression "(*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60)" (parenthesized_expression "(*(code *)PTR_initialize_shnum_004c1fc0)" ( (pointer_expression "*(code *)PTR_initialize_shnum_004c1fc0" * (cast_expression "(code *)PTR_initialize_shnum_004c1fc0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(this + 0x60)" ( (binary_expression "this + 0x60" identifier + number_literal) ))) ;)) (expression_statement "uVar4 = *(undefined4 *)(this + 0x78);" (assignment_expression "uVar4 = *(undefined4 *)(this + 0x78)" identifier = (pointer_expression "*(undefined4 *)(this + 0x78)" * (cast_expression "(undefined4 *)(this + 0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x78)" ( (binary_expression "this + 0x78" identifier + number_literal) ))))) ;) (expression_statement "puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);" (assignment_expression "puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x10)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x10)" ( number_literal ))))) ;) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar5 = uVar4;" (assignment_expression "*puVar5 = uVar4" (pointer_expression "*puVar5" * identifier) = identifier) ;) (expression_statement "puVar5[2] = 0;" (assignment_expression "puVar5[2] = 0" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;" (comma_expression "puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0" (assignment_expression "puVar1 = PTR_read_symtab_xindex<64" identifier = (binary_expression "PTR_read_symtab_xindex<64" identifier < number_literal)) , (binary_expression "true>_004c36c0" true > identifier)) ;) (expression_statement "puVar5[3] = 0;" (assignment_expression "puVar5[3] = 0" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "(*(code *)puVar1)(puVar5,this,uVar7,param_1);" (call_expression "(*(code *)puVar1)(puVar5,this,uVar7,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 "(puVar5,this,uVar7,param_1)" ( identifier , identifier , identifier , identifier ))) ;) (if_statement "if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;" if (parenthesized_expression "(*(int *)(this + 0x30) != 0)" ( (binary_expression "*(int *)(this + 0x30) != 0" (pointer_expression "*(int *)(this + 0x30)" * (cast_expression "(int *)(this + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x30)" ( (binary_expression "this + 0x30" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_0016db64;" goto statement_identifier ;)) (expression_statement "*(undefined4 **)(this + 0x30) = puVar5;" (assignment_expression "*(undefined4 **)(this + 0x30) = puVar5" (pointer_expression "*(undefined4 **)(this + 0x30)" * (cast_expression "(undefined4 **)(this + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x30)" ( (binary_expression "this + 0x30" identifier + number_literal) )))) = identifier) ;) })) }) (else_clause "else {\n          (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n          uVar6 = uVar6 + *(int *)(this + 0x78);\n          if (*(uint *)(this + 0x80) == uVar6) goto LAB_0016da7c;\n        }" else (compound_statement "{\n          (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n          uVar6 = uVar6 + *(int *)(this + 0x78);\n          if (*(uint *)(this + 0x80) == uVar6) goto LAB_0016da7c;\n        }" { (expression_statement "(*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);" (call_expression "(*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60)" (parenthesized_expression "(*(code *)PTR_initialize_shnum_004c1fc0)" ( (pointer_expression "*(code *)PTR_initialize_shnum_004c1fc0" * (cast_expression "(code *)PTR_initialize_shnum_004c1fc0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(this + 0x60)" ( (binary_expression "this + 0x60" identifier + number_literal) ))) ;) (expression_statement "uVar6 = uVar6 + *(int *)(this + 0x78);" (assignment_expression "uVar6 = uVar6 + *(int *)(this + 0x78)" identifier = (binary_expression "uVar6 + *(int *)(this + 0x78)" identifier + (pointer_expression "*(int *)(this + 0x78)" * (cast_expression "(int *)(this + 0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x78)" ( (binary_expression "this + 0x78" identifier + number_literal) )))))) ;) (if_statement "if (*(uint *)(this + 0x80) == uVar6) goto LAB_0016da7c;" if (parenthesized_expression "(*(uint *)(this + 0x80) == uVar6)" ( (binary_expression "*(uint *)(this + 0x80) == uVar6" (pointer_expression "*(uint *)(this + 0x80)" * (cast_expression "(uint *)(this + 0x80)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x80)" ( (binary_expression "this + 0x80" identifier + number_literal) )))) == identifier) )) (goto_statement "goto LAB_0016da7c;" goto statement_identifier ;)) }))) }) (else_clause "else if (uVar3 < 0x13) {\n        puVar8 = param_5;\n        if (uVar3 == 6) goto LAB_0016d91c;\n        if (uVar3 == 0xb) {\n          *(uint *)(this + 0x80) = uVar7;\n          if ((local_34 != 0) && (uVar6 == uVar7)) {\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            *puVar5 = uVar4;\n            puVar5[1] = 0;\n            puVar5[2] = 0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,local_34,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }\n        else if (uVar3 == 2) {\n          uVar11 = uVar7;\n        }\n      }\n      else {\n        puVar8 = param_4;\n        if (((uVar3 == 0x6ffffffe) || (puVar8 = param_2, uVar3 == 0x6fffffff)) ||\n           (puVar8 = param_3, uVar3 == 0x6ffffffd)) {\nLAB_0016d91c:\n          if (*puVar8 != 0xffffffff) {\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar9 + 4),*puVar8,uVar7);\n          }\n          *puVar8 = uVar7;\n        }\n      }" else (if_statement "if (uVar3 < 0x13) {\n        puVar8 = param_5;\n        if (uVar3 == 6) goto LAB_0016d91c;\n        if (uVar3 == 0xb) {\n          *(uint *)(this + 0x80) = uVar7;\n          if ((local_34 != 0) && (uVar6 == uVar7)) {\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            *puVar5 = uVar4;\n            puVar5[1] = 0;\n            puVar5[2] = 0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,local_34,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }\n        else if (uVar3 == 2) {\n          uVar11 = uVar7;\n        }\n      }\n      else {\n        puVar8 = param_4;\n        if (((uVar3 == 0x6ffffffe) || (puVar8 = param_2, uVar3 == 0x6fffffff)) ||\n           (puVar8 = param_3, uVar3 == 0x6ffffffd)) {\nLAB_0016d91c:\n          if (*puVar8 != 0xffffffff) {\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar9 + 4),*puVar8,uVar7);\n          }\n          *puVar8 = uVar7;\n        }\n      }" if (parenthesized_expression "(uVar3 < 0x13)" ( (binary_expression "uVar3 < 0x13" identifier < number_literal) )) (compound_statement "{\n        puVar8 = param_5;\n        if (uVar3 == 6) goto LAB_0016d91c;\n        if (uVar3 == 0xb) {\n          *(uint *)(this + 0x80) = uVar7;\n          if ((local_34 != 0) && (uVar6 == uVar7)) {\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            *puVar5 = uVar4;\n            puVar5[1] = 0;\n            puVar5[2] = 0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,local_34,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }\n        else if (uVar3 == 2) {\n          uVar11 = uVar7;\n        }\n      }" { (expression_statement "puVar8 = param_5;" (assignment_expression "puVar8 = param_5" identifier = identifier) ;) (if_statement "if (uVar3 == 6) goto LAB_0016d91c;" if (parenthesized_expression "(uVar3 == 6)" ( (binary_expression "uVar3 == 6" identifier == number_literal) )) (goto_statement "goto LAB_0016d91c;" goto statement_identifier ;)) (if_statement "if (uVar3 == 0xb) {\n          *(uint *)(this + 0x80) = uVar7;\n          if ((local_34 != 0) && (uVar6 == uVar7)) {\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            *puVar5 = uVar4;\n            puVar5[1] = 0;\n            puVar5[2] = 0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,local_34,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }\n        else if (uVar3 == 2) {\n          uVar11 = uVar7;\n        }" if (parenthesized_expression "(uVar3 == 0xb)" ( (binary_expression "uVar3 == 0xb" identifier == number_literal) )) (compound_statement "{\n          *(uint *)(this + 0x80) = uVar7;\n          if ((local_34 != 0) && (uVar6 == uVar7)) {\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            *puVar5 = uVar4;\n            puVar5[1] = 0;\n            puVar5[2] = 0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,local_34,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }" { (expression_statement "*(uint *)(this + 0x80) = uVar7;" (assignment_expression "*(uint *)(this + 0x80) = uVar7" (pointer_expression "*(uint *)(this + 0x80)" * (cast_expression "(uint *)(this + 0x80)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x80)" ( (binary_expression "this + 0x80" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((local_34 != 0) && (uVar6 == uVar7)) {\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            *puVar5 = uVar4;\n            puVar5[1] = 0;\n            puVar5[2] = 0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,local_34,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }" if (parenthesized_expression "((local_34 != 0) && (uVar6 == uVar7))" ( (binary_expression "(local_34 != 0) && (uVar6 == uVar7)" (parenthesized_expression "(local_34 != 0)" ( (binary_expression "local_34 != 0" identifier != number_literal) )) && (parenthesized_expression "(uVar6 == uVar7)" ( (binary_expression "uVar6 == uVar7" identifier == identifier) ))) )) (compound_statement "{\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            *puVar5 = uVar4;\n            puVar5[1] = 0;\n            puVar5[2] = 0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,local_34,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }" { (expression_statement "(*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);" (call_expression "(*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60)" (parenthesized_expression "(*(code *)PTR_initialize_shnum_004c1fc0)" ( (pointer_expression "*(code *)PTR_initialize_shnum_004c1fc0" * (cast_expression "(code *)PTR_initialize_shnum_004c1fc0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(this + 0x60)" ( (binary_expression "this + 0x60" identifier + number_literal) ))) ;) (expression_statement "uVar4 = *(undefined4 *)(this + 0x78);" (assignment_expression "uVar4 = *(undefined4 *)(this + 0x78)" identifier = (pointer_expression "*(undefined4 *)(this + 0x78)" * (cast_expression "(undefined4 *)(this + 0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x78)" ( (binary_expression "this + 0x78" identifier + number_literal) ))))) ;) (expression_statement "puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);" (assignment_expression "puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x10)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x10)" ( number_literal ))))) ;) (expression_statement "puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;" (comma_expression "puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0" (assignment_expression "puVar1 = PTR_read_symtab_xindex<64" identifier = (binary_expression "PTR_read_symtab_xindex<64" identifier < number_literal)) , (binary_expression "true>_004c36c0" true > identifier)) ;) (expression_statement "*puVar5 = uVar4;" (assignment_expression "*puVar5 = uVar4" (pointer_expression "*puVar5" * identifier) = identifier) ;) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[2] = 0;" (assignment_expression "puVar5[2] = 0" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[3] = 0;" (assignment_expression "puVar5[3] = 0" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "(*(code *)puVar1)(puVar5,this,local_34,param_1);" (call_expression "(*(code *)puVar1)(puVar5,this,local_34,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 "(puVar5,this,local_34,param_1)" ( identifier , identifier , identifier , identifier ))) ;) (if_statement "if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;" if (parenthesized_expression "(*(int *)(this + 0x30) != 0)" ( (binary_expression "*(int *)(this + 0x30) != 0" (pointer_expression "*(int *)(this + 0x30)" * (cast_expression "(int *)(this + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x30)" ( (binary_expression "this + 0x30" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_0016db64;" goto statement_identifier ;)) (expression_statement "*(undefined4 **)(this + 0x30) = puVar5;" (assignment_expression "*(undefined4 **)(this + 0x30) = puVar5" (pointer_expression "*(undefined4 **)(this + 0x30)" * (cast_expression "(undefined4 **)(this + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x30)" ( (binary_expression "this + 0x30" identifier + number_literal) )))) = identifier) ;) })) }) (else_clause "else if (uVar3 == 2) {\n          uVar11 = uVar7;\n        }" else (if_statement "if (uVar3 == 2) {\n          uVar11 = uVar7;\n        }" if (parenthesized_expression "(uVar3 == 2)" ( (binary_expression "uVar3 == 2" identifier == number_literal) )) (compound_statement "{\n          uVar11 = uVar7;\n        }" { (expression_statement "uVar11 = uVar7;" (assignment_expression "uVar11 = uVar7" identifier = identifier) ;) })))) }) (else_clause "else {\n        puVar8 = param_4;\n        if (((uVar3 == 0x6ffffffe) || (puVar8 = param_2, uVar3 == 0x6fffffff)) ||\n           (puVar8 = param_3, uVar3 == 0x6ffffffd)) {\nLAB_0016d91c:\n          if (*puVar8 != 0xffffffff) {\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar9 + 4),*puVar8,uVar7);\n          }\n          *puVar8 = uVar7;\n        }\n      }" else (compound_statement "{\n        puVar8 = param_4;\n        if (((uVar3 == 0x6ffffffe) || (puVar8 = param_2, uVar3 == 0x6fffffff)) ||\n           (puVar8 = param_3, uVar3 == 0x6ffffffd)) {\nLAB_0016d91c:\n          if (*puVar8 != 0xffffffff) {\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar9 + 4),*puVar8,uVar7);\n          }\n          *puVar8 = uVar7;\n        }\n      }" { (expression_statement "puVar8 = param_4;" (assignment_expression "puVar8 = param_4" identifier = identifier) ;) (if_statement "if (((uVar3 == 0x6ffffffe) || (puVar8 = param_2, uVar3 == 0x6fffffff)) ||\n           (puVar8 = param_3, uVar3 == 0x6ffffffd)) {\nLAB_0016d91c:\n          if (*puVar8 != 0xffffffff) {\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar9 + 4),*puVar8,uVar7);\n          }\n          *puVar8 = uVar7;\n        }" if (parenthesized_expression "(((uVar3 == 0x6ffffffe) || (puVar8 = param_2, uVar3 == 0x6fffffff)) ||\n           (puVar8 = param_3, uVar3 == 0x6ffffffd))" ( (binary_expression "((uVar3 == 0x6ffffffe) || (puVar8 = param_2, uVar3 == 0x6fffffff)) ||\n           (puVar8 = param_3, uVar3 == 0x6ffffffd)" (parenthesized_expression "((uVar3 == 0x6ffffffe) || (puVar8 = param_2, uVar3 == 0x6fffffff))" ( (binary_expression "(uVar3 == 0x6ffffffe) || (puVar8 = param_2, uVar3 == 0x6fffffff)" (parenthesized_expression "(uVar3 == 0x6ffffffe)" ( (binary_expression "uVar3 == 0x6ffffffe" identifier == number_literal) )) || (parenthesized_expression "(puVar8 = param_2, uVar3 == 0x6fffffff)" ( (comma_expression "puVar8 = param_2, uVar3 == 0x6fffffff" (assignment_expression "puVar8 = param_2" identifier = identifier) , (binary_expression "uVar3 == 0x6fffffff" identifier == number_literal)) ))) )) || (parenthesized_expression "(puVar8 = param_3, uVar3 == 0x6ffffffd)" ( (comma_expression "puVar8 = param_3, uVar3 == 0x6ffffffd" (assignment_expression "puVar8 = param_3" identifier = identifier) , (binary_expression "uVar3 == 0x6ffffffd" identifier == number_literal)) ))) )) (compound_statement "{\nLAB_0016d91c:\n          if (*puVar8 != 0xffffffff) {\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar9 + 4),*puVar8,uVar7);\n          }\n          *puVar8 = uVar7;\n        }" { (labeled_statement "LAB_0016d91c:\n          if (*puVar8 != 0xffffffff) {\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar9 + 4),*puVar8,uVar7);\n          }" statement_identifier : (if_statement "if (*puVar8 != 0xffffffff) {\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar9 + 4),*puVar8,uVar7);\n          }" if (parenthesized_expression "(*puVar8 != 0xffffffff)" ( (binary_expression "*puVar8 != 0xffffffff" (pointer_expression "*puVar8" * identifier) != number_literal) )) (compound_statement "{\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar9 + 4),*puVar8,uVar7);\n          }" { (expression_statement "uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);" (assignment_expression "uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2)" identifier = (call_expression "(*(code *)PTR_gettext_004c5c30)(puVar2)" (parenthesized_expression "(*(code *)PTR_gettext_004c5c30)" ( (pointer_expression "*(code *)PTR_gettext_004c5c30" * (cast_expression "(code *)PTR_gettext_004c5c30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar2)" ( identifier )))) ;) (expression_statement "(*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar9 + 4),*puVar8,uVar7);" (call_expression "(*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar9 + 4),*puVar8,uVar7)" (parenthesized_expression "(*(code *)PTR_error_004c1a54)" ( (pointer_expression "*(code *)PTR_error_004c1a54" * (cast_expression "(code *)PTR_error_004c1a54" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(this,uVar4,*(undefined4 *)(puVar9 + 4),*puVar8,uVar7)" ( identifier , identifier , (pointer_expression "*(undefined4 *)(puVar9 + 4)" * (cast_expression "(undefined4 *)(puVar9 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 4)" ( (binary_expression "puVar9 + 4" identifier + number_literal) )))) , (pointer_expression "*puVar8" * identifier) , identifier ))) ;) }))) (expression_statement "*puVar8 = uVar7;" (assignment_expression "*puVar8 = uVar7" (pointer_expression "*puVar8" * identifier) = identifier) ;) })) }))))) (expression_statement "puVar9 = puVar9 + 0x40;" (assignment_expression "puVar9 = puVar9 + 0x40" identifier = (binary_expression "puVar9 + 0x40" identifier + number_literal)) ;) (expression_statement "uVar7 = uVar7 + 1;" (assignment_expression "uVar7 = uVar7 + 1" identifier = (binary_expression "uVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar7 != uVar10)" ( (binary_expression "uVar7 != uVar10" identifier != identifier) )) ;) (if_statement "if (((*(int *)(this + 0x80) == -1) && (uVar11 != 0)) &&\n       ((*(uint *)(this + 0x80) = uVar11, local_34 != 0 && (uVar11 == uVar6)))) {\n      (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n      uVar4 = *(undefined4 *)(this + 0x78);\n      puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n      *puVar5 = uVar4;\n      puVar5[1] = 0;\n      puVar5[2] = 0;\n      puVar2 = PTR_read_symtab_xindex<64,true>_004c36c0;\n      puVar5[3] = 0;\n      (*(code *)puVar2)(puVar5,this,local_34,param_1);\n      if (*(int *)(this + 0x30) != 0) {\nLAB_0016db64:\n                    /* WARNING: Subroutine does not return */\n        FUN_0015f554();\n      }\n      *(undefined4 **)(this + 0x30) = puVar5;\n    }" if (parenthesized_expression "(((*(int *)(this + 0x80) == -1) && (uVar11 != 0)) &&\n       ((*(uint *)(this + 0x80) = uVar11, local_34 != 0 && (uVar11 == uVar6))))" ( (binary_expression "((*(int *)(this + 0x80) == -1) && (uVar11 != 0)) &&\n       ((*(uint *)(this + 0x80) = uVar11, local_34 != 0 && (uVar11 == uVar6)))" (parenthesized_expression "((*(int *)(this + 0x80) == -1) && (uVar11 != 0))" ( (binary_expression "(*(int *)(this + 0x80) == -1) && (uVar11 != 0)" (parenthesized_expression "(*(int *)(this + 0x80) == -1)" ( (binary_expression "*(int *)(this + 0x80) == -1" (pointer_expression "*(int *)(this + 0x80)" * (cast_expression "(int *)(this + 0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x80)" ( (binary_expression "this + 0x80" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(uVar11 != 0)" ( (binary_expression "uVar11 != 0" identifier != number_literal) ))) )) && (parenthesized_expression "((*(uint *)(this + 0x80) = uVar11, local_34 != 0 && (uVar11 == uVar6)))" ( (parenthesized_expression "(*(uint *)(this + 0x80) = uVar11, local_34 != 0 && (uVar11 == uVar6))" ( (comma_expression "*(uint *)(this + 0x80) = uVar11, local_34 != 0 && (uVar11 == uVar6)" (assignment_expression "*(uint *)(this + 0x80) = uVar11" (pointer_expression "*(uint *)(this + 0x80)" * (cast_expression "(uint *)(this + 0x80)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x80)" ( (binary_expression "this + 0x80" identifier + number_literal) )))) = identifier) , (binary_expression "local_34 != 0 && (uVar11 == uVar6)" (binary_expression "local_34 != 0" identifier != number_literal) && (parenthesized_expression "(uVar11 == uVar6)" ( (binary_expression "uVar11 == uVar6" identifier == identifier) )))) )) ))) )) (compound_statement "{\n      (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n      uVar4 = *(undefined4 *)(this + 0x78);\n      puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n      *puVar5 = uVar4;\n      puVar5[1] = 0;\n      puVar5[2] = 0;\n      puVar2 = PTR_read_symtab_xindex<64,true>_004c36c0;\n      puVar5[3] = 0;\n      (*(code *)puVar2)(puVar5,this,local_34,param_1);\n      if (*(int *)(this + 0x30) != 0) {\nLAB_0016db64:\n                    /* WARNING: Subroutine does not return */\n        FUN_0015f554();\n      }\n      *(undefined4 **)(this + 0x30) = puVar5;\n    }" { (expression_statement "(*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);" (call_expression "(*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60)" (parenthesized_expression "(*(code *)PTR_initialize_shnum_004c1fc0)" ( (pointer_expression "*(code *)PTR_initialize_shnum_004c1fc0" * (cast_expression "(code *)PTR_initialize_shnum_004c1fc0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(this + 0x60)" ( (binary_expression "this + 0x60" identifier + number_literal) ))) ;) (expression_statement "uVar4 = *(undefined4 *)(this + 0x78);" (assignment_expression "uVar4 = *(undefined4 *)(this + 0x78)" identifier = (pointer_expression "*(undefined4 *)(this + 0x78)" * (cast_expression "(undefined4 *)(this + 0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x78)" ( (binary_expression "this + 0x78" identifier + number_literal) ))))) ;) (expression_statement "puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);" (assignment_expression "puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x10)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x10)" ( number_literal ))))) ;) (expression_statement "*puVar5 = uVar4;" (assignment_expression "*puVar5 = uVar4" (pointer_expression "*puVar5" * identifier) = identifier) ;) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[2] = 0;" (assignment_expression "puVar5[2] = 0" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2 = PTR_read_symtab_xindex<64,true>_004c36c0;" (comma_expression "puVar2 = PTR_read_symtab_xindex<64,true>_004c36c0" (assignment_expression "puVar2 = PTR_read_symtab_xindex<64" identifier = (binary_expression "PTR_read_symtab_xindex<64" identifier < number_literal)) , (binary_expression "true>_004c36c0" true > identifier)) ;) (expression_statement "puVar5[3] = 0;" (assignment_expression "puVar5[3] = 0" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "(*(code *)puVar2)(puVar5,this,local_34,param_1);" (call_expression "(*(code *)puVar2)(puVar5,this,local_34,param_1)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar5,this,local_34,param_1)" ( identifier , identifier , identifier , identifier ))) ;) (if_statement "if (*(int *)(this + 0x30) != 0) {\nLAB_0016db64:\n                    /* WARNING: Subroutine does not return */\n        FUN_0015f554();\n      }" if (parenthesized_expression "(*(int *)(this + 0x30) != 0)" ( (binary_expression "*(int *)(this + 0x30) != 0" (pointer_expression "*(int *)(this + 0x30)" * (cast_expression "(int *)(this + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x30)" ( (binary_expression "this + 0x30" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\nLAB_0016db64:\n                    /* WARNING: Subroutine does not return */\n        FUN_0015f554();\n      }" { (labeled_statement "LAB_0016db64:\n                    /* WARNING: Subroutine does not return */\n        FUN_0015f554();" statement_identifier : comment (expression_statement "FUN_0015f554();" (call_expression "FUN_0015f554()" identifier (argument_list "()" ( ))) ;)) })) (expression_statement "*(undefined4 **)(this + 0x30) = puVar5;" (assignment_expression "*(undefined4 **)(this + 0x30) = puVar5" (pointer_expression "*(undefined4 **)(this + 0x30)" * (cast_expression "(undefined4 **)(this + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x30)" ( (binary_expression "this + 0x30" identifier + number_literal) )))) = identifier) ;) })) })) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "/* DWARF original prototype: void find_dynsym_sections(Sized_dynobj<64,_true> * this, uchar *\n   pshdrs, uint * pversym_shndx, uint * pverdef_shndx, uint * pverneed_shndx, uint * pdynamic_shndx)\n    */\n\nvoid __thiscall\ngold::Sized_dynobj<64,_true>::find_dynsym_sections\n          (Sized_dynobj<64,_true> *this,uchar *pshdrs,uint *pversym_shndx,uint *pverdef_shndx,\n          uint *pverneed_shndx,uint *pdynamic_shndx)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  uint uVar3;\n  undefined4 uVar4;\n  Xindex *pXVar5;\n  Object *pOVar6;\n  Object *this_00;\n  int iVar7;\n  Sized_dynobj<64,_true> *pSVar8;\n  uint uVar9;\n  _func_int_varargs **pp_Var10;\n  uint uVar11;\n  uint *puVar12;\n  uchar *puVar13;\n  uint uVar14;\n  uint uVar15;\n  uint local_34;\n  \n  *pversym_shndx = 0xffffffff;\n  *pverdef_shndx = 0xffffffff;\n  *pverneed_shndx = 0xffffffff;\n  *pdynamic_shndx = 0xffffffff;\n  uVar14 = (this->super_Dynobj).super_Object.shnum_;\n  if (uVar14 != 0) {\n    puVar2 = PTR_s__s_004c1a50 + -0xd94;\n    uVar11 = 0;\n    local_34 = 0;\n    uVar9 = 0;\n    uVar15 = 0;\n    puVar13 = pshdrs;\n    do {\n      uVar3 = *(uint *)(puVar13 + 4);\n      pSVar8 = this;\n      if (uVar3 == 0x12) {\n        uVar9 = *(uint *)(puVar13 + 0x28);\n        local_34 = uVar11;\n        if (uVar9 < 0xff00) {\n          if (this->dynsym_shndx_ == uVar9) {\nLAB_0016da7c:\n            (*(code *)PTR_initialize_shnum_004c1fc0)(&this->elf_file_);\n            pp_Var10 = (_func_int_varargs **)(this->elf_file_).large_shndx_offset_;\n            pOVar6 = (Object *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            (((_Vector_base<unsigned_int,_std::allocator<unsigned_int>_> *)\n             &(pOVar6->name_)._M_dataplus)->_M_impl)._M_start = (pointer)0x0;\n            pOVar6->_vptr_Object = pp_Var10;\n            (pOVar6->name_)._M_string_length = 0;\n            puVar1 = PTR_read_symtab_xindex<64,_true>_004c36c0;\n            (pOVar6->name_).field_2._M_allocated_capacity = 0;\n            this_00 = pOVar6;\n            (*(code *)puVar1)(pOVar6,this,uVar11,pshdrs);\n            if ((this->super_Dynobj).super_Object.xindex_ != (Xindex *)0x0) goto LAB_0016db64;\n            (this->super_Dynobj).super_Object.xindex_ = (Xindex *)pOVar6;\n          }\n        }\n        else {\n          (*(code *)PTR_initialize_shnum_004c1fc0)(&this->elf_file_);\n          uVar9 = uVar9 + (this->elf_file_).large_shndx_offset_;\n          if (this->dynsym_shndx_ == uVar9) goto LAB_0016da7c;\n        }\n      }\n      else if (uVar3 < 0x13) {\n        puVar12 = pdynamic_shndx;\n        if (uVar3 == 6) goto LAB_0016d91c;\n        if (uVar3 == 0xb) {\n          this->dynsym_shndx_ = uVar11;\n          if ((local_34 != 0) && (uVar9 == uVar11)) {\n            (*(code *)PTR_initialize_shnum_004c1fc0)(&this->elf_file_);\n            iVar7 = (this->elf_file_).large_shndx_offset_;\n            pXVar5 = (Xindex *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar1 = PTR_read_symtab_xindex<64,_true>_004c36c0;\n            pXVar5->large_shndx_offset_ = iVar7;\n            (pXVar5->symtab_xindex_).super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>\n            ._M_impl._M_start = (pointer)0x0;\n            (pXVar5->symtab_xindex_).super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>\n            ._M_impl._M_finish = (pointer)0x0;\n            (pXVar5->symtab_xindex_).super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>\n            ._M_impl._M_end_of_storage = (pointer)0x0;\n            (*(code *)puVar1)(pXVar5,this,local_34,pshdrs);\n            this_00 = (Object *)(this->super_Dynobj).super_Object.xindex_;\n            if (this_00 != (Object *)0x0) goto LAB_0016db64;\n            (this->super_Dynobj).super_Object.xindex_ = pXVar5;\n          }\n        }\n        else if (uVar3 == 2) {\n          uVar15 = uVar11;\n        }\n      }\n      else {\n        puVar12 = pverneed_shndx;\n        if (((uVar3 == 0x6ffffffe) || (puVar12 = pversym_shndx, uVar3 == 0x6fffffff)) ||\n           (puVar12 = pverdef_shndx, uVar3 == 0x6ffffffd)) {\nLAB_0016d91c:\n          if (*puVar12 != 0xffffffff) {\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar13 + 4),*puVar12,uVar11);\n          }\n          *puVar12 = uVar11;\n        }\n      }\n      puVar13 = puVar13 + 0x40;\n      uVar11 = uVar11 + 1;\n    } while (uVar11 != uVar14);\n    if (((this->dynsym_shndx_ == 0xffffffff) && (uVar15 != 0)) &&\n       ((this->dynsym_shndx_ = uVar15, local_34 != 0 && (uVar15 == uVar9)))) {\n      (*(code *)PTR_initialize_shnum_004c1fc0)(&this->elf_file_);\n      pp_Var10 = (_func_int_varargs **)(this->elf_file_).large_shndx_offset_;\n      pOVar6 = (Object *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n      pOVar6->_vptr_Object = pp_Var10;\n      (((_Vector_base<unsigned_int,_std::allocator<unsigned_int>_> *)&(pOVar6->name_)._M_dataplus)->\n      _M_impl)._M_start = (pointer)0x0;\n      (pOVar6->name_)._M_string_length = 0;\n      puVar2 = PTR_read_symtab_xindex<64,_true>_004c36c0;\n      (pOVar6->name_).field_2._M_allocated_capacity = 0;\n      this_00 = pOVar6;\n      pSVar8 = this;\n      (*(code *)puVar2)(pOVar6,this,local_34,pshdrs);\n      if ((this->super_Dynobj).super_Object.xindex_ != (Xindex *)0x0) {\nLAB_0016db64:\n                    /* WARNING: Subroutine does not return */\n        Object::set_xindex(this_00,(Xindex *)pSVar8);\n      }\n      (this->super_Dynobj).super_Object.xindex_ = (Xindex *)pOVar6;\n    }\n  }\n  return;\n}\n\n" comment (declaration "void __thiscall\ngold::Sized_dynobj<64,_true>::find_dynsym_sections\n          (Sized_dynobj<64,_true> *this,uchar *pshdrs,uint *pversym_shndx,uint *pverdef_shndx,\n          uint *pverneed_shndx,uint *pdynamic_shndx)\n\n{\n  undefined *puVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::" identifier : :) identifier (ERROR "<64" < number_literal) , (ERROR "_true>::find_dynsym_sections\n          (Sized_dynobj<64,_true> *this,uchar *pshdrs,uint *pversym_shndx,uint *pverdef_shndx,\n          uint *pverneed_shndx,uint *pdynamic_shndx)\n\n{\n  undefined" identifier > : : (function_declarator "find_dynsym_sections\n          (Sized_dynobj<64,_true> *this,uchar *pshdrs,uint *pversym_shndx,uint *pverdef_shndx,\n          uint *pverneed_shndx,uint *pdynamic_shndx)" identifier (parameter_list "(Sized_dynobj<64,_true> *this,uchar *pshdrs,uint *pversym_shndx,uint *pverdef_shndx,\n          uint *pverneed_shndx,uint *pdynamic_shndx)" ( (parameter_declaration "Sized_dynobj" type_identifier) (ERROR "<64" < number_literal) , (parameter_declaration "_true> *this" type_identifier (ERROR ">" >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "uchar *pshdrs" type_identifier (pointer_declarator "*pshdrs" * identifier)) , (parameter_declaration "uint *pversym_shndx" type_identifier (pointer_declarator "*pversym_shndx" * identifier)) , (parameter_declaration "uint *pverdef_shndx" type_identifier (pointer_declarator "*pverdef_shndx" * identifier)) , (parameter_declaration "uint *pverneed_shndx" type_identifier (pointer_declarator "*pverneed_shndx" * identifier)) , (parameter_declaration "uint *pdynamic_shndx" type_identifier (pointer_declarator "*pdynamic_shndx" * identifier)) ))) { identifier) (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "Xindex *pXVar5;" type_identifier (pointer_declarator "*pXVar5" * identifier) ;) (declaration "Object *pOVar6;" type_identifier (pointer_declarator "*pOVar6" * identifier) ;) (declaration "Object *this_00;" type_identifier (pointer_declarator "*this_00" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (expression_statement "Sized_dynobj<64,_true> *pSVar8;" (update_expression "Sized_dynobj<64,_true> *pSVar8" (binary_expression "Sized_dynobj<64,_true> *pSVar8" (binary_expression "Sized_dynobj<64" identifier < number_literal) (ERROR ",_true" , identifier) > (pointer_expression "*pSVar8" * identifier)) --) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "_func_int_varargs **pp_Var10;" type_identifier (pointer_declarator "**pp_Var10" * (pointer_declarator "*pp_Var10" * identifier)) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "uint *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "uchar *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "uint local_34;" type_identifier identifier ;) (expression_statement "*pversym_shndx = 0xffffffff;" (assignment_expression "*pversym_shndx = 0xffffffff" (pointer_expression "*pversym_shndx" * identifier) = number_literal) ;) (expression_statement "*pverdef_shndx = 0xffffffff;" (assignment_expression "*pverdef_shndx = 0xffffffff" (pointer_expression "*pverdef_shndx" * identifier) = number_literal) ;) (expression_statement "*pverneed_shndx = 0xffffffff;" (assignment_expression "*pverneed_shndx = 0xffffffff" (pointer_expression "*pverneed_shndx" * identifier) = number_literal) ;) (expression_statement "*pdynamic_shndx = 0xffffffff;" (assignment_expression "*pdynamic_shndx = 0xffffffff" (pointer_expression "*pdynamic_shndx" * identifier) = number_literal) ;) (expression_statement "uVar14 = (this->super_Dynobj).super_Object.shnum_;" (assignment_expression "uVar14 = (this->super_Dynobj).super_Object.shnum_" identifier = (field_expression "(this->super_Dynobj).super_Object.shnum_" (field_expression "(this->super_Dynobj).super_Object" (parenthesized_expression "(this->super_Dynobj)" ( (field_expression "this->super_Dynobj" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if (uVar14 != 0) {\n    puVar2 = PTR_s__s_004c1a50 + -0xd94;\n    uVar11 = 0;\n    local_34 = 0;\n    uVar9 = 0;\n    uVar15 = 0;\n    puVar13 = pshdrs;\n    do {\n      uVar3 = *(uint *)(puVar13 + 4);\n      pSVar8 = this;\n      if (uVar3 == 0x12) {\n        uVar9 = *(uint *)(puVar13 + 0x28);\n        local_34 = uVar11;\n        if (uVar9 < 0xff00) {\n          if (this->dynsym_shndx_ == uVar9) {\nLAB_0016da7c:\n            (*(code *)PTR_initialize_shnum_004c1fc0)(&this->elf_file_);\n            pp_Var10 = (_func_int_varargs **)(this->elf_file_).large_shndx_offset_;\n            pOVar6 = (Object *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            (((_Vector_base<unsigned_int,_std::allocator<unsigned_int>_> *)\n             &(pOVar6->name_)._M_dataplus)->_M_impl)._M_start = (pointer)0x0;\n            pOVar6->_vptr_Object = pp_Var10;\n            (pOVar6->name_)._M_string_length = 0;\n            puVar1 = PTR_read_symtab_xindex<64,_true>_004c36c0;\n            (pOVar6->name_).field_2._M_allocated_capacity = 0;\n            this_00 = pOVar6;\n            (*(code *)puVar1)(pOVar6,this,uVar11,pshdrs);\n            if ((this->super_Dynobj).super_Object.xindex_ != (Xindex *)0x0) goto LAB_0016db64;\n            (this->super_Dynobj).super_Object.xindex_ = (Xindex *)pOVar6;\n          }\n        }\n        else {\n          (*(code *)PTR_initialize_shnum_004c1fc0)(&this->elf_file_);\n          uVar9 = uVar9 + (this->elf_file_).large_shndx_offset_;\n          if (this->dynsym_shndx_ == uVar9) goto LAB_0016da7c;\n        }\n      }\n      else if (uVar3 < 0x13) {\n        puVar12 = pdynamic_shndx;\n        if (uVar3 == 6) goto LAB_0016d91c;\n        if (uVar3 == 0xb) {\n          this->dynsym_shndx_ = uVar11;\n          if ((local_34 != 0) && (uVar9 == uVar11)) {\n            (*(code *)PTR_initialize_shnum_004c1fc0)(&this->elf_file_);\n            iVar7 = (this->elf_file_).large_shndx_offset_;\n            pXVar5 = (Xindex *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar1 = PTR_read_symtab_xindex<64,_true>_004c36c0;\n            pXVar5->large_shndx_offset_ = iVar7;\n            (pXVar5->symtab_xindex_).super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>\n            ._M_impl._M_start = (pointer)0x0;\n            (pXVar5->symtab_xindex_).super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>\n            ._M_impl._M_finish = (pointer)0x0;\n            (pXVar5->symtab_xindex_).super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>\n            ._M_impl._M_end_of_storage = (pointer)0x0;\n            (*(code *)puVar1)(pXVar5,this,local_34,pshdrs);\n            this_00 = (Object *)(this->super_Dynobj).super_Object.xindex_;\n            if (this_00 != (Object *)0x0) goto LAB_0016db64;\n            (this->super_Dynobj).super_Object.xindex_ = pXVar5;\n          }\n        }\n        else if (uVar3 == 2) {\n          uVar15 = uVar11;\n        }\n      }\n      else {\n        puVar12 = pverneed_shndx;\n        if (((uVar3 == 0x6ffffffe) || (puVar12 = pversym_shndx, uVar3 == 0x6fffffff)) ||\n           (puVar12 = pverdef_shndx, uVar3 == 0x6ffffffd)) {\nLAB_0016d91c:\n          if (*puVar12 != 0xffffffff) {\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar13 + 4),*puVar12,uVar11);\n          }\n          *puVar12 = uVar11;\n        }\n      }\n      puVar13 = puVar13 + 0x40;\n      uVar11 = uVar11 + 1;\n    } while (uVar11 != uVar14);\n    if (((this->dynsym_shndx_ == 0xffffffff) && (uVar15 != 0)) &&\n       ((this->dynsym_shndx_ = uVar15, local_34 != 0 && (uVar15 == uVar9)))) {\n      (*(code *)PTR_initialize_shnum_004c1fc0)(&this->elf_file_);\n      pp_Var10 = (_func_int_varargs **)(this->elf_file_).large_shndx_offset_;\n      pOVar6 = (Object *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n      pOVar6->_vptr_Object = pp_Var10;\n      (((_Vector_base<unsigned_int,_std::allocator<unsigned_int>_> *)&(pOVar6->name_)._M_dataplus)->\n      _M_impl)._M_start = (pointer)0x0;\n      (pOVar6->name_)._M_string_length = 0;\n      puVar2 = PTR_read_symtab_xindex<64,_true>_004c36c0;\n      (pOVar6->name_).field_2._M_allocated_capacity = 0;\n      this_00 = pOVar6;\n      pSVar8 = this;\n      (*(code *)puVar2)(pOVar6,this,local_34,pshdrs);\n      if ((this->super_Dynobj).super_Object.xindex_ != (Xindex *)0x0) {\nLAB_0016db64:\n                    /* WARNING: Subroutine does not return */\n        Object::set_xindex(this_00,(Xindex *)pSVar8);\n      }\n      (this->super_Dynobj).super_Object.xindex_ = (Xindex *)pOVar6;\n    }\n  }" if (parenthesized_expression "(uVar14 != 0)" ( (binary_expression "uVar14 != 0" identifier != number_literal) )) (compound_statement "{\n    puVar2 = PTR_s__s_004c1a50 + -0xd94;\n    uVar11 = 0;\n    local_34 = 0;\n    uVar9 = 0;\n    uVar15 = 0;\n    puVar13 = pshdrs;\n    do {\n      uVar3 = *(uint *)(puVar13 + 4);\n      pSVar8 = this;\n      if (uVar3 == 0x12) {\n        uVar9 = *(uint *)(puVar13 + 0x28);\n        local_34 = uVar11;\n        if (uVar9 < 0xff00) {\n          if (this->dynsym_shndx_ == uVar9) {\nLAB_0016da7c:\n            (*(code *)PTR_initialize_shnum_004c1fc0)(&this->elf_file_);\n            pp_Var10 = (_func_int_varargs **)(this->elf_file_).large_shndx_offset_;\n            pOVar6 = (Object *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            (((_Vector_base<unsigned_int,_std::allocator<unsigned_int>_> *)\n             &(pOVar6->name_)._M_dataplus)->_M_impl)._M_start = (pointer)0x0;\n            pOVar6->_vptr_Object = pp_Var10;\n            (pOVar6->name_)._M_string_length = 0;\n            puVar1 = PTR_read_symtab_xindex<64,_true>_004c36c0;\n            (pOVar6->name_).field_2._M_allocated_capacity = 0;\n            this_00 = pOVar6;\n            (*(code *)puVar1)(pOVar6,this,uVar11,pshdrs);\n            if ((this->super_Dynobj).super_Object.xindex_ != (Xindex *)0x0) goto LAB_0016db64;\n            (this->super_Dynobj).super_Object.xindex_ = (Xindex *)pOVar6;\n          }\n        }\n        else {\n          (*(code *)PTR_initialize_shnum_004c1fc0)(&this->elf_file_);\n          uVar9 = uVar9 + (this->elf_file_).large_shndx_offset_;\n          if (this->dynsym_shndx_ == uVar9) goto LAB_0016da7c;\n        }\n      }\n      else if (uVar3 < 0x13) {\n        puVar12 = pdynamic_shndx;\n        if (uVar3 == 6) goto LAB_0016d91c;\n        if (uVar3 == 0xb) {\n          this->dynsym_shndx_ = uVar11;\n          if ((local_34 != 0) && (uVar9 == uVar11)) {\n            (*(code *)PTR_initialize_shnum_004c1fc0)(&this->elf_file_);\n            iVar7 = (this->elf_file_).large_shndx_offset_;\n            pXVar5 = (Xindex *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar1 = PTR_read_symtab_xindex<64,_true>_004c36c0;\n            pXVar5->large_shndx_offset_ = iVar7;\n            (pXVar5->symtab_xindex_).super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>\n            ._M_impl._M_start = (pointer)0x0;\n            (pXVar5->symtab_xindex_).super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>\n            ._M_impl._M_finish = (pointer)0x0;\n            (pXVar5->symtab_xindex_).super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>\n            ._M_impl._M_end_of_storage = (pointer)0x0;\n            (*(code *)puVar1)(pXVar5,this,local_34,pshdrs);\n            this_00 = (Object *)(this->super_Dynobj).super_Object.xindex_;\n            if (this_00 != (Object *)0x0) goto LAB_0016db64;\n            (this->super_Dynobj).super_Object.xindex_ = pXVar5;\n          }\n        }\n        else if (uVar3 == 2) {\n          uVar15 = uVar11;\n        }\n      }\n      else {\n        puVar12 = pverneed_shndx;\n        if (((uVar3 == 0x6ffffffe) || (puVar12 = pversym_shndx, uVar3 == 0x6fffffff)) ||\n           (puVar12 = pverdef_shndx, uVar3 == 0x6ffffffd)) {\nLAB_0016d91c:\n          if (*puVar12 != 0xffffffff) {\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar13 + 4),*puVar12,uVar11);\n          }\n          *puVar12 = uVar11;\n        }\n      }\n      puVar13 = puVar13 + 0x40;\n      uVar11 = uVar11 + 1;\n    } while (uVar11 != uVar14);\n    if (((this->dynsym_shndx_ == 0xffffffff) && (uVar15 != 0)) &&\n       ((this->dynsym_shndx_ = uVar15, local_34 != 0 && (uVar15 == uVar9)))) {\n      (*(code *)PTR_initialize_shnum_004c1fc0)(&this->elf_file_);\n      pp_Var10 = (_func_int_varargs **)(this->elf_file_).large_shndx_offset_;\n      pOVar6 = (Object *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n      pOVar6->_vptr_Object = pp_Var10;\n      (((_Vector_base<unsigned_int,_std::allocator<unsigned_int>_> *)&(pOVar6->name_)._M_dataplus)->\n      _M_impl)._M_start = (pointer)0x0;\n      (pOVar6->name_)._M_string_length = 0;\n      puVar2 = PTR_read_symtab_xindex<64,_true>_004c36c0;\n      (pOVar6->name_).field_2._M_allocated_capacity = 0;\n      this_00 = pOVar6;\n      pSVar8 = this;\n      (*(code *)puVar2)(pOVar6,this,local_34,pshdrs);\n      if ((this->super_Dynobj).super_Object.xindex_ != (Xindex *)0x0) {\nLAB_0016db64:\n                    /* WARNING: Subroutine does not return */\n        Object::set_xindex(this_00,(Xindex *)pSVar8);\n      }\n      (this->super_Dynobj).super_Object.xindex_ = (Xindex *)pOVar6;\n    }\n  }" { (expression_statement "puVar2 = PTR_s__s_004c1a50 + -0xd94;" (assignment_expression "puVar2 = PTR_s__s_004c1a50 + -0xd94" identifier = (binary_expression "PTR_s__s_004c1a50 + -0xd94" identifier + number_literal)) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" identifier = number_literal) ;) (expression_statement "puVar13 = pshdrs;" (assignment_expression "puVar13 = pshdrs" identifier = identifier) ;) (do_statement "do {\n      uVar3 = *(uint *)(puVar13 + 4);\n      pSVar8 = this;\n      if (uVar3 == 0x12) {\n        uVar9 = *(uint *)(puVar13 + 0x28);\n        local_34 = uVar11;\n        if (uVar9 < 0xff00) {\n          if (this->dynsym_shndx_ == uVar9) {\nLAB_0016da7c:\n            (*(code *)PTR_initialize_shnum_004c1fc0)(&this->elf_file_);\n            pp_Var10 = (_func_int_varargs **)(this->elf_file_).large_shndx_offset_;\n            pOVar6 = (Object *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            (((_Vector_base<unsigned_int,_std::allocator<unsigned_int>_> *)\n             &(pOVar6->name_)._M_dataplus)->_M_impl)._M_start = (pointer)0x0;\n            pOVar6->_vptr_Object = pp_Var10;\n            (pOVar6->name_)._M_string_length = 0;\n            puVar1 = PTR_read_symtab_xindex<64,_true>_004c36c0;\n            (pOVar6->name_).field_2._M_allocated_capacity = 0;\n            this_00 = pOVar6;\n            (*(code *)puVar1)(pOVar6,this,uVar11,pshdrs);\n            if ((this->super_Dynobj).super_Object.xindex_ != (Xindex *)0x0) goto LAB_0016db64;\n            (this->super_Dynobj).super_Object.xindex_ = (Xindex *)pOVar6;\n          }\n        }\n        else {\n          (*(code *)PTR_initialize_shnum_004c1fc0)(&this->elf_file_);\n          uVar9 = uVar9 + (this->elf_file_).large_shndx_offset_;\n          if (this->dynsym_shndx_ == uVar9) goto LAB_0016da7c;\n        }\n      }\n      else if (uVar3 < 0x13) {\n        puVar12 = pdynamic_shndx;\n        if (uVar3 == 6) goto LAB_0016d91c;\n        if (uVar3 == 0xb) {\n          this->dynsym_shndx_ = uVar11;\n          if ((local_34 != 0) && (uVar9 == uVar11)) {\n            (*(code *)PTR_initialize_shnum_004c1fc0)(&this->elf_file_);\n            iVar7 = (this->elf_file_).large_shndx_offset_;\n            pXVar5 = (Xindex *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar1 = PTR_read_symtab_xindex<64,_true>_004c36c0;\n            pXVar5->large_shndx_offset_ = iVar7;\n            (pXVar5->symtab_xindex_).super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>\n            ._M_impl._M_start = (pointer)0x0;\n            (pXVar5->symtab_xindex_).super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>\n            ._M_impl._M_finish = (pointer)0x0;\n            (pXVar5->symtab_xindex_).super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>\n            ._M_impl._M_end_of_storage = (pointer)0x0;\n            (*(code *)puVar1)(pXVar5,this,local_34,pshdrs);\n            this_00 = (Object *)(this->super_Dynobj).super_Object.xindex_;\n            if (this_00 != (Object *)0x0) goto LAB_0016db64;\n            (this->super_Dynobj).super_Object.xindex_ = pXVar5;\n          }\n        }\n        else if (uVar3 == 2) {\n          uVar15 = uVar11;\n        }\n      }\n      else {\n        puVar12 = pverneed_shndx;\n        if (((uVar3 == 0x6ffffffe) || (puVar12 = pversym_shndx, uVar3 == 0x6fffffff)) ||\n           (puVar12 = pverdef_shndx, uVar3 == 0x6ffffffd)) {\nLAB_0016d91c:\n          if (*puVar12 != 0xffffffff) {\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar13 + 4),*puVar12,uVar11);\n          }\n          *puVar12 = uVar11;\n        }\n      }\n      puVar13 = puVar13 + 0x40;\n      uVar11 = uVar11 + 1;\n    } while (uVar11 != uVar14);" do (compound_statement "{\n      uVar3 = *(uint *)(puVar13 + 4);\n      pSVar8 = this;\n      if (uVar3 == 0x12) {\n        uVar9 = *(uint *)(puVar13 + 0x28);\n        local_34 = uVar11;\n        if (uVar9 < 0xff00) {\n          if (this->dynsym_shndx_ == uVar9) {\nLAB_0016da7c:\n            (*(code *)PTR_initialize_shnum_004c1fc0)(&this->elf_file_);\n            pp_Var10 = (_func_int_varargs **)(this->elf_file_).large_shndx_offset_;\n            pOVar6 = (Object *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            (((_Vector_base<unsigned_int,_std::allocator<unsigned_int>_> *)\n             &(pOVar6->name_)._M_dataplus)->_M_impl)._M_start = (pointer)0x0;\n            pOVar6->_vptr_Object = pp_Var10;\n            (pOVar6->name_)._M_string_length = 0;\n            puVar1 = PTR_read_symtab_xindex<64,_true>_004c36c0;\n            (pOVar6->name_).field_2._M_allocated_capacity = 0;\n            this_00 = pOVar6;\n            (*(code *)puVar1)(pOVar6,this,uVar11,pshdrs);\n            if ((this->super_Dynobj).super_Object.xindex_ != (Xindex *)0x0) goto LAB_0016db64;\n            (this->super_Dynobj).super_Object.xindex_ = (Xindex *)pOVar6;\n          }\n        }\n        else {\n          (*(code *)PTR_initialize_shnum_004c1fc0)(&this->elf_file_);\n          uVar9 = uVar9 + (this->elf_file_).large_shndx_offset_;\n          if (this->dynsym_shndx_ == uVar9) goto LAB_0016da7c;\n        }\n      }\n      else if (uVar3 < 0x13) {\n        puVar12 = pdynamic_shndx;\n        if (uVar3 == 6) goto LAB_0016d91c;\n        if (uVar3 == 0xb) {\n          this->dynsym_shndx_ = uVar11;\n          if ((local_34 != 0) && (uVar9 == uVar11)) {\n            (*(code *)PTR_initialize_shnum_004c1fc0)(&this->elf_file_);\n            iVar7 = (this->elf_file_).large_shndx_offset_;\n            pXVar5 = (Xindex *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar1 = PTR_read_symtab_xindex<64,_true>_004c36c0;\n            pXVar5->large_shndx_offset_ = iVar7;\n            (pXVar5->symtab_xindex_).super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>\n            ._M_impl._M_start = (pointer)0x0;\n            (pXVar5->symtab_xindex_).super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>\n            ._M_impl._M_finish = (pointer)0x0;\n            (pXVar5->symtab_xindex_).super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>\n            ._M_impl._M_end_of_storage = (pointer)0x0;\n            (*(code *)puVar1)(pXVar5,this,local_34,pshdrs);\n            this_00 = (Object *)(this->super_Dynobj).super_Object.xindex_;\n            if (this_00 != (Object *)0x0) goto LAB_0016db64;\n            (this->super_Dynobj).super_Object.xindex_ = pXVar5;\n          }\n        }\n        else if (uVar3 == 2) {\n          uVar15 = uVar11;\n        }\n      }\n      else {\n        puVar12 = pverneed_shndx;\n        if (((uVar3 == 0x6ffffffe) || (puVar12 = pversym_shndx, uVar3 == 0x6fffffff)) ||\n           (puVar12 = pverdef_shndx, uVar3 == 0x6ffffffd)) {\nLAB_0016d91c:\n          if (*puVar12 != 0xffffffff) {\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar13 + 4),*puVar12,uVar11);\n          }\n          *puVar12 = uVar11;\n        }\n      }\n      puVar13 = puVar13 + 0x40;\n      uVar11 = uVar11 + 1;\n    }" { (expression_statement "uVar3 = *(uint *)(puVar13 + 4);" (assignment_expression "uVar3 = *(uint *)(puVar13 + 4)" identifier = (pointer_expression "*(uint *)(puVar13 + 4)" * (cast_expression "(uint *)(puVar13 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 4)" ( (binary_expression "puVar13 + 4" identifier + number_literal) ))))) ;) (expression_statement "pSVar8 = this;" (assignment_expression "pSVar8 = this" identifier = identifier) ;) (if_statement "if (uVar3 == 0x12) {\n        uVar9 = *(uint *)(puVar13 + 0x28);\n        local_34 = uVar11;\n        if (uVar9 < 0xff00) {\n          if (this->dynsym_shndx_ == uVar9) {\nLAB_0016da7c:\n            (*(code *)PTR_initialize_shnum_004c1fc0)(&this->elf_file_);\n            pp_Var10 = (_func_int_varargs **)(this->elf_file_).large_shndx_offset_;\n            pOVar6 = (Object *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            (((_Vector_base<unsigned_int,_std::allocator<unsigned_int>_> *)\n             &(pOVar6->name_)._M_dataplus)->_M_impl)._M_start = (pointer)0x0;\n            pOVar6->_vptr_Object = pp_Var10;\n            (pOVar6->name_)._M_string_length = 0;\n            puVar1 = PTR_read_symtab_xindex<64,_true>_004c36c0;\n            (pOVar6->name_).field_2._M_allocated_capacity = 0;\n            this_00 = pOVar6;\n            (*(code *)puVar1)(pOVar6,this,uVar11,pshdrs);\n            if ((this->super_Dynobj).super_Object.xindex_ != (Xindex *)0x0) goto LAB_0016db64;\n            (this->super_Dynobj).super_Object.xindex_ = (Xindex *)pOVar6;\n          }\n        }\n        else {\n          (*(code *)PTR_initialize_shnum_004c1fc0)(&this->elf_file_);\n          uVar9 = uVar9 + (this->elf_file_).large_shndx_offset_;\n          if (this->dynsym_shndx_ == uVar9) goto LAB_0016da7c;\n        }\n      }\n      else if (uVar3 < 0x13) {\n        puVar12 = pdynamic_shndx;\n        if (uVar3 == 6) goto LAB_0016d91c;\n        if (uVar3 == 0xb) {\n          this->dynsym_shndx_ = uVar11;\n          if ((local_34 != 0) && (uVar9 == uVar11)) {\n            (*(code *)PTR_initialize_shnum_004c1fc0)(&this->elf_file_);\n            iVar7 = (this->elf_file_).large_shndx_offset_;\n            pXVar5 = (Xindex *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar1 = PTR_read_symtab_xindex<64,_true>_004c36c0;\n            pXVar5->large_shndx_offset_ = iVar7;\n            (pXVar5->symtab_xindex_).super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>\n            ._M_impl._M_start = (pointer)0x0;\n            (pXVar5->symtab_xindex_).super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>\n            ._M_impl._M_finish = (pointer)0x0;\n            (pXVar5->symtab_xindex_).super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>\n            ._M_impl._M_end_of_storage = (pointer)0x0;\n            (*(code *)puVar1)(pXVar5,this,local_34,pshdrs);\n            this_00 = (Object *)(this->super_Dynobj).super_Object.xindex_;\n            if (this_00 != (Object *)0x0) goto LAB_0016db64;\n            (this->super_Dynobj).super_Object.xindex_ = pXVar5;\n          }\n        }\n        else if (uVar3 == 2) {\n          uVar15 = uVar11;\n        }\n      }\n      else {\n        puVar12 = pverneed_shndx;\n        if (((uVar3 == 0x6ffffffe) || (puVar12 = pversym_shndx, uVar3 == 0x6fffffff)) ||\n           (puVar12 = pverdef_shndx, uVar3 == 0x6ffffffd)) {\nLAB_0016d91c:\n          if (*puVar12 != 0xffffffff) {\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar13 + 4),*puVar12,uVar11);\n          }\n          *puVar12 = uVar11;\n        }\n      }" if (parenthesized_expression "(uVar3 == 0x12)" ( (binary_expression "uVar3 == 0x12" identifier == number_literal) )) (compound_statement "{\n        uVar9 = *(uint *)(puVar13 + 0x28);\n        local_34 = uVar11;\n        if (uVar9 < 0xff00) {\n          if (this->dynsym_shndx_ == uVar9) {\nLAB_0016da7c:\n            (*(code *)PTR_initialize_shnum_004c1fc0)(&this->elf_file_);\n            pp_Var10 = (_func_int_varargs **)(this->elf_file_).large_shndx_offset_;\n            pOVar6 = (Object *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            (((_Vector_base<unsigned_int,_std::allocator<unsigned_int>_> *)\n             &(pOVar6->name_)._M_dataplus)->_M_impl)._M_start = (pointer)0x0;\n            pOVar6->_vptr_Object = pp_Var10;\n            (pOVar6->name_)._M_string_length = 0;\n            puVar1 = PTR_read_symtab_xindex<64,_true>_004c36c0;\n            (pOVar6->name_).field_2._M_allocated_capacity = 0;\n            this_00 = pOVar6;\n            (*(code *)puVar1)(pOVar6,this,uVar11,pshdrs);\n            if ((this->super_Dynobj).super_Object.xindex_ != (Xindex *)0x0) goto LAB_0016db64;\n            (this->super_Dynobj).super_Object.xindex_ = (Xindex *)pOVar6;\n          }\n        }\n        else {\n          (*(code *)PTR_initialize_shnum_004c1fc0)(&this->elf_file_);\n          uVar9 = uVar9 + (this->elf_file_).large_shndx_offset_;\n          if (this->dynsym_shndx_ == uVar9) goto LAB_0016da7c;\n        }\n      }" { (expression_statement "uVar9 = *(uint *)(puVar13 + 0x28);" (assignment_expression "uVar9 = *(uint *)(puVar13 + 0x28)" identifier = (pointer_expression "*(uint *)(puVar13 + 0x28)" * (cast_expression "(uint *)(puVar13 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x28)" ( (binary_expression "puVar13 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "local_34 = uVar11;" (assignment_expression "local_34 = uVar11" identifier = identifier) ;) (if_statement "if (uVar9 < 0xff00) {\n          if (this->dynsym_shndx_ == uVar9) {\nLAB_0016da7c:\n            (*(code *)PTR_initialize_shnum_004c1fc0)(&this->elf_file_);\n            pp_Var10 = (_func_int_varargs **)(this->elf_file_).large_shndx_offset_;\n            pOVar6 = (Object *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            (((_Vector_base<unsigned_int,_std::allocator<unsigned_int>_> *)\n             &(pOVar6->name_)._M_dataplus)->_M_impl)._M_start = (pointer)0x0;\n            pOVar6->_vptr_Object = pp_Var10;\n            (pOVar6->name_)._M_string_length = 0;\n            puVar1 = PTR_read_symtab_xindex<64,_true>_004c36c0;\n            (pOVar6->name_).field_2._M_allocated_capacity = 0;\n            this_00 = pOVar6;\n            (*(code *)puVar1)(pOVar6,this,uVar11,pshdrs);\n            if ((this->super_Dynobj).super_Object.xindex_ != (Xindex *)0x0) goto LAB_0016db64;\n            (this->super_Dynobj).super_Object.xindex_ = (Xindex *)pOVar6;\n          }\n        }\n        else {\n          (*(code *)PTR_initialize_shnum_004c1fc0)(&this->elf_file_);\n          uVar9 = uVar9 + (this->elf_file_).large_shndx_offset_;\n          if (this->dynsym_shndx_ == uVar9) goto LAB_0016da7c;\n        }" if (parenthesized_expression "(uVar9 < 0xff00)" ( (binary_expression "uVar9 < 0xff00" identifier < number_literal) )) (compound_statement "{\n          if (this->dynsym_shndx_ == uVar9) {\nLAB_0016da7c:\n            (*(code *)PTR_initialize_shnum_004c1fc0)(&this->elf_file_);\n            pp_Var10 = (_func_int_varargs **)(this->elf_file_).large_shndx_offset_;\n            pOVar6 = (Object *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            (((_Vector_base<unsigned_int,_std::allocator<unsigned_int>_> *)\n             &(pOVar6->name_)._M_dataplus)->_M_impl)._M_start = (pointer)0x0;\n            pOVar6->_vptr_Object = pp_Var10;\n            (pOVar6->name_)._M_string_length = 0;\n            puVar1 = PTR_read_symtab_xindex<64,_true>_004c36c0;\n            (pOVar6->name_).field_2._M_allocated_capacity = 0;\n            this_00 = pOVar6;\n            (*(code *)puVar1)(pOVar6,this,uVar11,pshdrs);\n            if ((this->super_Dynobj).super_Object.xindex_ != (Xindex *)0x0) goto LAB_0016db64;\n            (this->super_Dynobj).super_Object.xindex_ = (Xindex *)pOVar6;\n          }\n        }" { (if_statement "if (this->dynsym_shndx_ == uVar9) {\nLAB_0016da7c:\n            (*(code *)PTR_initialize_shnum_004c1fc0)(&this->elf_file_);\n            pp_Var10 = (_func_int_varargs **)(this->elf_file_).large_shndx_offset_;\n            pOVar6 = (Object *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            (((_Vector_base<unsigned_int,_std::allocator<unsigned_int>_> *)\n             &(pOVar6->name_)._M_dataplus)->_M_impl)._M_start = (pointer)0x0;\n            pOVar6->_vptr_Object = pp_Var10;\n            (pOVar6->name_)._M_string_length = 0;\n            puVar1 = PTR_read_symtab_xindex<64,_true>_004c36c0;\n            (pOVar6->name_).field_2._M_allocated_capacity = 0;\n            this_00 = pOVar6;\n            (*(code *)puVar1)(pOVar6,this,uVar11,pshdrs);\n            if ((this->super_Dynobj).super_Object.xindex_ != (Xindex *)0x0) goto LAB_0016db64;\n            (this->super_Dynobj).super_Object.xindex_ = (Xindex *)pOVar6;\n          }" if (parenthesized_expression "(this->dynsym_shndx_ == uVar9)" ( (binary_expression "this->dynsym_shndx_ == uVar9" (field_expression "this->dynsym_shndx_" identifier -> field_identifier) == identifier) )) (compound_statement "{\nLAB_0016da7c:\n            (*(code *)PTR_initialize_shnum_004c1fc0)(&this->elf_file_);\n            pp_Var10 = (_func_int_varargs **)(this->elf_file_).large_shndx_offset_;\n            pOVar6 = (Object *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            (((_Vector_base<unsigned_int,_std::allocator<unsigned_int>_> *)\n             &(pOVar6->name_)._M_dataplus)->_M_impl)._M_start = (pointer)0x0;\n            pOVar6->_vptr_Object = pp_Var10;\n            (pOVar6->name_)._M_string_length = 0;\n            puVar1 = PTR_read_symtab_xindex<64,_true>_004c36c0;\n            (pOVar6->name_).field_2._M_allocated_capacity = 0;\n            this_00 = pOVar6;\n            (*(code *)puVar1)(pOVar6,this,uVar11,pshdrs);\n            if ((this->super_Dynobj).super_Object.xindex_ != (Xindex *)0x0) goto LAB_0016db64;\n            (this->super_Dynobj).super_Object.xindex_ = (Xindex *)pOVar6;\n          }" { (labeled_statement "LAB_0016da7c:\n            (*(code *)PTR_initialize_shnum_004c1fc0)(&this->elf_file_);" statement_identifier : (expression_statement "(*(code *)PTR_initialize_shnum_004c1fc0)(&this->elf_file_);" (call_expression "(*(code *)PTR_initialize_shnum_004c1fc0)(&this->elf_file_)" (parenthesized_expression "(*(code *)PTR_initialize_shnum_004c1fc0)" ( (pointer_expression "*(code *)PTR_initialize_shnum_004c1fc0" * (cast_expression "(code *)PTR_initialize_shnum_004c1fc0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&this->elf_file_)" ( (pointer_expression "&this->elf_file_" & (field_expression "this->elf_file_" identifier -> field_identifier)) ))) ;)) (expression_statement "pp_Var10 = (_func_int_varargs **)(this->elf_file_).large_shndx_offset_;" (assignment_expression "pp_Var10 = (_func_int_varargs **)(this->elf_file_).large_shndx_offset_" identifier = (cast_expression "(_func_int_varargs **)(this->elf_file_).large_shndx_offset_" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "(this->elf_file_).large_shndx_offset_" (parenthesized_expression "(this->elf_file_)" ( (field_expression "this->elf_file_" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "pOVar6 = (Object *)(*(code *)PTR_operator_new_004c13a8)(0x10);" (assignment_expression "pOVar6 = (Object *)(*(code *)PTR_operator_new_004c13a8)(0x10)" identifier = (cast_expression "(Object *)(*(code *)PTR_operator_new_004c13a8)(0x10)" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x10)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x10)" ( number_literal ))))) ;) (expression_statement "(((_Vector_base<unsigned_int,_std::allocator<unsigned_int>_> *)\n             &(pOVar6->name_)._M_dataplus)->_M_impl)._M_start = (pointer)0x0;" (assignment_expression "(((_Vector_base<unsigned_int,_std::allocator<unsigned_int>_> *)\n             &(pOVar6->name_)._M_dataplus)->_M_impl)._M_start = (pointer)0x0" (field_expression "(((_Vector_base<unsigned_int,_std::allocator<unsigned_int>_> *)\n             &(pOVar6->name_)._M_dataplus)->_M_impl)._M_start" (parenthesized_expression "(((_Vector_base<unsigned_int,_std::allocator<unsigned_int>_> *)\n             &(pOVar6->name_)._M_dataplus)->_M_impl)" ( (field_expression "((_Vector_base<unsigned_int,_std::allocator<unsigned_int>_> *)\n             &(pOVar6->name_)._M_dataplus)->_M_impl" (parenthesized_expression "((_Vector_base<unsigned_int,_std::allocator<unsigned_int>_> *)\n             &(pOVar6->name_)._M_dataplus)" ( (binary_expression "(_Vector_base<unsigned_int,_std::allocator<unsigned_int>_> *)\n             &(pOVar6->name_)._M_dataplus" (parenthesized_expression "(_Vector_base<unsigned_int,_std::allocator<unsigned_int>_> *)" ( (ERROR "_Vector_base<unsigned_int,_std::" (comma_expression "_Vector_base<unsigned_int,_std" (binary_expression "_Vector_base<unsigned_int" identifier < identifier) , identifier) : :) (binary_expression "allocator<unsigned_int>_> *" (binary_expression "allocator<unsigned_int>_" (binary_expression "allocator<unsigned_int" identifier < identifier) > identifier) > (pointer_expression "*" * identifier)) )) & (field_expression "(pOVar6->name_)._M_dataplus" (parenthesized_expression "(pOVar6->name_)" ( (field_expression "pOVar6->name_" identifier -> field_identifier) )) . field_identifier)) )) -> field_identifier) )) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "pOVar6->_vptr_Object = pp_Var10;" (assignment_expression "pOVar6->_vptr_Object = pp_Var10" (field_expression "pOVar6->_vptr_Object" identifier -> field_identifier) = identifier) ;) (expression_statement "(pOVar6->name_)._M_string_length = 0;" (assignment_expression "(pOVar6->name_)._M_string_length = 0" (field_expression "(pOVar6->name_)._M_string_length" (parenthesized_expression "(pOVar6->name_)" ( (field_expression "pOVar6->name_" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "puVar1 = PTR_read_symtab_xindex<64,_true>_004c36c0;" (comma_expression "puVar1 = PTR_read_symtab_xindex<64,_true>_004c36c0" (assignment_expression "puVar1 = PTR_read_symtab_xindex<64" identifier = (binary_expression "PTR_read_symtab_xindex<64" identifier < number_literal)) , (binary_expression "_true>_004c36c0" identifier > identifier)) ;) (expression_statement "(pOVar6->name_).field_2._M_allocated_capacity = 0;" (assignment_expression "(pOVar6->name_).field_2._M_allocated_capacity = 0" (field_expression "(pOVar6->name_).field_2._M_allocated_capacity" (field_expression "(pOVar6->name_).field_2" (parenthesized_expression "(pOVar6->name_)" ( (field_expression "pOVar6->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "this_00 = pOVar6;" (assignment_expression "this_00 = pOVar6" identifier = identifier) ;) (expression_statement "(*(code *)puVar1)(pOVar6,this,uVar11,pshdrs);" (call_expression "(*(code *)puVar1)(pOVar6,this,uVar11,pshdrs)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pOVar6,this,uVar11,pshdrs)" ( identifier , identifier , identifier , identifier ))) ;) (if_statement "if ((this->super_Dynobj).super_Object.xindex_ != (Xindex *)0x0) goto LAB_0016db64;" if (parenthesized_expression "((this->super_Dynobj).super_Object.xindex_ != (Xindex *)0x0)" ( (binary_expression "(this->super_Dynobj).super_Object.xindex_ != (Xindex *)0x0" (field_expression "(this->super_Dynobj).super_Object.xindex_" (field_expression "(this->super_Dynobj).super_Object" (parenthesized_expression "(this->super_Dynobj)" ( (field_expression "this->super_Dynobj" identifier -> field_identifier) )) . field_identifier) . field_identifier) != (cast_expression "(Xindex *)0x0" ( (type_descriptor "Xindex *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0016db64;" goto statement_identifier ;)) (expression_statement "(this->super_Dynobj).super_Object.xindex_ = (Xindex *)pOVar6;" (assignment_expression "(this->super_Dynobj).super_Object.xindex_ = (Xindex *)pOVar6" (field_expression "(this->super_Dynobj).super_Object.xindex_" (field_expression "(this->super_Dynobj).super_Object" (parenthesized_expression "(this->super_Dynobj)" ( (field_expression "this->super_Dynobj" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(Xindex *)pOVar6" ( (type_descriptor "Xindex *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) }) (else_clause "else {\n          (*(code *)PTR_initialize_shnum_004c1fc0)(&this->elf_file_);\n          uVar9 = uVar9 + (this->elf_file_).large_shndx_offset_;\n          if (this->dynsym_shndx_ == uVar9) goto LAB_0016da7c;\n        }" else (compound_statement "{\n          (*(code *)PTR_initialize_shnum_004c1fc0)(&this->elf_file_);\n          uVar9 = uVar9 + (this->elf_file_).large_shndx_offset_;\n          if (this->dynsym_shndx_ == uVar9) goto LAB_0016da7c;\n        }" { (expression_statement "(*(code *)PTR_initialize_shnum_004c1fc0)(&this->elf_file_);" (call_expression "(*(code *)PTR_initialize_shnum_004c1fc0)(&this->elf_file_)" (parenthesized_expression "(*(code *)PTR_initialize_shnum_004c1fc0)" ( (pointer_expression "*(code *)PTR_initialize_shnum_004c1fc0" * (cast_expression "(code *)PTR_initialize_shnum_004c1fc0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&this->elf_file_)" ( (pointer_expression "&this->elf_file_" & (field_expression "this->elf_file_" identifier -> field_identifier)) ))) ;) (expression_statement "uVar9 = uVar9 + (this->elf_file_).large_shndx_offset_;" (assignment_expression "uVar9 = uVar9 + (this->elf_file_).large_shndx_offset_" identifier = (binary_expression "uVar9 + (this->elf_file_).large_shndx_offset_" identifier + (field_expression "(this->elf_file_).large_shndx_offset_" (parenthesized_expression "(this->elf_file_)" ( (field_expression "this->elf_file_" identifier -> field_identifier) )) . field_identifier))) ;) (if_statement "if (this->dynsym_shndx_ == uVar9) goto LAB_0016da7c;" if (parenthesized_expression "(this->dynsym_shndx_ == uVar9)" ( (binary_expression "this->dynsym_shndx_ == uVar9" (field_expression "this->dynsym_shndx_" identifier -> field_identifier) == identifier) )) (goto_statement "goto LAB_0016da7c;" goto statement_identifier ;)) }))) }) (else_clause "else if (uVar3 < 0x13) {\n        puVar12 = pdynamic_shndx;\n        if (uVar3 == 6) goto LAB_0016d91c;\n        if (uVar3 == 0xb) {\n          this->dynsym_shndx_ = uVar11;\n          if ((local_34 != 0) && (uVar9 == uVar11)) {\n            (*(code *)PTR_initialize_shnum_004c1fc0)(&this->elf_file_);\n            iVar7 = (this->elf_file_).large_shndx_offset_;\n            pXVar5 = (Xindex *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar1 = PTR_read_symtab_xindex<64,_true>_004c36c0;\n            pXVar5->large_shndx_offset_ = iVar7;\n            (pXVar5->symtab_xindex_).super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>\n            ._M_impl._M_start = (pointer)0x0;\n            (pXVar5->symtab_xindex_).super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>\n            ._M_impl._M_finish = (pointer)0x0;\n            (pXVar5->symtab_xindex_).super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>\n            ._M_impl._M_end_of_storage = (pointer)0x0;\n            (*(code *)puVar1)(pXVar5,this,local_34,pshdrs);\n            this_00 = (Object *)(this->super_Dynobj).super_Object.xindex_;\n            if (this_00 != (Object *)0x0) goto LAB_0016db64;\n            (this->super_Dynobj).super_Object.xindex_ = pXVar5;\n          }\n        }\n        else if (uVar3 == 2) {\n          uVar15 = uVar11;\n        }\n      }\n      else {\n        puVar12 = pverneed_shndx;\n        if (((uVar3 == 0x6ffffffe) || (puVar12 = pversym_shndx, uVar3 == 0x6fffffff)) ||\n           (puVar12 = pverdef_shndx, uVar3 == 0x6ffffffd)) {\nLAB_0016d91c:\n          if (*puVar12 != 0xffffffff) {\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar13 + 4),*puVar12,uVar11);\n          }\n          *puVar12 = uVar11;\n        }\n      }" else (if_statement "if (uVar3 < 0x13) {\n        puVar12 = pdynamic_shndx;\n        if (uVar3 == 6) goto LAB_0016d91c;\n        if (uVar3 == 0xb) {\n          this->dynsym_shndx_ = uVar11;\n          if ((local_34 != 0) && (uVar9 == uVar11)) {\n            (*(code *)PTR_initialize_shnum_004c1fc0)(&this->elf_file_);\n            iVar7 = (this->elf_file_).large_shndx_offset_;\n            pXVar5 = (Xindex *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar1 = PTR_read_symtab_xindex<64,_true>_004c36c0;\n            pXVar5->large_shndx_offset_ = iVar7;\n            (pXVar5->symtab_xindex_).super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>\n            ._M_impl._M_start = (pointer)0x0;\n            (pXVar5->symtab_xindex_).super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>\n            ._M_impl._M_finish = (pointer)0x0;\n            (pXVar5->symtab_xindex_).super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>\n            ._M_impl._M_end_of_storage = (pointer)0x0;\n            (*(code *)puVar1)(pXVar5,this,local_34,pshdrs);\n            this_00 = (Object *)(this->super_Dynobj).super_Object.xindex_;\n            if (this_00 != (Object *)0x0) goto LAB_0016db64;\n            (this->super_Dynobj).super_Object.xindex_ = pXVar5;\n          }\n        }\n        else if (uVar3 == 2) {\n          uVar15 = uVar11;\n        }\n      }\n      else {\n        puVar12 = pverneed_shndx;\n        if (((uVar3 == 0x6ffffffe) || (puVar12 = pversym_shndx, uVar3 == 0x6fffffff)) ||\n           (puVar12 = pverdef_shndx, uVar3 == 0x6ffffffd)) {\nLAB_0016d91c:\n          if (*puVar12 != 0xffffffff) {\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar13 + 4),*puVar12,uVar11);\n          }\n          *puVar12 = uVar11;\n        }\n      }" if (parenthesized_expression "(uVar3 < 0x13)" ( (binary_expression "uVar3 < 0x13" identifier < number_literal) )) (compound_statement "{\n        puVar12 = pdynamic_shndx;\n        if (uVar3 == 6) goto LAB_0016d91c;\n        if (uVar3 == 0xb) {\n          this->dynsym_shndx_ = uVar11;\n          if ((local_34 != 0) && (uVar9 == uVar11)) {\n            (*(code *)PTR_initialize_shnum_004c1fc0)(&this->elf_file_);\n            iVar7 = (this->elf_file_).large_shndx_offset_;\n            pXVar5 = (Xindex *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar1 = PTR_read_symtab_xindex<64,_true>_004c36c0;\n            pXVar5->large_shndx_offset_ = iVar7;\n            (pXVar5->symtab_xindex_).super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>\n            ._M_impl._M_start = (pointer)0x0;\n            (pXVar5->symtab_xindex_).super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>\n            ._M_impl._M_finish = (pointer)0x0;\n            (pXVar5->symtab_xindex_).super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>\n            ._M_impl._M_end_of_storage = (pointer)0x0;\n            (*(code *)puVar1)(pXVar5,this,local_34,pshdrs);\n            this_00 = (Object *)(this->super_Dynobj).super_Object.xindex_;\n            if (this_00 != (Object *)0x0) goto LAB_0016db64;\n            (this->super_Dynobj).super_Object.xindex_ = pXVar5;\n          }\n        }\n        else if (uVar3 == 2) {\n          uVar15 = uVar11;\n        }\n      }" { (expression_statement "puVar12 = pdynamic_shndx;" (assignment_expression "puVar12 = pdynamic_shndx" identifier = identifier) ;) (if_statement "if (uVar3 == 6) goto LAB_0016d91c;" if (parenthesized_expression "(uVar3 == 6)" ( (binary_expression "uVar3 == 6" identifier == number_literal) )) (goto_statement "goto LAB_0016d91c;" goto statement_identifier ;)) (if_statement "if (uVar3 == 0xb) {\n          this->dynsym_shndx_ = uVar11;\n          if ((local_34 != 0) && (uVar9 == uVar11)) {\n            (*(code *)PTR_initialize_shnum_004c1fc0)(&this->elf_file_);\n            iVar7 = (this->elf_file_).large_shndx_offset_;\n            pXVar5 = (Xindex *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar1 = PTR_read_symtab_xindex<64,_true>_004c36c0;\n            pXVar5->large_shndx_offset_ = iVar7;\n            (pXVar5->symtab_xindex_).super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>\n            ._M_impl._M_start = (pointer)0x0;\n            (pXVar5->symtab_xindex_).super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>\n            ._M_impl._M_finish = (pointer)0x0;\n            (pXVar5->symtab_xindex_).super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>\n            ._M_impl._M_end_of_storage = (pointer)0x0;\n            (*(code *)puVar1)(pXVar5,this,local_34,pshdrs);\n            this_00 = (Object *)(this->super_Dynobj).super_Object.xindex_;\n            if (this_00 != (Object *)0x0) goto LAB_0016db64;\n            (this->super_Dynobj).super_Object.xindex_ = pXVar5;\n          }\n        }\n        else if (uVar3 == 2) {\n          uVar15 = uVar11;\n        }" if (parenthesized_expression "(uVar3 == 0xb)" ( (binary_expression "uVar3 == 0xb" identifier == number_literal) )) (compound_statement "{\n          this->dynsym_shndx_ = uVar11;\n          if ((local_34 != 0) && (uVar9 == uVar11)) {\n            (*(code *)PTR_initialize_shnum_004c1fc0)(&this->elf_file_);\n            iVar7 = (this->elf_file_).large_shndx_offset_;\n            pXVar5 = (Xindex *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar1 = PTR_read_symtab_xindex<64,_true>_004c36c0;\n            pXVar5->large_shndx_offset_ = iVar7;\n            (pXVar5->symtab_xindex_).super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>\n            ._M_impl._M_start = (pointer)0x0;\n            (pXVar5->symtab_xindex_).super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>\n            ._M_impl._M_finish = (pointer)0x0;\n            (pXVar5->symtab_xindex_).super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>\n            ._M_impl._M_end_of_storage = (pointer)0x0;\n            (*(code *)puVar1)(pXVar5,this,local_34,pshdrs);\n            this_00 = (Object *)(this->super_Dynobj).super_Object.xindex_;\n            if (this_00 != (Object *)0x0) goto LAB_0016db64;\n            (this->super_Dynobj).super_Object.xindex_ = pXVar5;\n          }\n        }" { (expression_statement "this->dynsym_shndx_ = uVar11;" (assignment_expression "this->dynsym_shndx_ = uVar11" (field_expression "this->dynsym_shndx_" identifier -> field_identifier) = identifier) ;) (if_statement "if ((local_34 != 0) && (uVar9 == uVar11)) {\n            (*(code *)PTR_initialize_shnum_004c1fc0)(&this->elf_file_);\n            iVar7 = (this->elf_file_).large_shndx_offset_;\n            pXVar5 = (Xindex *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar1 = PTR_read_symtab_xindex<64,_true>_004c36c0;\n            pXVar5->large_shndx_offset_ = iVar7;\n            (pXVar5->symtab_xindex_).super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>\n            ._M_impl._M_start = (pointer)0x0;\n            (pXVar5->symtab_xindex_).super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>\n            ._M_impl._M_finish = (pointer)0x0;\n            (pXVar5->symtab_xindex_).super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>\n            ._M_impl._M_end_of_storage = (pointer)0x0;\n            (*(code *)puVar1)(pXVar5,this,local_34,pshdrs);\n            this_00 = (Object *)(this->super_Dynobj).super_Object.xindex_;\n            if (this_00 != (Object *)0x0) goto LAB_0016db64;\n            (this->super_Dynobj).super_Object.xindex_ = pXVar5;\n          }" if (parenthesized_expression "((local_34 != 0) && (uVar9 == uVar11))" ( (binary_expression "(local_34 != 0) && (uVar9 == uVar11)" (parenthesized_expression "(local_34 != 0)" ( (binary_expression "local_34 != 0" identifier != number_literal) )) && (parenthesized_expression "(uVar9 == uVar11)" ( (binary_expression "uVar9 == uVar11" identifier == identifier) ))) )) (compound_statement "{\n            (*(code *)PTR_initialize_shnum_004c1fc0)(&this->elf_file_);\n            iVar7 = (this->elf_file_).large_shndx_offset_;\n            pXVar5 = (Xindex *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar1 = PTR_read_symtab_xindex<64,_true>_004c36c0;\n            pXVar5->large_shndx_offset_ = iVar7;\n            (pXVar5->symtab_xindex_).super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>\n            ._M_impl._M_start = (pointer)0x0;\n            (pXVar5->symtab_xindex_).super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>\n            ._M_impl._M_finish = (pointer)0x0;\n            (pXVar5->symtab_xindex_).super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>\n            ._M_impl._M_end_of_storage = (pointer)0x0;\n            (*(code *)puVar1)(pXVar5,this,local_34,pshdrs);\n            this_00 = (Object *)(this->super_Dynobj).super_Object.xindex_;\n            if (this_00 != (Object *)0x0) goto LAB_0016db64;\n            (this->super_Dynobj).super_Object.xindex_ = pXVar5;\n          }" { (expression_statement "(*(code *)PTR_initialize_shnum_004c1fc0)(&this->elf_file_);" (call_expression "(*(code *)PTR_initialize_shnum_004c1fc0)(&this->elf_file_)" (parenthesized_expression "(*(code *)PTR_initialize_shnum_004c1fc0)" ( (pointer_expression "*(code *)PTR_initialize_shnum_004c1fc0" * (cast_expression "(code *)PTR_initialize_shnum_004c1fc0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&this->elf_file_)" ( (pointer_expression "&this->elf_file_" & (field_expression "this->elf_file_" identifier -> field_identifier)) ))) ;) (expression_statement "iVar7 = (this->elf_file_).large_shndx_offset_;" (assignment_expression "iVar7 = (this->elf_file_).large_shndx_offset_" identifier = (field_expression "(this->elf_file_).large_shndx_offset_" (parenthesized_expression "(this->elf_file_)" ( (field_expression "this->elf_file_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pXVar5 = (Xindex *)(*(code *)PTR_operator_new_004c13a8)(0x10);" (assignment_expression "pXVar5 = (Xindex *)(*(code *)PTR_operator_new_004c13a8)(0x10)" identifier = (cast_expression "(Xindex *)(*(code *)PTR_operator_new_004c13a8)(0x10)" ( (type_descriptor "Xindex *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x10)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x10)" ( number_literal ))))) ;) (expression_statement "puVar1 = PTR_read_symtab_xindex<64,_true>_004c36c0;" (comma_expression "puVar1 = PTR_read_symtab_xindex<64,_true>_004c36c0" (assignment_expression "puVar1 = PTR_read_symtab_xindex<64" identifier = (binary_expression "PTR_read_symtab_xindex<64" identifier < number_literal)) , (binary_expression "_true>_004c36c0" identifier > identifier)) ;) (expression_statement "pXVar5->large_shndx_offset_ = iVar7;" (assignment_expression "pXVar5->large_shndx_offset_ = iVar7" (field_expression "pXVar5->large_shndx_offset_" identifier -> field_identifier) = identifier) ;) (ERROR "(pXVar5->symtab_xindex_).super__Vector_base<unsigned_int,_std::" (comma_expression "(pXVar5->symtab_xindex_).super__Vector_base<unsigned_int,_std" (binary_expression "(pXVar5->symtab_xindex_).super__Vector_base<unsigned_int" (field_expression "(pXVar5->symtab_xindex_).super__Vector_base" (parenthesized_expression "(pXVar5->symtab_xindex_)" ( (field_expression "pXVar5->symtab_xindex_" identifier -> field_identifier) )) . field_identifier) < identifier) , identifier) : :) (expression_statement "allocator<unsigned_int>_>\n            ._M_impl._M_start = (pointer)0x0;" (assignment_expression "allocator<unsigned_int>_>\n            ._M_impl._M_start = (pointer)0x0" (field_expression "allocator<unsigned_int>_>\n            ._M_impl._M_start" (field_expression "allocator<unsigned_int>_>\n            ._M_impl" (binary_expression "allocator<unsigned_int>_" (binary_expression "allocator<unsigned_int" identifier < identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (ERROR "(pXVar5->symtab_xindex_).super__Vector_base<unsigned_int,_std::" (comma_expression "(pXVar5->symtab_xindex_).super__Vector_base<unsigned_int,_std" (binary_expression "(pXVar5->symtab_xindex_).super__Vector_base<unsigned_int" (field_expression "(pXVar5->symtab_xindex_).super__Vector_base" (parenthesized_expression "(pXVar5->symtab_xindex_)" ( (field_expression "pXVar5->symtab_xindex_" identifier -> field_identifier) )) . field_identifier) < identifier) , identifier) : :) (expression_statement "allocator<unsigned_int>_>\n            ._M_impl._M_finish = (pointer)0x0;" (assignment_expression "allocator<unsigned_int>_>\n            ._M_impl._M_finish = (pointer)0x0" (field_expression "allocator<unsigned_int>_>\n            ._M_impl._M_finish" (field_expression "allocator<unsigned_int>_>\n            ._M_impl" (binary_expression "allocator<unsigned_int>_" (binary_expression "allocator<unsigned_int" identifier < identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (ERROR "(pXVar5->symtab_xindex_).super__Vector_base<unsigned_int,_std::" (comma_expression "(pXVar5->symtab_xindex_).super__Vector_base<unsigned_int,_std" (binary_expression "(pXVar5->symtab_xindex_).super__Vector_base<unsigned_int" (field_expression "(pXVar5->symtab_xindex_).super__Vector_base" (parenthesized_expression "(pXVar5->symtab_xindex_)" ( (field_expression "pXVar5->symtab_xindex_" identifier -> field_identifier) )) . field_identifier) < identifier) , identifier) : :) (expression_statement "allocator<unsigned_int>_>\n            ._M_impl._M_end_of_storage = (pointer)0x0;" (assignment_expression "allocator<unsigned_int>_>\n            ._M_impl._M_end_of_storage = (pointer)0x0" (field_expression "allocator<unsigned_int>_>\n            ._M_impl._M_end_of_storage" (field_expression "allocator<unsigned_int>_>\n            ._M_impl" (binary_expression "allocator<unsigned_int>_" (binary_expression "allocator<unsigned_int" identifier < identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "(*(code *)puVar1)(pXVar5,this,local_34,pshdrs);" (call_expression "(*(code *)puVar1)(pXVar5,this,local_34,pshdrs)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pXVar5,this,local_34,pshdrs)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "this_00 = (Object *)(this->super_Dynobj).super_Object.xindex_;" (assignment_expression "this_00 = (Object *)(this->super_Dynobj).super_Object.xindex_" identifier = (cast_expression "(Object *)(this->super_Dynobj).super_Object.xindex_" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(this->super_Dynobj).super_Object.xindex_" (field_expression "(this->super_Dynobj).super_Object" (parenthesized_expression "(this->super_Dynobj)" ( (field_expression "this->super_Dynobj" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) (if_statement "if (this_00 != (Object *)0x0) goto LAB_0016db64;" if (parenthesized_expression "(this_00 != (Object *)0x0)" ( (binary_expression "this_00 != (Object *)0x0" identifier != (cast_expression "(Object *)0x0" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0016db64;" goto statement_identifier ;)) (expression_statement "(this->super_Dynobj).super_Object.xindex_ = pXVar5;" (assignment_expression "(this->super_Dynobj).super_Object.xindex_ = pXVar5" (field_expression "(this->super_Dynobj).super_Object.xindex_" (field_expression "(this->super_Dynobj).super_Object" (parenthesized_expression "(this->super_Dynobj)" ( (field_expression "this->super_Dynobj" identifier -> field_identifier) )) . field_identifier) . field_identifier) = identifier) ;) })) }) (else_clause "else if (uVar3 == 2) {\n          uVar15 = uVar11;\n        }" else (if_statement "if (uVar3 == 2) {\n          uVar15 = uVar11;\n        }" if (parenthesized_expression "(uVar3 == 2)" ( (binary_expression "uVar3 == 2" identifier == number_literal) )) (compound_statement "{\n          uVar15 = uVar11;\n        }" { (expression_statement "uVar15 = uVar11;" (assignment_expression "uVar15 = uVar11" identifier = identifier) ;) })))) }) (else_clause "else {\n        puVar12 = pverneed_shndx;\n        if (((uVar3 == 0x6ffffffe) || (puVar12 = pversym_shndx, uVar3 == 0x6fffffff)) ||\n           (puVar12 = pverdef_shndx, uVar3 == 0x6ffffffd)) {\nLAB_0016d91c:\n          if (*puVar12 != 0xffffffff) {\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar13 + 4),*puVar12,uVar11);\n          }\n          *puVar12 = uVar11;\n        }\n      }" else (compound_statement "{\n        puVar12 = pverneed_shndx;\n        if (((uVar3 == 0x6ffffffe) || (puVar12 = pversym_shndx, uVar3 == 0x6fffffff)) ||\n           (puVar12 = pverdef_shndx, uVar3 == 0x6ffffffd)) {\nLAB_0016d91c:\n          if (*puVar12 != 0xffffffff) {\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar13 + 4),*puVar12,uVar11);\n          }\n          *puVar12 = uVar11;\n        }\n      }" { (expression_statement "puVar12 = pverneed_shndx;" (assignment_expression "puVar12 = pverneed_shndx" identifier = identifier) ;) (if_statement "if (((uVar3 == 0x6ffffffe) || (puVar12 = pversym_shndx, uVar3 == 0x6fffffff)) ||\n           (puVar12 = pverdef_shndx, uVar3 == 0x6ffffffd)) {\nLAB_0016d91c:\n          if (*puVar12 != 0xffffffff) {\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar13 + 4),*puVar12,uVar11);\n          }\n          *puVar12 = uVar11;\n        }" if (parenthesized_expression "(((uVar3 == 0x6ffffffe) || (puVar12 = pversym_shndx, uVar3 == 0x6fffffff)) ||\n           (puVar12 = pverdef_shndx, uVar3 == 0x6ffffffd))" ( (binary_expression "((uVar3 == 0x6ffffffe) || (puVar12 = pversym_shndx, uVar3 == 0x6fffffff)) ||\n           (puVar12 = pverdef_shndx, uVar3 == 0x6ffffffd)" (parenthesized_expression "((uVar3 == 0x6ffffffe) || (puVar12 = pversym_shndx, uVar3 == 0x6fffffff))" ( (binary_expression "(uVar3 == 0x6ffffffe) || (puVar12 = pversym_shndx, uVar3 == 0x6fffffff)" (parenthesized_expression "(uVar3 == 0x6ffffffe)" ( (binary_expression "uVar3 == 0x6ffffffe" identifier == number_literal) )) || (parenthesized_expression "(puVar12 = pversym_shndx, uVar3 == 0x6fffffff)" ( (comma_expression "puVar12 = pversym_shndx, uVar3 == 0x6fffffff" (assignment_expression "puVar12 = pversym_shndx" identifier = identifier) , (binary_expression "uVar3 == 0x6fffffff" identifier == number_literal)) ))) )) || (parenthesized_expression "(puVar12 = pverdef_shndx, uVar3 == 0x6ffffffd)" ( (comma_expression "puVar12 = pverdef_shndx, uVar3 == 0x6ffffffd" (assignment_expression "puVar12 = pverdef_shndx" identifier = identifier) , (binary_expression "uVar3 == 0x6ffffffd" identifier == number_literal)) ))) )) (compound_statement "{\nLAB_0016d91c:\n          if (*puVar12 != 0xffffffff) {\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar13 + 4),*puVar12,uVar11);\n          }\n          *puVar12 = uVar11;\n        }" { (labeled_statement "LAB_0016d91c:\n          if (*puVar12 != 0xffffffff) {\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar13 + 4),*puVar12,uVar11);\n          }" statement_identifier : (if_statement "if (*puVar12 != 0xffffffff) {\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar13 + 4),*puVar12,uVar11);\n          }" if (parenthesized_expression "(*puVar12 != 0xffffffff)" ( (binary_expression "*puVar12 != 0xffffffff" (pointer_expression "*puVar12" * identifier) != number_literal) )) (compound_statement "{\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar13 + 4),*puVar12,uVar11);\n          }" { (expression_statement "uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);" (assignment_expression "uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2)" identifier = (call_expression "(*(code *)PTR_gettext_004c5c30)(puVar2)" (parenthesized_expression "(*(code *)PTR_gettext_004c5c30)" ( (pointer_expression "*(code *)PTR_gettext_004c5c30" * (cast_expression "(code *)PTR_gettext_004c5c30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar2)" ( identifier )))) ;) (expression_statement "(*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar13 + 4),*puVar12,uVar11);" (call_expression "(*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar13 + 4),*puVar12,uVar11)" (parenthesized_expression "(*(code *)PTR_error_004c1a54)" ( (pointer_expression "*(code *)PTR_error_004c1a54" * (cast_expression "(code *)PTR_error_004c1a54" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(this,uVar4,*(undefined4 *)(puVar13 + 4),*puVar12,uVar11)" ( identifier , identifier , (pointer_expression "*(undefined4 *)(puVar13 + 4)" * (cast_expression "(undefined4 *)(puVar13 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 4)" ( (binary_expression "puVar13 + 4" identifier + number_literal) )))) , (pointer_expression "*puVar12" * identifier) , identifier ))) ;) }))) (expression_statement "*puVar12 = uVar11;" (assignment_expression "*puVar12 = uVar11" (pointer_expression "*puVar12" * identifier) = identifier) ;) })) }))))) (expression_statement "puVar13 = puVar13 + 0x40;" (assignment_expression "puVar13 = puVar13 + 0x40" identifier = (binary_expression "puVar13 + 0x40" identifier + number_literal)) ;) (expression_statement "uVar11 = uVar11 + 1;" (assignment_expression "uVar11 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar11 != uVar14)" ( (binary_expression "uVar11 != uVar14" identifier != identifier) )) ;) (if_statement "if (((this->dynsym_shndx_ == 0xffffffff) && (uVar15 != 0)) &&\n       ((this->dynsym_shndx_ = uVar15, local_34 != 0 && (uVar15 == uVar9)))) {\n      (*(code *)PTR_initialize_shnum_004c1fc0)(&this->elf_file_);\n      pp_Var10 = (_func_int_varargs **)(this->elf_file_).large_shndx_offset_;\n      pOVar6 = (Object *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n      pOVar6->_vptr_Object = pp_Var10;\n      (((_Vector_base<unsigned_int,_std::allocator<unsigned_int>_> *)&(pOVar6->name_)._M_dataplus)->\n      _M_impl)._M_start = (pointer)0x0;\n      (pOVar6->name_)._M_string_length = 0;\n      puVar2 = PTR_read_symtab_xindex<64,_true>_004c36c0;\n      (pOVar6->name_).field_2._M_allocated_capacity = 0;\n      this_00 = pOVar6;\n      pSVar8 = this;\n      (*(code *)puVar2)(pOVar6,this,local_34,pshdrs);\n      if ((this->super_Dynobj).super_Object.xindex_ != (Xindex *)0x0) {\nLAB_0016db64:\n                    /* WARNING: Subroutine does not return */\n        Object::set_xindex(this_00,(Xindex *)pSVar8);\n      }\n      (this->super_Dynobj).super_Object.xindex_ = (Xindex *)pOVar6;\n    }" if (parenthesized_expression "(((this->dynsym_shndx_ == 0xffffffff) && (uVar15 != 0)) &&\n       ((this->dynsym_shndx_ = uVar15, local_34 != 0 && (uVar15 == uVar9))))" ( (binary_expression "((this->dynsym_shndx_ == 0xffffffff) && (uVar15 != 0)) &&\n       ((this->dynsym_shndx_ = uVar15, local_34 != 0 && (uVar15 == uVar9)))" (parenthesized_expression "((this->dynsym_shndx_ == 0xffffffff) && (uVar15 != 0))" ( (binary_expression "(this->dynsym_shndx_ == 0xffffffff) && (uVar15 != 0)" (parenthesized_expression "(this->dynsym_shndx_ == 0xffffffff)" ( (binary_expression "this->dynsym_shndx_ == 0xffffffff" (field_expression "this->dynsym_shndx_" identifier -> field_identifier) == number_literal) )) && (parenthesized_expression "(uVar15 != 0)" ( (binary_expression "uVar15 != 0" identifier != number_literal) ))) )) && (parenthesized_expression "((this->dynsym_shndx_ = uVar15, local_34 != 0 && (uVar15 == uVar9)))" ( (parenthesized_expression "(this->dynsym_shndx_ = uVar15, local_34 != 0 && (uVar15 == uVar9))" ( (comma_expression "this->dynsym_shndx_ = uVar15, local_34 != 0 && (uVar15 == uVar9)" (assignment_expression "this->dynsym_shndx_ = uVar15" (field_expression "this->dynsym_shndx_" identifier -> field_identifier) = identifier) , (binary_expression "local_34 != 0 && (uVar15 == uVar9)" (binary_expression "local_34 != 0" identifier != number_literal) && (parenthesized_expression "(uVar15 == uVar9)" ( (binary_expression "uVar15 == uVar9" identifier == identifier) )))) )) ))) )) (compound_statement "{\n      (*(code *)PTR_initialize_shnum_004c1fc0)(&this->elf_file_);\n      pp_Var10 = (_func_int_varargs **)(this->elf_file_).large_shndx_offset_;\n      pOVar6 = (Object *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n      pOVar6->_vptr_Object = pp_Var10;\n      (((_Vector_base<unsigned_int,_std::allocator<unsigned_int>_> *)&(pOVar6->name_)._M_dataplus)->\n      _M_impl)._M_start = (pointer)0x0;\n      (pOVar6->name_)._M_string_length = 0;\n      puVar2 = PTR_read_symtab_xindex<64,_true>_004c36c0;\n      (pOVar6->name_).field_2._M_allocated_capacity = 0;\n      this_00 = pOVar6;\n      pSVar8 = this;\n      (*(code *)puVar2)(pOVar6,this,local_34,pshdrs);\n      if ((this->super_Dynobj).super_Object.xindex_ != (Xindex *)0x0) {\nLAB_0016db64:\n                    /* WARNING: Subroutine does not return */\n        Object::set_xindex(this_00,(Xindex *)pSVar8);\n      }\n      (this->super_Dynobj).super_Object.xindex_ = (Xindex *)pOVar6;\n    }" { (expression_statement "(*(code *)PTR_initialize_shnum_004c1fc0)(&this->elf_file_);" (call_expression "(*(code *)PTR_initialize_shnum_004c1fc0)(&this->elf_file_)" (parenthesized_expression "(*(code *)PTR_initialize_shnum_004c1fc0)" ( (pointer_expression "*(code *)PTR_initialize_shnum_004c1fc0" * (cast_expression "(code *)PTR_initialize_shnum_004c1fc0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&this->elf_file_)" ( (pointer_expression "&this->elf_file_" & (field_expression "this->elf_file_" identifier -> field_identifier)) ))) ;) (expression_statement "pp_Var10 = (_func_int_varargs **)(this->elf_file_).large_shndx_offset_;" (assignment_expression "pp_Var10 = (_func_int_varargs **)(this->elf_file_).large_shndx_offset_" identifier = (cast_expression "(_func_int_varargs **)(this->elf_file_).large_shndx_offset_" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "(this->elf_file_).large_shndx_offset_" (parenthesized_expression "(this->elf_file_)" ( (field_expression "this->elf_file_" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "pOVar6 = (Object *)(*(code *)PTR_operator_new_004c13a8)(0x10);" (assignment_expression "pOVar6 = (Object *)(*(code *)PTR_operator_new_004c13a8)(0x10)" identifier = (cast_expression "(Object *)(*(code *)PTR_operator_new_004c13a8)(0x10)" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x10)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x10)" ( number_literal ))))) ;) (expression_statement "pOVar6->_vptr_Object = pp_Var10;" (assignment_expression "pOVar6->_vptr_Object = pp_Var10" (field_expression "pOVar6->_vptr_Object" identifier -> field_identifier) = identifier) ;) (expression_statement "(((_Vector_base<unsigned_int,_std::allocator<unsigned_int>_> *)&(pOVar6->name_)._M_dataplus)->\n      _M_impl)._M_start = (pointer)0x0;" (assignment_expression "(((_Vector_base<unsigned_int,_std::allocator<unsigned_int>_> *)&(pOVar6->name_)._M_dataplus)->\n      _M_impl)._M_start = (pointer)0x0" (field_expression "(((_Vector_base<unsigned_int,_std::allocator<unsigned_int>_> *)&(pOVar6->name_)._M_dataplus)->\n      _M_impl)._M_start" (parenthesized_expression "(((_Vector_base<unsigned_int,_std::allocator<unsigned_int>_> *)&(pOVar6->name_)._M_dataplus)->\n      _M_impl)" ( (field_expression "((_Vector_base<unsigned_int,_std::allocator<unsigned_int>_> *)&(pOVar6->name_)._M_dataplus)->\n      _M_impl" (parenthesized_expression "((_Vector_base<unsigned_int,_std::allocator<unsigned_int>_> *)&(pOVar6->name_)._M_dataplus)" ( (binary_expression "(_Vector_base<unsigned_int,_std::allocator<unsigned_int>_> *)&(pOVar6->name_)._M_dataplus" (parenthesized_expression "(_Vector_base<unsigned_int,_std::allocator<unsigned_int>_> *)" ( (ERROR "_Vector_base<unsigned_int,_std::" (comma_expression "_Vector_base<unsigned_int,_std" (binary_expression "_Vector_base<unsigned_int" identifier < identifier) , identifier) : :) (binary_expression "allocator<unsigned_int>_> *" (binary_expression "allocator<unsigned_int>_" (binary_expression "allocator<unsigned_int" identifier < identifier) > identifier) > (pointer_expression "*" * identifier)) )) & (field_expression "(pOVar6->name_)._M_dataplus" (parenthesized_expression "(pOVar6->name_)" ( (field_expression "pOVar6->name_" identifier -> field_identifier) )) . field_identifier)) )) -> field_identifier) )) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "(pOVar6->name_)._M_string_length = 0;" (assignment_expression "(pOVar6->name_)._M_string_length = 0" (field_expression "(pOVar6->name_)._M_string_length" (parenthesized_expression "(pOVar6->name_)" ( (field_expression "pOVar6->name_" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "puVar2 = PTR_read_symtab_xindex<64,_true>_004c36c0;" (comma_expression "puVar2 = PTR_read_symtab_xindex<64,_true>_004c36c0" (assignment_expression "puVar2 = PTR_read_symtab_xindex<64" identifier = (binary_expression "PTR_read_symtab_xindex<64" identifier < number_literal)) , (binary_expression "_true>_004c36c0" identifier > identifier)) ;) (expression_statement "(pOVar6->name_).field_2._M_allocated_capacity = 0;" (assignment_expression "(pOVar6->name_).field_2._M_allocated_capacity = 0" (field_expression "(pOVar6->name_).field_2._M_allocated_capacity" (field_expression "(pOVar6->name_).field_2" (parenthesized_expression "(pOVar6->name_)" ( (field_expression "pOVar6->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "this_00 = pOVar6;" (assignment_expression "this_00 = pOVar6" identifier = identifier) ;) (expression_statement "pSVar8 = this;" (assignment_expression "pSVar8 = this" identifier = identifier) ;) (expression_statement "(*(code *)puVar2)(pOVar6,this,local_34,pshdrs);" (call_expression "(*(code *)puVar2)(pOVar6,this,local_34,pshdrs)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pOVar6,this,local_34,pshdrs)" ( identifier , identifier , identifier , identifier ))) ;) (if_statement "if ((this->super_Dynobj).super_Object.xindex_ != (Xindex *)0x0) {\nLAB_0016db64:\n                    /* WARNING: Subroutine does not return */\n        Object::set_xindex(this_00,(Xindex *)pSVar8);\n      }" if (parenthesized_expression "((this->super_Dynobj).super_Object.xindex_ != (Xindex *)0x0)" ( (binary_expression "(this->super_Dynobj).super_Object.xindex_ != (Xindex *)0x0" (field_expression "(this->super_Dynobj).super_Object.xindex_" (field_expression "(this->super_Dynobj).super_Object" (parenthesized_expression "(this->super_Dynobj)" ( (field_expression "this->super_Dynobj" identifier -> field_identifier) )) . field_identifier) . field_identifier) != (cast_expression "(Xindex *)0x0" ( (type_descriptor "Xindex *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0016db64:\n                    /* WARNING: Subroutine does not return */\n        Object::set_xindex(this_00,(Xindex *)pSVar8);\n      }" { (labeled_statement "LAB_0016db64:\n                    /* WARNING: Subroutine does not return */\n        Object::set_xindex(this_00,(Xindex *)pSVar8);" statement_identifier : comment (labeled_statement "Object::set_xindex(this_00,(Xindex *)pSVar8);" statement_identifier : (ERROR ":" :) (expression_statement "set_xindex(this_00,(Xindex *)pSVar8);" (call_expression "set_xindex(this_00,(Xindex *)pSVar8)" identifier (argument_list "(this_00,(Xindex *)pSVar8)" ( identifier , (cast_expression "(Xindex *)pSVar8" ( (type_descriptor "Xindex *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;))) })) (expression_statement "(this->super_Dynobj).super_Object.xindex_ = (Xindex *)pOVar6;" (assignment_expression "(this->super_Dynobj).super_Object.xindex_ = (Xindex *)pOVar6" (field_expression "(this->super_Dynobj).super_Object.xindex_" (field_expression "(this->super_Dynobj).super_Object" (parenthesized_expression "(this->super_Dynobj)" ( (field_expression "this->super_Dynobj" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(Xindex *)pOVar6" ( (type_descriptor "Xindex *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) })) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void __thiscall\ngold::Sized_dynobj<64,true>::find_dynsym_sections\n          (Sized_dynobj<64,true> *this,uchar *param_1,uint *param_2,uint *param_3,uint *param_4,\n          uint *param_5)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  uint uVar3;\n  undefined4 uVar4;\n  undefined4 *puVar5;\n  uint uVar6;\n  uint uVar7;\n  uint *puVar8;\n  uchar *puVar9;\n  uint uVar10;\n  uint uVar11;\n  uint local_34;\n  \n  *param_2 = 0xffffffff;\n  *param_3 = 0xffffffff;\n  *param_4 = 0xffffffff;\n  *param_5 = 0xffffffff;\n  uVar10 = *(uint *)(this + 0x28);\n  if (uVar10 != 0) {\n    puVar2 = PTR_s__s_004c1a50 + -0xd94;\n    uVar7 = 0;\n    local_34 = 0;\n    uVar6 = 0;\n    uVar11 = 0;\n    puVar9 = param_1;\n    do {\n      uVar3 = *(uint *)(puVar9 + 4);\n      if (uVar3 == 0x12) {\n        uVar6 = *(uint *)(puVar9 + 0x28);\n        local_34 = uVar7;\n        if (uVar6 < 0xff00) {\n          if (*(uint *)(this + 0x80) == uVar6) {\nLAB_0016da7c:\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar5[1] = 0;\n            *puVar5 = uVar4;\n            puVar5[2] = 0;\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,uVar7,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }\n        else {\n          (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n          uVar6 = uVar6 + *(int *)(this + 0x78);\n          if (*(uint *)(this + 0x80) == uVar6) goto LAB_0016da7c;\n        }\n      }\n      else if (uVar3 < 0x13) {\n        puVar8 = param_5;\n        if (uVar3 == 6) goto LAB_0016d91c;\n        if (uVar3 == 0xb) {\n          *(uint *)(this + 0x80) = uVar7;\n          if ((local_34 != 0) && (uVar6 == uVar7)) {\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            *puVar5 = uVar4;\n            puVar5[1] = 0;\n            puVar5[2] = 0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,local_34,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }\n        else if (uVar3 == 2) {\n          uVar11 = uVar7;\n        }\n      }\n      else {\n        puVar8 = param_4;\n        if (((uVar3 == 0x6ffffffe) || (puVar8 = param_2, uVar3 == 0x6fffffff)) ||\n           (puVar8 = param_3, uVar3 == 0x6ffffffd)) {\nLAB_0016d91c:\n          if (*puVar8 != 0xffffffff) {\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar9 + 4),*puVar8,uVar7);\n          }\n          *puVar8 = uVar7;\n        }\n      }\n      puVar9 = puVar9 + 0x40;\n      uVar7 = uVar7 + 1;\n    } while (uVar7 != uVar10);\n    if (((*(int *)(this + 0x80) == -1) && (uVar11 != 0)) &&\n       ((*(uint *)(this + 0x80) = uVar11, local_34 != 0 && (uVar11 == uVar6)))) {\n      (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n      uVar4 = *(undefined4 *)(this + 0x78);\n      puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n      *puVar5 = uVar4;\n      puVar5[1] = 0;\n      puVar5[2] = 0;\n      puVar2 = PTR_read_symtab_xindex<64,true>_004c36c0;\n      puVar5[3] = 0;\n      (*(code *)puVar2)(puVar5,this,local_34,param_1);\n      if (*(int *)(this + 0x30) != 0) {\nLAB_0016db64:\n                    \n        FUN_0015f554();\n      }\n      *(undefined4 **)(this + 0x30) = puVar5;\n    }\n  }\n  return;\n}\n\n" (declaration "void __thiscall\ngold::Sized_dynobj<64,true>::find_dynsym_sections\n          (Sized_dynobj<64,true> *this,uchar *param_1,uint *param_2,uint *param_3,uint *param_4,\n          uint *param_5)\n\n{\n  undefined *puVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::" identifier : :) identifier (ERROR "<64" < number_literal) , (ERROR "true>::find_dynsym_sections\n          (Sized_dynobj<64,true> *this,uchar *param_1,uint *param_2,uint *param_3,uint *param_4,\n          uint *param_5)\n\n{\n  undefined" identifier > : : (function_declarator "find_dynsym_sections\n          (Sized_dynobj<64,true> *this,uchar *param_1,uint *param_2,uint *param_3,uint *param_4,\n          uint *param_5)" identifier (parameter_list "(Sized_dynobj<64,true> *this,uchar *param_1,uint *param_2,uint *param_3,uint *param_4,\n          uint *param_5)" ( (parameter_declaration "Sized_dynobj" type_identifier) (ERROR "<64" < number_literal) , (parameter_declaration "true> *this" type_identifier (ERROR ">" >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "uchar *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint *param_2" type_identifier (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)) , (parameter_declaration "uint *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) ))) { identifier) (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "uint *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "uchar *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "uint local_34;" type_identifier identifier ;) (expression_statement "*param_2 = 0xffffffff;" (assignment_expression "*param_2 = 0xffffffff" (pointer_expression "*param_2" * identifier) = number_literal) ;) (expression_statement "*param_3 = 0xffffffff;" (assignment_expression "*param_3 = 0xffffffff" (pointer_expression "*param_3" * identifier) = number_literal) ;) (expression_statement "*param_4 = 0xffffffff;" (assignment_expression "*param_4 = 0xffffffff" (pointer_expression "*param_4" * identifier) = number_literal) ;) (expression_statement "*param_5 = 0xffffffff;" (assignment_expression "*param_5 = 0xffffffff" (pointer_expression "*param_5" * identifier) = number_literal) ;) (expression_statement "uVar10 = *(uint *)(this + 0x28);" (assignment_expression "uVar10 = *(uint *)(this + 0x28)" identifier = (pointer_expression "*(uint *)(this + 0x28)" * (cast_expression "(uint *)(this + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x28)" ( (binary_expression "this + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (uVar10 != 0) {\n    puVar2 = PTR_s__s_004c1a50 + -0xd94;\n    uVar7 = 0;\n    local_34 = 0;\n    uVar6 = 0;\n    uVar11 = 0;\n    puVar9 = param_1;\n    do {\n      uVar3 = *(uint *)(puVar9 + 4);\n      if (uVar3 == 0x12) {\n        uVar6 = *(uint *)(puVar9 + 0x28);\n        local_34 = uVar7;\n        if (uVar6 < 0xff00) {\n          if (*(uint *)(this + 0x80) == uVar6) {\nLAB_0016da7c:\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar5[1] = 0;\n            *puVar5 = uVar4;\n            puVar5[2] = 0;\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,uVar7,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }\n        else {\n          (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n          uVar6 = uVar6 + *(int *)(this + 0x78);\n          if (*(uint *)(this + 0x80) == uVar6) goto LAB_0016da7c;\n        }\n      }\n      else if (uVar3 < 0x13) {\n        puVar8 = param_5;\n        if (uVar3 == 6) goto LAB_0016d91c;\n        if (uVar3 == 0xb) {\n          *(uint *)(this + 0x80) = uVar7;\n          if ((local_34 != 0) && (uVar6 == uVar7)) {\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            *puVar5 = uVar4;\n            puVar5[1] = 0;\n            puVar5[2] = 0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,local_34,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }\n        else if (uVar3 == 2) {\n          uVar11 = uVar7;\n        }\n      }\n      else {\n        puVar8 = param_4;\n        if (((uVar3 == 0x6ffffffe) || (puVar8 = param_2, uVar3 == 0x6fffffff)) ||\n           (puVar8 = param_3, uVar3 == 0x6ffffffd)) {\nLAB_0016d91c:\n          if (*puVar8 != 0xffffffff) {\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar9 + 4),*puVar8,uVar7);\n          }\n          *puVar8 = uVar7;\n        }\n      }\n      puVar9 = puVar9 + 0x40;\n      uVar7 = uVar7 + 1;\n    } while (uVar7 != uVar10);\n    if (((*(int *)(this + 0x80) == -1) && (uVar11 != 0)) &&\n       ((*(uint *)(this + 0x80) = uVar11, local_34 != 0 && (uVar11 == uVar6)))) {\n      (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n      uVar4 = *(undefined4 *)(this + 0x78);\n      puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n      *puVar5 = uVar4;\n      puVar5[1] = 0;\n      puVar5[2] = 0;\n      puVar2 = PTR_read_symtab_xindex<64,true>_004c36c0;\n      puVar5[3] = 0;\n      (*(code *)puVar2)(puVar5,this,local_34,param_1);\n      if (*(int *)(this + 0x30) != 0) {\nLAB_0016db64:\n                    \n        FUN_0015f554();\n      }\n      *(undefined4 **)(this + 0x30) = puVar5;\n    }\n  }" if (parenthesized_expression "(uVar10 != 0)" ( (binary_expression "uVar10 != 0" identifier != number_literal) )) (compound_statement "{\n    puVar2 = PTR_s__s_004c1a50 + -0xd94;\n    uVar7 = 0;\n    local_34 = 0;\n    uVar6 = 0;\n    uVar11 = 0;\n    puVar9 = param_1;\n    do {\n      uVar3 = *(uint *)(puVar9 + 4);\n      if (uVar3 == 0x12) {\n        uVar6 = *(uint *)(puVar9 + 0x28);\n        local_34 = uVar7;\n        if (uVar6 < 0xff00) {\n          if (*(uint *)(this + 0x80) == uVar6) {\nLAB_0016da7c:\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar5[1] = 0;\n            *puVar5 = uVar4;\n            puVar5[2] = 0;\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,uVar7,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }\n        else {\n          (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n          uVar6 = uVar6 + *(int *)(this + 0x78);\n          if (*(uint *)(this + 0x80) == uVar6) goto LAB_0016da7c;\n        }\n      }\n      else if (uVar3 < 0x13) {\n        puVar8 = param_5;\n        if (uVar3 == 6) goto LAB_0016d91c;\n        if (uVar3 == 0xb) {\n          *(uint *)(this + 0x80) = uVar7;\n          if ((local_34 != 0) && (uVar6 == uVar7)) {\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            *puVar5 = uVar4;\n            puVar5[1] = 0;\n            puVar5[2] = 0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,local_34,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }\n        else if (uVar3 == 2) {\n          uVar11 = uVar7;\n        }\n      }\n      else {\n        puVar8 = param_4;\n        if (((uVar3 == 0x6ffffffe) || (puVar8 = param_2, uVar3 == 0x6fffffff)) ||\n           (puVar8 = param_3, uVar3 == 0x6ffffffd)) {\nLAB_0016d91c:\n          if (*puVar8 != 0xffffffff) {\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar9 + 4),*puVar8,uVar7);\n          }\n          *puVar8 = uVar7;\n        }\n      }\n      puVar9 = puVar9 + 0x40;\n      uVar7 = uVar7 + 1;\n    } while (uVar7 != uVar10);\n    if (((*(int *)(this + 0x80) == -1) && (uVar11 != 0)) &&\n       ((*(uint *)(this + 0x80) = uVar11, local_34 != 0 && (uVar11 == uVar6)))) {\n      (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n      uVar4 = *(undefined4 *)(this + 0x78);\n      puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n      *puVar5 = uVar4;\n      puVar5[1] = 0;\n      puVar5[2] = 0;\n      puVar2 = PTR_read_symtab_xindex<64,true>_004c36c0;\n      puVar5[3] = 0;\n      (*(code *)puVar2)(puVar5,this,local_34,param_1);\n      if (*(int *)(this + 0x30) != 0) {\nLAB_0016db64:\n                    \n        FUN_0015f554();\n      }\n      *(undefined4 **)(this + 0x30) = puVar5;\n    }\n  }" { (expression_statement "puVar2 = PTR_s__s_004c1a50 + -0xd94;" (assignment_expression "puVar2 = PTR_s__s_004c1a50 + -0xd94" identifier = (binary_expression "PTR_s__s_004c1a50 + -0xd94" identifier + number_literal)) ;) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (expression_statement "puVar9 = param_1;" (assignment_expression "puVar9 = param_1" identifier = identifier) ;) (do_statement "do {\n      uVar3 = *(uint *)(puVar9 + 4);\n      if (uVar3 == 0x12) {\n        uVar6 = *(uint *)(puVar9 + 0x28);\n        local_34 = uVar7;\n        if (uVar6 < 0xff00) {\n          if (*(uint *)(this + 0x80) == uVar6) {\nLAB_0016da7c:\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar5[1] = 0;\n            *puVar5 = uVar4;\n            puVar5[2] = 0;\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,uVar7,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }\n        else {\n          (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n          uVar6 = uVar6 + *(int *)(this + 0x78);\n          if (*(uint *)(this + 0x80) == uVar6) goto LAB_0016da7c;\n        }\n      }\n      else if (uVar3 < 0x13) {\n        puVar8 = param_5;\n        if (uVar3 == 6) goto LAB_0016d91c;\n        if (uVar3 == 0xb) {\n          *(uint *)(this + 0x80) = uVar7;\n          if ((local_34 != 0) && (uVar6 == uVar7)) {\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            *puVar5 = uVar4;\n            puVar5[1] = 0;\n            puVar5[2] = 0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,local_34,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }\n        else if (uVar3 == 2) {\n          uVar11 = uVar7;\n        }\n      }\n      else {\n        puVar8 = param_4;\n        if (((uVar3 == 0x6ffffffe) || (puVar8 = param_2, uVar3 == 0x6fffffff)) ||\n           (puVar8 = param_3, uVar3 == 0x6ffffffd)) {\nLAB_0016d91c:\n          if (*puVar8 != 0xffffffff) {\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar9 + 4),*puVar8,uVar7);\n          }\n          *puVar8 = uVar7;\n        }\n      }\n      puVar9 = puVar9 + 0x40;\n      uVar7 = uVar7 + 1;\n    } while (uVar7 != uVar10);" do (compound_statement "{\n      uVar3 = *(uint *)(puVar9 + 4);\n      if (uVar3 == 0x12) {\n        uVar6 = *(uint *)(puVar9 + 0x28);\n        local_34 = uVar7;\n        if (uVar6 < 0xff00) {\n          if (*(uint *)(this + 0x80) == uVar6) {\nLAB_0016da7c:\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar5[1] = 0;\n            *puVar5 = uVar4;\n            puVar5[2] = 0;\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,uVar7,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }\n        else {\n          (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n          uVar6 = uVar6 + *(int *)(this + 0x78);\n          if (*(uint *)(this + 0x80) == uVar6) goto LAB_0016da7c;\n        }\n      }\n      else if (uVar3 < 0x13) {\n        puVar8 = param_5;\n        if (uVar3 == 6) goto LAB_0016d91c;\n        if (uVar3 == 0xb) {\n          *(uint *)(this + 0x80) = uVar7;\n          if ((local_34 != 0) && (uVar6 == uVar7)) {\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            *puVar5 = uVar4;\n            puVar5[1] = 0;\n            puVar5[2] = 0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,local_34,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }\n        else if (uVar3 == 2) {\n          uVar11 = uVar7;\n        }\n      }\n      else {\n        puVar8 = param_4;\n        if (((uVar3 == 0x6ffffffe) || (puVar8 = param_2, uVar3 == 0x6fffffff)) ||\n           (puVar8 = param_3, uVar3 == 0x6ffffffd)) {\nLAB_0016d91c:\n          if (*puVar8 != 0xffffffff) {\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar9 + 4),*puVar8,uVar7);\n          }\n          *puVar8 = uVar7;\n        }\n      }\n      puVar9 = puVar9 + 0x40;\n      uVar7 = uVar7 + 1;\n    }" { (expression_statement "uVar3 = *(uint *)(puVar9 + 4);" (assignment_expression "uVar3 = *(uint *)(puVar9 + 4)" identifier = (pointer_expression "*(uint *)(puVar9 + 4)" * (cast_expression "(uint *)(puVar9 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 4)" ( (binary_expression "puVar9 + 4" identifier + number_literal) ))))) ;) (if_statement "if (uVar3 == 0x12) {\n        uVar6 = *(uint *)(puVar9 + 0x28);\n        local_34 = uVar7;\n        if (uVar6 < 0xff00) {\n          if (*(uint *)(this + 0x80) == uVar6) {\nLAB_0016da7c:\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar5[1] = 0;\n            *puVar5 = uVar4;\n            puVar5[2] = 0;\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,uVar7,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }\n        else {\n          (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n          uVar6 = uVar6 + *(int *)(this + 0x78);\n          if (*(uint *)(this + 0x80) == uVar6) goto LAB_0016da7c;\n        }\n      }\n      else if (uVar3 < 0x13) {\n        puVar8 = param_5;\n        if (uVar3 == 6) goto LAB_0016d91c;\n        if (uVar3 == 0xb) {\n          *(uint *)(this + 0x80) = uVar7;\n          if ((local_34 != 0) && (uVar6 == uVar7)) {\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            *puVar5 = uVar4;\n            puVar5[1] = 0;\n            puVar5[2] = 0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,local_34,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }\n        else if (uVar3 == 2) {\n          uVar11 = uVar7;\n        }\n      }\n      else {\n        puVar8 = param_4;\n        if (((uVar3 == 0x6ffffffe) || (puVar8 = param_2, uVar3 == 0x6fffffff)) ||\n           (puVar8 = param_3, uVar3 == 0x6ffffffd)) {\nLAB_0016d91c:\n          if (*puVar8 != 0xffffffff) {\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar9 + 4),*puVar8,uVar7);\n          }\n          *puVar8 = uVar7;\n        }\n      }" if (parenthesized_expression "(uVar3 == 0x12)" ( (binary_expression "uVar3 == 0x12" identifier == number_literal) )) (compound_statement "{\n        uVar6 = *(uint *)(puVar9 + 0x28);\n        local_34 = uVar7;\n        if (uVar6 < 0xff00) {\n          if (*(uint *)(this + 0x80) == uVar6) {\nLAB_0016da7c:\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar5[1] = 0;\n            *puVar5 = uVar4;\n            puVar5[2] = 0;\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,uVar7,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }\n        else {\n          (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n          uVar6 = uVar6 + *(int *)(this + 0x78);\n          if (*(uint *)(this + 0x80) == uVar6) goto LAB_0016da7c;\n        }\n      }" { (expression_statement "uVar6 = *(uint *)(puVar9 + 0x28);" (assignment_expression "uVar6 = *(uint *)(puVar9 + 0x28)" identifier = (pointer_expression "*(uint *)(puVar9 + 0x28)" * (cast_expression "(uint *)(puVar9 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0x28)" ( (binary_expression "puVar9 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "local_34 = uVar7;" (assignment_expression "local_34 = uVar7" identifier = identifier) ;) (if_statement "if (uVar6 < 0xff00) {\n          if (*(uint *)(this + 0x80) == uVar6) {\nLAB_0016da7c:\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar5[1] = 0;\n            *puVar5 = uVar4;\n            puVar5[2] = 0;\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,uVar7,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }\n        else {\n          (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n          uVar6 = uVar6 + *(int *)(this + 0x78);\n          if (*(uint *)(this + 0x80) == uVar6) goto LAB_0016da7c;\n        }" if (parenthesized_expression "(uVar6 < 0xff00)" ( (binary_expression "uVar6 < 0xff00" identifier < number_literal) )) (compound_statement "{\n          if (*(uint *)(this + 0x80) == uVar6) {\nLAB_0016da7c:\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar5[1] = 0;\n            *puVar5 = uVar4;\n            puVar5[2] = 0;\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,uVar7,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }" { (if_statement "if (*(uint *)(this + 0x80) == uVar6) {\nLAB_0016da7c:\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar5[1] = 0;\n            *puVar5 = uVar4;\n            puVar5[2] = 0;\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,uVar7,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }" if (parenthesized_expression "(*(uint *)(this + 0x80) == uVar6)" ( (binary_expression "*(uint *)(this + 0x80) == uVar6" (pointer_expression "*(uint *)(this + 0x80)" * (cast_expression "(uint *)(this + 0x80)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x80)" ( (binary_expression "this + 0x80" identifier + number_literal) )))) == identifier) )) (compound_statement "{\nLAB_0016da7c:\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar5[1] = 0;\n            *puVar5 = uVar4;\n            puVar5[2] = 0;\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,uVar7,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }" { (labeled_statement "LAB_0016da7c:\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);" statement_identifier : (expression_statement "(*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);" (call_expression "(*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60)" (parenthesized_expression "(*(code *)PTR_initialize_shnum_004c1fc0)" ( (pointer_expression "*(code *)PTR_initialize_shnum_004c1fc0" * (cast_expression "(code *)PTR_initialize_shnum_004c1fc0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(this + 0x60)" ( (binary_expression "this + 0x60" identifier + number_literal) ))) ;)) (expression_statement "uVar4 = *(undefined4 *)(this + 0x78);" (assignment_expression "uVar4 = *(undefined4 *)(this + 0x78)" identifier = (pointer_expression "*(undefined4 *)(this + 0x78)" * (cast_expression "(undefined4 *)(this + 0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x78)" ( (binary_expression "this + 0x78" identifier + number_literal) ))))) ;) (expression_statement "puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);" (assignment_expression "puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x10)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x10)" ( number_literal ))))) ;) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar5 = uVar4;" (assignment_expression "*puVar5 = uVar4" (pointer_expression "*puVar5" * identifier) = identifier) ;) (expression_statement "puVar5[2] = 0;" (assignment_expression "puVar5[2] = 0" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;" (comma_expression "puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0" (assignment_expression "puVar1 = PTR_read_symtab_xindex<64" identifier = (binary_expression "PTR_read_symtab_xindex<64" identifier < number_literal)) , (binary_expression "true>_004c36c0" true > identifier)) ;) (expression_statement "puVar5[3] = 0;" (assignment_expression "puVar5[3] = 0" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "(*(code *)puVar1)(puVar5,this,uVar7,param_1);" (call_expression "(*(code *)puVar1)(puVar5,this,uVar7,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 "(puVar5,this,uVar7,param_1)" ( identifier , identifier , identifier , identifier ))) ;) (if_statement "if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;" if (parenthesized_expression "(*(int *)(this + 0x30) != 0)" ( (binary_expression "*(int *)(this + 0x30) != 0" (pointer_expression "*(int *)(this + 0x30)" * (cast_expression "(int *)(this + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x30)" ( (binary_expression "this + 0x30" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_0016db64;" goto statement_identifier ;)) (expression_statement "*(undefined4 **)(this + 0x30) = puVar5;" (assignment_expression "*(undefined4 **)(this + 0x30) = puVar5" (pointer_expression "*(undefined4 **)(this + 0x30)" * (cast_expression "(undefined4 **)(this + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x30)" ( (binary_expression "this + 0x30" identifier + number_literal) )))) = identifier) ;) })) }) (else_clause "else {\n          (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n          uVar6 = uVar6 + *(int *)(this + 0x78);\n          if (*(uint *)(this + 0x80) == uVar6) goto LAB_0016da7c;\n        }" else (compound_statement "{\n          (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n          uVar6 = uVar6 + *(int *)(this + 0x78);\n          if (*(uint *)(this + 0x80) == uVar6) goto LAB_0016da7c;\n        }" { (expression_statement "(*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);" (call_expression "(*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60)" (parenthesized_expression "(*(code *)PTR_initialize_shnum_004c1fc0)" ( (pointer_expression "*(code *)PTR_initialize_shnum_004c1fc0" * (cast_expression "(code *)PTR_initialize_shnum_004c1fc0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(this + 0x60)" ( (binary_expression "this + 0x60" identifier + number_literal) ))) ;) (expression_statement "uVar6 = uVar6 + *(int *)(this + 0x78);" (assignment_expression "uVar6 = uVar6 + *(int *)(this + 0x78)" identifier = (binary_expression "uVar6 + *(int *)(this + 0x78)" identifier + (pointer_expression "*(int *)(this + 0x78)" * (cast_expression "(int *)(this + 0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x78)" ( (binary_expression "this + 0x78" identifier + number_literal) )))))) ;) (if_statement "if (*(uint *)(this + 0x80) == uVar6) goto LAB_0016da7c;" if (parenthesized_expression "(*(uint *)(this + 0x80) == uVar6)" ( (binary_expression "*(uint *)(this + 0x80) == uVar6" (pointer_expression "*(uint *)(this + 0x80)" * (cast_expression "(uint *)(this + 0x80)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x80)" ( (binary_expression "this + 0x80" identifier + number_literal) )))) == identifier) )) (goto_statement "goto LAB_0016da7c;" goto statement_identifier ;)) }))) }) (else_clause "else if (uVar3 < 0x13) {\n        puVar8 = param_5;\n        if (uVar3 == 6) goto LAB_0016d91c;\n        if (uVar3 == 0xb) {\n          *(uint *)(this + 0x80) = uVar7;\n          if ((local_34 != 0) && (uVar6 == uVar7)) {\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            *puVar5 = uVar4;\n            puVar5[1] = 0;\n            puVar5[2] = 0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,local_34,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }\n        else if (uVar3 == 2) {\n          uVar11 = uVar7;\n        }\n      }\n      else {\n        puVar8 = param_4;\n        if (((uVar3 == 0x6ffffffe) || (puVar8 = param_2, uVar3 == 0x6fffffff)) ||\n           (puVar8 = param_3, uVar3 == 0x6ffffffd)) {\nLAB_0016d91c:\n          if (*puVar8 != 0xffffffff) {\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar9 + 4),*puVar8,uVar7);\n          }\n          *puVar8 = uVar7;\n        }\n      }" else (if_statement "if (uVar3 < 0x13) {\n        puVar8 = param_5;\n        if (uVar3 == 6) goto LAB_0016d91c;\n        if (uVar3 == 0xb) {\n          *(uint *)(this + 0x80) = uVar7;\n          if ((local_34 != 0) && (uVar6 == uVar7)) {\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            *puVar5 = uVar4;\n            puVar5[1] = 0;\n            puVar5[2] = 0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,local_34,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }\n        else if (uVar3 == 2) {\n          uVar11 = uVar7;\n        }\n      }\n      else {\n        puVar8 = param_4;\n        if (((uVar3 == 0x6ffffffe) || (puVar8 = param_2, uVar3 == 0x6fffffff)) ||\n           (puVar8 = param_3, uVar3 == 0x6ffffffd)) {\nLAB_0016d91c:\n          if (*puVar8 != 0xffffffff) {\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar9 + 4),*puVar8,uVar7);\n          }\n          *puVar8 = uVar7;\n        }\n      }" if (parenthesized_expression "(uVar3 < 0x13)" ( (binary_expression "uVar3 < 0x13" identifier < number_literal) )) (compound_statement "{\n        puVar8 = param_5;\n        if (uVar3 == 6) goto LAB_0016d91c;\n        if (uVar3 == 0xb) {\n          *(uint *)(this + 0x80) = uVar7;\n          if ((local_34 != 0) && (uVar6 == uVar7)) {\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            *puVar5 = uVar4;\n            puVar5[1] = 0;\n            puVar5[2] = 0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,local_34,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }\n        else if (uVar3 == 2) {\n          uVar11 = uVar7;\n        }\n      }" { (expression_statement "puVar8 = param_5;" (assignment_expression "puVar8 = param_5" identifier = identifier) ;) (if_statement "if (uVar3 == 6) goto LAB_0016d91c;" if (parenthesized_expression "(uVar3 == 6)" ( (binary_expression "uVar3 == 6" identifier == number_literal) )) (goto_statement "goto LAB_0016d91c;" goto statement_identifier ;)) (if_statement "if (uVar3 == 0xb) {\n          *(uint *)(this + 0x80) = uVar7;\n          if ((local_34 != 0) && (uVar6 == uVar7)) {\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            *puVar5 = uVar4;\n            puVar5[1] = 0;\n            puVar5[2] = 0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,local_34,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }\n        else if (uVar3 == 2) {\n          uVar11 = uVar7;\n        }" if (parenthesized_expression "(uVar3 == 0xb)" ( (binary_expression "uVar3 == 0xb" identifier == number_literal) )) (compound_statement "{\n          *(uint *)(this + 0x80) = uVar7;\n          if ((local_34 != 0) && (uVar6 == uVar7)) {\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            *puVar5 = uVar4;\n            puVar5[1] = 0;\n            puVar5[2] = 0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,local_34,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }" { (expression_statement "*(uint *)(this + 0x80) = uVar7;" (assignment_expression "*(uint *)(this + 0x80) = uVar7" (pointer_expression "*(uint *)(this + 0x80)" * (cast_expression "(uint *)(this + 0x80)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x80)" ( (binary_expression "this + 0x80" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((local_34 != 0) && (uVar6 == uVar7)) {\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            *puVar5 = uVar4;\n            puVar5[1] = 0;\n            puVar5[2] = 0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,local_34,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }" if (parenthesized_expression "((local_34 != 0) && (uVar6 == uVar7))" ( (binary_expression "(local_34 != 0) && (uVar6 == uVar7)" (parenthesized_expression "(local_34 != 0)" ( (binary_expression "local_34 != 0" identifier != number_literal) )) && (parenthesized_expression "(uVar6 == uVar7)" ( (binary_expression "uVar6 == uVar7" identifier == identifier) ))) )) (compound_statement "{\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            *puVar5 = uVar4;\n            puVar5[1] = 0;\n            puVar5[2] = 0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,local_34,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }" { (expression_statement "(*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);" (call_expression "(*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60)" (parenthesized_expression "(*(code *)PTR_initialize_shnum_004c1fc0)" ( (pointer_expression "*(code *)PTR_initialize_shnum_004c1fc0" * (cast_expression "(code *)PTR_initialize_shnum_004c1fc0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(this + 0x60)" ( (binary_expression "this + 0x60" identifier + number_literal) ))) ;) (expression_statement "uVar4 = *(undefined4 *)(this + 0x78);" (assignment_expression "uVar4 = *(undefined4 *)(this + 0x78)" identifier = (pointer_expression "*(undefined4 *)(this + 0x78)" * (cast_expression "(undefined4 *)(this + 0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x78)" ( (binary_expression "this + 0x78" identifier + number_literal) ))))) ;) (expression_statement "puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);" (assignment_expression "puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x10)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x10)" ( number_literal ))))) ;) (expression_statement "puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;" (comma_expression "puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0" (assignment_expression "puVar1 = PTR_read_symtab_xindex<64" identifier = (binary_expression "PTR_read_symtab_xindex<64" identifier < number_literal)) , (binary_expression "true>_004c36c0" true > identifier)) ;) (expression_statement "*puVar5 = uVar4;" (assignment_expression "*puVar5 = uVar4" (pointer_expression "*puVar5" * identifier) = identifier) ;) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[2] = 0;" (assignment_expression "puVar5[2] = 0" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[3] = 0;" (assignment_expression "puVar5[3] = 0" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "(*(code *)puVar1)(puVar5,this,local_34,param_1);" (call_expression "(*(code *)puVar1)(puVar5,this,local_34,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 "(puVar5,this,local_34,param_1)" ( identifier , identifier , identifier , identifier ))) ;) (if_statement "if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;" if (parenthesized_expression "(*(int *)(this + 0x30) != 0)" ( (binary_expression "*(int *)(this + 0x30) != 0" (pointer_expression "*(int *)(this + 0x30)" * (cast_expression "(int *)(this + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x30)" ( (binary_expression "this + 0x30" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_0016db64;" goto statement_identifier ;)) (expression_statement "*(undefined4 **)(this + 0x30) = puVar5;" (assignment_expression "*(undefined4 **)(this + 0x30) = puVar5" (pointer_expression "*(undefined4 **)(this + 0x30)" * (cast_expression "(undefined4 **)(this + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x30)" ( (binary_expression "this + 0x30" identifier + number_literal) )))) = identifier) ;) })) }) (else_clause "else if (uVar3 == 2) {\n          uVar11 = uVar7;\n        }" else (if_statement "if (uVar3 == 2) {\n          uVar11 = uVar7;\n        }" if (parenthesized_expression "(uVar3 == 2)" ( (binary_expression "uVar3 == 2" identifier == number_literal) )) (compound_statement "{\n          uVar11 = uVar7;\n        }" { (expression_statement "uVar11 = uVar7;" (assignment_expression "uVar11 = uVar7" identifier = identifier) ;) })))) }) (else_clause "else {\n        puVar8 = param_4;\n        if (((uVar3 == 0x6ffffffe) || (puVar8 = param_2, uVar3 == 0x6fffffff)) ||\n           (puVar8 = param_3, uVar3 == 0x6ffffffd)) {\nLAB_0016d91c:\n          if (*puVar8 != 0xffffffff) {\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar9 + 4),*puVar8,uVar7);\n          }\n          *puVar8 = uVar7;\n        }\n      }" else (compound_statement "{\n        puVar8 = param_4;\n        if (((uVar3 == 0x6ffffffe) || (puVar8 = param_2, uVar3 == 0x6fffffff)) ||\n           (puVar8 = param_3, uVar3 == 0x6ffffffd)) {\nLAB_0016d91c:\n          if (*puVar8 != 0xffffffff) {\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar9 + 4),*puVar8,uVar7);\n          }\n          *puVar8 = uVar7;\n        }\n      }" { (expression_statement "puVar8 = param_4;" (assignment_expression "puVar8 = param_4" identifier = identifier) ;) (if_statement "if (((uVar3 == 0x6ffffffe) || (puVar8 = param_2, uVar3 == 0x6fffffff)) ||\n           (puVar8 = param_3, uVar3 == 0x6ffffffd)) {\nLAB_0016d91c:\n          if (*puVar8 != 0xffffffff) {\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar9 + 4),*puVar8,uVar7);\n          }\n          *puVar8 = uVar7;\n        }" if (parenthesized_expression "(((uVar3 == 0x6ffffffe) || (puVar8 = param_2, uVar3 == 0x6fffffff)) ||\n           (puVar8 = param_3, uVar3 == 0x6ffffffd))" ( (binary_expression "((uVar3 == 0x6ffffffe) || (puVar8 = param_2, uVar3 == 0x6fffffff)) ||\n           (puVar8 = param_3, uVar3 == 0x6ffffffd)" (parenthesized_expression "((uVar3 == 0x6ffffffe) || (puVar8 = param_2, uVar3 == 0x6fffffff))" ( (binary_expression "(uVar3 == 0x6ffffffe) || (puVar8 = param_2, uVar3 == 0x6fffffff)" (parenthesized_expression "(uVar3 == 0x6ffffffe)" ( (binary_expression "uVar3 == 0x6ffffffe" identifier == number_literal) )) || (parenthesized_expression "(puVar8 = param_2, uVar3 == 0x6fffffff)" ( (comma_expression "puVar8 = param_2, uVar3 == 0x6fffffff" (assignment_expression "puVar8 = param_2" identifier = identifier) , (binary_expression "uVar3 == 0x6fffffff" identifier == number_literal)) ))) )) || (parenthesized_expression "(puVar8 = param_3, uVar3 == 0x6ffffffd)" ( (comma_expression "puVar8 = param_3, uVar3 == 0x6ffffffd" (assignment_expression "puVar8 = param_3" identifier = identifier) , (binary_expression "uVar3 == 0x6ffffffd" identifier == number_literal)) ))) )) (compound_statement "{\nLAB_0016d91c:\n          if (*puVar8 != 0xffffffff) {\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar9 + 4),*puVar8,uVar7);\n          }\n          *puVar8 = uVar7;\n        }" { (labeled_statement "LAB_0016d91c:\n          if (*puVar8 != 0xffffffff) {\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar9 + 4),*puVar8,uVar7);\n          }" statement_identifier : (if_statement "if (*puVar8 != 0xffffffff) {\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar9 + 4),*puVar8,uVar7);\n          }" if (parenthesized_expression "(*puVar8 != 0xffffffff)" ( (binary_expression "*puVar8 != 0xffffffff" (pointer_expression "*puVar8" * identifier) != number_literal) )) (compound_statement "{\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar9 + 4),*puVar8,uVar7);\n          }" { (expression_statement "uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);" (assignment_expression "uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2)" identifier = (call_expression "(*(code *)PTR_gettext_004c5c30)(puVar2)" (parenthesized_expression "(*(code *)PTR_gettext_004c5c30)" ( (pointer_expression "*(code *)PTR_gettext_004c5c30" * (cast_expression "(code *)PTR_gettext_004c5c30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar2)" ( identifier )))) ;) (expression_statement "(*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar9 + 4),*puVar8,uVar7);" (call_expression "(*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar9 + 4),*puVar8,uVar7)" (parenthesized_expression "(*(code *)PTR_error_004c1a54)" ( (pointer_expression "*(code *)PTR_error_004c1a54" * (cast_expression "(code *)PTR_error_004c1a54" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(this,uVar4,*(undefined4 *)(puVar9 + 4),*puVar8,uVar7)" ( identifier , identifier , (pointer_expression "*(undefined4 *)(puVar9 + 4)" * (cast_expression "(undefined4 *)(puVar9 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 4)" ( (binary_expression "puVar9 + 4" identifier + number_literal) )))) , (pointer_expression "*puVar8" * identifier) , identifier ))) ;) }))) (expression_statement "*puVar8 = uVar7;" (assignment_expression "*puVar8 = uVar7" (pointer_expression "*puVar8" * identifier) = identifier) ;) })) }))))) (expression_statement "puVar9 = puVar9 + 0x40;" (assignment_expression "puVar9 = puVar9 + 0x40" identifier = (binary_expression "puVar9 + 0x40" identifier + number_literal)) ;) (expression_statement "uVar7 = uVar7 + 1;" (assignment_expression "uVar7 = uVar7 + 1" identifier = (binary_expression "uVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar7 != uVar10)" ( (binary_expression "uVar7 != uVar10" identifier != identifier) )) ;) (if_statement "if (((*(int *)(this + 0x80) == -1) && (uVar11 != 0)) &&\n       ((*(uint *)(this + 0x80) = uVar11, local_34 != 0 && (uVar11 == uVar6)))) {\n      (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n      uVar4 = *(undefined4 *)(this + 0x78);\n      puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n      *puVar5 = uVar4;\n      puVar5[1] = 0;\n      puVar5[2] = 0;\n      puVar2 = PTR_read_symtab_xindex<64,true>_004c36c0;\n      puVar5[3] = 0;\n      (*(code *)puVar2)(puVar5,this,local_34,param_1);\n      if (*(int *)(this + 0x30) != 0) {\nLAB_0016db64:\n                    \n        FUN_0015f554();\n      }\n      *(undefined4 **)(this + 0x30) = puVar5;\n    }" if (parenthesized_expression "(((*(int *)(this + 0x80) == -1) && (uVar11 != 0)) &&\n       ((*(uint *)(this + 0x80) = uVar11, local_34 != 0 && (uVar11 == uVar6))))" ( (binary_expression "((*(int *)(this + 0x80) == -1) && (uVar11 != 0)) &&\n       ((*(uint *)(this + 0x80) = uVar11, local_34 != 0 && (uVar11 == uVar6)))" (parenthesized_expression "((*(int *)(this + 0x80) == -1) && (uVar11 != 0))" ( (binary_expression "(*(int *)(this + 0x80) == -1) && (uVar11 != 0)" (parenthesized_expression "(*(int *)(this + 0x80) == -1)" ( (binary_expression "*(int *)(this + 0x80) == -1" (pointer_expression "*(int *)(this + 0x80)" * (cast_expression "(int *)(this + 0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x80)" ( (binary_expression "this + 0x80" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(uVar11 != 0)" ( (binary_expression "uVar11 != 0" identifier != number_literal) ))) )) && (parenthesized_expression "((*(uint *)(this + 0x80) = uVar11, local_34 != 0 && (uVar11 == uVar6)))" ( (parenthesized_expression "(*(uint *)(this + 0x80) = uVar11, local_34 != 0 && (uVar11 == uVar6))" ( (comma_expression "*(uint *)(this + 0x80) = uVar11, local_34 != 0 && (uVar11 == uVar6)" (assignment_expression "*(uint *)(this + 0x80) = uVar11" (pointer_expression "*(uint *)(this + 0x80)" * (cast_expression "(uint *)(this + 0x80)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x80)" ( (binary_expression "this + 0x80" identifier + number_literal) )))) = identifier) , (binary_expression "local_34 != 0 && (uVar11 == uVar6)" (binary_expression "local_34 != 0" identifier != number_literal) && (parenthesized_expression "(uVar11 == uVar6)" ( (binary_expression "uVar11 == uVar6" identifier == identifier) )))) )) ))) )) (compound_statement "{\n      (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n      uVar4 = *(undefined4 *)(this + 0x78);\n      puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n      *puVar5 = uVar4;\n      puVar5[1] = 0;\n      puVar5[2] = 0;\n      puVar2 = PTR_read_symtab_xindex<64,true>_004c36c0;\n      puVar5[3] = 0;\n      (*(code *)puVar2)(puVar5,this,local_34,param_1);\n      if (*(int *)(this + 0x30) != 0) {\nLAB_0016db64:\n                    \n        FUN_0015f554();\n      }\n      *(undefined4 **)(this + 0x30) = puVar5;\n    }" { (expression_statement "(*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);" (call_expression "(*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60)" (parenthesized_expression "(*(code *)PTR_initialize_shnum_004c1fc0)" ( (pointer_expression "*(code *)PTR_initialize_shnum_004c1fc0" * (cast_expression "(code *)PTR_initialize_shnum_004c1fc0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(this + 0x60)" ( (binary_expression "this + 0x60" identifier + number_literal) ))) ;) (expression_statement "uVar4 = *(undefined4 *)(this + 0x78);" (assignment_expression "uVar4 = *(undefined4 *)(this + 0x78)" identifier = (pointer_expression "*(undefined4 *)(this + 0x78)" * (cast_expression "(undefined4 *)(this + 0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x78)" ( (binary_expression "this + 0x78" identifier + number_literal) ))))) ;) (expression_statement "puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);" (assignment_expression "puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x10)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x10)" ( number_literal ))))) ;) (expression_statement "*puVar5 = uVar4;" (assignment_expression "*puVar5 = uVar4" (pointer_expression "*puVar5" * identifier) = identifier) ;) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[2] = 0;" (assignment_expression "puVar5[2] = 0" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2 = PTR_read_symtab_xindex<64,true>_004c36c0;" (comma_expression "puVar2 = PTR_read_symtab_xindex<64,true>_004c36c0" (assignment_expression "puVar2 = PTR_read_symtab_xindex<64" identifier = (binary_expression "PTR_read_symtab_xindex<64" identifier < number_literal)) , (binary_expression "true>_004c36c0" true > identifier)) ;) (expression_statement "puVar5[3] = 0;" (assignment_expression "puVar5[3] = 0" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "(*(code *)puVar2)(puVar5,this,local_34,param_1);" (call_expression "(*(code *)puVar2)(puVar5,this,local_34,param_1)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar5,this,local_34,param_1)" ( identifier , identifier , identifier , identifier ))) ;) (if_statement "if (*(int *)(this + 0x30) != 0) {\nLAB_0016db64:\n                    \n        FUN_0015f554();\n      }" if (parenthesized_expression "(*(int *)(this + 0x30) != 0)" ( (binary_expression "*(int *)(this + 0x30) != 0" (pointer_expression "*(int *)(this + 0x30)" * (cast_expression "(int *)(this + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x30)" ( (binary_expression "this + 0x30" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\nLAB_0016db64:\n                    \n        FUN_0015f554();\n      }" { (labeled_statement "LAB_0016db64:\n                    \n        FUN_0015f554();" statement_identifier : (expression_statement "FUN_0015f554();" (call_expression "FUN_0015f554()" identifier (argument_list "()" ( ))) ;)) })) (expression_statement "*(undefined4 **)(this + 0x30) = puVar5;" (assignment_expression "*(undefined4 **)(this + 0x30) = puVar5" (pointer_expression "*(undefined4 **)(this + 0x30)" * (cast_expression "(undefined4 **)(this + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x30)" ( (binary_expression "this + 0x30" identifier + number_literal) )))) = identifier) ;) })) })) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit (declaration TYPE (ms_call_modifier __thiscall) (ERROR IDENT : :) IDENT (ERROR < LIT) , (ERROR IDENT > : : (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) (ERROR < LIT) , (parameter_declaration TYPE (ERROR >) (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (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 (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) )) (compound_statement { (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) ))) ;)) (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 = (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 ( LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (comma_expression (assignment_expression IDENT = (binary_expression IDENT < LIT)) , (binary_expression BOOL > IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) }) (else_clause else (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) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) )) (goto_statement goto statement_identifier ;)) }))) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (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 (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT == IDENT) ))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (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 ( LIT ))))) ;) (expression_statement (comma_expression (assignment_expression IDENT = (binary_expression IDENT < LIT)) , (binary_expression BOOL > IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT == LIT)) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * IDENT) , IDENT ))) ;) }))) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) }))))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) , (binary_expression (binary_expression IDENT != LIT) && (parenthesized_expression ( (binary_expression IDENT == IDENT) )))) )) ))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (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 ( LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (comma_expression (assignment_expression IDENT = (binary_expression IDENT < LIT)) , (binary_expression BOOL > IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) })) (return_statement return ;) (ERROR }))
(declaration "void __thiscall\ngold::Sized_dynobj<64,true>::find_dynsym_sections\n          (Sized_dynobj<64,true> *this,uchar *param_1,uint *param_2,uint *param_3,uint *param_4,\n          uint *param_5)\n\n{\n  undefined *puVar1;" (primitive_type "void") (ms_call_modifier "__thiscall" (__thiscall "__thiscall")) (ERROR "gold::" (identifier "gold") (: ":") (: ":")) (identifier "Sized_dynobj") (ERROR "<64" (< "<") (number_literal "64")) (, ",") (ERROR "true>::find_dynsym_sections\n          (Sized_dynobj<64,true> *this,uchar *param_1,uint *param_2,uint *param_3,uint *param_4,\n          uint *param_5)\n\n{\n  undefined" (identifier "true") (> ">") (: ":") (: ":") (function_declarator "find_dynsym_sections\n          (Sized_dynobj<64,true> *this,uchar *param_1,uint *param_2,uint *param_3,uint *param_4,\n          uint *param_5)" (identifier "find_dynsym_sections") (parameter_list "(Sized_dynobj<64,true> *this,uchar *param_1,uint *param_2,uint *param_3,uint *param_4,\n          uint *param_5)" (( "(") (parameter_declaration "Sized_dynobj" (type_identifier "Sized_dynobj")) (ERROR "<64" (< "<") (number_literal "64")) (, ",") (parameter_declaration "true> *this" (type_identifier "true") (ERROR ">" (> ">")) (pointer_declarator "*this" (* "*") (identifier "this"))) (, ",") (parameter_declaration "uchar *param_1" (type_identifier "uchar") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "uint *param_2" (type_identifier "uint") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "uint *param_3" (type_identifier "uint") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "uint *param_4" (type_identifier "uint") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "uint *param_5" (type_identifier "uint") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) () ")"))) ({ "{") (identifier "undefined")) (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "undefined4 *puVar5;" (type_identifier "undefined4") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "uint *puVar8;" (type_identifier "uint") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "uchar *puVar9;" (type_identifier "uchar") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "uint local_34;" (type_identifier "uint") (identifier "local_34") (; ";")) (expression_statement "*param_2 = 0xffffffff;" (assignment_expression "*param_2 = 0xffffffff" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "*param_3 = 0xffffffff;" (assignment_expression "*param_3 = 0xffffffff" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "*param_4 = 0xffffffff;" (assignment_expression "*param_4 = 0xffffffff" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "*param_5 = 0xffffffff;" (assignment_expression "*param_5 = 0xffffffff" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "uVar10 = *(uint *)(this + 0x28);" (assignment_expression "uVar10 = *(uint *)(this + 0x28)" (identifier "uVar10") (= "=") (pointer_expression "*(uint *)(this + 0x28)" (* "*") (cast_expression "(uint *)(this + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x28)" (( "(") (binary_expression "this + 0x28" (identifier "this") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (if_statement "if (uVar10 != 0) {\n    puVar2 = PTR_s__s_004c1a50 + -0xd94;\n    uVar7 = 0;\n    local_34 = 0;\n    uVar6 = 0;\n    uVar11 = 0;\n    puVar9 = param_1;\n    do {\n      uVar3 = *(uint *)(puVar9 + 4);\n      if (uVar3 == 0x12) {\n        uVar6 = *(uint *)(puVar9 + 0x28);\n        local_34 = uVar7;\n        if (uVar6 < 0xff00) {\n          if (*(uint *)(this + 0x80) == uVar6) {\nLAB_0016da7c:\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar5[1] = 0;\n            *puVar5 = uVar4;\n            puVar5[2] = 0;\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,uVar7,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }\n        else {\n          (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n          uVar6 = uVar6 + *(int *)(this + 0x78);\n          if (*(uint *)(this + 0x80) == uVar6) goto LAB_0016da7c;\n        }\n      }\n      else if (uVar3 < 0x13) {\n        puVar8 = param_5;\n        if (uVar3 == 6) goto LAB_0016d91c;\n        if (uVar3 == 0xb) {\n          *(uint *)(this + 0x80) = uVar7;\n          if ((local_34 != 0) && (uVar6 == uVar7)) {\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            *puVar5 = uVar4;\n            puVar5[1] = 0;\n            puVar5[2] = 0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,local_34,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }\n        else if (uVar3 == 2) {\n          uVar11 = uVar7;\n        }\n      }\n      else {\n        puVar8 = param_4;\n        if (((uVar3 == 0x6ffffffe) || (puVar8 = param_2, uVar3 == 0x6fffffff)) ||\n           (puVar8 = param_3, uVar3 == 0x6ffffffd)) {\nLAB_0016d91c:\n          if (*puVar8 != 0xffffffff) {\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar9 + 4),*puVar8,uVar7);\n          }\n          *puVar8 = uVar7;\n        }\n      }\n      puVar9 = puVar9 + 0x40;\n      uVar7 = uVar7 + 1;\n    } while (uVar7 != uVar10);\n    if (((*(int *)(this + 0x80) == -1) && (uVar11 != 0)) &&\n       ((*(uint *)(this + 0x80) = uVar11, local_34 != 0 && (uVar11 == uVar6)))) {\n      (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n      uVar4 = *(undefined4 *)(this + 0x78);\n      puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n      *puVar5 = uVar4;\n      puVar5[1] = 0;\n      puVar5[2] = 0;\n      puVar2 = PTR_read_symtab_xindex<64,true>_004c36c0;\n      puVar5[3] = 0;\n      (*(code *)puVar2)(puVar5,this,local_34,param_1);\n      if (*(int *)(this + 0x30) != 0) {\nLAB_0016db64:\n                    \n        FUN_0015f554();\n      }\n      *(undefined4 **)(this + 0x30) = puVar5;\n    }\n  }" (if "if") (parenthesized_expression "(uVar10 != 0)" (( "(") (binary_expression "uVar10 != 0" (identifier "uVar10") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    puVar2 = PTR_s__s_004c1a50 + -0xd94;\n    uVar7 = 0;\n    local_34 = 0;\n    uVar6 = 0;\n    uVar11 = 0;\n    puVar9 = param_1;\n    do {\n      uVar3 = *(uint *)(puVar9 + 4);\n      if (uVar3 == 0x12) {\n        uVar6 = *(uint *)(puVar9 + 0x28);\n        local_34 = uVar7;\n        if (uVar6 < 0xff00) {\n          if (*(uint *)(this + 0x80) == uVar6) {\nLAB_0016da7c:\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar5[1] = 0;\n            *puVar5 = uVar4;\n            puVar5[2] = 0;\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,uVar7,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }\n        else {\n          (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n          uVar6 = uVar6 + *(int *)(this + 0x78);\n          if (*(uint *)(this + 0x80) == uVar6) goto LAB_0016da7c;\n        }\n      }\n      else if (uVar3 < 0x13) {\n        puVar8 = param_5;\n        if (uVar3 == 6) goto LAB_0016d91c;\n        if (uVar3 == 0xb) {\n          *(uint *)(this + 0x80) = uVar7;\n          if ((local_34 != 0) && (uVar6 == uVar7)) {\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            *puVar5 = uVar4;\n            puVar5[1] = 0;\n            puVar5[2] = 0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,local_34,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }\n        else if (uVar3 == 2) {\n          uVar11 = uVar7;\n        }\n      }\n      else {\n        puVar8 = param_4;\n        if (((uVar3 == 0x6ffffffe) || (puVar8 = param_2, uVar3 == 0x6fffffff)) ||\n           (puVar8 = param_3, uVar3 == 0x6ffffffd)) {\nLAB_0016d91c:\n          if (*puVar8 != 0xffffffff) {\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar9 + 4),*puVar8,uVar7);\n          }\n          *puVar8 = uVar7;\n        }\n      }\n      puVar9 = puVar9 + 0x40;\n      uVar7 = uVar7 + 1;\n    } while (uVar7 != uVar10);\n    if (((*(int *)(this + 0x80) == -1) && (uVar11 != 0)) &&\n       ((*(uint *)(this + 0x80) = uVar11, local_34 != 0 && (uVar11 == uVar6)))) {\n      (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n      uVar4 = *(undefined4 *)(this + 0x78);\n      puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n      *puVar5 = uVar4;\n      puVar5[1] = 0;\n      puVar5[2] = 0;\n      puVar2 = PTR_read_symtab_xindex<64,true>_004c36c0;\n      puVar5[3] = 0;\n      (*(code *)puVar2)(puVar5,this,local_34,param_1);\n      if (*(int *)(this + 0x30) != 0) {\nLAB_0016db64:\n                    \n        FUN_0015f554();\n      }\n      *(undefined4 **)(this + 0x30) = puVar5;\n    }\n  }" ({ "{") (expression_statement "puVar2 = PTR_s__s_004c1a50 + -0xd94;" (assignment_expression "puVar2 = PTR_s__s_004c1a50 + -0xd94" (identifier "puVar2") (= "=") (binary_expression "PTR_s__s_004c1a50 + -0xd94" (identifier "PTR_s__s_004c1a50") (+ "+") (number_literal "-0xd94"))) (; ";")) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" (identifier "uVar7") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" (identifier "local_34") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" (identifier "uVar6") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" (identifier "uVar11") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar9 = param_1;" (assignment_expression "puVar9 = param_1" (identifier "puVar9") (= "=") (identifier "param_1")) (; ";")) (do_statement "do {\n      uVar3 = *(uint *)(puVar9 + 4);\n      if (uVar3 == 0x12) {\n        uVar6 = *(uint *)(puVar9 + 0x28);\n        local_34 = uVar7;\n        if (uVar6 < 0xff00) {\n          if (*(uint *)(this + 0x80) == uVar6) {\nLAB_0016da7c:\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar5[1] = 0;\n            *puVar5 = uVar4;\n            puVar5[2] = 0;\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,uVar7,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }\n        else {\n          (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n          uVar6 = uVar6 + *(int *)(this + 0x78);\n          if (*(uint *)(this + 0x80) == uVar6) goto LAB_0016da7c;\n        }\n      }\n      else if (uVar3 < 0x13) {\n        puVar8 = param_5;\n        if (uVar3 == 6) goto LAB_0016d91c;\n        if (uVar3 == 0xb) {\n          *(uint *)(this + 0x80) = uVar7;\n          if ((local_34 != 0) && (uVar6 == uVar7)) {\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            *puVar5 = uVar4;\n            puVar5[1] = 0;\n            puVar5[2] = 0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,local_34,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }\n        else if (uVar3 == 2) {\n          uVar11 = uVar7;\n        }\n      }\n      else {\n        puVar8 = param_4;\n        if (((uVar3 == 0x6ffffffe) || (puVar8 = param_2, uVar3 == 0x6fffffff)) ||\n           (puVar8 = param_3, uVar3 == 0x6ffffffd)) {\nLAB_0016d91c:\n          if (*puVar8 != 0xffffffff) {\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar9 + 4),*puVar8,uVar7);\n          }\n          *puVar8 = uVar7;\n        }\n      }\n      puVar9 = puVar9 + 0x40;\n      uVar7 = uVar7 + 1;\n    } while (uVar7 != uVar10);" (do "do") (compound_statement "{\n      uVar3 = *(uint *)(puVar9 + 4);\n      if (uVar3 == 0x12) {\n        uVar6 = *(uint *)(puVar9 + 0x28);\n        local_34 = uVar7;\n        if (uVar6 < 0xff00) {\n          if (*(uint *)(this + 0x80) == uVar6) {\nLAB_0016da7c:\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar5[1] = 0;\n            *puVar5 = uVar4;\n            puVar5[2] = 0;\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,uVar7,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }\n        else {\n          (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n          uVar6 = uVar6 + *(int *)(this + 0x78);\n          if (*(uint *)(this + 0x80) == uVar6) goto LAB_0016da7c;\n        }\n      }\n      else if (uVar3 < 0x13) {\n        puVar8 = param_5;\n        if (uVar3 == 6) goto LAB_0016d91c;\n        if (uVar3 == 0xb) {\n          *(uint *)(this + 0x80) = uVar7;\n          if ((local_34 != 0) && (uVar6 == uVar7)) {\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            *puVar5 = uVar4;\n            puVar5[1] = 0;\n            puVar5[2] = 0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,local_34,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }\n        else if (uVar3 == 2) {\n          uVar11 = uVar7;\n        }\n      }\n      else {\n        puVar8 = param_4;\n        if (((uVar3 == 0x6ffffffe) || (puVar8 = param_2, uVar3 == 0x6fffffff)) ||\n           (puVar8 = param_3, uVar3 == 0x6ffffffd)) {\nLAB_0016d91c:\n          if (*puVar8 != 0xffffffff) {\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar9 + 4),*puVar8,uVar7);\n          }\n          *puVar8 = uVar7;\n        }\n      }\n      puVar9 = puVar9 + 0x40;\n      uVar7 = uVar7 + 1;\n    }" ({ "{") (expression_statement "uVar3 = *(uint *)(puVar9 + 4);" (assignment_expression "uVar3 = *(uint *)(puVar9 + 4)" (identifier "uVar3") (= "=") (pointer_expression "*(uint *)(puVar9 + 4)" (* "*") (cast_expression "(uint *)(puVar9 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + 4)" (( "(") (binary_expression "puVar9 + 4" (identifier "puVar9") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (uVar3 == 0x12) {\n        uVar6 = *(uint *)(puVar9 + 0x28);\n        local_34 = uVar7;\n        if (uVar6 < 0xff00) {\n          if (*(uint *)(this + 0x80) == uVar6) {\nLAB_0016da7c:\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar5[1] = 0;\n            *puVar5 = uVar4;\n            puVar5[2] = 0;\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,uVar7,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }\n        else {\n          (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n          uVar6 = uVar6 + *(int *)(this + 0x78);\n          if (*(uint *)(this + 0x80) == uVar6) goto LAB_0016da7c;\n        }\n      }\n      else if (uVar3 < 0x13) {\n        puVar8 = param_5;\n        if (uVar3 == 6) goto LAB_0016d91c;\n        if (uVar3 == 0xb) {\n          *(uint *)(this + 0x80) = uVar7;\n          if ((local_34 != 0) && (uVar6 == uVar7)) {\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            *puVar5 = uVar4;\n            puVar5[1] = 0;\n            puVar5[2] = 0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,local_34,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }\n        else if (uVar3 == 2) {\n          uVar11 = uVar7;\n        }\n      }\n      else {\n        puVar8 = param_4;\n        if (((uVar3 == 0x6ffffffe) || (puVar8 = param_2, uVar3 == 0x6fffffff)) ||\n           (puVar8 = param_3, uVar3 == 0x6ffffffd)) {\nLAB_0016d91c:\n          if (*puVar8 != 0xffffffff) {\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar9 + 4),*puVar8,uVar7);\n          }\n          *puVar8 = uVar7;\n        }\n      }" (if "if") (parenthesized_expression "(uVar3 == 0x12)" (( "(") (binary_expression "uVar3 == 0x12" (identifier "uVar3") (== "==") (number_literal "0x12")) () ")")) (compound_statement "{\n        uVar6 = *(uint *)(puVar9 + 0x28);\n        local_34 = uVar7;\n        if (uVar6 < 0xff00) {\n          if (*(uint *)(this + 0x80) == uVar6) {\nLAB_0016da7c:\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar5[1] = 0;\n            *puVar5 = uVar4;\n            puVar5[2] = 0;\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,uVar7,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }\n        else {\n          (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n          uVar6 = uVar6 + *(int *)(this + 0x78);\n          if (*(uint *)(this + 0x80) == uVar6) goto LAB_0016da7c;\n        }\n      }" ({ "{") (expression_statement "uVar6 = *(uint *)(puVar9 + 0x28);" (assignment_expression "uVar6 = *(uint *)(puVar9 + 0x28)" (identifier "uVar6") (= "=") (pointer_expression "*(uint *)(puVar9 + 0x28)" (* "*") (cast_expression "(uint *)(puVar9 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + 0x28)" (( "(") (binary_expression "puVar9 + 0x28" (identifier "puVar9") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "local_34 = uVar7;" (assignment_expression "local_34 = uVar7" (identifier "local_34") (= "=") (identifier "uVar7")) (; ";")) (if_statement "if (uVar6 < 0xff00) {\n          if (*(uint *)(this + 0x80) == uVar6) {\nLAB_0016da7c:\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar5[1] = 0;\n            *puVar5 = uVar4;\n            puVar5[2] = 0;\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,uVar7,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }\n        else {\n          (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n          uVar6 = uVar6 + *(int *)(this + 0x78);\n          if (*(uint *)(this + 0x80) == uVar6) goto LAB_0016da7c;\n        }" (if "if") (parenthesized_expression "(uVar6 < 0xff00)" (( "(") (binary_expression "uVar6 < 0xff00" (identifier "uVar6") (< "<") (number_literal "0xff00")) () ")")) (compound_statement "{\n          if (*(uint *)(this + 0x80) == uVar6) {\nLAB_0016da7c:\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar5[1] = 0;\n            *puVar5 = uVar4;\n            puVar5[2] = 0;\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,uVar7,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }" ({ "{") (if_statement "if (*(uint *)(this + 0x80) == uVar6) {\nLAB_0016da7c:\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar5[1] = 0;\n            *puVar5 = uVar4;\n            puVar5[2] = 0;\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,uVar7,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }" (if "if") (parenthesized_expression "(*(uint *)(this + 0x80) == uVar6)" (( "(") (binary_expression "*(uint *)(this + 0x80) == uVar6" (pointer_expression "*(uint *)(this + 0x80)" (* "*") (cast_expression "(uint *)(this + 0x80)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x80)" (( "(") (binary_expression "this + 0x80" (identifier "this") (+ "+") (number_literal "0x80")) () ")")))) (== "==") (identifier "uVar6")) () ")")) (compound_statement "{\nLAB_0016da7c:\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar5[1] = 0;\n            *puVar5 = uVar4;\n            puVar5[2] = 0;\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,uVar7,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }" ({ "{") (labeled_statement "LAB_0016da7c:\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);" (statement_identifier "LAB_0016da7c") (: ":") (expression_statement "(*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);" (call_expression "(*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60)" (parenthesized_expression "(*(code *)PTR_initialize_shnum_004c1fc0)" (( "(") (pointer_expression "*(code *)PTR_initialize_shnum_004c1fc0" (* "*") (cast_expression "(code *)PTR_initialize_shnum_004c1fc0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_initialize_shnum_004c1fc0"))) () ")")) (argument_list "(this + 0x60)" (( "(") (binary_expression "this + 0x60" (identifier "this") (+ "+") (number_literal "0x60")) () ")"))) (; ";"))) (expression_statement "uVar4 = *(undefined4 *)(this + 0x78);" (assignment_expression "uVar4 = *(undefined4 *)(this + 0x78)" (identifier "uVar4") (= "=") (pointer_expression "*(undefined4 *)(this + 0x78)" (* "*") (cast_expression "(undefined4 *)(this + 0x78)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x78)" (( "(") (binary_expression "this + 0x78" (identifier "this") (+ "+") (number_literal "0x78")) () ")"))))) (; ";")) (expression_statement "puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);" (assignment_expression "puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10)" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x10)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" (( "(") (pointer_expression "*(code *)PTR_operator_new_004c13a8" (* "*") (cast_expression "(code *)PTR_operator_new_004c13a8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_new_004c13a8"))) () ")")) (argument_list "(0x10)" (( "(") (number_literal "0x10") () ")"))))) (; ";")) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" (identifier "puVar5") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*puVar5 = uVar4;" (assignment_expression "*puVar5 = uVar4" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "puVar5[2] = 0;" (assignment_expression "puVar5[2] = 0" (subscript_expression "puVar5[2]" (identifier "puVar5") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;" (comma_expression "puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0" (assignment_expression "puVar1 = PTR_read_symtab_xindex<64" (identifier "puVar1") (= "=") (binary_expression "PTR_read_symtab_xindex<64" (identifier "PTR_read_symtab_xindex") (< "<") (number_literal "64"))) (, ",") (binary_expression "true>_004c36c0" (true "true") (> ">") (identifier "_004c36c0"))) (; ";")) (expression_statement "puVar5[3] = 0;" (assignment_expression "puVar5[3] = 0" (subscript_expression "puVar5[3]" (identifier "puVar5") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "(*(code *)puVar1)(puVar5,this,uVar7,param_1);" (call_expression "(*(code *)puVar1)(puVar5,this,uVar7,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 "(puVar5,this,uVar7,param_1)" (( "(") (identifier "puVar5") (, ",") (identifier "this") (, ",") (identifier "uVar7") (, ",") (identifier "param_1") () ")"))) (; ";")) (if_statement "if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;" (if "if") (parenthesized_expression "(*(int *)(this + 0x30) != 0)" (( "(") (binary_expression "*(int *)(this + 0x30) != 0" (pointer_expression "*(int *)(this + 0x30)" (* "*") (cast_expression "(int *)(this + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x30)" (( "(") (binary_expression "this + 0x30" (identifier "this") (+ "+") (number_literal "0x30")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0016db64;" (goto "goto") (statement_identifier "LAB_0016db64") (; ";"))) (expression_statement "*(undefined4 **)(this + 0x30) = puVar5;" (assignment_expression "*(undefined4 **)(this + 0x30) = puVar5" (pointer_expression "*(undefined4 **)(this + 0x30)" (* "*") (cast_expression "(undefined4 **)(this + 0x30)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 0x30)" (( "(") (binary_expression "this + 0x30" (identifier "this") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (identifier "puVar5")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n          uVar6 = uVar6 + *(int *)(this + 0x78);\n          if (*(uint *)(this + 0x80) == uVar6) goto LAB_0016da7c;\n        }" (else "else") (compound_statement "{\n          (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n          uVar6 = uVar6 + *(int *)(this + 0x78);\n          if (*(uint *)(this + 0x80) == uVar6) goto LAB_0016da7c;\n        }" ({ "{") (expression_statement "(*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);" (call_expression "(*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60)" (parenthesized_expression "(*(code *)PTR_initialize_shnum_004c1fc0)" (( "(") (pointer_expression "*(code *)PTR_initialize_shnum_004c1fc0" (* "*") (cast_expression "(code *)PTR_initialize_shnum_004c1fc0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_initialize_shnum_004c1fc0"))) () ")")) (argument_list "(this + 0x60)" (( "(") (binary_expression "this + 0x60" (identifier "this") (+ "+") (number_literal "0x60")) () ")"))) (; ";")) (expression_statement "uVar6 = uVar6 + *(int *)(this + 0x78);" (assignment_expression "uVar6 = uVar6 + *(int *)(this + 0x78)" (identifier "uVar6") (= "=") (binary_expression "uVar6 + *(int *)(this + 0x78)" (identifier "uVar6") (+ "+") (pointer_expression "*(int *)(this + 0x78)" (* "*") (cast_expression "(int *)(this + 0x78)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x78)" (( "(") (binary_expression "this + 0x78" (identifier "this") (+ "+") (number_literal "0x78")) () ")")))))) (; ";")) (if_statement "if (*(uint *)(this + 0x80) == uVar6) goto LAB_0016da7c;" (if "if") (parenthesized_expression "(*(uint *)(this + 0x80) == uVar6)" (( "(") (binary_expression "*(uint *)(this + 0x80) == uVar6" (pointer_expression "*(uint *)(this + 0x80)" (* "*") (cast_expression "(uint *)(this + 0x80)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x80)" (( "(") (binary_expression "this + 0x80" (identifier "this") (+ "+") (number_literal "0x80")) () ")")))) (== "==") (identifier "uVar6")) () ")")) (goto_statement "goto LAB_0016da7c;" (goto "goto") (statement_identifier "LAB_0016da7c") (; ";"))) (} "}")))) (} "}")) (else_clause "else if (uVar3 < 0x13) {\n        puVar8 = param_5;\n        if (uVar3 == 6) goto LAB_0016d91c;\n        if (uVar3 == 0xb) {\n          *(uint *)(this + 0x80) = uVar7;\n          if ((local_34 != 0) && (uVar6 == uVar7)) {\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            *puVar5 = uVar4;\n            puVar5[1] = 0;\n            puVar5[2] = 0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,local_34,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }\n        else if (uVar3 == 2) {\n          uVar11 = uVar7;\n        }\n      }\n      else {\n        puVar8 = param_4;\n        if (((uVar3 == 0x6ffffffe) || (puVar8 = param_2, uVar3 == 0x6fffffff)) ||\n           (puVar8 = param_3, uVar3 == 0x6ffffffd)) {\nLAB_0016d91c:\n          if (*puVar8 != 0xffffffff) {\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar9 + 4),*puVar8,uVar7);\n          }\n          *puVar8 = uVar7;\n        }\n      }" (else "else") (if_statement "if (uVar3 < 0x13) {\n        puVar8 = param_5;\n        if (uVar3 == 6) goto LAB_0016d91c;\n        if (uVar3 == 0xb) {\n          *(uint *)(this + 0x80) = uVar7;\n          if ((local_34 != 0) && (uVar6 == uVar7)) {\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            *puVar5 = uVar4;\n            puVar5[1] = 0;\n            puVar5[2] = 0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,local_34,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }\n        else if (uVar3 == 2) {\n          uVar11 = uVar7;\n        }\n      }\n      else {\n        puVar8 = param_4;\n        if (((uVar3 == 0x6ffffffe) || (puVar8 = param_2, uVar3 == 0x6fffffff)) ||\n           (puVar8 = param_3, uVar3 == 0x6ffffffd)) {\nLAB_0016d91c:\n          if (*puVar8 != 0xffffffff) {\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar9 + 4),*puVar8,uVar7);\n          }\n          *puVar8 = uVar7;\n        }\n      }" (if "if") (parenthesized_expression "(uVar3 < 0x13)" (( "(") (binary_expression "uVar3 < 0x13" (identifier "uVar3") (< "<") (number_literal "0x13")) () ")")) (compound_statement "{\n        puVar8 = param_5;\n        if (uVar3 == 6) goto LAB_0016d91c;\n        if (uVar3 == 0xb) {\n          *(uint *)(this + 0x80) = uVar7;\n          if ((local_34 != 0) && (uVar6 == uVar7)) {\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            *puVar5 = uVar4;\n            puVar5[1] = 0;\n            puVar5[2] = 0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,local_34,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }\n        else if (uVar3 == 2) {\n          uVar11 = uVar7;\n        }\n      }" ({ "{") (expression_statement "puVar8 = param_5;" (assignment_expression "puVar8 = param_5" (identifier "puVar8") (= "=") (identifier "param_5")) (; ";")) (if_statement "if (uVar3 == 6) goto LAB_0016d91c;" (if "if") (parenthesized_expression "(uVar3 == 6)" (( "(") (binary_expression "uVar3 == 6" (identifier "uVar3") (== "==") (number_literal "6")) () ")")) (goto_statement "goto LAB_0016d91c;" (goto "goto") (statement_identifier "LAB_0016d91c") (; ";"))) (if_statement "if (uVar3 == 0xb) {\n          *(uint *)(this + 0x80) = uVar7;\n          if ((local_34 != 0) && (uVar6 == uVar7)) {\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            *puVar5 = uVar4;\n            puVar5[1] = 0;\n            puVar5[2] = 0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,local_34,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }\n        else if (uVar3 == 2) {\n          uVar11 = uVar7;\n        }" (if "if") (parenthesized_expression "(uVar3 == 0xb)" (( "(") (binary_expression "uVar3 == 0xb" (identifier "uVar3") (== "==") (number_literal "0xb")) () ")")) (compound_statement "{\n          *(uint *)(this + 0x80) = uVar7;\n          if ((local_34 != 0) && (uVar6 == uVar7)) {\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            *puVar5 = uVar4;\n            puVar5[1] = 0;\n            puVar5[2] = 0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,local_34,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }\n        }" ({ "{") (expression_statement "*(uint *)(this + 0x80) = uVar7;" (assignment_expression "*(uint *)(this + 0x80) = uVar7" (pointer_expression "*(uint *)(this + 0x80)" (* "*") (cast_expression "(uint *)(this + 0x80)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x80)" (( "(") (binary_expression "this + 0x80" (identifier "this") (+ "+") (number_literal "0x80")) () ")")))) (= "=") (identifier "uVar7")) (; ";")) (if_statement "if ((local_34 != 0) && (uVar6 == uVar7)) {\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            *puVar5 = uVar4;\n            puVar5[1] = 0;\n            puVar5[2] = 0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,local_34,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }" (if "if") (parenthesized_expression "((local_34 != 0) && (uVar6 == uVar7))" (( "(") (binary_expression "(local_34 != 0) && (uVar6 == uVar7)" (parenthesized_expression "(local_34 != 0)" (( "(") (binary_expression "local_34 != 0" (identifier "local_34") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(uVar6 == uVar7)" (( "(") (binary_expression "uVar6 == uVar7" (identifier "uVar6") (== "==") (identifier "uVar7")) () ")"))) () ")")) (compound_statement "{\n            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n            uVar4 = *(undefined4 *)(this + 0x78);\n            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;\n            *puVar5 = uVar4;\n            puVar5[1] = 0;\n            puVar5[2] = 0;\n            puVar5[3] = 0;\n            (*(code *)puVar1)(puVar5,this,local_34,param_1);\n            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;\n            *(undefined4 **)(this + 0x30) = puVar5;\n          }" ({ "{") (expression_statement "(*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);" (call_expression "(*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60)" (parenthesized_expression "(*(code *)PTR_initialize_shnum_004c1fc0)" (( "(") (pointer_expression "*(code *)PTR_initialize_shnum_004c1fc0" (* "*") (cast_expression "(code *)PTR_initialize_shnum_004c1fc0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_initialize_shnum_004c1fc0"))) () ")")) (argument_list "(this + 0x60)" (( "(") (binary_expression "this + 0x60" (identifier "this") (+ "+") (number_literal "0x60")) () ")"))) (; ";")) (expression_statement "uVar4 = *(undefined4 *)(this + 0x78);" (assignment_expression "uVar4 = *(undefined4 *)(this + 0x78)" (identifier "uVar4") (= "=") (pointer_expression "*(undefined4 *)(this + 0x78)" (* "*") (cast_expression "(undefined4 *)(this + 0x78)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x78)" (( "(") (binary_expression "this + 0x78" (identifier "this") (+ "+") (number_literal "0x78")) () ")"))))) (; ";")) (expression_statement "puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);" (assignment_expression "puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10)" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x10)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" (( "(") (pointer_expression "*(code *)PTR_operator_new_004c13a8" (* "*") (cast_expression "(code *)PTR_operator_new_004c13a8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_new_004c13a8"))) () ")")) (argument_list "(0x10)" (( "(") (number_literal "0x10") () ")"))))) (; ";")) (expression_statement "puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;" (comma_expression "puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0" (assignment_expression "puVar1 = PTR_read_symtab_xindex<64" (identifier "puVar1") (= "=") (binary_expression "PTR_read_symtab_xindex<64" (identifier "PTR_read_symtab_xindex") (< "<") (number_literal "64"))) (, ",") (binary_expression "true>_004c36c0" (true "true") (> ">") (identifier "_004c36c0"))) (; ";")) (expression_statement "*puVar5 = uVar4;" (assignment_expression "*puVar5 = uVar4" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" (identifier "puVar5") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[2] = 0;" (assignment_expression "puVar5[2] = 0" (subscript_expression "puVar5[2]" (identifier "puVar5") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[3] = 0;" (assignment_expression "puVar5[3] = 0" (subscript_expression "puVar5[3]" (identifier "puVar5") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "(*(code *)puVar1)(puVar5,this,local_34,param_1);" (call_expression "(*(code *)puVar1)(puVar5,this,local_34,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 "(puVar5,this,local_34,param_1)" (( "(") (identifier "puVar5") (, ",") (identifier "this") (, ",") (identifier "local_34") (, ",") (identifier "param_1") () ")"))) (; ";")) (if_statement "if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;" (if "if") (parenthesized_expression "(*(int *)(this + 0x30) != 0)" (( "(") (binary_expression "*(int *)(this + 0x30) != 0" (pointer_expression "*(int *)(this + 0x30)" (* "*") (cast_expression "(int *)(this + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x30)" (( "(") (binary_expression "this + 0x30" (identifier "this") (+ "+") (number_literal "0x30")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0016db64;" (goto "goto") (statement_identifier "LAB_0016db64") (; ";"))) (expression_statement "*(undefined4 **)(this + 0x30) = puVar5;" (assignment_expression "*(undefined4 **)(this + 0x30) = puVar5" (pointer_expression "*(undefined4 **)(this + 0x30)" (* "*") (cast_expression "(undefined4 **)(this + 0x30)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 0x30)" (( "(") (binary_expression "this + 0x30" (identifier "this") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (identifier "puVar5")) (; ";")) (} "}"))) (} "}")) (else_clause "else if (uVar3 == 2) {\n          uVar11 = uVar7;\n        }" (else "else") (if_statement "if (uVar3 == 2) {\n          uVar11 = uVar7;\n        }" (if "if") (parenthesized_expression "(uVar3 == 2)" (( "(") (binary_expression "uVar3 == 2" (identifier "uVar3") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n          uVar11 = uVar7;\n        }" ({ "{") (expression_statement "uVar11 = uVar7;" (assignment_expression "uVar11 = uVar7" (identifier "uVar11") (= "=") (identifier "uVar7")) (; ";")) (} "}"))))) (} "}")) (else_clause "else {\n        puVar8 = param_4;\n        if (((uVar3 == 0x6ffffffe) || (puVar8 = param_2, uVar3 == 0x6fffffff)) ||\n           (puVar8 = param_3, uVar3 == 0x6ffffffd)) {\nLAB_0016d91c:\n          if (*puVar8 != 0xffffffff) {\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar9 + 4),*puVar8,uVar7);\n          }\n          *puVar8 = uVar7;\n        }\n      }" (else "else") (compound_statement "{\n        puVar8 = param_4;\n        if (((uVar3 == 0x6ffffffe) || (puVar8 = param_2, uVar3 == 0x6fffffff)) ||\n           (puVar8 = param_3, uVar3 == 0x6ffffffd)) {\nLAB_0016d91c:\n          if (*puVar8 != 0xffffffff) {\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar9 + 4),*puVar8,uVar7);\n          }\n          *puVar8 = uVar7;\n        }\n      }" ({ "{") (expression_statement "puVar8 = param_4;" (assignment_expression "puVar8 = param_4" (identifier "puVar8") (= "=") (identifier "param_4")) (; ";")) (if_statement "if (((uVar3 == 0x6ffffffe) || (puVar8 = param_2, uVar3 == 0x6fffffff)) ||\n           (puVar8 = param_3, uVar3 == 0x6ffffffd)) {\nLAB_0016d91c:\n          if (*puVar8 != 0xffffffff) {\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar9 + 4),*puVar8,uVar7);\n          }\n          *puVar8 = uVar7;\n        }" (if "if") (parenthesized_expression "(((uVar3 == 0x6ffffffe) || (puVar8 = param_2, uVar3 == 0x6fffffff)) ||\n           (puVar8 = param_3, uVar3 == 0x6ffffffd))" (( "(") (binary_expression "((uVar3 == 0x6ffffffe) || (puVar8 = param_2, uVar3 == 0x6fffffff)) ||\n           (puVar8 = param_3, uVar3 == 0x6ffffffd)" (parenthesized_expression "((uVar3 == 0x6ffffffe) || (puVar8 = param_2, uVar3 == 0x6fffffff))" (( "(") (binary_expression "(uVar3 == 0x6ffffffe) || (puVar8 = param_2, uVar3 == 0x6fffffff)" (parenthesized_expression "(uVar3 == 0x6ffffffe)" (( "(") (binary_expression "uVar3 == 0x6ffffffe" (identifier "uVar3") (== "==") (number_literal "0x6ffffffe")) () ")")) (|| "||") (parenthesized_expression "(puVar8 = param_2, uVar3 == 0x6fffffff)" (( "(") (comma_expression "puVar8 = param_2, uVar3 == 0x6fffffff" (assignment_expression "puVar8 = param_2" (identifier "puVar8") (= "=") (identifier "param_2")) (, ",") (binary_expression "uVar3 == 0x6fffffff" (identifier "uVar3") (== "==") (number_literal "0x6fffffff"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(puVar8 = param_3, uVar3 == 0x6ffffffd)" (( "(") (comma_expression "puVar8 = param_3, uVar3 == 0x6ffffffd" (assignment_expression "puVar8 = param_3" (identifier "puVar8") (= "=") (identifier "param_3")) (, ",") (binary_expression "uVar3 == 0x6ffffffd" (identifier "uVar3") (== "==") (number_literal "0x6ffffffd"))) () ")"))) () ")")) (compound_statement "{\nLAB_0016d91c:\n          if (*puVar8 != 0xffffffff) {\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar9 + 4),*puVar8,uVar7);\n          }\n          *puVar8 = uVar7;\n        }" ({ "{") (labeled_statement "LAB_0016d91c:\n          if (*puVar8 != 0xffffffff) {\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar9 + 4),*puVar8,uVar7);\n          }" (statement_identifier "LAB_0016d91c") (: ":") (if_statement "if (*puVar8 != 0xffffffff) {\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar9 + 4),*puVar8,uVar7);\n          }" (if "if") (parenthesized_expression "(*puVar8 != 0xffffffff)" (( "(") (binary_expression "*puVar8 != 0xffffffff" (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (!= "!=") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);\n            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar9 + 4),*puVar8,uVar7);\n          }" ({ "{") (expression_statement "uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);" (assignment_expression "uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2)" (identifier "uVar4") (= "=") (call_expression "(*(code *)PTR_gettext_004c5c30)(puVar2)" (parenthesized_expression "(*(code *)PTR_gettext_004c5c30)" (( "(") (pointer_expression "*(code *)PTR_gettext_004c5c30" (* "*") (cast_expression "(code *)PTR_gettext_004c5c30" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_gettext_004c5c30"))) () ")")) (argument_list "(puVar2)" (( "(") (identifier "puVar2") () ")")))) (; ";")) (expression_statement "(*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar9 + 4),*puVar8,uVar7);" (call_expression "(*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar9 + 4),*puVar8,uVar7)" (parenthesized_expression "(*(code *)PTR_error_004c1a54)" (( "(") (pointer_expression "*(code *)PTR_error_004c1a54" (* "*") (cast_expression "(code *)PTR_error_004c1a54" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_error_004c1a54"))) () ")")) (argument_list "(this,uVar4,*(undefined4 *)(puVar9 + 4),*puVar8,uVar7)" (( "(") (identifier "this") (, ",") (identifier "uVar4") (, ",") (pointer_expression "*(undefined4 *)(puVar9 + 4)" (* "*") (cast_expression "(undefined4 *)(puVar9 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + 4)" (( "(") (binary_expression "puVar9 + 4" (identifier "puVar9") (+ "+") (number_literal "4")) () ")")))) (, ",") (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (, ",") (identifier "uVar7") () ")"))) (; ";")) (} "}")))) (expression_statement "*puVar8 = uVar7;" (assignment_expression "*puVar8 = uVar7" (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (= "=") (identifier "uVar7")) (; ";")) (} "}"))) (} "}")))))) (expression_statement "puVar9 = puVar9 + 0x40;" (assignment_expression "puVar9 = puVar9 + 0x40" (identifier "puVar9") (= "=") (binary_expression "puVar9 + 0x40" (identifier "puVar9") (+ "+") (number_literal "0x40"))) (; ";")) (expression_statement "uVar7 = uVar7 + 1;" (assignment_expression "uVar7 = uVar7 + 1" (identifier "uVar7") (= "=") (binary_expression "uVar7 + 1" (identifier "uVar7") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar7 != uVar10)" (( "(") (binary_expression "uVar7 != uVar10" (identifier "uVar7") (!= "!=") (identifier "uVar10")) () ")")) (; ";")) (if_statement "if (((*(int *)(this + 0x80) == -1) && (uVar11 != 0)) &&\n       ((*(uint *)(this + 0x80) = uVar11, local_34 != 0 && (uVar11 == uVar6)))) {\n      (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n      uVar4 = *(undefined4 *)(this + 0x78);\n      puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n      *puVar5 = uVar4;\n      puVar5[1] = 0;\n      puVar5[2] = 0;\n      puVar2 = PTR_read_symtab_xindex<64,true>_004c36c0;\n      puVar5[3] = 0;\n      (*(code *)puVar2)(puVar5,this,local_34,param_1);\n      if (*(int *)(this + 0x30) != 0) {\nLAB_0016db64:\n                    \n        FUN_0015f554();\n      }\n      *(undefined4 **)(this + 0x30) = puVar5;\n    }" (if "if") (parenthesized_expression "(((*(int *)(this + 0x80) == -1) && (uVar11 != 0)) &&\n       ((*(uint *)(this + 0x80) = uVar11, local_34 != 0 && (uVar11 == uVar6))))" (( "(") (binary_expression "((*(int *)(this + 0x80) == -1) && (uVar11 != 0)) &&\n       ((*(uint *)(this + 0x80) = uVar11, local_34 != 0 && (uVar11 == uVar6)))" (parenthesized_expression "((*(int *)(this + 0x80) == -1) && (uVar11 != 0))" (( "(") (binary_expression "(*(int *)(this + 0x80) == -1) && (uVar11 != 0)" (parenthesized_expression "(*(int *)(this + 0x80) == -1)" (( "(") (binary_expression "*(int *)(this + 0x80) == -1" (pointer_expression "*(int *)(this + 0x80)" (* "*") (cast_expression "(int *)(this + 0x80)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x80)" (( "(") (binary_expression "this + 0x80" (identifier "this") (+ "+") (number_literal "0x80")) () ")")))) (== "==") (number_literal "-1")) () ")")) (&& "&&") (parenthesized_expression "(uVar11 != 0)" (( "(") (binary_expression "uVar11 != 0" (identifier "uVar11") (!= "!=") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((*(uint *)(this + 0x80) = uVar11, local_34 != 0 && (uVar11 == uVar6)))" (( "(") (parenthesized_expression "(*(uint *)(this + 0x80) = uVar11, local_34 != 0 && (uVar11 == uVar6))" (( "(") (comma_expression "*(uint *)(this + 0x80) = uVar11, local_34 != 0 && (uVar11 == uVar6)" (assignment_expression "*(uint *)(this + 0x80) = uVar11" (pointer_expression "*(uint *)(this + 0x80)" (* "*") (cast_expression "(uint *)(this + 0x80)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x80)" (( "(") (binary_expression "this + 0x80" (identifier "this") (+ "+") (number_literal "0x80")) () ")")))) (= "=") (identifier "uVar11")) (, ",") (binary_expression "local_34 != 0 && (uVar11 == uVar6)" (binary_expression "local_34 != 0" (identifier "local_34") (!= "!=") (number_literal "0")) (&& "&&") (parenthesized_expression "(uVar11 == uVar6)" (( "(") (binary_expression "uVar11 == uVar6" (identifier "uVar11") (== "==") (identifier "uVar6")) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n      (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);\n      uVar4 = *(undefined4 *)(this + 0x78);\n      puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);\n      *puVar5 = uVar4;\n      puVar5[1] = 0;\n      puVar5[2] = 0;\n      puVar2 = PTR_read_symtab_xindex<64,true>_004c36c0;\n      puVar5[3] = 0;\n      (*(code *)puVar2)(puVar5,this,local_34,param_1);\n      if (*(int *)(this + 0x30) != 0) {\nLAB_0016db64:\n                    \n        FUN_0015f554();\n      }\n      *(undefined4 **)(this + 0x30) = puVar5;\n    }" ({ "{") (expression_statement "(*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);" (call_expression "(*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60)" (parenthesized_expression "(*(code *)PTR_initialize_shnum_004c1fc0)" (( "(") (pointer_expression "*(code *)PTR_initialize_shnum_004c1fc0" (* "*") (cast_expression "(code *)PTR_initialize_shnum_004c1fc0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_initialize_shnum_004c1fc0"))) () ")")) (argument_list "(this + 0x60)" (( "(") (binary_expression "this + 0x60" (identifier "this") (+ "+") (number_literal "0x60")) () ")"))) (; ";")) (expression_statement "uVar4 = *(undefined4 *)(this + 0x78);" (assignment_expression "uVar4 = *(undefined4 *)(this + 0x78)" (identifier "uVar4") (= "=") (pointer_expression "*(undefined4 *)(this + 0x78)" (* "*") (cast_expression "(undefined4 *)(this + 0x78)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x78)" (( "(") (binary_expression "this + 0x78" (identifier "this") (+ "+") (number_literal "0x78")) () ")"))))) (; ";")) (expression_statement "puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);" (assignment_expression "puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10)" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x10)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" (( "(") (pointer_expression "*(code *)PTR_operator_new_004c13a8" (* "*") (cast_expression "(code *)PTR_operator_new_004c13a8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_new_004c13a8"))) () ")")) (argument_list "(0x10)" (( "(") (number_literal "0x10") () ")"))))) (; ";")) (expression_statement "*puVar5 = uVar4;" (assignment_expression "*puVar5 = uVar4" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" (identifier "puVar5") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[2] = 0;" (assignment_expression "puVar5[2] = 0" (subscript_expression "puVar5[2]" (identifier "puVar5") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar2 = PTR_read_symtab_xindex<64,true>_004c36c0;" (comma_expression "puVar2 = PTR_read_symtab_xindex<64,true>_004c36c0" (assignment_expression "puVar2 = PTR_read_symtab_xindex<64" (identifier "puVar2") (= "=") (binary_expression "PTR_read_symtab_xindex<64" (identifier "PTR_read_symtab_xindex") (< "<") (number_literal "64"))) (, ",") (binary_expression "true>_004c36c0" (true "true") (> ">") (identifier "_004c36c0"))) (; ";")) (expression_statement "puVar5[3] = 0;" (assignment_expression "puVar5[3] = 0" (subscript_expression "puVar5[3]" (identifier "puVar5") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "(*(code *)puVar2)(puVar5,this,local_34,param_1);" (call_expression "(*(code *)puVar2)(puVar5,this,local_34,param_1)" (parenthesized_expression "(*(code *)puVar2)" (( "(") (pointer_expression "*(code *)puVar2" (* "*") (cast_expression "(code *)puVar2" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2"))) () ")")) (argument_list "(puVar5,this,local_34,param_1)" (( "(") (identifier "puVar5") (, ",") (identifier "this") (, ",") (identifier "local_34") (, ",") (identifier "param_1") () ")"))) (; ";")) (if_statement "if (*(int *)(this + 0x30) != 0) {\nLAB_0016db64:\n                    \n        FUN_0015f554();\n      }" (if "if") (parenthesized_expression "(*(int *)(this + 0x30) != 0)" (( "(") (binary_expression "*(int *)(this + 0x30) != 0" (pointer_expression "*(int *)(this + 0x30)" (* "*") (cast_expression "(int *)(this + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x30)" (( "(") (binary_expression "this + 0x30" (identifier "this") (+ "+") (number_literal "0x30")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0016db64:\n                    \n        FUN_0015f554();\n      }" ({ "{") (labeled_statement "LAB_0016db64:\n                    \n        FUN_0015f554();" (statement_identifier "LAB_0016db64") (: ":") (expression_statement "FUN_0015f554();" (call_expression "FUN_0015f554()" (identifier "FUN_0015f554") (argument_list "()" (( "(") () ")"))) (; ";"))) (} "}"))) (expression_statement "*(undefined4 **)(this + 0x30) = puVar5;" (assignment_expression "*(undefined4 **)(this + 0x30) = puVar5" (pointer_expression "*(undefined4 **)(this + 0x30)" (* "*") (cast_expression "(undefined4 **)(this + 0x30)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 0x30)" (( "(") (binary_expression "this + 0x30" (identifier "this") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (identifier "puVar5")) (; ";")) (} "}"))) (} "}"))) (return_statement "return;" (return "return") (; ";")) (ERROR "}" (} "}"))

/* DWARF original prototype: void find_dynsym_sections(Sized_dynobj<64,_true> * this, uchar *
   pshdrs, uint * pversym_shndx, uint * pverdef_shndx, uint * pverneed_shndx, uint * pdynamic_shndx)
    */

void __thiscall
gold::var_1<64,var_11>::find_dynsym_sections
          (var_1<64,var_11> *this,type_7 *pshdrs,type_2 *pversym_shndx,type_2 *pverdef_shndx,
          type_2 *pverneed_shndx,type_2 *pdynamic_shndx)

{
  type_1 *puVar1;
  type_1 *puVar2;
  type_2 var_5;
  type_3 uVar4;
  type_4 *pXVar5;
  type_5 *pOVar6;
  type_5 *var_15;
  int iVar7;
  var_1<64,var_11> *pSVar8;
  type_2 var_6;
  type_6 **pp_Var10;
  type_2 var_14;
  type_2 *puVar12;
  type_7 *var_4;
  type_2 var_2;
  type_2 var_16;
  type_2 var_13;
  
  *pversym_shndx = 0xffffffff;
  *pverdef_shndx = 0xffffffff;
  *pverneed_shndx = 0xffffffff;
  *pdynamic_shndx = 0xffffffff;
  var_2 = (this->super_Dynobj).super_Object.shnum_;
  if (var_2 != 0) {
    puVar2 = var_3 + -0xd94;
    var_14 = 0;
    var_13 = 0;
    var_6 = 0;
    var_16 = 0;
    var_4 = pshdrs;
    do {
      var_5 = *(type_2 *)(var_4 + 4);
      pSVar8 = this;
      if (var_5 == 0x12) {
        var_6 = *(type_2 *)(var_4 + 0x28);
        var_13 = var_14;
        if (var_6 < 0xff00) {
          if (this->dynsym_shndx_ == var_6) {
LAB_0016da7c:
            (*(type_8 *)PTR_initialize_shnum_004c1fc0)(&this->elf_file_);
            pp_Var10 = (type_6 **)(this->elf_file_).large_shndx_offset_;
            pOVar6 = (type_5 *)(*(type_8 *)PTR_operator_new_004c13a8)(0x10);
            (((_Vector_base<var_8,_std::var_7<var_8>var_9> *)
             &(pOVar6->name_)._M_dataplus)->_M_impl)._M_start = (type_9)0x0;
            pOVar6->_vptr_Object = pp_Var10;
            (pOVar6->name_)._M_string_length = 0;
            puVar1 = var_10<64,var_11>var_12;
            (pOVar6->name_).field_2._M_allocated_capacity = 0;
            var_15 = pOVar6;
            (*(type_8 *)puVar1)(pOVar6,this,var_14,pshdrs);
            if ((this->super_Dynobj).super_Object.xindex_ != (type_4 *)0x0) goto LAB_0016db64;
            (this->super_Dynobj).super_Object.xindex_ = (type_4 *)pOVar6;
          }
        }
        else {
          (*(type_8 *)PTR_initialize_shnum_004c1fc0)(&this->elf_file_);
          var_6 = var_6 + (this->elf_file_).large_shndx_offset_;
          if (this->dynsym_shndx_ == var_6) goto LAB_0016da7c;
        }
      }
      else if (var_5 < 0x13) {
        puVar12 = pdynamic_shndx;
        if (var_5 == 6) goto LAB_0016d91c;
        if (var_5 == 0xb) {
          this->dynsym_shndx_ = var_14;
          if ((var_13 != 0) && (var_6 == var_14)) {
            (*(type_8 *)PTR_initialize_shnum_004c1fc0)(&this->elf_file_);
            iVar7 = (this->elf_file_).large_shndx_offset_;
            pXVar5 = (type_4 *)(*(type_8 *)PTR_operator_new_004c13a8)(0x10);
            puVar1 = var_10<64,var_11>var_12;
            pXVar5->large_shndx_offset_ = iVar7;
            (pXVar5->symtab_xindex_).super__Vector_base<var_8,_std::var_7<var_8>var_9>
            ._M_impl._M_start = (type_9)0x0;
            (pXVar5->symtab_xindex_).super__Vector_base<var_8,_std::var_7<var_8>var_9>
            ._M_impl._M_finish = (type_9)0x0;
            (pXVar5->symtab_xindex_).super__Vector_base<var_8,_std::var_7<var_8>var_9>
            ._M_impl._M_end_of_storage = (type_9)0x0;
            (*(type_8 *)puVar1)(pXVar5,this,var_13,pshdrs);
            var_15 = (type_5 *)(this->super_Dynobj).super_Object.xindex_;
            if (var_15 != (type_5 *)0x0) goto LAB_0016db64;
            (this->super_Dynobj).super_Object.xindex_ = pXVar5;
          }
        }
        else if (var_5 == 2) {
          var_16 = var_14;
        }
      }
      else {
        puVar12 = pverneed_shndx;
        if (((var_5 == 0x6ffffffe) || (puVar12 = pversym_shndx, var_5 == 0x6fffffff)) ||
           (puVar12 = pverdef_shndx, var_5 == 0x6ffffffd)) {
LAB_0016d91c:
          if (*puVar12 != 0xffffffff) {
            uVar4 = (*(type_8 *)PTR_gettext_004c5c30)(puVar2);
            (*(type_8 *)PTR_error_004c1a54)(this,uVar4,*(type_3 *)(var_4 + 4),*puVar12,var_14);
          }
          *puVar12 = var_14;
        }
      }
      var_4 = var_4 + 0x40;
      var_14 = var_14 + 1;
    } while (var_14 != var_2);
    if (((this->dynsym_shndx_ == 0xffffffff) && (var_16 != 0)) &&
       ((this->dynsym_shndx_ = var_16, var_13 != 0 && (var_16 == var_6)))) {
      (*(type_8 *)PTR_initialize_shnum_004c1fc0)(&this->elf_file_);
      pp_Var10 = (type_6 **)(this->elf_file_).large_shndx_offset_;
      pOVar6 = (type_5 *)(*(type_8 *)PTR_operator_new_004c13a8)(0x10);
      pOVar6->_vptr_Object = pp_Var10;
      (((_Vector_base<var_8,_std::var_7<var_8>var_9> *)&(pOVar6->name_)._M_dataplus)->
      _M_impl)._M_start = (type_9)0x0;
      (pOVar6->name_)._M_string_length = 0;
      puVar2 = var_10<64,var_11>var_12;
      (pOVar6->name_).field_2._M_allocated_capacity = 0;
      var_15 = pOVar6;
      pSVar8 = this;
      (*(type_8 *)puVar2)(pOVar6,this,var_13,pshdrs);
      if ((this->super_Dynobj).super_Object.xindex_ != (type_4 *)0x0) {
LAB_0016db64:
                    /* WARNING: Subroutine does not return */
        Object::var_17(var_15,(type_4 *)pSVar8);
      }
      (this->super_Dynobj).super_Object.xindex_ = (type_4 *)pOVar6;
    }
  }
  return;
}


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

/* gold::Sized_dynobj<64, true>::MASKED(unsigned char const*, unsigned int*, unsigned
   int*, unsigned int*, unsigned int*) */

void __thiscall
gold::Sized_dynobj<64,true>::MASKED
          (Sized_dynobj<64,true> *this,uchar *param_1,uint *param_2,uint *param_3,uint *param_4,
          uint *param_5)

{
  undefined *puVar1;
  undefined *puVar2;
  uint uVar3;
  undefined4 uVar4;
  undefined4 *puVar5;
  uint uVar6;
  uint uVar7;
  uint *puVar8;
  uchar *puVar9;
  uint uVar10;
  uint uVar11;
  uint local_34;
  
  *param_2 = 0xffffffff;
  *param_3 = 0xffffffff;
  *param_4 = 0xffffffff;
  *param_5 = 0xffffffff;
  uVar10 = *(uint *)(this + 0x28);
  if (uVar10 != 0) {
    puVar2 = PTR_s__s_004c1a50 + -0xd94;
    uVar7 = 0;
    local_34 = 0;
    uVar6 = 0;
    uVar11 = 0;
    puVar9 = param_1;
    do {
      uVar3 = *(uint *)(puVar9 + 4);
      if (uVar3 == 0x12) {
        uVar6 = *(uint *)(puVar9 + 0x28);
        local_34 = uVar7;
        if (uVar6 < 0xff00) {
          if (*(uint *)(this + 0x80) == uVar6) {
LAB_0016da7c:
            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);
            uVar4 = *(undefined4 *)(this + 0x78);
            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);
            puVar5[1] = 0;
            *puVar5 = uVar4;
            puVar5[2] = 0;
            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;
            puVar5[3] = 0;
            (*(code *)puVar1)(puVar5,this,uVar7,param_1);
            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;
            *(undefined4 **)(this + 0x30) = puVar5;
          }
        }
        else {
          (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);
          uVar6 = uVar6 + *(int *)(this + 0x78);
          if (*(uint *)(this + 0x80) == uVar6) goto LAB_0016da7c;
        }
      }
      else if (uVar3 < 0x13) {
        puVar8 = param_5;
        if (uVar3 == 6) goto LAB_0016d91c;
        if (uVar3 == 0xb) {
          *(uint *)(this + 0x80) = uVar7;
          if ((local_34 != 0) && (uVar6 == uVar7)) {
            (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);
            uVar4 = *(undefined4 *)(this + 0x78);
            puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);
            puVar1 = PTR_read_symtab_xindex<64,true>_004c36c0;
            *puVar5 = uVar4;
            puVar5[1] = 0;
            puVar5[2] = 0;
            puVar5[3] = 0;
            (*(code *)puVar1)(puVar5,this,local_34,param_1);
            if (*(int *)(this + 0x30) != 0) goto LAB_0016db64;
            *(undefined4 **)(this + 0x30) = puVar5;
          }
        }
        else if (uVar3 == 2) {
          uVar11 = uVar7;
        }
      }
      else {
        puVar8 = param_4;
        if (((uVar3 == 0x6ffffffe) || (puVar8 = param_2, uVar3 == 0x6fffffff)) ||
           (puVar8 = param_3, uVar3 == 0x6ffffffd)) {
LAB_0016d91c:
          if (*puVar8 != 0xffffffff) {
            uVar4 = (*(code *)PTR_gettext_004c5c30)(puVar2);
            (*(code *)PTR_error_004c1a54)(this,uVar4,*(undefined4 *)(puVar9 + 4),*puVar8,uVar7);
          }
          *puVar8 = uVar7;
        }
      }
      puVar9 = puVar9 + 0x40;
      uVar7 = uVar7 + 1;
    } while (uVar7 != uVar10);
    if (((*(int *)(this + 0x80) == -1) && (uVar11 != 0)) &&
       ((*(uint *)(this + 0x80) = uVar11, local_34 != 0 && (uVar11 == uVar6)))) {
      (*(code *)PTR_initialize_shnum_004c1fc0)(this + 0x60);
      uVar4 = *(undefined4 *)(this + 0x78);
      puVar5 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x10);
      *puVar5 = uVar4;
      puVar5[1] = 0;
      puVar5[2] = 0;
      puVar2 = PTR_read_symtab_xindex<64,true>_004c36c0;
      puVar5[3] = 0;
      (*(code *)puVar2)(puVar5,this,local_34,param_1);
      if (*(int *)(this + 0x30) != 0) {
LAB_0016db64:
                    /* WARNING: Subroutine does not return */
        FUN_0015f554();
      }
      *(undefined4 **)(this + 0x30) = puVar5;
    }
  }
  return;
}

