
/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* WARNING: Struct "Output_section_headers": ignoring overlapping field "layout_" */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Struct "Output_reduced_debug_abbrev_section": ignoring overlapping field "data_" */
/* WARNING: Struct "Output_reduced_debug_info_section": ignoring overlapping field "data_" */
/* DWARF original prototype: void clean_up_after_relaxation(Layout * this) */

void __thiscall gold::Layout::clean_up_after_relaxation(Layout *this)

{
  byte bVar1;
  pointer ppOVar2;
  Output_section *pOVar3;
  Output_section_data *pOVar4;
  Output_data *pOVar5;
  pointer ppOVar6;
  pointer ppOVar7;
  pointer ppOVar8;
  pointer ppOVar9;
  
  (*(code *)PTR_release_segments_00432e84)(&this->script_options_->script_sections_);
  restore_segments(this,this->segment_states_);
  ppOVar7 = (this->section_list_).
            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.
            _M_impl._M_start;
  if (ppOVar7 ==
      (this->section_list_).
      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.
      _M_finish) {
    ppOVar2 = (this->special_output_list_).
              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.
              _M_finish;
  }
  else {
    do {
      (*(code *)PTR_restore_states_00432e8c)(*ppOVar7);
      pOVar3 = *ppOVar7;
      if (*(int *)&pOVar3->field_0x98 << 0x12 < 0) {
        (*(code *)PTR_adjust_section_offsets_00432e90)(pOVar3);
        pOVar3 = *ppOVar7;
      }
      bVar1 = (pOVar3->super_Output_data).field_0x20;
      ppOVar7 = ppOVar7 + 1;
      (pOVar3->super_Output_data).field_0x20 = bVar1 & 0x5f;
      if (-1 < *(int *)&(pOVar3->super_Output_data).field_0x20 << 3) {
        (pOVar3->super_Output_data).field_0x20 = bVar1 & 0x1f;
      }
      (*(pOVar3->super_Output_data)._vptr_Output_data[0xf])(pOVar3);
    } while ((this->section_list_).
             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.
             _M_impl._M_finish != ppOVar7);
    ppOVar2 = (this->special_output_list_).
              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.
              _M_finish;
  }
  ppOVar8 = (this->special_output_list_).
            super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.
            _M_start;
  if (ppOVar8 != ppOVar2) {
    do {
      pOVar5 = *ppOVar8;
      ppOVar8 = ppOVar8 + 1;
      bVar1 = pOVar5->field_0x20;
      pOVar5->field_0x20 = bVar1 & 0x5f;
      if (-1 < *(int *)&pOVar5->field_0x20 << 3) {
        pOVar5->field_0x20 = bVar1 & 0x1f;
      }
      (*pOVar5->_vptr_Output_data[0xf])(pOVar5);
    } while ((this->special_output_list_).
             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.
             _M_finish != ppOVar8);
  }
  ppOVar9 = (this->script_output_section_data_list_).
            super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>
            ._M_impl._M_start;
  ppOVar6 = (this->script_output_section_data_list_).
            super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>
            ._M_impl._M_finish;
  if (ppOVar9 != ppOVar6) {
    do {
      pOVar4 = *ppOVar9;
      ppOVar9 = ppOVar9 + 1;
      if (pOVar4 != (Output_section_data *)0x0) {
        (*(pOVar4->super_Output_data)._vptr_Output_data[1])(pOVar4);
        ppOVar6 = (this->script_output_section_data_list_).
                  super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>
                  ._M_impl._M_finish;
      }
    } while (ppOVar6 != ppOVar9);
    ppOVar9 = (this->script_output_section_data_list_).
              super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>
              ._M_impl._M_start;
    if (ppOVar9 != ppOVar6) {
      (this->script_output_section_data_list_).
      super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>.
      _M_impl._M_finish = ppOVar9;
    }
  }
  ppOVar8 = (this->relax_output_list_).
            super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.
            _M_start;
  ppOVar2 = (this->relax_output_list_).
            super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.
            _M_finish;
  if (ppOVar8 != ppOVar2) {
    do {
      pOVar5 = *ppOVar8;
      ppOVar8 = ppOVar8 + 1;
      if (pOVar5 != (Output_data *)0x0) {
        (*pOVar5->_vptr_Output_data[1])(pOVar5);
        ppOVar2 = (this->relax_output_list_).
                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.
                  _M_impl._M_finish;
      }
    } while (ppOVar2 != ppOVar8);
    ppOVar8 = (this->relax_output_list_).
              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.
              _M_start;
    if (ppOVar2 != ppOVar8) {
      (this->relax_output_list_).
      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl._M_finish
           = ppOVar8;
    }
  }
  return;
}



/* gold::Layout::clean_up_after_relaxation() */

void __thiscall gold::Layout::clean_up_after_relaxation(Layout *this)

{
  byte bVar1;
  undefined4 *puVar2;
  int *piVar3;
  int *piVar4;
  undefined4 *puVar5;
  int *piVar6;
  
  (*(code *)PTR_release_segments_00432e84)(*(int *)(this + 4) + 0xac);
  restore_segments(this,*(unordered_map **)(this + 0x1f0));
  piVar4 = *(int **)(this + 0x13c);
  if (piVar4 == *(int **)(this + 0x140)) {
    puVar2 = *(undefined4 **)(this + 0x158);
  }
  else {
    do {
      (*(code *)PTR_restore_states_00432e8c)(*piVar4);
      piVar6 = (int *)*piVar4;
      if (piVar6[0x26] << 0x12 < 0) {
        (*(code *)PTR_adjust_section_offsets_00432e90)(piVar6);
        piVar6 = (int *)*piVar4;
      }
      bVar1 = *(byte *)(piVar6 + 8);
      piVar4 = piVar4 + 1;
      *(byte *)(piVar6 + 8) = bVar1 & 0x5f;
      if (-1 < piVar6[8] << 3) {
        *(byte *)(piVar6 + 8) = bVar1 & 0x1f;
      }
      (**(code **)(*piVar6 + 0x3c))(piVar6);
    } while (*(int **)(this + 0x140) != piVar4);
    puVar2 = *(undefined4 **)(this + 0x158);
  }
  puVar5 = *(undefined4 **)(this + 0x154);
  if (puVar5 != puVar2) {
    do {
      piVar4 = (int *)*puVar5;
      puVar5 = puVar5 + 1;
      bVar1 = *(byte *)(piVar4 + 8);
      *(byte *)(piVar4 + 8) = bVar1 & 0x5f;
      if (-1 < piVar4[8] << 3) {
        *(byte *)(piVar4 + 8) = bVar1 & 0x1f;
      }
      (**(code **)(*piVar4 + 0x3c))(piVar4);
    } while (*(undefined4 **)(this + 0x158) != puVar5);
  }
  piVar6 = *(int **)(this + 0x1e4);
  piVar4 = *(int **)(this + 0x1e8);
  if (piVar6 != piVar4) {
    do {
      piVar3 = (int *)*piVar6;
      piVar6 = piVar6 + 1;
      if (piVar3 != (int *)0x0) {
        (**(code **)(*piVar3 + 4))(piVar3);
        piVar4 = *(int **)(this + 0x1e8);
      }
    } while (piVar4 != piVar6);
    if (*(int **)(this + 0x1e4) != piVar4) {
      *(int **)(this + 0x1e8) = *(int **)(this + 0x1e4);
    }
  }
  piVar6 = *(int **)(this + 0x160);
  piVar4 = *(int **)(this + 0x164);
  if (piVar6 != piVar4) {
    do {
      piVar3 = (int *)*piVar6;
      piVar6 = piVar6 + 1;
      if (piVar3 != (int *)0x0) {
        (**(code **)(*piVar3 + 4))(piVar3);
        piVar4 = *(int **)(this + 0x164);
      }
    } while (piVar4 != piVar6);
    if (piVar4 != *(int **)(this + 0x160)) {
      *(int **)(this + 0x164) = *(int **)(this + 0x160);
    }
  }
  return;
}


lui gp,0x32
addiu gp,gp,-0x4900
addu gp,gp,t9
addiu sp,sp,-0x28
lw t9,-0x734c(gp)
sw s0,0x1c(sp)
or s0,a0,zero
sw gp,0x10(sp)
sw ra,0x24(sp)
sw s1,0x20(sp)
lw a0,0x4(a0)
jalr t9
_addiu a0,a0,0xac
or a0,s0,zero
lw gp,0x10(sp)
lw t9,-0x7348(gp)
bal 0x0011e6ec
_lw a1,0x1f0(s0)
lw v0,0x140(s0)
lw s1,0x13c(s0)
bne s1,v0,0x0011eb74
_lw gp,0x10(sp)
b 0x0011ebac
_lw v0,0x158(s0)
lbu v1,0x20(v0)
addiu s1,s1,0x4
or a0,v0,zero
andi v1,v1,0x5f
sb v1,0x20(v0)
lw a1,0x20(v0)
ext a1,a1,0x1c,0x1
bne a1,zero,0x0011eb58
_ins v1,zero,0x6,0x1
sb v1,0x20(v0)
lw v0,0x0(v0)
lw t9,0x3c(v0)
jalr t9
_nop
lw v0,0x140(s0)
beq v0,s1,0x0011eba8
_lw gp,0x10(sp)
lw t9,-0x7344(gp)
jalr t9
_lw a0,0x0(s1)
lw v0,0x0(s1)
lw v1,0x98(v0)
ext v1,v1,0xd,0x1
beq v1,zero,0x0011eb30
_lw gp,0x10(sp)
lw t9,-0x7340(gp)
jalr t9
_or a0,v0,zero
b 0x0011eb30
_lw v0,0x0(s1)
lw v0,0x158(s0)
lw s1,0x154(s0)
beq s1,v0,0x0011ec00
_nop
lw v1,0x0(s1)
addiu s1,s1,0x4
or a0,v1,zero
lbu v0,0x20(v1)
andi v0,v0,0x5f
sb v0,0x20(v1)
lw a1,0x20(v1)
ext a1,a1,0x1c,0x1
bne a1,zero,0x0011ebe4
_ins v0,zero,0x6,0x1
sb v0,0x20(v1)
lw v0,0x0(v1)
lw t9,0x3c(v0)
jalr t9
_nop
lw v0,0x158(s0)
bne v0,s1,0x0011ebb8
_nop
lw s1,0x1e4(s0)
lw v1,0x1e8(s0)
beq s1,v1,0x0011ec4c
_nop
lw v0,0x0(s1)
addiu s1,s1,0x4
beq v0,zero,0x0011ec34
_or a0,v0,zero
lw v0,0x0(v0)
lw t9,0x4(v0)
jalr t9
_nop
lw v1,0x1e8(s0)
bne v1,s1,0x0011ec10
_nop
lw v0,0x1e4(s0)
beq v0,v1,0x0011ec4c
_nop
sw v0,0x1e8(s0)
lw s1,0x160(s0)
lw v1,0x164(s0)
beq s1,v1,0x0011ec9c
_lw ra,0x24(sp)
lw v0,0x0(s1)
addiu s1,s1,0x4
beq v0,zero,0x0011ec80
_or a0,v0,zero
lw v0,0x0(v0)
lw t9,0x4(v0)
jalr t9
_nop
lw v1,0x164(s0)
bne v1,s1,0x0011ec5c
_nop
lw v0,0x160(s0)
beq v1,v0,0x0011ec9c
_lw ra,0x24(sp)
sw v0,0x164(s0)
lw ra,0x24(sp)
lw s1,0x20(sp)
lw s0,0x1c(sp)
jr ra
_addiu sp,sp,0x28
(translation_unit "/* gold::Layout::clean_up_after_relaxation() */\n\nvoid __thiscall gold::Layout::clean_up_after_relaxation(Layout *this)\n\n{\n  byte bVar1;\n  undefined4 *puVar2;\n  int *piVar3;\n  int *piVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  \n  (*(code *)PTR_release_segments_00432e84)(*(int *)(this + 4) + 0xac);\n  restore_segments(this,*(unordered_map **)(this + 0x1f0));\n  piVar4 = *(int **)(this + 0x13c);\n  if (piVar4 == *(int **)(this + 0x140)) {\n    puVar2 = *(undefined4 **)(this + 0x158);\n  }\n  else {\n    do {\n      (*(code *)PTR_restore_states_00432e8c)(*piVar4);\n      piVar6 = (int *)*piVar4;\n      if (piVar6[0x26] << 0x12 < 0) {\n        (*(code *)PTR_adjust_section_offsets_00432e90)(piVar6);\n        piVar6 = (int *)*piVar4;\n      }\n      bVar1 = *(byte *)(piVar6 + 8);\n      piVar4 = piVar4 + 1;\n      *(byte *)(piVar6 + 8) = bVar1 & 0x5f;\n      if (-1 < piVar6[8] << 3) {\n        *(byte *)(piVar6 + 8) = bVar1 & 0x1f;\n      }\n      (**(code **)(*piVar6 + 0x3c))(piVar6);\n    } while (*(int **)(this + 0x140) != piVar4);\n    puVar2 = *(undefined4 **)(this + 0x158);\n  }\n  puVar5 = *(undefined4 **)(this + 0x154);\n  if (puVar5 != puVar2) {\n    do {\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      bVar1 = *(byte *)(piVar4 + 8);\n      *(byte *)(piVar4 + 8) = bVar1 & 0x5f;\n      if (-1 < piVar4[8] << 3) {\n        *(byte *)(piVar4 + 8) = bVar1 & 0x1f;\n      }\n      (**(code **)(*piVar4 + 0x3c))(piVar4);\n    } while (*(undefined4 **)(this + 0x158) != puVar5);\n  }\n  piVar6 = *(int **)(this + 0x1e4);\n  piVar4 = *(int **)(this + 0x1e8);\n  if (piVar6 != piVar4) {\n    do {\n      piVar3 = (int *)*piVar6;\n      piVar6 = piVar6 + 1;\n      if (piVar3 != (int *)0x0) {\n        (**(code **)(*piVar3 + 4))(piVar3);\n        piVar4 = *(int **)(this + 0x1e8);\n      }\n    } while (piVar4 != piVar6);\n    if (*(int **)(this + 0x1e4) != piVar4) {\n      *(int **)(this + 0x1e8) = *(int **)(this + 0x1e4);\n    }\n  }\n  piVar6 = *(int **)(this + 0x160);\n  piVar4 = *(int **)(this + 0x164);\n  if (piVar6 != piVar4) {\n    do {\n      piVar3 = (int *)*piVar6;\n      piVar6 = piVar6 + 1;\n      if (piVar3 != (int *)0x0) {\n        (**(code **)(*piVar3 + 4))(piVar3);\n        piVar4 = *(int **)(this + 0x164);\n      }\n    } while (piVar4 != piVar6);\n    if (piVar4 != *(int **)(this + 0x160)) {\n      *(int **)(this + 0x164) = *(int **)(this + 0x160);\n    }\n  }\n  return;\n}\n\n" comment (function_definition "void __thiscall gold::Layout::clean_up_after_relaxation(Layout *this)\n\n{\n  byte bVar1;\n  undefined4 *puVar2;\n  int *piVar3;\n  int *piVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  \n  (*(code *)PTR_release_segments_00432e84)(*(int *)(this + 4) + 0xac);\n  restore_segments(this,*(unordered_map **)(this + 0x1f0));\n  piVar4 = *(int **)(this + 0x13c);\n  if (piVar4 == *(int **)(this + 0x140)) {\n    puVar2 = *(undefined4 **)(this + 0x158);\n  }\n  else {\n    do {\n      (*(code *)PTR_restore_states_00432e8c)(*piVar4);\n      piVar6 = (int *)*piVar4;\n      if (piVar6[0x26] << 0x12 < 0) {\n        (*(code *)PTR_adjust_section_offsets_00432e90)(piVar6);\n        piVar6 = (int *)*piVar4;\n      }\n      bVar1 = *(byte *)(piVar6 + 8);\n      piVar4 = piVar4 + 1;\n      *(byte *)(piVar6 + 8) = bVar1 & 0x5f;\n      if (-1 < piVar6[8] << 3) {\n        *(byte *)(piVar6 + 8) = bVar1 & 0x1f;\n      }\n      (**(code **)(*piVar6 + 0x3c))(piVar6);\n    } while (*(int **)(this + 0x140) != piVar4);\n    puVar2 = *(undefined4 **)(this + 0x158);\n  }\n  puVar5 = *(undefined4 **)(this + 0x154);\n  if (puVar5 != puVar2) {\n    do {\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      bVar1 = *(byte *)(piVar4 + 8);\n      *(byte *)(piVar4 + 8) = bVar1 & 0x5f;\n      if (-1 < piVar4[8] << 3) {\n        *(byte *)(piVar4 + 8) = bVar1 & 0x1f;\n      }\n      (**(code **)(*piVar4 + 0x3c))(piVar4);\n    } while (*(undefined4 **)(this + 0x158) != puVar5);\n  }\n  piVar6 = *(int **)(this + 0x1e4);\n  piVar4 = *(int **)(this + 0x1e8);\n  if (piVar6 != piVar4) {\n    do {\n      piVar3 = (int *)*piVar6;\n      piVar6 = piVar6 + 1;\n      if (piVar3 != (int *)0x0) {\n        (**(code **)(*piVar3 + 4))(piVar3);\n        piVar4 = *(int **)(this + 0x1e8);\n      }\n    } while (piVar4 != piVar6);\n    if (*(int **)(this + 0x1e4) != piVar4) {\n      *(int **)(this + 0x1e8) = *(int **)(this + 0x1e4);\n    }\n  }\n  piVar6 = *(int **)(this + 0x160);\n  piVar4 = *(int **)(this + 0x164);\n  if (piVar6 != piVar4) {\n    do {\n      piVar3 = (int *)*piVar6;\n      piVar6 = piVar6 + 1;\n      if (piVar3 != (int *)0x0) {\n        (**(code **)(*piVar3 + 4))(piVar3);\n        piVar4 = *(int **)(this + 0x164);\n      }\n    } while (piVar4 != piVar6);\n    if (piVar4 != *(int **)(this + 0x160)) {\n      *(int **)(this + 0x164) = *(int **)(this + 0x160);\n    }\n  }\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Layout::" identifier : : identifier : :) (function_declarator "clean_up_after_relaxation(Layout *this)" identifier (parameter_list "(Layout *this)" ( (parameter_declaration "Layout *this" type_identifier (pointer_declarator "*this" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  undefined4 *puVar2;\n  int *piVar3;\n  int *piVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  \n  (*(code *)PTR_release_segments_00432e84)(*(int *)(this + 4) + 0xac);\n  restore_segments(this,*(unordered_map **)(this + 0x1f0));\n  piVar4 = *(int **)(this + 0x13c);\n  if (piVar4 == *(int **)(this + 0x140)) {\n    puVar2 = *(undefined4 **)(this + 0x158);\n  }\n  else {\n    do {\n      (*(code *)PTR_restore_states_00432e8c)(*piVar4);\n      piVar6 = (int *)*piVar4;\n      if (piVar6[0x26] << 0x12 < 0) {\n        (*(code *)PTR_adjust_section_offsets_00432e90)(piVar6);\n        piVar6 = (int *)*piVar4;\n      }\n      bVar1 = *(byte *)(piVar6 + 8);\n      piVar4 = piVar4 + 1;\n      *(byte *)(piVar6 + 8) = bVar1 & 0x5f;\n      if (-1 < piVar6[8] << 3) {\n        *(byte *)(piVar6 + 8) = bVar1 & 0x1f;\n      }\n      (**(code **)(*piVar6 + 0x3c))(piVar6);\n    } while (*(int **)(this + 0x140) != piVar4);\n    puVar2 = *(undefined4 **)(this + 0x158);\n  }\n  puVar5 = *(undefined4 **)(this + 0x154);\n  if (puVar5 != puVar2) {\n    do {\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      bVar1 = *(byte *)(piVar4 + 8);\n      *(byte *)(piVar4 + 8) = bVar1 & 0x5f;\n      if (-1 < piVar4[8] << 3) {\n        *(byte *)(piVar4 + 8) = bVar1 & 0x1f;\n      }\n      (**(code **)(*piVar4 + 0x3c))(piVar4);\n    } while (*(undefined4 **)(this + 0x158) != puVar5);\n  }\n  piVar6 = *(int **)(this + 0x1e4);\n  piVar4 = *(int **)(this + 0x1e8);\n  if (piVar6 != piVar4) {\n    do {\n      piVar3 = (int *)*piVar6;\n      piVar6 = piVar6 + 1;\n      if (piVar3 != (int *)0x0) {\n        (**(code **)(*piVar3 + 4))(piVar3);\n        piVar4 = *(int **)(this + 0x1e8);\n      }\n    } while (piVar4 != piVar6);\n    if (*(int **)(this + 0x1e4) != piVar4) {\n      *(int **)(this + 0x1e8) = *(int **)(this + 0x1e4);\n    }\n  }\n  piVar6 = *(int **)(this + 0x160);\n  piVar4 = *(int **)(this + 0x164);\n  if (piVar6 != piVar4) {\n    do {\n      piVar3 = (int *)*piVar6;\n      piVar6 = piVar6 + 1;\n      if (piVar3 != (int *)0x0) {\n        (**(code **)(*piVar3 + 4))(piVar3);\n        piVar4 = *(int **)(this + 0x164);\n      }\n    } while (piVar4 != piVar6);\n    if (piVar4 != *(int **)(this + 0x160)) {\n      *(int **)(this + 0x164) = *(int **)(this + 0x160);\n    }\n  }\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (expression_statement "(*(code *)PTR_release_segments_00432e84)(*(int *)(this + 4) + 0xac);" (call_expression "(*(code *)PTR_release_segments_00432e84)(*(int *)(this + 4) + 0xac)" (parenthesized_expression "(*(code *)PTR_release_segments_00432e84)" ( (pointer_expression "*(code *)PTR_release_segments_00432e84" * (cast_expression "(code *)PTR_release_segments_00432e84" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(int *)(this + 4) + 0xac)" ( (binary_expression "*(int *)(this + 4) + 0xac" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "restore_segments(this,*(unordered_map **)(this + 0x1f0));" (call_expression "restore_segments(this,*(unordered_map **)(this + 0x1f0))" identifier (argument_list "(this,*(unordered_map **)(this + 0x1f0))" ( identifier , (pointer_expression "*(unordered_map **)(this + 0x1f0)" * (cast_expression "(unordered_map **)(this + 0x1f0)" ( (type_descriptor "unordered_map **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x1f0)" ( (binary_expression "this + 0x1f0" identifier + number_literal) )))) ))) ;) (expression_statement "piVar4 = *(int **)(this + 0x13c);" (assignment_expression "piVar4 = *(int **)(this + 0x13c)" identifier = (pointer_expression "*(int **)(this + 0x13c)" * (cast_expression "(int **)(this + 0x13c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x13c)" ( (binary_expression "this + 0x13c" identifier + number_literal) ))))) ;) (if_statement "if (piVar4 == *(int **)(this + 0x140)) {\n    puVar2 = *(undefined4 **)(this + 0x158);\n  }\n  else {\n    do {\n      (*(code *)PTR_restore_states_00432e8c)(*piVar4);\n      piVar6 = (int *)*piVar4;\n      if (piVar6[0x26] << 0x12 < 0) {\n        (*(code *)PTR_adjust_section_offsets_00432e90)(piVar6);\n        piVar6 = (int *)*piVar4;\n      }\n      bVar1 = *(byte *)(piVar6 + 8);\n      piVar4 = piVar4 + 1;\n      *(byte *)(piVar6 + 8) = bVar1 & 0x5f;\n      if (-1 < piVar6[8] << 3) {\n        *(byte *)(piVar6 + 8) = bVar1 & 0x1f;\n      }\n      (**(code **)(*piVar6 + 0x3c))(piVar6);\n    } while (*(int **)(this + 0x140) != piVar4);\n    puVar2 = *(undefined4 **)(this + 0x158);\n  }" if (parenthesized_expression "(piVar4 == *(int **)(this + 0x140))" ( (binary_expression "piVar4 == *(int **)(this + 0x140)" identifier == (pointer_expression "*(int **)(this + 0x140)" * (cast_expression "(int **)(this + 0x140)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x140)" ( (binary_expression "this + 0x140" identifier + number_literal) ))))) )) (compound_statement "{\n    puVar2 = *(undefined4 **)(this + 0x158);\n  }" { (expression_statement "puVar2 = *(undefined4 **)(this + 0x158);" (assignment_expression "puVar2 = *(undefined4 **)(this + 0x158)" identifier = (pointer_expression "*(undefined4 **)(this + 0x158)" * (cast_expression "(undefined4 **)(this + 0x158)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x158)" ( (binary_expression "this + 0x158" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    do {\n      (*(code *)PTR_restore_states_00432e8c)(*piVar4);\n      piVar6 = (int *)*piVar4;\n      if (piVar6[0x26] << 0x12 < 0) {\n        (*(code *)PTR_adjust_section_offsets_00432e90)(piVar6);\n        piVar6 = (int *)*piVar4;\n      }\n      bVar1 = *(byte *)(piVar6 + 8);\n      piVar4 = piVar4 + 1;\n      *(byte *)(piVar6 + 8) = bVar1 & 0x5f;\n      if (-1 < piVar6[8] << 3) {\n        *(byte *)(piVar6 + 8) = bVar1 & 0x1f;\n      }\n      (**(code **)(*piVar6 + 0x3c))(piVar6);\n    } while (*(int **)(this + 0x140) != piVar4);\n    puVar2 = *(undefined4 **)(this + 0x158);\n  }" else (compound_statement "{\n    do {\n      (*(code *)PTR_restore_states_00432e8c)(*piVar4);\n      piVar6 = (int *)*piVar4;\n      if (piVar6[0x26] << 0x12 < 0) {\n        (*(code *)PTR_adjust_section_offsets_00432e90)(piVar6);\n        piVar6 = (int *)*piVar4;\n      }\n      bVar1 = *(byte *)(piVar6 + 8);\n      piVar4 = piVar4 + 1;\n      *(byte *)(piVar6 + 8) = bVar1 & 0x5f;\n      if (-1 < piVar6[8] << 3) {\n        *(byte *)(piVar6 + 8) = bVar1 & 0x1f;\n      }\n      (**(code **)(*piVar6 + 0x3c))(piVar6);\n    } while (*(int **)(this + 0x140) != piVar4);\n    puVar2 = *(undefined4 **)(this + 0x158);\n  }" { (do_statement "do {\n      (*(code *)PTR_restore_states_00432e8c)(*piVar4);\n      piVar6 = (int *)*piVar4;\n      if (piVar6[0x26] << 0x12 < 0) {\n        (*(code *)PTR_adjust_section_offsets_00432e90)(piVar6);\n        piVar6 = (int *)*piVar4;\n      }\n      bVar1 = *(byte *)(piVar6 + 8);\n      piVar4 = piVar4 + 1;\n      *(byte *)(piVar6 + 8) = bVar1 & 0x5f;\n      if (-1 < piVar6[8] << 3) {\n        *(byte *)(piVar6 + 8) = bVar1 & 0x1f;\n      }\n      (**(code **)(*piVar6 + 0x3c))(piVar6);\n    } while (*(int **)(this + 0x140) != piVar4);" do (compound_statement "{\n      (*(code *)PTR_restore_states_00432e8c)(*piVar4);\n      piVar6 = (int *)*piVar4;\n      if (piVar6[0x26] << 0x12 < 0) {\n        (*(code *)PTR_adjust_section_offsets_00432e90)(piVar6);\n        piVar6 = (int *)*piVar4;\n      }\n      bVar1 = *(byte *)(piVar6 + 8);\n      piVar4 = piVar4 + 1;\n      *(byte *)(piVar6 + 8) = bVar1 & 0x5f;\n      if (-1 < piVar6[8] << 3) {\n        *(byte *)(piVar6 + 8) = bVar1 & 0x1f;\n      }\n      (**(code **)(*piVar6 + 0x3c))(piVar6);\n    }" { (expression_statement "(*(code *)PTR_restore_states_00432e8c)(*piVar4);" (call_expression "(*(code *)PTR_restore_states_00432e8c)(*piVar4)" (parenthesized_expression "(*(code *)PTR_restore_states_00432e8c)" ( (pointer_expression "*(code *)PTR_restore_states_00432e8c" * (cast_expression "(code *)PTR_restore_states_00432e8c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*piVar4)" ( (pointer_expression "*piVar4" * identifier) ))) ;) (expression_statement "piVar6 = (int *)*piVar4;" (assignment_expression "piVar6 = (int *)*piVar4" identifier = (cast_expression "(int *)*piVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar4" * identifier))) ;) (if_statement "if (piVar6[0x26] << 0x12 < 0) {\n        (*(code *)PTR_adjust_section_offsets_00432e90)(piVar6);\n        piVar6 = (int *)*piVar4;\n      }" if (parenthesized_expression "(piVar6[0x26] << 0x12 < 0)" ( (binary_expression "piVar6[0x26] << 0x12 < 0" (binary_expression "piVar6[0x26] << 0x12" (subscript_expression "piVar6[0x26]" identifier [ number_literal ]) << number_literal) < number_literal) )) (compound_statement "{\n        (*(code *)PTR_adjust_section_offsets_00432e90)(piVar6);\n        piVar6 = (int *)*piVar4;\n      }" { (expression_statement "(*(code *)PTR_adjust_section_offsets_00432e90)(piVar6);" (call_expression "(*(code *)PTR_adjust_section_offsets_00432e90)(piVar6)" (parenthesized_expression "(*(code *)PTR_adjust_section_offsets_00432e90)" ( (pointer_expression "*(code *)PTR_adjust_section_offsets_00432e90" * (cast_expression "(code *)PTR_adjust_section_offsets_00432e90" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar6)" ( identifier ))) ;) (expression_statement "piVar6 = (int *)*piVar4;" (assignment_expression "piVar6 = (int *)*piVar4" identifier = (cast_expression "(int *)*piVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar4" * identifier))) ;) })) (expression_statement "bVar1 = *(byte *)(piVar6 + 8);" (assignment_expression "bVar1 = *(byte *)(piVar6 + 8)" identifier = (pointer_expression "*(byte *)(piVar6 + 8)" * (cast_expression "(byte *)(piVar6 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar6 + 8)" ( (binary_expression "piVar6 + 8" identifier + number_literal) ))))) ;) (expression_statement "piVar4 = piVar4 + 1;" (assignment_expression "piVar4 = piVar4 + 1" identifier = (binary_expression "piVar4 + 1" identifier + number_literal)) ;) (expression_statement "*(byte *)(piVar6 + 8) = bVar1 & 0x5f;" (assignment_expression "*(byte *)(piVar6 + 8) = bVar1 & 0x5f" (pointer_expression "*(byte *)(piVar6 + 8)" * (cast_expression "(byte *)(piVar6 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar6 + 8)" ( (binary_expression "piVar6 + 8" identifier + number_literal) )))) = (binary_expression "bVar1 & 0x5f" identifier & number_literal)) ;) (if_statement "if (-1 < piVar6[8] << 3) {\n        *(byte *)(piVar6 + 8) = bVar1 & 0x1f;\n      }" if (parenthesized_expression "(-1 < piVar6[8] << 3)" ( (binary_expression "-1 < piVar6[8] << 3" number_literal < (binary_expression "piVar6[8] << 3" (subscript_expression "piVar6[8]" identifier [ number_literal ]) << number_literal)) )) (compound_statement "{\n        *(byte *)(piVar6 + 8) = bVar1 & 0x1f;\n      }" { (expression_statement "*(byte *)(piVar6 + 8) = bVar1 & 0x1f;" (assignment_expression "*(byte *)(piVar6 + 8) = bVar1 & 0x1f" (pointer_expression "*(byte *)(piVar6 + 8)" * (cast_expression "(byte *)(piVar6 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar6 + 8)" ( (binary_expression "piVar6 + 8" identifier + number_literal) )))) = (binary_expression "bVar1 & 0x1f" identifier & number_literal)) ;) })) (expression_statement "(**(code **)(*piVar6 + 0x3c))(piVar6);" (call_expression "(**(code **)(*piVar6 + 0x3c))(piVar6)" (parenthesized_expression "(**(code **)(*piVar6 + 0x3c))" ( (pointer_expression "**(code **)(*piVar6 + 0x3c)" * (pointer_expression "*(code **)(*piVar6 + 0x3c)" * (cast_expression "(code **)(*piVar6 + 0x3c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar6 + 0x3c)" ( (binary_expression "*piVar6 + 0x3c" (pointer_expression "*piVar6" * identifier) + number_literal) ))))) )) (argument_list "(piVar6)" ( identifier ))) ;) }) while (parenthesized_expression "(*(int **)(this + 0x140) != piVar4)" ( (binary_expression "*(int **)(this + 0x140) != piVar4" (pointer_expression "*(int **)(this + 0x140)" * (cast_expression "(int **)(this + 0x140)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x140)" ( (binary_expression "this + 0x140" identifier + number_literal) )))) != identifier) )) ;) (expression_statement "puVar2 = *(undefined4 **)(this + 0x158);" (assignment_expression "puVar2 = *(undefined4 **)(this + 0x158)" identifier = (pointer_expression "*(undefined4 **)(this + 0x158)" * (cast_expression "(undefined4 **)(this + 0x158)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x158)" ( (binary_expression "this + 0x158" identifier + number_literal) ))))) ;) }))) (expression_statement "puVar5 = *(undefined4 **)(this + 0x154);" (assignment_expression "puVar5 = *(undefined4 **)(this + 0x154)" identifier = (pointer_expression "*(undefined4 **)(this + 0x154)" * (cast_expression "(undefined4 **)(this + 0x154)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x154)" ( (binary_expression "this + 0x154" identifier + number_literal) ))))) ;) (if_statement "if (puVar5 != puVar2) {\n    do {\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      bVar1 = *(byte *)(piVar4 + 8);\n      *(byte *)(piVar4 + 8) = bVar1 & 0x5f;\n      if (-1 < piVar4[8] << 3) {\n        *(byte *)(piVar4 + 8) = bVar1 & 0x1f;\n      }\n      (**(code **)(*piVar4 + 0x3c))(piVar4);\n    } while (*(undefined4 **)(this + 0x158) != puVar5);\n  }" if (parenthesized_expression "(puVar5 != puVar2)" ( (binary_expression "puVar5 != puVar2" identifier != identifier) )) (compound_statement "{\n    do {\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      bVar1 = *(byte *)(piVar4 + 8);\n      *(byte *)(piVar4 + 8) = bVar1 & 0x5f;\n      if (-1 < piVar4[8] << 3) {\n        *(byte *)(piVar4 + 8) = bVar1 & 0x1f;\n      }\n      (**(code **)(*piVar4 + 0x3c))(piVar4);\n    } while (*(undefined4 **)(this + 0x158) != puVar5);\n  }" { (do_statement "do {\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      bVar1 = *(byte *)(piVar4 + 8);\n      *(byte *)(piVar4 + 8) = bVar1 & 0x5f;\n      if (-1 < piVar4[8] << 3) {\n        *(byte *)(piVar4 + 8) = bVar1 & 0x1f;\n      }\n      (**(code **)(*piVar4 + 0x3c))(piVar4);\n    } while (*(undefined4 **)(this + 0x158) != puVar5);" do (compound_statement "{\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      bVar1 = *(byte *)(piVar4 + 8);\n      *(byte *)(piVar4 + 8) = bVar1 & 0x5f;\n      if (-1 < piVar4[8] << 3) {\n        *(byte *)(piVar4 + 8) = bVar1 & 0x1f;\n      }\n      (**(code **)(*piVar4 + 0x3c))(piVar4);\n    }" { (expression_statement "piVar4 = (int *)*puVar5;" (assignment_expression "piVar4 = (int *)*puVar5" identifier = (cast_expression "(int *)*puVar5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar5" * identifier))) ;) (expression_statement "puVar5 = puVar5 + 1;" (assignment_expression "puVar5 = puVar5 + 1" identifier = (binary_expression "puVar5 + 1" identifier + number_literal)) ;) (expression_statement "bVar1 = *(byte *)(piVar4 + 8);" (assignment_expression "bVar1 = *(byte *)(piVar4 + 8)" identifier = (pointer_expression "*(byte *)(piVar4 + 8)" * (cast_expression "(byte *)(piVar4 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4 + 8)" ( (binary_expression "piVar4 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(byte *)(piVar4 + 8) = bVar1 & 0x5f;" (assignment_expression "*(byte *)(piVar4 + 8) = bVar1 & 0x5f" (pointer_expression "*(byte *)(piVar4 + 8)" * (cast_expression "(byte *)(piVar4 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4 + 8)" ( (binary_expression "piVar4 + 8" identifier + number_literal) )))) = (binary_expression "bVar1 & 0x5f" identifier & number_literal)) ;) (if_statement "if (-1 < piVar4[8] << 3) {\n        *(byte *)(piVar4 + 8) = bVar1 & 0x1f;\n      }" if (parenthesized_expression "(-1 < piVar4[8] << 3)" ( (binary_expression "-1 < piVar4[8] << 3" number_literal < (binary_expression "piVar4[8] << 3" (subscript_expression "piVar4[8]" identifier [ number_literal ]) << number_literal)) )) (compound_statement "{\n        *(byte *)(piVar4 + 8) = bVar1 & 0x1f;\n      }" { (expression_statement "*(byte *)(piVar4 + 8) = bVar1 & 0x1f;" (assignment_expression "*(byte *)(piVar4 + 8) = bVar1 & 0x1f" (pointer_expression "*(byte *)(piVar4 + 8)" * (cast_expression "(byte *)(piVar4 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4 + 8)" ( (binary_expression "piVar4 + 8" identifier + number_literal) )))) = (binary_expression "bVar1 & 0x1f" identifier & number_literal)) ;) })) (expression_statement "(**(code **)(*piVar4 + 0x3c))(piVar4);" (call_expression "(**(code **)(*piVar4 + 0x3c))(piVar4)" (parenthesized_expression "(**(code **)(*piVar4 + 0x3c))" ( (pointer_expression "**(code **)(*piVar4 + 0x3c)" * (pointer_expression "*(code **)(*piVar4 + 0x3c)" * (cast_expression "(code **)(*piVar4 + 0x3c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0x3c)" ( (binary_expression "*piVar4 + 0x3c" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) )) (argument_list "(piVar4)" ( identifier ))) ;) }) while (parenthesized_expression "(*(undefined4 **)(this + 0x158) != puVar5)" ( (binary_expression "*(undefined4 **)(this + 0x158) != puVar5" (pointer_expression "*(undefined4 **)(this + 0x158)" * (cast_expression "(undefined4 **)(this + 0x158)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x158)" ( (binary_expression "this + 0x158" identifier + number_literal) )))) != identifier) )) ;) })) (expression_statement "piVar6 = *(int **)(this + 0x1e4);" (assignment_expression "piVar6 = *(int **)(this + 0x1e4)" identifier = (pointer_expression "*(int **)(this + 0x1e4)" * (cast_expression "(int **)(this + 0x1e4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x1e4)" ( (binary_expression "this + 0x1e4" identifier + number_literal) ))))) ;) (expression_statement "piVar4 = *(int **)(this + 0x1e8);" (assignment_expression "piVar4 = *(int **)(this + 0x1e8)" identifier = (pointer_expression "*(int **)(this + 0x1e8)" * (cast_expression "(int **)(this + 0x1e8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x1e8)" ( (binary_expression "this + 0x1e8" identifier + number_literal) ))))) ;) (if_statement "if (piVar6 != piVar4) {\n    do {\n      piVar3 = (int *)*piVar6;\n      piVar6 = piVar6 + 1;\n      if (piVar3 != (int *)0x0) {\n        (**(code **)(*piVar3 + 4))(piVar3);\n        piVar4 = *(int **)(this + 0x1e8);\n      }\n    } while (piVar4 != piVar6);\n    if (*(int **)(this + 0x1e4) != piVar4) {\n      *(int **)(this + 0x1e8) = *(int **)(this + 0x1e4);\n    }\n  }" if (parenthesized_expression "(piVar6 != piVar4)" ( (binary_expression "piVar6 != piVar4" identifier != identifier) )) (compound_statement "{\n    do {\n      piVar3 = (int *)*piVar6;\n      piVar6 = piVar6 + 1;\n      if (piVar3 != (int *)0x0) {\n        (**(code **)(*piVar3 + 4))(piVar3);\n        piVar4 = *(int **)(this + 0x1e8);\n      }\n    } while (piVar4 != piVar6);\n    if (*(int **)(this + 0x1e4) != piVar4) {\n      *(int **)(this + 0x1e8) = *(int **)(this + 0x1e4);\n    }\n  }" { (do_statement "do {\n      piVar3 = (int *)*piVar6;\n      piVar6 = piVar6 + 1;\n      if (piVar3 != (int *)0x0) {\n        (**(code **)(*piVar3 + 4))(piVar3);\n        piVar4 = *(int **)(this + 0x1e8);\n      }\n    } while (piVar4 != piVar6);" do (compound_statement "{\n      piVar3 = (int *)*piVar6;\n      piVar6 = piVar6 + 1;\n      if (piVar3 != (int *)0x0) {\n        (**(code **)(*piVar3 + 4))(piVar3);\n        piVar4 = *(int **)(this + 0x1e8);\n      }\n    }" { (expression_statement "piVar3 = (int *)*piVar6;" (assignment_expression "piVar3 = (int *)*piVar6" identifier = (cast_expression "(int *)*piVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar6" * identifier))) ;) (expression_statement "piVar6 = piVar6 + 1;" (assignment_expression "piVar6 = piVar6 + 1" identifier = (binary_expression "piVar6 + 1" identifier + number_literal)) ;) (if_statement "if (piVar3 != (int *)0x0) {\n        (**(code **)(*piVar3 + 4))(piVar3);\n        piVar4 = *(int **)(this + 0x1e8);\n      }" if (parenthesized_expression "(piVar3 != (int *)0x0)" ( (binary_expression "piVar3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (**(code **)(*piVar3 + 4))(piVar3);\n        piVar4 = *(int **)(this + 0x1e8);\n      }" { (expression_statement "(**(code **)(*piVar3 + 4))(piVar3);" (call_expression "(**(code **)(*piVar3 + 4))(piVar3)" (parenthesized_expression "(**(code **)(*piVar3 + 4))" ( (pointer_expression "**(code **)(*piVar3 + 4)" * (pointer_expression "*(code **)(*piVar3 + 4)" * (cast_expression "(code **)(*piVar3 + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 4)" ( (binary_expression "*piVar3 + 4" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) )) (argument_list "(piVar3)" ( identifier ))) ;) (expression_statement "piVar4 = *(int **)(this + 0x1e8);" (assignment_expression "piVar4 = *(int **)(this + 0x1e8)" identifier = (pointer_expression "*(int **)(this + 0x1e8)" * (cast_expression "(int **)(this + 0x1e8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x1e8)" ( (binary_expression "this + 0x1e8" identifier + number_literal) ))))) ;) })) }) while (parenthesized_expression "(piVar4 != piVar6)" ( (binary_expression "piVar4 != piVar6" identifier != identifier) )) ;) (if_statement "if (*(int **)(this + 0x1e4) != piVar4) {\n      *(int **)(this + 0x1e8) = *(int **)(this + 0x1e4);\n    }" if (parenthesized_expression "(*(int **)(this + 0x1e4) != piVar4)" ( (binary_expression "*(int **)(this + 0x1e4) != piVar4" (pointer_expression "*(int **)(this + 0x1e4)" * (cast_expression "(int **)(this + 0x1e4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x1e4)" ( (binary_expression "this + 0x1e4" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n      *(int **)(this + 0x1e8) = *(int **)(this + 0x1e4);\n    }" { (expression_statement "*(int **)(this + 0x1e8) = *(int **)(this + 0x1e4);" (assignment_expression "*(int **)(this + 0x1e8) = *(int **)(this + 0x1e4)" (pointer_expression "*(int **)(this + 0x1e8)" * (cast_expression "(int **)(this + 0x1e8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x1e8)" ( (binary_expression "this + 0x1e8" identifier + number_literal) )))) = (pointer_expression "*(int **)(this + 0x1e4)" * (cast_expression "(int **)(this + 0x1e4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x1e4)" ( (binary_expression "this + 0x1e4" identifier + number_literal) ))))) ;) })) })) (expression_statement "piVar6 = *(int **)(this + 0x160);" (assignment_expression "piVar6 = *(int **)(this + 0x160)" identifier = (pointer_expression "*(int **)(this + 0x160)" * (cast_expression "(int **)(this + 0x160)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x160)" ( (binary_expression "this + 0x160" identifier + number_literal) ))))) ;) (expression_statement "piVar4 = *(int **)(this + 0x164);" (assignment_expression "piVar4 = *(int **)(this + 0x164)" identifier = (pointer_expression "*(int **)(this + 0x164)" * (cast_expression "(int **)(this + 0x164)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x164)" ( (binary_expression "this + 0x164" identifier + number_literal) ))))) ;) (if_statement "if (piVar6 != piVar4) {\n    do {\n      piVar3 = (int *)*piVar6;\n      piVar6 = piVar6 + 1;\n      if (piVar3 != (int *)0x0) {\n        (**(code **)(*piVar3 + 4))(piVar3);\n        piVar4 = *(int **)(this + 0x164);\n      }\n    } while (piVar4 != piVar6);\n    if (piVar4 != *(int **)(this + 0x160)) {\n      *(int **)(this + 0x164) = *(int **)(this + 0x160);\n    }\n  }" if (parenthesized_expression "(piVar6 != piVar4)" ( (binary_expression "piVar6 != piVar4" identifier != identifier) )) (compound_statement "{\n    do {\n      piVar3 = (int *)*piVar6;\n      piVar6 = piVar6 + 1;\n      if (piVar3 != (int *)0x0) {\n        (**(code **)(*piVar3 + 4))(piVar3);\n        piVar4 = *(int **)(this + 0x164);\n      }\n    } while (piVar4 != piVar6);\n    if (piVar4 != *(int **)(this + 0x160)) {\n      *(int **)(this + 0x164) = *(int **)(this + 0x160);\n    }\n  }" { (do_statement "do {\n      piVar3 = (int *)*piVar6;\n      piVar6 = piVar6 + 1;\n      if (piVar3 != (int *)0x0) {\n        (**(code **)(*piVar3 + 4))(piVar3);\n        piVar4 = *(int **)(this + 0x164);\n      }\n    } while (piVar4 != piVar6);" do (compound_statement "{\n      piVar3 = (int *)*piVar6;\n      piVar6 = piVar6 + 1;\n      if (piVar3 != (int *)0x0) {\n        (**(code **)(*piVar3 + 4))(piVar3);\n        piVar4 = *(int **)(this + 0x164);\n      }\n    }" { (expression_statement "piVar3 = (int *)*piVar6;" (assignment_expression "piVar3 = (int *)*piVar6" identifier = (cast_expression "(int *)*piVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar6" * identifier))) ;) (expression_statement "piVar6 = piVar6 + 1;" (assignment_expression "piVar6 = piVar6 + 1" identifier = (binary_expression "piVar6 + 1" identifier + number_literal)) ;) (if_statement "if (piVar3 != (int *)0x0) {\n        (**(code **)(*piVar3 + 4))(piVar3);\n        piVar4 = *(int **)(this + 0x164);\n      }" if (parenthesized_expression "(piVar3 != (int *)0x0)" ( (binary_expression "piVar3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (**(code **)(*piVar3 + 4))(piVar3);\n        piVar4 = *(int **)(this + 0x164);\n      }" { (expression_statement "(**(code **)(*piVar3 + 4))(piVar3);" (call_expression "(**(code **)(*piVar3 + 4))(piVar3)" (parenthesized_expression "(**(code **)(*piVar3 + 4))" ( (pointer_expression "**(code **)(*piVar3 + 4)" * (pointer_expression "*(code **)(*piVar3 + 4)" * (cast_expression "(code **)(*piVar3 + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 4)" ( (binary_expression "*piVar3 + 4" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) )) (argument_list "(piVar3)" ( identifier ))) ;) (expression_statement "piVar4 = *(int **)(this + 0x164);" (assignment_expression "piVar4 = *(int **)(this + 0x164)" identifier = (pointer_expression "*(int **)(this + 0x164)" * (cast_expression "(int **)(this + 0x164)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x164)" ( (binary_expression "this + 0x164" identifier + number_literal) ))))) ;) })) }) while (parenthesized_expression "(piVar4 != piVar6)" ( (binary_expression "piVar4 != piVar6" identifier != identifier) )) ;) (if_statement "if (piVar4 != *(int **)(this + 0x160)) {\n      *(int **)(this + 0x164) = *(int **)(this + 0x160);\n    }" if (parenthesized_expression "(piVar4 != *(int **)(this + 0x160))" ( (binary_expression "piVar4 != *(int **)(this + 0x160)" identifier != (pointer_expression "*(int **)(this + 0x160)" * (cast_expression "(int **)(this + 0x160)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x160)" ( (binary_expression "this + 0x160" identifier + number_literal) ))))) )) (compound_statement "{\n      *(int **)(this + 0x164) = *(int **)(this + 0x160);\n    }" { (expression_statement "*(int **)(this + 0x164) = *(int **)(this + 0x160);" (assignment_expression "*(int **)(this + 0x164) = *(int **)(this + 0x160)" (pointer_expression "*(int **)(this + 0x164)" * (cast_expression "(int **)(this + 0x164)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x164)" ( (binary_expression "this + 0x164" identifier + number_literal) )))) = (pointer_expression "*(int **)(this + 0x160)" * (cast_expression "(int **)(this + 0x160)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x160)" ( (binary_expression "this + 0x160" identifier + number_literal) ))))) ;) })) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */\n/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */\n/* WARNING: Struct "Output_section_headers": ignoring overlapping field "layout_" */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* WARNING: Struct "Output_reduced_debug_abbrev_section": ignoring overlapping field "data_" */\n/* WARNING: Struct "Output_reduced_debug_info_section": ignoring overlapping field "data_" */\n/* DWARF original prototype: void clean_up_after_relaxation(Layout * this) */\n\nvoid __thiscall gold::Layout::clean_up_after_relaxation(Layout *this)\n\n{\n  byte bVar1;\n  pointer ppOVar2;\n  Output_section *pOVar3;\n  Output_section_data *pOVar4;\n  Output_data *pOVar5;\n  pointer ppOVar6;\n  pointer ppOVar7;\n  pointer ppOVar8;\n  pointer ppOVar9;\n  \n  (*(code *)PTR_release_segments_00432e84)(&this->script_options_->script_sections_);\n  restore_segments(this,this->segment_states_);\n  ppOVar7 = (this->section_list_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_start;\n  if (ppOVar7 ==\n      (this->section_list_).\n      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.\n      _M_finish) {\n    ppOVar2 = (this->special_output_list_).\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_finish;\n  }\n  else {\n    do {\n      (*(code *)PTR_restore_states_00432e8c)(*ppOVar7);\n      pOVar3 = *ppOVar7;\n      if (*(int *)&pOVar3->field_0x98 << 0x12 < 0) {\n        (*(code *)PTR_adjust_section_offsets_00432e90)(pOVar3);\n        pOVar3 = *ppOVar7;\n      }\n      bVar1 = (pOVar3->super_Output_data).field_0x20;\n      ppOVar7 = ppOVar7 + 1;\n      (pOVar3->super_Output_data).field_0x20 = bVar1 & 0x5f;\n      if (-1 < *(int *)&(pOVar3->super_Output_data).field_0x20 << 3) {\n        (pOVar3->super_Output_data).field_0x20 = bVar1 & 0x1f;\n      }\n      (*(pOVar3->super_Output_data)._vptr_Output_data[0xf])(pOVar3);\n    } while ((this->section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_finish != ppOVar7);\n    ppOVar2 = (this->special_output_list_).\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_finish;\n  }\n  ppOVar8 = (this->special_output_list_).\n            super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n            _M_start;\n  if (ppOVar8 != ppOVar2) {\n    do {\n      pOVar5 = *ppOVar8;\n      ppOVar8 = ppOVar8 + 1;\n      bVar1 = pOVar5->field_0x20;\n      pOVar5->field_0x20 = bVar1 & 0x5f;\n      if (-1 < *(int *)&pOVar5->field_0x20 << 3) {\n        pOVar5->field_0x20 = bVar1 & 0x1f;\n      }\n      (*pOVar5->_vptr_Output_data[0xf])(pOVar5);\n    } while ((this->special_output_list_).\n             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n             _M_finish != ppOVar8);\n  }\n  ppOVar9 = (this->script_output_section_data_list_).\n            super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n            ._M_impl._M_start;\n  ppOVar6 = (this->script_output_section_data_list_).\n            super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n            ._M_impl._M_finish;\n  if (ppOVar9 != ppOVar6) {\n    do {\n      pOVar4 = *ppOVar9;\n      ppOVar9 = ppOVar9 + 1;\n      if (pOVar4 != (Output_section_data *)0x0) {\n        (*(pOVar4->super_Output_data)._vptr_Output_data[1])(pOVar4);\n        ppOVar6 = (this->script_output_section_data_list_).\n                  super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                  ._M_impl._M_finish;\n      }\n    } while (ppOVar6 != ppOVar9);\n    ppOVar9 = (this->script_output_section_data_list_).\n              super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n              ._M_impl._M_start;\n    if (ppOVar9 != ppOVar6) {\n      (this->script_output_section_data_list_).\n      super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>.\n      _M_impl._M_finish = ppOVar9;\n    }\n  }\n  ppOVar8 = (this->relax_output_list_).\n            super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n            _M_start;\n  ppOVar2 = (this->relax_output_list_).\n            super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n            _M_finish;\n  if (ppOVar8 != ppOVar2) {\n    do {\n      pOVar5 = *ppOVar8;\n      ppOVar8 = ppOVar8 + 1;\n      if (pOVar5 != (Output_data *)0x0) {\n        (*pOVar5->_vptr_Output_data[1])(pOVar5);\n        ppOVar2 = (this->relax_output_list_).\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_finish;\n      }\n    } while (ppOVar2 != ppOVar8);\n    ppOVar8 = (this->relax_output_list_).\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_start;\n    if (ppOVar2 != ppOVar8) {\n      (this->relax_output_list_).\n      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl._M_finish\n           = ppOVar8;\n    }\n  }\n  return;\n}\n\n" comment comment comment comment comment comment comment (function_definition "void __thiscall gold::Layout::clean_up_after_relaxation(Layout *this)\n\n{\n  byte bVar1;\n  pointer ppOVar2;\n  Output_section *pOVar3;\n  Output_section_data *pOVar4;\n  Output_data *pOVar5;\n  pointer ppOVar6;\n  pointer ppOVar7;\n  pointer ppOVar8;\n  pointer ppOVar9;\n  \n  (*(code *)PTR_release_segments_00432e84)(&this->script_options_->script_sections_);\n  restore_segments(this,this->segment_states_);\n  ppOVar7 = (this->section_list_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_start;\n  if (ppOVar7 ==\n      (this->section_list_).\n      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.\n      _M_finish) {\n    ppOVar2 = (this->special_output_list_).\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_finish;\n  }\n  else {\n    do {\n      (*(code *)PTR_restore_states_00432e8c)(*ppOVar7);\n      pOVar3 = *ppOVar7;\n      if (*(int *)&pOVar3->field_0x98 << 0x12 < 0) {\n        (*(code *)PTR_adjust_section_offsets_00432e90)(pOVar3);\n        pOVar3 = *ppOVar7;\n      }\n      bVar1 = (pOVar3->super_Output_data).field_0x20;\n      ppOVar7 = ppOVar7 + 1;\n      (pOVar3->super_Output_data).field_0x20 = bVar1 & 0x5f;\n      if (-1 < *(int *)&(pOVar3->super_Output_data).field_0x20 << 3) {\n        (pOVar3->super_Output_data).field_0x20 = bVar1 & 0x1f;\n      }\n      (*(pOVar3->super_Output_data)._vptr_Output_data[0xf])(pOVar3);\n    } while ((this->section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_finish != ppOVar7);\n    ppOVar2 = (this->special_output_list_).\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_finish;\n  }\n  ppOVar8 = (this->special_output_list_).\n            super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n            _M_start;\n  if (ppOVar8 != ppOVar2) {\n    do {\n      pOVar5 = *ppOVar8;\n      ppOVar8 = ppOVar8 + 1;\n      bVar1 = pOVar5->field_0x20;\n      pOVar5->field_0x20 = bVar1 & 0x5f;\n      if (-1 < *(int *)&pOVar5->field_0x20 << 3) {\n        pOVar5->field_0x20 = bVar1 & 0x1f;\n      }\n      (*pOVar5->_vptr_Output_data[0xf])(pOVar5);\n    } while ((this->special_output_list_).\n             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n             _M_finish != ppOVar8);\n  }\n  ppOVar9 = (this->script_output_section_data_list_).\n            super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n            ._M_impl._M_start;\n  ppOVar6 = (this->script_output_section_data_list_).\n            super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n            ._M_impl._M_finish;\n  if (ppOVar9 != ppOVar6) {\n    do {\n      pOVar4 = *ppOVar9;\n      ppOVar9 = ppOVar9 + 1;\n      if (pOVar4 != (Output_section_data *)0x0) {\n        (*(pOVar4->super_Output_data)._vptr_Output_data[1])(pOVar4);\n        ppOVar6 = (this->script_output_section_data_list_).\n                  super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                  ._M_impl._M_finish;\n      }\n    } while (ppOVar6 != ppOVar9);\n    ppOVar9 = (this->script_output_section_data_list_).\n              super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n              ._M_impl._M_start;\n    if (ppOVar9 != ppOVar6) {\n      (this->script_output_section_data_list_).\n      super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>.\n      _M_impl._M_finish = ppOVar9;\n    }\n  }\n  ppOVar8 = (this->relax_output_list_).\n            super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n            _M_start;\n  ppOVar2 = (this->relax_output_list_).\n            super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n            _M_finish;\n  if (ppOVar8 != ppOVar2) {\n    do {\n      pOVar5 = *ppOVar8;\n      ppOVar8 = ppOVar8 + 1;\n      if (pOVar5 != (Output_data *)0x0) {\n        (*pOVar5->_vptr_Output_data[1])(pOVar5);\n        ppOVar2 = (this->relax_output_list_).\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_finish;\n      }\n    } while (ppOVar2 != ppOVar8);\n    ppOVar8 = (this->relax_output_list_).\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_start;\n    if (ppOVar2 != ppOVar8) {\n      (this->relax_output_list_).\n      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl._M_finish\n           = ppOVar8;\n    }\n  }\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Layout::" identifier : : identifier : :) (function_declarator "clean_up_after_relaxation(Layout *this)" identifier (parameter_list "(Layout *this)" ( (parameter_declaration "Layout *this" type_identifier (pointer_declarator "*this" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  pointer ppOVar2;\n  Output_section *pOVar3;\n  Output_section_data *pOVar4;\n  Output_data *pOVar5;\n  pointer ppOVar6;\n  pointer ppOVar7;\n  pointer ppOVar8;\n  pointer ppOVar9;\n  \n  (*(code *)PTR_release_segments_00432e84)(&this->script_options_->script_sections_);\n  restore_segments(this,this->segment_states_);\n  ppOVar7 = (this->section_list_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_start;\n  if (ppOVar7 ==\n      (this->section_list_).\n      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.\n      _M_finish) {\n    ppOVar2 = (this->special_output_list_).\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_finish;\n  }\n  else {\n    do {\n      (*(code *)PTR_restore_states_00432e8c)(*ppOVar7);\n      pOVar3 = *ppOVar7;\n      if (*(int *)&pOVar3->field_0x98 << 0x12 < 0) {\n        (*(code *)PTR_adjust_section_offsets_00432e90)(pOVar3);\n        pOVar3 = *ppOVar7;\n      }\n      bVar1 = (pOVar3->super_Output_data).field_0x20;\n      ppOVar7 = ppOVar7 + 1;\n      (pOVar3->super_Output_data).field_0x20 = bVar1 & 0x5f;\n      if (-1 < *(int *)&(pOVar3->super_Output_data).field_0x20 << 3) {\n        (pOVar3->super_Output_data).field_0x20 = bVar1 & 0x1f;\n      }\n      (*(pOVar3->super_Output_data)._vptr_Output_data[0xf])(pOVar3);\n    } while ((this->section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_finish != ppOVar7);\n    ppOVar2 = (this->special_output_list_).\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_finish;\n  }\n  ppOVar8 = (this->special_output_list_).\n            super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n            _M_start;\n  if (ppOVar8 != ppOVar2) {\n    do {\n      pOVar5 = *ppOVar8;\n      ppOVar8 = ppOVar8 + 1;\n      bVar1 = pOVar5->field_0x20;\n      pOVar5->field_0x20 = bVar1 & 0x5f;\n      if (-1 < *(int *)&pOVar5->field_0x20 << 3) {\n        pOVar5->field_0x20 = bVar1 & 0x1f;\n      }\n      (*pOVar5->_vptr_Output_data[0xf])(pOVar5);\n    } while ((this->special_output_list_).\n             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n             _M_finish != ppOVar8);\n  }\n  ppOVar9 = (this->script_output_section_data_list_).\n            super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n            ._M_impl._M_start;\n  ppOVar6 = (this->script_output_section_data_list_).\n            super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n            ._M_impl._M_finish;\n  if (ppOVar9 != ppOVar6) {\n    do {\n      pOVar4 = *ppOVar9;\n      ppOVar9 = ppOVar9 + 1;\n      if (pOVar4 != (Output_section_data *)0x0) {\n        (*(pOVar4->super_Output_data)._vptr_Output_data[1])(pOVar4);\n        ppOVar6 = (this->script_output_section_data_list_).\n                  super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                  ._M_impl._M_finish;\n      }\n    } while (ppOVar6 != ppOVar9);\n    ppOVar9 = (this->script_output_section_data_list_).\n              super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n              ._M_impl._M_start;\n    if (ppOVar9 != ppOVar6) {\n      (this->script_output_section_data_list_).\n      super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>.\n      _M_impl._M_finish = ppOVar9;\n    }\n  }\n  ppOVar8 = (this->relax_output_list_).\n            super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n            _M_start;\n  ppOVar2 = (this->relax_output_list_).\n            super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n            _M_finish;\n  if (ppOVar8 != ppOVar2) {\n    do {\n      pOVar5 = *ppOVar8;\n      ppOVar8 = ppOVar8 + 1;\n      if (pOVar5 != (Output_data *)0x0) {\n        (*pOVar5->_vptr_Output_data[1])(pOVar5);\n        ppOVar2 = (this->relax_output_list_).\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_finish;\n      }\n    } while (ppOVar2 != ppOVar8);\n    ppOVar8 = (this->relax_output_list_).\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_start;\n    if (ppOVar2 != ppOVar8) {\n      (this->relax_output_list_).\n      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl._M_finish\n           = ppOVar8;\n    }\n  }\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "pointer ppOVar2;" type_identifier identifier ;) (declaration "Output_section *pOVar3;" type_identifier (pointer_declarator "*pOVar3" * identifier) ;) (declaration "Output_section_data *pOVar4;" type_identifier (pointer_declarator "*pOVar4" * identifier) ;) (declaration "Output_data *pOVar5;" type_identifier (pointer_declarator "*pOVar5" * identifier) ;) (declaration "pointer ppOVar6;" type_identifier identifier ;) (declaration "pointer ppOVar7;" type_identifier identifier ;) (declaration "pointer ppOVar8;" type_identifier identifier ;) (declaration "pointer ppOVar9;" type_identifier identifier ;) (expression_statement "(*(code *)PTR_release_segments_00432e84)(&this->script_options_->script_sections_);" (call_expression "(*(code *)PTR_release_segments_00432e84)(&this->script_options_->script_sections_)" (parenthesized_expression "(*(code *)PTR_release_segments_00432e84)" ( (pointer_expression "*(code *)PTR_release_segments_00432e84" * (cast_expression "(code *)PTR_release_segments_00432e84" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&this->script_options_->script_sections_)" ( (pointer_expression "&this->script_options_->script_sections_" & (field_expression "this->script_options_->script_sections_" (field_expression "this->script_options_" identifier -> field_identifier) -> field_identifier)) ))) ;) (expression_statement "restore_segments(this,this->segment_states_);" (call_expression "restore_segments(this,this->segment_states_)" identifier (argument_list "(this,this->segment_states_)" ( identifier , (field_expression "this->segment_states_" identifier -> field_identifier) ))) ;) (expression_statement "ppOVar7 = (this->section_list_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_start;" (field_expression "ppOVar7 = (this->section_list_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_start" (field_expression "ppOVar7 = (this->section_list_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl" (binary_expression "ppOVar7 = (this->section_list_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "ppOVar7 = (this->section_list_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "ppOVar7 = (this->section_list_).\n            super__Vector_base<gold::Output_section*,_std" (assignment_expression "ppOVar7 = (this->section_list_).\n            super__Vector_base<gold" identifier = (binary_expression "(this->section_list_).\n            super__Vector_base<gold" (field_expression "(this->section_list_).\n            super__Vector_base" (parenthesized_expression "(this->section_list_)" ( (field_expression "this->section_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if (ppOVar7 ==\n      (this->section_list_).\n      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.\n      _M_finish) {\n    ppOVar2 = (this->special_output_list_).\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_finish;\n  }\n  else {\n    do {\n      (*(code *)PTR_restore_states_00432e8c)(*ppOVar7);\n      pOVar3 = *ppOVar7;\n      if (*(int *)&pOVar3->field_0x98 << 0x12 < 0) {\n        (*(code *)PTR_adjust_section_offsets_00432e90)(pOVar3);\n        pOVar3 = *ppOVar7;\n      }\n      bVar1 = (pOVar3->super_Output_data).field_0x20;\n      ppOVar7 = ppOVar7 + 1;\n      (pOVar3->super_Output_data).field_0x20 = bVar1 & 0x5f;\n      if (-1 < *(int *)&(pOVar3->super_Output_data).field_0x20 << 3) {\n        (pOVar3->super_Output_data).field_0x20 = bVar1 & 0x1f;\n      }\n      (*(pOVar3->super_Output_data)._vptr_Output_data[0xf])(pOVar3);\n    } while ((this->section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_finish != ppOVar7);\n    ppOVar2 = (this->special_output_list_).\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_finish;\n  }" if (parenthesized_expression "(ppOVar7 ==\n      (this->section_list_).\n      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.\n      _M_finish)" ( (field_expression "ppOVar7 ==\n      (this->section_list_).\n      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.\n      _M_finish" (field_expression "ppOVar7 ==\n      (this->section_list_).\n      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl" (binary_expression "ppOVar7 ==\n      (this->section_list_).\n      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "ppOVar7 ==\n      (this->section_list_).\n      super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "ppOVar7 ==\n      (this->section_list_).\n      super__Vector_base<gold::Output_section*,_std" (binary_expression "ppOVar7 ==\n      (this->section_list_).\n      super__Vector_base<gold" identifier == (binary_expression "(this->section_list_).\n      super__Vector_base<gold" (field_expression "(this->section_list_).\n      super__Vector_base" (parenthesized_expression "(this->section_list_)" ( (field_expression "this->section_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) (compound_statement "{\n    ppOVar2 = (this->special_output_list_).\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_finish;\n  }" { (expression_statement "ppOVar2 = (this->special_output_list_).\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_finish;" (field_expression "ppOVar2 = (this->special_output_list_).\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_finish" (field_expression "ppOVar2 = (this->special_output_list_).\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl" (binary_expression "ppOVar2 = (this->special_output_list_).\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "ppOVar2 = (this->special_output_list_).\n              super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "ppOVar2 = (this->special_output_list_).\n              super__Vector_base<gold::Output_data*,_std" (assignment_expression "ppOVar2 = (this->special_output_list_).\n              super__Vector_base<gold" identifier = (binary_expression "(this->special_output_list_).\n              super__Vector_base<gold" (field_expression "(this->special_output_list_).\n              super__Vector_base" (parenthesized_expression "(this->special_output_list_)" ( (field_expression "this->special_output_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) }) (else_clause "else {\n    do {\n      (*(code *)PTR_restore_states_00432e8c)(*ppOVar7);\n      pOVar3 = *ppOVar7;\n      if (*(int *)&pOVar3->field_0x98 << 0x12 < 0) {\n        (*(code *)PTR_adjust_section_offsets_00432e90)(pOVar3);\n        pOVar3 = *ppOVar7;\n      }\n      bVar1 = (pOVar3->super_Output_data).field_0x20;\n      ppOVar7 = ppOVar7 + 1;\n      (pOVar3->super_Output_data).field_0x20 = bVar1 & 0x5f;\n      if (-1 < *(int *)&(pOVar3->super_Output_data).field_0x20 << 3) {\n        (pOVar3->super_Output_data).field_0x20 = bVar1 & 0x1f;\n      }\n      (*(pOVar3->super_Output_data)._vptr_Output_data[0xf])(pOVar3);\n    } while ((this->section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_finish != ppOVar7);\n    ppOVar2 = (this->special_output_list_).\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_finish;\n  }" else (compound_statement "{\n    do {\n      (*(code *)PTR_restore_states_00432e8c)(*ppOVar7);\n      pOVar3 = *ppOVar7;\n      if (*(int *)&pOVar3->field_0x98 << 0x12 < 0) {\n        (*(code *)PTR_adjust_section_offsets_00432e90)(pOVar3);\n        pOVar3 = *ppOVar7;\n      }\n      bVar1 = (pOVar3->super_Output_data).field_0x20;\n      ppOVar7 = ppOVar7 + 1;\n      (pOVar3->super_Output_data).field_0x20 = bVar1 & 0x5f;\n      if (-1 < *(int *)&(pOVar3->super_Output_data).field_0x20 << 3) {\n        (pOVar3->super_Output_data).field_0x20 = bVar1 & 0x1f;\n      }\n      (*(pOVar3->super_Output_data)._vptr_Output_data[0xf])(pOVar3);\n    } while ((this->section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_finish != ppOVar7);\n    ppOVar2 = (this->special_output_list_).\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_finish;\n  }" { (do_statement "do {\n      (*(code *)PTR_restore_states_00432e8c)(*ppOVar7);\n      pOVar3 = *ppOVar7;\n      if (*(int *)&pOVar3->field_0x98 << 0x12 < 0) {\n        (*(code *)PTR_adjust_section_offsets_00432e90)(pOVar3);\n        pOVar3 = *ppOVar7;\n      }\n      bVar1 = (pOVar3->super_Output_data).field_0x20;\n      ppOVar7 = ppOVar7 + 1;\n      (pOVar3->super_Output_data).field_0x20 = bVar1 & 0x5f;\n      if (-1 < *(int *)&(pOVar3->super_Output_data).field_0x20 << 3) {\n        (pOVar3->super_Output_data).field_0x20 = bVar1 & 0x1f;\n      }\n      (*(pOVar3->super_Output_data)._vptr_Output_data[0xf])(pOVar3);\n    } while ((this->section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_finish != ppOVar7);" do (compound_statement "{\n      (*(code *)PTR_restore_states_00432e8c)(*ppOVar7);\n      pOVar3 = *ppOVar7;\n      if (*(int *)&pOVar3->field_0x98 << 0x12 < 0) {\n        (*(code *)PTR_adjust_section_offsets_00432e90)(pOVar3);\n        pOVar3 = *ppOVar7;\n      }\n      bVar1 = (pOVar3->super_Output_data).field_0x20;\n      ppOVar7 = ppOVar7 + 1;\n      (pOVar3->super_Output_data).field_0x20 = bVar1 & 0x5f;\n      if (-1 < *(int *)&(pOVar3->super_Output_data).field_0x20 << 3) {\n        (pOVar3->super_Output_data).field_0x20 = bVar1 & 0x1f;\n      }\n      (*(pOVar3->super_Output_data)._vptr_Output_data[0xf])(pOVar3);\n    }" { (expression_statement "(*(code *)PTR_restore_states_00432e8c)(*ppOVar7);" (call_expression "(*(code *)PTR_restore_states_00432e8c)(*ppOVar7)" (parenthesized_expression "(*(code *)PTR_restore_states_00432e8c)" ( (pointer_expression "*(code *)PTR_restore_states_00432e8c" * (cast_expression "(code *)PTR_restore_states_00432e8c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*ppOVar7)" ( (pointer_expression "*ppOVar7" * identifier) ))) ;) (expression_statement "pOVar3 = *ppOVar7;" (assignment_expression "pOVar3 = *ppOVar7" identifier = (pointer_expression "*ppOVar7" * identifier)) ;) (if_statement "if (*(int *)&pOVar3->field_0x98 << 0x12 < 0) {\n        (*(code *)PTR_adjust_section_offsets_00432e90)(pOVar3);\n        pOVar3 = *ppOVar7;\n      }" if (parenthesized_expression "(*(int *)&pOVar3->field_0x98 << 0x12 < 0)" ( (binary_expression "*(int *)&pOVar3->field_0x98 << 0x12 < 0" (binary_expression "*(int *)&pOVar3->field_0x98 << 0x12" (pointer_expression "*(int *)&pOVar3->field_0x98" * (cast_expression "(int *)&pOVar3->field_0x98" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar3->field_0x98" & (field_expression "pOVar3->field_0x98" identifier -> field_identifier)))) << number_literal) < number_literal) )) (compound_statement "{\n        (*(code *)PTR_adjust_section_offsets_00432e90)(pOVar3);\n        pOVar3 = *ppOVar7;\n      }" { (expression_statement "(*(code *)PTR_adjust_section_offsets_00432e90)(pOVar3);" (call_expression "(*(code *)PTR_adjust_section_offsets_00432e90)(pOVar3)" (parenthesized_expression "(*(code *)PTR_adjust_section_offsets_00432e90)" ( (pointer_expression "*(code *)PTR_adjust_section_offsets_00432e90" * (cast_expression "(code *)PTR_adjust_section_offsets_00432e90" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pOVar3)" ( identifier ))) ;) (expression_statement "pOVar3 = *ppOVar7;" (assignment_expression "pOVar3 = *ppOVar7" identifier = (pointer_expression "*ppOVar7" * identifier)) ;) })) (expression_statement "bVar1 = (pOVar3->super_Output_data).field_0x20;" (assignment_expression "bVar1 = (pOVar3->super_Output_data).field_0x20" identifier = (field_expression "(pOVar3->super_Output_data).field_0x20" (parenthesized_expression "(pOVar3->super_Output_data)" ( (field_expression "pOVar3->super_Output_data" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "ppOVar7 = ppOVar7 + 1;" (assignment_expression "ppOVar7 = ppOVar7 + 1" identifier = (binary_expression "ppOVar7 + 1" identifier + number_literal)) ;) (expression_statement "(pOVar3->super_Output_data).field_0x20 = bVar1 & 0x5f;" (assignment_expression "(pOVar3->super_Output_data).field_0x20 = bVar1 & 0x5f" (field_expression "(pOVar3->super_Output_data).field_0x20" (parenthesized_expression "(pOVar3->super_Output_data)" ( (field_expression "pOVar3->super_Output_data" identifier -> field_identifier) )) . field_identifier) = (binary_expression "bVar1 & 0x5f" identifier & number_literal)) ;) (if_statement "if (-1 < *(int *)&(pOVar3->super_Output_data).field_0x20 << 3) {\n        (pOVar3->super_Output_data).field_0x20 = bVar1 & 0x1f;\n      }" if (parenthesized_expression "(-1 < *(int *)&(pOVar3->super_Output_data).field_0x20 << 3)" ( (binary_expression "-1 < *(int *)&(pOVar3->super_Output_data).field_0x20 << 3" number_literal < (binary_expression "*(int *)&(pOVar3->super_Output_data).field_0x20 << 3" (pointer_expression "*(int *)&(pOVar3->super_Output_data).field_0x20" * (cast_expression "(int *)&(pOVar3->super_Output_data).field_0x20" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar3->super_Output_data).field_0x20" & (field_expression "(pOVar3->super_Output_data).field_0x20" (parenthesized_expression "(pOVar3->super_Output_data)" ( (field_expression "pOVar3->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) << number_literal)) )) (compound_statement "{\n        (pOVar3->super_Output_data).field_0x20 = bVar1 & 0x1f;\n      }" { (expression_statement "(pOVar3->super_Output_data).field_0x20 = bVar1 & 0x1f;" (assignment_expression "(pOVar3->super_Output_data).field_0x20 = bVar1 & 0x1f" (field_expression "(pOVar3->super_Output_data).field_0x20" (parenthesized_expression "(pOVar3->super_Output_data)" ( (field_expression "pOVar3->super_Output_data" identifier -> field_identifier) )) . field_identifier) = (binary_expression "bVar1 & 0x1f" identifier & number_literal)) ;) })) (expression_statement "(*(pOVar3->super_Output_data)._vptr_Output_data[0xf])(pOVar3);" (call_expression "(*(pOVar3->super_Output_data)._vptr_Output_data[0xf])(pOVar3)" (parenthesized_expression "(*(pOVar3->super_Output_data)._vptr_Output_data[0xf])" ( (pointer_expression "*(pOVar3->super_Output_data)._vptr_Output_data[0xf]" * (subscript_expression "(pOVar3->super_Output_data)._vptr_Output_data[0xf]" (field_expression "(pOVar3->super_Output_data)._vptr_Output_data" (parenthesized_expression "(pOVar3->super_Output_data)" ( (field_expression "pOVar3->super_Output_data" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) )) (argument_list "(pOVar3)" ( identifier ))) ;) }) while (parenthesized_expression "((this->section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_finish != ppOVar7)" ( (binary_expression "(this->section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_finish != ppOVar7" (field_expression "(this->section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_finish" (field_expression "(this->section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl" (binary_expression "(this->section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "(this->section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "(this->section_list_).\n             super__Vector_base<gold::Output_section*,_std" (binary_expression "(this->section_list_).\n             super__Vector_base<gold" (field_expression "(this->section_list_).\n             super__Vector_base" (parenthesized_expression "(this->section_list_)" ( (field_expression "this->section_list_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) != identifier) )) ;) (expression_statement "ppOVar2 = (this->special_output_list_).\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_finish;" (field_expression "ppOVar2 = (this->special_output_list_).\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_finish" (field_expression "ppOVar2 = (this->special_output_list_).\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl" (binary_expression "ppOVar2 = (this->special_output_list_).\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "ppOVar2 = (this->special_output_list_).\n              super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "ppOVar2 = (this->special_output_list_).\n              super__Vector_base<gold::Output_data*,_std" (assignment_expression "ppOVar2 = (this->special_output_list_).\n              super__Vector_base<gold" identifier = (binary_expression "(this->special_output_list_).\n              super__Vector_base<gold" (field_expression "(this->special_output_list_).\n              super__Vector_base" (parenthesized_expression "(this->special_output_list_)" ( (field_expression "this->special_output_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) }))) (expression_statement "ppOVar8 = (this->special_output_list_).\n            super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n            _M_start;" (field_expression "ppOVar8 = (this->special_output_list_).\n            super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n            _M_start" (field_expression "ppOVar8 = (this->special_output_list_).\n            super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl" (binary_expression "ppOVar8 = (this->special_output_list_).\n            super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "ppOVar8 = (this->special_output_list_).\n            super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "ppOVar8 = (this->special_output_list_).\n            super__Vector_base<gold::Output_data*,_std" (assignment_expression "ppOVar8 = (this->special_output_list_).\n            super__Vector_base<gold" identifier = (binary_expression "(this->special_output_list_).\n            super__Vector_base<gold" (field_expression "(this->special_output_list_).\n            super__Vector_base" (parenthesized_expression "(this->special_output_list_)" ( (field_expression "this->special_output_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if (ppOVar8 != ppOVar2) {\n    do {\n      pOVar5 = *ppOVar8;\n      ppOVar8 = ppOVar8 + 1;\n      bVar1 = pOVar5->field_0x20;\n      pOVar5->field_0x20 = bVar1 & 0x5f;\n      if (-1 < *(int *)&pOVar5->field_0x20 << 3) {\n        pOVar5->field_0x20 = bVar1 & 0x1f;\n      }\n      (*pOVar5->_vptr_Output_data[0xf])(pOVar5);\n    } while ((this->special_output_list_).\n             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n             _M_finish != ppOVar8);\n  }" if (parenthesized_expression "(ppOVar8 != ppOVar2)" ( (binary_expression "ppOVar8 != ppOVar2" identifier != identifier) )) (compound_statement "{\n    do {\n      pOVar5 = *ppOVar8;\n      ppOVar8 = ppOVar8 + 1;\n      bVar1 = pOVar5->field_0x20;\n      pOVar5->field_0x20 = bVar1 & 0x5f;\n      if (-1 < *(int *)&pOVar5->field_0x20 << 3) {\n        pOVar5->field_0x20 = bVar1 & 0x1f;\n      }\n      (*pOVar5->_vptr_Output_data[0xf])(pOVar5);\n    } while ((this->special_output_list_).\n             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n             _M_finish != ppOVar8);\n  }" { (do_statement "do {\n      pOVar5 = *ppOVar8;\n      ppOVar8 = ppOVar8 + 1;\n      bVar1 = pOVar5->field_0x20;\n      pOVar5->field_0x20 = bVar1 & 0x5f;\n      if (-1 < *(int *)&pOVar5->field_0x20 << 3) {\n        pOVar5->field_0x20 = bVar1 & 0x1f;\n      }\n      (*pOVar5->_vptr_Output_data[0xf])(pOVar5);\n    } while ((this->special_output_list_).\n             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n             _M_finish != ppOVar8);" do (compound_statement "{\n      pOVar5 = *ppOVar8;\n      ppOVar8 = ppOVar8 + 1;\n      bVar1 = pOVar5->field_0x20;\n      pOVar5->field_0x20 = bVar1 & 0x5f;\n      if (-1 < *(int *)&pOVar5->field_0x20 << 3) {\n        pOVar5->field_0x20 = bVar1 & 0x1f;\n      }\n      (*pOVar5->_vptr_Output_data[0xf])(pOVar5);\n    }" { (expression_statement "pOVar5 = *ppOVar8;" (assignment_expression "pOVar5 = *ppOVar8" identifier = (pointer_expression "*ppOVar8" * identifier)) ;) (expression_statement "ppOVar8 = ppOVar8 + 1;" (assignment_expression "ppOVar8 = ppOVar8 + 1" identifier = (binary_expression "ppOVar8 + 1" identifier + number_literal)) ;) (expression_statement "bVar1 = pOVar5->field_0x20;" (assignment_expression "bVar1 = pOVar5->field_0x20" identifier = (field_expression "pOVar5->field_0x20" identifier -> field_identifier)) ;) (expression_statement "pOVar5->field_0x20 = bVar1 & 0x5f;" (assignment_expression "pOVar5->field_0x20 = bVar1 & 0x5f" (field_expression "pOVar5->field_0x20" identifier -> field_identifier) = (binary_expression "bVar1 & 0x5f" identifier & number_literal)) ;) (if_statement "if (-1 < *(int *)&pOVar5->field_0x20 << 3) {\n        pOVar5->field_0x20 = bVar1 & 0x1f;\n      }" if (parenthesized_expression "(-1 < *(int *)&pOVar5->field_0x20 << 3)" ( (binary_expression "-1 < *(int *)&pOVar5->field_0x20 << 3" number_literal < (binary_expression "*(int *)&pOVar5->field_0x20 << 3" (pointer_expression "*(int *)&pOVar5->field_0x20" * (cast_expression "(int *)&pOVar5->field_0x20" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar5->field_0x20" & (field_expression "pOVar5->field_0x20" identifier -> field_identifier)))) << number_literal)) )) (compound_statement "{\n        pOVar5->field_0x20 = bVar1 & 0x1f;\n      }" { (expression_statement "pOVar5->field_0x20 = bVar1 & 0x1f;" (assignment_expression "pOVar5->field_0x20 = bVar1 & 0x1f" (field_expression "pOVar5->field_0x20" identifier -> field_identifier) = (binary_expression "bVar1 & 0x1f" identifier & number_literal)) ;) })) (expression_statement "(*pOVar5->_vptr_Output_data[0xf])(pOVar5);" (call_expression "(*pOVar5->_vptr_Output_data[0xf])(pOVar5)" (parenthesized_expression "(*pOVar5->_vptr_Output_data[0xf])" ( (pointer_expression "*pOVar5->_vptr_Output_data[0xf]" * (subscript_expression "pOVar5->_vptr_Output_data[0xf]" (field_expression "pOVar5->_vptr_Output_data" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(pOVar5)" ( identifier ))) ;) }) while (parenthesized_expression "((this->special_output_list_).\n             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n             _M_finish != ppOVar8)" ( (binary_expression "(this->special_output_list_).\n             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n             _M_finish != ppOVar8" (field_expression "(this->special_output_list_).\n             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n             _M_finish" (field_expression "(this->special_output_list_).\n             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl" (binary_expression "(this->special_output_list_).\n             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "(this->special_output_list_).\n             super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "(this->special_output_list_).\n             super__Vector_base<gold::Output_data*,_std" (binary_expression "(this->special_output_list_).\n             super__Vector_base<gold" (field_expression "(this->special_output_list_).\n             super__Vector_base" (parenthesized_expression "(this->special_output_list_)" ( (field_expression "this->special_output_list_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) != identifier) )) ;) })) (expression_statement "ppOVar9 = (this->script_output_section_data_list_).\n            super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n            ._M_impl._M_start;" (field_expression "ppOVar9 = (this->script_output_section_data_list_).\n            super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n            ._M_impl._M_start" (field_expression "ppOVar9 = (this->script_output_section_data_list_).\n            super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n            ._M_impl" (binary_expression "ppOVar9 = (this->script_output_section_data_list_).\n            super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_" (binary_expression "ppOVar9 = (this->script_output_section_data_list_).\n            super__Vector_base<gold::Output_section_data*,_std::allocator<gold" (binary_expression "ppOVar9 = (this->script_output_section_data_list_).\n            super__Vector_base<gold::Output_section_data*,_std" (assignment_expression "ppOVar9 = (this->script_output_section_data_list_).\n            super__Vector_base<gold" identifier = (binary_expression "(this->script_output_section_data_list_).\n            super__Vector_base<gold" (field_expression "(this->script_output_section_data_list_).\n            super__Vector_base" (parenthesized_expression "(this->script_output_section_data_list_)" ( (field_expression "this->script_output_section_data_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_section_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "ppOVar6 = (this->script_output_section_data_list_).\n            super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n            ._M_impl._M_finish;" (field_expression "ppOVar6 = (this->script_output_section_data_list_).\n            super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n            ._M_impl._M_finish" (field_expression "ppOVar6 = (this->script_output_section_data_list_).\n            super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n            ._M_impl" (binary_expression "ppOVar6 = (this->script_output_section_data_list_).\n            super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_" (binary_expression "ppOVar6 = (this->script_output_section_data_list_).\n            super__Vector_base<gold::Output_section_data*,_std::allocator<gold" (binary_expression "ppOVar6 = (this->script_output_section_data_list_).\n            super__Vector_base<gold::Output_section_data*,_std" (assignment_expression "ppOVar6 = (this->script_output_section_data_list_).\n            super__Vector_base<gold" identifier = (binary_expression "(this->script_output_section_data_list_).\n            super__Vector_base<gold" (field_expression "(this->script_output_section_data_list_).\n            super__Vector_base" (parenthesized_expression "(this->script_output_section_data_list_)" ( (field_expression "this->script_output_section_data_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_section_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if (ppOVar9 != ppOVar6) {\n    do {\n      pOVar4 = *ppOVar9;\n      ppOVar9 = ppOVar9 + 1;\n      if (pOVar4 != (Output_section_data *)0x0) {\n        (*(pOVar4->super_Output_data)._vptr_Output_data[1])(pOVar4);\n        ppOVar6 = (this->script_output_section_data_list_).\n                  super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                  ._M_impl._M_finish;\n      }\n    } while (ppOVar6 != ppOVar9);\n    ppOVar9 = (this->script_output_section_data_list_).\n              super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n              ._M_impl._M_start;\n    if (ppOVar9 != ppOVar6) {\n      (this->script_output_section_data_list_).\n      super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>.\n      _M_impl._M_finish = ppOVar9;\n    }\n  }" if (parenthesized_expression "(ppOVar9 != ppOVar6)" ( (binary_expression "ppOVar9 != ppOVar6" identifier != identifier) )) (compound_statement "{\n    do {\n      pOVar4 = *ppOVar9;\n      ppOVar9 = ppOVar9 + 1;\n      if (pOVar4 != (Output_section_data *)0x0) {\n        (*(pOVar4->super_Output_data)._vptr_Output_data[1])(pOVar4);\n        ppOVar6 = (this->script_output_section_data_list_).\n                  super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                  ._M_impl._M_finish;\n      }\n    } while (ppOVar6 != ppOVar9);\n    ppOVar9 = (this->script_output_section_data_list_).\n              super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n              ._M_impl._M_start;\n    if (ppOVar9 != ppOVar6) {\n      (this->script_output_section_data_list_).\n      super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>.\n      _M_impl._M_finish = ppOVar9;\n    }\n  }" { (do_statement "do {\n      pOVar4 = *ppOVar9;\n      ppOVar9 = ppOVar9 + 1;\n      if (pOVar4 != (Output_section_data *)0x0) {\n        (*(pOVar4->super_Output_data)._vptr_Output_data[1])(pOVar4);\n        ppOVar6 = (this->script_output_section_data_list_).\n                  super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                  ._M_impl._M_finish;\n      }\n    } while (ppOVar6 != ppOVar9);" do (compound_statement "{\n      pOVar4 = *ppOVar9;\n      ppOVar9 = ppOVar9 + 1;\n      if (pOVar4 != (Output_section_data *)0x0) {\n        (*(pOVar4->super_Output_data)._vptr_Output_data[1])(pOVar4);\n        ppOVar6 = (this->script_output_section_data_list_).\n                  super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                  ._M_impl._M_finish;\n      }\n    }" { (expression_statement "pOVar4 = *ppOVar9;" (assignment_expression "pOVar4 = *ppOVar9" identifier = (pointer_expression "*ppOVar9" * identifier)) ;) (expression_statement "ppOVar9 = ppOVar9 + 1;" (assignment_expression "ppOVar9 = ppOVar9 + 1" identifier = (binary_expression "ppOVar9 + 1" identifier + number_literal)) ;) (if_statement "if (pOVar4 != (Output_section_data *)0x0) {\n        (*(pOVar4->super_Output_data)._vptr_Output_data[1])(pOVar4);\n        ppOVar6 = (this->script_output_section_data_list_).\n                  super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                  ._M_impl._M_finish;\n      }" if (parenthesized_expression "(pOVar4 != (Output_section_data *)0x0)" ( (binary_expression "pOVar4 != (Output_section_data *)0x0" identifier != (cast_expression "(Output_section_data *)0x0" ( (type_descriptor "Output_section_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (*(pOVar4->super_Output_data)._vptr_Output_data[1])(pOVar4);\n        ppOVar6 = (this->script_output_section_data_list_).\n                  super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                  ._M_impl._M_finish;\n      }" { (expression_statement "(*(pOVar4->super_Output_data)._vptr_Output_data[1])(pOVar4);" (call_expression "(*(pOVar4->super_Output_data)._vptr_Output_data[1])(pOVar4)" (parenthesized_expression "(*(pOVar4->super_Output_data)._vptr_Output_data[1])" ( (pointer_expression "*(pOVar4->super_Output_data)._vptr_Output_data[1]" * (subscript_expression "(pOVar4->super_Output_data)._vptr_Output_data[1]" (field_expression "(pOVar4->super_Output_data)._vptr_Output_data" (parenthesized_expression "(pOVar4->super_Output_data)" ( (field_expression "pOVar4->super_Output_data" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) )) (argument_list "(pOVar4)" ( identifier ))) ;) (expression_statement "ppOVar6 = (this->script_output_section_data_list_).\n                  super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                  ._M_impl._M_finish;" (field_expression "ppOVar6 = (this->script_output_section_data_list_).\n                  super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                  ._M_impl._M_finish" (field_expression "ppOVar6 = (this->script_output_section_data_list_).\n                  super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n                  ._M_impl" (binary_expression "ppOVar6 = (this->script_output_section_data_list_).\n                  super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_" (binary_expression "ppOVar6 = (this->script_output_section_data_list_).\n                  super__Vector_base<gold::Output_section_data*,_std::allocator<gold" (binary_expression "ppOVar6 = (this->script_output_section_data_list_).\n                  super__Vector_base<gold::Output_section_data*,_std" (assignment_expression "ppOVar6 = (this->script_output_section_data_list_).\n                  super__Vector_base<gold" identifier = (binary_expression "(this->script_output_section_data_list_).\n                  super__Vector_base<gold" (field_expression "(this->script_output_section_data_list_).\n                  super__Vector_base" (parenthesized_expression "(this->script_output_section_data_list_)" ( (field_expression "this->script_output_section_data_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_section_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) })) }) while (parenthesized_expression "(ppOVar6 != ppOVar9)" ( (binary_expression "ppOVar6 != ppOVar9" identifier != identifier) )) ;) (expression_statement "ppOVar9 = (this->script_output_section_data_list_).\n              super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n              ._M_impl._M_start;" (field_expression "ppOVar9 = (this->script_output_section_data_list_).\n              super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n              ._M_impl._M_start" (field_expression "ppOVar9 = (this->script_output_section_data_list_).\n              super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n              ._M_impl" (binary_expression "ppOVar9 = (this->script_output_section_data_list_).\n              super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_" (binary_expression "ppOVar9 = (this->script_output_section_data_list_).\n              super__Vector_base<gold::Output_section_data*,_std::allocator<gold" (binary_expression "ppOVar9 = (this->script_output_section_data_list_).\n              super__Vector_base<gold::Output_section_data*,_std" (assignment_expression "ppOVar9 = (this->script_output_section_data_list_).\n              super__Vector_base<gold" identifier = (binary_expression "(this->script_output_section_data_list_).\n              super__Vector_base<gold" (field_expression "(this->script_output_section_data_list_).\n              super__Vector_base" (parenthesized_expression "(this->script_output_section_data_list_)" ( (field_expression "this->script_output_section_data_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_section_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if (ppOVar9 != ppOVar6) {\n      (this->script_output_section_data_list_).\n      super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>.\n      _M_impl._M_finish = ppOVar9;\n    }" if (parenthesized_expression "(ppOVar9 != ppOVar6)" ( (binary_expression "ppOVar9 != ppOVar6" identifier != identifier) )) (compound_statement "{\n      (this->script_output_section_data_list_).\n      super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>.\n      _M_impl._M_finish = ppOVar9;\n    }" { (expression_statement "(this->script_output_section_data_list_).\n      super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>.\n      _M_impl._M_finish = ppOVar9;" (assignment_expression "(this->script_output_section_data_list_).\n      super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>.\n      _M_impl._M_finish = ppOVar9" (field_expression "(this->script_output_section_data_list_).\n      super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>.\n      _M_impl._M_finish" (field_expression "(this->script_output_section_data_list_).\n      super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>.\n      _M_impl" (binary_expression "(this->script_output_section_data_list_).\n      super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_" (binary_expression "(this->script_output_section_data_list_).\n      super__Vector_base<gold::Output_section_data*,_std::allocator<gold" (binary_expression "(this->script_output_section_data_list_).\n      super__Vector_base<gold::Output_section_data*,_std" (binary_expression "(this->script_output_section_data_list_).\n      super__Vector_base<gold" (field_expression "(this->script_output_section_data_list_).\n      super__Vector_base" (parenthesized_expression "(this->script_output_section_data_list_)" ( (field_expression "this->script_output_section_data_list_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Output_section_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) = identifier) ;) })) })) (expression_statement "ppOVar8 = (this->relax_output_list_).\n            super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n            _M_start;" (field_expression "ppOVar8 = (this->relax_output_list_).\n            super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n            _M_start" (field_expression "ppOVar8 = (this->relax_output_list_).\n            super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl" (binary_expression "ppOVar8 = (this->relax_output_list_).\n            super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "ppOVar8 = (this->relax_output_list_).\n            super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "ppOVar8 = (this->relax_output_list_).\n            super__Vector_base<gold::Output_data*,_std" (assignment_expression "ppOVar8 = (this->relax_output_list_).\n            super__Vector_base<gold" identifier = (binary_expression "(this->relax_output_list_).\n            super__Vector_base<gold" (field_expression "(this->relax_output_list_).\n            super__Vector_base" (parenthesized_expression "(this->relax_output_list_)" ( (field_expression "this->relax_output_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "ppOVar2 = (this->relax_output_list_).\n            super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n            _M_finish;" (field_expression "ppOVar2 = (this->relax_output_list_).\n            super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n            _M_finish" (field_expression "ppOVar2 = (this->relax_output_list_).\n            super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl" (binary_expression "ppOVar2 = (this->relax_output_list_).\n            super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "ppOVar2 = (this->relax_output_list_).\n            super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "ppOVar2 = (this->relax_output_list_).\n            super__Vector_base<gold::Output_data*,_std" (assignment_expression "ppOVar2 = (this->relax_output_list_).\n            super__Vector_base<gold" identifier = (binary_expression "(this->relax_output_list_).\n            super__Vector_base<gold" (field_expression "(this->relax_output_list_).\n            super__Vector_base" (parenthesized_expression "(this->relax_output_list_)" ( (field_expression "this->relax_output_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if (ppOVar8 != ppOVar2) {\n    do {\n      pOVar5 = *ppOVar8;\n      ppOVar8 = ppOVar8 + 1;\n      if (pOVar5 != (Output_data *)0x0) {\n        (*pOVar5->_vptr_Output_data[1])(pOVar5);\n        ppOVar2 = (this->relax_output_list_).\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_finish;\n      }\n    } while (ppOVar2 != ppOVar8);\n    ppOVar8 = (this->relax_output_list_).\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_start;\n    if (ppOVar2 != ppOVar8) {\n      (this->relax_output_list_).\n      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl._M_finish\n           = ppOVar8;\n    }\n  }" if (parenthesized_expression "(ppOVar8 != ppOVar2)" ( (binary_expression "ppOVar8 != ppOVar2" identifier != identifier) )) (compound_statement "{\n    do {\n      pOVar5 = *ppOVar8;\n      ppOVar8 = ppOVar8 + 1;\n      if (pOVar5 != (Output_data *)0x0) {\n        (*pOVar5->_vptr_Output_data[1])(pOVar5);\n        ppOVar2 = (this->relax_output_list_).\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_finish;\n      }\n    } while (ppOVar2 != ppOVar8);\n    ppOVar8 = (this->relax_output_list_).\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_start;\n    if (ppOVar2 != ppOVar8) {\n      (this->relax_output_list_).\n      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl._M_finish\n           = ppOVar8;\n    }\n  }" { (do_statement "do {\n      pOVar5 = *ppOVar8;\n      ppOVar8 = ppOVar8 + 1;\n      if (pOVar5 != (Output_data *)0x0) {\n        (*pOVar5->_vptr_Output_data[1])(pOVar5);\n        ppOVar2 = (this->relax_output_list_).\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_finish;\n      }\n    } while (ppOVar2 != ppOVar8);" do (compound_statement "{\n      pOVar5 = *ppOVar8;\n      ppOVar8 = ppOVar8 + 1;\n      if (pOVar5 != (Output_data *)0x0) {\n        (*pOVar5->_vptr_Output_data[1])(pOVar5);\n        ppOVar2 = (this->relax_output_list_).\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_finish;\n      }\n    }" { (expression_statement "pOVar5 = *ppOVar8;" (assignment_expression "pOVar5 = *ppOVar8" identifier = (pointer_expression "*ppOVar8" * identifier)) ;) (expression_statement "ppOVar8 = ppOVar8 + 1;" (assignment_expression "ppOVar8 = ppOVar8 + 1" identifier = (binary_expression "ppOVar8 + 1" identifier + number_literal)) ;) (if_statement "if (pOVar5 != (Output_data *)0x0) {\n        (*pOVar5->_vptr_Output_data[1])(pOVar5);\n        ppOVar2 = (this->relax_output_list_).\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_finish;\n      }" if (parenthesized_expression "(pOVar5 != (Output_data *)0x0)" ( (binary_expression "pOVar5 != (Output_data *)0x0" identifier != (cast_expression "(Output_data *)0x0" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (*pOVar5->_vptr_Output_data[1])(pOVar5);\n        ppOVar2 = (this->relax_output_list_).\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_finish;\n      }" { (expression_statement "(*pOVar5->_vptr_Output_data[1])(pOVar5);" (call_expression "(*pOVar5->_vptr_Output_data[1])(pOVar5)" (parenthesized_expression "(*pOVar5->_vptr_Output_data[1])" ( (pointer_expression "*pOVar5->_vptr_Output_data[1]" * (subscript_expression "pOVar5->_vptr_Output_data[1]" (field_expression "pOVar5->_vptr_Output_data" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(pOVar5)" ( identifier ))) ;) (expression_statement "ppOVar2 = (this->relax_output_list_).\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_finish;" (field_expression "ppOVar2 = (this->relax_output_list_).\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_finish" (field_expression "ppOVar2 = (this->relax_output_list_).\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl" (binary_expression "ppOVar2 = (this->relax_output_list_).\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "ppOVar2 = (this->relax_output_list_).\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "ppOVar2 = (this->relax_output_list_).\n                  super__Vector_base<gold::Output_data*,_std" (assignment_expression "ppOVar2 = (this->relax_output_list_).\n                  super__Vector_base<gold" identifier = (binary_expression "(this->relax_output_list_).\n                  super__Vector_base<gold" (field_expression "(this->relax_output_list_).\n                  super__Vector_base" (parenthesized_expression "(this->relax_output_list_)" ( (field_expression "this->relax_output_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) })) }) while (parenthesized_expression "(ppOVar2 != ppOVar8)" ( (binary_expression "ppOVar2 != ppOVar8" identifier != identifier) )) ;) (expression_statement "ppOVar8 = (this->relax_output_list_).\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_start;" (field_expression "ppOVar8 = (this->relax_output_list_).\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_start" (field_expression "ppOVar8 = (this->relax_output_list_).\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl" (binary_expression "ppOVar8 = (this->relax_output_list_).\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "ppOVar8 = (this->relax_output_list_).\n              super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "ppOVar8 = (this->relax_output_list_).\n              super__Vector_base<gold::Output_data*,_std" (assignment_expression "ppOVar8 = (this->relax_output_list_).\n              super__Vector_base<gold" identifier = (binary_expression "(this->relax_output_list_).\n              super__Vector_base<gold" (field_expression "(this->relax_output_list_).\n              super__Vector_base" (parenthesized_expression "(this->relax_output_list_)" ( (field_expression "this->relax_output_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if (ppOVar2 != ppOVar8) {\n      (this->relax_output_list_).\n      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl._M_finish\n           = ppOVar8;\n    }" if (parenthesized_expression "(ppOVar2 != ppOVar8)" ( (binary_expression "ppOVar2 != ppOVar8" identifier != identifier) )) (compound_statement "{\n      (this->relax_output_list_).\n      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl._M_finish\n           = ppOVar8;\n    }" { (expression_statement "(this->relax_output_list_).\n      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl._M_finish\n           = ppOVar8;" (assignment_expression "(this->relax_output_list_).\n      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl._M_finish\n           = ppOVar8" (field_expression "(this->relax_output_list_).\n      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl._M_finish" (field_expression "(this->relax_output_list_).\n      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl" (binary_expression "(this->relax_output_list_).\n      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "(this->relax_output_list_).\n      super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "(this->relax_output_list_).\n      super__Vector_base<gold::Output_data*,_std" (binary_expression "(this->relax_output_list_).\n      super__Vector_base<gold" (field_expression "(this->relax_output_list_).\n      super__Vector_base" (parenthesized_expression "(this->relax_output_list_)" ( (field_expression "this->relax_output_list_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) = identifier) ;) })) })) (return_statement "return;" return ;) })))
(translation_unit "void __thiscall gold::Layout::clean_up_after_relaxation(Layout *this)\n\n{\n  byte bVar1;\n  undefined4 *puVar2;\n  int *piVar3;\n  int *piVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  \n  (*(code *)PTR_release_segments_00432e84)(*(int *)(this + 4) + 0xac);\n  restore_segments(this,*(unordered_map **)(this + 0x1f0));\n  piVar4 = *(int **)(this + 0x13c);\n  if (piVar4 == *(int **)(this + 0x140)) {\n    puVar2 = *(undefined4 **)(this + 0x158);\n  }\n  else {\n    do {\n      (*(code *)PTR_restore_states_00432e8c)(*piVar4);\n      piVar6 = (int *)*piVar4;\n      if (piVar6[0x26] << 0x12 < 0) {\n        (*(code *)PTR_adjust_section_offsets_00432e90)(piVar6);\n        piVar6 = (int *)*piVar4;\n      }\n      bVar1 = *(byte *)(piVar6 + 8);\n      piVar4 = piVar4 + 1;\n      *(byte *)(piVar6 + 8) = bVar1 & 0x5f;\n      if (-1 < piVar6[8] << 3) {\n        *(byte *)(piVar6 + 8) = bVar1 & 0x1f;\n      }\n      (**(code **)(*piVar6 + 0x3c))(piVar6);\n    } while (*(int **)(this + 0x140) != piVar4);\n    puVar2 = *(undefined4 **)(this + 0x158);\n  }\n  puVar5 = *(undefined4 **)(this + 0x154);\n  if (puVar5 != puVar2) {\n    do {\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      bVar1 = *(byte *)(piVar4 + 8);\n      *(byte *)(piVar4 + 8) = bVar1 & 0x5f;\n      if (-1 < piVar4[8] << 3) {\n        *(byte *)(piVar4 + 8) = bVar1 & 0x1f;\n      }\n      (**(code **)(*piVar4 + 0x3c))(piVar4);\n    } while (*(undefined4 **)(this + 0x158) != puVar5);\n  }\n  piVar6 = *(int **)(this + 0x1e4);\n  piVar4 = *(int **)(this + 0x1e8);\n  if (piVar6 != piVar4) {\n    do {\n      piVar3 = (int *)*piVar6;\n      piVar6 = piVar6 + 1;\n      if (piVar3 != (int *)0x0) {\n        (**(code **)(*piVar3 + 4))(piVar3);\n        piVar4 = *(int **)(this + 0x1e8);\n      }\n    } while (piVar4 != piVar6);\n    if (*(int **)(this + 0x1e4) != piVar4) {\n      *(int **)(this + 0x1e8) = *(int **)(this + 0x1e4);\n    }\n  }\n  piVar6 = *(int **)(this + 0x160);\n  piVar4 = *(int **)(this + 0x164);\n  if (piVar6 != piVar4) {\n    do {\n      piVar3 = (int *)*piVar6;\n      piVar6 = piVar6 + 1;\n      if (piVar3 != (int *)0x0) {\n        (**(code **)(*piVar3 + 4))(piVar3);\n        piVar4 = *(int **)(this + 0x164);\n      }\n    } while (piVar4 != piVar6);\n    if (piVar4 != *(int **)(this + 0x160)) {\n      *(int **)(this + 0x164) = *(int **)(this + 0x160);\n    }\n  }\n  return;\n}\n\n" (function_definition "void __thiscall gold::Layout::clean_up_after_relaxation(Layout *this)\n\n{\n  byte bVar1;\n  undefined4 *puVar2;\n  int *piVar3;\n  int *piVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  \n  (*(code *)PTR_release_segments_00432e84)(*(int *)(this + 4) + 0xac);\n  restore_segments(this,*(unordered_map **)(this + 0x1f0));\n  piVar4 = *(int **)(this + 0x13c);\n  if (piVar4 == *(int **)(this + 0x140)) {\n    puVar2 = *(undefined4 **)(this + 0x158);\n  }\n  else {\n    do {\n      (*(code *)PTR_restore_states_00432e8c)(*piVar4);\n      piVar6 = (int *)*piVar4;\n      if (piVar6[0x26] << 0x12 < 0) {\n        (*(code *)PTR_adjust_section_offsets_00432e90)(piVar6);\n        piVar6 = (int *)*piVar4;\n      }\n      bVar1 = *(byte *)(piVar6 + 8);\n      piVar4 = piVar4 + 1;\n      *(byte *)(piVar6 + 8) = bVar1 & 0x5f;\n      if (-1 < piVar6[8] << 3) {\n        *(byte *)(piVar6 + 8) = bVar1 & 0x1f;\n      }\n      (**(code **)(*piVar6 + 0x3c))(piVar6);\n    } while (*(int **)(this + 0x140) != piVar4);\n    puVar2 = *(undefined4 **)(this + 0x158);\n  }\n  puVar5 = *(undefined4 **)(this + 0x154);\n  if (puVar5 != puVar2) {\n    do {\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      bVar1 = *(byte *)(piVar4 + 8);\n      *(byte *)(piVar4 + 8) = bVar1 & 0x5f;\n      if (-1 < piVar4[8] << 3) {\n        *(byte *)(piVar4 + 8) = bVar1 & 0x1f;\n      }\n      (**(code **)(*piVar4 + 0x3c))(piVar4);\n    } while (*(undefined4 **)(this + 0x158) != puVar5);\n  }\n  piVar6 = *(int **)(this + 0x1e4);\n  piVar4 = *(int **)(this + 0x1e8);\n  if (piVar6 != piVar4) {\n    do {\n      piVar3 = (int *)*piVar6;\n      piVar6 = piVar6 + 1;\n      if (piVar3 != (int *)0x0) {\n        (**(code **)(*piVar3 + 4))(piVar3);\n        piVar4 = *(int **)(this + 0x1e8);\n      }\n    } while (piVar4 != piVar6);\n    if (*(int **)(this + 0x1e4) != piVar4) {\n      *(int **)(this + 0x1e8) = *(int **)(this + 0x1e4);\n    }\n  }\n  piVar6 = *(int **)(this + 0x160);\n  piVar4 = *(int **)(this + 0x164);\n  if (piVar6 != piVar4) {\n    do {\n      piVar3 = (int *)*piVar6;\n      piVar6 = piVar6 + 1;\n      if (piVar3 != (int *)0x0) {\n        (**(code **)(*piVar3 + 4))(piVar3);\n        piVar4 = *(int **)(this + 0x164);\n      }\n    } while (piVar4 != piVar6);\n    if (piVar4 != *(int **)(this + 0x160)) {\n      *(int **)(this + 0x164) = *(int **)(this + 0x160);\n    }\n  }\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Layout::" identifier : : identifier : :) (function_declarator "clean_up_after_relaxation(Layout *this)" identifier (parameter_list "(Layout *this)" ( (parameter_declaration "Layout *this" type_identifier (pointer_declarator "*this" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  undefined4 *puVar2;\n  int *piVar3;\n  int *piVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  \n  (*(code *)PTR_release_segments_00432e84)(*(int *)(this + 4) + 0xac);\n  restore_segments(this,*(unordered_map **)(this + 0x1f0));\n  piVar4 = *(int **)(this + 0x13c);\n  if (piVar4 == *(int **)(this + 0x140)) {\n    puVar2 = *(undefined4 **)(this + 0x158);\n  }\n  else {\n    do {\n      (*(code *)PTR_restore_states_00432e8c)(*piVar4);\n      piVar6 = (int *)*piVar4;\n      if (piVar6[0x26] << 0x12 < 0) {\n        (*(code *)PTR_adjust_section_offsets_00432e90)(piVar6);\n        piVar6 = (int *)*piVar4;\n      }\n      bVar1 = *(byte *)(piVar6 + 8);\n      piVar4 = piVar4 + 1;\n      *(byte *)(piVar6 + 8) = bVar1 & 0x5f;\n      if (-1 < piVar6[8] << 3) {\n        *(byte *)(piVar6 + 8) = bVar1 & 0x1f;\n      }\n      (**(code **)(*piVar6 + 0x3c))(piVar6);\n    } while (*(int **)(this + 0x140) != piVar4);\n    puVar2 = *(undefined4 **)(this + 0x158);\n  }\n  puVar5 = *(undefined4 **)(this + 0x154);\n  if (puVar5 != puVar2) {\n    do {\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      bVar1 = *(byte *)(piVar4 + 8);\n      *(byte *)(piVar4 + 8) = bVar1 & 0x5f;\n      if (-1 < piVar4[8] << 3) {\n        *(byte *)(piVar4 + 8) = bVar1 & 0x1f;\n      }\n      (**(code **)(*piVar4 + 0x3c))(piVar4);\n    } while (*(undefined4 **)(this + 0x158) != puVar5);\n  }\n  piVar6 = *(int **)(this + 0x1e4);\n  piVar4 = *(int **)(this + 0x1e8);\n  if (piVar6 != piVar4) {\n    do {\n      piVar3 = (int *)*piVar6;\n      piVar6 = piVar6 + 1;\n      if (piVar3 != (int *)0x0) {\n        (**(code **)(*piVar3 + 4))(piVar3);\n        piVar4 = *(int **)(this + 0x1e8);\n      }\n    } while (piVar4 != piVar6);\n    if (*(int **)(this + 0x1e4) != piVar4) {\n      *(int **)(this + 0x1e8) = *(int **)(this + 0x1e4);\n    }\n  }\n  piVar6 = *(int **)(this + 0x160);\n  piVar4 = *(int **)(this + 0x164);\n  if (piVar6 != piVar4) {\n    do {\n      piVar3 = (int *)*piVar6;\n      piVar6 = piVar6 + 1;\n      if (piVar3 != (int *)0x0) {\n        (**(code **)(*piVar3 + 4))(piVar3);\n        piVar4 = *(int **)(this + 0x164);\n      }\n    } while (piVar4 != piVar6);\n    if (piVar4 != *(int **)(this + 0x160)) {\n      *(int **)(this + 0x164) = *(int **)(this + 0x160);\n    }\n  }\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (expression_statement "(*(code *)PTR_release_segments_00432e84)(*(int *)(this + 4) + 0xac);" (call_expression "(*(code *)PTR_release_segments_00432e84)(*(int *)(this + 4) + 0xac)" (parenthesized_expression "(*(code *)PTR_release_segments_00432e84)" ( (pointer_expression "*(code *)PTR_release_segments_00432e84" * (cast_expression "(code *)PTR_release_segments_00432e84" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(int *)(this + 4) + 0xac)" ( (binary_expression "*(int *)(this + 4) + 0xac" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "restore_segments(this,*(unordered_map **)(this + 0x1f0));" (call_expression "restore_segments(this,*(unordered_map **)(this + 0x1f0))" identifier (argument_list "(this,*(unordered_map **)(this + 0x1f0))" ( identifier , (pointer_expression "*(unordered_map **)(this + 0x1f0)" * (cast_expression "(unordered_map **)(this + 0x1f0)" ( (type_descriptor "unordered_map **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x1f0)" ( (binary_expression "this + 0x1f0" identifier + number_literal) )))) ))) ;) (expression_statement "piVar4 = *(int **)(this + 0x13c);" (assignment_expression "piVar4 = *(int **)(this + 0x13c)" identifier = (pointer_expression "*(int **)(this + 0x13c)" * (cast_expression "(int **)(this + 0x13c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x13c)" ( (binary_expression "this + 0x13c" identifier + number_literal) ))))) ;) (if_statement "if (piVar4 == *(int **)(this + 0x140)) {\n    puVar2 = *(undefined4 **)(this + 0x158);\n  }\n  else {\n    do {\n      (*(code *)PTR_restore_states_00432e8c)(*piVar4);\n      piVar6 = (int *)*piVar4;\n      if (piVar6[0x26] << 0x12 < 0) {\n        (*(code *)PTR_adjust_section_offsets_00432e90)(piVar6);\n        piVar6 = (int *)*piVar4;\n      }\n      bVar1 = *(byte *)(piVar6 + 8);\n      piVar4 = piVar4 + 1;\n      *(byte *)(piVar6 + 8) = bVar1 & 0x5f;\n      if (-1 < piVar6[8] << 3) {\n        *(byte *)(piVar6 + 8) = bVar1 & 0x1f;\n      }\n      (**(code **)(*piVar6 + 0x3c))(piVar6);\n    } while (*(int **)(this + 0x140) != piVar4);\n    puVar2 = *(undefined4 **)(this + 0x158);\n  }" if (parenthesized_expression "(piVar4 == *(int **)(this + 0x140))" ( (binary_expression "piVar4 == *(int **)(this + 0x140)" identifier == (pointer_expression "*(int **)(this + 0x140)" * (cast_expression "(int **)(this + 0x140)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x140)" ( (binary_expression "this + 0x140" identifier + number_literal) ))))) )) (compound_statement "{\n    puVar2 = *(undefined4 **)(this + 0x158);\n  }" { (expression_statement "puVar2 = *(undefined4 **)(this + 0x158);" (assignment_expression "puVar2 = *(undefined4 **)(this + 0x158)" identifier = (pointer_expression "*(undefined4 **)(this + 0x158)" * (cast_expression "(undefined4 **)(this + 0x158)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x158)" ( (binary_expression "this + 0x158" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    do {\n      (*(code *)PTR_restore_states_00432e8c)(*piVar4);\n      piVar6 = (int *)*piVar4;\n      if (piVar6[0x26] << 0x12 < 0) {\n        (*(code *)PTR_adjust_section_offsets_00432e90)(piVar6);\n        piVar6 = (int *)*piVar4;\n      }\n      bVar1 = *(byte *)(piVar6 + 8);\n      piVar4 = piVar4 + 1;\n      *(byte *)(piVar6 + 8) = bVar1 & 0x5f;\n      if (-1 < piVar6[8] << 3) {\n        *(byte *)(piVar6 + 8) = bVar1 & 0x1f;\n      }\n      (**(code **)(*piVar6 + 0x3c))(piVar6);\n    } while (*(int **)(this + 0x140) != piVar4);\n    puVar2 = *(undefined4 **)(this + 0x158);\n  }" else (compound_statement "{\n    do {\n      (*(code *)PTR_restore_states_00432e8c)(*piVar4);\n      piVar6 = (int *)*piVar4;\n      if (piVar6[0x26] << 0x12 < 0) {\n        (*(code *)PTR_adjust_section_offsets_00432e90)(piVar6);\n        piVar6 = (int *)*piVar4;\n      }\n      bVar1 = *(byte *)(piVar6 + 8);\n      piVar4 = piVar4 + 1;\n      *(byte *)(piVar6 + 8) = bVar1 & 0x5f;\n      if (-1 < piVar6[8] << 3) {\n        *(byte *)(piVar6 + 8) = bVar1 & 0x1f;\n      }\n      (**(code **)(*piVar6 + 0x3c))(piVar6);\n    } while (*(int **)(this + 0x140) != piVar4);\n    puVar2 = *(undefined4 **)(this + 0x158);\n  }" { (do_statement "do {\n      (*(code *)PTR_restore_states_00432e8c)(*piVar4);\n      piVar6 = (int *)*piVar4;\n      if (piVar6[0x26] << 0x12 < 0) {\n        (*(code *)PTR_adjust_section_offsets_00432e90)(piVar6);\n        piVar6 = (int *)*piVar4;\n      }\n      bVar1 = *(byte *)(piVar6 + 8);\n      piVar4 = piVar4 + 1;\n      *(byte *)(piVar6 + 8) = bVar1 & 0x5f;\n      if (-1 < piVar6[8] << 3) {\n        *(byte *)(piVar6 + 8) = bVar1 & 0x1f;\n      }\n      (**(code **)(*piVar6 + 0x3c))(piVar6);\n    } while (*(int **)(this + 0x140) != piVar4);" do (compound_statement "{\n      (*(code *)PTR_restore_states_00432e8c)(*piVar4);\n      piVar6 = (int *)*piVar4;\n      if (piVar6[0x26] << 0x12 < 0) {\n        (*(code *)PTR_adjust_section_offsets_00432e90)(piVar6);\n        piVar6 = (int *)*piVar4;\n      }\n      bVar1 = *(byte *)(piVar6 + 8);\n      piVar4 = piVar4 + 1;\n      *(byte *)(piVar6 + 8) = bVar1 & 0x5f;\n      if (-1 < piVar6[8] << 3) {\n        *(byte *)(piVar6 + 8) = bVar1 & 0x1f;\n      }\n      (**(code **)(*piVar6 + 0x3c))(piVar6);\n    }" { (expression_statement "(*(code *)PTR_restore_states_00432e8c)(*piVar4);" (call_expression "(*(code *)PTR_restore_states_00432e8c)(*piVar4)" (parenthesized_expression "(*(code *)PTR_restore_states_00432e8c)" ( (pointer_expression "*(code *)PTR_restore_states_00432e8c" * (cast_expression "(code *)PTR_restore_states_00432e8c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*piVar4)" ( (pointer_expression "*piVar4" * identifier) ))) ;) (expression_statement "piVar6 = (int *)*piVar4;" (assignment_expression "piVar6 = (int *)*piVar4" identifier = (cast_expression "(int *)*piVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar4" * identifier))) ;) (if_statement "if (piVar6[0x26] << 0x12 < 0) {\n        (*(code *)PTR_adjust_section_offsets_00432e90)(piVar6);\n        piVar6 = (int *)*piVar4;\n      }" if (parenthesized_expression "(piVar6[0x26] << 0x12 < 0)" ( (binary_expression "piVar6[0x26] << 0x12 < 0" (binary_expression "piVar6[0x26] << 0x12" (subscript_expression "piVar6[0x26]" identifier [ number_literal ]) << number_literal) < number_literal) )) (compound_statement "{\n        (*(code *)PTR_adjust_section_offsets_00432e90)(piVar6);\n        piVar6 = (int *)*piVar4;\n      }" { (expression_statement "(*(code *)PTR_adjust_section_offsets_00432e90)(piVar6);" (call_expression "(*(code *)PTR_adjust_section_offsets_00432e90)(piVar6)" (parenthesized_expression "(*(code *)PTR_adjust_section_offsets_00432e90)" ( (pointer_expression "*(code *)PTR_adjust_section_offsets_00432e90" * (cast_expression "(code *)PTR_adjust_section_offsets_00432e90" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar6)" ( identifier ))) ;) (expression_statement "piVar6 = (int *)*piVar4;" (assignment_expression "piVar6 = (int *)*piVar4" identifier = (cast_expression "(int *)*piVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar4" * identifier))) ;) })) (expression_statement "bVar1 = *(byte *)(piVar6 + 8);" (assignment_expression "bVar1 = *(byte *)(piVar6 + 8)" identifier = (pointer_expression "*(byte *)(piVar6 + 8)" * (cast_expression "(byte *)(piVar6 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar6 + 8)" ( (binary_expression "piVar6 + 8" identifier + number_literal) ))))) ;) (expression_statement "piVar4 = piVar4 + 1;" (assignment_expression "piVar4 = piVar4 + 1" identifier = (binary_expression "piVar4 + 1" identifier + number_literal)) ;) (expression_statement "*(byte *)(piVar6 + 8) = bVar1 & 0x5f;" (assignment_expression "*(byte *)(piVar6 + 8) = bVar1 & 0x5f" (pointer_expression "*(byte *)(piVar6 + 8)" * (cast_expression "(byte *)(piVar6 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar6 + 8)" ( (binary_expression "piVar6 + 8" identifier + number_literal) )))) = (binary_expression "bVar1 & 0x5f" identifier & number_literal)) ;) (if_statement "if (-1 < piVar6[8] << 3) {\n        *(byte *)(piVar6 + 8) = bVar1 & 0x1f;\n      }" if (parenthesized_expression "(-1 < piVar6[8] << 3)" ( (binary_expression "-1 < piVar6[8] << 3" number_literal < (binary_expression "piVar6[8] << 3" (subscript_expression "piVar6[8]" identifier [ number_literal ]) << number_literal)) )) (compound_statement "{\n        *(byte *)(piVar6 + 8) = bVar1 & 0x1f;\n      }" { (expression_statement "*(byte *)(piVar6 + 8) = bVar1 & 0x1f;" (assignment_expression "*(byte *)(piVar6 + 8) = bVar1 & 0x1f" (pointer_expression "*(byte *)(piVar6 + 8)" * (cast_expression "(byte *)(piVar6 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar6 + 8)" ( (binary_expression "piVar6 + 8" identifier + number_literal) )))) = (binary_expression "bVar1 & 0x1f" identifier & number_literal)) ;) })) (expression_statement "(**(code **)(*piVar6 + 0x3c))(piVar6);" (call_expression "(**(code **)(*piVar6 + 0x3c))(piVar6)" (parenthesized_expression "(**(code **)(*piVar6 + 0x3c))" ( (pointer_expression "**(code **)(*piVar6 + 0x3c)" * (pointer_expression "*(code **)(*piVar6 + 0x3c)" * (cast_expression "(code **)(*piVar6 + 0x3c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar6 + 0x3c)" ( (binary_expression "*piVar6 + 0x3c" (pointer_expression "*piVar6" * identifier) + number_literal) ))))) )) (argument_list "(piVar6)" ( identifier ))) ;) }) while (parenthesized_expression "(*(int **)(this + 0x140) != piVar4)" ( (binary_expression "*(int **)(this + 0x140) != piVar4" (pointer_expression "*(int **)(this + 0x140)" * (cast_expression "(int **)(this + 0x140)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x140)" ( (binary_expression "this + 0x140" identifier + number_literal) )))) != identifier) )) ;) (expression_statement "puVar2 = *(undefined4 **)(this + 0x158);" (assignment_expression "puVar2 = *(undefined4 **)(this + 0x158)" identifier = (pointer_expression "*(undefined4 **)(this + 0x158)" * (cast_expression "(undefined4 **)(this + 0x158)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x158)" ( (binary_expression "this + 0x158" identifier + number_literal) ))))) ;) }))) (expression_statement "puVar5 = *(undefined4 **)(this + 0x154);" (assignment_expression "puVar5 = *(undefined4 **)(this + 0x154)" identifier = (pointer_expression "*(undefined4 **)(this + 0x154)" * (cast_expression "(undefined4 **)(this + 0x154)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x154)" ( (binary_expression "this + 0x154" identifier + number_literal) ))))) ;) (if_statement "if (puVar5 != puVar2) {\n    do {\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      bVar1 = *(byte *)(piVar4 + 8);\n      *(byte *)(piVar4 + 8) = bVar1 & 0x5f;\n      if (-1 < piVar4[8] << 3) {\n        *(byte *)(piVar4 + 8) = bVar1 & 0x1f;\n      }\n      (**(code **)(*piVar4 + 0x3c))(piVar4);\n    } while (*(undefined4 **)(this + 0x158) != puVar5);\n  }" if (parenthesized_expression "(puVar5 != puVar2)" ( (binary_expression "puVar5 != puVar2" identifier != identifier) )) (compound_statement "{\n    do {\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      bVar1 = *(byte *)(piVar4 + 8);\n      *(byte *)(piVar4 + 8) = bVar1 & 0x5f;\n      if (-1 < piVar4[8] << 3) {\n        *(byte *)(piVar4 + 8) = bVar1 & 0x1f;\n      }\n      (**(code **)(*piVar4 + 0x3c))(piVar4);\n    } while (*(undefined4 **)(this + 0x158) != puVar5);\n  }" { (do_statement "do {\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      bVar1 = *(byte *)(piVar4 + 8);\n      *(byte *)(piVar4 + 8) = bVar1 & 0x5f;\n      if (-1 < piVar4[8] << 3) {\n        *(byte *)(piVar4 + 8) = bVar1 & 0x1f;\n      }\n      (**(code **)(*piVar4 + 0x3c))(piVar4);\n    } while (*(undefined4 **)(this + 0x158) != puVar5);" do (compound_statement "{\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      bVar1 = *(byte *)(piVar4 + 8);\n      *(byte *)(piVar4 + 8) = bVar1 & 0x5f;\n      if (-1 < piVar4[8] << 3) {\n        *(byte *)(piVar4 + 8) = bVar1 & 0x1f;\n      }\n      (**(code **)(*piVar4 + 0x3c))(piVar4);\n    }" { (expression_statement "piVar4 = (int *)*puVar5;" (assignment_expression "piVar4 = (int *)*puVar5" identifier = (cast_expression "(int *)*puVar5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar5" * identifier))) ;) (expression_statement "puVar5 = puVar5 + 1;" (assignment_expression "puVar5 = puVar5 + 1" identifier = (binary_expression "puVar5 + 1" identifier + number_literal)) ;) (expression_statement "bVar1 = *(byte *)(piVar4 + 8);" (assignment_expression "bVar1 = *(byte *)(piVar4 + 8)" identifier = (pointer_expression "*(byte *)(piVar4 + 8)" * (cast_expression "(byte *)(piVar4 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4 + 8)" ( (binary_expression "piVar4 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(byte *)(piVar4 + 8) = bVar1 & 0x5f;" (assignment_expression "*(byte *)(piVar4 + 8) = bVar1 & 0x5f" (pointer_expression "*(byte *)(piVar4 + 8)" * (cast_expression "(byte *)(piVar4 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4 + 8)" ( (binary_expression "piVar4 + 8" identifier + number_literal) )))) = (binary_expression "bVar1 & 0x5f" identifier & number_literal)) ;) (if_statement "if (-1 < piVar4[8] << 3) {\n        *(byte *)(piVar4 + 8) = bVar1 & 0x1f;\n      }" if (parenthesized_expression "(-1 < piVar4[8] << 3)" ( (binary_expression "-1 < piVar4[8] << 3" number_literal < (binary_expression "piVar4[8] << 3" (subscript_expression "piVar4[8]" identifier [ number_literal ]) << number_literal)) )) (compound_statement "{\n        *(byte *)(piVar4 + 8) = bVar1 & 0x1f;\n      }" { (expression_statement "*(byte *)(piVar4 + 8) = bVar1 & 0x1f;" (assignment_expression "*(byte *)(piVar4 + 8) = bVar1 & 0x1f" (pointer_expression "*(byte *)(piVar4 + 8)" * (cast_expression "(byte *)(piVar4 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4 + 8)" ( (binary_expression "piVar4 + 8" identifier + number_literal) )))) = (binary_expression "bVar1 & 0x1f" identifier & number_literal)) ;) })) (expression_statement "(**(code **)(*piVar4 + 0x3c))(piVar4);" (call_expression "(**(code **)(*piVar4 + 0x3c))(piVar4)" (parenthesized_expression "(**(code **)(*piVar4 + 0x3c))" ( (pointer_expression "**(code **)(*piVar4 + 0x3c)" * (pointer_expression "*(code **)(*piVar4 + 0x3c)" * (cast_expression "(code **)(*piVar4 + 0x3c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0x3c)" ( (binary_expression "*piVar4 + 0x3c" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) )) (argument_list "(piVar4)" ( identifier ))) ;) }) while (parenthesized_expression "(*(undefined4 **)(this + 0x158) != puVar5)" ( (binary_expression "*(undefined4 **)(this + 0x158) != puVar5" (pointer_expression "*(undefined4 **)(this + 0x158)" * (cast_expression "(undefined4 **)(this + 0x158)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x158)" ( (binary_expression "this + 0x158" identifier + number_literal) )))) != identifier) )) ;) })) (expression_statement "piVar6 = *(int **)(this + 0x1e4);" (assignment_expression "piVar6 = *(int **)(this + 0x1e4)" identifier = (pointer_expression "*(int **)(this + 0x1e4)" * (cast_expression "(int **)(this + 0x1e4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x1e4)" ( (binary_expression "this + 0x1e4" identifier + number_literal) ))))) ;) (expression_statement "piVar4 = *(int **)(this + 0x1e8);" (assignment_expression "piVar4 = *(int **)(this + 0x1e8)" identifier = (pointer_expression "*(int **)(this + 0x1e8)" * (cast_expression "(int **)(this + 0x1e8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x1e8)" ( (binary_expression "this + 0x1e8" identifier + number_literal) ))))) ;) (if_statement "if (piVar6 != piVar4) {\n    do {\n      piVar3 = (int *)*piVar6;\n      piVar6 = piVar6 + 1;\n      if (piVar3 != (int *)0x0) {\n        (**(code **)(*piVar3 + 4))(piVar3);\n        piVar4 = *(int **)(this + 0x1e8);\n      }\n    } while (piVar4 != piVar6);\n    if (*(int **)(this + 0x1e4) != piVar4) {\n      *(int **)(this + 0x1e8) = *(int **)(this + 0x1e4);\n    }\n  }" if (parenthesized_expression "(piVar6 != piVar4)" ( (binary_expression "piVar6 != piVar4" identifier != identifier) )) (compound_statement "{\n    do {\n      piVar3 = (int *)*piVar6;\n      piVar6 = piVar6 + 1;\n      if (piVar3 != (int *)0x0) {\n        (**(code **)(*piVar3 + 4))(piVar3);\n        piVar4 = *(int **)(this + 0x1e8);\n      }\n    } while (piVar4 != piVar6);\n    if (*(int **)(this + 0x1e4) != piVar4) {\n      *(int **)(this + 0x1e8) = *(int **)(this + 0x1e4);\n    }\n  }" { (do_statement "do {\n      piVar3 = (int *)*piVar6;\n      piVar6 = piVar6 + 1;\n      if (piVar3 != (int *)0x0) {\n        (**(code **)(*piVar3 + 4))(piVar3);\n        piVar4 = *(int **)(this + 0x1e8);\n      }\n    } while (piVar4 != piVar6);" do (compound_statement "{\n      piVar3 = (int *)*piVar6;\n      piVar6 = piVar6 + 1;\n      if (piVar3 != (int *)0x0) {\n        (**(code **)(*piVar3 + 4))(piVar3);\n        piVar4 = *(int **)(this + 0x1e8);\n      }\n    }" { (expression_statement "piVar3 = (int *)*piVar6;" (assignment_expression "piVar3 = (int *)*piVar6" identifier = (cast_expression "(int *)*piVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar6" * identifier))) ;) (expression_statement "piVar6 = piVar6 + 1;" (assignment_expression "piVar6 = piVar6 + 1" identifier = (binary_expression "piVar6 + 1" identifier + number_literal)) ;) (if_statement "if (piVar3 != (int *)0x0) {\n        (**(code **)(*piVar3 + 4))(piVar3);\n        piVar4 = *(int **)(this + 0x1e8);\n      }" if (parenthesized_expression "(piVar3 != (int *)0x0)" ( (binary_expression "piVar3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (**(code **)(*piVar3 + 4))(piVar3);\n        piVar4 = *(int **)(this + 0x1e8);\n      }" { (expression_statement "(**(code **)(*piVar3 + 4))(piVar3);" (call_expression "(**(code **)(*piVar3 + 4))(piVar3)" (parenthesized_expression "(**(code **)(*piVar3 + 4))" ( (pointer_expression "**(code **)(*piVar3 + 4)" * (pointer_expression "*(code **)(*piVar3 + 4)" * (cast_expression "(code **)(*piVar3 + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 4)" ( (binary_expression "*piVar3 + 4" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) )) (argument_list "(piVar3)" ( identifier ))) ;) (expression_statement "piVar4 = *(int **)(this + 0x1e8);" (assignment_expression "piVar4 = *(int **)(this + 0x1e8)" identifier = (pointer_expression "*(int **)(this + 0x1e8)" * (cast_expression "(int **)(this + 0x1e8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x1e8)" ( (binary_expression "this + 0x1e8" identifier + number_literal) ))))) ;) })) }) while (parenthesized_expression "(piVar4 != piVar6)" ( (binary_expression "piVar4 != piVar6" identifier != identifier) )) ;) (if_statement "if (*(int **)(this + 0x1e4) != piVar4) {\n      *(int **)(this + 0x1e8) = *(int **)(this + 0x1e4);\n    }" if (parenthesized_expression "(*(int **)(this + 0x1e4) != piVar4)" ( (binary_expression "*(int **)(this + 0x1e4) != piVar4" (pointer_expression "*(int **)(this + 0x1e4)" * (cast_expression "(int **)(this + 0x1e4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x1e4)" ( (binary_expression "this + 0x1e4" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n      *(int **)(this + 0x1e8) = *(int **)(this + 0x1e4);\n    }" { (expression_statement "*(int **)(this + 0x1e8) = *(int **)(this + 0x1e4);" (assignment_expression "*(int **)(this + 0x1e8) = *(int **)(this + 0x1e4)" (pointer_expression "*(int **)(this + 0x1e8)" * (cast_expression "(int **)(this + 0x1e8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x1e8)" ( (binary_expression "this + 0x1e8" identifier + number_literal) )))) = (pointer_expression "*(int **)(this + 0x1e4)" * (cast_expression "(int **)(this + 0x1e4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x1e4)" ( (binary_expression "this + 0x1e4" identifier + number_literal) ))))) ;) })) })) (expression_statement "piVar6 = *(int **)(this + 0x160);" (assignment_expression "piVar6 = *(int **)(this + 0x160)" identifier = (pointer_expression "*(int **)(this + 0x160)" * (cast_expression "(int **)(this + 0x160)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x160)" ( (binary_expression "this + 0x160" identifier + number_literal) ))))) ;) (expression_statement "piVar4 = *(int **)(this + 0x164);" (assignment_expression "piVar4 = *(int **)(this + 0x164)" identifier = (pointer_expression "*(int **)(this + 0x164)" * (cast_expression "(int **)(this + 0x164)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x164)" ( (binary_expression "this + 0x164" identifier + number_literal) ))))) ;) (if_statement "if (piVar6 != piVar4) {\n    do {\n      piVar3 = (int *)*piVar6;\n      piVar6 = piVar6 + 1;\n      if (piVar3 != (int *)0x0) {\n        (**(code **)(*piVar3 + 4))(piVar3);\n        piVar4 = *(int **)(this + 0x164);\n      }\n    } while (piVar4 != piVar6);\n    if (piVar4 != *(int **)(this + 0x160)) {\n      *(int **)(this + 0x164) = *(int **)(this + 0x160);\n    }\n  }" if (parenthesized_expression "(piVar6 != piVar4)" ( (binary_expression "piVar6 != piVar4" identifier != identifier) )) (compound_statement "{\n    do {\n      piVar3 = (int *)*piVar6;\n      piVar6 = piVar6 + 1;\n      if (piVar3 != (int *)0x0) {\n        (**(code **)(*piVar3 + 4))(piVar3);\n        piVar4 = *(int **)(this + 0x164);\n      }\n    } while (piVar4 != piVar6);\n    if (piVar4 != *(int **)(this + 0x160)) {\n      *(int **)(this + 0x164) = *(int **)(this + 0x160);\n    }\n  }" { (do_statement "do {\n      piVar3 = (int *)*piVar6;\n      piVar6 = piVar6 + 1;\n      if (piVar3 != (int *)0x0) {\n        (**(code **)(*piVar3 + 4))(piVar3);\n        piVar4 = *(int **)(this + 0x164);\n      }\n    } while (piVar4 != piVar6);" do (compound_statement "{\n      piVar3 = (int *)*piVar6;\n      piVar6 = piVar6 + 1;\n      if (piVar3 != (int *)0x0) {\n        (**(code **)(*piVar3 + 4))(piVar3);\n        piVar4 = *(int **)(this + 0x164);\n      }\n    }" { (expression_statement "piVar3 = (int *)*piVar6;" (assignment_expression "piVar3 = (int *)*piVar6" identifier = (cast_expression "(int *)*piVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar6" * identifier))) ;) (expression_statement "piVar6 = piVar6 + 1;" (assignment_expression "piVar6 = piVar6 + 1" identifier = (binary_expression "piVar6 + 1" identifier + number_literal)) ;) (if_statement "if (piVar3 != (int *)0x0) {\n        (**(code **)(*piVar3 + 4))(piVar3);\n        piVar4 = *(int **)(this + 0x164);\n      }" if (parenthesized_expression "(piVar3 != (int *)0x0)" ( (binary_expression "piVar3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (**(code **)(*piVar3 + 4))(piVar3);\n        piVar4 = *(int **)(this + 0x164);\n      }" { (expression_statement "(**(code **)(*piVar3 + 4))(piVar3);" (call_expression "(**(code **)(*piVar3 + 4))(piVar3)" (parenthesized_expression "(**(code **)(*piVar3 + 4))" ( (pointer_expression "**(code **)(*piVar3 + 4)" * (pointer_expression "*(code **)(*piVar3 + 4)" * (cast_expression "(code **)(*piVar3 + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 4)" ( (binary_expression "*piVar3 + 4" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) )) (argument_list "(piVar3)" ( identifier ))) ;) (expression_statement "piVar4 = *(int **)(this + 0x164);" (assignment_expression "piVar4 = *(int **)(this + 0x164)" identifier = (pointer_expression "*(int **)(this + 0x164)" * (cast_expression "(int **)(this + 0x164)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x164)" ( (binary_expression "this + 0x164" identifier + number_literal) ))))) ;) })) }) while (parenthesized_expression "(piVar4 != piVar6)" ( (binary_expression "piVar4 != piVar6" identifier != identifier) )) ;) (if_statement "if (piVar4 != *(int **)(this + 0x160)) {\n      *(int **)(this + 0x164) = *(int **)(this + 0x160);\n    }" if (parenthesized_expression "(piVar4 != *(int **)(this + 0x160))" ( (binary_expression "piVar4 != *(int **)(this + 0x160)" identifier != (pointer_expression "*(int **)(this + 0x160)" * (cast_expression "(int **)(this + 0x160)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x160)" ( (binary_expression "this + 0x160" identifier + number_literal) ))))) )) (compound_statement "{\n      *(int **)(this + 0x164) = *(int **)(this + 0x160);\n    }" { (expression_statement "*(int **)(this + 0x164) = *(int **)(this + 0x160);" (assignment_expression "*(int **)(this + 0x164) = *(int **)(this + 0x160)" (pointer_expression "*(int **)(this + 0x164)" * (cast_expression "(int **)(this + 0x164)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x164)" ( (binary_expression "this + 0x164" identifier + number_literal) )))) = (pointer_expression "*(int **)(this + 0x160)" * (cast_expression "(int **)(this + 0x160)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x160)" ( (binary_expression "this + 0x160" identifier + number_literal) ))))) ;) })) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (ms_call_modifier __thiscall) (ERROR IDENT : : IDENT : :) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) << LIT) < LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression (subscript_expression IDENT [ LIT ]) << LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT & LIT)) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT ))) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression (subscript_expression IDENT [ LIT ]) << LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT & LIT)) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT ))) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) })) (return_statement return ;) })))
(function_definition "void __thiscall gold::Layout::clean_up_after_relaxation(Layout *this)\n\n{\n  byte bVar1;\n  undefined4 *puVar2;\n  int *piVar3;\n  int *piVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  \n  (*(code *)PTR_release_segments_00432e84)(*(int *)(this + 4) + 0xac);\n  restore_segments(this,*(unordered_map **)(this + 0x1f0));\n  piVar4 = *(int **)(this + 0x13c);\n  if (piVar4 == *(int **)(this + 0x140)) {\n    puVar2 = *(undefined4 **)(this + 0x158);\n  }\n  else {\n    do {\n      (*(code *)PTR_restore_states_00432e8c)(*piVar4);\n      piVar6 = (int *)*piVar4;\n      if (piVar6[0x26] << 0x12 < 0) {\n        (*(code *)PTR_adjust_section_offsets_00432e90)(piVar6);\n        piVar6 = (int *)*piVar4;\n      }\n      bVar1 = *(byte *)(piVar6 + 8);\n      piVar4 = piVar4 + 1;\n      *(byte *)(piVar6 + 8) = bVar1 & 0x5f;\n      if (-1 < piVar6[8] << 3) {\n        *(byte *)(piVar6 + 8) = bVar1 & 0x1f;\n      }\n      (**(code **)(*piVar6 + 0x3c))(piVar6);\n    } while (*(int **)(this + 0x140) != piVar4);\n    puVar2 = *(undefined4 **)(this + 0x158);\n  }\n  puVar5 = *(undefined4 **)(this + 0x154);\n  if (puVar5 != puVar2) {\n    do {\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      bVar1 = *(byte *)(piVar4 + 8);\n      *(byte *)(piVar4 + 8) = bVar1 & 0x5f;\n      if (-1 < piVar4[8] << 3) {\n        *(byte *)(piVar4 + 8) = bVar1 & 0x1f;\n      }\n      (**(code **)(*piVar4 + 0x3c))(piVar4);\n    } while (*(undefined4 **)(this + 0x158) != puVar5);\n  }\n  piVar6 = *(int **)(this + 0x1e4);\n  piVar4 = *(int **)(this + 0x1e8);\n  if (piVar6 != piVar4) {\n    do {\n      piVar3 = (int *)*piVar6;\n      piVar6 = piVar6 + 1;\n      if (piVar3 != (int *)0x0) {\n        (**(code **)(*piVar3 + 4))(piVar3);\n        piVar4 = *(int **)(this + 0x1e8);\n      }\n    } while (piVar4 != piVar6);\n    if (*(int **)(this + 0x1e4) != piVar4) {\n      *(int **)(this + 0x1e8) = *(int **)(this + 0x1e4);\n    }\n  }\n  piVar6 = *(int **)(this + 0x160);\n  piVar4 = *(int **)(this + 0x164);\n  if (piVar6 != piVar4) {\n    do {\n      piVar3 = (int *)*piVar6;\n      piVar6 = piVar6 + 1;\n      if (piVar3 != (int *)0x0) {\n        (**(code **)(*piVar3 + 4))(piVar3);\n        piVar4 = *(int **)(this + 0x164);\n      }\n    } while (piVar4 != piVar6);\n    if (piVar4 != *(int **)(this + 0x160)) {\n      *(int **)(this + 0x164) = *(int **)(this + 0x160);\n    }\n  }\n  return;\n}" (primitive_type "void") (ms_call_modifier "__thiscall" (__thiscall "__thiscall")) (ERROR "gold::Layout::" (identifier "gold") (: ":") (: ":") (identifier "Layout") (: ":") (: ":")) (function_declarator "clean_up_after_relaxation(Layout *this)" (identifier "clean_up_after_relaxation") (parameter_list "(Layout *this)" (( "(") (parameter_declaration "Layout *this" (type_identifier "Layout") (pointer_declarator "*this" (* "*") (identifier "this"))) () ")"))) (compound_statement "{\n  byte bVar1;\n  undefined4 *puVar2;\n  int *piVar3;\n  int *piVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  \n  (*(code *)PTR_release_segments_00432e84)(*(int *)(this + 4) + 0xac);\n  restore_segments(this,*(unordered_map **)(this + 0x1f0));\n  piVar4 = *(int **)(this + 0x13c);\n  if (piVar4 == *(int **)(this + 0x140)) {\n    puVar2 = *(undefined4 **)(this + 0x158);\n  }\n  else {\n    do {\n      (*(code *)PTR_restore_states_00432e8c)(*piVar4);\n      piVar6 = (int *)*piVar4;\n      if (piVar6[0x26] << 0x12 < 0) {\n        (*(code *)PTR_adjust_section_offsets_00432e90)(piVar6);\n        piVar6 = (int *)*piVar4;\n      }\n      bVar1 = *(byte *)(piVar6 + 8);\n      piVar4 = piVar4 + 1;\n      *(byte *)(piVar6 + 8) = bVar1 & 0x5f;\n      if (-1 < piVar6[8] << 3) {\n        *(byte *)(piVar6 + 8) = bVar1 & 0x1f;\n      }\n      (**(code **)(*piVar6 + 0x3c))(piVar6);\n    } while (*(int **)(this + 0x140) != piVar4);\n    puVar2 = *(undefined4 **)(this + 0x158);\n  }\n  puVar5 = *(undefined4 **)(this + 0x154);\n  if (puVar5 != puVar2) {\n    do {\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      bVar1 = *(byte *)(piVar4 + 8);\n      *(byte *)(piVar4 + 8) = bVar1 & 0x5f;\n      if (-1 < piVar4[8] << 3) {\n        *(byte *)(piVar4 + 8) = bVar1 & 0x1f;\n      }\n      (**(code **)(*piVar4 + 0x3c))(piVar4);\n    } while (*(undefined4 **)(this + 0x158) != puVar5);\n  }\n  piVar6 = *(int **)(this + 0x1e4);\n  piVar4 = *(int **)(this + 0x1e8);\n  if (piVar6 != piVar4) {\n    do {\n      piVar3 = (int *)*piVar6;\n      piVar6 = piVar6 + 1;\n      if (piVar3 != (int *)0x0) {\n        (**(code **)(*piVar3 + 4))(piVar3);\n        piVar4 = *(int **)(this + 0x1e8);\n      }\n    } while (piVar4 != piVar6);\n    if (*(int **)(this + 0x1e4) != piVar4) {\n      *(int **)(this + 0x1e8) = *(int **)(this + 0x1e4);\n    }\n  }\n  piVar6 = *(int **)(this + 0x160);\n  piVar4 = *(int **)(this + 0x164);\n  if (piVar6 != piVar4) {\n    do {\n      piVar3 = (int *)*piVar6;\n      piVar6 = piVar6 + 1;\n      if (piVar3 != (int *)0x0) {\n        (**(code **)(*piVar3 + 4))(piVar3);\n        piVar4 = *(int **)(this + 0x164);\n      }\n    } while (piVar4 != piVar6);\n    if (piVar4 != *(int **)(this + 0x160)) {\n      *(int **)(this + 0x164) = *(int **)(this + 0x160);\n    }\n  }\n  return;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "undefined4 *puVar2;" (type_identifier "undefined4") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int *piVar3;" (primitive_type "int") (pointer_declarator "*piVar3" (* "*") (identifier "piVar3")) (; ";")) (declaration "int *piVar4;" (primitive_type "int") (pointer_declarator "*piVar4" (* "*") (identifier "piVar4")) (; ";")) (declaration "undefined4 *puVar5;" (type_identifier "undefined4") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "int *piVar6;" (primitive_type "int") (pointer_declarator "*piVar6" (* "*") (identifier "piVar6")) (; ";")) (expression_statement "(*(code *)PTR_release_segments_00432e84)(*(int *)(this + 4) + 0xac);" (call_expression "(*(code *)PTR_release_segments_00432e84)(*(int *)(this + 4) + 0xac)" (parenthesized_expression "(*(code *)PTR_release_segments_00432e84)" (( "(") (pointer_expression "*(code *)PTR_release_segments_00432e84" (* "*") (cast_expression "(code *)PTR_release_segments_00432e84" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_release_segments_00432e84"))) () ")")) (argument_list "(*(int *)(this + 4) + 0xac)" (( "(") (binary_expression "*(int *)(this + 4) + 0xac" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0xac")) () ")"))) (; ";")) (expression_statement "restore_segments(this,*(unordered_map **)(this + 0x1f0));" (call_expression "restore_segments(this,*(unordered_map **)(this + 0x1f0))" (identifier "restore_segments") (argument_list "(this,*(unordered_map **)(this + 0x1f0))" (( "(") (identifier "this") (, ",") (pointer_expression "*(unordered_map **)(this + 0x1f0)" (* "*") (cast_expression "(unordered_map **)(this + 0x1f0)" (( "(") (type_descriptor "unordered_map **" (type_identifier "unordered_map") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 0x1f0)" (( "(") (binary_expression "this + 0x1f0" (identifier "this") (+ "+") (number_literal "0x1f0")) () ")")))) () ")"))) (; ";")) (expression_statement "piVar4 = *(int **)(this + 0x13c);" (assignment_expression "piVar4 = *(int **)(this + 0x13c)" (identifier "piVar4") (= "=") (pointer_expression "*(int **)(this + 0x13c)" (* "*") (cast_expression "(int **)(this + 0x13c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 0x13c)" (( "(") (binary_expression "this + 0x13c" (identifier "this") (+ "+") (number_literal "0x13c")) () ")"))))) (; ";")) (if_statement "if (piVar4 == *(int **)(this + 0x140)) {\n    puVar2 = *(undefined4 **)(this + 0x158);\n  }\n  else {\n    do {\n      (*(code *)PTR_restore_states_00432e8c)(*piVar4);\n      piVar6 = (int *)*piVar4;\n      if (piVar6[0x26] << 0x12 < 0) {\n        (*(code *)PTR_adjust_section_offsets_00432e90)(piVar6);\n        piVar6 = (int *)*piVar4;\n      }\n      bVar1 = *(byte *)(piVar6 + 8);\n      piVar4 = piVar4 + 1;\n      *(byte *)(piVar6 + 8) = bVar1 & 0x5f;\n      if (-1 < piVar6[8] << 3) {\n        *(byte *)(piVar6 + 8) = bVar1 & 0x1f;\n      }\n      (**(code **)(*piVar6 + 0x3c))(piVar6);\n    } while (*(int **)(this + 0x140) != piVar4);\n    puVar2 = *(undefined4 **)(this + 0x158);\n  }" (if "if") (parenthesized_expression "(piVar4 == *(int **)(this + 0x140))" (( "(") (binary_expression "piVar4 == *(int **)(this + 0x140)" (identifier "piVar4") (== "==") (pointer_expression "*(int **)(this + 0x140)" (* "*") (cast_expression "(int **)(this + 0x140)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 0x140)" (( "(") (binary_expression "this + 0x140" (identifier "this") (+ "+") (number_literal "0x140")) () ")"))))) () ")")) (compound_statement "{\n    puVar2 = *(undefined4 **)(this + 0x158);\n  }" ({ "{") (expression_statement "puVar2 = *(undefined4 **)(this + 0x158);" (assignment_expression "puVar2 = *(undefined4 **)(this + 0x158)" (identifier "puVar2") (= "=") (pointer_expression "*(undefined4 **)(this + 0x158)" (* "*") (cast_expression "(undefined4 **)(this + 0x158)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 0x158)" (( "(") (binary_expression "this + 0x158" (identifier "this") (+ "+") (number_literal "0x158")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    do {\n      (*(code *)PTR_restore_states_00432e8c)(*piVar4);\n      piVar6 = (int *)*piVar4;\n      if (piVar6[0x26] << 0x12 < 0) {\n        (*(code *)PTR_adjust_section_offsets_00432e90)(piVar6);\n        piVar6 = (int *)*piVar4;\n      }\n      bVar1 = *(byte *)(piVar6 + 8);\n      piVar4 = piVar4 + 1;\n      *(byte *)(piVar6 + 8) = bVar1 & 0x5f;\n      if (-1 < piVar6[8] << 3) {\n        *(byte *)(piVar6 + 8) = bVar1 & 0x1f;\n      }\n      (**(code **)(*piVar6 + 0x3c))(piVar6);\n    } while (*(int **)(this + 0x140) != piVar4);\n    puVar2 = *(undefined4 **)(this + 0x158);\n  }" (else "else") (compound_statement "{\n    do {\n      (*(code *)PTR_restore_states_00432e8c)(*piVar4);\n      piVar6 = (int *)*piVar4;\n      if (piVar6[0x26] << 0x12 < 0) {\n        (*(code *)PTR_adjust_section_offsets_00432e90)(piVar6);\n        piVar6 = (int *)*piVar4;\n      }\n      bVar1 = *(byte *)(piVar6 + 8);\n      piVar4 = piVar4 + 1;\n      *(byte *)(piVar6 + 8) = bVar1 & 0x5f;\n      if (-1 < piVar6[8] << 3) {\n        *(byte *)(piVar6 + 8) = bVar1 & 0x1f;\n      }\n      (**(code **)(*piVar6 + 0x3c))(piVar6);\n    } while (*(int **)(this + 0x140) != piVar4);\n    puVar2 = *(undefined4 **)(this + 0x158);\n  }" ({ "{") (do_statement "do {\n      (*(code *)PTR_restore_states_00432e8c)(*piVar4);\n      piVar6 = (int *)*piVar4;\n      if (piVar6[0x26] << 0x12 < 0) {\n        (*(code *)PTR_adjust_section_offsets_00432e90)(piVar6);\n        piVar6 = (int *)*piVar4;\n      }\n      bVar1 = *(byte *)(piVar6 + 8);\n      piVar4 = piVar4 + 1;\n      *(byte *)(piVar6 + 8) = bVar1 & 0x5f;\n      if (-1 < piVar6[8] << 3) {\n        *(byte *)(piVar6 + 8) = bVar1 & 0x1f;\n      }\n      (**(code **)(*piVar6 + 0x3c))(piVar6);\n    } while (*(int **)(this + 0x140) != piVar4);" (do "do") (compound_statement "{\n      (*(code *)PTR_restore_states_00432e8c)(*piVar4);\n      piVar6 = (int *)*piVar4;\n      if (piVar6[0x26] << 0x12 < 0) {\n        (*(code *)PTR_adjust_section_offsets_00432e90)(piVar6);\n        piVar6 = (int *)*piVar4;\n      }\n      bVar1 = *(byte *)(piVar6 + 8);\n      piVar4 = piVar4 + 1;\n      *(byte *)(piVar6 + 8) = bVar1 & 0x5f;\n      if (-1 < piVar6[8] << 3) {\n        *(byte *)(piVar6 + 8) = bVar1 & 0x1f;\n      }\n      (**(code **)(*piVar6 + 0x3c))(piVar6);\n    }" ({ "{") (expression_statement "(*(code *)PTR_restore_states_00432e8c)(*piVar4);" (call_expression "(*(code *)PTR_restore_states_00432e8c)(*piVar4)" (parenthesized_expression "(*(code *)PTR_restore_states_00432e8c)" (( "(") (pointer_expression "*(code *)PTR_restore_states_00432e8c" (* "*") (cast_expression "(code *)PTR_restore_states_00432e8c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_restore_states_00432e8c"))) () ")")) (argument_list "(*piVar4)" (( "(") (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) () ")"))) (; ";")) (expression_statement "piVar6 = (int *)*piVar4;" (assignment_expression "piVar6 = (int *)*piVar4" (identifier "piVar6") (= "=") (cast_expression "(int *)*piVar4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar4" (* "*") (identifier "piVar4")))) (; ";")) (if_statement "if (piVar6[0x26] << 0x12 < 0) {\n        (*(code *)PTR_adjust_section_offsets_00432e90)(piVar6);\n        piVar6 = (int *)*piVar4;\n      }" (if "if") (parenthesized_expression "(piVar6[0x26] << 0x12 < 0)" (( "(") (binary_expression "piVar6[0x26] << 0x12 < 0" (binary_expression "piVar6[0x26] << 0x12" (subscript_expression "piVar6[0x26]" (identifier "piVar6") ([ "[") (number_literal "0x26") (] "]")) (<< "<<") (number_literal "0x12")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        (*(code *)PTR_adjust_section_offsets_00432e90)(piVar6);\n        piVar6 = (int *)*piVar4;\n      }" ({ "{") (expression_statement "(*(code *)PTR_adjust_section_offsets_00432e90)(piVar6);" (call_expression "(*(code *)PTR_adjust_section_offsets_00432e90)(piVar6)" (parenthesized_expression "(*(code *)PTR_adjust_section_offsets_00432e90)" (( "(") (pointer_expression "*(code *)PTR_adjust_section_offsets_00432e90" (* "*") (cast_expression "(code *)PTR_adjust_section_offsets_00432e90" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_adjust_section_offsets_00432e90"))) () ")")) (argument_list "(piVar6)" (( "(") (identifier "piVar6") () ")"))) (; ";")) (expression_statement "piVar6 = (int *)*piVar4;" (assignment_expression "piVar6 = (int *)*piVar4" (identifier "piVar6") (= "=") (cast_expression "(int *)*piVar4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar4" (* "*") (identifier "piVar4")))) (; ";")) (} "}"))) (expression_statement "bVar1 = *(byte *)(piVar6 + 8);" (assignment_expression "bVar1 = *(byte *)(piVar6 + 8)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)(piVar6 + 8)" (* "*") (cast_expression "(byte *)(piVar6 + 8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar6 + 8)" (( "(") (binary_expression "piVar6 + 8" (identifier "piVar6") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "piVar4 = piVar4 + 1;" (assignment_expression "piVar4 = piVar4 + 1" (identifier "piVar4") (= "=") (binary_expression "piVar4 + 1" (identifier "piVar4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(byte *)(piVar6 + 8) = bVar1 & 0x5f;" (assignment_expression "*(byte *)(piVar6 + 8) = bVar1 & 0x5f" (pointer_expression "*(byte *)(piVar6 + 8)" (* "*") (cast_expression "(byte *)(piVar6 + 8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar6 + 8)" (( "(") (binary_expression "piVar6 + 8" (identifier "piVar6") (+ "+") (number_literal "8")) () ")")))) (= "=") (binary_expression "bVar1 & 0x5f" (identifier "bVar1") (& "&") (number_literal "0x5f"))) (; ";")) (if_statement "if (-1 < piVar6[8] << 3) {\n        *(byte *)(piVar6 + 8) = bVar1 & 0x1f;\n      }" (if "if") (parenthesized_expression "(-1 < piVar6[8] << 3)" (( "(") (binary_expression "-1 < piVar6[8] << 3" (number_literal "-1") (< "<") (binary_expression "piVar6[8] << 3" (subscript_expression "piVar6[8]" (identifier "piVar6") ([ "[") (number_literal "8") (] "]")) (<< "<<") (number_literal "3"))) () ")")) (compound_statement "{\n        *(byte *)(piVar6 + 8) = bVar1 & 0x1f;\n      }" ({ "{") (expression_statement "*(byte *)(piVar6 + 8) = bVar1 & 0x1f;" (assignment_expression "*(byte *)(piVar6 + 8) = bVar1 & 0x1f" (pointer_expression "*(byte *)(piVar6 + 8)" (* "*") (cast_expression "(byte *)(piVar6 + 8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar6 + 8)" (( "(") (binary_expression "piVar6 + 8" (identifier "piVar6") (+ "+") (number_literal "8")) () ")")))) (= "=") (binary_expression "bVar1 & 0x1f" (identifier "bVar1") (& "&") (number_literal "0x1f"))) (; ";")) (} "}"))) (expression_statement "(**(code **)(*piVar6 + 0x3c))(piVar6);" (call_expression "(**(code **)(*piVar6 + 0x3c))(piVar6)" (parenthesized_expression "(**(code **)(*piVar6 + 0x3c))" (( "(") (pointer_expression "**(code **)(*piVar6 + 0x3c)" (* "*") (pointer_expression "*(code **)(*piVar6 + 0x3c)" (* "*") (cast_expression "(code **)(*piVar6 + 0x3c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar6 + 0x3c)" (( "(") (binary_expression "*piVar6 + 0x3c" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (+ "+") (number_literal "0x3c")) () ")"))))) () ")")) (argument_list "(piVar6)" (( "(") (identifier "piVar6") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(int **)(this + 0x140) != piVar4)" (( "(") (binary_expression "*(int **)(this + 0x140) != piVar4" (pointer_expression "*(int **)(this + 0x140)" (* "*") (cast_expression "(int **)(this + 0x140)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 0x140)" (( "(") (binary_expression "this + 0x140" (identifier "this") (+ "+") (number_literal "0x140")) () ")")))) (!= "!=") (identifier "piVar4")) () ")")) (; ";")) (expression_statement "puVar2 = *(undefined4 **)(this + 0x158);" (assignment_expression "puVar2 = *(undefined4 **)(this + 0x158)" (identifier "puVar2") (= "=") (pointer_expression "*(undefined4 **)(this + 0x158)" (* "*") (cast_expression "(undefined4 **)(this + 0x158)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 0x158)" (( "(") (binary_expression "this + 0x158" (identifier "this") (+ "+") (number_literal "0x158")) () ")"))))) (; ";")) (} "}")))) (expression_statement "puVar5 = *(undefined4 **)(this + 0x154);" (assignment_expression "puVar5 = *(undefined4 **)(this + 0x154)" (identifier "puVar5") (= "=") (pointer_expression "*(undefined4 **)(this + 0x154)" (* "*") (cast_expression "(undefined4 **)(this + 0x154)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 0x154)" (( "(") (binary_expression "this + 0x154" (identifier "this") (+ "+") (number_literal "0x154")) () ")"))))) (; ";")) (if_statement "if (puVar5 != puVar2) {\n    do {\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      bVar1 = *(byte *)(piVar4 + 8);\n      *(byte *)(piVar4 + 8) = bVar1 & 0x5f;\n      if (-1 < piVar4[8] << 3) {\n        *(byte *)(piVar4 + 8) = bVar1 & 0x1f;\n      }\n      (**(code **)(*piVar4 + 0x3c))(piVar4);\n    } while (*(undefined4 **)(this + 0x158) != puVar5);\n  }" (if "if") (parenthesized_expression "(puVar5 != puVar2)" (( "(") (binary_expression "puVar5 != puVar2" (identifier "puVar5") (!= "!=") (identifier "puVar2")) () ")")) (compound_statement "{\n    do {\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      bVar1 = *(byte *)(piVar4 + 8);\n      *(byte *)(piVar4 + 8) = bVar1 & 0x5f;\n      if (-1 < piVar4[8] << 3) {\n        *(byte *)(piVar4 + 8) = bVar1 & 0x1f;\n      }\n      (**(code **)(*piVar4 + 0x3c))(piVar4);\n    } while (*(undefined4 **)(this + 0x158) != puVar5);\n  }" ({ "{") (do_statement "do {\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      bVar1 = *(byte *)(piVar4 + 8);\n      *(byte *)(piVar4 + 8) = bVar1 & 0x5f;\n      if (-1 < piVar4[8] << 3) {\n        *(byte *)(piVar4 + 8) = bVar1 & 0x1f;\n      }\n      (**(code **)(*piVar4 + 0x3c))(piVar4);\n    } while (*(undefined4 **)(this + 0x158) != puVar5);" (do "do") (compound_statement "{\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      bVar1 = *(byte *)(piVar4 + 8);\n      *(byte *)(piVar4 + 8) = bVar1 & 0x5f;\n      if (-1 < piVar4[8] << 3) {\n        *(byte *)(piVar4 + 8) = bVar1 & 0x1f;\n      }\n      (**(code **)(*piVar4 + 0x3c))(piVar4);\n    }" ({ "{") (expression_statement "piVar4 = (int *)*puVar5;" (assignment_expression "piVar4 = (int *)*puVar5" (identifier "piVar4") (= "=") (cast_expression "(int *)*puVar5" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar5" (* "*") (identifier "puVar5")))) (; ";")) (expression_statement "puVar5 = puVar5 + 1;" (assignment_expression "puVar5 = puVar5 + 1" (identifier "puVar5") (= "=") (binary_expression "puVar5 + 1" (identifier "puVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar1 = *(byte *)(piVar4 + 8);" (assignment_expression "bVar1 = *(byte *)(piVar4 + 8)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)(piVar4 + 8)" (* "*") (cast_expression "(byte *)(piVar4 + 8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar4 + 8)" (( "(") (binary_expression "piVar4 + 8" (identifier "piVar4") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "*(byte *)(piVar4 + 8) = bVar1 & 0x5f;" (assignment_expression "*(byte *)(piVar4 + 8) = bVar1 & 0x5f" (pointer_expression "*(byte *)(piVar4 + 8)" (* "*") (cast_expression "(byte *)(piVar4 + 8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar4 + 8)" (( "(") (binary_expression "piVar4 + 8" (identifier "piVar4") (+ "+") (number_literal "8")) () ")")))) (= "=") (binary_expression "bVar1 & 0x5f" (identifier "bVar1") (& "&") (number_literal "0x5f"))) (; ";")) (if_statement "if (-1 < piVar4[8] << 3) {\n        *(byte *)(piVar4 + 8) = bVar1 & 0x1f;\n      }" (if "if") (parenthesized_expression "(-1 < piVar4[8] << 3)" (( "(") (binary_expression "-1 < piVar4[8] << 3" (number_literal "-1") (< "<") (binary_expression "piVar4[8] << 3" (subscript_expression "piVar4[8]" (identifier "piVar4") ([ "[") (number_literal "8") (] "]")) (<< "<<") (number_literal "3"))) () ")")) (compound_statement "{\n        *(byte *)(piVar4 + 8) = bVar1 & 0x1f;\n      }" ({ "{") (expression_statement "*(byte *)(piVar4 + 8) = bVar1 & 0x1f;" (assignment_expression "*(byte *)(piVar4 + 8) = bVar1 & 0x1f" (pointer_expression "*(byte *)(piVar4 + 8)" (* "*") (cast_expression "(byte *)(piVar4 + 8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar4 + 8)" (( "(") (binary_expression "piVar4 + 8" (identifier "piVar4") (+ "+") (number_literal "8")) () ")")))) (= "=") (binary_expression "bVar1 & 0x1f" (identifier "bVar1") (& "&") (number_literal "0x1f"))) (; ";")) (} "}"))) (expression_statement "(**(code **)(*piVar4 + 0x3c))(piVar4);" (call_expression "(**(code **)(*piVar4 + 0x3c))(piVar4)" (parenthesized_expression "(**(code **)(*piVar4 + 0x3c))" (( "(") (pointer_expression "**(code **)(*piVar4 + 0x3c)" (* "*") (pointer_expression "*(code **)(*piVar4 + 0x3c)" (* "*") (cast_expression "(code **)(*piVar4 + 0x3c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar4 + 0x3c)" (( "(") (binary_expression "*piVar4 + 0x3c" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (+ "+") (number_literal "0x3c")) () ")"))))) () ")")) (argument_list "(piVar4)" (( "(") (identifier "piVar4") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(undefined4 **)(this + 0x158) != puVar5)" (( "(") (binary_expression "*(undefined4 **)(this + 0x158) != puVar5" (pointer_expression "*(undefined4 **)(this + 0x158)" (* "*") (cast_expression "(undefined4 **)(this + 0x158)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 0x158)" (( "(") (binary_expression "this + 0x158" (identifier "this") (+ "+") (number_literal "0x158")) () ")")))) (!= "!=") (identifier "puVar5")) () ")")) (; ";")) (} "}"))) (expression_statement "piVar6 = *(int **)(this + 0x1e4);" (assignment_expression "piVar6 = *(int **)(this + 0x1e4)" (identifier "piVar6") (= "=") (pointer_expression "*(int **)(this + 0x1e4)" (* "*") (cast_expression "(int **)(this + 0x1e4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 0x1e4)" (( "(") (binary_expression "this + 0x1e4" (identifier "this") (+ "+") (number_literal "0x1e4")) () ")"))))) (; ";")) (expression_statement "piVar4 = *(int **)(this + 0x1e8);" (assignment_expression "piVar4 = *(int **)(this + 0x1e8)" (identifier "piVar4") (= "=") (pointer_expression "*(int **)(this + 0x1e8)" (* "*") (cast_expression "(int **)(this + 0x1e8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 0x1e8)" (( "(") (binary_expression "this + 0x1e8" (identifier "this") (+ "+") (number_literal "0x1e8")) () ")"))))) (; ";")) (if_statement "if (piVar6 != piVar4) {\n    do {\n      piVar3 = (int *)*piVar6;\n      piVar6 = piVar6 + 1;\n      if (piVar3 != (int *)0x0) {\n        (**(code **)(*piVar3 + 4))(piVar3);\n        piVar4 = *(int **)(this + 0x1e8);\n      }\n    } while (piVar4 != piVar6);\n    if (*(int **)(this + 0x1e4) != piVar4) {\n      *(int **)(this + 0x1e8) = *(int **)(this + 0x1e4);\n    }\n  }" (if "if") (parenthesized_expression "(piVar6 != piVar4)" (( "(") (binary_expression "piVar6 != piVar4" (identifier "piVar6") (!= "!=") (identifier "piVar4")) () ")")) (compound_statement "{\n    do {\n      piVar3 = (int *)*piVar6;\n      piVar6 = piVar6 + 1;\n      if (piVar3 != (int *)0x0) {\n        (**(code **)(*piVar3 + 4))(piVar3);\n        piVar4 = *(int **)(this + 0x1e8);\n      }\n    } while (piVar4 != piVar6);\n    if (*(int **)(this + 0x1e4) != piVar4) {\n      *(int **)(this + 0x1e8) = *(int **)(this + 0x1e4);\n    }\n  }" ({ "{") (do_statement "do {\n      piVar3 = (int *)*piVar6;\n      piVar6 = piVar6 + 1;\n      if (piVar3 != (int *)0x0) {\n        (**(code **)(*piVar3 + 4))(piVar3);\n        piVar4 = *(int **)(this + 0x1e8);\n      }\n    } while (piVar4 != piVar6);" (do "do") (compound_statement "{\n      piVar3 = (int *)*piVar6;\n      piVar6 = piVar6 + 1;\n      if (piVar3 != (int *)0x0) {\n        (**(code **)(*piVar3 + 4))(piVar3);\n        piVar4 = *(int **)(this + 0x1e8);\n      }\n    }" ({ "{") (expression_statement "piVar3 = (int *)*piVar6;" (assignment_expression "piVar3 = (int *)*piVar6" (identifier "piVar3") (= "=") (cast_expression "(int *)*piVar6" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar6" (* "*") (identifier "piVar6")))) (; ";")) (expression_statement "piVar6 = piVar6 + 1;" (assignment_expression "piVar6 = piVar6 + 1" (identifier "piVar6") (= "=") (binary_expression "piVar6 + 1" (identifier "piVar6") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (piVar3 != (int *)0x0) {\n        (**(code **)(*piVar3 + 4))(piVar3);\n        piVar4 = *(int **)(this + 0x1e8);\n      }" (if "if") (parenthesized_expression "(piVar3 != (int *)0x0)" (( "(") (binary_expression "piVar3 != (int *)0x0" (identifier "piVar3") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        (**(code **)(*piVar3 + 4))(piVar3);\n        piVar4 = *(int **)(this + 0x1e8);\n      }" ({ "{") (expression_statement "(**(code **)(*piVar3 + 4))(piVar3);" (call_expression "(**(code **)(*piVar3 + 4))(piVar3)" (parenthesized_expression "(**(code **)(*piVar3 + 4))" (( "(") (pointer_expression "**(code **)(*piVar3 + 4)" (* "*") (pointer_expression "*(code **)(*piVar3 + 4)" (* "*") (cast_expression "(code **)(*piVar3 + 4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar3 + 4)" (( "(") (binary_expression "*piVar3 + 4" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (+ "+") (number_literal "4")) () ")"))))) () ")")) (argument_list "(piVar3)" (( "(") (identifier "piVar3") () ")"))) (; ";")) (expression_statement "piVar4 = *(int **)(this + 0x1e8);" (assignment_expression "piVar4 = *(int **)(this + 0x1e8)" (identifier "piVar4") (= "=") (pointer_expression "*(int **)(this + 0x1e8)" (* "*") (cast_expression "(int **)(this + 0x1e8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 0x1e8)" (( "(") (binary_expression "this + 0x1e8" (identifier "this") (+ "+") (number_literal "0x1e8")) () ")"))))) (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "(piVar4 != piVar6)" (( "(") (binary_expression "piVar4 != piVar6" (identifier "piVar4") (!= "!=") (identifier "piVar6")) () ")")) (; ";")) (if_statement "if (*(int **)(this + 0x1e4) != piVar4) {\n      *(int **)(this + 0x1e8) = *(int **)(this + 0x1e4);\n    }" (if "if") (parenthesized_expression "(*(int **)(this + 0x1e4) != piVar4)" (( "(") (binary_expression "*(int **)(this + 0x1e4) != piVar4" (pointer_expression "*(int **)(this + 0x1e4)" (* "*") (cast_expression "(int **)(this + 0x1e4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 0x1e4)" (( "(") (binary_expression "this + 0x1e4" (identifier "this") (+ "+") (number_literal "0x1e4")) () ")")))) (!= "!=") (identifier "piVar4")) () ")")) (compound_statement "{\n      *(int **)(this + 0x1e8) = *(int **)(this + 0x1e4);\n    }" ({ "{") (expression_statement "*(int **)(this + 0x1e8) = *(int **)(this + 0x1e4);" (assignment_expression "*(int **)(this + 0x1e8) = *(int **)(this + 0x1e4)" (pointer_expression "*(int **)(this + 0x1e8)" (* "*") (cast_expression "(int **)(this + 0x1e8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 0x1e8)" (( "(") (binary_expression "this + 0x1e8" (identifier "this") (+ "+") (number_literal "0x1e8")) () ")")))) (= "=") (pointer_expression "*(int **)(this + 0x1e4)" (* "*") (cast_expression "(int **)(this + 0x1e4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 0x1e4)" (( "(") (binary_expression "this + 0x1e4" (identifier "this") (+ "+") (number_literal "0x1e4")) () ")"))))) (; ";")) (} "}"))) (} "}"))) (expression_statement "piVar6 = *(int **)(this + 0x160);" (assignment_expression "piVar6 = *(int **)(this + 0x160)" (identifier "piVar6") (= "=") (pointer_expression "*(int **)(this + 0x160)" (* "*") (cast_expression "(int **)(this + 0x160)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 0x160)" (( "(") (binary_expression "this + 0x160" (identifier "this") (+ "+") (number_literal "0x160")) () ")"))))) (; ";")) (expression_statement "piVar4 = *(int **)(this + 0x164);" (assignment_expression "piVar4 = *(int **)(this + 0x164)" (identifier "piVar4") (= "=") (pointer_expression "*(int **)(this + 0x164)" (* "*") (cast_expression "(int **)(this + 0x164)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 0x164)" (( "(") (binary_expression "this + 0x164" (identifier "this") (+ "+") (number_literal "0x164")) () ")"))))) (; ";")) (if_statement "if (piVar6 != piVar4) {\n    do {\n      piVar3 = (int *)*piVar6;\n      piVar6 = piVar6 + 1;\n      if (piVar3 != (int *)0x0) {\n        (**(code **)(*piVar3 + 4))(piVar3);\n        piVar4 = *(int **)(this + 0x164);\n      }\n    } while (piVar4 != piVar6);\n    if (piVar4 != *(int **)(this + 0x160)) {\n      *(int **)(this + 0x164) = *(int **)(this + 0x160);\n    }\n  }" (if "if") (parenthesized_expression "(piVar6 != piVar4)" (( "(") (binary_expression "piVar6 != piVar4" (identifier "piVar6") (!= "!=") (identifier "piVar4")) () ")")) (compound_statement "{\n    do {\n      piVar3 = (int *)*piVar6;\n      piVar6 = piVar6 + 1;\n      if (piVar3 != (int *)0x0) {\n        (**(code **)(*piVar3 + 4))(piVar3);\n        piVar4 = *(int **)(this + 0x164);\n      }\n    } while (piVar4 != piVar6);\n    if (piVar4 != *(int **)(this + 0x160)) {\n      *(int **)(this + 0x164) = *(int **)(this + 0x160);\n    }\n  }" ({ "{") (do_statement "do {\n      piVar3 = (int *)*piVar6;\n      piVar6 = piVar6 + 1;\n      if (piVar3 != (int *)0x0) {\n        (**(code **)(*piVar3 + 4))(piVar3);\n        piVar4 = *(int **)(this + 0x164);\n      }\n    } while (piVar4 != piVar6);" (do "do") (compound_statement "{\n      piVar3 = (int *)*piVar6;\n      piVar6 = piVar6 + 1;\n      if (piVar3 != (int *)0x0) {\n        (**(code **)(*piVar3 + 4))(piVar3);\n        piVar4 = *(int **)(this + 0x164);\n      }\n    }" ({ "{") (expression_statement "piVar3 = (int *)*piVar6;" (assignment_expression "piVar3 = (int *)*piVar6" (identifier "piVar3") (= "=") (cast_expression "(int *)*piVar6" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar6" (* "*") (identifier "piVar6")))) (; ";")) (expression_statement "piVar6 = piVar6 + 1;" (assignment_expression "piVar6 = piVar6 + 1" (identifier "piVar6") (= "=") (binary_expression "piVar6 + 1" (identifier "piVar6") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (piVar3 != (int *)0x0) {\n        (**(code **)(*piVar3 + 4))(piVar3);\n        piVar4 = *(int **)(this + 0x164);\n      }" (if "if") (parenthesized_expression "(piVar3 != (int *)0x0)" (( "(") (binary_expression "piVar3 != (int *)0x0" (identifier "piVar3") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        (**(code **)(*piVar3 + 4))(piVar3);\n        piVar4 = *(int **)(this + 0x164);\n      }" ({ "{") (expression_statement "(**(code **)(*piVar3 + 4))(piVar3);" (call_expression "(**(code **)(*piVar3 + 4))(piVar3)" (parenthesized_expression "(**(code **)(*piVar3 + 4))" (( "(") (pointer_expression "**(code **)(*piVar3 + 4)" (* "*") (pointer_expression "*(code **)(*piVar3 + 4)" (* "*") (cast_expression "(code **)(*piVar3 + 4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar3 + 4)" (( "(") (binary_expression "*piVar3 + 4" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (+ "+") (number_literal "4")) () ")"))))) () ")")) (argument_list "(piVar3)" (( "(") (identifier "piVar3") () ")"))) (; ";")) (expression_statement "piVar4 = *(int **)(this + 0x164);" (assignment_expression "piVar4 = *(int **)(this + 0x164)" (identifier "piVar4") (= "=") (pointer_expression "*(int **)(this + 0x164)" (* "*") (cast_expression "(int **)(this + 0x164)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 0x164)" (( "(") (binary_expression "this + 0x164" (identifier "this") (+ "+") (number_literal "0x164")) () ")"))))) (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "(piVar4 != piVar6)" (( "(") (binary_expression "piVar4 != piVar6" (identifier "piVar4") (!= "!=") (identifier "piVar6")) () ")")) (; ";")) (if_statement "if (piVar4 != *(int **)(this + 0x160)) {\n      *(int **)(this + 0x164) = *(int **)(this + 0x160);\n    }" (if "if") (parenthesized_expression "(piVar4 != *(int **)(this + 0x160))" (( "(") (binary_expression "piVar4 != *(int **)(this + 0x160)" (identifier "piVar4") (!= "!=") (pointer_expression "*(int **)(this + 0x160)" (* "*") (cast_expression "(int **)(this + 0x160)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 0x160)" (( "(") (binary_expression "this + 0x160" (identifier "this") (+ "+") (number_literal "0x160")) () ")"))))) () ")")) (compound_statement "{\n      *(int **)(this + 0x164) = *(int **)(this + 0x160);\n    }" ({ "{") (expression_statement "*(int **)(this + 0x164) = *(int **)(this + 0x160);" (assignment_expression "*(int **)(this + 0x164) = *(int **)(this + 0x160)" (pointer_expression "*(int **)(this + 0x164)" (* "*") (cast_expression "(int **)(this + 0x164)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 0x164)" (( "(") (binary_expression "this + 0x164" (identifier "this") (+ "+") (number_literal "0x164")) () ")")))) (= "=") (pointer_expression "*(int **)(this + 0x160)" (* "*") (cast_expression "(int **)(this + 0x160)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 0x160)" (( "(") (binary_expression "this + 0x160" (identifier "this") (+ "+") (number_literal "0x160")) () ")"))))) (; ";")) (} "}"))) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* WARNING: Struct "Output_section_headers": ignoring overlapping field "layout_" */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Struct "Output_reduced_debug_abbrev_section": ignoring overlapping field "data_" */
/* WARNING: Struct "Output_reduced_debug_info_section": ignoring overlapping field "data_" */
/* DWARF original prototype: void clean_up_after_relaxation(Layout * this) */

void __thiscall var_2::type_1::function_1(type_1 *this)

{
  type_2 var_6;
  type_3 var_8;
  type_4 *pOVar3;
  type_5 *var_11;
  type_6 *var_12;
  type_3 var_10;
  type_3 var_5;
  type_3 var_7;
  type_3 var_9;
  
  (*(type_7 *)PTR_release_segments_00432e84)(&this->script_options_->script_sections_);
  var_1(this,this->segment_states_);
  var_5 = (this->section_list_).
            super__Vector_base<var_2::type_4*,var_3::allocator<var_2::type_4*>var_4>.
            _M_impl._M_start;
  if (var_5 ==
      (this->section_list_).
      super__Vector_base<var_2::type_4*,var_3::allocator<var_2::type_4*>var_4>._M_impl.
      _M_finish) {
    var_8 = (this->special_output_list_).
              super__Vector_base<var_2::type_6*,var_3::allocator<var_2::type_6*>var_4>._M_impl.
              _M_finish;
  }
  else {
    do {
      (*(type_7 *)PTR_restore_states_00432e8c)(*var_5);
      pOVar3 = *var_5;
      if (*(int *)&pOVar3->field_0x98 << 0x12 < 0) {
        (*(type_7 *)PTR_adjust_section_offsets_00432e90)(pOVar3);
        pOVar3 = *var_5;
      }
      var_6 = (pOVar3->super_Output_data).field_0x20;
      var_5 = var_5 + 1;
      (pOVar3->super_Output_data).field_0x20 = var_6 & 0x5f;
      if (-1 < *(int *)&(pOVar3->super_Output_data).field_0x20 << 3) {
        (pOVar3->super_Output_data).field_0x20 = var_6 & 0x1f;
      }
      (*(pOVar3->super_Output_data)._vptr_Output_data[0xf])(pOVar3);
    } while ((this->section_list_).
             super__Vector_base<var_2::type_4*,var_3::allocator<var_2::type_4*>var_4>.
             _M_impl._M_finish != var_5);
    var_8 = (this->special_output_list_).
              super__Vector_base<var_2::type_6*,var_3::allocator<var_2::type_6*>var_4>._M_impl.
              _M_finish;
  }
  var_7 = (this->special_output_list_).
            super__Vector_base<var_2::type_6*,var_3::allocator<var_2::type_6*>var_4>._M_impl.
            _M_start;
  if (var_7 != var_8) {
    do {
      var_12 = *var_7;
      var_7 = var_7 + 1;
      var_6 = var_12->field_0x20;
      var_12->field_0x20 = var_6 & 0x5f;
      if (-1 < *(int *)&var_12->field_0x20 << 3) {
        var_12->field_0x20 = var_6 & 0x1f;
      }
      (*var_12->_vptr_Output_data[0xf])(var_12);
    } while ((this->special_output_list_).
             super__Vector_base<var_2::type_6*,var_3::allocator<var_2::type_6*>var_4>._M_impl.
             _M_finish != var_7);
  }
  var_9 = (this->script_output_section_data_list_).
            super__Vector_base<var_2::type_5*,var_3::allocator<var_2::type_5*>var_4>
            ._M_impl._M_start;
  var_10 = (this->script_output_section_data_list_).
            super__Vector_base<var_2::type_5*,var_3::allocator<var_2::type_5*>var_4>
            ._M_impl._M_finish;
  if (var_9 != var_10) {
    do {
      var_11 = *var_9;
      var_9 = var_9 + 1;
      if (var_11 != (type_5 *)0x0) {
        (*(var_11->super_Output_data)._vptr_Output_data[1])(var_11);
        var_10 = (this->script_output_section_data_list_).
                  super__Vector_base<var_2::type_5*,var_3::allocator<var_2::type_5*>var_4>
                  ._M_impl._M_finish;
      }
    } while (var_10 != var_9);
    var_9 = (this->script_output_section_data_list_).
              super__Vector_base<var_2::type_5*,var_3::allocator<var_2::type_5*>var_4>
              ._M_impl._M_start;
    if (var_9 != var_10) {
      (this->script_output_section_data_list_).
      super__Vector_base<var_2::type_5*,var_3::allocator<var_2::type_5*>var_4>.
      _M_impl._M_finish = var_9;
    }
  }
  var_7 = (this->relax_output_list_).
            super__Vector_base<var_2::type_6*,var_3::allocator<var_2::type_6*>var_4>._M_impl.
            _M_start;
  var_8 = (this->relax_output_list_).
            super__Vector_base<var_2::type_6*,var_3::allocator<var_2::type_6*>var_4>._M_impl.
            _M_finish;
  if (var_7 != var_8) {
    do {
      var_12 = *var_7;
      var_7 = var_7 + 1;
      if (var_12 != (type_6 *)0x0) {
        (*var_12->_vptr_Output_data[1])(var_12);
        var_8 = (this->relax_output_list_).
                  super__Vector_base<var_2::type_6*,var_3::allocator<var_2::type_6*>var_4>.
                  _M_impl._M_finish;
      }
    } while (var_8 != var_7);
    var_7 = (this->relax_output_list_).
              super__Vector_base<var_2::type_6*,var_3::allocator<var_2::type_6*>var_4>._M_impl.
              _M_start;
    if (var_8 != var_7) {
      (this->relax_output_list_).
      super__Vector_base<var_2::type_6*,var_3::allocator<var_2::type_6*>var_4>._M_impl._M_finish
           = var_7;
    }
  }
  return;
}


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

/* gold::Layout::MASKED() */

void __thiscall gold::Layout::MASKED(Layout *this)

{
  byte bVar1;
  undefined4 *puVar2;
  int *piVar3;
  int *piVar4;
  undefined4 *puVar5;
  int *piVar6;
  
  (*(code *)PTR_release_segments_00432e84)(*(int *)(this + 4) + 0xac);
  restore_segments(this,*(unordered_map **)(this + 0x1f0));
  piVar4 = *(int **)(this + 0x13c);
  if (piVar4 == *(int **)(this + 0x140)) {
    puVar2 = *(undefined4 **)(this + 0x158);
  }
  else {
    do {
      (*(code *)PTR_restore_states_00432e8c)(*piVar4);
      piVar6 = (int *)*piVar4;
      if (piVar6[0x26] << 0x12 < 0) {
        (*(code *)PTR_adjust_section_offsets_00432e90)(piVar6);
        piVar6 = (int *)*piVar4;
      }
      bVar1 = *(byte *)(piVar6 + 8);
      piVar4 = piVar4 + 1;
      *(byte *)(piVar6 + 8) = bVar1 & 0x5f;
      if (-1 < piVar6[8] << 3) {
        *(byte *)(piVar6 + 8) = bVar1 & 0x1f;
      }
      (**(code **)(*piVar6 + 0x3c))(piVar6);
    } while (*(int **)(this + 0x140) != piVar4);
    puVar2 = *(undefined4 **)(this + 0x158);
  }
  puVar5 = *(undefined4 **)(this + 0x154);
  if (puVar5 != puVar2) {
    do {
      piVar4 = (int *)*puVar5;
      puVar5 = puVar5 + 1;
      bVar1 = *(byte *)(piVar4 + 8);
      *(byte *)(piVar4 + 8) = bVar1 & 0x5f;
      if (-1 < piVar4[8] << 3) {
        *(byte *)(piVar4 + 8) = bVar1 & 0x1f;
      }
      (**(code **)(*piVar4 + 0x3c))(piVar4);
    } while (*(undefined4 **)(this + 0x158) != puVar5);
  }
  piVar6 = *(int **)(this + 0x1e4);
  piVar4 = *(int **)(this + 0x1e8);
  if (piVar6 != piVar4) {
    do {
      piVar3 = (int *)*piVar6;
      piVar6 = piVar6 + 1;
      if (piVar3 != (int *)0x0) {
        (**(code **)(*piVar3 + 4))(piVar3);
        piVar4 = *(int **)(this + 0x1e8);
      }
    } while (piVar4 != piVar6);
    if (*(int **)(this + 0x1e4) != piVar4) {
      *(int **)(this + 0x1e8) = *(int **)(this + 0x1e4);
    }
  }
  piVar6 = *(int **)(this + 0x160);
  piVar4 = *(int **)(this + 0x164);
  if (piVar6 != piVar4) {
    do {
      piVar3 = (int *)*piVar6;
      piVar6 = piVar6 + 1;
      if (piVar3 != (int *)0x0) {
        (**(code **)(*piVar3 + 4))(piVar3);
        piVar4 = *(int **)(this + 0x164);
      }
    } while (piVar4 != piVar6);
    if (piVar4 != *(int **)(this + 0x160)) {
      *(int **)(this + 0x164) = *(int **)(this + 0x160);
    }
  }
  return;
}

