
/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* DWARF original prototype: bool should_add_dynsym_entry(Symbol * this, Symbol_table * symtab) */

bool __thiscall gold::Symbol::should_add_dynsym_entry(Symbol *this,Symbol_table *symtab)

{
  undefined3 extraout_var;
  undefined3 extraout_var_00;
  uint uVar1;
  bool bVar4;
  undefined4 uVar2;
  uint uVar3;
  undefined1 uVar5;
  uint uVar6;
  int iVar7;
  pointer ppOVar8;
  undefined *puVar9;
  Output_segment *pOVar10;
  char *pcVar11;
  string *unaff_s3;
  int unaff_s4;
  char *pcVar12;
  char *unaff_s6;
  bool is_global;
  char acStack_38 [16];
  int local_28 [2];
  
  puVar9 = PTR_parameters_00432be0;
  uVar1 = *(uint *)&this->field_0x28;
  uVar3 = -((int)(uVar1 << 0x1e) >> 0x1f);
  if (uVar3 == 0) {
    return false;
  }
  if (((int)(uVar1 << 0x16) < 0) ||
     (((((int)(uVar1 << 0x17) < 0 && ((int)(uVar1 << 0x18) < 0)) &&
       (((uVar1 & 0xc00000) == 0 || ((uVar1 & 0xc00000) == 0xc00000)))) &&
      (-1 < (int)(uVar1 << 0x1c))))) goto LAB_0022eb68;
  iVar7 = *(int *)(*(int *)PTR_parameters_00432be0 + 8);
  if (iVar7 != 0) {
    if (((*(char *)(iVar7 + 0x18b5) == '\0') || (*(char *)(iVar7 + 0x1a29) != '\0')) ||
       ((uVar1 << 0x10) >> 0x1d != 0)) {
      if ((uVar1 & 0xe000) == 0) {
        uVar6 = (uVar1 << 0x1c) >> 0x1f;
        if ((int)((this->u1_).output_segment)->output_lists_[3].
                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl
                 ._M_end_of_storage < 0) goto LAB_0022ece0;
        iVar7 = *(int *)(*(int *)PTR_parameters_00432be0 + 8);
      }
    }
    else {
      if ((uVar1 & 0xe000) != 0) {
        (*(code *)PTR_do_gold_unreachable_004323c4)
                  (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_s__0043226c + -0x2a70);
LAB_0022f0c4:
        puVar9 = PTR_LAB_0043220c + 0x44a8;
        (*(code *)PTR_do_gold_unreachable_004323c4)(puVar9,0x50b,PTR_s__0043226c + -0x2a84);
                    /* catch() { ... } // from try @ 0022ec68 with catch @ 0022f0e0 */
        if (_is_global != acStack_38) {
          (*(code *)PTR_operator_delete_0043228c)(_is_global);
        }
        uVar5 = (*(code *)PTR__Unwind_Resume_00432258)(puVar9);
        return (bool)uVar5;
      }
      pOVar10 = (this->u1_).output_segment;
      if ((int)pOVar10->output_lists_[3].
               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.
               _M_end_of_storage < 0) goto LAB_0022ecdc;
      if (((int)(uVar1 << 0x1d) < 0) && (uVar1 = (this->u2_).shndx, uVar1 != 0)) {
        ppOVar8 = pOVar10->output_lists_[4].
                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.
                  _M_impl._M_end_of_storage;
        if ((uint)((int)pOVar10->output_lists_[5].
                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.
                        _M_impl._M_start - (int)ppOVar8 >> 2) <= uVar1) goto LAB_0022f0c4;
        if (ppOVar8[uVar1] == (Output_data *)0x0) {
          bVar4 = Symbol_table::is_section_folded(symtab,(Relobj *)pOVar10,uVar1);
          if (CONCAT31(extraout_var_00,bVar4) == 0) {
            return false;
          }
          uVar1 = *(uint *)&this->field_0x28;
          if (((uVar1 & 0xe000) == 0) &&
             (uVar6 = (uVar1 << 0x1c) >> 0x1f,
             (int)((this->u1_).output_segment)->output_lists_[3].
                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.
                  _M_impl._M_end_of_storage < 0)) goto LAB_0022ece0;
        }
      }
      iVar7 = *(int *)(*(int *)puVar9 + 8);
      if (iVar7 == 0) goto LAB_0022ee04;
    }
    unaff_s3 = (string *)&is_global;
    bVar4 = Version_script_info::get_symbol_version
                      ((Version_script_info *)(iVar7 + 0x59b8),this->name_,(string *)0x0,
                       (bool *)unaff_s3);
    if ((CONCAT31(extraout_var,bVar4) != 0) && (is_global == false)) {
LAB_0022ec20:
      if (*(int *)&this->field_0x28 << 0x1c < 0) {
        uVar2 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x35f0);
        demangle(unaff_s3,this->name_);
                    /* try { // try from 0022ec68 to 0022ec6f has its CatchHandler @ 0022f0e0 */
        (*(code *)PTR_gold_warning_0043245c)(uVar2,_is_global);
        if (_is_global == acStack_38) {
          return false;
        }
        (*(code *)PTR_operator_delete_0043228c)();
        return false;
      }
      goto LAB_0022eb68;
    }
    unaff_s4 = *(int *)(*(int *)puVar9 + 8);
    if (unaff_s4 != 0) {
      unaff_s6 = acStack_38;
      if (*(int *)(unaff_s4 + 0x1348) != 0) goto LAB_0022ee18;
      goto LAB_0022ecd8;
    }
  }
LAB_0022ee04:
  do {
    do {
      (*(code *)PTR_do_gold_unreachable_004323c4)
                (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_s__0043226c + -0x2a30);
LAB_0022ee18:
      pcVar12 = this->name_;
      _is_global = unaff_s6;
      if (pcVar12 == (char *)0x0) {
        pcVar11 = (char *)0xffffffff;
      }
      else {
        iVar7 = (*(code *)PTR_strlen_0043677c)(pcVar12);
        pcVar11 = pcVar12 + iVar7;
      }
      (*(code *)PTR__M_construct<char_const*>_00432488)(unaff_s3,pcVar12,pcVar11,0);
      (*(code *)PTR_find_00433360)(local_28,unaff_s4 + 0x133c,unaff_s3);
      if (local_28[0] != 0) {
        if (_is_global != unaff_s6) {
          (*(code *)PTR_operator_delete_0043228c)();
        }
        goto LAB_0022ec20;
      }
      if (_is_global != unaff_s6) {
        (*(code *)PTR_operator_delete_0043228c)();
      }
LAB_0022ecd8:
      uVar1 = *(uint *)&this->field_0x28;
LAB_0022ecdc:
      uVar6 = (uVar1 << 0x1c) >> 0x1f;
LAB_0022ece0:
      if (uVar6 != 0) {
        return false;
      }
      iVar7 = *(int *)(*(int *)puVar9 + 8);
    } while (iVar7 == 0);
    if (*(char *)(iVar7 + 0xe8d) == '\0') {
LAB_0022eeb4:
      if ((*(char *)(iVar7 + 0xf09) == '\0') && (*(char *)(iVar7 + 0xf85) == '\0')) break;
      if ((uVar1 & 0xe000) == 0) {
        pOVar10 = (this->u1_).output_segment;
        goto LAB_0022ed34;
      }
    }
    else {
      if (((uVar1 & 0xe000) != 0) ||
         (pOVar10 = (this->u1_).output_segment,
         -1 < (int)pOVar10->output_lists_[3].
                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.
                   _M_impl._M_end_of_storage)) {
        if (uVar1 >> 0x1c != 1) goto LAB_0022eeb4;
        goto LAB_0022eb68;
      }
      if ((*(char *)(iVar7 + 0xf09) != '\0') || (*(char *)(iVar7 + 0xf85) == '\0')) break;
LAB_0022ed34:
      if ((int)pOVar10->output_lists_[3].
               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.
               _M_end_of_storage < 0) break;
    }
    unaff_s3 = (string *)(*(code *)PTR_cplus_demangle_004335b0)(this->name_,3);
    if (unaff_s3 != (string *)0x0) {
      unaff_s4 = *(int *)(*(int *)puVar9 + 8);
      if (unaff_s4 == 0) goto LAB_0022ee04;
      uVar3 = (uint)*(byte *)(unaff_s4 + 0xf09);
      if (((uVar3 != 0) &&
          ((iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35d0,0xc),
           iVar7 == 0 ||
           (iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35c0,0xf),
           iVar7 == 0)))) ||
         ((uVar3 = (uint)*(byte *)(unaff_s4 + 0xf85), uVar3 != 0 &&
          ((iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35b0,0x11),
           iVar7 == 0 ||
           (iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x359c,0xc),
           iVar7 == 0)))))) {
        (*(code *)PTR_free_00436800)(unaff_s3);
        goto LAB_0022eb68;
      }
      (*(code *)PTR_free_00436800)(unaff_s3);
    }
    iVar7 = *(int *)(*(int *)puVar9 + 8);
  } while (iVar7 == 0);
  if ((*(char *)(iVar7 + 0x12bd) == '\0') && (*(char *)(iVar7 + 0x1a29) == '\0')) {
    if (*(char *)(iVar7 + 0x19ad) == '\0') {
      return false;
    }
    uVar3 = *(uint *)&this->field_0x28;
    if ((uVar3 << 4) >> 0x1c != 10) {
      return false;
    }
  }
  else {
    uVar3 = *(uint *)&this->field_0x28;
  }
  if ((uVar3 & 0xe000) == 0) {
    if ((int)((this->u1_).output_segment)->output_lists_[3].
             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.
             _M_end_of_storage < 0) {
      return false;
    }
    if (((this->u2_).shndx == 0) && ((int)(uVar3 << 0x1d) < 0)) {
      return false;
    }
  }
  else if ((uVar3 & 0xe000) == 0x8000) {
    return false;
  }
  if (((uVar3 & 0xc00000) != 0) && ((uVar3 & 0xc00000) != 0xc00000)) {
    return false;
  }
  uVar3 = (uVar3 << 0x1c) >> 0x1f ^ 1;
LAB_0022eb68:
  return SUB41(uVar3,0);
}



/* gold::Symbol::should_add_dynsym_entry(gold::Symbol_table*) const */

uint __thiscall gold::Symbol::should_add_dynsym_entry(Symbol *this,Symbol_table *param_1)

{
  undefined *puVar1;
  uint uVar2;
  undefined4 uVar3;
  uint uVar4;
  int iVar5;
  int iVar6;
  int iVar7;
  uint uVar8;
  undefined1 *local_40 [2];
  undefined1 auStack_38 [16];
  int local_28 [2];
  
  puVar1 = PTR_parameters_00432be0;
  uVar2 = *(uint *)(this + 0x28);
  uVar4 = -((int)(uVar2 << 0x1e) >> 0x1f);
  if (uVar4 == 0) {
    return 0;
  }
  if ((int)(uVar2 << 0x16) < 0) {
    return uVar4;
  }
  if (((((int)(uVar2 << 0x17) < 0) && ((int)(uVar2 << 0x18) < 0)) &&
      (((uVar2 & 0xc00000) == 0 || ((uVar2 & 0xc00000) == 0xc00000)))) &&
     (-1 < (int)(uVar2 << 0x1c))) {
    return uVar4;
  }
  iVar6 = *(int *)(*(int *)PTR_parameters_00432be0 + 8);
  if (iVar6 == 0) goto LAB_0022ee04;
  if (((*(char *)(iVar6 + 0x18b5) == '\0') || (*(char *)(iVar6 + 0x1a29) != '\0')) ||
     ((uVar2 << 0x10) >> 0x1d != 0)) {
    if ((uVar2 & 0xe000) != 0) {
LAB_0022ebf4:
      iVar6 = Version_script_info::get_symbol_version
                        ((Version_script_info *)(iVar6 + 0x59b8),*(char **)this,(string *)0x0,
                         (bool *)local_40);
      if ((iVar6 != 0) && (local_40[0]._0_1_ == '\0')) {
LAB_0022ec20:
        if (-1 < *(int *)(this + 0x28) << 0x1c) {
          return uVar4;
        }
        uVar3 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x35f0);
        FUN_0022e934(local_40,*(undefined4 *)this);
                    /* try { // try from 0022ec68 to 0022ec6f has its CatchHandler @ 0022f0e0 */
        (*(code *)PTR_gold_warning_0043245c)(uVar3,local_40[0]);
        if (local_40[0] == auStack_38) {
          return 0;
        }
        (*(code *)PTR_operator_delete_0043228c)();
        return 0;
      }
      iVar6 = *(int *)(*(int *)puVar1 + 8);
      if (iVar6 == 0) goto LAB_0022ee04;
      if (*(int *)(iVar6 + 0x1348) != 0) {
        iVar7 = *(int *)this;
        local_40[0] = auStack_38;
        if (iVar7 == 0) {
          iVar5 = -1;
        }
        else {
          iVar5 = (*(code *)PTR_strlen_0043677c)(iVar7);
          iVar5 = iVar7 + iVar5;
        }
        (*(code *)PTR__M_construct<char_const*>_00432488)(local_40,iVar7,iVar5,0);
        (*(code *)PTR_find_00433360)(local_28,iVar6 + 0x133c,local_40);
        if (local_28[0] != 0) {
          if (local_40[0] != auStack_38) {
            (*(code *)PTR_operator_delete_0043228c)();
          }
          goto LAB_0022ec20;
        }
        if (local_40[0] != auStack_38) {
          (*(code *)PTR_operator_delete_0043228c)();
        }
      }
      uVar2 = *(uint *)(this + 0x28);
      goto LAB_0022ecdc;
    }
    uVar8 = (uVar2 << 0x1c) >> 0x1f;
    if (-1 < *(int *)(*(int *)(this + 8) + 0x2c)) {
      iVar6 = *(int *)(*(int *)PTR_parameters_00432be0 + 8);
      goto LAB_0022ebf4;
    }
  }
  else {
    if ((uVar2 & 0xe000) != 0) {
      uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)
                        (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + -0x2a70);
      return uVar4;
    }
    uVar8 = *(uint *)(this + 8);
    if (-1 < *(int *)(uVar8 + 0x2c)) {
      if (((int)(uVar2 << 0x1d) < 0) && (uVar2 = *(uint *)(this + 0xc), uVar2 != 0)) {
        if ((uint)(*(int *)(uVar8 + 0x3c) - *(int *)(uVar8 + 0x38) >> 2) <= uVar2) {
          uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)
                            (PTR_LAB_0043220c + 0x44a8,0x50b,PTR_DAT_0043226c + -0x2a84);
          return uVar4;
        }
        if (*(int *)(*(int *)(uVar8 + 0x38) + uVar2 * 4) == 0) {
          iVar6 = Symbol_table::is_section_folded((Relobj *)param_1,uVar8);
          if (iVar6 == 0) {
            return 0;
          }
          uVar2 = *(uint *)(this + 0x28);
          if (((uVar2 & 0xe000) == 0) &&
             (uVar8 = (uVar2 << 0x1c) >> 0x1f, *(int *)(*(int *)(this + 8) + 0x2c) < 0))
          goto LAB_0022ece0;
        }
      }
      iVar6 = *(int *)(*(int *)puVar1 + 8);
      if (iVar6 == 0) goto LAB_0022ee04;
      goto LAB_0022ebf4;
    }
LAB_0022ecdc:
    uVar8 = (uVar2 << 0x1c) >> 0x1f;
  }
LAB_0022ece0:
  if (uVar8 != 0) {
    return 0;
  }
  iVar6 = *(int *)(*(int *)puVar1 + 8);
  if (iVar6 == 0) goto LAB_0022ee04;
  if (*(char *)(iVar6 + 0xe8d) == '\0') {
LAB_0022eeb4:
    if ((*(char *)(iVar6 + 0xf09) == '\0') && (*(char *)(iVar6 + 0xf85) == '\0')) goto LAB_0022ed40;
    if ((uVar2 & 0xe000) == 0) {
      iVar7 = *(int *)(this + 8);
      goto LAB_0022ed34;
    }
  }
  else {
    if (((uVar2 & 0xe000) != 0) || (iVar7 = *(int *)(this + 8), -1 < *(int *)(iVar7 + 0x2c))) {
      if (uVar2 >> 0x1c == 1) {
        return uVar4;
      }
      goto LAB_0022eeb4;
    }
    if ((*(char *)(iVar6 + 0xf09) != '\0') || (*(char *)(iVar6 + 0xf85) == '\0')) goto LAB_0022ed40;
LAB_0022ed34:
    if (*(int *)(iVar7 + 0x2c) < 0) goto LAB_0022ed40;
  }
  iVar6 = (*(code *)PTR_cplus_demangle_004335b0)(*(undefined4 *)this,3);
  if (iVar6 != 0) {
    iVar7 = *(int *)(*(int *)puVar1 + 8);
    if (iVar7 == 0) goto LAB_0022ee04;
    uVar4 = (uint)*(byte *)(iVar7 + 0xf09);
    if (((uVar4 != 0) &&
        ((iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35d0,0xc), iVar5 == 0
         || (iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35c0,0xf),
            iVar5 == 0)))) ||
       ((uVar4 = (uint)*(byte *)(iVar7 + 0xf85), uVar4 != 0 &&
        ((iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35b0,0x11), iVar7 == 0
         || (iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc),
            iVar7 == 0)))))) {
      (*(code *)PTR_free_00436800)(iVar6);
      return uVar4;
    }
    (*(code *)PTR_free_00436800)(iVar6);
  }
  iVar6 = *(int *)(*(int *)puVar1 + 8);
  if (iVar6 != 0) {
LAB_0022ed40:
    if ((*(char *)(iVar6 + 0x12bd) == '\0') && (*(char *)(iVar6 + 0x1a29) == '\0')) {
      if (*(char *)(iVar6 + 0x19ad) == '\0') {
        return 0;
      }
      uVar4 = *(uint *)(this + 0x28);
      if ((uVar4 << 4) >> 0x1c != 10) {
        return 0;
      }
    }
    else {
      uVar4 = *(uint *)(this + 0x28);
    }
    if ((uVar4 & 0xe000) == 0) {
      if (*(int *)(*(int *)(this + 8) + 0x2c) < 0) {
        return 0;
      }
      if ((*(int *)(this + 0xc) == 0) && ((int)(uVar4 << 0x1d) < 0)) {
        return 0;
      }
    }
    else if ((uVar4 & 0xe000) == 0x8000) {
      return 0;
    }
    if (((uVar4 & 0xc00000) != 0) && ((uVar4 & 0xc00000) != 0xc00000)) {
      return 0;
    }
    return (uVar4 << 0x1c) >> 0x1f ^ 1;
  }
LAB_0022ee04:
  uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)
                    (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x2a30);
  return uVar4;
}


lui gp,0x21
addiu gp,gp,-0x4948
addu gp,gp,t9
addiu sp,sp,-0x58
lw v0,0x28(a0)
sw s1,0x3c(sp)
ext s1,v0,0x1,0x1
sw gp,0x10(sp)
sw ra,0x54(sp)
sw s6,0x50(sp)
sw s5,0x4c(sp)
sw s4,0x48(sp)
sw s3,0x44(sp)
sw s2,0x40(sp)
beq s1,zero,0x0022ec8c
_sw s0,0x38(sp)
ext v1,v0,0x9,0x1
beq v1,zero,0x0022eb90
_ext v1,v0,0x8,0x1
lw ra,0x54(sp)
or v0,s1,zero
lw s6,0x50(sp)
lw s5,0x4c(sp)
lw s4,0x48(sp)
lw s3,0x44(sp)
lw s2,0x40(sp)
lw s1,0x3c(sp)
lw s0,0x38(sp)
jr ra
_addiu sp,sp,0x58
beq v1,zero,0x0022ebbc
_lw s2,-0x75f0(gp)
ext v1,v0,0x7,0x1
beq v1,zero,0x0022ebc0
_or s0,a0,zero
lui v1,0xc0
and a2,v0,v1
beq a2,zero,0x0022ee90
_nop
beq a2,v1,0x0022ee90
_nop
or s0,a0,zero
lw a0,0x0(s2)
lw a0,0x8(a0)
beq a0,zero,0x0022edfc
_or v1,a1,zero
lbu a2,0x18b5(a0)
beq a2,zero,0x0022ebe8
_andi a1,v0,0xe000
lbu a2,0x1a29(a0)
beq a2,zero,0x0022edb4
_ext a2,v0,0xd,0x3
beq a1,zero,0x0022ef7c
_nop
lw t9,-0x6188(gp)
addiu s3,sp,0x18
lw a1,0x0(s0)
or a2,zero,zero
addiu a0,a0,0x59b8
bal 0x00221780
_or a3,s3,zero
beq v0,zero,0x0022ecbc
_lw gp,0x10(sp)
lbu v0,0x18(sp)
bne v0,zero,0x0022ecbc
_nop
lw v0,0x28(s0)
ext v0,v0,0x3,0x1
beq v0,zero,0x0022eb68
_lw ra,0x54(sp)
lw a0,-0x7f64(gp)
lw t9,-0x39b8(gp)
jalr t9
_addiu a0,a0,-0x35f0
or a0,s3,zero
lw gp,0x10(sp)
or s1,v0,zero
lw t9,-0x4f70(gp)
addiu t9,t9,-0x16cc
bal 0x0022e934
_lw a1,0x0(s0)
or a0,s1,zero
lw gp,0x10(sp)
lw t9,-0x7d74(gp)
jalr t9
_lw a1,0x18(sp)
lw a0,0x18(sp)
addiu v0,sp,0x20
beq a0,v0,0x0022ec8c
_lw gp,0x10(sp)
lw t9,-0x7f44(gp)
jalr t9
_nop
or s1,zero,zero
lw ra,0x54(sp)
or v0,s1,zero
lw s6,0x50(sp)
lw s5,0x4c(sp)
lw s4,0x48(sp)
lw s3,0x44(sp)
lw s2,0x40(sp)
lw s1,0x3c(sp)
lw s0,0x38(sp)
jr ra
_addiu sp,sp,0x58
lw v0,0x0(s2)
lw s4,0x8(v0)
beq s4,zero,0x0022ee00
_lw a2,-0x7f64(gp)
lw v0,0x1348(s4)
bne v0,zero,0x0022ee18
_addiu s6,sp,0x20
lw v0,0x28(s0)
ext v1,v0,0x3,0x1
bne v1,zero,0x0022ec8c
_nop
lw v1,0x0(s2)
lw v1,0x8(v1)
beq v1,zero,0x0022ee00
_lw a2,-0x7f64(gp)
lbu a0,0xe8d(v1)
beq a0,zero,0x0022eeb4
_andi a0,v0,0xe000
bne a0,zero,0x0022eea8
_srl a0,v0,0x1c
lw a1,0x8(s0)
lw a0,0x2c(a1)
bgez a0,0x0022eea4
_nop
lbu v0,0xf09(v1)
bne v0,zero,0x0022ed40
_nop
lbu v0,0xf85(v1)
beq v0,zero,0x0022ed40
_nop
lw v0,0x2c(a1)
bgez v0,0x0022eed8
_lw t9,-0x6c20(gp)
lbu v0,0x12bd(v1)
bne v0,zero,0x0022ed58
_nop
lbu v0,0x1a29(v1)
beq v0,zero,0x0022efa8
_nop
lw v0,0x28(s0)
andi v1,v0,0xe000
bne v1,zero,0x0022ef98
_ori a0,zero,0x8000
lw v1,0x8(s0)
lw v1,0x2c(v1)
bltz v1,0x0022ec8c
_nop
lw v1,0xc(s0)
bne v1,zero,0x0022ed90
_lui v1,0xc0
ext v1,v0,0x2,0x1
bne v1,zero,0x0022ec8c
_lui v1,0xc0
and a0,v0,v1
beq a0,zero,0x0022eda4
_nop
bne a0,v1,0x0022ec8c
_nop
ext s1,v0,0x3,0x1
xori s1,s1,0x1
b 0x0022eb64
_andi s1,s1,0xff
bne a2,zero,0x0022ebe8
_nop
bne a1,zero,0x0022f0ac
_li a1,0xa1
lw a1,0x8(s0)
lw a0,0x2c(a1)
bltz a0,0x0022ecdc
_nop
ext v0,v0,0x2,0x1
beq v0,zero,0x0022edec
_nop
lw a2,0xc(s0)
bne a2,zero,0x0022f048
_nop
lw v0,0x0(s2)
lw a0,0x8(v0)
bne a0,zero,0x0022ebf4
_lw t9,-0x6188(gp)
lw a2,-0x7f64(gp)
li a1,0x5c
lw a0,-0x7e1c(gp)
lw t9,-0x7e0c(gp)
addiu a2,a2,-0x2a30
jalr t9
_addiu a0,a0,-0x5cec
lw s5,0x0(s0)
beq s5,zero,0x0022f040
_sw s6,0x18(sp)
lw t9,-0x3a54(gp)
jalr t9
_or a0,s5,zero
lw gp,0x10(sp)
addu a2,s5,v0
or a3,zero,zero
lw t9,-0x7d48(gp)
or a1,s5,zero
sll a3,a3,0x18
jalr t9
_or a0,s3,zero
addiu a0,sp,0x30
lw gp,0x10(sp)
addiu a1,s4,0x133c
lw t9,-0x6e70(gp)
jalr t9
_or a2,s3,zero
lw v0,0x30(sp)
lw gp,0x10(sp)
beq v0,zero,0x0022f028
_lw a0,0x18(sp)
beq a0,s6,0x0022ec20
_lw t9,-0x7f44(gp)
jalr t9
_nop
b 0x0022ec20
_lw gp,0x10(sp)
ext v1,v0,0x3,0x1
beq v1,zero,0x0022eb68
_lw ra,0x54(sp)
b 0x0022ebbc
_lw s2,-0x75f0(gp)
srl a0,v0,0x1c
li a1,0x1
beq a0,a1,0x0022eb68
_lw ra,0x54(sp)
lbu a0,0xf09(v1)
bne a0,zero,0x0022eecc
_nop
lbu a0,0xf85(v1)
beq a0,zero,0x0022ed40
_nop
andi v0,v0,0xe000
beq v0,zero,0x0022f020
_lw t9,-0x6c20(gp)
li a1,0x3
jalr t9
_lw a0,0x0(s0)
lw gp,0x10(sp)
beq v0,zero,0x0022ef64
_or s3,v0,zero
lw v0,0x0(s2)
lw s4,0x8(v0)
beq s4,zero,0x0022ee00
_lw a2,-0x7f64(gp)
lbu s1,0xf09(s4)
bne s1,zero,0x0022efd0
_lw a1,-0x7f64(gp)
lbu s1,0xf85(s4)
beq s1,zero,0x0022ef54
_lw a1,-0x7f64(gp)
li a2,0x11
lw t9,-0x3b30(gp)
or a0,s3,zero
jalr t9
_addiu a1,a1,-0x35b0
beq v0,zero,0x0022f00c
_lw gp,0x10(sp)
lw a1,-0x7f64(gp)
li a2,0xc
lw t9,-0x3b30(gp)
or a0,s3,zero
jalr t9
_addiu a1,a1,-0x359c
beq v0,zero,0x0022f00c
_lw gp,0x10(sp)
lw t9,-0x39d0(gp)
jalr t9
_or a0,s3,zero
lw gp,0x10(sp)
lw v0,0x0(s2)
lw v1,0x8(v0)
bne v1,zero,0x0022ed40
_lw a2,-0x7f64(gp)
b 0x0022ee04
_li a1,0x5c
lw a1,0x8(s0)
lw v1,0x2c(a1)
bltz v1,0x0022ece0
_ext v1,v0,0x3,0x1
lw v0,0x0(s2)
b 0x0022ebf0
_lw a0,0x8(v0)
bne v1,a0,0x0022ed90
_lui v1,0xc0
b 0x0022ec90
_or s1,zero,zero
lbu v0,0x19ad(v1)
beq v0,zero,0x0022ec90
_or s1,zero,zero
lw v0,0x28(s0)
li v1,0xa
ext a0,v0,0x18,0x4
beq a0,v1,0x0022ed60
_andi v1,v0,0xe000
b 0x0022ec94
_lw ra,0x54(sp)
li a2,0xc
lw t9,-0x3b30(gp)
or a0,s3,zero
jalr t9
_addiu a1,a1,-0x35d0
beq v0,zero,0x0022f00c
_lw gp,0x10(sp)
lw a1,-0x7f64(gp)
li a2,0xf
lw t9,-0x3b30(gp)
or a0,s3,zero
jalr t9
_addiu a1,a1,-0x35c0
bne v0,zero,0x0022ef0c
_lw gp,0x10(sp)
lw t9,-0x39d0(gp)
jalr t9
_or a0,s3,zero
b 0x0022eb68
_lw ra,0x54(sp)
b 0x0022ed34
_lw a1,0x8(s0)
beq a0,s6,0x0022ecd8
_lw t9,-0x7f44(gp)
jalr t9
_nop
b 0x0022ecd8
_lw gp,0x10(sp)
b 0x0022ee38
_li a2,-0x1
lw a0,0x38(a1)
lw v0,0x3c(a1)
subu v0,v0,a0
sra v0,v0,0x2
sltu v0,a2,v0
beq v0,zero,0x0022f0c4
_sll v0,a2,0x2
addu a0,a0,v0
lw v0,0x0(a0)
bne v0,zero,0x0022edec
_lw t9,-0x5e14(gp)
bal 0x0022d854
_or a0,v1,zero
beq v0,zero,0x0022ec8c
_lw gp,0x10(sp)
lw v0,0x28(s0)
andi v1,v0,0xe000
bne v1,zero,0x0022edec
_nop
lw a1,0x8(s0)
lw v1,0x2c(a1)
bgez v1,0x0022edec
_ext v1,v0,0x3,0x1
b 0x0022ece0
_nop
lw a2,-0x7f64(gp)
lw a0,-0x7e1c(gp)
lw t9,-0x7e0c(gp)
addiu a2,a2,-0x2a70
jalr t9
_addiu a0,a0,-0x5bdc
lw a2,-0x7f64(gp)
li a1,0x50b
lw a0,-0x7fc4(gp)
lw t9,-0x7e0c(gp)
addiu a2,a2,-0x2a84
jalr t9
_addiu a0,a0,0x44a8
(translation_unit "/* gold::Symbol::should_add_dynsym_entry(gold::Symbol_table*) const */\n\nuint __thiscall gold::Symbol::should_add_dynsym_entry(Symbol *this,Symbol_table *param_1)\n\n{\n  undefined *puVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  uint uVar8;\n  undefined1 *local_40 [2];\n  undefined1 auStack_38 [16];\n  int local_28 [2];\n  \n  puVar1 = PTR_parameters_00432be0;\n  uVar2 = *(uint *)(this + 0x28);\n  uVar4 = -((int)(uVar2 << 0x1e) >> 0x1f);\n  if (uVar4 == 0) {\n    return 0;\n  }\n  if ((int)(uVar2 << 0x16) < 0) {\n    return uVar4;\n  }\n  if (((((int)(uVar2 << 0x17) < 0) && ((int)(uVar2 << 0x18) < 0)) &&\n      (((uVar2 & 0xc00000) == 0 || ((uVar2 & 0xc00000) == 0xc00000)))) &&\n     (-1 < (int)(uVar2 << 0x1c))) {\n    return uVar4;\n  }\n  iVar6 = *(int *)(*(int *)PTR_parameters_00432be0 + 8);\n  if (iVar6 == 0) goto LAB_0022ee04;\n  if (((*(char *)(iVar6 + 0x18b5) == '\0') || (*(char *)(iVar6 + 0x1a29) != '\0')) ||\n     ((uVar2 << 0x10) >> 0x1d != 0)) {\n    if ((uVar2 & 0xe000) != 0) {\nLAB_0022ebf4:\n      iVar6 = Version_script_info::get_symbol_version\n                        ((Version_script_info *)(iVar6 + 0x59b8),*(char **)this,(string *)0x0,\n                         (bool *)local_40);\n      if ((iVar6 != 0) && (local_40[0]._0_1_ == '\0')) {\nLAB_0022ec20:\n        if (-1 < *(int *)(this + 0x28) << 0x1c) {\n          return uVar4;\n        }\n        uVar3 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x35f0);\n        FUN_0022e934(local_40,*(undefined4 *)this);\n                    /* try { // try from 0022ec68 to 0022ec6f has its CatchHandler @ 0022f0e0 */\n        (*(code *)PTR_gold_warning_0043245c)(uVar3,local_40[0]);\n        if (local_40[0] == auStack_38) {\n          return 0;\n        }\n        (*(code *)PTR_operator_delete_0043228c)();\n        return 0;\n      }\n      iVar6 = *(int *)(*(int *)puVar1 + 8);\n      if (iVar6 == 0) goto LAB_0022ee04;\n      if (*(int *)(iVar6 + 0x1348) != 0) {\n        iVar7 = *(int *)this;\n        local_40[0] = auStack_38;\n        if (iVar7 == 0) {\n          iVar5 = -1;\n        }\n        else {\n          iVar5 = (*(code *)PTR_strlen_0043677c)(iVar7);\n          iVar5 = iVar7 + iVar5;\n        }\n        (*(code *)PTR__M_construct<char_const*>_00432488)(local_40,iVar7,iVar5,0);\n        (*(code *)PTR_find_00433360)(local_28,iVar6 + 0x133c,local_40);\n        if (local_28[0] != 0) {\n          if (local_40[0] != auStack_38) {\n            (*(code *)PTR_operator_delete_0043228c)();\n          }\n          goto LAB_0022ec20;\n        }\n        if (local_40[0] != auStack_38) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n      }\n      uVar2 = *(uint *)(this + 0x28);\n      goto LAB_0022ecdc;\n    }\n    uVar8 = (uVar2 << 0x1c) >> 0x1f;\n    if (-1 < *(int *)(*(int *)(this + 8) + 0x2c)) {\n      iVar6 = *(int *)(*(int *)PTR_parameters_00432be0 + 8);\n      goto LAB_0022ebf4;\n    }\n  }\n  else {\n    if ((uVar2 & 0xe000) != 0) {\n      uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                        (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + -0x2a70);\n      return uVar4;\n    }\n    uVar8 = *(uint *)(this + 8);\n    if (-1 < *(int *)(uVar8 + 0x2c)) {\n      if (((int)(uVar2 << 0x1d) < 0) && (uVar2 = *(uint *)(this + 0xc), uVar2 != 0)) {\n        if ((uint)(*(int *)(uVar8 + 0x3c) - *(int *)(uVar8 + 0x38) >> 2) <= uVar2) {\n          uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                            (PTR_LAB_0043220c + 0x44a8,0x50b,PTR_DAT_0043226c + -0x2a84);\n          return uVar4;\n        }\n        if (*(int *)(*(int *)(uVar8 + 0x38) + uVar2 * 4) == 0) {\n          iVar6 = Symbol_table::is_section_folded((Relobj *)param_1,uVar8);\n          if (iVar6 == 0) {\n            return 0;\n          }\n          uVar2 = *(uint *)(this + 0x28);\n          if (((uVar2 & 0xe000) == 0) &&\n             (uVar8 = (uVar2 << 0x1c) >> 0x1f, *(int *)(*(int *)(this + 8) + 0x2c) < 0))\n          goto LAB_0022ece0;\n        }\n      }\n      iVar6 = *(int *)(*(int *)puVar1 + 8);\n      if (iVar6 == 0) goto LAB_0022ee04;\n      goto LAB_0022ebf4;\n    }\nLAB_0022ecdc:\n    uVar8 = (uVar2 << 0x1c) >> 0x1f;\n  }\nLAB_0022ece0:\n  if (uVar8 != 0) {\n    return 0;\n  }\n  iVar6 = *(int *)(*(int *)puVar1 + 8);\n  if (iVar6 == 0) goto LAB_0022ee04;\n  if (*(char *)(iVar6 + 0xe8d) == '\0') {\nLAB_0022eeb4:\n    if ((*(char *)(iVar6 + 0xf09) == '\0') && (*(char *)(iVar6 + 0xf85) == '\0')) goto LAB_0022ed40;\n    if ((uVar2 & 0xe000) == 0) {\n      iVar7 = *(int *)(this + 8);\n      goto LAB_0022ed34;\n    }\n  }\n  else {\n    if (((uVar2 & 0xe000) != 0) || (iVar7 = *(int *)(this + 8), -1 < *(int *)(iVar7 + 0x2c))) {\n      if (uVar2 >> 0x1c == 1) {\n        return uVar4;\n      }\n      goto LAB_0022eeb4;\n    }\n    if ((*(char *)(iVar6 + 0xf09) != '\0') || (*(char *)(iVar6 + 0xf85) == '\0')) goto LAB_0022ed40;\nLAB_0022ed34:\n    if (*(int *)(iVar7 + 0x2c) < 0) goto LAB_0022ed40;\n  }\n  iVar6 = (*(code *)PTR_cplus_demangle_004335b0)(*(undefined4 *)this,3);\n  if (iVar6 != 0) {\n    iVar7 = *(int *)(*(int *)puVar1 + 8);\n    if (iVar7 == 0) goto LAB_0022ee04;\n    uVar4 = (uint)*(byte *)(iVar7 + 0xf09);\n    if (((uVar4 != 0) &&\n        ((iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35d0,0xc), iVar5 == 0\n         || (iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35c0,0xf),\n            iVar5 == 0)))) ||\n       ((uVar4 = (uint)*(byte *)(iVar7 + 0xf85), uVar4 != 0 &&\n        ((iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35b0,0x11), iVar7 == 0\n         || (iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc),\n            iVar7 == 0)))))) {\n      (*(code *)PTR_free_00436800)(iVar6);\n      return uVar4;\n    }\n    (*(code *)PTR_free_00436800)(iVar6);\n  }\n  iVar6 = *(int *)(*(int *)puVar1 + 8);\n  if (iVar6 != 0) {\nLAB_0022ed40:\n    if ((*(char *)(iVar6 + 0x12bd) == '\0') && (*(char *)(iVar6 + 0x1a29) == '\0')) {\n      if (*(char *)(iVar6 + 0x19ad) == '\0') {\n        return 0;\n      }\n      uVar4 = *(uint *)(this + 0x28);\n      if ((uVar4 << 4) >> 0x1c != 10) {\n        return 0;\n      }\n    }\n    else {\n      uVar4 = *(uint *)(this + 0x28);\n    }\n    if ((uVar4 & 0xe000) == 0) {\n      if (*(int *)(*(int *)(this + 8) + 0x2c) < 0) {\n        return 0;\n      }\n      if ((*(int *)(this + 0xc) == 0) && ((int)(uVar4 << 0x1d) < 0)) {\n        return 0;\n      }\n    }\n    else if ((uVar4 & 0xe000) == 0x8000) {\n      return 0;\n    }\n    if (((uVar4 & 0xc00000) != 0) && ((uVar4 & 0xc00000) != 0xc00000)) {\n      return 0;\n    }\n    return (uVar4 << 0x1c) >> 0x1f ^ 1;\n  }\nLAB_0022ee04:\n  uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x2a30);\n  return uVar4;\n}\n\n" comment (function_definition "uint __thiscall gold::Symbol::should_add_dynsym_entry(Symbol *this,Symbol_table *param_1)\n\n{\n  undefined *puVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  uint uVar8;\n  undefined1 *local_40 [2];\n  undefined1 auStack_38 [16];\n  int local_28 [2];\n  \n  puVar1 = PTR_parameters_00432be0;\n  uVar2 = *(uint *)(this + 0x28);\n  uVar4 = -((int)(uVar2 << 0x1e) >> 0x1f);\n  if (uVar4 == 0) {\n    return 0;\n  }\n  if ((int)(uVar2 << 0x16) < 0) {\n    return uVar4;\n  }\n  if (((((int)(uVar2 << 0x17) < 0) && ((int)(uVar2 << 0x18) < 0)) &&\n      (((uVar2 & 0xc00000) == 0 || ((uVar2 & 0xc00000) == 0xc00000)))) &&\n     (-1 < (int)(uVar2 << 0x1c))) {\n    return uVar4;\n  }\n  iVar6 = *(int *)(*(int *)PTR_parameters_00432be0 + 8);\n  if (iVar6 == 0) goto LAB_0022ee04;\n  if (((*(char *)(iVar6 + 0x18b5) == '\0') || (*(char *)(iVar6 + 0x1a29) != '\0')) ||\n     ((uVar2 << 0x10) >> 0x1d != 0)) {\n    if ((uVar2 & 0xe000) != 0) {\nLAB_0022ebf4:\n      iVar6 = Version_script_info::get_symbol_version\n                        ((Version_script_info *)(iVar6 + 0x59b8),*(char **)this,(string *)0x0,\n                         (bool *)local_40);\n      if ((iVar6 != 0) && (local_40[0]._0_1_ == '\0')) {\nLAB_0022ec20:\n        if (-1 < *(int *)(this + 0x28) << 0x1c) {\n          return uVar4;\n        }\n        uVar3 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x35f0);\n        FUN_0022e934(local_40,*(undefined4 *)this);\n                    /* try { // try from 0022ec68 to 0022ec6f has its CatchHandler @ 0022f0e0 */\n        (*(code *)PTR_gold_warning_0043245c)(uVar3,local_40[0]);\n        if (local_40[0] == auStack_38) {\n          return 0;\n        }\n        (*(code *)PTR_operator_delete_0043228c)();\n        return 0;\n      }\n      iVar6 = *(int *)(*(int *)puVar1 + 8);\n      if (iVar6 == 0) goto LAB_0022ee04;\n      if (*(int *)(iVar6 + 0x1348) != 0) {\n        iVar7 = *(int *)this;\n        local_40[0] = auStack_38;\n        if (iVar7 == 0) {\n          iVar5 = -1;\n        }\n        else {\n          iVar5 = (*(code *)PTR_strlen_0043677c)(iVar7);\n          iVar5 = iVar7 + iVar5;\n        }\n        (*(code *)PTR__M_construct<char_const*>_00432488)(local_40,iVar7,iVar5,0);\n        (*(code *)PTR_find_00433360)(local_28,iVar6 + 0x133c,local_40);\n        if (local_28[0] != 0) {\n          if (local_40[0] != auStack_38) {\n            (*(code *)PTR_operator_delete_0043228c)();\n          }\n          goto LAB_0022ec20;\n        }\n        if (local_40[0] != auStack_38) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n      }\n      uVar2 = *(uint *)(this + 0x28);\n      goto LAB_0022ecdc;\n    }\n    uVar8 = (uVar2 << 0x1c) >> 0x1f;\n    if (-1 < *(int *)(*(int *)(this + 8) + 0x2c)) {\n      iVar6 = *(int *)(*(int *)PTR_parameters_00432be0 + 8);\n      goto LAB_0022ebf4;\n    }\n  }\n  else {\n    if ((uVar2 & 0xe000) != 0) {\n      uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                        (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + -0x2a70);\n      return uVar4;\n    }\n    uVar8 = *(uint *)(this + 8);\n    if (-1 < *(int *)(uVar8 + 0x2c)) {\n      if (((int)(uVar2 << 0x1d) < 0) && (uVar2 = *(uint *)(this + 0xc), uVar2 != 0)) {\n        if ((uint)(*(int *)(uVar8 + 0x3c) - *(int *)(uVar8 + 0x38) >> 2) <= uVar2) {\n          uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                            (PTR_LAB_0043220c + 0x44a8,0x50b,PTR_DAT_0043226c + -0x2a84);\n          return uVar4;\n        }\n        if (*(int *)(*(int *)(uVar8 + 0x38) + uVar2 * 4) == 0) {\n          iVar6 = Symbol_table::is_section_folded((Relobj *)param_1,uVar8);\n          if (iVar6 == 0) {\n            return 0;\n          }\n          uVar2 = *(uint *)(this + 0x28);\n          if (((uVar2 & 0xe000) == 0) &&\n             (uVar8 = (uVar2 << 0x1c) >> 0x1f, *(int *)(*(int *)(this + 8) + 0x2c) < 0))\n          goto LAB_0022ece0;\n        }\n      }\n      iVar6 = *(int *)(*(int *)puVar1 + 8);\n      if (iVar6 == 0) goto LAB_0022ee04;\n      goto LAB_0022ebf4;\n    }\nLAB_0022ecdc:\n    uVar8 = (uVar2 << 0x1c) >> 0x1f;\n  }\nLAB_0022ece0:\n  if (uVar8 != 0) {\n    return 0;\n  }\n  iVar6 = *(int *)(*(int *)puVar1 + 8);\n  if (iVar6 == 0) goto LAB_0022ee04;\n  if (*(char *)(iVar6 + 0xe8d) == '\0') {\nLAB_0022eeb4:\n    if ((*(char *)(iVar6 + 0xf09) == '\0') && (*(char *)(iVar6 + 0xf85) == '\0')) goto LAB_0022ed40;\n    if ((uVar2 & 0xe000) == 0) {\n      iVar7 = *(int *)(this + 8);\n      goto LAB_0022ed34;\n    }\n  }\n  else {\n    if (((uVar2 & 0xe000) != 0) || (iVar7 = *(int *)(this + 8), -1 < *(int *)(iVar7 + 0x2c))) {\n      if (uVar2 >> 0x1c == 1) {\n        return uVar4;\n      }\n      goto LAB_0022eeb4;\n    }\n    if ((*(char *)(iVar6 + 0xf09) != '\0') || (*(char *)(iVar6 + 0xf85) == '\0')) goto LAB_0022ed40;\nLAB_0022ed34:\n    if (*(int *)(iVar7 + 0x2c) < 0) goto LAB_0022ed40;\n  }\n  iVar6 = (*(code *)PTR_cplus_demangle_004335b0)(*(undefined4 *)this,3);\n  if (iVar6 != 0) {\n    iVar7 = *(int *)(*(int *)puVar1 + 8);\n    if (iVar7 == 0) goto LAB_0022ee04;\n    uVar4 = (uint)*(byte *)(iVar7 + 0xf09);\n    if (((uVar4 != 0) &&\n        ((iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35d0,0xc), iVar5 == 0\n         || (iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35c0,0xf),\n            iVar5 == 0)))) ||\n       ((uVar4 = (uint)*(byte *)(iVar7 + 0xf85), uVar4 != 0 &&\n        ((iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35b0,0x11), iVar7 == 0\n         || (iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc),\n            iVar7 == 0)))))) {\n      (*(code *)PTR_free_00436800)(iVar6);\n      return uVar4;\n    }\n    (*(code *)PTR_free_00436800)(iVar6);\n  }\n  iVar6 = *(int *)(*(int *)puVar1 + 8);\n  if (iVar6 != 0) {\nLAB_0022ed40:\n    if ((*(char *)(iVar6 + 0x12bd) == '\0') && (*(char *)(iVar6 + 0x1a29) == '\0')) {\n      if (*(char *)(iVar6 + 0x19ad) == '\0') {\n        return 0;\n      }\n      uVar4 = *(uint *)(this + 0x28);\n      if ((uVar4 << 4) >> 0x1c != 10) {\n        return 0;\n      }\n    }\n    else {\n      uVar4 = *(uint *)(this + 0x28);\n    }\n    if ((uVar4 & 0xe000) == 0) {\n      if (*(int *)(*(int *)(this + 8) + 0x2c) < 0) {\n        return 0;\n      }\n      if ((*(int *)(this + 0xc) == 0) && ((int)(uVar4 << 0x1d) < 0)) {\n        return 0;\n      }\n    }\n    else if ((uVar4 & 0xe000) == 0x8000) {\n      return 0;\n    }\n    if (((uVar4 & 0xc00000) != 0) && ((uVar4 & 0xc00000) != 0xc00000)) {\n      return 0;\n    }\n    return (uVar4 << 0x1c) >> 0x1f ^ 1;\n  }\nLAB_0022ee04:\n  uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x2a30);\n  return uVar4;\n}" type_identifier (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Symbol::" identifier : : identifier : :) (function_declarator "should_add_dynsym_entry(Symbol *this,Symbol_table *param_1)" identifier (parameter_list "(Symbol *this,Symbol_table *param_1)" ( (parameter_declaration "Symbol *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Symbol_table *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  uint uVar8;\n  undefined1 *local_40 [2];\n  undefined1 auStack_38 [16];\n  int local_28 [2];\n  \n  puVar1 = PTR_parameters_00432be0;\n  uVar2 = *(uint *)(this + 0x28);\n  uVar4 = -((int)(uVar2 << 0x1e) >> 0x1f);\n  if (uVar4 == 0) {\n    return 0;\n  }\n  if ((int)(uVar2 << 0x16) < 0) {\n    return uVar4;\n  }\n  if (((((int)(uVar2 << 0x17) < 0) && ((int)(uVar2 << 0x18) < 0)) &&\n      (((uVar2 & 0xc00000) == 0 || ((uVar2 & 0xc00000) == 0xc00000)))) &&\n     (-1 < (int)(uVar2 << 0x1c))) {\n    return uVar4;\n  }\n  iVar6 = *(int *)(*(int *)PTR_parameters_00432be0 + 8);\n  if (iVar6 == 0) goto LAB_0022ee04;\n  if (((*(char *)(iVar6 + 0x18b5) == '\0') || (*(char *)(iVar6 + 0x1a29) != '\0')) ||\n     ((uVar2 << 0x10) >> 0x1d != 0)) {\n    if ((uVar2 & 0xe000) != 0) {\nLAB_0022ebf4:\n      iVar6 = Version_script_info::get_symbol_version\n                        ((Version_script_info *)(iVar6 + 0x59b8),*(char **)this,(string *)0x0,\n                         (bool *)local_40);\n      if ((iVar6 != 0) && (local_40[0]._0_1_ == '\0')) {\nLAB_0022ec20:\n        if (-1 < *(int *)(this + 0x28) << 0x1c) {\n          return uVar4;\n        }\n        uVar3 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x35f0);\n        FUN_0022e934(local_40,*(undefined4 *)this);\n                    /* try { // try from 0022ec68 to 0022ec6f has its CatchHandler @ 0022f0e0 */\n        (*(code *)PTR_gold_warning_0043245c)(uVar3,local_40[0]);\n        if (local_40[0] == auStack_38) {\n          return 0;\n        }\n        (*(code *)PTR_operator_delete_0043228c)();\n        return 0;\n      }\n      iVar6 = *(int *)(*(int *)puVar1 + 8);\n      if (iVar6 == 0) goto LAB_0022ee04;\n      if (*(int *)(iVar6 + 0x1348) != 0) {\n        iVar7 = *(int *)this;\n        local_40[0] = auStack_38;\n        if (iVar7 == 0) {\n          iVar5 = -1;\n        }\n        else {\n          iVar5 = (*(code *)PTR_strlen_0043677c)(iVar7);\n          iVar5 = iVar7 + iVar5;\n        }\n        (*(code *)PTR__M_construct<char_const*>_00432488)(local_40,iVar7,iVar5,0);\n        (*(code *)PTR_find_00433360)(local_28,iVar6 + 0x133c,local_40);\n        if (local_28[0] != 0) {\n          if (local_40[0] != auStack_38) {\n            (*(code *)PTR_operator_delete_0043228c)();\n          }\n          goto LAB_0022ec20;\n        }\n        if (local_40[0] != auStack_38) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n      }\n      uVar2 = *(uint *)(this + 0x28);\n      goto LAB_0022ecdc;\n    }\n    uVar8 = (uVar2 << 0x1c) >> 0x1f;\n    if (-1 < *(int *)(*(int *)(this + 8) + 0x2c)) {\n      iVar6 = *(int *)(*(int *)PTR_parameters_00432be0 + 8);\n      goto LAB_0022ebf4;\n    }\n  }\n  else {\n    if ((uVar2 & 0xe000) != 0) {\n      uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                        (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + -0x2a70);\n      return uVar4;\n    }\n    uVar8 = *(uint *)(this + 8);\n    if (-1 < *(int *)(uVar8 + 0x2c)) {\n      if (((int)(uVar2 << 0x1d) < 0) && (uVar2 = *(uint *)(this + 0xc), uVar2 != 0)) {\n        if ((uint)(*(int *)(uVar8 + 0x3c) - *(int *)(uVar8 + 0x38) >> 2) <= uVar2) {\n          uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                            (PTR_LAB_0043220c + 0x44a8,0x50b,PTR_DAT_0043226c + -0x2a84);\n          return uVar4;\n        }\n        if (*(int *)(*(int *)(uVar8 + 0x38) + uVar2 * 4) == 0) {\n          iVar6 = Symbol_table::is_section_folded((Relobj *)param_1,uVar8);\n          if (iVar6 == 0) {\n            return 0;\n          }\n          uVar2 = *(uint *)(this + 0x28);\n          if (((uVar2 & 0xe000) == 0) &&\n             (uVar8 = (uVar2 << 0x1c) >> 0x1f, *(int *)(*(int *)(this + 8) + 0x2c) < 0))\n          goto LAB_0022ece0;\n        }\n      }\n      iVar6 = *(int *)(*(int *)puVar1 + 8);\n      if (iVar6 == 0) goto LAB_0022ee04;\n      goto LAB_0022ebf4;\n    }\nLAB_0022ecdc:\n    uVar8 = (uVar2 << 0x1c) >> 0x1f;\n  }\nLAB_0022ece0:\n  if (uVar8 != 0) {\n    return 0;\n  }\n  iVar6 = *(int *)(*(int *)puVar1 + 8);\n  if (iVar6 == 0) goto LAB_0022ee04;\n  if (*(char *)(iVar6 + 0xe8d) == '\0') {\nLAB_0022eeb4:\n    if ((*(char *)(iVar6 + 0xf09) == '\0') && (*(char *)(iVar6 + 0xf85) == '\0')) goto LAB_0022ed40;\n    if ((uVar2 & 0xe000) == 0) {\n      iVar7 = *(int *)(this + 8);\n      goto LAB_0022ed34;\n    }\n  }\n  else {\n    if (((uVar2 & 0xe000) != 0) || (iVar7 = *(int *)(this + 8), -1 < *(int *)(iVar7 + 0x2c))) {\n      if (uVar2 >> 0x1c == 1) {\n        return uVar4;\n      }\n      goto LAB_0022eeb4;\n    }\n    if ((*(char *)(iVar6 + 0xf09) != '\0') || (*(char *)(iVar6 + 0xf85) == '\0')) goto LAB_0022ed40;\nLAB_0022ed34:\n    if (*(int *)(iVar7 + 0x2c) < 0) goto LAB_0022ed40;\n  }\n  iVar6 = (*(code *)PTR_cplus_demangle_004335b0)(*(undefined4 *)this,3);\n  if (iVar6 != 0) {\n    iVar7 = *(int *)(*(int *)puVar1 + 8);\n    if (iVar7 == 0) goto LAB_0022ee04;\n    uVar4 = (uint)*(byte *)(iVar7 + 0xf09);\n    if (((uVar4 != 0) &&\n        ((iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35d0,0xc), iVar5 == 0\n         || (iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35c0,0xf),\n            iVar5 == 0)))) ||\n       ((uVar4 = (uint)*(byte *)(iVar7 + 0xf85), uVar4 != 0 &&\n        ((iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35b0,0x11), iVar7 == 0\n         || (iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc),\n            iVar7 == 0)))))) {\n      (*(code *)PTR_free_00436800)(iVar6);\n      return uVar4;\n    }\n    (*(code *)PTR_free_00436800)(iVar6);\n  }\n  iVar6 = *(int *)(*(int *)puVar1 + 8);\n  if (iVar6 != 0) {\nLAB_0022ed40:\n    if ((*(char *)(iVar6 + 0x12bd) == '\0') && (*(char *)(iVar6 + 0x1a29) == '\0')) {\n      if (*(char *)(iVar6 + 0x19ad) == '\0') {\n        return 0;\n      }\n      uVar4 = *(uint *)(this + 0x28);\n      if ((uVar4 << 4) >> 0x1c != 10) {\n        return 0;\n      }\n    }\n    else {\n      uVar4 = *(uint *)(this + 0x28);\n    }\n    if ((uVar4 & 0xe000) == 0) {\n      if (*(int *)(*(int *)(this + 8) + 0x2c) < 0) {\n        return 0;\n      }\n      if ((*(int *)(this + 0xc) == 0) && ((int)(uVar4 << 0x1d) < 0)) {\n        return 0;\n      }\n    }\n    else if ((uVar4 & 0xe000) == 0x8000) {\n      return 0;\n    }\n    if (((uVar4 & 0xc00000) != 0) && ((uVar4 & 0xc00000) != 0xc00000)) {\n      return 0;\n    }\n    return (uVar4 << 0x1c) >> 0x1f ^ 1;\n  }\nLAB_0022ee04:\n  uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x2a30);\n  return uVar4;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "undefined1 *local_40 [2];" type_identifier (pointer_declarator "*local_40 [2]" * (array_declarator "local_40 [2]" identifier [ number_literal ])) ;) (declaration "undefined1 auStack_38 [16];" type_identifier (array_declarator "auStack_38 [16]" identifier [ number_literal ]) ;) (declaration "int local_28 [2];" primitive_type (array_declarator "local_28 [2]" identifier [ number_literal ]) ;) (expression_statement "puVar1 = PTR_parameters_00432be0;" (assignment_expression "puVar1 = PTR_parameters_00432be0" identifier = identifier) ;) (expression_statement "uVar2 = *(uint *)(this + 0x28);" (assignment_expression "uVar2 = *(uint *)(this + 0x28)" identifier = (pointer_expression "*(uint *)(this + 0x28)" * (cast_expression "(uint *)(this + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x28)" ( (binary_expression "this + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = -((int)(uVar2 << 0x1e) >> 0x1f);" (assignment_expression "uVar4 = -((int)(uVar2 << 0x1e) >> 0x1f)" identifier = (unary_expression "-((int)(uVar2 << 0x1e) >> 0x1f)" - (parenthesized_expression "((int)(uVar2 << 0x1e) >> 0x1f)" ( (binary_expression "(int)(uVar2 << 0x1e) >> 0x1f" (cast_expression "(int)(uVar2 << 0x1e)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar2 << 0x1e)" ( (binary_expression "uVar2 << 0x1e" identifier << number_literal) ))) >> number_literal) )))) ;) (if_statement "if (uVar4 == 0) {\n    return 0;\n  }" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if ((int)(uVar2 << 0x16) < 0) {\n    return uVar4;\n  }" if (parenthesized_expression "((int)(uVar2 << 0x16) < 0)" ( (binary_expression "(int)(uVar2 << 0x16) < 0" (cast_expression "(int)(uVar2 << 0x16)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar2 << 0x16)" ( (binary_expression "uVar2 << 0x16" identifier << number_literal) ))) < number_literal) )) (compound_statement "{\n    return uVar4;\n  }" { (return_statement "return uVar4;" return identifier ;) })) (if_statement "if (((((int)(uVar2 << 0x17) < 0) && ((int)(uVar2 << 0x18) < 0)) &&\n      (((uVar2 & 0xc00000) == 0 || ((uVar2 & 0xc00000) == 0xc00000)))) &&\n     (-1 < (int)(uVar2 << 0x1c))) {\n    return uVar4;\n  }" if (parenthesized_expression "(((((int)(uVar2 << 0x17) < 0) && ((int)(uVar2 << 0x18) < 0)) &&\n      (((uVar2 & 0xc00000) == 0 || ((uVar2 & 0xc00000) == 0xc00000)))) &&\n     (-1 < (int)(uVar2 << 0x1c)))" ( (binary_expression "((((int)(uVar2 << 0x17) < 0) && ((int)(uVar2 << 0x18) < 0)) &&\n      (((uVar2 & 0xc00000) == 0 || ((uVar2 & 0xc00000) == 0xc00000)))) &&\n     (-1 < (int)(uVar2 << 0x1c))" (parenthesized_expression "((((int)(uVar2 << 0x17) < 0) && ((int)(uVar2 << 0x18) < 0)) &&\n      (((uVar2 & 0xc00000) == 0 || ((uVar2 & 0xc00000) == 0xc00000))))" ( (binary_expression "(((int)(uVar2 << 0x17) < 0) && ((int)(uVar2 << 0x18) < 0)) &&\n      (((uVar2 & 0xc00000) == 0 || ((uVar2 & 0xc00000) == 0xc00000)))" (parenthesized_expression "(((int)(uVar2 << 0x17) < 0) && ((int)(uVar2 << 0x18) < 0))" ( (binary_expression "((int)(uVar2 << 0x17) < 0) && ((int)(uVar2 << 0x18) < 0)" (parenthesized_expression "((int)(uVar2 << 0x17) < 0)" ( (binary_expression "(int)(uVar2 << 0x17) < 0" (cast_expression "(int)(uVar2 << 0x17)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar2 << 0x17)" ( (binary_expression "uVar2 << 0x17" identifier << number_literal) ))) < number_literal) )) && (parenthesized_expression "((int)(uVar2 << 0x18) < 0)" ( (binary_expression "(int)(uVar2 << 0x18) < 0" (cast_expression "(int)(uVar2 << 0x18)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar2 << 0x18)" ( (binary_expression "uVar2 << 0x18" identifier << number_literal) ))) < number_literal) ))) )) && (parenthesized_expression "(((uVar2 & 0xc00000) == 0 || ((uVar2 & 0xc00000) == 0xc00000)))" ( (parenthesized_expression "((uVar2 & 0xc00000) == 0 || ((uVar2 & 0xc00000) == 0xc00000))" ( (binary_expression "(uVar2 & 0xc00000) == 0 || ((uVar2 & 0xc00000) == 0xc00000)" (binary_expression "(uVar2 & 0xc00000) == 0" (parenthesized_expression "(uVar2 & 0xc00000)" ( (binary_expression "uVar2 & 0xc00000" identifier & number_literal) )) == number_literal) || (parenthesized_expression "((uVar2 & 0xc00000) == 0xc00000)" ( (binary_expression "(uVar2 & 0xc00000) == 0xc00000" (parenthesized_expression "(uVar2 & 0xc00000)" ( (binary_expression "uVar2 & 0xc00000" identifier & number_literal) )) == number_literal) ))) )) ))) )) && (parenthesized_expression "(-1 < (int)(uVar2 << 0x1c))" ( (binary_expression "-1 < (int)(uVar2 << 0x1c)" number_literal < (cast_expression "(int)(uVar2 << 0x1c)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar2 << 0x1c)" ( (binary_expression "uVar2 << 0x1c" identifier << number_literal) )))) ))) )) (compound_statement "{\n    return uVar4;\n  }" { (return_statement "return uVar4;" return identifier ;) })) (expression_statement "iVar6 = *(int *)(*(int *)PTR_parameters_00432be0 + 8);" (assignment_expression "iVar6 = *(int *)(*(int *)PTR_parameters_00432be0 + 8)" identifier = (pointer_expression "*(int *)(*(int *)PTR_parameters_00432be0 + 8)" * (cast_expression "(int *)(*(int *)PTR_parameters_00432be0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_parameters_00432be0 + 8)" ( (binary_expression "*(int *)PTR_parameters_00432be0 + 8" (pointer_expression "*(int *)PTR_parameters_00432be0" * (cast_expression "(int *)PTR_parameters_00432be0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ;) (if_statement "if (iVar6 == 0) goto LAB_0022ee04;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0022ee04;" goto statement_identifier ;)) (if_statement "if (((*(char *)(iVar6 + 0x18b5) == '\0') || (*(char *)(iVar6 + 0x1a29) != '\0')) ||\n     ((uVar2 << 0x10) >> 0x1d != 0)) {\n    if ((uVar2 & 0xe000) != 0) {\nLAB_0022ebf4:\n      iVar6 = Version_script_info::get_symbol_version\n                        ((Version_script_info *)(iVar6 + 0x59b8),*(char **)this,(string *)0x0,\n                         (bool *)local_40);\n      if ((iVar6 != 0) && (local_40[0]._0_1_ == '\0')) {\nLAB_0022ec20:\n        if (-1 < *(int *)(this + 0x28) << 0x1c) {\n          return uVar4;\n        }\n        uVar3 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x35f0);\n        FUN_0022e934(local_40,*(undefined4 *)this);\n                    /* try { // try from 0022ec68 to 0022ec6f has its CatchHandler @ 0022f0e0 */\n        (*(code *)PTR_gold_warning_0043245c)(uVar3,local_40[0]);\n        if (local_40[0] == auStack_38) {\n          return 0;\n        }\n        (*(code *)PTR_operator_delete_0043228c)();\n        return 0;\n      }\n      iVar6 = *(int *)(*(int *)puVar1 + 8);\n      if (iVar6 == 0) goto LAB_0022ee04;\n      if (*(int *)(iVar6 + 0x1348) != 0) {\n        iVar7 = *(int *)this;\n        local_40[0] = auStack_38;\n        if (iVar7 == 0) {\n          iVar5 = -1;\n        }\n        else {\n          iVar5 = (*(code *)PTR_strlen_0043677c)(iVar7);\n          iVar5 = iVar7 + iVar5;\n        }\n        (*(code *)PTR__M_construct<char_const*>_00432488)(local_40,iVar7,iVar5,0);\n        (*(code *)PTR_find_00433360)(local_28,iVar6 + 0x133c,local_40);\n        if (local_28[0] != 0) {\n          if (local_40[0] != auStack_38) {\n            (*(code *)PTR_operator_delete_0043228c)();\n          }\n          goto LAB_0022ec20;\n        }\n        if (local_40[0] != auStack_38) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n      }\n      uVar2 = *(uint *)(this + 0x28);\n      goto LAB_0022ecdc;\n    }\n    uVar8 = (uVar2 << 0x1c) >> 0x1f;\n    if (-1 < *(int *)(*(int *)(this + 8) + 0x2c)) {\n      iVar6 = *(int *)(*(int *)PTR_parameters_00432be0 + 8);\n      goto LAB_0022ebf4;\n    }\n  }\n  else {\n    if ((uVar2 & 0xe000) != 0) {\n      uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                        (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + -0x2a70);\n      return uVar4;\n    }\n    uVar8 = *(uint *)(this + 8);\n    if (-1 < *(int *)(uVar8 + 0x2c)) {\n      if (((int)(uVar2 << 0x1d) < 0) && (uVar2 = *(uint *)(this + 0xc), uVar2 != 0)) {\n        if ((uint)(*(int *)(uVar8 + 0x3c) - *(int *)(uVar8 + 0x38) >> 2) <= uVar2) {\n          uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                            (PTR_LAB_0043220c + 0x44a8,0x50b,PTR_DAT_0043226c + -0x2a84);\n          return uVar4;\n        }\n        if (*(int *)(*(int *)(uVar8 + 0x38) + uVar2 * 4) == 0) {\n          iVar6 = Symbol_table::is_section_folded((Relobj *)param_1,uVar8);\n          if (iVar6 == 0) {\n            return 0;\n          }\n          uVar2 = *(uint *)(this + 0x28);\n          if (((uVar2 & 0xe000) == 0) &&\n             (uVar8 = (uVar2 << 0x1c) >> 0x1f, *(int *)(*(int *)(this + 8) + 0x2c) < 0))\n          goto LAB_0022ece0;\n        }\n      }\n      iVar6 = *(int *)(*(int *)puVar1 + 8);\n      if (iVar6 == 0) goto LAB_0022ee04;\n      goto LAB_0022ebf4;\n    }\nLAB_0022ecdc:\n    uVar8 = (uVar2 << 0x1c) >> 0x1f;\n  }" if (parenthesized_expression "(((*(char *)(iVar6 + 0x18b5) == '\0') || (*(char *)(iVar6 + 0x1a29) != '\0')) ||\n     ((uVar2 << 0x10) >> 0x1d != 0))" ( (binary_expression "((*(char *)(iVar6 + 0x18b5) == '\0') || (*(char *)(iVar6 + 0x1a29) != '\0')) ||\n     ((uVar2 << 0x10) >> 0x1d != 0)" (parenthesized_expression "((*(char *)(iVar6 + 0x18b5) == '\0') || (*(char *)(iVar6 + 0x1a29) != '\0'))" ( (binary_expression "(*(char *)(iVar6 + 0x18b5) == '\0') || (*(char *)(iVar6 + 0x1a29) != '\0')" (parenthesized_expression "(*(char *)(iVar6 + 0x18b5) == '\0')" ( (binary_expression "*(char *)(iVar6 + 0x18b5) == '\0'" (pointer_expression "*(char *)(iVar6 + 0x18b5)" * (cast_expression "(char *)(iVar6 + 0x18b5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x18b5)" ( (binary_expression "iVar6 + 0x18b5" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(*(char *)(iVar6 + 0x1a29) != '\0')" ( (binary_expression "*(char *)(iVar6 + 0x1a29) != '\0'" (pointer_expression "*(char *)(iVar6 + 0x1a29)" * (cast_expression "(char *)(iVar6 + 0x1a29)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x1a29)" ( (binary_expression "iVar6 + 0x1a29" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) || (parenthesized_expression "((uVar2 << 0x10) >> 0x1d != 0)" ( (binary_expression "(uVar2 << 0x10) >> 0x1d != 0" (binary_expression "(uVar2 << 0x10) >> 0x1d" (parenthesized_expression "(uVar2 << 0x10)" ( (binary_expression "uVar2 << 0x10" identifier << number_literal) )) >> number_literal) != number_literal) ))) )) (compound_statement "{\n    if ((uVar2 & 0xe000) != 0) {\nLAB_0022ebf4:\n      iVar6 = Version_script_info::get_symbol_version\n                        ((Version_script_info *)(iVar6 + 0x59b8),*(char **)this,(string *)0x0,\n                         (bool *)local_40);\n      if ((iVar6 != 0) && (local_40[0]._0_1_ == '\0')) {\nLAB_0022ec20:\n        if (-1 < *(int *)(this + 0x28) << 0x1c) {\n          return uVar4;\n        }\n        uVar3 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x35f0);\n        FUN_0022e934(local_40,*(undefined4 *)this);\n                    /* try { // try from 0022ec68 to 0022ec6f has its CatchHandler @ 0022f0e0 */\n        (*(code *)PTR_gold_warning_0043245c)(uVar3,local_40[0]);\n        if (local_40[0] == auStack_38) {\n          return 0;\n        }\n        (*(code *)PTR_operator_delete_0043228c)();\n        return 0;\n      }\n      iVar6 = *(int *)(*(int *)puVar1 + 8);\n      if (iVar6 == 0) goto LAB_0022ee04;\n      if (*(int *)(iVar6 + 0x1348) != 0) {\n        iVar7 = *(int *)this;\n        local_40[0] = auStack_38;\n        if (iVar7 == 0) {\n          iVar5 = -1;\n        }\n        else {\n          iVar5 = (*(code *)PTR_strlen_0043677c)(iVar7);\n          iVar5 = iVar7 + iVar5;\n        }\n        (*(code *)PTR__M_construct<char_const*>_00432488)(local_40,iVar7,iVar5,0);\n        (*(code *)PTR_find_00433360)(local_28,iVar6 + 0x133c,local_40);\n        if (local_28[0] != 0) {\n          if (local_40[0] != auStack_38) {\n            (*(code *)PTR_operator_delete_0043228c)();\n          }\n          goto LAB_0022ec20;\n        }\n        if (local_40[0] != auStack_38) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n      }\n      uVar2 = *(uint *)(this + 0x28);\n      goto LAB_0022ecdc;\n    }\n    uVar8 = (uVar2 << 0x1c) >> 0x1f;\n    if (-1 < *(int *)(*(int *)(this + 8) + 0x2c)) {\n      iVar6 = *(int *)(*(int *)PTR_parameters_00432be0 + 8);\n      goto LAB_0022ebf4;\n    }\n  }" { (if_statement "if ((uVar2 & 0xe000) != 0) {\nLAB_0022ebf4:\n      iVar6 = Version_script_info::get_symbol_version\n                        ((Version_script_info *)(iVar6 + 0x59b8),*(char **)this,(string *)0x0,\n                         (bool *)local_40);\n      if ((iVar6 != 0) && (local_40[0]._0_1_ == '\0')) {\nLAB_0022ec20:\n        if (-1 < *(int *)(this + 0x28) << 0x1c) {\n          return uVar4;\n        }\n        uVar3 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x35f0);\n        FUN_0022e934(local_40,*(undefined4 *)this);\n                    /* try { // try from 0022ec68 to 0022ec6f has its CatchHandler @ 0022f0e0 */\n        (*(code *)PTR_gold_warning_0043245c)(uVar3,local_40[0]);\n        if (local_40[0] == auStack_38) {\n          return 0;\n        }\n        (*(code *)PTR_operator_delete_0043228c)();\n        return 0;\n      }\n      iVar6 = *(int *)(*(int *)puVar1 + 8);\n      if (iVar6 == 0) goto LAB_0022ee04;\n      if (*(int *)(iVar6 + 0x1348) != 0) {\n        iVar7 = *(int *)this;\n        local_40[0] = auStack_38;\n        if (iVar7 == 0) {\n          iVar5 = -1;\n        }\n        else {\n          iVar5 = (*(code *)PTR_strlen_0043677c)(iVar7);\n          iVar5 = iVar7 + iVar5;\n        }\n        (*(code *)PTR__M_construct<char_const*>_00432488)(local_40,iVar7,iVar5,0);\n        (*(code *)PTR_find_00433360)(local_28,iVar6 + 0x133c,local_40);\n        if (local_28[0] != 0) {\n          if (local_40[0] != auStack_38) {\n            (*(code *)PTR_operator_delete_0043228c)();\n          }\n          goto LAB_0022ec20;\n        }\n        if (local_40[0] != auStack_38) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n      }\n      uVar2 = *(uint *)(this + 0x28);\n      goto LAB_0022ecdc;\n    }" if (parenthesized_expression "((uVar2 & 0xe000) != 0)" ( (binary_expression "(uVar2 & 0xe000) != 0" (parenthesized_expression "(uVar2 & 0xe000)" ( (binary_expression "uVar2 & 0xe000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_0022ebf4:\n      iVar6 = Version_script_info::get_symbol_version\n                        ((Version_script_info *)(iVar6 + 0x59b8),*(char **)this,(string *)0x0,\n                         (bool *)local_40);\n      if ((iVar6 != 0) && (local_40[0]._0_1_ == '\0')) {\nLAB_0022ec20:\n        if (-1 < *(int *)(this + 0x28) << 0x1c) {\n          return uVar4;\n        }\n        uVar3 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x35f0);\n        FUN_0022e934(local_40,*(undefined4 *)this);\n                    /* try { // try from 0022ec68 to 0022ec6f has its CatchHandler @ 0022f0e0 */\n        (*(code *)PTR_gold_warning_0043245c)(uVar3,local_40[0]);\n        if (local_40[0] == auStack_38) {\n          return 0;\n        }\n        (*(code *)PTR_operator_delete_0043228c)();\n        return 0;\n      }\n      iVar6 = *(int *)(*(int *)puVar1 + 8);\n      if (iVar6 == 0) goto LAB_0022ee04;\n      if (*(int *)(iVar6 + 0x1348) != 0) {\n        iVar7 = *(int *)this;\n        local_40[0] = auStack_38;\n        if (iVar7 == 0) {\n          iVar5 = -1;\n        }\n        else {\n          iVar5 = (*(code *)PTR_strlen_0043677c)(iVar7);\n          iVar5 = iVar7 + iVar5;\n        }\n        (*(code *)PTR__M_construct<char_const*>_00432488)(local_40,iVar7,iVar5,0);\n        (*(code *)PTR_find_00433360)(local_28,iVar6 + 0x133c,local_40);\n        if (local_28[0] != 0) {\n          if (local_40[0] != auStack_38) {\n            (*(code *)PTR_operator_delete_0043228c)();\n          }\n          goto LAB_0022ec20;\n        }\n        if (local_40[0] != auStack_38) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n      }\n      uVar2 = *(uint *)(this + 0x28);\n      goto LAB_0022ecdc;\n    }" { (labeled_statement "LAB_0022ebf4:\n      iVar6 = Version_script_info::get_symbol_version\n                        ((Version_script_info *)(iVar6 + 0x59b8),*(char **)this,(string *)0x0,\n                         (bool *)local_40);" statement_identifier : (ERROR "iVar6 = Version_script_info::" (assignment_expression "iVar6 = Version_script_info" identifier = identifier) : :) (expression_statement "get_symbol_version\n                        ((Version_script_info *)(iVar6 + 0x59b8),*(char **)this,(string *)0x0,\n                         (bool *)local_40);" (call_expression "get_symbol_version\n                        ((Version_script_info *)(iVar6 + 0x59b8),*(char **)this,(string *)0x0,\n                         (bool *)local_40)" identifier (argument_list "((Version_script_info *)(iVar6 + 0x59b8),*(char **)this,(string *)0x0,\n                         (bool *)local_40)" ( (cast_expression "(Version_script_info *)(iVar6 + 0x59b8)" ( (type_descriptor "Version_script_info *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x59b8)" ( (binary_expression "iVar6 + 0x59b8" identifier + number_literal) ))) , (pointer_expression "*(char **)this" * (cast_expression "(char **)this" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) , (cast_expression "(string *)0x0" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(bool *)local_40" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)) (if_statement "if ((iVar6 != 0) && (local_40[0]._0_1_ == '\0')) {\nLAB_0022ec20:\n        if (-1 < *(int *)(this + 0x28) << 0x1c) {\n          return uVar4;\n        }\n        uVar3 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x35f0);\n        FUN_0022e934(local_40,*(undefined4 *)this);\n                    /* try { // try from 0022ec68 to 0022ec6f has its CatchHandler @ 0022f0e0 */\n        (*(code *)PTR_gold_warning_0043245c)(uVar3,local_40[0]);\n        if (local_40[0] == auStack_38) {\n          return 0;\n        }\n        (*(code *)PTR_operator_delete_0043228c)();\n        return 0;\n      }" if (parenthesized_expression "((iVar6 != 0) && (local_40[0]._0_1_ == '\0'))" ( (binary_expression "(iVar6 != 0) && (local_40[0]._0_1_ == '\0')" (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) && (parenthesized_expression "(local_40[0]._0_1_ == '\0')" ( (binary_expression "local_40[0]._0_1_ == '\0'" (field_expression "local_40[0]._0_1_" (subscript_expression "local_40[0]" identifier [ number_literal ]) . field_identifier) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\nLAB_0022ec20:\n        if (-1 < *(int *)(this + 0x28) << 0x1c) {\n          return uVar4;\n        }\n        uVar3 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x35f0);\n        FUN_0022e934(local_40,*(undefined4 *)this);\n                    /* try { // try from 0022ec68 to 0022ec6f has its CatchHandler @ 0022f0e0 */\n        (*(code *)PTR_gold_warning_0043245c)(uVar3,local_40[0]);\n        if (local_40[0] == auStack_38) {\n          return 0;\n        }\n        (*(code *)PTR_operator_delete_0043228c)();\n        return 0;\n      }" { (labeled_statement "LAB_0022ec20:\n        if (-1 < *(int *)(this + 0x28) << 0x1c) {\n          return uVar4;\n        }" statement_identifier : (if_statement "if (-1 < *(int *)(this + 0x28) << 0x1c) {\n          return uVar4;\n        }" if (parenthesized_expression "(-1 < *(int *)(this + 0x28) << 0x1c)" ( (binary_expression "-1 < *(int *)(this + 0x28) << 0x1c" number_literal < (binary_expression "*(int *)(this + 0x28) << 0x1c" (pointer_expression "*(int *)(this + 0x28)" * (cast_expression "(int *)(this + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x28)" ( (binary_expression "this + 0x28" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\n          return uVar4;\n        }" { (return_statement "return uVar4;" return identifier ;) }))) (expression_statement "uVar3 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x35f0);" (assignment_expression "uVar3 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x35f0)" identifier = (call_expression "(*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x35f0)" (parenthesized_expression "(*(code *)PTR_gettext_00436818)" ( (pointer_expression "*(code *)PTR_gettext_00436818" * (cast_expression "(code *)PTR_gettext_00436818" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0043226c + -0x35f0)" ( (binary_expression "PTR_DAT_0043226c + -0x35f0" identifier + number_literal) )))) ;) (expression_statement "FUN_0022e934(local_40,*(undefined4 *)this);" (call_expression "FUN_0022e934(local_40,*(undefined4 *)this)" identifier (argument_list "(local_40,*(undefined4 *)this)" ( identifier , (pointer_expression "*(undefined4 *)this" * (cast_expression "(undefined4 *)this" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) comment (expression_statement "(*(code *)PTR_gold_warning_0043245c)(uVar3,local_40[0]);" (call_expression "(*(code *)PTR_gold_warning_0043245c)(uVar3,local_40[0])" (parenthesized_expression "(*(code *)PTR_gold_warning_0043245c)" ( (pointer_expression "*(code *)PTR_gold_warning_0043245c" * (cast_expression "(code *)PTR_gold_warning_0043245c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar3,local_40[0])" ( identifier , (subscript_expression "local_40[0]" identifier [ number_literal ]) ))) ;) (if_statement "if (local_40[0] == auStack_38) {\n          return 0;\n        }" if (parenthesized_expression "(local_40[0] == auStack_38)" ( (binary_expression "local_40[0] == auStack_38" (subscript_expression "local_40[0]" identifier [ number_literal ]) == identifier) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" ( (pointer_expression "*(code *)PTR_operator_delete_0043228c" * (cast_expression "(code *)PTR_operator_delete_0043228c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar6 = *(int *)(*(int *)puVar1 + 8);" (assignment_expression "iVar6 = *(int *)(*(int *)puVar1 + 8)" identifier = (pointer_expression "*(int *)(*(int *)puVar1 + 8)" * (cast_expression "(int *)(*(int *)puVar1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar1 + 8)" ( (binary_expression "*(int *)puVar1 + 8" (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ;) (if_statement "if (iVar6 == 0) goto LAB_0022ee04;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0022ee04;" goto statement_identifier ;)) (if_statement "if (*(int *)(iVar6 + 0x1348) != 0) {\n        iVar7 = *(int *)this;\n        local_40[0] = auStack_38;\n        if (iVar7 == 0) {\n          iVar5 = -1;\n        }\n        else {\n          iVar5 = (*(code *)PTR_strlen_0043677c)(iVar7);\n          iVar5 = iVar7 + iVar5;\n        }\n        (*(code *)PTR__M_construct<char_const*>_00432488)(local_40,iVar7,iVar5,0);\n        (*(code *)PTR_find_00433360)(local_28,iVar6 + 0x133c,local_40);\n        if (local_28[0] != 0) {\n          if (local_40[0] != auStack_38) {\n            (*(code *)PTR_operator_delete_0043228c)();\n          }\n          goto LAB_0022ec20;\n        }\n        if (local_40[0] != auStack_38) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n      }" if (parenthesized_expression "(*(int *)(iVar6 + 0x1348) != 0)" ( (binary_expression "*(int *)(iVar6 + 0x1348) != 0" (pointer_expression "*(int *)(iVar6 + 0x1348)" * (cast_expression "(int *)(iVar6 + 0x1348)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x1348)" ( (binary_expression "iVar6 + 0x1348" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        iVar7 = *(int *)this;\n        local_40[0] = auStack_38;\n        if (iVar7 == 0) {\n          iVar5 = -1;\n        }\n        else {\n          iVar5 = (*(code *)PTR_strlen_0043677c)(iVar7);\n          iVar5 = iVar7 + iVar5;\n        }\n        (*(code *)PTR__M_construct<char_const*>_00432488)(local_40,iVar7,iVar5,0);\n        (*(code *)PTR_find_00433360)(local_28,iVar6 + 0x133c,local_40);\n        if (local_28[0] != 0) {\n          if (local_40[0] != auStack_38) {\n            (*(code *)PTR_operator_delete_0043228c)();\n          }\n          goto LAB_0022ec20;\n        }\n        if (local_40[0] != auStack_38) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n      }" { (expression_statement "iVar7 = *(int *)this;" (assignment_expression "iVar7 = *(int *)this" identifier = (pointer_expression "*(int *)this" * (cast_expression "(int *)this" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "local_40[0] = auStack_38;" (assignment_expression "local_40[0] = auStack_38" (subscript_expression "local_40[0]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar7 == 0) {\n          iVar5 = -1;\n        }\n        else {\n          iVar5 = (*(code *)PTR_strlen_0043677c)(iVar7);\n          iVar5 = iVar7 + iVar5;\n        }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar5 = -1;\n        }" { (expression_statement "iVar5 = -1;" (assignment_expression "iVar5 = -1" identifier = number_literal) ;) }) (else_clause "else {\n          iVar5 = (*(code *)PTR_strlen_0043677c)(iVar7);\n          iVar5 = iVar7 + iVar5;\n        }" else (compound_statement "{\n          iVar5 = (*(code *)PTR_strlen_0043677c)(iVar7);\n          iVar5 = iVar7 + iVar5;\n        }" { (expression_statement "iVar5 = (*(code *)PTR_strlen_0043677c)(iVar7);" (assignment_expression "iVar5 = (*(code *)PTR_strlen_0043677c)(iVar7)" identifier = (call_expression "(*(code *)PTR_strlen_0043677c)(iVar7)" (parenthesized_expression "(*(code *)PTR_strlen_0043677c)" ( (pointer_expression "*(code *)PTR_strlen_0043677c" * (cast_expression "(code *)PTR_strlen_0043677c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar7)" ( identifier )))) ;) (expression_statement "iVar5 = iVar7 + iVar5;" (assignment_expression "iVar5 = iVar7 + iVar5" identifier = (binary_expression "iVar7 + iVar5" identifier + identifier)) ;) }))) (expression_statement "(*(code *)PTR__M_construct<char_const*>_00432488)(local_40,iVar7,iVar5,0);" (call_expression "(*(code *)PTR__M_construct<char_const*>_00432488)(local_40,iVar7,iVar5,0)" (parenthesized_expression "(*(code *)PTR__M_construct<char_const*>_00432488)" ( (binary_expression "*(code *)PTR__M_construct<char_const*>_00432488" (binary_expression "*(code *)PTR__M_construct<char_const" (pointer_expression "*(code *)PTR__M_construct" * (cast_expression "(code *)PTR__M_construct" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < identifier) (ERROR "*" *) > identifier) )) (argument_list "(local_40,iVar7,iVar5,0)" ( identifier , identifier , identifier , number_literal ))) ;) (expression_statement "(*(code *)PTR_find_00433360)(local_28,iVar6 + 0x133c,local_40);" (call_expression "(*(code *)PTR_find_00433360)(local_28,iVar6 + 0x133c,local_40)" (parenthesized_expression "(*(code *)PTR_find_00433360)" ( (pointer_expression "*(code *)PTR_find_00433360" * (cast_expression "(code *)PTR_find_00433360" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_28,iVar6 + 0x133c,local_40)" ( identifier , (binary_expression "iVar6 + 0x133c" identifier + number_literal) , identifier ))) ;) (if_statement "if (local_28[0] != 0) {\n          if (local_40[0] != auStack_38) {\n            (*(code *)PTR_operator_delete_0043228c)();\n          }\n          goto LAB_0022ec20;\n        }" if (parenthesized_expression "(local_28[0] != 0)" ( (binary_expression "local_28[0] != 0" (subscript_expression "local_28[0]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n          if (local_40[0] != auStack_38) {\n            (*(code *)PTR_operator_delete_0043228c)();\n          }\n          goto LAB_0022ec20;\n        }" { (if_statement "if (local_40[0] != auStack_38) {\n            (*(code *)PTR_operator_delete_0043228c)();\n          }" if (parenthesized_expression "(local_40[0] != auStack_38)" ( (binary_expression "local_40[0] != auStack_38" (subscript_expression "local_40[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n            (*(code *)PTR_operator_delete_0043228c)();\n          }" { (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" ( (pointer_expression "*(code *)PTR_operator_delete_0043228c" * (cast_expression "(code *)PTR_operator_delete_0043228c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (goto_statement "goto LAB_0022ec20;" goto statement_identifier ;) })) (if_statement "if (local_40[0] != auStack_38) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }" if (parenthesized_expression "(local_40[0] != auStack_38)" ( (binary_expression "local_40[0] != auStack_38" (subscript_expression "local_40[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n          (*(code *)PTR_operator_delete_0043228c)();\n        }" { (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" ( (pointer_expression "*(code *)PTR_operator_delete_0043228c" * (cast_expression "(code *)PTR_operator_delete_0043228c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) })) (expression_statement "uVar2 = *(uint *)(this + 0x28);" (assignment_expression "uVar2 = *(uint *)(this + 0x28)" identifier = (pointer_expression "*(uint *)(this + 0x28)" * (cast_expression "(uint *)(this + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x28)" ( (binary_expression "this + 0x28" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0022ecdc;" goto statement_identifier ;) })) (expression_statement "uVar8 = (uVar2 << 0x1c) >> 0x1f;" (assignment_expression "uVar8 = (uVar2 << 0x1c) >> 0x1f" identifier = (binary_expression "(uVar2 << 0x1c) >> 0x1f" (parenthesized_expression "(uVar2 << 0x1c)" ( (binary_expression "uVar2 << 0x1c" identifier << number_literal) )) >> number_literal)) ;) (if_statement "if (-1 < *(int *)(*(int *)(this + 8) + 0x2c)) {\n      iVar6 = *(int *)(*(int *)PTR_parameters_00432be0 + 8);\n      goto LAB_0022ebf4;\n    }" if (parenthesized_expression "(-1 < *(int *)(*(int *)(this + 8) + 0x2c))" ( (binary_expression "-1 < *(int *)(*(int *)(this + 8) + 0x2c)" number_literal < (pointer_expression "*(int *)(*(int *)(this + 8) + 0x2c)" * (cast_expression "(int *)(*(int *)(this + 8) + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(this + 8) + 0x2c)" ( (binary_expression "*(int *)(this + 8) + 0x2c" (pointer_expression "*(int *)(this + 8)" * (cast_expression "(int *)(this + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) )))) + number_literal) ))))) )) (compound_statement "{\n      iVar6 = *(int *)(*(int *)PTR_parameters_00432be0 + 8);\n      goto LAB_0022ebf4;\n    }" { (expression_statement "iVar6 = *(int *)(*(int *)PTR_parameters_00432be0 + 8);" (assignment_expression "iVar6 = *(int *)(*(int *)PTR_parameters_00432be0 + 8)" identifier = (pointer_expression "*(int *)(*(int *)PTR_parameters_00432be0 + 8)" * (cast_expression "(int *)(*(int *)PTR_parameters_00432be0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_parameters_00432be0 + 8)" ( (binary_expression "*(int *)PTR_parameters_00432be0 + 8" (pointer_expression "*(int *)PTR_parameters_00432be0" * (cast_expression "(int *)PTR_parameters_00432be0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ;) (goto_statement "goto LAB_0022ebf4;" goto statement_identifier ;) })) }) (else_clause "else {\n    if ((uVar2 & 0xe000) != 0) {\n      uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                        (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + -0x2a70);\n      return uVar4;\n    }\n    uVar8 = *(uint *)(this + 8);\n    if (-1 < *(int *)(uVar8 + 0x2c)) {\n      if (((int)(uVar2 << 0x1d) < 0) && (uVar2 = *(uint *)(this + 0xc), uVar2 != 0)) {\n        if ((uint)(*(int *)(uVar8 + 0x3c) - *(int *)(uVar8 + 0x38) >> 2) <= uVar2) {\n          uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                            (PTR_LAB_0043220c + 0x44a8,0x50b,PTR_DAT_0043226c + -0x2a84);\n          return uVar4;\n        }\n        if (*(int *)(*(int *)(uVar8 + 0x38) + uVar2 * 4) == 0) {\n          iVar6 = Symbol_table::is_section_folded((Relobj *)param_1,uVar8);\n          if (iVar6 == 0) {\n            return 0;\n          }\n          uVar2 = *(uint *)(this + 0x28);\n          if (((uVar2 & 0xe000) == 0) &&\n             (uVar8 = (uVar2 << 0x1c) >> 0x1f, *(int *)(*(int *)(this + 8) + 0x2c) < 0))\n          goto LAB_0022ece0;\n        }\n      }\n      iVar6 = *(int *)(*(int *)puVar1 + 8);\n      if (iVar6 == 0) goto LAB_0022ee04;\n      goto LAB_0022ebf4;\n    }\nLAB_0022ecdc:\n    uVar8 = (uVar2 << 0x1c) >> 0x1f;\n  }" else (compound_statement "{\n    if ((uVar2 & 0xe000) != 0) {\n      uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                        (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + -0x2a70);\n      return uVar4;\n    }\n    uVar8 = *(uint *)(this + 8);\n    if (-1 < *(int *)(uVar8 + 0x2c)) {\n      if (((int)(uVar2 << 0x1d) < 0) && (uVar2 = *(uint *)(this + 0xc), uVar2 != 0)) {\n        if ((uint)(*(int *)(uVar8 + 0x3c) - *(int *)(uVar8 + 0x38) >> 2) <= uVar2) {\n          uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                            (PTR_LAB_0043220c + 0x44a8,0x50b,PTR_DAT_0043226c + -0x2a84);\n          return uVar4;\n        }\n        if (*(int *)(*(int *)(uVar8 + 0x38) + uVar2 * 4) == 0) {\n          iVar6 = Symbol_table::is_section_folded((Relobj *)param_1,uVar8);\n          if (iVar6 == 0) {\n            return 0;\n          }\n          uVar2 = *(uint *)(this + 0x28);\n          if (((uVar2 & 0xe000) == 0) &&\n             (uVar8 = (uVar2 << 0x1c) >> 0x1f, *(int *)(*(int *)(this + 8) + 0x2c) < 0))\n          goto LAB_0022ece0;\n        }\n      }\n      iVar6 = *(int *)(*(int *)puVar1 + 8);\n      if (iVar6 == 0) goto LAB_0022ee04;\n      goto LAB_0022ebf4;\n    }\nLAB_0022ecdc:\n    uVar8 = (uVar2 << 0x1c) >> 0x1f;\n  }" { (if_statement "if ((uVar2 & 0xe000) != 0) {\n      uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                        (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + -0x2a70);\n      return uVar4;\n    }" if (parenthesized_expression "((uVar2 & 0xe000) != 0)" ( (binary_expression "(uVar2 & 0xe000) != 0" (parenthesized_expression "(uVar2 & 0xe000)" ( (binary_expression "uVar2 & 0xe000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                        (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + -0x2a70);\n      return uVar4;\n    }" { (expression_statement "uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                        (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + -0x2a70);" (assignment_expression "uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                        (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + -0x2a70)" identifier = (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                        (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + -0x2a70)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + -0x2a70)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5bdc" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0043226c + -0x2a70" identifier + number_literal) )))) ;) (return_statement "return uVar4;" return identifier ;) })) (expression_statement "uVar8 = *(uint *)(this + 8);" (assignment_expression "uVar8 = *(uint *)(this + 8)" identifier = (pointer_expression "*(uint *)(this + 8)" * (cast_expression "(uint *)(this + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) ))))) ;) (if_statement "if (-1 < *(int *)(uVar8 + 0x2c)) {\n      if (((int)(uVar2 << 0x1d) < 0) && (uVar2 = *(uint *)(this + 0xc), uVar2 != 0)) {\n        if ((uint)(*(int *)(uVar8 + 0x3c) - *(int *)(uVar8 + 0x38) >> 2) <= uVar2) {\n          uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                            (PTR_LAB_0043220c + 0x44a8,0x50b,PTR_DAT_0043226c + -0x2a84);\n          return uVar4;\n        }\n        if (*(int *)(*(int *)(uVar8 + 0x38) + uVar2 * 4) == 0) {\n          iVar6 = Symbol_table::is_section_folded((Relobj *)param_1,uVar8);\n          if (iVar6 == 0) {\n            return 0;\n          }\n          uVar2 = *(uint *)(this + 0x28);\n          if (((uVar2 & 0xe000) == 0) &&\n             (uVar8 = (uVar2 << 0x1c) >> 0x1f, *(int *)(*(int *)(this + 8) + 0x2c) < 0))\n          goto LAB_0022ece0;\n        }\n      }\n      iVar6 = *(int *)(*(int *)puVar1 + 8);\n      if (iVar6 == 0) goto LAB_0022ee04;\n      goto LAB_0022ebf4;\n    }" if (parenthesized_expression "(-1 < *(int *)(uVar8 + 0x2c))" ( (binary_expression "-1 < *(int *)(uVar8 + 0x2c)" number_literal < (pointer_expression "*(int *)(uVar8 + 0x2c)" * (cast_expression "(int *)(uVar8 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar8 + 0x2c)" ( (binary_expression "uVar8 + 0x2c" identifier + number_literal) ))))) )) (compound_statement "{\n      if (((int)(uVar2 << 0x1d) < 0) && (uVar2 = *(uint *)(this + 0xc), uVar2 != 0)) {\n        if ((uint)(*(int *)(uVar8 + 0x3c) - *(int *)(uVar8 + 0x38) >> 2) <= uVar2) {\n          uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                            (PTR_LAB_0043220c + 0x44a8,0x50b,PTR_DAT_0043226c + -0x2a84);\n          return uVar4;\n        }\n        if (*(int *)(*(int *)(uVar8 + 0x38) + uVar2 * 4) == 0) {\n          iVar6 = Symbol_table::is_section_folded((Relobj *)param_1,uVar8);\n          if (iVar6 == 0) {\n            return 0;\n          }\n          uVar2 = *(uint *)(this + 0x28);\n          if (((uVar2 & 0xe000) == 0) &&\n             (uVar8 = (uVar2 << 0x1c) >> 0x1f, *(int *)(*(int *)(this + 8) + 0x2c) < 0))\n          goto LAB_0022ece0;\n        }\n      }\n      iVar6 = *(int *)(*(int *)puVar1 + 8);\n      if (iVar6 == 0) goto LAB_0022ee04;\n      goto LAB_0022ebf4;\n    }" { (if_statement "if (((int)(uVar2 << 0x1d) < 0) && (uVar2 = *(uint *)(this + 0xc), uVar2 != 0)) {\n        if ((uint)(*(int *)(uVar8 + 0x3c) - *(int *)(uVar8 + 0x38) >> 2) <= uVar2) {\n          uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                            (PTR_LAB_0043220c + 0x44a8,0x50b,PTR_DAT_0043226c + -0x2a84);\n          return uVar4;\n        }\n        if (*(int *)(*(int *)(uVar8 + 0x38) + uVar2 * 4) == 0) {\n          iVar6 = Symbol_table::is_section_folded((Relobj *)param_1,uVar8);\n          if (iVar6 == 0) {\n            return 0;\n          }\n          uVar2 = *(uint *)(this + 0x28);\n          if (((uVar2 & 0xe000) == 0) &&\n             (uVar8 = (uVar2 << 0x1c) >> 0x1f, *(int *)(*(int *)(this + 8) + 0x2c) < 0))\n          goto LAB_0022ece0;\n        }\n      }" if (parenthesized_expression "(((int)(uVar2 << 0x1d) < 0) && (uVar2 = *(uint *)(this + 0xc), uVar2 != 0))" ( (binary_expression "((int)(uVar2 << 0x1d) < 0) && (uVar2 = *(uint *)(this + 0xc), uVar2 != 0)" (parenthesized_expression "((int)(uVar2 << 0x1d) < 0)" ( (binary_expression "(int)(uVar2 << 0x1d) < 0" (cast_expression "(int)(uVar2 << 0x1d)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar2 << 0x1d)" ( (binary_expression "uVar2 << 0x1d" identifier << number_literal) ))) < number_literal) )) && (parenthesized_expression "(uVar2 = *(uint *)(this + 0xc), uVar2 != 0)" ( (comma_expression "uVar2 = *(uint *)(this + 0xc), uVar2 != 0" (assignment_expression "uVar2 = *(uint *)(this + 0xc)" identifier = (pointer_expression "*(uint *)(this + 0xc)" * (cast_expression "(uint *)(this + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0xc)" ( (binary_expression "this + 0xc" identifier + number_literal) ))))) , (binary_expression "uVar2 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n        if ((uint)(*(int *)(uVar8 + 0x3c) - *(int *)(uVar8 + 0x38) >> 2) <= uVar2) {\n          uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                            (PTR_LAB_0043220c + 0x44a8,0x50b,PTR_DAT_0043226c + -0x2a84);\n          return uVar4;\n        }\n        if (*(int *)(*(int *)(uVar8 + 0x38) + uVar2 * 4) == 0) {\n          iVar6 = Symbol_table::is_section_folded((Relobj *)param_1,uVar8);\n          if (iVar6 == 0) {\n            return 0;\n          }\n          uVar2 = *(uint *)(this + 0x28);\n          if (((uVar2 & 0xe000) == 0) &&\n             (uVar8 = (uVar2 << 0x1c) >> 0x1f, *(int *)(*(int *)(this + 8) + 0x2c) < 0))\n          goto LAB_0022ece0;\n        }\n      }" { (if_statement "if ((uint)(*(int *)(uVar8 + 0x3c) - *(int *)(uVar8 + 0x38) >> 2) <= uVar2) {\n          uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                            (PTR_LAB_0043220c + 0x44a8,0x50b,PTR_DAT_0043226c + -0x2a84);\n          return uVar4;\n        }" if (parenthesized_expression "((uint)(*(int *)(uVar8 + 0x3c) - *(int *)(uVar8 + 0x38) >> 2) <= uVar2)" ( (binary_expression "(uint)(*(int *)(uVar8 + 0x3c) - *(int *)(uVar8 + 0x38) >> 2) <= uVar2" (call_expression "(uint)(*(int *)(uVar8 + 0x3c) - *(int *)(uVar8 + 0x38) >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(uVar8 + 0x3c) - *(int *)(uVar8 + 0x38) >> 2)" ( (binary_expression "*(int *)(uVar8 + 0x3c) - *(int *)(uVar8 + 0x38) >> 2" (binary_expression "*(int *)(uVar8 + 0x3c) - *(int *)(uVar8 + 0x38)" (pointer_expression "*(int *)(uVar8 + 0x3c)" * (cast_expression "(int *)(uVar8 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar8 + 0x3c)" ( (binary_expression "uVar8 + 0x3c" identifier + number_literal) )))) - (pointer_expression "*(int *)(uVar8 + 0x38)" * (cast_expression "(int *)(uVar8 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar8 + 0x38)" ( (binary_expression "uVar8 + 0x38" identifier + number_literal) ))))) >> number_literal) ))) <= identifier) )) (compound_statement "{\n          uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                            (PTR_LAB_0043220c + 0x44a8,0x50b,PTR_DAT_0043226c + -0x2a84);\n          return uVar4;\n        }" { (expression_statement "uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                            (PTR_LAB_0043220c + 0x44a8,0x50b,PTR_DAT_0043226c + -0x2a84);" (assignment_expression "uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                            (PTR_LAB_0043220c + 0x44a8,0x50b,PTR_DAT_0043226c + -0x2a84)" identifier = (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                            (PTR_LAB_0043220c + 0x44a8,0x50b,PTR_DAT_0043226c + -0x2a84)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_0043220c + 0x44a8,0x50b,PTR_DAT_0043226c + -0x2a84)" ( (binary_expression "PTR_LAB_0043220c + 0x44a8" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0043226c + -0x2a84" identifier + number_literal) )))) ;) (return_statement "return uVar4;" return identifier ;) })) (if_statement "if (*(int *)(*(int *)(uVar8 + 0x38) + uVar2 * 4) == 0) {\n          iVar6 = Symbol_table::is_section_folded((Relobj *)param_1,uVar8);\n          if (iVar6 == 0) {\n            return 0;\n          }\n          uVar2 = *(uint *)(this + 0x28);\n          if (((uVar2 & 0xe000) == 0) &&\n             (uVar8 = (uVar2 << 0x1c) >> 0x1f, *(int *)(*(int *)(this + 8) + 0x2c) < 0))\n          goto LAB_0022ece0;\n        }" if (parenthesized_expression "(*(int *)(*(int *)(uVar8 + 0x38) + uVar2 * 4) == 0)" ( (binary_expression "*(int *)(*(int *)(uVar8 + 0x38) + uVar2 * 4) == 0" (pointer_expression "*(int *)(*(int *)(uVar8 + 0x38) + uVar2 * 4)" * (cast_expression "(int *)(*(int *)(uVar8 + 0x38) + uVar2 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(uVar8 + 0x38) + uVar2 * 4)" ( (binary_expression "*(int *)(uVar8 + 0x38) + uVar2 * 4" (pointer_expression "*(int *)(uVar8 + 0x38)" * (cast_expression "(int *)(uVar8 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar8 + 0x38)" ( (binary_expression "uVar8 + 0x38" identifier + number_literal) )))) + (binary_expression "uVar2 * 4" identifier * number_literal)) )))) == number_literal) )) (compound_statement "{\n          iVar6 = Symbol_table::is_section_folded((Relobj *)param_1,uVar8);\n          if (iVar6 == 0) {\n            return 0;\n          }\n          uVar2 = *(uint *)(this + 0x28);\n          if (((uVar2 & 0xe000) == 0) &&\n             (uVar8 = (uVar2 << 0x1c) >> 0x1f, *(int *)(*(int *)(this + 8) + 0x2c) < 0))\n          goto LAB_0022ece0;\n        }" { (ERROR "iVar6 = Symbol_table::" (assignment_expression "iVar6 = Symbol_table" identifier = identifier) : :) (expression_statement "is_section_folded((Relobj *)param_1,uVar8);" (call_expression "is_section_folded((Relobj *)param_1,uVar8)" identifier (argument_list "((Relobj *)param_1,uVar8)" ( (cast_expression "(Relobj *)param_1" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (if_statement "if (iVar6 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar2 = *(uint *)(this + 0x28);" (assignment_expression "uVar2 = *(uint *)(this + 0x28)" identifier = (pointer_expression "*(uint *)(this + 0x28)" * (cast_expression "(uint *)(this + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x28)" ( (binary_expression "this + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (((uVar2 & 0xe000) == 0) &&\n             (uVar8 = (uVar2 << 0x1c) >> 0x1f, *(int *)(*(int *)(this + 8) + 0x2c) < 0))\n          goto LAB_0022ece0;" if (parenthesized_expression "(((uVar2 & 0xe000) == 0) &&\n             (uVar8 = (uVar2 << 0x1c) >> 0x1f, *(int *)(*(int *)(this + 8) + 0x2c) < 0))" ( (binary_expression "((uVar2 & 0xe000) == 0) &&\n             (uVar8 = (uVar2 << 0x1c) >> 0x1f, *(int *)(*(int *)(this + 8) + 0x2c) < 0)" (parenthesized_expression "((uVar2 & 0xe000) == 0)" ( (binary_expression "(uVar2 & 0xe000) == 0" (parenthesized_expression "(uVar2 & 0xe000)" ( (binary_expression "uVar2 & 0xe000" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(uVar8 = (uVar2 << 0x1c) >> 0x1f, *(int *)(*(int *)(this + 8) + 0x2c) < 0)" ( (comma_expression "uVar8 = (uVar2 << 0x1c) >> 0x1f, *(int *)(*(int *)(this + 8) + 0x2c) < 0" (assignment_expression "uVar8 = (uVar2 << 0x1c) >> 0x1f" identifier = (binary_expression "(uVar2 << 0x1c) >> 0x1f" (parenthesized_expression "(uVar2 << 0x1c)" ( (binary_expression "uVar2 << 0x1c" identifier << number_literal) )) >> number_literal)) , (binary_expression "*(int *)(*(int *)(this + 8) + 0x2c) < 0" (pointer_expression "*(int *)(*(int *)(this + 8) + 0x2c)" * (cast_expression "(int *)(*(int *)(this + 8) + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(this + 8) + 0x2c)" ( (binary_expression "*(int *)(this + 8) + 0x2c" (pointer_expression "*(int *)(this + 8)" * (cast_expression "(int *)(this + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) )))) + number_literal) )))) < number_literal)) ))) )) (goto_statement "goto LAB_0022ece0;" goto statement_identifier ;)) })) })) (expression_statement "iVar6 = *(int *)(*(int *)puVar1 + 8);" (assignment_expression "iVar6 = *(int *)(*(int *)puVar1 + 8)" identifier = (pointer_expression "*(int *)(*(int *)puVar1 + 8)" * (cast_expression "(int *)(*(int *)puVar1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar1 + 8)" ( (binary_expression "*(int *)puVar1 + 8" (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ;) (if_statement "if (iVar6 == 0) goto LAB_0022ee04;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0022ee04;" goto statement_identifier ;)) (goto_statement "goto LAB_0022ebf4;" goto statement_identifier ;) })) (labeled_statement "LAB_0022ecdc:\n    uVar8 = (uVar2 << 0x1c) >> 0x1f;" statement_identifier : (expression_statement "uVar8 = (uVar2 << 0x1c) >> 0x1f;" (assignment_expression "uVar8 = (uVar2 << 0x1c) >> 0x1f" identifier = (binary_expression "(uVar2 << 0x1c) >> 0x1f" (parenthesized_expression "(uVar2 << 0x1c)" ( (binary_expression "uVar2 << 0x1c" identifier << number_literal) )) >> number_literal)) ;)) }))) (labeled_statement "LAB_0022ece0:\n  if (uVar8 != 0) {\n    return 0;\n  }" statement_identifier : (if_statement "if (uVar8 != 0) {\n    return 0;\n  }" if (parenthesized_expression "(uVar8 != 0)" ( (binary_expression "uVar8 != 0" identifier != number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) }))) (expression_statement "iVar6 = *(int *)(*(int *)puVar1 + 8);" (assignment_expression "iVar6 = *(int *)(*(int *)puVar1 + 8)" identifier = (pointer_expression "*(int *)(*(int *)puVar1 + 8)" * (cast_expression "(int *)(*(int *)puVar1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar1 + 8)" ( (binary_expression "*(int *)puVar1 + 8" (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ;) (if_statement "if (iVar6 == 0) goto LAB_0022ee04;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0022ee04;" goto statement_identifier ;)) (if_statement "if (*(char *)(iVar6 + 0xe8d) == '\0') {\nLAB_0022eeb4:\n    if ((*(char *)(iVar6 + 0xf09) == '\0') && (*(char *)(iVar6 + 0xf85) == '\0')) goto LAB_0022ed40;\n    if ((uVar2 & 0xe000) == 0) {\n      iVar7 = *(int *)(this + 8);\n      goto LAB_0022ed34;\n    }\n  }\n  else {\n    if (((uVar2 & 0xe000) != 0) || (iVar7 = *(int *)(this + 8), -1 < *(int *)(iVar7 + 0x2c))) {\n      if (uVar2 >> 0x1c == 1) {\n        return uVar4;\n      }\n      goto LAB_0022eeb4;\n    }\n    if ((*(char *)(iVar6 + 0xf09) != '\0') || (*(char *)(iVar6 + 0xf85) == '\0')) goto LAB_0022ed40;\nLAB_0022ed34:\n    if (*(int *)(iVar7 + 0x2c) < 0) goto LAB_0022ed40;\n  }" if (parenthesized_expression "(*(char *)(iVar6 + 0xe8d) == '\0')" ( (binary_expression "*(char *)(iVar6 + 0xe8d) == '\0'" (pointer_expression "*(char *)(iVar6 + 0xe8d)" * (cast_expression "(char *)(iVar6 + 0xe8d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xe8d)" ( (binary_expression "iVar6 + 0xe8d" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0022eeb4:\n    if ((*(char *)(iVar6 + 0xf09) == '\0') && (*(char *)(iVar6 + 0xf85) == '\0')) goto LAB_0022ed40;\n    if ((uVar2 & 0xe000) == 0) {\n      iVar7 = *(int *)(this + 8);\n      goto LAB_0022ed34;\n    }\n  }" { (labeled_statement "LAB_0022eeb4:\n    if ((*(char *)(iVar6 + 0xf09) == '\0') && (*(char *)(iVar6 + 0xf85) == '\0')) goto LAB_0022ed40;" statement_identifier : (if_statement "if ((*(char *)(iVar6 + 0xf09) == '\0') && (*(char *)(iVar6 + 0xf85) == '\0')) goto LAB_0022ed40;" if (parenthesized_expression "((*(char *)(iVar6 + 0xf09) == '\0') && (*(char *)(iVar6 + 0xf85) == '\0'))" ( (binary_expression "(*(char *)(iVar6 + 0xf09) == '\0') && (*(char *)(iVar6 + 0xf85) == '\0')" (parenthesized_expression "(*(char *)(iVar6 + 0xf09) == '\0')" ( (binary_expression "*(char *)(iVar6 + 0xf09) == '\0'" (pointer_expression "*(char *)(iVar6 + 0xf09)" * (cast_expression "(char *)(iVar6 + 0xf09)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xf09)" ( (binary_expression "iVar6 + 0xf09" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(char *)(iVar6 + 0xf85) == '\0')" ( (binary_expression "*(char *)(iVar6 + 0xf85) == '\0'" (pointer_expression "*(char *)(iVar6 + 0xf85)" * (cast_expression "(char *)(iVar6 + 0xf85)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xf85)" ( (binary_expression "iVar6 + 0xf85" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_0022ed40;" goto statement_identifier ;))) (if_statement "if ((uVar2 & 0xe000) == 0) {\n      iVar7 = *(int *)(this + 8);\n      goto LAB_0022ed34;\n    }" if (parenthesized_expression "((uVar2 & 0xe000) == 0)" ( (binary_expression "(uVar2 & 0xe000) == 0" (parenthesized_expression "(uVar2 & 0xe000)" ( (binary_expression "uVar2 & 0xe000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      iVar7 = *(int *)(this + 8);\n      goto LAB_0022ed34;\n    }" { (expression_statement "iVar7 = *(int *)(this + 8);" (assignment_expression "iVar7 = *(int *)(this + 8)" identifier = (pointer_expression "*(int *)(this + 8)" * (cast_expression "(int *)(this + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0022ed34;" goto statement_identifier ;) })) }) (else_clause "else {\n    if (((uVar2 & 0xe000) != 0) || (iVar7 = *(int *)(this + 8), -1 < *(int *)(iVar7 + 0x2c))) {\n      if (uVar2 >> 0x1c == 1) {\n        return uVar4;\n      }\n      goto LAB_0022eeb4;\n    }\n    if ((*(char *)(iVar6 + 0xf09) != '\0') || (*(char *)(iVar6 + 0xf85) == '\0')) goto LAB_0022ed40;\nLAB_0022ed34:\n    if (*(int *)(iVar7 + 0x2c) < 0) goto LAB_0022ed40;\n  }" else (compound_statement "{\n    if (((uVar2 & 0xe000) != 0) || (iVar7 = *(int *)(this + 8), -1 < *(int *)(iVar7 + 0x2c))) {\n      if (uVar2 >> 0x1c == 1) {\n        return uVar4;\n      }\n      goto LAB_0022eeb4;\n    }\n    if ((*(char *)(iVar6 + 0xf09) != '\0') || (*(char *)(iVar6 + 0xf85) == '\0')) goto LAB_0022ed40;\nLAB_0022ed34:\n    if (*(int *)(iVar7 + 0x2c) < 0) goto LAB_0022ed40;\n  }" { (if_statement "if (((uVar2 & 0xe000) != 0) || (iVar7 = *(int *)(this + 8), -1 < *(int *)(iVar7 + 0x2c))) {\n      if (uVar2 >> 0x1c == 1) {\n        return uVar4;\n      }\n      goto LAB_0022eeb4;\n    }" if (parenthesized_expression "(((uVar2 & 0xe000) != 0) || (iVar7 = *(int *)(this + 8), -1 < *(int *)(iVar7 + 0x2c)))" ( (binary_expression "((uVar2 & 0xe000) != 0) || (iVar7 = *(int *)(this + 8), -1 < *(int *)(iVar7 + 0x2c))" (parenthesized_expression "((uVar2 & 0xe000) != 0)" ( (binary_expression "(uVar2 & 0xe000) != 0" (parenthesized_expression "(uVar2 & 0xe000)" ( (binary_expression "uVar2 & 0xe000" identifier & number_literal) )) != number_literal) )) || (parenthesized_expression "(iVar7 = *(int *)(this + 8), -1 < *(int *)(iVar7 + 0x2c))" ( (comma_expression "iVar7 = *(int *)(this + 8), -1 < *(int *)(iVar7 + 0x2c)" (assignment_expression "iVar7 = *(int *)(this + 8)" identifier = (pointer_expression "*(int *)(this + 8)" * (cast_expression "(int *)(this + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) ))))) , (binary_expression "-1 < *(int *)(iVar7 + 0x2c)" number_literal < (pointer_expression "*(int *)(iVar7 + 0x2c)" * (cast_expression "(int *)(iVar7 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x2c)" ( (binary_expression "iVar7 + 0x2c" identifier + number_literal) )))))) ))) )) (compound_statement "{\n      if (uVar2 >> 0x1c == 1) {\n        return uVar4;\n      }\n      goto LAB_0022eeb4;\n    }" { (if_statement "if (uVar2 >> 0x1c == 1) {\n        return uVar4;\n      }" if (parenthesized_expression "(uVar2 >> 0x1c == 1)" ( (binary_expression "uVar2 >> 0x1c == 1" (binary_expression "uVar2 >> 0x1c" identifier >> number_literal) == number_literal) )) (compound_statement "{\n        return uVar4;\n      }" { (return_statement "return uVar4;" return identifier ;) })) (goto_statement "goto LAB_0022eeb4;" goto statement_identifier ;) })) (if_statement "if ((*(char *)(iVar6 + 0xf09) != '\0') || (*(char *)(iVar6 + 0xf85) == '\0')) goto LAB_0022ed40;" if (parenthesized_expression "((*(char *)(iVar6 + 0xf09) != '\0') || (*(char *)(iVar6 + 0xf85) == '\0'))" ( (binary_expression "(*(char *)(iVar6 + 0xf09) != '\0') || (*(char *)(iVar6 + 0xf85) == '\0')" (parenthesized_expression "(*(char *)(iVar6 + 0xf09) != '\0')" ( (binary_expression "*(char *)(iVar6 + 0xf09) != '\0'" (pointer_expression "*(char *)(iVar6 + 0xf09)" * (cast_expression "(char *)(iVar6 + 0xf09)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xf09)" ( (binary_expression "iVar6 + 0xf09" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(*(char *)(iVar6 + 0xf85) == '\0')" ( (binary_expression "*(char *)(iVar6 + 0xf85) == '\0'" (pointer_expression "*(char *)(iVar6 + 0xf85)" * (cast_expression "(char *)(iVar6 + 0xf85)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xf85)" ( (binary_expression "iVar6 + 0xf85" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_0022ed40;" goto statement_identifier ;)) (labeled_statement "LAB_0022ed34:\n    if (*(int *)(iVar7 + 0x2c) < 0) goto LAB_0022ed40;" statement_identifier : (if_statement "if (*(int *)(iVar7 + 0x2c) < 0) goto LAB_0022ed40;" if (parenthesized_expression "(*(int *)(iVar7 + 0x2c) < 0)" ( (binary_expression "*(int *)(iVar7 + 0x2c) < 0" (pointer_expression "*(int *)(iVar7 + 0x2c)" * (cast_expression "(int *)(iVar7 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x2c)" ( (binary_expression "iVar7 + 0x2c" identifier + number_literal) )))) < number_literal) )) (goto_statement "goto LAB_0022ed40;" goto statement_identifier ;))) }))) (expression_statement "iVar6 = (*(code *)PTR_cplus_demangle_004335b0)(*(undefined4 *)this,3);" (assignment_expression "iVar6 = (*(code *)PTR_cplus_demangle_004335b0)(*(undefined4 *)this,3)" identifier = (call_expression "(*(code *)PTR_cplus_demangle_004335b0)(*(undefined4 *)this,3)" (parenthesized_expression "(*(code *)PTR_cplus_demangle_004335b0)" ( (pointer_expression "*(code *)PTR_cplus_demangle_004335b0" * (cast_expression "(code *)PTR_cplus_demangle_004335b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)this,3)" ( (pointer_expression "*(undefined4 *)this" * (cast_expression "(undefined4 *)this" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , number_literal )))) ;) (if_statement "if (iVar6 != 0) {\n    iVar7 = *(int *)(*(int *)puVar1 + 8);\n    if (iVar7 == 0) goto LAB_0022ee04;\n    uVar4 = (uint)*(byte *)(iVar7 + 0xf09);\n    if (((uVar4 != 0) &&\n        ((iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35d0,0xc), iVar5 == 0\n         || (iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35c0,0xf),\n            iVar5 == 0)))) ||\n       ((uVar4 = (uint)*(byte *)(iVar7 + 0xf85), uVar4 != 0 &&\n        ((iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35b0,0x11), iVar7 == 0\n         || (iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc),\n            iVar7 == 0)))))) {\n      (*(code *)PTR_free_00436800)(iVar6);\n      return uVar4;\n    }\n    (*(code *)PTR_free_00436800)(iVar6);\n  }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar7 = *(int *)(*(int *)puVar1 + 8);\n    if (iVar7 == 0) goto LAB_0022ee04;\n    uVar4 = (uint)*(byte *)(iVar7 + 0xf09);\n    if (((uVar4 != 0) &&\n        ((iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35d0,0xc), iVar5 == 0\n         || (iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35c0,0xf),\n            iVar5 == 0)))) ||\n       ((uVar4 = (uint)*(byte *)(iVar7 + 0xf85), uVar4 != 0 &&\n        ((iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35b0,0x11), iVar7 == 0\n         || (iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc),\n            iVar7 == 0)))))) {\n      (*(code *)PTR_free_00436800)(iVar6);\n      return uVar4;\n    }\n    (*(code *)PTR_free_00436800)(iVar6);\n  }" { (expression_statement "iVar7 = *(int *)(*(int *)puVar1 + 8);" (assignment_expression "iVar7 = *(int *)(*(int *)puVar1 + 8)" identifier = (pointer_expression "*(int *)(*(int *)puVar1 + 8)" * (cast_expression "(int *)(*(int *)puVar1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar1 + 8)" ( (binary_expression "*(int *)puVar1 + 8" (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ;) (if_statement "if (iVar7 == 0) goto LAB_0022ee04;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0022ee04;" goto statement_identifier ;)) (expression_statement "uVar4 = (uint)*(byte *)(iVar7 + 0xf09);" (assignment_expression "uVar4 = (uint)*(byte *)(iVar7 + 0xf09)" identifier = (binary_expression "(uint)*(byte *)(iVar7 + 0xf09)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar7 + 0xf09)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xf09)" ( (binary_expression "iVar7 + 0xf09" identifier + number_literal) ))))) ;) (if_statement "if (((uVar4 != 0) &&\n        ((iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35d0,0xc), iVar5 == 0\n         || (iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35c0,0xf),\n            iVar5 == 0)))) ||\n       ((uVar4 = (uint)*(byte *)(iVar7 + 0xf85), uVar4 != 0 &&\n        ((iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35b0,0x11), iVar7 == 0\n         || (iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc),\n            iVar7 == 0)))))) {\n      (*(code *)PTR_free_00436800)(iVar6);\n      return uVar4;\n    }" if (parenthesized_expression "(((uVar4 != 0) &&\n        ((iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35d0,0xc), iVar5 == 0\n         || (iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35c0,0xf),\n            iVar5 == 0)))) ||\n       ((uVar4 = (uint)*(byte *)(iVar7 + 0xf85), uVar4 != 0 &&\n        ((iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35b0,0x11), iVar7 == 0\n         || (iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc),\n            iVar7 == 0))))))" ( (binary_expression "((uVar4 != 0) &&\n        ((iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35d0,0xc), iVar5 == 0\n         || (iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35c0,0xf),\n            iVar5 == 0)))) ||\n       ((uVar4 = (uint)*(byte *)(iVar7 + 0xf85), uVar4 != 0 &&\n        ((iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35b0,0x11), iVar7 == 0\n         || (iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc),\n            iVar7 == 0)))))" (parenthesized_expression "((uVar4 != 0) &&\n        ((iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35d0,0xc), iVar5 == 0\n         || (iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35c0,0xf),\n            iVar5 == 0))))" ( (binary_expression "(uVar4 != 0) &&\n        ((iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35d0,0xc), iVar5 == 0\n         || (iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35c0,0xf),\n            iVar5 == 0)))" (parenthesized_expression "(uVar4 != 0)" ( (binary_expression "uVar4 != 0" identifier != number_literal) )) && (parenthesized_expression "((iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35d0,0xc), iVar5 == 0\n         || (iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35c0,0xf),\n            iVar5 == 0)))" ( (parenthesized_expression "(iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35d0,0xc), iVar5 == 0\n         || (iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35c0,0xf),\n            iVar5 == 0))" ( (comma_expression "iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35d0,0xc), iVar5 == 0\n         || (iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35c0,0xf),\n            iVar5 == 0)" (assignment_expression "iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35d0,0xc)" identifier = (call_expression "(*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35d0,0xc)" (parenthesized_expression "(*(code *)PTR_strncmp_004366a0)" ( (pointer_expression "*(code *)PTR_strncmp_004366a0" * (cast_expression "(code *)PTR_strncmp_004366a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar6,PTR_DAT_0043226c + -0x35d0,0xc)" ( identifier , (binary_expression "PTR_DAT_0043226c + -0x35d0" identifier + number_literal) , number_literal )))) , (binary_expression "iVar5 == 0\n         || (iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35c0,0xf),\n            iVar5 == 0)" (binary_expression "iVar5 == 0" identifier == number_literal) || (parenthesized_expression "(iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35c0,0xf),\n            iVar5 == 0)" ( (comma_expression "iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35c0,0xf),\n            iVar5 == 0" (assignment_expression "iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35c0,0xf)" identifier = (call_expression "(*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35c0,0xf)" (parenthesized_expression "(*(code *)PTR_strncmp_004366a0)" ( (pointer_expression "*(code *)PTR_strncmp_004366a0" * (cast_expression "(code *)PTR_strncmp_004366a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar6,PTR_DAT_0043226c + -0x35c0,0xf)" ( identifier , (binary_expression "PTR_DAT_0043226c + -0x35c0" identifier + number_literal) , number_literal )))) , (binary_expression "iVar5 == 0" identifier == number_literal)) )))) )) ))) )) || (parenthesized_expression "((uVar4 = (uint)*(byte *)(iVar7 + 0xf85), uVar4 != 0 &&\n        ((iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35b0,0x11), iVar7 == 0\n         || (iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc),\n            iVar7 == 0)))))" ( (parenthesized_expression "(uVar4 = (uint)*(byte *)(iVar7 + 0xf85), uVar4 != 0 &&\n        ((iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35b0,0x11), iVar7 == 0\n         || (iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc),\n            iVar7 == 0))))" ( (comma_expression "uVar4 = (uint)*(byte *)(iVar7 + 0xf85), uVar4 != 0 &&\n        ((iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35b0,0x11), iVar7 == 0\n         || (iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc),\n            iVar7 == 0)))" (assignment_expression "uVar4 = (uint)*(byte *)(iVar7 + 0xf85)" identifier = (binary_expression "(uint)*(byte *)(iVar7 + 0xf85)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar7 + 0xf85)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xf85)" ( (binary_expression "iVar7 + 0xf85" identifier + number_literal) ))))) , (binary_expression "uVar4 != 0 &&\n        ((iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35b0,0x11), iVar7 == 0\n         || (iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc),\n            iVar7 == 0)))" (binary_expression "uVar4 != 0" identifier != number_literal) && (parenthesized_expression "((iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35b0,0x11), iVar7 == 0\n         || (iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc),\n            iVar7 == 0)))" ( (parenthesized_expression "(iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35b0,0x11), iVar7 == 0\n         || (iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc),\n            iVar7 == 0))" ( (comma_expression "iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35b0,0x11), iVar7 == 0\n         || (iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc),\n            iVar7 == 0)" (assignment_expression "iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35b0,0x11)" identifier = (call_expression "(*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35b0,0x11)" (parenthesized_expression "(*(code *)PTR_strncmp_004366a0)" ( (pointer_expression "*(code *)PTR_strncmp_004366a0" * (cast_expression "(code *)PTR_strncmp_004366a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar6,PTR_DAT_0043226c + -0x35b0,0x11)" ( identifier , (binary_expression "PTR_DAT_0043226c + -0x35b0" identifier + number_literal) , number_literal )))) , (binary_expression "iVar7 == 0\n         || (iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc),\n            iVar7 == 0)" (binary_expression "iVar7 == 0" identifier == number_literal) || (parenthesized_expression "(iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc),\n            iVar7 == 0)" ( (comma_expression "iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc),\n            iVar7 == 0" (assignment_expression "iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc)" identifier = (call_expression "(*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc)" (parenthesized_expression "(*(code *)PTR_strncmp_004366a0)" ( (pointer_expression "*(code *)PTR_strncmp_004366a0" * (cast_expression "(code *)PTR_strncmp_004366a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar6,PTR_DAT_0043226c + -0x359c,0xc)" ( identifier , (binary_expression "PTR_DAT_0043226c + -0x359c" identifier + number_literal) , number_literal )))) , (binary_expression "iVar7 == 0" identifier == number_literal)) )))) )) )))) )) ))) )) (compound_statement "{\n      (*(code *)PTR_free_00436800)(iVar6);\n      return uVar4;\n    }" { (expression_statement "(*(code *)PTR_free_00436800)(iVar6);" (call_expression "(*(code *)PTR_free_00436800)(iVar6)" (parenthesized_expression "(*(code *)PTR_free_00436800)" ( (pointer_expression "*(code *)PTR_free_00436800" * (cast_expression "(code *)PTR_free_00436800" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar6)" ( identifier ))) ;) (return_statement "return uVar4;" return identifier ;) })) (expression_statement "(*(code *)PTR_free_00436800)(iVar6);" (call_expression "(*(code *)PTR_free_00436800)(iVar6)" (parenthesized_expression "(*(code *)PTR_free_00436800)" ( (pointer_expression "*(code *)PTR_free_00436800" * (cast_expression "(code *)PTR_free_00436800" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar6)" ( identifier ))) ;) })) (expression_statement "iVar6 = *(int *)(*(int *)puVar1 + 8);" (assignment_expression "iVar6 = *(int *)(*(int *)puVar1 + 8)" identifier = (pointer_expression "*(int *)(*(int *)puVar1 + 8)" * (cast_expression "(int *)(*(int *)puVar1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar1 + 8)" ( (binary_expression "*(int *)puVar1 + 8" (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ;) (if_statement "if (iVar6 != 0) {\nLAB_0022ed40:\n    if ((*(char *)(iVar6 + 0x12bd) == '\0') && (*(char *)(iVar6 + 0x1a29) == '\0')) {\n      if (*(char *)(iVar6 + 0x19ad) == '\0') {\n        return 0;\n      }\n      uVar4 = *(uint *)(this + 0x28);\n      if ((uVar4 << 4) >> 0x1c != 10) {\n        return 0;\n      }\n    }\n    else {\n      uVar4 = *(uint *)(this + 0x28);\n    }\n    if ((uVar4 & 0xe000) == 0) {\n      if (*(int *)(*(int *)(this + 8) + 0x2c) < 0) {\n        return 0;\n      }\n      if ((*(int *)(this + 0xc) == 0) && ((int)(uVar4 << 0x1d) < 0)) {\n        return 0;\n      }\n    }\n    else if ((uVar4 & 0xe000) == 0x8000) {\n      return 0;\n    }\n    if (((uVar4 & 0xc00000) != 0) && ((uVar4 & 0xc00000) != 0xc00000)) {\n      return 0;\n    }\n    return (uVar4 << 0x1c) >> 0x1f ^ 1;\n  }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_0022ed40:\n    if ((*(char *)(iVar6 + 0x12bd) == '\0') && (*(char *)(iVar6 + 0x1a29) == '\0')) {\n      if (*(char *)(iVar6 + 0x19ad) == '\0') {\n        return 0;\n      }\n      uVar4 = *(uint *)(this + 0x28);\n      if ((uVar4 << 4) >> 0x1c != 10) {\n        return 0;\n      }\n    }\n    else {\n      uVar4 = *(uint *)(this + 0x28);\n    }\n    if ((uVar4 & 0xe000) == 0) {\n      if (*(int *)(*(int *)(this + 8) + 0x2c) < 0) {\n        return 0;\n      }\n      if ((*(int *)(this + 0xc) == 0) && ((int)(uVar4 << 0x1d) < 0)) {\n        return 0;\n      }\n    }\n    else if ((uVar4 & 0xe000) == 0x8000) {\n      return 0;\n    }\n    if (((uVar4 & 0xc00000) != 0) && ((uVar4 & 0xc00000) != 0xc00000)) {\n      return 0;\n    }\n    return (uVar4 << 0x1c) >> 0x1f ^ 1;\n  }" { (labeled_statement "LAB_0022ed40:\n    if ((*(char *)(iVar6 + 0x12bd) == '\0') && (*(char *)(iVar6 + 0x1a29) == '\0')) {\n      if (*(char *)(iVar6 + 0x19ad) == '\0') {\n        return 0;\n      }\n      uVar4 = *(uint *)(this + 0x28);\n      if ((uVar4 << 4) >> 0x1c != 10) {\n        return 0;\n      }\n    }\n    else {\n      uVar4 = *(uint *)(this + 0x28);\n    }" statement_identifier : (if_statement "if ((*(char *)(iVar6 + 0x12bd) == '\0') && (*(char *)(iVar6 + 0x1a29) == '\0')) {\n      if (*(char *)(iVar6 + 0x19ad) == '\0') {\n        return 0;\n      }\n      uVar4 = *(uint *)(this + 0x28);\n      if ((uVar4 << 4) >> 0x1c != 10) {\n        return 0;\n      }\n    }\n    else {\n      uVar4 = *(uint *)(this + 0x28);\n    }" if (parenthesized_expression "((*(char *)(iVar6 + 0x12bd) == '\0') && (*(char *)(iVar6 + 0x1a29) == '\0'))" ( (binary_expression "(*(char *)(iVar6 + 0x12bd) == '\0') && (*(char *)(iVar6 + 0x1a29) == '\0')" (parenthesized_expression "(*(char *)(iVar6 + 0x12bd) == '\0')" ( (binary_expression "*(char *)(iVar6 + 0x12bd) == '\0'" (pointer_expression "*(char *)(iVar6 + 0x12bd)" * (cast_expression "(char *)(iVar6 + 0x12bd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x12bd)" ( (binary_expression "iVar6 + 0x12bd" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(char *)(iVar6 + 0x1a29) == '\0')" ( (binary_expression "*(char *)(iVar6 + 0x1a29) == '\0'" (pointer_expression "*(char *)(iVar6 + 0x1a29)" * (cast_expression "(char *)(iVar6 + 0x1a29)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x1a29)" ( (binary_expression "iVar6 + 0x1a29" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      if (*(char *)(iVar6 + 0x19ad) == '\0') {\n        return 0;\n      }\n      uVar4 = *(uint *)(this + 0x28);\n      if ((uVar4 << 4) >> 0x1c != 10) {\n        return 0;\n      }\n    }" { (if_statement "if (*(char *)(iVar6 + 0x19ad) == '\0') {\n        return 0;\n      }" if (parenthesized_expression "(*(char *)(iVar6 + 0x19ad) == '\0')" ( (binary_expression "*(char *)(iVar6 + 0x19ad) == '\0'" (pointer_expression "*(char *)(iVar6 + 0x19ad)" * (cast_expression "(char *)(iVar6 + 0x19ad)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x19ad)" ( (binary_expression "iVar6 + 0x19ad" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar4 = *(uint *)(this + 0x28);" (assignment_expression "uVar4 = *(uint *)(this + 0x28)" identifier = (pointer_expression "*(uint *)(this + 0x28)" * (cast_expression "(uint *)(this + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x28)" ( (binary_expression "this + 0x28" identifier + number_literal) ))))) ;) (if_statement "if ((uVar4 << 4) >> 0x1c != 10) {\n        return 0;\n      }" if (parenthesized_expression "((uVar4 << 4) >> 0x1c != 10)" ( (binary_expression "(uVar4 << 4) >> 0x1c != 10" (binary_expression "(uVar4 << 4) >> 0x1c" (parenthesized_expression "(uVar4 << 4)" ( (binary_expression "uVar4 << 4" identifier << number_literal) )) >> number_literal) != number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) }) (else_clause "else {\n      uVar4 = *(uint *)(this + 0x28);\n    }" else (compound_statement "{\n      uVar4 = *(uint *)(this + 0x28);\n    }" { (expression_statement "uVar4 = *(uint *)(this + 0x28);" (assignment_expression "uVar4 = *(uint *)(this + 0x28)" identifier = (pointer_expression "*(uint *)(this + 0x28)" * (cast_expression "(uint *)(this + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x28)" ( (binary_expression "this + 0x28" identifier + number_literal) ))))) ;) })))) (if_statement "if ((uVar4 & 0xe000) == 0) {\n      if (*(int *)(*(int *)(this + 8) + 0x2c) < 0) {\n        return 0;\n      }\n      if ((*(int *)(this + 0xc) == 0) && ((int)(uVar4 << 0x1d) < 0)) {\n        return 0;\n      }\n    }\n    else if ((uVar4 & 0xe000) == 0x8000) {\n      return 0;\n    }" if (parenthesized_expression "((uVar4 & 0xe000) == 0)" ( (binary_expression "(uVar4 & 0xe000) == 0" (parenthesized_expression "(uVar4 & 0xe000)" ( (binary_expression "uVar4 & 0xe000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      if (*(int *)(*(int *)(this + 8) + 0x2c) < 0) {\n        return 0;\n      }\n      if ((*(int *)(this + 0xc) == 0) && ((int)(uVar4 << 0x1d) < 0)) {\n        return 0;\n      }\n    }" { (if_statement "if (*(int *)(*(int *)(this + 8) + 0x2c) < 0) {\n        return 0;\n      }" if (parenthesized_expression "(*(int *)(*(int *)(this + 8) + 0x2c) < 0)" ( (binary_expression "*(int *)(*(int *)(this + 8) + 0x2c) < 0" (pointer_expression "*(int *)(*(int *)(this + 8) + 0x2c)" * (cast_expression "(int *)(*(int *)(this + 8) + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(this + 8) + 0x2c)" ( (binary_expression "*(int *)(this + 8) + 0x2c" (pointer_expression "*(int *)(this + 8)" * (cast_expression "(int *)(this + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) )))) + number_literal) )))) < number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if ((*(int *)(this + 0xc) == 0) && ((int)(uVar4 << 0x1d) < 0)) {\n        return 0;\n      }" if (parenthesized_expression "((*(int *)(this + 0xc) == 0) && ((int)(uVar4 << 0x1d) < 0))" ( (binary_expression "(*(int *)(this + 0xc) == 0) && ((int)(uVar4 << 0x1d) < 0)" (parenthesized_expression "(*(int *)(this + 0xc) == 0)" ( (binary_expression "*(int *)(this + 0xc) == 0" (pointer_expression "*(int *)(this + 0xc)" * (cast_expression "(int *)(this + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0xc)" ( (binary_expression "this + 0xc" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "((int)(uVar4 << 0x1d) < 0)" ( (binary_expression "(int)(uVar4 << 0x1d) < 0" (cast_expression "(int)(uVar4 << 0x1d)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar4 << 0x1d)" ( (binary_expression "uVar4 << 0x1d" identifier << number_literal) ))) < number_literal) ))) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) }) (else_clause "else if ((uVar4 & 0xe000) == 0x8000) {\n      return 0;\n    }" else (if_statement "if ((uVar4 & 0xe000) == 0x8000) {\n      return 0;\n    }" if (parenthesized_expression "((uVar4 & 0xe000) == 0x8000)" ( (binary_expression "(uVar4 & 0xe000) == 0x8000" (parenthesized_expression "(uVar4 & 0xe000)" ( (binary_expression "uVar4 & 0xe000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })))) (if_statement "if (((uVar4 & 0xc00000) != 0) && ((uVar4 & 0xc00000) != 0xc00000)) {\n      return 0;\n    }" if (parenthesized_expression "(((uVar4 & 0xc00000) != 0) && ((uVar4 & 0xc00000) != 0xc00000))" ( (binary_expression "((uVar4 & 0xc00000) != 0) && ((uVar4 & 0xc00000) != 0xc00000)" (parenthesized_expression "((uVar4 & 0xc00000) != 0)" ( (binary_expression "(uVar4 & 0xc00000) != 0" (parenthesized_expression "(uVar4 & 0xc00000)" ( (binary_expression "uVar4 & 0xc00000" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "((uVar4 & 0xc00000) != 0xc00000)" ( (binary_expression "(uVar4 & 0xc00000) != 0xc00000" (parenthesized_expression "(uVar4 & 0xc00000)" ( (binary_expression "uVar4 & 0xc00000" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (return_statement "return (uVar4 << 0x1c) >> 0x1f ^ 1;" return (binary_expression "(uVar4 << 0x1c) >> 0x1f ^ 1" (binary_expression "(uVar4 << 0x1c) >> 0x1f" (parenthesized_expression "(uVar4 << 0x1c)" ( (binary_expression "uVar4 << 0x1c" identifier << number_literal) )) >> number_literal) ^ number_literal) ;) })) (labeled_statement "LAB_0022ee04:\n  uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x2a30);" statement_identifier : (expression_statement "uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x2a30);" (assignment_expression "uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x2a30)" identifier = (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x2a30)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x2a30)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5cec" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0043226c + -0x2a30" identifier + number_literal) )))) ;)) (return_statement "return uVar4;" return identifier ;) })))
(translation_unit "/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */\n/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */\n/* DWARF original prototype: bool should_add_dynsym_entry(Symbol * this, Symbol_table * symtab) */\n\nbool __thiscall gold::Symbol::should_add_dynsym_entry(Symbol *this,Symbol_table *symtab)\n\n{\n  undefined3 extraout_var;\n  undefined3 extraout_var_00;\n  uint uVar1;\n  bool bVar4;\n  undefined4 uVar2;\n  uint uVar3;\n  undefined1 uVar5;\n  uint uVar6;\n  int iVar7;\n  pointer ppOVar8;\n  undefined *puVar9;\n  Output_segment *pOVar10;\n  char *pcVar11;\n  string *unaff_s3;\n  int unaff_s4;\n  char *pcVar12;\n  char *unaff_s6;\n  bool is_global;\n  char acStack_38 [16];\n  int local_28 [2];\n  \n  puVar9 = PTR_parameters_00432be0;\n  uVar1 = *(uint *)&this->field_0x28;\n  uVar3 = -((int)(uVar1 << 0x1e) >> 0x1f);\n  if (uVar3 == 0) {\n    return false;\n  }\n  if (((int)(uVar1 << 0x16) < 0) ||\n     (((((int)(uVar1 << 0x17) < 0 && ((int)(uVar1 << 0x18) < 0)) &&\n       (((uVar1 & 0xc00000) == 0 || ((uVar1 & 0xc00000) == 0xc00000)))) &&\n      (-1 < (int)(uVar1 << 0x1c))))) goto LAB_0022eb68;\n  iVar7 = *(int *)(*(int *)PTR_parameters_00432be0 + 8);\n  if (iVar7 != 0) {\n    if (((*(char *)(iVar7 + 0x18b5) == '\0') || (*(char *)(iVar7 + 0x1a29) != '\0')) ||\n       ((uVar1 << 0x10) >> 0x1d != 0)) {\n      if ((uVar1 & 0xe000) == 0) {\n        uVar6 = (uVar1 << 0x1c) >> 0x1f;\n        if ((int)((this->u1_).output_segment)->output_lists_[3].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_end_of_storage < 0) goto LAB_0022ece0;\n        iVar7 = *(int *)(*(int *)PTR_parameters_00432be0 + 8);\n      }\n    }\n    else {\n      if ((uVar1 & 0xe000) != 0) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_s__0043226c + -0x2a70);\nLAB_0022f0c4:\n        puVar9 = PTR_LAB_0043220c + 0x44a8;\n        (*(code *)PTR_do_gold_unreachable_004323c4)(puVar9,0x50b,PTR_s__0043226c + -0x2a84);\n                    /* catch() { ... } // from try @ 0022ec68 with catch @ 0022f0e0 */\n        if (_is_global != acStack_38) {\n          (*(code *)PTR_operator_delete_0043228c)(_is_global);\n        }\n        uVar5 = (*(code *)PTR__Unwind_Resume_00432258)(puVar9);\n        return (bool)uVar5;\n      }\n      pOVar10 = (this->u1_).output_segment;\n      if ((int)pOVar10->output_lists_[3].\n               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n               _M_end_of_storage < 0) goto LAB_0022ecdc;\n      if (((int)(uVar1 << 0x1d) < 0) && (uVar1 = (this->u2_).shndx, uVar1 != 0)) {\n        ppOVar8 = pOVar10->output_lists_[4].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage;\n        if ((uint)((int)pOVar10->output_lists_[5].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_start - (int)ppOVar8 >> 2) <= uVar1) goto LAB_0022f0c4;\n        if (ppOVar8[uVar1] == (Output_data *)0x0) {\n          bVar4 = Symbol_table::is_section_folded(symtab,(Relobj *)pOVar10,uVar1);\n          if (CONCAT31(extraout_var_00,bVar4) == 0) {\n            return false;\n          }\n          uVar1 = *(uint *)&this->field_0x28;\n          if (((uVar1 & 0xe000) == 0) &&\n             (uVar6 = (uVar1 << 0x1c) >> 0x1f,\n             (int)((this->u1_).output_segment)->output_lists_[3].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage < 0)) goto LAB_0022ece0;\n        }\n      }\n      iVar7 = *(int *)(*(int *)puVar9 + 8);\n      if (iVar7 == 0) goto LAB_0022ee04;\n    }\n    unaff_s3 = (string *)&is_global;\n    bVar4 = Version_script_info::get_symbol_version\n                      ((Version_script_info *)(iVar7 + 0x59b8),this->name_,(string *)0x0,\n                       (bool *)unaff_s3);\n    if ((CONCAT31(extraout_var,bVar4) != 0) && (is_global == false)) {\nLAB_0022ec20:\n      if (*(int *)&this->field_0x28 << 0x1c < 0) {\n        uVar2 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x35f0);\n        demangle(unaff_s3,this->name_);\n                    /* try { // try from 0022ec68 to 0022ec6f has its CatchHandler @ 0022f0e0 */\n        (*(code *)PTR_gold_warning_0043245c)(uVar2,_is_global);\n        if (_is_global == acStack_38) {\n          return false;\n        }\n        (*(code *)PTR_operator_delete_0043228c)();\n        return false;\n      }\n      goto LAB_0022eb68;\n    }\n    unaff_s4 = *(int *)(*(int *)puVar9 + 8);\n    if (unaff_s4 != 0) {\n      unaff_s6 = acStack_38;\n      if (*(int *)(unaff_s4 + 0x1348) != 0) goto LAB_0022ee18;\n      goto LAB_0022ecd8;\n    }\n  }\nLAB_0022ee04:\n  do {\n    do {\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_s__0043226c + -0x2a30);\nLAB_0022ee18:\n      pcVar12 = this->name_;\n      _is_global = unaff_s6;\n      if (pcVar12 == (char *)0x0) {\n        pcVar11 = (char *)0xffffffff;\n      }\n      else {\n        iVar7 = (*(code *)PTR_strlen_0043677c)(pcVar12);\n        pcVar11 = pcVar12 + iVar7;\n      }\n      (*(code *)PTR__M_construct<char_const*>_00432488)(unaff_s3,pcVar12,pcVar11,0);\n      (*(code *)PTR_find_00433360)(local_28,unaff_s4 + 0x133c,unaff_s3);\n      if (local_28[0] != 0) {\n        if (_is_global != unaff_s6) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n        goto LAB_0022ec20;\n      }\n      if (_is_global != unaff_s6) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\nLAB_0022ecd8:\n      uVar1 = *(uint *)&this->field_0x28;\nLAB_0022ecdc:\n      uVar6 = (uVar1 << 0x1c) >> 0x1f;\nLAB_0022ece0:\n      if (uVar6 != 0) {\n        return false;\n      }\n      iVar7 = *(int *)(*(int *)puVar9 + 8);\n    } while (iVar7 == 0);\n    if (*(char *)(iVar7 + 0xe8d) == '\0') {\nLAB_0022eeb4:\n      if ((*(char *)(iVar7 + 0xf09) == '\0') && (*(char *)(iVar7 + 0xf85) == '\0')) break;\n      if ((uVar1 & 0xe000) == 0) {\n        pOVar10 = (this->u1_).output_segment;\n        goto LAB_0022ed34;\n      }\n    }\n    else {\n      if (((uVar1 & 0xe000) != 0) ||\n         (pOVar10 = (this->u1_).output_segment,\n         -1 < (int)pOVar10->output_lists_[3].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl._M_end_of_storage)) {\n        if (uVar1 >> 0x1c != 1) goto LAB_0022eeb4;\n        goto LAB_0022eb68;\n      }\n      if ((*(char *)(iVar7 + 0xf09) != '\0') || (*(char *)(iVar7 + 0xf85) == '\0')) break;\nLAB_0022ed34:\n      if ((int)pOVar10->output_lists_[3].\n               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n               _M_end_of_storage < 0) break;\n    }\n    unaff_s3 = (string *)(*(code *)PTR_cplus_demangle_004335b0)(this->name_,3);\n    if (unaff_s3 != (string *)0x0) {\n      unaff_s4 = *(int *)(*(int *)puVar9 + 8);\n      if (unaff_s4 == 0) goto LAB_0022ee04;\n      uVar3 = (uint)*(byte *)(unaff_s4 + 0xf09);\n      if (((uVar3 != 0) &&\n          ((iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35d0,0xc),\n           iVar7 == 0 ||\n           (iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35c0,0xf),\n           iVar7 == 0)))) ||\n         ((uVar3 = (uint)*(byte *)(unaff_s4 + 0xf85), uVar3 != 0 &&\n          ((iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35b0,0x11),\n           iVar7 == 0 ||\n           (iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x359c,0xc),\n           iVar7 == 0)))))) {\n        (*(code *)PTR_free_00436800)(unaff_s3);\n        goto LAB_0022eb68;\n      }\n      (*(code *)PTR_free_00436800)(unaff_s3);\n    }\n    iVar7 = *(int *)(*(int *)puVar9 + 8);\n  } while (iVar7 == 0);\n  if ((*(char *)(iVar7 + 0x12bd) == '\0') && (*(char *)(iVar7 + 0x1a29) == '\0')) {\n    if (*(char *)(iVar7 + 0x19ad) == '\0') {\n      return false;\n    }\n    uVar3 = *(uint *)&this->field_0x28;\n    if ((uVar3 << 4) >> 0x1c != 10) {\n      return false;\n    }\n  }\n  else {\n    uVar3 = *(uint *)&this->field_0x28;\n  }\n  if ((uVar3 & 0xe000) == 0) {\n    if ((int)((this->u1_).output_segment)->output_lists_[3].\n             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n             _M_end_of_storage < 0) {\n      return false;\n    }\n    if (((this->u2_).shndx == 0) && ((int)(uVar3 << 0x1d) < 0)) {\n      return false;\n    }\n  }\n  else if ((uVar3 & 0xe000) == 0x8000) {\n    return false;\n  }\n  if (((uVar3 & 0xc00000) != 0) && ((uVar3 & 0xc00000) != 0xc00000)) {\n    return false;\n  }\n  uVar3 = (uVar3 << 0x1c) >> 0x1f ^ 1;\nLAB_0022eb68:\n  return SUB41(uVar3,0);\n}\n\n" comment comment comment (function_definition "bool __thiscall gold::Symbol::should_add_dynsym_entry(Symbol *this,Symbol_table *symtab)\n\n{\n  undefined3 extraout_var;\n  undefined3 extraout_var_00;\n  uint uVar1;\n  bool bVar4;\n  undefined4 uVar2;\n  uint uVar3;\n  undefined1 uVar5;\n  uint uVar6;\n  int iVar7;\n  pointer ppOVar8;\n  undefined *puVar9;\n  Output_segment *pOVar10;\n  char *pcVar11;\n  string *unaff_s3;\n  int unaff_s4;\n  char *pcVar12;\n  char *unaff_s6;\n  bool is_global;\n  char acStack_38 [16];\n  int local_28 [2];\n  \n  puVar9 = PTR_parameters_00432be0;\n  uVar1 = *(uint *)&this->field_0x28;\n  uVar3 = -((int)(uVar1 << 0x1e) >> 0x1f);\n  if (uVar3 == 0) {\n    return false;\n  }\n  if (((int)(uVar1 << 0x16) < 0) ||\n     (((((int)(uVar1 << 0x17) < 0 && ((int)(uVar1 << 0x18) < 0)) &&\n       (((uVar1 & 0xc00000) == 0 || ((uVar1 & 0xc00000) == 0xc00000)))) &&\n      (-1 < (int)(uVar1 << 0x1c))))) goto LAB_0022eb68;\n  iVar7 = *(int *)(*(int *)PTR_parameters_00432be0 + 8);\n  if (iVar7 != 0) {\n    if (((*(char *)(iVar7 + 0x18b5) == '\0') || (*(char *)(iVar7 + 0x1a29) != '\0')) ||\n       ((uVar1 << 0x10) >> 0x1d != 0)) {\n      if ((uVar1 & 0xe000) == 0) {\n        uVar6 = (uVar1 << 0x1c) >> 0x1f;\n        if ((int)((this->u1_).output_segment)->output_lists_[3].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_end_of_storage < 0) goto LAB_0022ece0;\n        iVar7 = *(int *)(*(int *)PTR_parameters_00432be0 + 8);\n      }\n    }\n    else {\n      if ((uVar1 & 0xe000) != 0) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_s__0043226c + -0x2a70);\nLAB_0022f0c4:\n        puVar9 = PTR_LAB_0043220c + 0x44a8;\n        (*(code *)PTR_do_gold_unreachable_004323c4)(puVar9,0x50b,PTR_s__0043226c + -0x2a84);\n                    /* catch() { ... } // from try @ 0022ec68 with catch @ 0022f0e0 */\n        if (_is_global != acStack_38) {\n          (*(code *)PTR_operator_delete_0043228c)(_is_global);\n        }\n        uVar5 = (*(code *)PTR__Unwind_Resume_00432258)(puVar9);\n        return (bool)uVar5;\n      }\n      pOVar10 = (this->u1_).output_segment;\n      if ((int)pOVar10->output_lists_[3].\n               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n               _M_end_of_storage < 0) goto LAB_0022ecdc;\n      if (((int)(uVar1 << 0x1d) < 0) && (uVar1 = (this->u2_).shndx, uVar1 != 0)) {\n        ppOVar8 = pOVar10->output_lists_[4].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage;\n        if ((uint)((int)pOVar10->output_lists_[5].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_start - (int)ppOVar8 >> 2) <= uVar1) goto LAB_0022f0c4;\n        if (ppOVar8[uVar1] == (Output_data *)0x0) {\n          bVar4 = Symbol_table::is_section_folded(symtab,(Relobj *)pOVar10,uVar1);\n          if (CONCAT31(extraout_var_00,bVar4) == 0) {\n            return false;\n          }\n          uVar1 = *(uint *)&this->field_0x28;\n          if (((uVar1 & 0xe000) == 0) &&\n             (uVar6 = (uVar1 << 0x1c) >> 0x1f,\n             (int)((this->u1_).output_segment)->output_lists_[3].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage < 0)) goto LAB_0022ece0;\n        }\n      }\n      iVar7 = *(int *)(*(int *)puVar9 + 8);\n      if (iVar7 == 0) goto LAB_0022ee04;\n    }\n    unaff_s3 = (string *)&is_global;\n    bVar4 = Version_script_info::get_symbol_version\n                      ((Version_script_info *)(iVar7 + 0x59b8),this->name_,(string *)0x0,\n                       (bool *)unaff_s3);\n    if ((CONCAT31(extraout_var,bVar4) != 0) && (is_global == false)) {\nLAB_0022ec20:\n      if (*(int *)&this->field_0x28 << 0x1c < 0) {\n        uVar2 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x35f0);\n        demangle(unaff_s3,this->name_);\n                    /* try { // try from 0022ec68 to 0022ec6f has its CatchHandler @ 0022f0e0 */\n        (*(code *)PTR_gold_warning_0043245c)(uVar2,_is_global);\n        if (_is_global == acStack_38) {\n          return false;\n        }\n        (*(code *)PTR_operator_delete_0043228c)();\n        return false;\n      }\n      goto LAB_0022eb68;\n    }\n    unaff_s4 = *(int *)(*(int *)puVar9 + 8);\n    if (unaff_s4 != 0) {\n      unaff_s6 = acStack_38;\n      if (*(int *)(unaff_s4 + 0x1348) != 0) goto LAB_0022ee18;\n      goto LAB_0022ecd8;\n    }\n  }\nLAB_0022ee04:\n  do {\n    do {\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_s__0043226c + -0x2a30);\nLAB_0022ee18:\n      pcVar12 = this->name_;\n      _is_global = unaff_s6;\n      if (pcVar12 == (char *)0x0) {\n        pcVar11 = (char *)0xffffffff;\n      }\n      else {\n        iVar7 = (*(code *)PTR_strlen_0043677c)(pcVar12);\n        pcVar11 = pcVar12 + iVar7;\n      }\n      (*(code *)PTR__M_construct<char_const*>_00432488)(unaff_s3,pcVar12,pcVar11,0);\n      (*(code *)PTR_find_00433360)(local_28,unaff_s4 + 0x133c,unaff_s3);\n      if (local_28[0] != 0) {\n        if (_is_global != unaff_s6) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n        goto LAB_0022ec20;\n      }\n      if (_is_global != unaff_s6) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\nLAB_0022ecd8:\n      uVar1 = *(uint *)&this->field_0x28;\nLAB_0022ecdc:\n      uVar6 = (uVar1 << 0x1c) >> 0x1f;\nLAB_0022ece0:\n      if (uVar6 != 0) {\n        return false;\n      }\n      iVar7 = *(int *)(*(int *)puVar9 + 8);\n    } while (iVar7 == 0);\n    if (*(char *)(iVar7 + 0xe8d) == '\0') {\nLAB_0022eeb4:\n      if ((*(char *)(iVar7 + 0xf09) == '\0') && (*(char *)(iVar7 + 0xf85) == '\0')) break;\n      if ((uVar1 & 0xe000) == 0) {\n        pOVar10 = (this->u1_).output_segment;\n        goto LAB_0022ed34;\n      }\n    }\n    else {\n      if (((uVar1 & 0xe000) != 0) ||\n         (pOVar10 = (this->u1_).output_segment,\n         -1 < (int)pOVar10->output_lists_[3].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl._M_end_of_storage)) {\n        if (uVar1 >> 0x1c != 1) goto LAB_0022eeb4;\n        goto LAB_0022eb68;\n      }\n      if ((*(char *)(iVar7 + 0xf09) != '\0') || (*(char *)(iVar7 + 0xf85) == '\0')) break;\nLAB_0022ed34:\n      if ((int)pOVar10->output_lists_[3].\n               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n               _M_end_of_storage < 0) break;\n    }\n    unaff_s3 = (string *)(*(code *)PTR_cplus_demangle_004335b0)(this->name_,3);\n    if (unaff_s3 != (string *)0x0) {\n      unaff_s4 = *(int *)(*(int *)puVar9 + 8);\n      if (unaff_s4 == 0) goto LAB_0022ee04;\n      uVar3 = (uint)*(byte *)(unaff_s4 + 0xf09);\n      if (((uVar3 != 0) &&\n          ((iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35d0,0xc),\n           iVar7 == 0 ||\n           (iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35c0,0xf),\n           iVar7 == 0)))) ||\n         ((uVar3 = (uint)*(byte *)(unaff_s4 + 0xf85), uVar3 != 0 &&\n          ((iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35b0,0x11),\n           iVar7 == 0 ||\n           (iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x359c,0xc),\n           iVar7 == 0)))))) {\n        (*(code *)PTR_free_00436800)(unaff_s3);\n        goto LAB_0022eb68;\n      }\n      (*(code *)PTR_free_00436800)(unaff_s3);\n    }\n    iVar7 = *(int *)(*(int *)puVar9 + 8);\n  } while (iVar7 == 0);\n  if ((*(char *)(iVar7 + 0x12bd) == '\0') && (*(char *)(iVar7 + 0x1a29) == '\0')) {\n    if (*(char *)(iVar7 + 0x19ad) == '\0') {\n      return false;\n    }\n    uVar3 = *(uint *)&this->field_0x28;\n    if ((uVar3 << 4) >> 0x1c != 10) {\n      return false;\n    }\n  }\n  else {\n    uVar3 = *(uint *)&this->field_0x28;\n  }\n  if ((uVar3 & 0xe000) == 0) {\n    if ((int)((this->u1_).output_segment)->output_lists_[3].\n             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n             _M_end_of_storage < 0) {\n      return false;\n    }\n    if (((this->u2_).shndx == 0) && ((int)(uVar3 << 0x1d) < 0)) {\n      return false;\n    }\n  }\n  else if ((uVar3 & 0xe000) == 0x8000) {\n    return false;\n  }\n  if (((uVar3 & 0xc00000) != 0) && ((uVar3 & 0xc00000) != 0xc00000)) {\n    return false;\n  }\n  uVar3 = (uVar3 << 0x1c) >> 0x1f ^ 1;\nLAB_0022eb68:\n  return SUB41(uVar3,0);\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Symbol::" identifier : : identifier : :) (function_declarator "should_add_dynsym_entry(Symbol *this,Symbol_table *symtab)" identifier (parameter_list "(Symbol *this,Symbol_table *symtab)" ( (parameter_declaration "Symbol *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Symbol_table *symtab" type_identifier (pointer_declarator "*symtab" * identifier)) ))) (compound_statement "{\n  undefined3 extraout_var;\n  undefined3 extraout_var_00;\n  uint uVar1;\n  bool bVar4;\n  undefined4 uVar2;\n  uint uVar3;\n  undefined1 uVar5;\n  uint uVar6;\n  int iVar7;\n  pointer ppOVar8;\n  undefined *puVar9;\n  Output_segment *pOVar10;\n  char *pcVar11;\n  string *unaff_s3;\n  int unaff_s4;\n  char *pcVar12;\n  char *unaff_s6;\n  bool is_global;\n  char acStack_38 [16];\n  int local_28 [2];\n  \n  puVar9 = PTR_parameters_00432be0;\n  uVar1 = *(uint *)&this->field_0x28;\n  uVar3 = -((int)(uVar1 << 0x1e) >> 0x1f);\n  if (uVar3 == 0) {\n    return false;\n  }\n  if (((int)(uVar1 << 0x16) < 0) ||\n     (((((int)(uVar1 << 0x17) < 0 && ((int)(uVar1 << 0x18) < 0)) &&\n       (((uVar1 & 0xc00000) == 0 || ((uVar1 & 0xc00000) == 0xc00000)))) &&\n      (-1 < (int)(uVar1 << 0x1c))))) goto LAB_0022eb68;\n  iVar7 = *(int *)(*(int *)PTR_parameters_00432be0 + 8);\n  if (iVar7 != 0) {\n    if (((*(char *)(iVar7 + 0x18b5) == '\0') || (*(char *)(iVar7 + 0x1a29) != '\0')) ||\n       ((uVar1 << 0x10) >> 0x1d != 0)) {\n      if ((uVar1 & 0xe000) == 0) {\n        uVar6 = (uVar1 << 0x1c) >> 0x1f;\n        if ((int)((this->u1_).output_segment)->output_lists_[3].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_end_of_storage < 0) goto LAB_0022ece0;\n        iVar7 = *(int *)(*(int *)PTR_parameters_00432be0 + 8);\n      }\n    }\n    else {\n      if ((uVar1 & 0xe000) != 0) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_s__0043226c + -0x2a70);\nLAB_0022f0c4:\n        puVar9 = PTR_LAB_0043220c + 0x44a8;\n        (*(code *)PTR_do_gold_unreachable_004323c4)(puVar9,0x50b,PTR_s__0043226c + -0x2a84);\n                    /* catch() { ... } // from try @ 0022ec68 with catch @ 0022f0e0 */\n        if (_is_global != acStack_38) {\n          (*(code *)PTR_operator_delete_0043228c)(_is_global);\n        }\n        uVar5 = (*(code *)PTR__Unwind_Resume_00432258)(puVar9);\n        return (bool)uVar5;\n      }\n      pOVar10 = (this->u1_).output_segment;\n      if ((int)pOVar10->output_lists_[3].\n               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n               _M_end_of_storage < 0) goto LAB_0022ecdc;\n      if (((int)(uVar1 << 0x1d) < 0) && (uVar1 = (this->u2_).shndx, uVar1 != 0)) {\n        ppOVar8 = pOVar10->output_lists_[4].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage;\n        if ((uint)((int)pOVar10->output_lists_[5].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_start - (int)ppOVar8 >> 2) <= uVar1) goto LAB_0022f0c4;\n        if (ppOVar8[uVar1] == (Output_data *)0x0) {\n          bVar4 = Symbol_table::is_section_folded(symtab,(Relobj *)pOVar10,uVar1);\n          if (CONCAT31(extraout_var_00,bVar4) == 0) {\n            return false;\n          }\n          uVar1 = *(uint *)&this->field_0x28;\n          if (((uVar1 & 0xe000) == 0) &&\n             (uVar6 = (uVar1 << 0x1c) >> 0x1f,\n             (int)((this->u1_).output_segment)->output_lists_[3].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage < 0)) goto LAB_0022ece0;\n        }\n      }\n      iVar7 = *(int *)(*(int *)puVar9 + 8);\n      if (iVar7 == 0) goto LAB_0022ee04;\n    }\n    unaff_s3 = (string *)&is_global;\n    bVar4 = Version_script_info::get_symbol_version\n                      ((Version_script_info *)(iVar7 + 0x59b8),this->name_,(string *)0x0,\n                       (bool *)unaff_s3);\n    if ((CONCAT31(extraout_var,bVar4) != 0) && (is_global == false)) {\nLAB_0022ec20:\n      if (*(int *)&this->field_0x28 << 0x1c < 0) {\n        uVar2 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x35f0);\n        demangle(unaff_s3,this->name_);\n                    /* try { // try from 0022ec68 to 0022ec6f has its CatchHandler @ 0022f0e0 */\n        (*(code *)PTR_gold_warning_0043245c)(uVar2,_is_global);\n        if (_is_global == acStack_38) {\n          return false;\n        }\n        (*(code *)PTR_operator_delete_0043228c)();\n        return false;\n      }\n      goto LAB_0022eb68;\n    }\n    unaff_s4 = *(int *)(*(int *)puVar9 + 8);\n    if (unaff_s4 != 0) {\n      unaff_s6 = acStack_38;\n      if (*(int *)(unaff_s4 + 0x1348) != 0) goto LAB_0022ee18;\n      goto LAB_0022ecd8;\n    }\n  }\nLAB_0022ee04:\n  do {\n    do {\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_s__0043226c + -0x2a30);\nLAB_0022ee18:\n      pcVar12 = this->name_;\n      _is_global = unaff_s6;\n      if (pcVar12 == (char *)0x0) {\n        pcVar11 = (char *)0xffffffff;\n      }\n      else {\n        iVar7 = (*(code *)PTR_strlen_0043677c)(pcVar12);\n        pcVar11 = pcVar12 + iVar7;\n      }\n      (*(code *)PTR__M_construct<char_const*>_00432488)(unaff_s3,pcVar12,pcVar11,0);\n      (*(code *)PTR_find_00433360)(local_28,unaff_s4 + 0x133c,unaff_s3);\n      if (local_28[0] != 0) {\n        if (_is_global != unaff_s6) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n        goto LAB_0022ec20;\n      }\n      if (_is_global != unaff_s6) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\nLAB_0022ecd8:\n      uVar1 = *(uint *)&this->field_0x28;\nLAB_0022ecdc:\n      uVar6 = (uVar1 << 0x1c) >> 0x1f;\nLAB_0022ece0:\n      if (uVar6 != 0) {\n        return false;\n      }\n      iVar7 = *(int *)(*(int *)puVar9 + 8);\n    } while (iVar7 == 0);\n    if (*(char *)(iVar7 + 0xe8d) == '\0') {\nLAB_0022eeb4:\n      if ((*(char *)(iVar7 + 0xf09) == '\0') && (*(char *)(iVar7 + 0xf85) == '\0')) break;\n      if ((uVar1 & 0xe000) == 0) {\n        pOVar10 = (this->u1_).output_segment;\n        goto LAB_0022ed34;\n      }\n    }\n    else {\n      if (((uVar1 & 0xe000) != 0) ||\n         (pOVar10 = (this->u1_).output_segment,\n         -1 < (int)pOVar10->output_lists_[3].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl._M_end_of_storage)) {\n        if (uVar1 >> 0x1c != 1) goto LAB_0022eeb4;\n        goto LAB_0022eb68;\n      }\n      if ((*(char *)(iVar7 + 0xf09) != '\0') || (*(char *)(iVar7 + 0xf85) == '\0')) break;\nLAB_0022ed34:\n      if ((int)pOVar10->output_lists_[3].\n               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n               _M_end_of_storage < 0) break;\n    }\n    unaff_s3 = (string *)(*(code *)PTR_cplus_demangle_004335b0)(this->name_,3);\n    if (unaff_s3 != (string *)0x0) {\n      unaff_s4 = *(int *)(*(int *)puVar9 + 8);\n      if (unaff_s4 == 0) goto LAB_0022ee04;\n      uVar3 = (uint)*(byte *)(unaff_s4 + 0xf09);\n      if (((uVar3 != 0) &&\n          ((iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35d0,0xc),\n           iVar7 == 0 ||\n           (iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35c0,0xf),\n           iVar7 == 0)))) ||\n         ((uVar3 = (uint)*(byte *)(unaff_s4 + 0xf85), uVar3 != 0 &&\n          ((iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35b0,0x11),\n           iVar7 == 0 ||\n           (iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x359c,0xc),\n           iVar7 == 0)))))) {\n        (*(code *)PTR_free_00436800)(unaff_s3);\n        goto LAB_0022eb68;\n      }\n      (*(code *)PTR_free_00436800)(unaff_s3);\n    }\n    iVar7 = *(int *)(*(int *)puVar9 + 8);\n  } while (iVar7 == 0);\n  if ((*(char *)(iVar7 + 0x12bd) == '\0') && (*(char *)(iVar7 + 0x1a29) == '\0')) {\n    if (*(char *)(iVar7 + 0x19ad) == '\0') {\n      return false;\n    }\n    uVar3 = *(uint *)&this->field_0x28;\n    if ((uVar3 << 4) >> 0x1c != 10) {\n      return false;\n    }\n  }\n  else {\n    uVar3 = *(uint *)&this->field_0x28;\n  }\n  if ((uVar3 & 0xe000) == 0) {\n    if ((int)((this->u1_).output_segment)->output_lists_[3].\n             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n             _M_end_of_storage < 0) {\n      return false;\n    }\n    if (((this->u2_).shndx == 0) && ((int)(uVar3 << 0x1d) < 0)) {\n      return false;\n    }\n  }\n  else if ((uVar3 & 0xe000) == 0x8000) {\n    return false;\n  }\n  if (((uVar3 & 0xc00000) != 0) && ((uVar3 & 0xc00000) != 0xc00000)) {\n    return false;\n  }\n  uVar3 = (uVar3 << 0x1c) >> 0x1f ^ 1;\nLAB_0022eb68:\n  return SUB41(uVar3,0);\n}" { (declaration "undefined3 extraout_var;" type_identifier identifier ;) (declaration "undefined3 extraout_var_00;" type_identifier identifier ;) (declaration "uint uVar1;" type_identifier identifier ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "undefined1 uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "pointer ppOVar8;" type_identifier identifier ;) (declaration "undefined *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "Output_segment *pOVar10;" type_identifier (pointer_declarator "*pOVar10" * identifier) ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "string *unaff_s3;" type_identifier (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "int unaff_s4;" primitive_type identifier ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "char *unaff_s6;" primitive_type (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "bool is_global;" primitive_type identifier ;) (declaration "char acStack_38 [16];" primitive_type (array_declarator "acStack_38 [16]" identifier [ number_literal ]) ;) (declaration "int local_28 [2];" primitive_type (array_declarator "local_28 [2]" identifier [ number_literal ]) ;) (expression_statement "puVar9 = PTR_parameters_00432be0;" (assignment_expression "puVar9 = PTR_parameters_00432be0" identifier = identifier) ;) (expression_statement "uVar1 = *(uint *)&this->field_0x28;" (assignment_expression "uVar1 = *(uint *)&this->field_0x28" identifier = (pointer_expression "*(uint *)&this->field_0x28" * (cast_expression "(uint *)&this->field_0x28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->field_0x28" & (field_expression "this->field_0x28" identifier -> field_identifier))))) ;) (expression_statement "uVar3 = -((int)(uVar1 << 0x1e) >> 0x1f);" (assignment_expression "uVar3 = -((int)(uVar1 << 0x1e) >> 0x1f)" identifier = (unary_expression "-((int)(uVar1 << 0x1e) >> 0x1f)" - (parenthesized_expression "((int)(uVar1 << 0x1e) >> 0x1f)" ( (binary_expression "(int)(uVar1 << 0x1e) >> 0x1f" (cast_expression "(int)(uVar1 << 0x1e)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar1 << 0x1e)" ( (binary_expression "uVar1 << 0x1e" identifier << number_literal) ))) >> number_literal) )))) ;) (if_statement "if (uVar3 == 0) {\n    return false;\n  }" if (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    return false;\n  }" { (return_statement "return false;" return false ;) })) (if_statement "if (((int)(uVar1 << 0x16) < 0) ||\n     (((((int)(uVar1 << 0x17) < 0 && ((int)(uVar1 << 0x18) < 0)) &&\n       (((uVar1 & 0xc00000) == 0 || ((uVar1 & 0xc00000) == 0xc00000)))) &&\n      (-1 < (int)(uVar1 << 0x1c))))) goto LAB_0022eb68;" if (parenthesized_expression "(((int)(uVar1 << 0x16) < 0) ||\n     (((((int)(uVar1 << 0x17) < 0 && ((int)(uVar1 << 0x18) < 0)) &&\n       (((uVar1 & 0xc00000) == 0 || ((uVar1 & 0xc00000) == 0xc00000)))) &&\n      (-1 < (int)(uVar1 << 0x1c)))))" ( (binary_expression "((int)(uVar1 << 0x16) < 0) ||\n     (((((int)(uVar1 << 0x17) < 0 && ((int)(uVar1 << 0x18) < 0)) &&\n       (((uVar1 & 0xc00000) == 0 || ((uVar1 & 0xc00000) == 0xc00000)))) &&\n      (-1 < (int)(uVar1 << 0x1c))))" (parenthesized_expression "((int)(uVar1 << 0x16) < 0)" ( (binary_expression "(int)(uVar1 << 0x16) < 0" (cast_expression "(int)(uVar1 << 0x16)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar1 << 0x16)" ( (binary_expression "uVar1 << 0x16" identifier << number_literal) ))) < number_literal) )) || (parenthesized_expression "(((((int)(uVar1 << 0x17) < 0 && ((int)(uVar1 << 0x18) < 0)) &&\n       (((uVar1 & 0xc00000) == 0 || ((uVar1 & 0xc00000) == 0xc00000)))) &&\n      (-1 < (int)(uVar1 << 0x1c))))" ( (parenthesized_expression "((((int)(uVar1 << 0x17) < 0 && ((int)(uVar1 << 0x18) < 0)) &&\n       (((uVar1 & 0xc00000) == 0 || ((uVar1 & 0xc00000) == 0xc00000)))) &&\n      (-1 < (int)(uVar1 << 0x1c)))" ( (binary_expression "(((int)(uVar1 << 0x17) < 0 && ((int)(uVar1 << 0x18) < 0)) &&\n       (((uVar1 & 0xc00000) == 0 || ((uVar1 & 0xc00000) == 0xc00000)))) &&\n      (-1 < (int)(uVar1 << 0x1c))" (parenthesized_expression "(((int)(uVar1 << 0x17) < 0 && ((int)(uVar1 << 0x18) < 0)) &&\n       (((uVar1 & 0xc00000) == 0 || ((uVar1 & 0xc00000) == 0xc00000))))" ( (binary_expression "((int)(uVar1 << 0x17) < 0 && ((int)(uVar1 << 0x18) < 0)) &&\n       (((uVar1 & 0xc00000) == 0 || ((uVar1 & 0xc00000) == 0xc00000)))" (parenthesized_expression "((int)(uVar1 << 0x17) < 0 && ((int)(uVar1 << 0x18) < 0))" ( (binary_expression "(int)(uVar1 << 0x17) < 0 && ((int)(uVar1 << 0x18) < 0)" (binary_expression "(int)(uVar1 << 0x17) < 0" (cast_expression "(int)(uVar1 << 0x17)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar1 << 0x17)" ( (binary_expression "uVar1 << 0x17" identifier << number_literal) ))) < number_literal) && (parenthesized_expression "((int)(uVar1 << 0x18) < 0)" ( (binary_expression "(int)(uVar1 << 0x18) < 0" (cast_expression "(int)(uVar1 << 0x18)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar1 << 0x18)" ( (binary_expression "uVar1 << 0x18" identifier << number_literal) ))) < number_literal) ))) )) && (parenthesized_expression "(((uVar1 & 0xc00000) == 0 || ((uVar1 & 0xc00000) == 0xc00000)))" ( (parenthesized_expression "((uVar1 & 0xc00000) == 0 || ((uVar1 & 0xc00000) == 0xc00000))" ( (binary_expression "(uVar1 & 0xc00000) == 0 || ((uVar1 & 0xc00000) == 0xc00000)" (binary_expression "(uVar1 & 0xc00000) == 0" (parenthesized_expression "(uVar1 & 0xc00000)" ( (binary_expression "uVar1 & 0xc00000" identifier & number_literal) )) == number_literal) || (parenthesized_expression "((uVar1 & 0xc00000) == 0xc00000)" ( (binary_expression "(uVar1 & 0xc00000) == 0xc00000" (parenthesized_expression "(uVar1 & 0xc00000)" ( (binary_expression "uVar1 & 0xc00000" identifier & number_literal) )) == number_literal) ))) )) ))) )) && (parenthesized_expression "(-1 < (int)(uVar1 << 0x1c))" ( (binary_expression "-1 < (int)(uVar1 << 0x1c)" number_literal < (cast_expression "(int)(uVar1 << 0x1c)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar1 << 0x1c)" ( (binary_expression "uVar1 << 0x1c" identifier << number_literal) )))) ))) )) ))) )) (goto_statement "goto LAB_0022eb68;" goto statement_identifier ;)) (expression_statement "iVar7 = *(int *)(*(int *)PTR_parameters_00432be0 + 8);" (assignment_expression "iVar7 = *(int *)(*(int *)PTR_parameters_00432be0 + 8)" identifier = (pointer_expression "*(int *)(*(int *)PTR_parameters_00432be0 + 8)" * (cast_expression "(int *)(*(int *)PTR_parameters_00432be0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_parameters_00432be0 + 8)" ( (binary_expression "*(int *)PTR_parameters_00432be0 + 8" (pointer_expression "*(int *)PTR_parameters_00432be0" * (cast_expression "(int *)PTR_parameters_00432be0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ;) (if_statement "if (iVar7 != 0) {\n    if (((*(char *)(iVar7 + 0x18b5) == '\0') || (*(char *)(iVar7 + 0x1a29) != '\0')) ||\n       ((uVar1 << 0x10) >> 0x1d != 0)) {\n      if ((uVar1 & 0xe000) == 0) {\n        uVar6 = (uVar1 << 0x1c) >> 0x1f;\n        if ((int)((this->u1_).output_segment)->output_lists_[3].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_end_of_storage < 0) goto LAB_0022ece0;\n        iVar7 = *(int *)(*(int *)PTR_parameters_00432be0 + 8);\n      }\n    }\n    else {\n      if ((uVar1 & 0xe000) != 0) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_s__0043226c + -0x2a70);\nLAB_0022f0c4:\n        puVar9 = PTR_LAB_0043220c + 0x44a8;\n        (*(code *)PTR_do_gold_unreachable_004323c4)(puVar9,0x50b,PTR_s__0043226c + -0x2a84);\n                    /* catch() { ... } // from try @ 0022ec68 with catch @ 0022f0e0 */\n        if (_is_global != acStack_38) {\n          (*(code *)PTR_operator_delete_0043228c)(_is_global);\n        }\n        uVar5 = (*(code *)PTR__Unwind_Resume_00432258)(puVar9);\n        return (bool)uVar5;\n      }\n      pOVar10 = (this->u1_).output_segment;\n      if ((int)pOVar10->output_lists_[3].\n               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n               _M_end_of_storage < 0) goto LAB_0022ecdc;\n      if (((int)(uVar1 << 0x1d) < 0) && (uVar1 = (this->u2_).shndx, uVar1 != 0)) {\n        ppOVar8 = pOVar10->output_lists_[4].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage;\n        if ((uint)((int)pOVar10->output_lists_[5].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_start - (int)ppOVar8 >> 2) <= uVar1) goto LAB_0022f0c4;\n        if (ppOVar8[uVar1] == (Output_data *)0x0) {\n          bVar4 = Symbol_table::is_section_folded(symtab,(Relobj *)pOVar10,uVar1);\n          if (CONCAT31(extraout_var_00,bVar4) == 0) {\n            return false;\n          }\n          uVar1 = *(uint *)&this->field_0x28;\n          if (((uVar1 & 0xe000) == 0) &&\n             (uVar6 = (uVar1 << 0x1c) >> 0x1f,\n             (int)((this->u1_).output_segment)->output_lists_[3].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage < 0)) goto LAB_0022ece0;\n        }\n      }\n      iVar7 = *(int *)(*(int *)puVar9 + 8);\n      if (iVar7 == 0) goto LAB_0022ee04;\n    }\n    unaff_s3 = (string *)&is_global;\n    bVar4 = Version_script_info::get_symbol_version\n                      ((Version_script_info *)(iVar7 + 0x59b8),this->name_,(string *)0x0,\n                       (bool *)unaff_s3);\n    if ((CONCAT31(extraout_var,bVar4) != 0) && (is_global == false)) {\nLAB_0022ec20:\n      if (*(int *)&this->field_0x28 << 0x1c < 0) {\n        uVar2 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x35f0);\n        demangle(unaff_s3,this->name_);\n                    /* try { // try from 0022ec68 to 0022ec6f has its CatchHandler @ 0022f0e0 */\n        (*(code *)PTR_gold_warning_0043245c)(uVar2,_is_global);\n        if (_is_global == acStack_38) {\n          return false;\n        }\n        (*(code *)PTR_operator_delete_0043228c)();\n        return false;\n      }\n      goto LAB_0022eb68;\n    }\n    unaff_s4 = *(int *)(*(int *)puVar9 + 8);\n    if (unaff_s4 != 0) {\n      unaff_s6 = acStack_38;\n      if (*(int *)(unaff_s4 + 0x1348) != 0) goto LAB_0022ee18;\n      goto LAB_0022ecd8;\n    }\n  }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n    if (((*(char *)(iVar7 + 0x18b5) == '\0') || (*(char *)(iVar7 + 0x1a29) != '\0')) ||\n       ((uVar1 << 0x10) >> 0x1d != 0)) {\n      if ((uVar1 & 0xe000) == 0) {\n        uVar6 = (uVar1 << 0x1c) >> 0x1f;\n        if ((int)((this->u1_).output_segment)->output_lists_[3].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_end_of_storage < 0) goto LAB_0022ece0;\n        iVar7 = *(int *)(*(int *)PTR_parameters_00432be0 + 8);\n      }\n    }\n    else {\n      if ((uVar1 & 0xe000) != 0) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_s__0043226c + -0x2a70);\nLAB_0022f0c4:\n        puVar9 = PTR_LAB_0043220c + 0x44a8;\n        (*(code *)PTR_do_gold_unreachable_004323c4)(puVar9,0x50b,PTR_s__0043226c + -0x2a84);\n                    /* catch() { ... } // from try @ 0022ec68 with catch @ 0022f0e0 */\n        if (_is_global != acStack_38) {\n          (*(code *)PTR_operator_delete_0043228c)(_is_global);\n        }\n        uVar5 = (*(code *)PTR__Unwind_Resume_00432258)(puVar9);\n        return (bool)uVar5;\n      }\n      pOVar10 = (this->u1_).output_segment;\n      if ((int)pOVar10->output_lists_[3].\n               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n               _M_end_of_storage < 0) goto LAB_0022ecdc;\n      if (((int)(uVar1 << 0x1d) < 0) && (uVar1 = (this->u2_).shndx, uVar1 != 0)) {\n        ppOVar8 = pOVar10->output_lists_[4].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage;\n        if ((uint)((int)pOVar10->output_lists_[5].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_start - (int)ppOVar8 >> 2) <= uVar1) goto LAB_0022f0c4;\n        if (ppOVar8[uVar1] == (Output_data *)0x0) {\n          bVar4 = Symbol_table::is_section_folded(symtab,(Relobj *)pOVar10,uVar1);\n          if (CONCAT31(extraout_var_00,bVar4) == 0) {\n            return false;\n          }\n          uVar1 = *(uint *)&this->field_0x28;\n          if (((uVar1 & 0xe000) == 0) &&\n             (uVar6 = (uVar1 << 0x1c) >> 0x1f,\n             (int)((this->u1_).output_segment)->output_lists_[3].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage < 0)) goto LAB_0022ece0;\n        }\n      }\n      iVar7 = *(int *)(*(int *)puVar9 + 8);\n      if (iVar7 == 0) goto LAB_0022ee04;\n    }\n    unaff_s3 = (string *)&is_global;\n    bVar4 = Version_script_info::get_symbol_version\n                      ((Version_script_info *)(iVar7 + 0x59b8),this->name_,(string *)0x0,\n                       (bool *)unaff_s3);\n    if ((CONCAT31(extraout_var,bVar4) != 0) && (is_global == false)) {\nLAB_0022ec20:\n      if (*(int *)&this->field_0x28 << 0x1c < 0) {\n        uVar2 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x35f0);\n        demangle(unaff_s3,this->name_);\n                    /* try { // try from 0022ec68 to 0022ec6f has its CatchHandler @ 0022f0e0 */\n        (*(code *)PTR_gold_warning_0043245c)(uVar2,_is_global);\n        if (_is_global == acStack_38) {\n          return false;\n        }\n        (*(code *)PTR_operator_delete_0043228c)();\n        return false;\n      }\n      goto LAB_0022eb68;\n    }\n    unaff_s4 = *(int *)(*(int *)puVar9 + 8);\n    if (unaff_s4 != 0) {\n      unaff_s6 = acStack_38;\n      if (*(int *)(unaff_s4 + 0x1348) != 0) goto LAB_0022ee18;\n      goto LAB_0022ecd8;\n    }\n  }" { (if_statement "if (((*(char *)(iVar7 + 0x18b5) == '\0') || (*(char *)(iVar7 + 0x1a29) != '\0')) ||\n       ((uVar1 << 0x10) >> 0x1d != 0)) {\n      if ((uVar1 & 0xe000) == 0) {\n        uVar6 = (uVar1 << 0x1c) >> 0x1f;\n        if ((int)((this->u1_).output_segment)->output_lists_[3].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_end_of_storage < 0) goto LAB_0022ece0;\n        iVar7 = *(int *)(*(int *)PTR_parameters_00432be0 + 8);\n      }\n    }\n    else {\n      if ((uVar1 & 0xe000) != 0) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_s__0043226c + -0x2a70);\nLAB_0022f0c4:\n        puVar9 = PTR_LAB_0043220c + 0x44a8;\n        (*(code *)PTR_do_gold_unreachable_004323c4)(puVar9,0x50b,PTR_s__0043226c + -0x2a84);\n                    /* catch() { ... } // from try @ 0022ec68 with catch @ 0022f0e0 */\n        if (_is_global != acStack_38) {\n          (*(code *)PTR_operator_delete_0043228c)(_is_global);\n        }\n        uVar5 = (*(code *)PTR__Unwind_Resume_00432258)(puVar9);\n        return (bool)uVar5;\n      }\n      pOVar10 = (this->u1_).output_segment;\n      if ((int)pOVar10->output_lists_[3].\n               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n               _M_end_of_storage < 0) goto LAB_0022ecdc;\n      if (((int)(uVar1 << 0x1d) < 0) && (uVar1 = (this->u2_).shndx, uVar1 != 0)) {\n        ppOVar8 = pOVar10->output_lists_[4].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage;\n        if ((uint)((int)pOVar10->output_lists_[5].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_start - (int)ppOVar8 >> 2) <= uVar1) goto LAB_0022f0c4;\n        if (ppOVar8[uVar1] == (Output_data *)0x0) {\n          bVar4 = Symbol_table::is_section_folded(symtab,(Relobj *)pOVar10,uVar1);\n          if (CONCAT31(extraout_var_00,bVar4) == 0) {\n            return false;\n          }\n          uVar1 = *(uint *)&this->field_0x28;\n          if (((uVar1 & 0xe000) == 0) &&\n             (uVar6 = (uVar1 << 0x1c) >> 0x1f,\n             (int)((this->u1_).output_segment)->output_lists_[3].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage < 0)) goto LAB_0022ece0;\n        }\n      }\n      iVar7 = *(int *)(*(int *)puVar9 + 8);\n      if (iVar7 == 0) goto LAB_0022ee04;\n    }" if (parenthesized_expression "(((*(char *)(iVar7 + 0x18b5) == '\0') || (*(char *)(iVar7 + 0x1a29) != '\0')) ||\n       ((uVar1 << 0x10) >> 0x1d != 0))" ( (binary_expression "((*(char *)(iVar7 + 0x18b5) == '\0') || (*(char *)(iVar7 + 0x1a29) != '\0')) ||\n       ((uVar1 << 0x10) >> 0x1d != 0)" (parenthesized_expression "((*(char *)(iVar7 + 0x18b5) == '\0') || (*(char *)(iVar7 + 0x1a29) != '\0'))" ( (binary_expression "(*(char *)(iVar7 + 0x18b5) == '\0') || (*(char *)(iVar7 + 0x1a29) != '\0')" (parenthesized_expression "(*(char *)(iVar7 + 0x18b5) == '\0')" ( (binary_expression "*(char *)(iVar7 + 0x18b5) == '\0'" (pointer_expression "*(char *)(iVar7 + 0x18b5)" * (cast_expression "(char *)(iVar7 + 0x18b5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x18b5)" ( (binary_expression "iVar7 + 0x18b5" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(*(char *)(iVar7 + 0x1a29) != '\0')" ( (binary_expression "*(char *)(iVar7 + 0x1a29) != '\0'" (pointer_expression "*(char *)(iVar7 + 0x1a29)" * (cast_expression "(char *)(iVar7 + 0x1a29)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x1a29)" ( (binary_expression "iVar7 + 0x1a29" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) || (parenthesized_expression "((uVar1 << 0x10) >> 0x1d != 0)" ( (binary_expression "(uVar1 << 0x10) >> 0x1d != 0" (binary_expression "(uVar1 << 0x10) >> 0x1d" (parenthesized_expression "(uVar1 << 0x10)" ( (binary_expression "uVar1 << 0x10" identifier << number_literal) )) >> number_literal) != number_literal) ))) )) (compound_statement "{\n      if ((uVar1 & 0xe000) == 0) {\n        uVar6 = (uVar1 << 0x1c) >> 0x1f;\n        if ((int)((this->u1_).output_segment)->output_lists_[3].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_end_of_storage < 0) goto LAB_0022ece0;\n        iVar7 = *(int *)(*(int *)PTR_parameters_00432be0 + 8);\n      }\n    }" { (if_statement "if ((uVar1 & 0xe000) == 0) {\n        uVar6 = (uVar1 << 0x1c) >> 0x1f;\n        if ((int)((this->u1_).output_segment)->output_lists_[3].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_end_of_storage < 0) goto LAB_0022ece0;\n        iVar7 = *(int *)(*(int *)PTR_parameters_00432be0 + 8);\n      }" if (parenthesized_expression "((uVar1 & 0xe000) == 0)" ( (binary_expression "(uVar1 & 0xe000) == 0" (parenthesized_expression "(uVar1 & 0xe000)" ( (binary_expression "uVar1 & 0xe000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        uVar6 = (uVar1 << 0x1c) >> 0x1f;\n        if ((int)((this->u1_).output_segment)->output_lists_[3].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_end_of_storage < 0) goto LAB_0022ece0;\n        iVar7 = *(int *)(*(int *)PTR_parameters_00432be0 + 8);\n      }" { (expression_statement "uVar6 = (uVar1 << 0x1c) >> 0x1f;" (assignment_expression "uVar6 = (uVar1 << 0x1c) >> 0x1f" identifier = (binary_expression "(uVar1 << 0x1c) >> 0x1f" (parenthesized_expression "(uVar1 << 0x1c)" ( (binary_expression "uVar1 << 0x1c" identifier << number_literal) )) >> number_literal)) ;) (if_statement "if ((int)((this->u1_).output_segment)->output_lists_[3].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_end_of_storage < 0) goto LAB_0022ece0;" if (parenthesized_expression "((int)((this->u1_).output_segment)->output_lists_[3].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_end_of_storage < 0)" ( (binary_expression "(int)((this->u1_).output_segment)->output_lists_[3].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_end_of_storage < 0" (field_expression "(int)((this->u1_).output_segment)->output_lists_[3].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_end_of_storage" (field_expression "(int)((this->u1_).output_segment)->output_lists_[3].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl" (binary_expression "(int)((this->u1_).output_segment)->output_lists_[3].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "(int)((this->u1_).output_segment)->output_lists_[3].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "(int)((this->u1_).output_segment)->output_lists_[3].\n                 super__Vector_base<gold::Output_data*,_std" (binary_expression "(int)((this->u1_).output_segment)->output_lists_[3].\n                 super__Vector_base<gold" (cast_expression "(int)((this->u1_).output_segment)->output_lists_[3].\n                 super__Vector_base" ( (type_descriptor "int" primitive_type) ) (field_expression "((this->u1_).output_segment)->output_lists_[3].\n                 super__Vector_base" (subscript_expression "((this->u1_).output_segment)->output_lists_[3]" (field_expression "((this->u1_).output_segment)->output_lists_" (parenthesized_expression "((this->u1_).output_segment)" ( (field_expression "(this->u1_).output_segment" (parenthesized_expression "(this->u1_)" ( (field_expression "this->u1_" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) [ number_literal ]) . field_identifier)) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) < number_literal) )) (goto_statement "goto LAB_0022ece0;" goto statement_identifier ;)) (expression_statement "iVar7 = *(int *)(*(int *)PTR_parameters_00432be0 + 8);" (assignment_expression "iVar7 = *(int *)(*(int *)PTR_parameters_00432be0 + 8)" identifier = (pointer_expression "*(int *)(*(int *)PTR_parameters_00432be0 + 8)" * (cast_expression "(int *)(*(int *)PTR_parameters_00432be0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_parameters_00432be0 + 8)" ( (binary_expression "*(int *)PTR_parameters_00432be0 + 8" (pointer_expression "*(int *)PTR_parameters_00432be0" * (cast_expression "(int *)PTR_parameters_00432be0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ;) })) }) (else_clause "else {\n      if ((uVar1 & 0xe000) != 0) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_s__0043226c + -0x2a70);\nLAB_0022f0c4:\n        puVar9 = PTR_LAB_0043220c + 0x44a8;\n        (*(code *)PTR_do_gold_unreachable_004323c4)(puVar9,0x50b,PTR_s__0043226c + -0x2a84);\n                    /* catch() { ... } // from try @ 0022ec68 with catch @ 0022f0e0 */\n        if (_is_global != acStack_38) {\n          (*(code *)PTR_operator_delete_0043228c)(_is_global);\n        }\n        uVar5 = (*(code *)PTR__Unwind_Resume_00432258)(puVar9);\n        return (bool)uVar5;\n      }\n      pOVar10 = (this->u1_).output_segment;\n      if ((int)pOVar10->output_lists_[3].\n               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n               _M_end_of_storage < 0) goto LAB_0022ecdc;\n      if (((int)(uVar1 << 0x1d) < 0) && (uVar1 = (this->u2_).shndx, uVar1 != 0)) {\n        ppOVar8 = pOVar10->output_lists_[4].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage;\n        if ((uint)((int)pOVar10->output_lists_[5].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_start - (int)ppOVar8 >> 2) <= uVar1) goto LAB_0022f0c4;\n        if (ppOVar8[uVar1] == (Output_data *)0x0) {\n          bVar4 = Symbol_table::is_section_folded(symtab,(Relobj *)pOVar10,uVar1);\n          if (CONCAT31(extraout_var_00,bVar4) == 0) {\n            return false;\n          }\n          uVar1 = *(uint *)&this->field_0x28;\n          if (((uVar1 & 0xe000) == 0) &&\n             (uVar6 = (uVar1 << 0x1c) >> 0x1f,\n             (int)((this->u1_).output_segment)->output_lists_[3].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage < 0)) goto LAB_0022ece0;\n        }\n      }\n      iVar7 = *(int *)(*(int *)puVar9 + 8);\n      if (iVar7 == 0) goto LAB_0022ee04;\n    }" else (compound_statement "{\n      if ((uVar1 & 0xe000) != 0) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_s__0043226c + -0x2a70);\nLAB_0022f0c4:\n        puVar9 = PTR_LAB_0043220c + 0x44a8;\n        (*(code *)PTR_do_gold_unreachable_004323c4)(puVar9,0x50b,PTR_s__0043226c + -0x2a84);\n                    /* catch() { ... } // from try @ 0022ec68 with catch @ 0022f0e0 */\n        if (_is_global != acStack_38) {\n          (*(code *)PTR_operator_delete_0043228c)(_is_global);\n        }\n        uVar5 = (*(code *)PTR__Unwind_Resume_00432258)(puVar9);\n        return (bool)uVar5;\n      }\n      pOVar10 = (this->u1_).output_segment;\n      if ((int)pOVar10->output_lists_[3].\n               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n               _M_end_of_storage < 0) goto LAB_0022ecdc;\n      if (((int)(uVar1 << 0x1d) < 0) && (uVar1 = (this->u2_).shndx, uVar1 != 0)) {\n        ppOVar8 = pOVar10->output_lists_[4].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage;\n        if ((uint)((int)pOVar10->output_lists_[5].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_start - (int)ppOVar8 >> 2) <= uVar1) goto LAB_0022f0c4;\n        if (ppOVar8[uVar1] == (Output_data *)0x0) {\n          bVar4 = Symbol_table::is_section_folded(symtab,(Relobj *)pOVar10,uVar1);\n          if (CONCAT31(extraout_var_00,bVar4) == 0) {\n            return false;\n          }\n          uVar1 = *(uint *)&this->field_0x28;\n          if (((uVar1 & 0xe000) == 0) &&\n             (uVar6 = (uVar1 << 0x1c) >> 0x1f,\n             (int)((this->u1_).output_segment)->output_lists_[3].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage < 0)) goto LAB_0022ece0;\n        }\n      }\n      iVar7 = *(int *)(*(int *)puVar9 + 8);\n      if (iVar7 == 0) goto LAB_0022ee04;\n    }" { (if_statement "if ((uVar1 & 0xe000) != 0) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_s__0043226c + -0x2a70);\nLAB_0022f0c4:\n        puVar9 = PTR_LAB_0043220c + 0x44a8;\n        (*(code *)PTR_do_gold_unreachable_004323c4)(puVar9,0x50b,PTR_s__0043226c + -0x2a84);\n                    /* catch() { ... } // from try @ 0022ec68 with catch @ 0022f0e0 */\n        if (_is_global != acStack_38) {\n          (*(code *)PTR_operator_delete_0043228c)(_is_global);\n        }\n        uVar5 = (*(code *)PTR__Unwind_Resume_00432258)(puVar9);\n        return (bool)uVar5;\n      }" if (parenthesized_expression "((uVar1 & 0xe000) != 0)" ( (binary_expression "(uVar1 & 0xe000) != 0" (parenthesized_expression "(uVar1 & 0xe000)" ( (binary_expression "uVar1 & 0xe000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_s__0043226c + -0x2a70);\nLAB_0022f0c4:\n        puVar9 = PTR_LAB_0043220c + 0x44a8;\n        (*(code *)PTR_do_gold_unreachable_004323c4)(puVar9,0x50b,PTR_s__0043226c + -0x2a84);\n                    /* catch() { ... } // from try @ 0022ec68 with catch @ 0022f0e0 */\n        if (_is_global != acStack_38) {\n          (*(code *)PTR_operator_delete_0043228c)(_is_global);\n        }\n        uVar5 = (*(code *)PTR__Unwind_Resume_00432258)(puVar9);\n        return (bool)uVar5;\n      }" { (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_s__0043226c + -0x2a70);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_s__0043226c + -0x2a70)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_s__0043226c + -0x2a70)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5bdc" identifier + number_literal) , number_literal , (binary_expression "PTR_s__0043226c + -0x2a70" identifier + number_literal) ))) ;) (labeled_statement "LAB_0022f0c4:\n        puVar9 = PTR_LAB_0043220c + 0x44a8;" statement_identifier : (expression_statement "puVar9 = PTR_LAB_0043220c + 0x44a8;" (assignment_expression "puVar9 = PTR_LAB_0043220c + 0x44a8" identifier = (binary_expression "PTR_LAB_0043220c + 0x44a8" identifier + number_literal)) ;)) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)(puVar9,0x50b,PTR_s__0043226c + -0x2a84);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)(puVar9,0x50b,PTR_s__0043226c + -0x2a84)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar9,0x50b,PTR_s__0043226c + -0x2a84)" ( identifier , number_literal , (binary_expression "PTR_s__0043226c + -0x2a84" identifier + number_literal) ))) ;) comment (if_statement "if (_is_global != acStack_38) {\n          (*(code *)PTR_operator_delete_0043228c)(_is_global);\n        }" if (parenthesized_expression "(_is_global != acStack_38)" ( (binary_expression "_is_global != acStack_38" identifier != identifier) )) (compound_statement "{\n          (*(code *)PTR_operator_delete_0043228c)(_is_global);\n        }" { (expression_statement "(*(code *)PTR_operator_delete_0043228c)(_is_global);" (call_expression "(*(code *)PTR_operator_delete_0043228c)(_is_global)" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" ( (pointer_expression "*(code *)PTR_operator_delete_0043228c" * (cast_expression "(code *)PTR_operator_delete_0043228c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(_is_global)" ( identifier ))) ;) })) (expression_statement "uVar5 = (*(code *)PTR__Unwind_Resume_00432258)(puVar9);" (assignment_expression "uVar5 = (*(code *)PTR__Unwind_Resume_00432258)(puVar9)" identifier = (call_expression "(*(code *)PTR__Unwind_Resume_00432258)(puVar9)" (parenthesized_expression "(*(code *)PTR__Unwind_Resume_00432258)" ( (pointer_expression "*(code *)PTR__Unwind_Resume_00432258" * (cast_expression "(code *)PTR__Unwind_Resume_00432258" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar9)" ( identifier )))) ;) (return_statement "return (bool)uVar5;" return (cast_expression "(bool)uVar5" ( (type_descriptor "bool" primitive_type) ) identifier) ;) })) (expression_statement "pOVar10 = (this->u1_).output_segment;" (assignment_expression "pOVar10 = (this->u1_).output_segment" identifier = (field_expression "(this->u1_).output_segment" (parenthesized_expression "(this->u1_)" ( (field_expression "this->u1_" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((int)pOVar10->output_lists_[3].\n               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n               _M_end_of_storage < 0) goto LAB_0022ecdc;" if (parenthesized_expression "((int)pOVar10->output_lists_[3].\n               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n               _M_end_of_storage < 0)" ( (binary_expression "(int)pOVar10->output_lists_[3].\n               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n               _M_end_of_storage < 0" (field_expression "(int)pOVar10->output_lists_[3].\n               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n               _M_end_of_storage" (field_expression "(int)pOVar10->output_lists_[3].\n               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl" (binary_expression "(int)pOVar10->output_lists_[3].\n               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "(int)pOVar10->output_lists_[3].\n               super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "(int)pOVar10->output_lists_[3].\n               super__Vector_base<gold::Output_data*,_std" (binary_expression "(int)pOVar10->output_lists_[3].\n               super__Vector_base<gold" (cast_expression "(int)pOVar10->output_lists_[3].\n               super__Vector_base" ( (type_descriptor "int" primitive_type) ) (field_expression "pOVar10->output_lists_[3].\n               super__Vector_base" (subscript_expression "pOVar10->output_lists_[3]" (field_expression "pOVar10->output_lists_" identifier -> field_identifier) [ number_literal ]) . field_identifier)) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) < number_literal) )) (goto_statement "goto LAB_0022ecdc;" goto statement_identifier ;)) (if_statement "if (((int)(uVar1 << 0x1d) < 0) && (uVar1 = (this->u2_).shndx, uVar1 != 0)) {\n        ppOVar8 = pOVar10->output_lists_[4].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage;\n        if ((uint)((int)pOVar10->output_lists_[5].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_start - (int)ppOVar8 >> 2) <= uVar1) goto LAB_0022f0c4;\n        if (ppOVar8[uVar1] == (Output_data *)0x0) {\n          bVar4 = Symbol_table::is_section_folded(symtab,(Relobj *)pOVar10,uVar1);\n          if (CONCAT31(extraout_var_00,bVar4) == 0) {\n            return false;\n          }\n          uVar1 = *(uint *)&this->field_0x28;\n          if (((uVar1 & 0xe000) == 0) &&\n             (uVar6 = (uVar1 << 0x1c) >> 0x1f,\n             (int)((this->u1_).output_segment)->output_lists_[3].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage < 0)) goto LAB_0022ece0;\n        }\n      }" if (parenthesized_expression "(((int)(uVar1 << 0x1d) < 0) && (uVar1 = (this->u2_).shndx, uVar1 != 0))" ( (binary_expression "((int)(uVar1 << 0x1d) < 0) && (uVar1 = (this->u2_).shndx, uVar1 != 0)" (parenthesized_expression "((int)(uVar1 << 0x1d) < 0)" ( (binary_expression "(int)(uVar1 << 0x1d) < 0" (cast_expression "(int)(uVar1 << 0x1d)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar1 << 0x1d)" ( (binary_expression "uVar1 << 0x1d" identifier << number_literal) ))) < number_literal) )) && (parenthesized_expression "(uVar1 = (this->u2_).shndx, uVar1 != 0)" ( (comma_expression "uVar1 = (this->u2_).shndx, uVar1 != 0" (assignment_expression "uVar1 = (this->u2_).shndx" identifier = (field_expression "(this->u2_).shndx" (parenthesized_expression "(this->u2_)" ( (field_expression "this->u2_" identifier -> field_identifier) )) . field_identifier)) , (binary_expression "uVar1 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n        ppOVar8 = pOVar10->output_lists_[4].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage;\n        if ((uint)((int)pOVar10->output_lists_[5].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_start - (int)ppOVar8 >> 2) <= uVar1) goto LAB_0022f0c4;\n        if (ppOVar8[uVar1] == (Output_data *)0x0) {\n          bVar4 = Symbol_table::is_section_folded(symtab,(Relobj *)pOVar10,uVar1);\n          if (CONCAT31(extraout_var_00,bVar4) == 0) {\n            return false;\n          }\n          uVar1 = *(uint *)&this->field_0x28;\n          if (((uVar1 & 0xe000) == 0) &&\n             (uVar6 = (uVar1 << 0x1c) >> 0x1f,\n             (int)((this->u1_).output_segment)->output_lists_[3].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage < 0)) goto LAB_0022ece0;\n        }\n      }" { (expression_statement "ppOVar8 = pOVar10->output_lists_[4].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage;" (field_expression "ppOVar8 = pOVar10->output_lists_[4].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage" (field_expression "ppOVar8 = pOVar10->output_lists_[4].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl" (binary_expression "ppOVar8 = pOVar10->output_lists_[4].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "ppOVar8 = pOVar10->output_lists_[4].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "ppOVar8 = pOVar10->output_lists_[4].\n                  super__Vector_base<gold::Output_data*,_std" (assignment_expression "ppOVar8 = pOVar10->output_lists_[4].\n                  super__Vector_base<gold" identifier = (binary_expression "pOVar10->output_lists_[4].\n                  super__Vector_base<gold" (field_expression "pOVar10->output_lists_[4].\n                  super__Vector_base" (subscript_expression "pOVar10->output_lists_[4]" (field_expression "pOVar10->output_lists_" identifier -> field_identifier) [ number_literal ]) . 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 ((uint)((int)pOVar10->output_lists_[5].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_start - (int)ppOVar8 >> 2) <= uVar1) goto LAB_0022f0c4;" if (parenthesized_expression "((uint)((int)pOVar10->output_lists_[5].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_start - (int)ppOVar8 >> 2) <= uVar1)" ( (binary_expression "(uint)((int)pOVar10->output_lists_[5].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_start - (int)ppOVar8 >> 2) <= uVar1" (call_expression "(uint)((int)pOVar10->output_lists_[5].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_start - (int)ppOVar8 >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pOVar10->output_lists_[5].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_start - (int)ppOVar8 >> 2)" ( (binary_expression "(int)pOVar10->output_lists_[5].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_start - (int)ppOVar8 >> 2" (binary_expression "(int)pOVar10->output_lists_[5].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_start - (int)ppOVar8" (field_expression "(int)pOVar10->output_lists_[5].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_start" (field_expression "(int)pOVar10->output_lists_[5].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl" (binary_expression "(int)pOVar10->output_lists_[5].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "(int)pOVar10->output_lists_[5].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "(int)pOVar10->output_lists_[5].\n                        super__Vector_base<gold::Output_data*,_std" (binary_expression "(int)pOVar10->output_lists_[5].\n                        super__Vector_base<gold" (cast_expression "(int)pOVar10->output_lists_[5].\n                        super__Vector_base" ( (type_descriptor "int" primitive_type) ) (field_expression "pOVar10->output_lists_[5].\n                        super__Vector_base" (subscript_expression "pOVar10->output_lists_[5]" (field_expression "pOVar10->output_lists_" identifier -> field_identifier) [ number_literal ]) . field_identifier)) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) - (cast_expression "(int)ppOVar8" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) ))) <= identifier) )) (goto_statement "goto LAB_0022f0c4;" goto statement_identifier ;)) (if_statement "if (ppOVar8[uVar1] == (Output_data *)0x0) {\n          bVar4 = Symbol_table::is_section_folded(symtab,(Relobj *)pOVar10,uVar1);\n          if (CONCAT31(extraout_var_00,bVar4) == 0) {\n            return false;\n          }\n          uVar1 = *(uint *)&this->field_0x28;\n          if (((uVar1 & 0xe000) == 0) &&\n             (uVar6 = (uVar1 << 0x1c) >> 0x1f,\n             (int)((this->u1_).output_segment)->output_lists_[3].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage < 0)) goto LAB_0022ece0;\n        }" if (parenthesized_expression "(ppOVar8[uVar1] == (Output_data *)0x0)" ( (binary_expression "ppOVar8[uVar1] == (Output_data *)0x0" (subscript_expression "ppOVar8[uVar1]" identifier [ identifier ]) == (cast_expression "(Output_data *)0x0" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          bVar4 = Symbol_table::is_section_folded(symtab,(Relobj *)pOVar10,uVar1);\n          if (CONCAT31(extraout_var_00,bVar4) == 0) {\n            return false;\n          }\n          uVar1 = *(uint *)&this->field_0x28;\n          if (((uVar1 & 0xe000) == 0) &&\n             (uVar6 = (uVar1 << 0x1c) >> 0x1f,\n             (int)((this->u1_).output_segment)->output_lists_[3].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage < 0)) goto LAB_0022ece0;\n        }" { (ERROR "bVar4 = Symbol_table::" (assignment_expression "bVar4 = Symbol_table" identifier = identifier) : :) (expression_statement "is_section_folded(symtab,(Relobj *)pOVar10,uVar1);" (call_expression "is_section_folded(symtab,(Relobj *)pOVar10,uVar1)" identifier (argument_list "(symtab,(Relobj *)pOVar10,uVar1)" ( identifier , (cast_expression "(Relobj *)pOVar10" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (if_statement "if (CONCAT31(extraout_var_00,bVar4) == 0) {\n            return false;\n          }" if (parenthesized_expression "(CONCAT31(extraout_var_00,bVar4) == 0)" ( (binary_expression "CONCAT31(extraout_var_00,bVar4) == 0" (call_expression "CONCAT31(extraout_var_00,bVar4)" identifier (argument_list "(extraout_var_00,bVar4)" ( identifier , identifier ))) == number_literal) )) (compound_statement "{\n            return false;\n          }" { (return_statement "return false;" return false ;) })) (expression_statement "uVar1 = *(uint *)&this->field_0x28;" (assignment_expression "uVar1 = *(uint *)&this->field_0x28" identifier = (pointer_expression "*(uint *)&this->field_0x28" * (cast_expression "(uint *)&this->field_0x28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->field_0x28" & (field_expression "this->field_0x28" identifier -> field_identifier))))) ;) (if_statement "if (((uVar1 & 0xe000) == 0) &&\n             (uVar6 = (uVar1 << 0x1c) >> 0x1f,\n             (int)((this->u1_).output_segment)->output_lists_[3].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage < 0)) goto LAB_0022ece0;" if (parenthesized_expression "(((uVar1 & 0xe000) == 0) &&\n             (uVar6 = (uVar1 << 0x1c) >> 0x1f,\n             (int)((this->u1_).output_segment)->output_lists_[3].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage < 0))" ( (binary_expression "((uVar1 & 0xe000) == 0) &&\n             (uVar6 = (uVar1 << 0x1c) >> 0x1f,\n             (int)((this->u1_).output_segment)->output_lists_[3].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage < 0)" (parenthesized_expression "((uVar1 & 0xe000) == 0)" ( (binary_expression "(uVar1 & 0xe000) == 0" (parenthesized_expression "(uVar1 & 0xe000)" ( (binary_expression "uVar1 & 0xe000" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(uVar6 = (uVar1 << 0x1c) >> 0x1f,\n             (int)((this->u1_).output_segment)->output_lists_[3].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage < 0)" ( (ERROR "uVar6 = (uVar1 << 0x1c) >> 0x1f,\n             (int)((this->u1_).output_segment)->output_lists_[3].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::" (comma_expression "uVar6 = (uVar1 << 0x1c) >> 0x1f,\n             (int)((this->u1_).output_segment)->output_lists_[3].\n                  super__Vector_base<gold" (assignment_expression "uVar6 = (uVar1 << 0x1c) >> 0x1f" identifier = (binary_expression "(uVar1 << 0x1c) >> 0x1f" (parenthesized_expression "(uVar1 << 0x1c)" ( (binary_expression "uVar1 << 0x1c" identifier << number_literal) )) >> number_literal)) , (binary_expression "(int)((this->u1_).output_segment)->output_lists_[3].\n                  super__Vector_base<gold" (cast_expression "(int)((this->u1_).output_segment)->output_lists_[3].\n                  super__Vector_base" ( (type_descriptor "int" primitive_type) ) (field_expression "((this->u1_).output_segment)->output_lists_[3].\n                  super__Vector_base" (subscript_expression "((this->u1_).output_segment)->output_lists_[3]" (field_expression "((this->u1_).output_segment)->output_lists_" (parenthesized_expression "((this->u1_).output_segment)" ( (field_expression "(this->u1_).output_segment" (parenthesized_expression "(this->u1_)" ( (field_expression "this->u1_" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) [ number_literal ]) . field_identifier)) < identifier)) : : identifier * , identifier : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Output_data*>_>.\n                  _M_impl._M_end_of_storage < 0" (field_expression "Output_data*>_>.\n                  _M_impl._M_end_of_storage" (field_expression "Output_data*>_>.\n                  _M_impl" (binary_expression "Output_data*>_" identifier * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) < number_literal) ))) )) (goto_statement "goto LAB_0022ece0;" goto statement_identifier ;)) })) })) (expression_statement "iVar7 = *(int *)(*(int *)puVar9 + 8);" (assignment_expression "iVar7 = *(int *)(*(int *)puVar9 + 8)" identifier = (pointer_expression "*(int *)(*(int *)puVar9 + 8)" * (cast_expression "(int *)(*(int *)puVar9 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar9 + 8)" ( (binary_expression "*(int *)puVar9 + 8" (pointer_expression "*(int *)puVar9" * (cast_expression "(int *)puVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ;) (if_statement "if (iVar7 == 0) goto LAB_0022ee04;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0022ee04;" goto statement_identifier ;)) }))) (expression_statement "unaff_s3 = (string *)&is_global;" (assignment_expression "unaff_s3 = (string *)&is_global" identifier = (cast_expression "(string *)&is_global" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&is_global" & identifier))) ;) (ERROR "bVar4 = Version_script_info::" (assignment_expression "bVar4 = Version_script_info" identifier = identifier) : :) (expression_statement "get_symbol_version\n                      ((Version_script_info *)(iVar7 + 0x59b8),this->name_,(string *)0x0,\n                       (bool *)unaff_s3);" (call_expression "get_symbol_version\n                      ((Version_script_info *)(iVar7 + 0x59b8),this->name_,(string *)0x0,\n                       (bool *)unaff_s3)" identifier (argument_list "((Version_script_info *)(iVar7 + 0x59b8),this->name_,(string *)0x0,\n                       (bool *)unaff_s3)" ( (cast_expression "(Version_script_info *)(iVar7 + 0x59b8)" ( (type_descriptor "Version_script_info *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x59b8)" ( (binary_expression "iVar7 + 0x59b8" identifier + number_literal) ))) , (field_expression "this->name_" identifier -> field_identifier) , (cast_expression "(string *)0x0" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(bool *)unaff_s3" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (if_statement "if ((CONCAT31(extraout_var,bVar4) != 0) && (is_global == false)) {\nLAB_0022ec20:\n      if (*(int *)&this->field_0x28 << 0x1c < 0) {\n        uVar2 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x35f0);\n        demangle(unaff_s3,this->name_);\n                    /* try { // try from 0022ec68 to 0022ec6f has its CatchHandler @ 0022f0e0 */\n        (*(code *)PTR_gold_warning_0043245c)(uVar2,_is_global);\n        if (_is_global == acStack_38) {\n          return false;\n        }\n        (*(code *)PTR_operator_delete_0043228c)();\n        return false;\n      }\n      goto LAB_0022eb68;\n    }" if (parenthesized_expression "((CONCAT31(extraout_var,bVar4) != 0) && (is_global == false))" ( (binary_expression "(CONCAT31(extraout_var,bVar4) != 0) && (is_global == false)" (parenthesized_expression "(CONCAT31(extraout_var,bVar4) != 0)" ( (binary_expression "CONCAT31(extraout_var,bVar4) != 0" (call_expression "CONCAT31(extraout_var,bVar4)" identifier (argument_list "(extraout_var,bVar4)" ( identifier , identifier ))) != number_literal) )) && (parenthesized_expression "(is_global == false)" ( (binary_expression "is_global == false" identifier == false) ))) )) (compound_statement "{\nLAB_0022ec20:\n      if (*(int *)&this->field_0x28 << 0x1c < 0) {\n        uVar2 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x35f0);\n        demangle(unaff_s3,this->name_);\n                    /* try { // try from 0022ec68 to 0022ec6f has its CatchHandler @ 0022f0e0 */\n        (*(code *)PTR_gold_warning_0043245c)(uVar2,_is_global);\n        if (_is_global == acStack_38) {\n          return false;\n        }\n        (*(code *)PTR_operator_delete_0043228c)();\n        return false;\n      }\n      goto LAB_0022eb68;\n    }" { (labeled_statement "LAB_0022ec20:\n      if (*(int *)&this->field_0x28 << 0x1c < 0) {\n        uVar2 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x35f0);\n        demangle(unaff_s3,this->name_);\n                    /* try { // try from 0022ec68 to 0022ec6f has its CatchHandler @ 0022f0e0 */\n        (*(code *)PTR_gold_warning_0043245c)(uVar2,_is_global);\n        if (_is_global == acStack_38) {\n          return false;\n        }\n        (*(code *)PTR_operator_delete_0043228c)();\n        return false;\n      }" statement_identifier : (if_statement "if (*(int *)&this->field_0x28 << 0x1c < 0) {\n        uVar2 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x35f0);\n        demangle(unaff_s3,this->name_);\n                    /* try { // try from 0022ec68 to 0022ec6f has its CatchHandler @ 0022f0e0 */\n        (*(code *)PTR_gold_warning_0043245c)(uVar2,_is_global);\n        if (_is_global == acStack_38) {\n          return false;\n        }\n        (*(code *)PTR_operator_delete_0043228c)();\n        return false;\n      }" if (parenthesized_expression "(*(int *)&this->field_0x28 << 0x1c < 0)" ( (binary_expression "*(int *)&this->field_0x28 << 0x1c < 0" (binary_expression "*(int *)&this->field_0x28 << 0x1c" (pointer_expression "*(int *)&this->field_0x28" * (cast_expression "(int *)&this->field_0x28" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->field_0x28" & (field_expression "this->field_0x28" identifier -> field_identifier)))) << number_literal) < number_literal) )) (compound_statement "{\n        uVar2 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x35f0);\n        demangle(unaff_s3,this->name_);\n                    /* try { // try from 0022ec68 to 0022ec6f has its CatchHandler @ 0022f0e0 */\n        (*(code *)PTR_gold_warning_0043245c)(uVar2,_is_global);\n        if (_is_global == acStack_38) {\n          return false;\n        }\n        (*(code *)PTR_operator_delete_0043228c)();\n        return false;\n      }" { (expression_statement "uVar2 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x35f0);" (assignment_expression "uVar2 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x35f0)" identifier = (call_expression "(*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x35f0)" (parenthesized_expression "(*(code *)PTR_gettext_00436818)" ( (pointer_expression "*(code *)PTR_gettext_00436818" * (cast_expression "(code *)PTR_gettext_00436818" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s__0043226c + -0x35f0)" ( (binary_expression "PTR_s__0043226c + -0x35f0" identifier + number_literal) )))) ;) (expression_statement "demangle(unaff_s3,this->name_);" (call_expression "demangle(unaff_s3,this->name_)" identifier (argument_list "(unaff_s3,this->name_)" ( identifier , (field_expression "this->name_" identifier -> field_identifier) ))) ;) comment (expression_statement "(*(code *)PTR_gold_warning_0043245c)(uVar2,_is_global);" (call_expression "(*(code *)PTR_gold_warning_0043245c)(uVar2,_is_global)" (parenthesized_expression "(*(code *)PTR_gold_warning_0043245c)" ( (pointer_expression "*(code *)PTR_gold_warning_0043245c" * (cast_expression "(code *)PTR_gold_warning_0043245c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar2,_is_global)" ( identifier , identifier ))) ;) (if_statement "if (_is_global == acStack_38) {\n          return false;\n        }" if (parenthesized_expression "(_is_global == acStack_38)" ( (binary_expression "_is_global == acStack_38" identifier == identifier) )) (compound_statement "{\n          return false;\n        }" { (return_statement "return false;" return false ;) })) (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" ( (pointer_expression "*(code *)PTR_operator_delete_0043228c" * (cast_expression "(code *)PTR_operator_delete_0043228c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (return_statement "return false;" return false ;) }))) (goto_statement "goto LAB_0022eb68;" goto statement_identifier ;) })) (expression_statement "unaff_s4 = *(int *)(*(int *)puVar9 + 8);" (assignment_expression "unaff_s4 = *(int *)(*(int *)puVar9 + 8)" identifier = (pointer_expression "*(int *)(*(int *)puVar9 + 8)" * (cast_expression "(int *)(*(int *)puVar9 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar9 + 8)" ( (binary_expression "*(int *)puVar9 + 8" (pointer_expression "*(int *)puVar9" * (cast_expression "(int *)puVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ;) (if_statement "if (unaff_s4 != 0) {\n      unaff_s6 = acStack_38;\n      if (*(int *)(unaff_s4 + 0x1348) != 0) goto LAB_0022ee18;\n      goto LAB_0022ecd8;\n    }" if (parenthesized_expression "(unaff_s4 != 0)" ( (binary_expression "unaff_s4 != 0" identifier != number_literal) )) (compound_statement "{\n      unaff_s6 = acStack_38;\n      if (*(int *)(unaff_s4 + 0x1348) != 0) goto LAB_0022ee18;\n      goto LAB_0022ecd8;\n    }" { (expression_statement "unaff_s6 = acStack_38;" (assignment_expression "unaff_s6 = acStack_38" identifier = identifier) ;) (if_statement "if (*(int *)(unaff_s4 + 0x1348) != 0) goto LAB_0022ee18;" if (parenthesized_expression "(*(int *)(unaff_s4 + 0x1348) != 0)" ( (binary_expression "*(int *)(unaff_s4 + 0x1348) != 0" (pointer_expression "*(int *)(unaff_s4 + 0x1348)" * (cast_expression "(int *)(unaff_s4 + 0x1348)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s4 + 0x1348)" ( (binary_expression "unaff_s4 + 0x1348" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_0022ee18;" goto statement_identifier ;)) (goto_statement "goto LAB_0022ecd8;" goto statement_identifier ;) })) })) (labeled_statement "LAB_0022ee04:\n  do {\n    do {\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_s__0043226c + -0x2a30);\nLAB_0022ee18:\n      pcVar12 = this->name_;\n      _is_global = unaff_s6;\n      if (pcVar12 == (char *)0x0) {\n        pcVar11 = (char *)0xffffffff;\n      }\n      else {\n        iVar7 = (*(code *)PTR_strlen_0043677c)(pcVar12);\n        pcVar11 = pcVar12 + iVar7;\n      }\n      (*(code *)PTR__M_construct<char_const*>_00432488)(unaff_s3,pcVar12,pcVar11,0);\n      (*(code *)PTR_find_00433360)(local_28,unaff_s4 + 0x133c,unaff_s3);\n      if (local_28[0] != 0) {\n        if (_is_global != unaff_s6) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n        goto LAB_0022ec20;\n      }\n      if (_is_global != unaff_s6) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\nLAB_0022ecd8:\n      uVar1 = *(uint *)&this->field_0x28;\nLAB_0022ecdc:\n      uVar6 = (uVar1 << 0x1c) >> 0x1f;\nLAB_0022ece0:\n      if (uVar6 != 0) {\n        return false;\n      }\n      iVar7 = *(int *)(*(int *)puVar9 + 8);\n    } while (iVar7 == 0);\n    if (*(char *)(iVar7 + 0xe8d) == '\0') {\nLAB_0022eeb4:\n      if ((*(char *)(iVar7 + 0xf09) == '\0') && (*(char *)(iVar7 + 0xf85) == '\0')) break;\n      if ((uVar1 & 0xe000) == 0) {\n        pOVar10 = (this->u1_).output_segment;\n        goto LAB_0022ed34;\n      }\n    }\n    else {\n      if (((uVar1 & 0xe000) != 0) ||\n         (pOVar10 = (this->u1_).output_segment,\n         -1 < (int)pOVar10->output_lists_[3].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl._M_end_of_storage)) {\n        if (uVar1 >> 0x1c != 1) goto LAB_0022eeb4;\n        goto LAB_0022eb68;\n      }\n      if ((*(char *)(iVar7 + 0xf09) != '\0') || (*(char *)(iVar7 + 0xf85) == '\0')) break;\nLAB_0022ed34:\n      if ((int)pOVar10->output_lists_[3].\n               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n               _M_end_of_storage < 0) break;\n    }\n    unaff_s3 = (string *)(*(code *)PTR_cplus_demangle_004335b0)(this->name_,3);\n    if (unaff_s3 != (string *)0x0) {\n      unaff_s4 = *(int *)(*(int *)puVar9 + 8);\n      if (unaff_s4 == 0) goto LAB_0022ee04;\n      uVar3 = (uint)*(byte *)(unaff_s4 + 0xf09);\n      if (((uVar3 != 0) &&\n          ((iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35d0,0xc),\n           iVar7 == 0 ||\n           (iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35c0,0xf),\n           iVar7 == 0)))) ||\n         ((uVar3 = (uint)*(byte *)(unaff_s4 + 0xf85), uVar3 != 0 &&\n          ((iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35b0,0x11),\n           iVar7 == 0 ||\n           (iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x359c,0xc),\n           iVar7 == 0)))))) {\n        (*(code *)PTR_free_00436800)(unaff_s3);\n        goto LAB_0022eb68;\n      }\n      (*(code *)PTR_free_00436800)(unaff_s3);\n    }\n    iVar7 = *(int *)(*(int *)puVar9 + 8);\n  } while (iVar7 == 0);" statement_identifier : (do_statement "do {\n    do {\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_s__0043226c + -0x2a30);\nLAB_0022ee18:\n      pcVar12 = this->name_;\n      _is_global = unaff_s6;\n      if (pcVar12 == (char *)0x0) {\n        pcVar11 = (char *)0xffffffff;\n      }\n      else {\n        iVar7 = (*(code *)PTR_strlen_0043677c)(pcVar12);\n        pcVar11 = pcVar12 + iVar7;\n      }\n      (*(code *)PTR__M_construct<char_const*>_00432488)(unaff_s3,pcVar12,pcVar11,0);\n      (*(code *)PTR_find_00433360)(local_28,unaff_s4 + 0x133c,unaff_s3);\n      if (local_28[0] != 0) {\n        if (_is_global != unaff_s6) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n        goto LAB_0022ec20;\n      }\n      if (_is_global != unaff_s6) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\nLAB_0022ecd8:\n      uVar1 = *(uint *)&this->field_0x28;\nLAB_0022ecdc:\n      uVar6 = (uVar1 << 0x1c) >> 0x1f;\nLAB_0022ece0:\n      if (uVar6 != 0) {\n        return false;\n      }\n      iVar7 = *(int *)(*(int *)puVar9 + 8);\n    } while (iVar7 == 0);\n    if (*(char *)(iVar7 + 0xe8d) == '\0') {\nLAB_0022eeb4:\n      if ((*(char *)(iVar7 + 0xf09) == '\0') && (*(char *)(iVar7 + 0xf85) == '\0')) break;\n      if ((uVar1 & 0xe000) == 0) {\n        pOVar10 = (this->u1_).output_segment;\n        goto LAB_0022ed34;\n      }\n    }\n    else {\n      if (((uVar1 & 0xe000) != 0) ||\n         (pOVar10 = (this->u1_).output_segment,\n         -1 < (int)pOVar10->output_lists_[3].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl._M_end_of_storage)) {\n        if (uVar1 >> 0x1c != 1) goto LAB_0022eeb4;\n        goto LAB_0022eb68;\n      }\n      if ((*(char *)(iVar7 + 0xf09) != '\0') || (*(char *)(iVar7 + 0xf85) == '\0')) break;\nLAB_0022ed34:\n      if ((int)pOVar10->output_lists_[3].\n               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n               _M_end_of_storage < 0) break;\n    }\n    unaff_s3 = (string *)(*(code *)PTR_cplus_demangle_004335b0)(this->name_,3);\n    if (unaff_s3 != (string *)0x0) {\n      unaff_s4 = *(int *)(*(int *)puVar9 + 8);\n      if (unaff_s4 == 0) goto LAB_0022ee04;\n      uVar3 = (uint)*(byte *)(unaff_s4 + 0xf09);\n      if (((uVar3 != 0) &&\n          ((iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35d0,0xc),\n           iVar7 == 0 ||\n           (iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35c0,0xf),\n           iVar7 == 0)))) ||\n         ((uVar3 = (uint)*(byte *)(unaff_s4 + 0xf85), uVar3 != 0 &&\n          ((iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35b0,0x11),\n           iVar7 == 0 ||\n           (iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x359c,0xc),\n           iVar7 == 0)))))) {\n        (*(code *)PTR_free_00436800)(unaff_s3);\n        goto LAB_0022eb68;\n      }\n      (*(code *)PTR_free_00436800)(unaff_s3);\n    }\n    iVar7 = *(int *)(*(int *)puVar9 + 8);\n  } while (iVar7 == 0);" do (compound_statement "{\n    do {\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_s__0043226c + -0x2a30);\nLAB_0022ee18:\n      pcVar12 = this->name_;\n      _is_global = unaff_s6;\n      if (pcVar12 == (char *)0x0) {\n        pcVar11 = (char *)0xffffffff;\n      }\n      else {\n        iVar7 = (*(code *)PTR_strlen_0043677c)(pcVar12);\n        pcVar11 = pcVar12 + iVar7;\n      }\n      (*(code *)PTR__M_construct<char_const*>_00432488)(unaff_s3,pcVar12,pcVar11,0);\n      (*(code *)PTR_find_00433360)(local_28,unaff_s4 + 0x133c,unaff_s3);\n      if (local_28[0] != 0) {\n        if (_is_global != unaff_s6) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n        goto LAB_0022ec20;\n      }\n      if (_is_global != unaff_s6) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\nLAB_0022ecd8:\n      uVar1 = *(uint *)&this->field_0x28;\nLAB_0022ecdc:\n      uVar6 = (uVar1 << 0x1c) >> 0x1f;\nLAB_0022ece0:\n      if (uVar6 != 0) {\n        return false;\n      }\n      iVar7 = *(int *)(*(int *)puVar9 + 8);\n    } while (iVar7 == 0);\n    if (*(char *)(iVar7 + 0xe8d) == '\0') {\nLAB_0022eeb4:\n      if ((*(char *)(iVar7 + 0xf09) == '\0') && (*(char *)(iVar7 + 0xf85) == '\0')) break;\n      if ((uVar1 & 0xe000) == 0) {\n        pOVar10 = (this->u1_).output_segment;\n        goto LAB_0022ed34;\n      }\n    }\n    else {\n      if (((uVar1 & 0xe000) != 0) ||\n         (pOVar10 = (this->u1_).output_segment,\n         -1 < (int)pOVar10->output_lists_[3].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl._M_end_of_storage)) {\n        if (uVar1 >> 0x1c != 1) goto LAB_0022eeb4;\n        goto LAB_0022eb68;\n      }\n      if ((*(char *)(iVar7 + 0xf09) != '\0') || (*(char *)(iVar7 + 0xf85) == '\0')) break;\nLAB_0022ed34:\n      if ((int)pOVar10->output_lists_[3].\n               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n               _M_end_of_storage < 0) break;\n    }\n    unaff_s3 = (string *)(*(code *)PTR_cplus_demangle_004335b0)(this->name_,3);\n    if (unaff_s3 != (string *)0x0) {\n      unaff_s4 = *(int *)(*(int *)puVar9 + 8);\n      if (unaff_s4 == 0) goto LAB_0022ee04;\n      uVar3 = (uint)*(byte *)(unaff_s4 + 0xf09);\n      if (((uVar3 != 0) &&\n          ((iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35d0,0xc),\n           iVar7 == 0 ||\n           (iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35c0,0xf),\n           iVar7 == 0)))) ||\n         ((uVar3 = (uint)*(byte *)(unaff_s4 + 0xf85), uVar3 != 0 &&\n          ((iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35b0,0x11),\n           iVar7 == 0 ||\n           (iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x359c,0xc),\n           iVar7 == 0)))))) {\n        (*(code *)PTR_free_00436800)(unaff_s3);\n        goto LAB_0022eb68;\n      }\n      (*(code *)PTR_free_00436800)(unaff_s3);\n    }\n    iVar7 = *(int *)(*(int *)puVar9 + 8);\n  }" { (do_statement "do {\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_s__0043226c + -0x2a30);\nLAB_0022ee18:\n      pcVar12 = this->name_;\n      _is_global = unaff_s6;\n      if (pcVar12 == (char *)0x0) {\n        pcVar11 = (char *)0xffffffff;\n      }\n      else {\n        iVar7 = (*(code *)PTR_strlen_0043677c)(pcVar12);\n        pcVar11 = pcVar12 + iVar7;\n      }\n      (*(code *)PTR__M_construct<char_const*>_00432488)(unaff_s3,pcVar12,pcVar11,0);\n      (*(code *)PTR_find_00433360)(local_28,unaff_s4 + 0x133c,unaff_s3);\n      if (local_28[0] != 0) {\n        if (_is_global != unaff_s6) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n        goto LAB_0022ec20;\n      }\n      if (_is_global != unaff_s6) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\nLAB_0022ecd8:\n      uVar1 = *(uint *)&this->field_0x28;\nLAB_0022ecdc:\n      uVar6 = (uVar1 << 0x1c) >> 0x1f;\nLAB_0022ece0:\n      if (uVar6 != 0) {\n        return false;\n      }\n      iVar7 = *(int *)(*(int *)puVar9 + 8);\n    } while (iVar7 == 0);" do (compound_statement "{\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_s__0043226c + -0x2a30);\nLAB_0022ee18:\n      pcVar12 = this->name_;\n      _is_global = unaff_s6;\n      if (pcVar12 == (char *)0x0) {\n        pcVar11 = (char *)0xffffffff;\n      }\n      else {\n        iVar7 = (*(code *)PTR_strlen_0043677c)(pcVar12);\n        pcVar11 = pcVar12 + iVar7;\n      }\n      (*(code *)PTR__M_construct<char_const*>_00432488)(unaff_s3,pcVar12,pcVar11,0);\n      (*(code *)PTR_find_00433360)(local_28,unaff_s4 + 0x133c,unaff_s3);\n      if (local_28[0] != 0) {\n        if (_is_global != unaff_s6) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n        goto LAB_0022ec20;\n      }\n      if (_is_global != unaff_s6) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\nLAB_0022ecd8:\n      uVar1 = *(uint *)&this->field_0x28;\nLAB_0022ecdc:\n      uVar6 = (uVar1 << 0x1c) >> 0x1f;\nLAB_0022ece0:\n      if (uVar6 != 0) {\n        return false;\n      }\n      iVar7 = *(int *)(*(int *)puVar9 + 8);\n    }" { (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_s__0043226c + -0x2a30);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_s__0043226c + -0x2a30)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_s__0043226c + -0x2a30)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5cec" identifier + number_literal) , number_literal , (binary_expression "PTR_s__0043226c + -0x2a30" identifier + number_literal) ))) ;) (labeled_statement "LAB_0022ee18:\n      pcVar12 = this->name_;" statement_identifier : (expression_statement "pcVar12 = this->name_;" (assignment_expression "pcVar12 = this->name_" identifier = (field_expression "this->name_" identifier -> field_identifier)) ;)) (expression_statement "_is_global = unaff_s6;" (assignment_expression "_is_global = unaff_s6" identifier = identifier) ;) (if_statement "if (pcVar12 == (char *)0x0) {\n        pcVar11 = (char *)0xffffffff;\n      }\n      else {\n        iVar7 = (*(code *)PTR_strlen_0043677c)(pcVar12);\n        pcVar11 = pcVar12 + iVar7;\n      }" if (parenthesized_expression "(pcVar12 == (char *)0x0)" ( (binary_expression "pcVar12 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pcVar11 = (char *)0xffffffff;\n      }" { (expression_statement "pcVar11 = (char *)0xffffffff;" (assignment_expression "pcVar11 = (char *)0xffffffff" identifier = (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n        iVar7 = (*(code *)PTR_strlen_0043677c)(pcVar12);\n        pcVar11 = pcVar12 + iVar7;\n      }" else (compound_statement "{\n        iVar7 = (*(code *)PTR_strlen_0043677c)(pcVar12);\n        pcVar11 = pcVar12 + iVar7;\n      }" { (expression_statement "iVar7 = (*(code *)PTR_strlen_0043677c)(pcVar12);" (assignment_expression "iVar7 = (*(code *)PTR_strlen_0043677c)(pcVar12)" identifier = (call_expression "(*(code *)PTR_strlen_0043677c)(pcVar12)" (parenthesized_expression "(*(code *)PTR_strlen_0043677c)" ( (pointer_expression "*(code *)PTR_strlen_0043677c" * (cast_expression "(code *)PTR_strlen_0043677c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar12)" ( identifier )))) ;) (expression_statement "pcVar11 = pcVar12 + iVar7;" (assignment_expression "pcVar11 = pcVar12 + iVar7" identifier = (binary_expression "pcVar12 + iVar7" identifier + identifier)) ;) }))) (expression_statement "(*(code *)PTR__M_construct<char_const*>_00432488)(unaff_s3,pcVar12,pcVar11,0);" (call_expression "(*(code *)PTR__M_construct<char_const*>_00432488)(unaff_s3,pcVar12,pcVar11,0)" (parenthesized_expression "(*(code *)PTR__M_construct<char_const*>_00432488)" ( (binary_expression "*(code *)PTR__M_construct<char_const*>_00432488" (binary_expression "*(code *)PTR__M_construct<char_const" (pointer_expression "*(code *)PTR__M_construct" * (cast_expression "(code *)PTR__M_construct" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < identifier) (ERROR "*" *) > identifier) )) (argument_list "(unaff_s3,pcVar12,pcVar11,0)" ( identifier , identifier , identifier , number_literal ))) ;) (expression_statement "(*(code *)PTR_find_00433360)(local_28,unaff_s4 + 0x133c,unaff_s3);" (call_expression "(*(code *)PTR_find_00433360)(local_28,unaff_s4 + 0x133c,unaff_s3)" (parenthesized_expression "(*(code *)PTR_find_00433360)" ( (pointer_expression "*(code *)PTR_find_00433360" * (cast_expression "(code *)PTR_find_00433360" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_28,unaff_s4 + 0x133c,unaff_s3)" ( identifier , (binary_expression "unaff_s4 + 0x133c" identifier + number_literal) , identifier ))) ;) (if_statement "if (local_28[0] != 0) {\n        if (_is_global != unaff_s6) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n        goto LAB_0022ec20;\n      }" if (parenthesized_expression "(local_28[0] != 0)" ( (binary_expression "local_28[0] != 0" (subscript_expression "local_28[0]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        if (_is_global != unaff_s6) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n        goto LAB_0022ec20;\n      }" { (if_statement "if (_is_global != unaff_s6) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }" if (parenthesized_expression "(_is_global != unaff_s6)" ( (binary_expression "_is_global != unaff_s6" identifier != identifier) )) (compound_statement "{\n          (*(code *)PTR_operator_delete_0043228c)();\n        }" { (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" ( (pointer_expression "*(code *)PTR_operator_delete_0043228c" * (cast_expression "(code *)PTR_operator_delete_0043228c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (goto_statement "goto LAB_0022ec20;" goto statement_identifier ;) })) (if_statement "if (_is_global != unaff_s6) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }" if (parenthesized_expression "(_is_global != unaff_s6)" ( (binary_expression "_is_global != unaff_s6" identifier != identifier) )) (compound_statement "{\n        (*(code *)PTR_operator_delete_0043228c)();\n      }" { (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" ( (pointer_expression "*(code *)PTR_operator_delete_0043228c" * (cast_expression "(code *)PTR_operator_delete_0043228c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (labeled_statement "LAB_0022ecd8:\n      uVar1 = *(uint *)&this->field_0x28;" statement_identifier : (expression_statement "uVar1 = *(uint *)&this->field_0x28;" (assignment_expression "uVar1 = *(uint *)&this->field_0x28" identifier = (pointer_expression "*(uint *)&this->field_0x28" * (cast_expression "(uint *)&this->field_0x28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->field_0x28" & (field_expression "this->field_0x28" identifier -> field_identifier))))) ;)) (labeled_statement "LAB_0022ecdc:\n      uVar6 = (uVar1 << 0x1c) >> 0x1f;" statement_identifier : (expression_statement "uVar6 = (uVar1 << 0x1c) >> 0x1f;" (assignment_expression "uVar6 = (uVar1 << 0x1c) >> 0x1f" identifier = (binary_expression "(uVar1 << 0x1c) >> 0x1f" (parenthesized_expression "(uVar1 << 0x1c)" ( (binary_expression "uVar1 << 0x1c" identifier << number_literal) )) >> number_literal)) ;)) (labeled_statement "LAB_0022ece0:\n      if (uVar6 != 0) {\n        return false;\n      }" statement_identifier : (if_statement "if (uVar6 != 0) {\n        return false;\n      }" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (compound_statement "{\n        return false;\n      }" { (return_statement "return false;" return false ;) }))) (expression_statement "iVar7 = *(int *)(*(int *)puVar9 + 8);" (assignment_expression "iVar7 = *(int *)(*(int *)puVar9 + 8)" identifier = (pointer_expression "*(int *)(*(int *)puVar9 + 8)" * (cast_expression "(int *)(*(int *)puVar9 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar9 + 8)" ( (binary_expression "*(int *)puVar9 + 8" (pointer_expression "*(int *)puVar9" * (cast_expression "(int *)puVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ;) }) while (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) ;) (if_statement "if (*(char *)(iVar7 + 0xe8d) == '\0') {\nLAB_0022eeb4:\n      if ((*(char *)(iVar7 + 0xf09) == '\0') && (*(char *)(iVar7 + 0xf85) == '\0')) break;\n      if ((uVar1 & 0xe000) == 0) {\n        pOVar10 = (this->u1_).output_segment;\n        goto LAB_0022ed34;\n      }\n    }\n    else {\n      if (((uVar1 & 0xe000) != 0) ||\n         (pOVar10 = (this->u1_).output_segment,\n         -1 < (int)pOVar10->output_lists_[3].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl._M_end_of_storage)) {\n        if (uVar1 >> 0x1c != 1) goto LAB_0022eeb4;\n        goto LAB_0022eb68;\n      }\n      if ((*(char *)(iVar7 + 0xf09) != '\0') || (*(char *)(iVar7 + 0xf85) == '\0')) break;\nLAB_0022ed34:\n      if ((int)pOVar10->output_lists_[3].\n               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n               _M_end_of_storage < 0) break;\n    }" if (parenthesized_expression "(*(char *)(iVar7 + 0xe8d) == '\0')" ( (binary_expression "*(char *)(iVar7 + 0xe8d) == '\0'" (pointer_expression "*(char *)(iVar7 + 0xe8d)" * (cast_expression "(char *)(iVar7 + 0xe8d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xe8d)" ( (binary_expression "iVar7 + 0xe8d" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0022eeb4:\n      if ((*(char *)(iVar7 + 0xf09) == '\0') && (*(char *)(iVar7 + 0xf85) == '\0')) break;\n      if ((uVar1 & 0xe000) == 0) {\n        pOVar10 = (this->u1_).output_segment;\n        goto LAB_0022ed34;\n      }\n    }" { (labeled_statement "LAB_0022eeb4:\n      if ((*(char *)(iVar7 + 0xf09) == '\0') && (*(char *)(iVar7 + 0xf85) == '\0')) break;" statement_identifier : (if_statement "if ((*(char *)(iVar7 + 0xf09) == '\0') && (*(char *)(iVar7 + 0xf85) == '\0')) break;" if (parenthesized_expression "((*(char *)(iVar7 + 0xf09) == '\0') && (*(char *)(iVar7 + 0xf85) == '\0'))" ( (binary_expression "(*(char *)(iVar7 + 0xf09) == '\0') && (*(char *)(iVar7 + 0xf85) == '\0')" (parenthesized_expression "(*(char *)(iVar7 + 0xf09) == '\0')" ( (binary_expression "*(char *)(iVar7 + 0xf09) == '\0'" (pointer_expression "*(char *)(iVar7 + 0xf09)" * (cast_expression "(char *)(iVar7 + 0xf09)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xf09)" ( (binary_expression "iVar7 + 0xf09" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(char *)(iVar7 + 0xf85) == '\0')" ( (binary_expression "*(char *)(iVar7 + 0xf85) == '\0'" (pointer_expression "*(char *)(iVar7 + 0xf85)" * (cast_expression "(char *)(iVar7 + 0xf85)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xf85)" ( (binary_expression "iVar7 + 0xf85" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (break_statement "break;" break ;))) (if_statement "if ((uVar1 & 0xe000) == 0) {\n        pOVar10 = (this->u1_).output_segment;\n        goto LAB_0022ed34;\n      }" if (parenthesized_expression "((uVar1 & 0xe000) == 0)" ( (binary_expression "(uVar1 & 0xe000) == 0" (parenthesized_expression "(uVar1 & 0xe000)" ( (binary_expression "uVar1 & 0xe000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        pOVar10 = (this->u1_).output_segment;\n        goto LAB_0022ed34;\n      }" { (expression_statement "pOVar10 = (this->u1_).output_segment;" (assignment_expression "pOVar10 = (this->u1_).output_segment" identifier = (field_expression "(this->u1_).output_segment" (parenthesized_expression "(this->u1_)" ( (field_expression "this->u1_" identifier -> field_identifier) )) . field_identifier)) ;) (goto_statement "goto LAB_0022ed34;" goto statement_identifier ;) })) }) (else_clause "else {\n      if (((uVar1 & 0xe000) != 0) ||\n         (pOVar10 = (this->u1_).output_segment,\n         -1 < (int)pOVar10->output_lists_[3].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl._M_end_of_storage)) {\n        if (uVar1 >> 0x1c != 1) goto LAB_0022eeb4;\n        goto LAB_0022eb68;\n      }\n      if ((*(char *)(iVar7 + 0xf09) != '\0') || (*(char *)(iVar7 + 0xf85) == '\0')) break;\nLAB_0022ed34:\n      if ((int)pOVar10->output_lists_[3].\n               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n               _M_end_of_storage < 0) break;\n    }" else (compound_statement "{\n      if (((uVar1 & 0xe000) != 0) ||\n         (pOVar10 = (this->u1_).output_segment,\n         -1 < (int)pOVar10->output_lists_[3].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl._M_end_of_storage)) {\n        if (uVar1 >> 0x1c != 1) goto LAB_0022eeb4;\n        goto LAB_0022eb68;\n      }\n      if ((*(char *)(iVar7 + 0xf09) != '\0') || (*(char *)(iVar7 + 0xf85) == '\0')) break;\nLAB_0022ed34:\n      if ((int)pOVar10->output_lists_[3].\n               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n               _M_end_of_storage < 0) break;\n    }" { (if_statement "if (((uVar1 & 0xe000) != 0) ||\n         (pOVar10 = (this->u1_).output_segment,\n         -1 < (int)pOVar10->output_lists_[3].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl._M_end_of_storage)) {\n        if (uVar1 >> 0x1c != 1) goto LAB_0022eeb4;\n        goto LAB_0022eb68;\n      }" if (parenthesized_expression "(((uVar1 & 0xe000) != 0) ||\n         (pOVar10 = (this->u1_).output_segment,\n         -1 < (int)pOVar10->output_lists_[3].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl._M_end_of_storage))" ( (binary_expression "((uVar1 & 0xe000) != 0) ||\n         (pOVar10 = (this->u1_).output_segment,\n         -1 < (int)pOVar10->output_lists_[3].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl._M_end_of_storage)" (parenthesized_expression "((uVar1 & 0xe000) != 0)" ( (binary_expression "(uVar1 & 0xe000) != 0" (parenthesized_expression "(uVar1 & 0xe000)" ( (binary_expression "uVar1 & 0xe000" identifier & number_literal) )) != number_literal) )) || (parenthesized_expression "(pOVar10 = (this->u1_).output_segment,\n         -1 < (int)pOVar10->output_lists_[3].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl._M_end_of_storage)" ( (ERROR "pOVar10 = (this->u1_).output_segment,\n         -1 < (int)pOVar10->output_lists_[3].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::" (comma_expression "pOVar10 = (this->u1_).output_segment,\n         -1 < (int)pOVar10->output_lists_[3].\n                   super__Vector_base<gold" (assignment_expression "pOVar10 = (this->u1_).output_segment" identifier = (field_expression "(this->u1_).output_segment" (parenthesized_expression "(this->u1_)" ( (field_expression "this->u1_" identifier -> field_identifier) )) . field_identifier)) , (binary_expression "-1 < (int)pOVar10->output_lists_[3].\n                   super__Vector_base<gold" (binary_expression "-1 < (int)pOVar10->output_lists_[3].\n                   super__Vector_base" number_literal < (cast_expression "(int)pOVar10->output_lists_[3].\n                   super__Vector_base" ( (type_descriptor "int" primitive_type) ) (field_expression "pOVar10->output_lists_[3].\n                   super__Vector_base" (subscript_expression "pOVar10->output_lists_[3]" (field_expression "pOVar10->output_lists_" identifier -> field_identifier) [ number_literal ]) . field_identifier))) < identifier)) : : identifier * , identifier : : (binary_expression "allocator<gold" identifier < identifier) : :) (field_expression "Output_data*>_>.\n                   _M_impl._M_end_of_storage" (field_expression "Output_data*>_>.\n                   _M_impl" (binary_expression "Output_data*>_" identifier * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ))) )) (compound_statement "{\n        if (uVar1 >> 0x1c != 1) goto LAB_0022eeb4;\n        goto LAB_0022eb68;\n      }" { (if_statement "if (uVar1 >> 0x1c != 1) goto LAB_0022eeb4;" if (parenthesized_expression "(uVar1 >> 0x1c != 1)" ( (binary_expression "uVar1 >> 0x1c != 1" (binary_expression "uVar1 >> 0x1c" identifier >> number_literal) != number_literal) )) (goto_statement "goto LAB_0022eeb4;" goto statement_identifier ;)) (goto_statement "goto LAB_0022eb68;" goto statement_identifier ;) })) (if_statement "if ((*(char *)(iVar7 + 0xf09) != '\0') || (*(char *)(iVar7 + 0xf85) == '\0')) break;" if (parenthesized_expression "((*(char *)(iVar7 + 0xf09) != '\0') || (*(char *)(iVar7 + 0xf85) == '\0'))" ( (binary_expression "(*(char *)(iVar7 + 0xf09) != '\0') || (*(char *)(iVar7 + 0xf85) == '\0')" (parenthesized_expression "(*(char *)(iVar7 + 0xf09) != '\0')" ( (binary_expression "*(char *)(iVar7 + 0xf09) != '\0'" (pointer_expression "*(char *)(iVar7 + 0xf09)" * (cast_expression "(char *)(iVar7 + 0xf09)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xf09)" ( (binary_expression "iVar7 + 0xf09" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(*(char *)(iVar7 + 0xf85) == '\0')" ( (binary_expression "*(char *)(iVar7 + 0xf85) == '\0'" (pointer_expression "*(char *)(iVar7 + 0xf85)" * (cast_expression "(char *)(iVar7 + 0xf85)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xf85)" ( (binary_expression "iVar7 + 0xf85" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (break_statement "break;" break ;)) (labeled_statement "LAB_0022ed34:\n      if ((int)pOVar10->output_lists_[3].\n               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n               _M_end_of_storage < 0) break;" statement_identifier : (if_statement "if ((int)pOVar10->output_lists_[3].\n               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n               _M_end_of_storage < 0) break;" if (parenthesized_expression "((int)pOVar10->output_lists_[3].\n               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n               _M_end_of_storage < 0)" ( (binary_expression "(int)pOVar10->output_lists_[3].\n               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n               _M_end_of_storage < 0" (field_expression "(int)pOVar10->output_lists_[3].\n               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n               _M_end_of_storage" (field_expression "(int)pOVar10->output_lists_[3].\n               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl" (binary_expression "(int)pOVar10->output_lists_[3].\n               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "(int)pOVar10->output_lists_[3].\n               super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "(int)pOVar10->output_lists_[3].\n               super__Vector_base<gold::Output_data*,_std" (binary_expression "(int)pOVar10->output_lists_[3].\n               super__Vector_base<gold" (cast_expression "(int)pOVar10->output_lists_[3].\n               super__Vector_base" ( (type_descriptor "int" primitive_type) ) (field_expression "pOVar10->output_lists_[3].\n               super__Vector_base" (subscript_expression "pOVar10->output_lists_[3]" (field_expression "pOVar10->output_lists_" identifier -> field_identifier) [ number_literal ]) . field_identifier)) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) < number_literal) )) (break_statement "break;" break ;))) }))) (expression_statement "unaff_s3 = (string *)(*(code *)PTR_cplus_demangle_004335b0)(this->name_,3);" (assignment_expression "unaff_s3 = (string *)(*(code *)PTR_cplus_demangle_004335b0)(this->name_,3)" identifier = (cast_expression "(string *)(*(code *)PTR_cplus_demangle_004335b0)(this->name_,3)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_cplus_demangle_004335b0)(this->name_,3)" (parenthesized_expression "(*(code *)PTR_cplus_demangle_004335b0)" ( (pointer_expression "*(code *)PTR_cplus_demangle_004335b0" * (cast_expression "(code *)PTR_cplus_demangle_004335b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(this->name_,3)" ( (field_expression "this->name_" identifier -> field_identifier) , number_literal ))))) ;) (if_statement "if (unaff_s3 != (string *)0x0) {\n      unaff_s4 = *(int *)(*(int *)puVar9 + 8);\n      if (unaff_s4 == 0) goto LAB_0022ee04;\n      uVar3 = (uint)*(byte *)(unaff_s4 + 0xf09);\n      if (((uVar3 != 0) &&\n          ((iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35d0,0xc),\n           iVar7 == 0 ||\n           (iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35c0,0xf),\n           iVar7 == 0)))) ||\n         ((uVar3 = (uint)*(byte *)(unaff_s4 + 0xf85), uVar3 != 0 &&\n          ((iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35b0,0x11),\n           iVar7 == 0 ||\n           (iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x359c,0xc),\n           iVar7 == 0)))))) {\n        (*(code *)PTR_free_00436800)(unaff_s3);\n        goto LAB_0022eb68;\n      }\n      (*(code *)PTR_free_00436800)(unaff_s3);\n    }" if (parenthesized_expression "(unaff_s3 != (string *)0x0)" ( (binary_expression "unaff_s3 != (string *)0x0" identifier != (cast_expression "(string *)0x0" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      unaff_s4 = *(int *)(*(int *)puVar9 + 8);\n      if (unaff_s4 == 0) goto LAB_0022ee04;\n      uVar3 = (uint)*(byte *)(unaff_s4 + 0xf09);\n      if (((uVar3 != 0) &&\n          ((iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35d0,0xc),\n           iVar7 == 0 ||\n           (iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35c0,0xf),\n           iVar7 == 0)))) ||\n         ((uVar3 = (uint)*(byte *)(unaff_s4 + 0xf85), uVar3 != 0 &&\n          ((iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35b0,0x11),\n           iVar7 == 0 ||\n           (iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x359c,0xc),\n           iVar7 == 0)))))) {\n        (*(code *)PTR_free_00436800)(unaff_s3);\n        goto LAB_0022eb68;\n      }\n      (*(code *)PTR_free_00436800)(unaff_s3);\n    }" { (expression_statement "unaff_s4 = *(int *)(*(int *)puVar9 + 8);" (assignment_expression "unaff_s4 = *(int *)(*(int *)puVar9 + 8)" identifier = (pointer_expression "*(int *)(*(int *)puVar9 + 8)" * (cast_expression "(int *)(*(int *)puVar9 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar9 + 8)" ( (binary_expression "*(int *)puVar9 + 8" (pointer_expression "*(int *)puVar9" * (cast_expression "(int *)puVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ;) (if_statement "if (unaff_s4 == 0) goto LAB_0022ee04;" if (parenthesized_expression "(unaff_s4 == 0)" ( (binary_expression "unaff_s4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0022ee04;" goto statement_identifier ;)) (expression_statement "uVar3 = (uint)*(byte *)(unaff_s4 + 0xf09);" (assignment_expression "uVar3 = (uint)*(byte *)(unaff_s4 + 0xf09)" identifier = (binary_expression "(uint)*(byte *)(unaff_s4 + 0xf09)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(unaff_s4 + 0xf09)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s4 + 0xf09)" ( (binary_expression "unaff_s4 + 0xf09" identifier + number_literal) ))))) ;) (if_statement "if (((uVar3 != 0) &&\n          ((iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35d0,0xc),\n           iVar7 == 0 ||\n           (iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35c0,0xf),\n           iVar7 == 0)))) ||\n         ((uVar3 = (uint)*(byte *)(unaff_s4 + 0xf85), uVar3 != 0 &&\n          ((iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35b0,0x11),\n           iVar7 == 0 ||\n           (iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x359c,0xc),\n           iVar7 == 0)))))) {\n        (*(code *)PTR_free_00436800)(unaff_s3);\n        goto LAB_0022eb68;\n      }" if (parenthesized_expression "(((uVar3 != 0) &&\n          ((iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35d0,0xc),\n           iVar7 == 0 ||\n           (iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35c0,0xf),\n           iVar7 == 0)))) ||\n         ((uVar3 = (uint)*(byte *)(unaff_s4 + 0xf85), uVar3 != 0 &&\n          ((iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35b0,0x11),\n           iVar7 == 0 ||\n           (iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x359c,0xc),\n           iVar7 == 0))))))" ( (binary_expression "((uVar3 != 0) &&\n          ((iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35d0,0xc),\n           iVar7 == 0 ||\n           (iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35c0,0xf),\n           iVar7 == 0)))) ||\n         ((uVar3 = (uint)*(byte *)(unaff_s4 + 0xf85), uVar3 != 0 &&\n          ((iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35b0,0x11),\n           iVar7 == 0 ||\n           (iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x359c,0xc),\n           iVar7 == 0)))))" (parenthesized_expression "((uVar3 != 0) &&\n          ((iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35d0,0xc),\n           iVar7 == 0 ||\n           (iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35c0,0xf),\n           iVar7 == 0))))" ( (binary_expression "(uVar3 != 0) &&\n          ((iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35d0,0xc),\n           iVar7 == 0 ||\n           (iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35c0,0xf),\n           iVar7 == 0)))" (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) && (parenthesized_expression "((iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35d0,0xc),\n           iVar7 == 0 ||\n           (iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35c0,0xf),\n           iVar7 == 0)))" ( (parenthesized_expression "(iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35d0,0xc),\n           iVar7 == 0 ||\n           (iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35c0,0xf),\n           iVar7 == 0))" ( (comma_expression "iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35d0,0xc),\n           iVar7 == 0 ||\n           (iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35c0,0xf),\n           iVar7 == 0)" (assignment_expression "iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35d0,0xc)" identifier = (call_expression "(*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35d0,0xc)" (parenthesized_expression "(*(code *)PTR_strncmp_004366a0)" ( (pointer_expression "*(code *)PTR_strncmp_004366a0" * (cast_expression "(code *)PTR_strncmp_004366a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s3,PTR_s__0043226c + -0x35d0,0xc)" ( identifier , (binary_expression "PTR_s__0043226c + -0x35d0" identifier + number_literal) , number_literal )))) , (binary_expression "iVar7 == 0 ||\n           (iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35c0,0xf),\n           iVar7 == 0)" (binary_expression "iVar7 == 0" identifier == number_literal) || (parenthesized_expression "(iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35c0,0xf),\n           iVar7 == 0)" ( (comma_expression "iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35c0,0xf),\n           iVar7 == 0" (assignment_expression "iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35c0,0xf)" identifier = (call_expression "(*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35c0,0xf)" (parenthesized_expression "(*(code *)PTR_strncmp_004366a0)" ( (pointer_expression "*(code *)PTR_strncmp_004366a0" * (cast_expression "(code *)PTR_strncmp_004366a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s3,PTR_s__0043226c + -0x35c0,0xf)" ( identifier , (binary_expression "PTR_s__0043226c + -0x35c0" identifier + number_literal) , number_literal )))) , (binary_expression "iVar7 == 0" identifier == number_literal)) )))) )) ))) )) || (parenthesized_expression "((uVar3 = (uint)*(byte *)(unaff_s4 + 0xf85), uVar3 != 0 &&\n          ((iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35b0,0x11),\n           iVar7 == 0 ||\n           (iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x359c,0xc),\n           iVar7 == 0)))))" ( (parenthesized_expression "(uVar3 = (uint)*(byte *)(unaff_s4 + 0xf85), uVar3 != 0 &&\n          ((iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35b0,0x11),\n           iVar7 == 0 ||\n           (iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x359c,0xc),\n           iVar7 == 0))))" ( (comma_expression "uVar3 = (uint)*(byte *)(unaff_s4 + 0xf85), uVar3 != 0 &&\n          ((iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35b0,0x11),\n           iVar7 == 0 ||\n           (iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x359c,0xc),\n           iVar7 == 0)))" (assignment_expression "uVar3 = (uint)*(byte *)(unaff_s4 + 0xf85)" identifier = (binary_expression "(uint)*(byte *)(unaff_s4 + 0xf85)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(unaff_s4 + 0xf85)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s4 + 0xf85)" ( (binary_expression "unaff_s4 + 0xf85" identifier + number_literal) ))))) , (binary_expression "uVar3 != 0 &&\n          ((iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35b0,0x11),\n           iVar7 == 0 ||\n           (iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x359c,0xc),\n           iVar7 == 0)))" (binary_expression "uVar3 != 0" identifier != number_literal) && (parenthesized_expression "((iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35b0,0x11),\n           iVar7 == 0 ||\n           (iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x359c,0xc),\n           iVar7 == 0)))" ( (parenthesized_expression "(iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35b0,0x11),\n           iVar7 == 0 ||\n           (iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x359c,0xc),\n           iVar7 == 0))" ( (comma_expression "iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35b0,0x11),\n           iVar7 == 0 ||\n           (iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x359c,0xc),\n           iVar7 == 0)" (assignment_expression "iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35b0,0x11)" identifier = (call_expression "(*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x35b0,0x11)" (parenthesized_expression "(*(code *)PTR_strncmp_004366a0)" ( (pointer_expression "*(code *)PTR_strncmp_004366a0" * (cast_expression "(code *)PTR_strncmp_004366a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s3,PTR_s__0043226c + -0x35b0,0x11)" ( identifier , (binary_expression "PTR_s__0043226c + -0x35b0" identifier + number_literal) , number_literal )))) , (binary_expression "iVar7 == 0 ||\n           (iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x359c,0xc),\n           iVar7 == 0)" (binary_expression "iVar7 == 0" identifier == number_literal) || (parenthesized_expression "(iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x359c,0xc),\n           iVar7 == 0)" ( (comma_expression "iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x359c,0xc),\n           iVar7 == 0" (assignment_expression "iVar7 = (*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x359c,0xc)" identifier = (call_expression "(*(code *)PTR_strncmp_004366a0)(unaff_s3,PTR_s__0043226c + -0x359c,0xc)" (parenthesized_expression "(*(code *)PTR_strncmp_004366a0)" ( (pointer_expression "*(code *)PTR_strncmp_004366a0" * (cast_expression "(code *)PTR_strncmp_004366a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s3,PTR_s__0043226c + -0x359c,0xc)" ( identifier , (binary_expression "PTR_s__0043226c + -0x359c" identifier + number_literal) , number_literal )))) , (binary_expression "iVar7 == 0" identifier == number_literal)) )))) )) )))) )) ))) )) (compound_statement "{\n        (*(code *)PTR_free_00436800)(unaff_s3);\n        goto LAB_0022eb68;\n      }" { (expression_statement "(*(code *)PTR_free_00436800)(unaff_s3);" (call_expression "(*(code *)PTR_free_00436800)(unaff_s3)" (parenthesized_expression "(*(code *)PTR_free_00436800)" ( (pointer_expression "*(code *)PTR_free_00436800" * (cast_expression "(code *)PTR_free_00436800" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s3)" ( identifier ))) ;) (goto_statement "goto LAB_0022eb68;" goto statement_identifier ;) })) (expression_statement "(*(code *)PTR_free_00436800)(unaff_s3);" (call_expression "(*(code *)PTR_free_00436800)(unaff_s3)" (parenthesized_expression "(*(code *)PTR_free_00436800)" ( (pointer_expression "*(code *)PTR_free_00436800" * (cast_expression "(code *)PTR_free_00436800" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s3)" ( identifier ))) ;) })) (expression_statement "iVar7 = *(int *)(*(int *)puVar9 + 8);" (assignment_expression "iVar7 = *(int *)(*(int *)puVar9 + 8)" identifier = (pointer_expression "*(int *)(*(int *)puVar9 + 8)" * (cast_expression "(int *)(*(int *)puVar9 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar9 + 8)" ( (binary_expression "*(int *)puVar9 + 8" (pointer_expression "*(int *)puVar9" * (cast_expression "(int *)puVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ;) }) while (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) ;)) (if_statement "if ((*(char *)(iVar7 + 0x12bd) == '\0') && (*(char *)(iVar7 + 0x1a29) == '\0')) {\n    if (*(char *)(iVar7 + 0x19ad) == '\0') {\n      return false;\n    }\n    uVar3 = *(uint *)&this->field_0x28;\n    if ((uVar3 << 4) >> 0x1c != 10) {\n      return false;\n    }\n  }\n  else {\n    uVar3 = *(uint *)&this->field_0x28;\n  }" if (parenthesized_expression "((*(char *)(iVar7 + 0x12bd) == '\0') && (*(char *)(iVar7 + 0x1a29) == '\0'))" ( (binary_expression "(*(char *)(iVar7 + 0x12bd) == '\0') && (*(char *)(iVar7 + 0x1a29) == '\0')" (parenthesized_expression "(*(char *)(iVar7 + 0x12bd) == '\0')" ( (binary_expression "*(char *)(iVar7 + 0x12bd) == '\0'" (pointer_expression "*(char *)(iVar7 + 0x12bd)" * (cast_expression "(char *)(iVar7 + 0x12bd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x12bd)" ( (binary_expression "iVar7 + 0x12bd" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(char *)(iVar7 + 0x1a29) == '\0')" ( (binary_expression "*(char *)(iVar7 + 0x1a29) == '\0'" (pointer_expression "*(char *)(iVar7 + 0x1a29)" * (cast_expression "(char *)(iVar7 + 0x1a29)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x1a29)" ( (binary_expression "iVar7 + 0x1a29" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    if (*(char *)(iVar7 + 0x19ad) == '\0') {\n      return false;\n    }\n    uVar3 = *(uint *)&this->field_0x28;\n    if ((uVar3 << 4) >> 0x1c != 10) {\n      return false;\n    }\n  }" { (if_statement "if (*(char *)(iVar7 + 0x19ad) == '\0') {\n      return false;\n    }" if (parenthesized_expression "(*(char *)(iVar7 + 0x19ad) == '\0')" ( (binary_expression "*(char *)(iVar7 + 0x19ad) == '\0'" (pointer_expression "*(char *)(iVar7 + 0x19ad)" * (cast_expression "(char *)(iVar7 + 0x19ad)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x19ad)" ( (binary_expression "iVar7 + 0x19ad" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      return false;\n    }" { (return_statement "return false;" return false ;) })) (expression_statement "uVar3 = *(uint *)&this->field_0x28;" (assignment_expression "uVar3 = *(uint *)&this->field_0x28" identifier = (pointer_expression "*(uint *)&this->field_0x28" * (cast_expression "(uint *)&this->field_0x28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->field_0x28" & (field_expression "this->field_0x28" identifier -> field_identifier))))) ;) (if_statement "if ((uVar3 << 4) >> 0x1c != 10) {\n      return false;\n    }" if (parenthesized_expression "((uVar3 << 4) >> 0x1c != 10)" ( (binary_expression "(uVar3 << 4) >> 0x1c != 10" (binary_expression "(uVar3 << 4) >> 0x1c" (parenthesized_expression "(uVar3 << 4)" ( (binary_expression "uVar3 << 4" identifier << number_literal) )) >> number_literal) != number_literal) )) (compound_statement "{\n      return false;\n    }" { (return_statement "return false;" return false ;) })) }) (else_clause "else {\n    uVar3 = *(uint *)&this->field_0x28;\n  }" else (compound_statement "{\n    uVar3 = *(uint *)&this->field_0x28;\n  }" { (expression_statement "uVar3 = *(uint *)&this->field_0x28;" (assignment_expression "uVar3 = *(uint *)&this->field_0x28" identifier = (pointer_expression "*(uint *)&this->field_0x28" * (cast_expression "(uint *)&this->field_0x28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->field_0x28" & (field_expression "this->field_0x28" identifier -> field_identifier))))) ;) }))) (if_statement "if ((uVar3 & 0xe000) == 0) {\n    if ((int)((this->u1_).output_segment)->output_lists_[3].\n             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n             _M_end_of_storage < 0) {\n      return false;\n    }\n    if (((this->u2_).shndx == 0) && ((int)(uVar3 << 0x1d) < 0)) {\n      return false;\n    }\n  }\n  else if ((uVar3 & 0xe000) == 0x8000) {\n    return false;\n  }" if (parenthesized_expression "((uVar3 & 0xe000) == 0)" ( (binary_expression "(uVar3 & 0xe000) == 0" (parenthesized_expression "(uVar3 & 0xe000)" ( (binary_expression "uVar3 & 0xe000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    if ((int)((this->u1_).output_segment)->output_lists_[3].\n             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n             _M_end_of_storage < 0) {\n      return false;\n    }\n    if (((this->u2_).shndx == 0) && ((int)(uVar3 << 0x1d) < 0)) {\n      return false;\n    }\n  }" { (if_statement "if ((int)((this->u1_).output_segment)->output_lists_[3].\n             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n             _M_end_of_storage < 0) {\n      return false;\n    }" if (parenthesized_expression "((int)((this->u1_).output_segment)->output_lists_[3].\n             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n             _M_end_of_storage < 0)" ( (binary_expression "(int)((this->u1_).output_segment)->output_lists_[3].\n             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n             _M_end_of_storage < 0" (field_expression "(int)((this->u1_).output_segment)->output_lists_[3].\n             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n             _M_end_of_storage" (field_expression "(int)((this->u1_).output_segment)->output_lists_[3].\n             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl" (binary_expression "(int)((this->u1_).output_segment)->output_lists_[3].\n             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "(int)((this->u1_).output_segment)->output_lists_[3].\n             super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "(int)((this->u1_).output_segment)->output_lists_[3].\n             super__Vector_base<gold::Output_data*,_std" (binary_expression "(int)((this->u1_).output_segment)->output_lists_[3].\n             super__Vector_base<gold" (cast_expression "(int)((this->u1_).output_segment)->output_lists_[3].\n             super__Vector_base" ( (type_descriptor "int" primitive_type) ) (field_expression "((this->u1_).output_segment)->output_lists_[3].\n             super__Vector_base" (subscript_expression "((this->u1_).output_segment)->output_lists_[3]" (field_expression "((this->u1_).output_segment)->output_lists_" (parenthesized_expression "((this->u1_).output_segment)" ( (field_expression "(this->u1_).output_segment" (parenthesized_expression "(this->u1_)" ( (field_expression "this->u1_" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) [ number_literal ]) . field_identifier)) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) < number_literal) )) (compound_statement "{\n      return false;\n    }" { (return_statement "return false;" return false ;) })) (if_statement "if (((this->u2_).shndx == 0) && ((int)(uVar3 << 0x1d) < 0)) {\n      return false;\n    }" if (parenthesized_expression "(((this->u2_).shndx == 0) && ((int)(uVar3 << 0x1d) < 0))" ( (binary_expression "((this->u2_).shndx == 0) && ((int)(uVar3 << 0x1d) < 0)" (parenthesized_expression "((this->u2_).shndx == 0)" ( (binary_expression "(this->u2_).shndx == 0" (field_expression "(this->u2_).shndx" (parenthesized_expression "(this->u2_)" ( (field_expression "this->u2_" identifier -> field_identifier) )) . field_identifier) == number_literal) )) && (parenthesized_expression "((int)(uVar3 << 0x1d) < 0)" ( (binary_expression "(int)(uVar3 << 0x1d) < 0" (cast_expression "(int)(uVar3 << 0x1d)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar3 << 0x1d)" ( (binary_expression "uVar3 << 0x1d" identifier << number_literal) ))) < number_literal) ))) )) (compound_statement "{\n      return false;\n    }" { (return_statement "return false;" return false ;) })) }) (else_clause "else if ((uVar3 & 0xe000) == 0x8000) {\n    return false;\n  }" else (if_statement "if ((uVar3 & 0xe000) == 0x8000) {\n    return false;\n  }" if (parenthesized_expression "((uVar3 & 0xe000) == 0x8000)" ( (binary_expression "(uVar3 & 0xe000) == 0x8000" (parenthesized_expression "(uVar3 & 0xe000)" ( (binary_expression "uVar3 & 0xe000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    return false;\n  }" { (return_statement "return false;" return false ;) })))) (if_statement "if (((uVar3 & 0xc00000) != 0) && ((uVar3 & 0xc00000) != 0xc00000)) {\n    return false;\n  }" if (parenthesized_expression "(((uVar3 & 0xc00000) != 0) && ((uVar3 & 0xc00000) != 0xc00000))" ( (binary_expression "((uVar3 & 0xc00000) != 0) && ((uVar3 & 0xc00000) != 0xc00000)" (parenthesized_expression "((uVar3 & 0xc00000) != 0)" ( (binary_expression "(uVar3 & 0xc00000) != 0" (parenthesized_expression "(uVar3 & 0xc00000)" ( (binary_expression "uVar3 & 0xc00000" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "((uVar3 & 0xc00000) != 0xc00000)" ( (binary_expression "(uVar3 & 0xc00000) != 0xc00000" (parenthesized_expression "(uVar3 & 0xc00000)" ( (binary_expression "uVar3 & 0xc00000" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    return false;\n  }" { (return_statement "return false;" return false ;) })) (expression_statement "uVar3 = (uVar3 << 0x1c) >> 0x1f ^ 1;" (assignment_expression "uVar3 = (uVar3 << 0x1c) >> 0x1f ^ 1" identifier = (binary_expression "(uVar3 << 0x1c) >> 0x1f ^ 1" (binary_expression "(uVar3 << 0x1c) >> 0x1f" (parenthesized_expression "(uVar3 << 0x1c)" ( (binary_expression "uVar3 << 0x1c" identifier << number_literal) )) >> number_literal) ^ number_literal)) ;) (labeled_statement "LAB_0022eb68:\n  return SUB41(uVar3,0);" statement_identifier : (return_statement "return SUB41(uVar3,0);" return (call_expression "SUB41(uVar3,0)" identifier (argument_list "(uVar3,0)" ( identifier , number_literal ))) ;)) })))
(translation_unit "uint __thiscall gold::Symbol::should_add_dynsym_entry(Symbol *this,Symbol_table *param_1)\n\n{\n  undefined *puVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  uint uVar8;\n  undefined1 *local_40 [2];\n  undefined1 auStack_38 [16];\n  int local_28 [2];\n  \n  puVar1 = PTR_parameters_00432be0;\n  uVar2 = *(uint *)(this + 0x28);\n  uVar4 = -((int)(uVar2 << 0x1e) >> 0x1f);\n  if (uVar4 == 0) {\n    return 0;\n  }\n  if ((int)(uVar2 << 0x16) < 0) {\n    return uVar4;\n  }\n  if (((((int)(uVar2 << 0x17) < 0) && ((int)(uVar2 << 0x18) < 0)) &&\n      (((uVar2 & 0xc00000) == 0 || ((uVar2 & 0xc00000) == 0xc00000)))) &&\n     (-1 < (int)(uVar2 << 0x1c))) {\n    return uVar4;\n  }\n  iVar6 = *(int *)(*(int *)PTR_parameters_00432be0 + 8);\n  if (iVar6 == 0) goto LAB_0022ee04;\n  if (((*(char *)(iVar6 + 0x18b5) == '\0') || (*(char *)(iVar6 + 0x1a29) != '\0')) ||\n     ((uVar2 << 0x10) >> 0x1d != 0)) {\n    if ((uVar2 & 0xe000) != 0) {\nLAB_0022ebf4:\n      iVar6 = Version_script_info::get_symbol_version\n                        ((Version_script_info *)(iVar6 + 0x59b8),*(char **)this,(string *)0x0,\n                         (bool *)local_40);\n      if ((iVar6 != 0) && (local_40[0]._0_1_ == '\0')) {\nLAB_0022ec20:\n        if (-1 < *(int *)(this + 0x28) << 0x1c) {\n          return uVar4;\n        }\n        uVar3 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x35f0);\n        FUN_0022e934(local_40,*(undefined4 *)this);\n                    \n        (*(code *)PTR_gold_warning_0043245c)(uVar3,local_40[0]);\n        if (local_40[0] == auStack_38) {\n          return 0;\n        }\n        (*(code *)PTR_operator_delete_0043228c)();\n        return 0;\n      }\n      iVar6 = *(int *)(*(int *)puVar1 + 8);\n      if (iVar6 == 0) goto LAB_0022ee04;\n      if (*(int *)(iVar6 + 0x1348) != 0) {\n        iVar7 = *(int *)this;\n        local_40[0] = auStack_38;\n        if (iVar7 == 0) {\n          iVar5 = -1;\n        }\n        else {\n          iVar5 = (*(code *)PTR_strlen_0043677c)(iVar7);\n          iVar5 = iVar7 + iVar5;\n        }\n        (*(code *)PTR__M_construct<char_const*>_00432488)(local_40,iVar7,iVar5,0);\n        (*(code *)PTR_find_00433360)(local_28,iVar6 + 0x133c,local_40);\n        if (local_28[0] != 0) {\n          if (local_40[0] != auStack_38) {\n            (*(code *)PTR_operator_delete_0043228c)();\n          }\n          goto LAB_0022ec20;\n        }\n        if (local_40[0] != auStack_38) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n      }\n      uVar2 = *(uint *)(this + 0x28);\n      goto LAB_0022ecdc;\n    }\n    uVar8 = (uVar2 << 0x1c) >> 0x1f;\n    if (-1 < *(int *)(*(int *)(this + 8) + 0x2c)) {\n      iVar6 = *(int *)(*(int *)PTR_parameters_00432be0 + 8);\n      goto LAB_0022ebf4;\n    }\n  }\n  else {\n    if ((uVar2 & 0xe000) != 0) {\n      uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                        (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + -0x2a70);\n      return uVar4;\n    }\n    uVar8 = *(uint *)(this + 8);\n    if (-1 < *(int *)(uVar8 + 0x2c)) {\n      if (((int)(uVar2 << 0x1d) < 0) && (uVar2 = *(uint *)(this + 0xc), uVar2 != 0)) {\n        if ((uint)(*(int *)(uVar8 + 0x3c) - *(int *)(uVar8 + 0x38) >> 2) <= uVar2) {\n          uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                            (PTR_LAB_0043220c + 0x44a8,0x50b,PTR_DAT_0043226c + -0x2a84);\n          return uVar4;\n        }\n        if (*(int *)(*(int *)(uVar8 + 0x38) + uVar2 * 4) == 0) {\n          iVar6 = Symbol_table::is_section_folded((Relobj *)param_1,uVar8);\n          if (iVar6 == 0) {\n            return 0;\n          }\n          uVar2 = *(uint *)(this + 0x28);\n          if (((uVar2 & 0xe000) == 0) &&\n             (uVar8 = (uVar2 << 0x1c) >> 0x1f, *(int *)(*(int *)(this + 8) + 0x2c) < 0))\n          goto LAB_0022ece0;\n        }\n      }\n      iVar6 = *(int *)(*(int *)puVar1 + 8);\n      if (iVar6 == 0) goto LAB_0022ee04;\n      goto LAB_0022ebf4;\n    }\nLAB_0022ecdc:\n    uVar8 = (uVar2 << 0x1c) >> 0x1f;\n  }\nLAB_0022ece0:\n  if (uVar8 != 0) {\n    return 0;\n  }\n  iVar6 = *(int *)(*(int *)puVar1 + 8);\n  if (iVar6 == 0) goto LAB_0022ee04;\n  if (*(char *)(iVar6 + 0xe8d) == '\0') {\nLAB_0022eeb4:\n    if ((*(char *)(iVar6 + 0xf09) == '\0') && (*(char *)(iVar6 + 0xf85) == '\0')) goto LAB_0022ed40;\n    if ((uVar2 & 0xe000) == 0) {\n      iVar7 = *(int *)(this + 8);\n      goto LAB_0022ed34;\n    }\n  }\n  else {\n    if (((uVar2 & 0xe000) != 0) || (iVar7 = *(int *)(this + 8), -1 < *(int *)(iVar7 + 0x2c))) {\n      if (uVar2 >> 0x1c == 1) {\n        return uVar4;\n      }\n      goto LAB_0022eeb4;\n    }\n    if ((*(char *)(iVar6 + 0xf09) != '\0') || (*(char *)(iVar6 + 0xf85) == '\0')) goto LAB_0022ed40;\nLAB_0022ed34:\n    if (*(int *)(iVar7 + 0x2c) < 0) goto LAB_0022ed40;\n  }\n  iVar6 = (*(code *)PTR_cplus_demangle_004335b0)(*(undefined4 *)this,3);\n  if (iVar6 != 0) {\n    iVar7 = *(int *)(*(int *)puVar1 + 8);\n    if (iVar7 == 0) goto LAB_0022ee04;\n    uVar4 = (uint)*(byte *)(iVar7 + 0xf09);\n    if (((uVar4 != 0) &&\n        ((iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35d0,0xc), iVar5 == 0\n         || (iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35c0,0xf),\n            iVar5 == 0)))) ||\n       ((uVar4 = (uint)*(byte *)(iVar7 + 0xf85), uVar4 != 0 &&\n        ((iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35b0,0x11), iVar7 == 0\n         || (iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc),\n            iVar7 == 0)))))) {\n      (*(code *)PTR_free_00436800)(iVar6);\n      return uVar4;\n    }\n    (*(code *)PTR_free_00436800)(iVar6);\n  }\n  iVar6 = *(int *)(*(int *)puVar1 + 8);\n  if (iVar6 != 0) {\nLAB_0022ed40:\n    if ((*(char *)(iVar6 + 0x12bd) == '\0') && (*(char *)(iVar6 + 0x1a29) == '\0')) {\n      if (*(char *)(iVar6 + 0x19ad) == '\0') {\n        return 0;\n      }\n      uVar4 = *(uint *)(this + 0x28);\n      if ((uVar4 << 4) >> 0x1c != 10) {\n        return 0;\n      }\n    }\n    else {\n      uVar4 = *(uint *)(this + 0x28);\n    }\n    if ((uVar4 & 0xe000) == 0) {\n      if (*(int *)(*(int *)(this + 8) + 0x2c) < 0) {\n        return 0;\n      }\n      if ((*(int *)(this + 0xc) == 0) && ((int)(uVar4 << 0x1d) < 0)) {\n        return 0;\n      }\n    }\n    else if ((uVar4 & 0xe000) == 0x8000) {\n      return 0;\n    }\n    if (((uVar4 & 0xc00000) != 0) && ((uVar4 & 0xc00000) != 0xc00000)) {\n      return 0;\n    }\n    return (uVar4 << 0x1c) >> 0x1f ^ 1;\n  }\nLAB_0022ee04:\n  uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x2a30);\n  return uVar4;\n}\n\n" (function_definition "uint __thiscall gold::Symbol::should_add_dynsym_entry(Symbol *this,Symbol_table *param_1)\n\n{\n  undefined *puVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  uint uVar8;\n  undefined1 *local_40 [2];\n  undefined1 auStack_38 [16];\n  int local_28 [2];\n  \n  puVar1 = PTR_parameters_00432be0;\n  uVar2 = *(uint *)(this + 0x28);\n  uVar4 = -((int)(uVar2 << 0x1e) >> 0x1f);\n  if (uVar4 == 0) {\n    return 0;\n  }\n  if ((int)(uVar2 << 0x16) < 0) {\n    return uVar4;\n  }\n  if (((((int)(uVar2 << 0x17) < 0) && ((int)(uVar2 << 0x18) < 0)) &&\n      (((uVar2 & 0xc00000) == 0 || ((uVar2 & 0xc00000) == 0xc00000)))) &&\n     (-1 < (int)(uVar2 << 0x1c))) {\n    return uVar4;\n  }\n  iVar6 = *(int *)(*(int *)PTR_parameters_00432be0 + 8);\n  if (iVar6 == 0) goto LAB_0022ee04;\n  if (((*(char *)(iVar6 + 0x18b5) == '\0') || (*(char *)(iVar6 + 0x1a29) != '\0')) ||\n     ((uVar2 << 0x10) >> 0x1d != 0)) {\n    if ((uVar2 & 0xe000) != 0) {\nLAB_0022ebf4:\n      iVar6 = Version_script_info::get_symbol_version\n                        ((Version_script_info *)(iVar6 + 0x59b8),*(char **)this,(string *)0x0,\n                         (bool *)local_40);\n      if ((iVar6 != 0) && (local_40[0]._0_1_ == '\0')) {\nLAB_0022ec20:\n        if (-1 < *(int *)(this + 0x28) << 0x1c) {\n          return uVar4;\n        }\n        uVar3 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x35f0);\n        FUN_0022e934(local_40,*(undefined4 *)this);\n                    \n        (*(code *)PTR_gold_warning_0043245c)(uVar3,local_40[0]);\n        if (local_40[0] == auStack_38) {\n          return 0;\n        }\n        (*(code *)PTR_operator_delete_0043228c)();\n        return 0;\n      }\n      iVar6 = *(int *)(*(int *)puVar1 + 8);\n      if (iVar6 == 0) goto LAB_0022ee04;\n      if (*(int *)(iVar6 + 0x1348) != 0) {\n        iVar7 = *(int *)this;\n        local_40[0] = auStack_38;\n        if (iVar7 == 0) {\n          iVar5 = -1;\n        }\n        else {\n          iVar5 = (*(code *)PTR_strlen_0043677c)(iVar7);\n          iVar5 = iVar7 + iVar5;\n        }\n        (*(code *)PTR__M_construct<char_const*>_00432488)(local_40,iVar7,iVar5,0);\n        (*(code *)PTR_find_00433360)(local_28,iVar6 + 0x133c,local_40);\n        if (local_28[0] != 0) {\n          if (local_40[0] != auStack_38) {\n            (*(code *)PTR_operator_delete_0043228c)();\n          }\n          goto LAB_0022ec20;\n        }\n        if (local_40[0] != auStack_38) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n      }\n      uVar2 = *(uint *)(this + 0x28);\n      goto LAB_0022ecdc;\n    }\n    uVar8 = (uVar2 << 0x1c) >> 0x1f;\n    if (-1 < *(int *)(*(int *)(this + 8) + 0x2c)) {\n      iVar6 = *(int *)(*(int *)PTR_parameters_00432be0 + 8);\n      goto LAB_0022ebf4;\n    }\n  }\n  else {\n    if ((uVar2 & 0xe000) != 0) {\n      uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                        (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + -0x2a70);\n      return uVar4;\n    }\n    uVar8 = *(uint *)(this + 8);\n    if (-1 < *(int *)(uVar8 + 0x2c)) {\n      if (((int)(uVar2 << 0x1d) < 0) && (uVar2 = *(uint *)(this + 0xc), uVar2 != 0)) {\n        if ((uint)(*(int *)(uVar8 + 0x3c) - *(int *)(uVar8 + 0x38) >> 2) <= uVar2) {\n          uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                            (PTR_LAB_0043220c + 0x44a8,0x50b,PTR_DAT_0043226c + -0x2a84);\n          return uVar4;\n        }\n        if (*(int *)(*(int *)(uVar8 + 0x38) + uVar2 * 4) == 0) {\n          iVar6 = Symbol_table::is_section_folded((Relobj *)param_1,uVar8);\n          if (iVar6 == 0) {\n            return 0;\n          }\n          uVar2 = *(uint *)(this + 0x28);\n          if (((uVar2 & 0xe000) == 0) &&\n             (uVar8 = (uVar2 << 0x1c) >> 0x1f, *(int *)(*(int *)(this + 8) + 0x2c) < 0))\n          goto LAB_0022ece0;\n        }\n      }\n      iVar6 = *(int *)(*(int *)puVar1 + 8);\n      if (iVar6 == 0) goto LAB_0022ee04;\n      goto LAB_0022ebf4;\n    }\nLAB_0022ecdc:\n    uVar8 = (uVar2 << 0x1c) >> 0x1f;\n  }\nLAB_0022ece0:\n  if (uVar8 != 0) {\n    return 0;\n  }\n  iVar6 = *(int *)(*(int *)puVar1 + 8);\n  if (iVar6 == 0) goto LAB_0022ee04;\n  if (*(char *)(iVar6 + 0xe8d) == '\0') {\nLAB_0022eeb4:\n    if ((*(char *)(iVar6 + 0xf09) == '\0') && (*(char *)(iVar6 + 0xf85) == '\0')) goto LAB_0022ed40;\n    if ((uVar2 & 0xe000) == 0) {\n      iVar7 = *(int *)(this + 8);\n      goto LAB_0022ed34;\n    }\n  }\n  else {\n    if (((uVar2 & 0xe000) != 0) || (iVar7 = *(int *)(this + 8), -1 < *(int *)(iVar7 + 0x2c))) {\n      if (uVar2 >> 0x1c == 1) {\n        return uVar4;\n      }\n      goto LAB_0022eeb4;\n    }\n    if ((*(char *)(iVar6 + 0xf09) != '\0') || (*(char *)(iVar6 + 0xf85) == '\0')) goto LAB_0022ed40;\nLAB_0022ed34:\n    if (*(int *)(iVar7 + 0x2c) < 0) goto LAB_0022ed40;\n  }\n  iVar6 = (*(code *)PTR_cplus_demangle_004335b0)(*(undefined4 *)this,3);\n  if (iVar6 != 0) {\n    iVar7 = *(int *)(*(int *)puVar1 + 8);\n    if (iVar7 == 0) goto LAB_0022ee04;\n    uVar4 = (uint)*(byte *)(iVar7 + 0xf09);\n    if (((uVar4 != 0) &&\n        ((iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35d0,0xc), iVar5 == 0\n         || (iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35c0,0xf),\n            iVar5 == 0)))) ||\n       ((uVar4 = (uint)*(byte *)(iVar7 + 0xf85), uVar4 != 0 &&\n        ((iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35b0,0x11), iVar7 == 0\n         || (iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc),\n            iVar7 == 0)))))) {\n      (*(code *)PTR_free_00436800)(iVar6);\n      return uVar4;\n    }\n    (*(code *)PTR_free_00436800)(iVar6);\n  }\n  iVar6 = *(int *)(*(int *)puVar1 + 8);\n  if (iVar6 != 0) {\nLAB_0022ed40:\n    if ((*(char *)(iVar6 + 0x12bd) == '\0') && (*(char *)(iVar6 + 0x1a29) == '\0')) {\n      if (*(char *)(iVar6 + 0x19ad) == '\0') {\n        return 0;\n      }\n      uVar4 = *(uint *)(this + 0x28);\n      if ((uVar4 << 4) >> 0x1c != 10) {\n        return 0;\n      }\n    }\n    else {\n      uVar4 = *(uint *)(this + 0x28);\n    }\n    if ((uVar4 & 0xe000) == 0) {\n      if (*(int *)(*(int *)(this + 8) + 0x2c) < 0) {\n        return 0;\n      }\n      if ((*(int *)(this + 0xc) == 0) && ((int)(uVar4 << 0x1d) < 0)) {\n        return 0;\n      }\n    }\n    else if ((uVar4 & 0xe000) == 0x8000) {\n      return 0;\n    }\n    if (((uVar4 & 0xc00000) != 0) && ((uVar4 & 0xc00000) != 0xc00000)) {\n      return 0;\n    }\n    return (uVar4 << 0x1c) >> 0x1f ^ 1;\n  }\nLAB_0022ee04:\n  uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x2a30);\n  return uVar4;\n}" type_identifier (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Symbol::" identifier : : identifier : :) (function_declarator "should_add_dynsym_entry(Symbol *this,Symbol_table *param_1)" identifier (parameter_list "(Symbol *this,Symbol_table *param_1)" ( (parameter_declaration "Symbol *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Symbol_table *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  uint uVar8;\n  undefined1 *local_40 [2];\n  undefined1 auStack_38 [16];\n  int local_28 [2];\n  \n  puVar1 = PTR_parameters_00432be0;\n  uVar2 = *(uint *)(this + 0x28);\n  uVar4 = -((int)(uVar2 << 0x1e) >> 0x1f);\n  if (uVar4 == 0) {\n    return 0;\n  }\n  if ((int)(uVar2 << 0x16) < 0) {\n    return uVar4;\n  }\n  if (((((int)(uVar2 << 0x17) < 0) && ((int)(uVar2 << 0x18) < 0)) &&\n      (((uVar2 & 0xc00000) == 0 || ((uVar2 & 0xc00000) == 0xc00000)))) &&\n     (-1 < (int)(uVar2 << 0x1c))) {\n    return uVar4;\n  }\n  iVar6 = *(int *)(*(int *)PTR_parameters_00432be0 + 8);\n  if (iVar6 == 0) goto LAB_0022ee04;\n  if (((*(char *)(iVar6 + 0x18b5) == '\0') || (*(char *)(iVar6 + 0x1a29) != '\0')) ||\n     ((uVar2 << 0x10) >> 0x1d != 0)) {\n    if ((uVar2 & 0xe000) != 0) {\nLAB_0022ebf4:\n      iVar6 = Version_script_info::get_symbol_version\n                        ((Version_script_info *)(iVar6 + 0x59b8),*(char **)this,(string *)0x0,\n                         (bool *)local_40);\n      if ((iVar6 != 0) && (local_40[0]._0_1_ == '\0')) {\nLAB_0022ec20:\n        if (-1 < *(int *)(this + 0x28) << 0x1c) {\n          return uVar4;\n        }\n        uVar3 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x35f0);\n        FUN_0022e934(local_40,*(undefined4 *)this);\n                    \n        (*(code *)PTR_gold_warning_0043245c)(uVar3,local_40[0]);\n        if (local_40[0] == auStack_38) {\n          return 0;\n        }\n        (*(code *)PTR_operator_delete_0043228c)();\n        return 0;\n      }\n      iVar6 = *(int *)(*(int *)puVar1 + 8);\n      if (iVar6 == 0) goto LAB_0022ee04;\n      if (*(int *)(iVar6 + 0x1348) != 0) {\n        iVar7 = *(int *)this;\n        local_40[0] = auStack_38;\n        if (iVar7 == 0) {\n          iVar5 = -1;\n        }\n        else {\n          iVar5 = (*(code *)PTR_strlen_0043677c)(iVar7);\n          iVar5 = iVar7 + iVar5;\n        }\n        (*(code *)PTR__M_construct<char_const*>_00432488)(local_40,iVar7,iVar5,0);\n        (*(code *)PTR_find_00433360)(local_28,iVar6 + 0x133c,local_40);\n        if (local_28[0] != 0) {\n          if (local_40[0] != auStack_38) {\n            (*(code *)PTR_operator_delete_0043228c)();\n          }\n          goto LAB_0022ec20;\n        }\n        if (local_40[0] != auStack_38) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n      }\n      uVar2 = *(uint *)(this + 0x28);\n      goto LAB_0022ecdc;\n    }\n    uVar8 = (uVar2 << 0x1c) >> 0x1f;\n    if (-1 < *(int *)(*(int *)(this + 8) + 0x2c)) {\n      iVar6 = *(int *)(*(int *)PTR_parameters_00432be0 + 8);\n      goto LAB_0022ebf4;\n    }\n  }\n  else {\n    if ((uVar2 & 0xe000) != 0) {\n      uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                        (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + -0x2a70);\n      return uVar4;\n    }\n    uVar8 = *(uint *)(this + 8);\n    if (-1 < *(int *)(uVar8 + 0x2c)) {\n      if (((int)(uVar2 << 0x1d) < 0) && (uVar2 = *(uint *)(this + 0xc), uVar2 != 0)) {\n        if ((uint)(*(int *)(uVar8 + 0x3c) - *(int *)(uVar8 + 0x38) >> 2) <= uVar2) {\n          uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                            (PTR_LAB_0043220c + 0x44a8,0x50b,PTR_DAT_0043226c + -0x2a84);\n          return uVar4;\n        }\n        if (*(int *)(*(int *)(uVar8 + 0x38) + uVar2 * 4) == 0) {\n          iVar6 = Symbol_table::is_section_folded((Relobj *)param_1,uVar8);\n          if (iVar6 == 0) {\n            return 0;\n          }\n          uVar2 = *(uint *)(this + 0x28);\n          if (((uVar2 & 0xe000) == 0) &&\n             (uVar8 = (uVar2 << 0x1c) >> 0x1f, *(int *)(*(int *)(this + 8) + 0x2c) < 0))\n          goto LAB_0022ece0;\n        }\n      }\n      iVar6 = *(int *)(*(int *)puVar1 + 8);\n      if (iVar6 == 0) goto LAB_0022ee04;\n      goto LAB_0022ebf4;\n    }\nLAB_0022ecdc:\n    uVar8 = (uVar2 << 0x1c) >> 0x1f;\n  }\nLAB_0022ece0:\n  if (uVar8 != 0) {\n    return 0;\n  }\n  iVar6 = *(int *)(*(int *)puVar1 + 8);\n  if (iVar6 == 0) goto LAB_0022ee04;\n  if (*(char *)(iVar6 + 0xe8d) == '\0') {\nLAB_0022eeb4:\n    if ((*(char *)(iVar6 + 0xf09) == '\0') && (*(char *)(iVar6 + 0xf85) == '\0')) goto LAB_0022ed40;\n    if ((uVar2 & 0xe000) == 0) {\n      iVar7 = *(int *)(this + 8);\n      goto LAB_0022ed34;\n    }\n  }\n  else {\n    if (((uVar2 & 0xe000) != 0) || (iVar7 = *(int *)(this + 8), -1 < *(int *)(iVar7 + 0x2c))) {\n      if (uVar2 >> 0x1c == 1) {\n        return uVar4;\n      }\n      goto LAB_0022eeb4;\n    }\n    if ((*(char *)(iVar6 + 0xf09) != '\0') || (*(char *)(iVar6 + 0xf85) == '\0')) goto LAB_0022ed40;\nLAB_0022ed34:\n    if (*(int *)(iVar7 + 0x2c) < 0) goto LAB_0022ed40;\n  }\n  iVar6 = (*(code *)PTR_cplus_demangle_004335b0)(*(undefined4 *)this,3);\n  if (iVar6 != 0) {\n    iVar7 = *(int *)(*(int *)puVar1 + 8);\n    if (iVar7 == 0) goto LAB_0022ee04;\n    uVar4 = (uint)*(byte *)(iVar7 + 0xf09);\n    if (((uVar4 != 0) &&\n        ((iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35d0,0xc), iVar5 == 0\n         || (iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35c0,0xf),\n            iVar5 == 0)))) ||\n       ((uVar4 = (uint)*(byte *)(iVar7 + 0xf85), uVar4 != 0 &&\n        ((iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35b0,0x11), iVar7 == 0\n         || (iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc),\n            iVar7 == 0)))))) {\n      (*(code *)PTR_free_00436800)(iVar6);\n      return uVar4;\n    }\n    (*(code *)PTR_free_00436800)(iVar6);\n  }\n  iVar6 = *(int *)(*(int *)puVar1 + 8);\n  if (iVar6 != 0) {\nLAB_0022ed40:\n    if ((*(char *)(iVar6 + 0x12bd) == '\0') && (*(char *)(iVar6 + 0x1a29) == '\0')) {\n      if (*(char *)(iVar6 + 0x19ad) == '\0') {\n        return 0;\n      }\n      uVar4 = *(uint *)(this + 0x28);\n      if ((uVar4 << 4) >> 0x1c != 10) {\n        return 0;\n      }\n    }\n    else {\n      uVar4 = *(uint *)(this + 0x28);\n    }\n    if ((uVar4 & 0xe000) == 0) {\n      if (*(int *)(*(int *)(this + 8) + 0x2c) < 0) {\n        return 0;\n      }\n      if ((*(int *)(this + 0xc) == 0) && ((int)(uVar4 << 0x1d) < 0)) {\n        return 0;\n      }\n    }\n    else if ((uVar4 & 0xe000) == 0x8000) {\n      return 0;\n    }\n    if (((uVar4 & 0xc00000) != 0) && ((uVar4 & 0xc00000) != 0xc00000)) {\n      return 0;\n    }\n    return (uVar4 << 0x1c) >> 0x1f ^ 1;\n  }\nLAB_0022ee04:\n  uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x2a30);\n  return uVar4;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "undefined1 *local_40 [2];" type_identifier (pointer_declarator "*local_40 [2]" * (array_declarator "local_40 [2]" identifier [ number_literal ])) ;) (declaration "undefined1 auStack_38 [16];" type_identifier (array_declarator "auStack_38 [16]" identifier [ number_literal ]) ;) (declaration "int local_28 [2];" primitive_type (array_declarator "local_28 [2]" identifier [ number_literal ]) ;) (expression_statement "puVar1 = PTR_parameters_00432be0;" (assignment_expression "puVar1 = PTR_parameters_00432be0" identifier = identifier) ;) (expression_statement "uVar2 = *(uint *)(this + 0x28);" (assignment_expression "uVar2 = *(uint *)(this + 0x28)" identifier = (pointer_expression "*(uint *)(this + 0x28)" * (cast_expression "(uint *)(this + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x28)" ( (binary_expression "this + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = -((int)(uVar2 << 0x1e) >> 0x1f);" (assignment_expression "uVar4 = -((int)(uVar2 << 0x1e) >> 0x1f)" identifier = (unary_expression "-((int)(uVar2 << 0x1e) >> 0x1f)" - (parenthesized_expression "((int)(uVar2 << 0x1e) >> 0x1f)" ( (binary_expression "(int)(uVar2 << 0x1e) >> 0x1f" (cast_expression "(int)(uVar2 << 0x1e)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar2 << 0x1e)" ( (binary_expression "uVar2 << 0x1e" identifier << number_literal) ))) >> number_literal) )))) ;) (if_statement "if (uVar4 == 0) {\n    return 0;\n  }" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if ((int)(uVar2 << 0x16) < 0) {\n    return uVar4;\n  }" if (parenthesized_expression "((int)(uVar2 << 0x16) < 0)" ( (binary_expression "(int)(uVar2 << 0x16) < 0" (cast_expression "(int)(uVar2 << 0x16)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar2 << 0x16)" ( (binary_expression "uVar2 << 0x16" identifier << number_literal) ))) < number_literal) )) (compound_statement "{\n    return uVar4;\n  }" { (return_statement "return uVar4;" return identifier ;) })) (if_statement "if (((((int)(uVar2 << 0x17) < 0) && ((int)(uVar2 << 0x18) < 0)) &&\n      (((uVar2 & 0xc00000) == 0 || ((uVar2 & 0xc00000) == 0xc00000)))) &&\n     (-1 < (int)(uVar2 << 0x1c))) {\n    return uVar4;\n  }" if (parenthesized_expression "(((((int)(uVar2 << 0x17) < 0) && ((int)(uVar2 << 0x18) < 0)) &&\n      (((uVar2 & 0xc00000) == 0 || ((uVar2 & 0xc00000) == 0xc00000)))) &&\n     (-1 < (int)(uVar2 << 0x1c)))" ( (binary_expression "((((int)(uVar2 << 0x17) < 0) && ((int)(uVar2 << 0x18) < 0)) &&\n      (((uVar2 & 0xc00000) == 0 || ((uVar2 & 0xc00000) == 0xc00000)))) &&\n     (-1 < (int)(uVar2 << 0x1c))" (parenthesized_expression "((((int)(uVar2 << 0x17) < 0) && ((int)(uVar2 << 0x18) < 0)) &&\n      (((uVar2 & 0xc00000) == 0 || ((uVar2 & 0xc00000) == 0xc00000))))" ( (binary_expression "(((int)(uVar2 << 0x17) < 0) && ((int)(uVar2 << 0x18) < 0)) &&\n      (((uVar2 & 0xc00000) == 0 || ((uVar2 & 0xc00000) == 0xc00000)))" (parenthesized_expression "(((int)(uVar2 << 0x17) < 0) && ((int)(uVar2 << 0x18) < 0))" ( (binary_expression "((int)(uVar2 << 0x17) < 0) && ((int)(uVar2 << 0x18) < 0)" (parenthesized_expression "((int)(uVar2 << 0x17) < 0)" ( (binary_expression "(int)(uVar2 << 0x17) < 0" (cast_expression "(int)(uVar2 << 0x17)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar2 << 0x17)" ( (binary_expression "uVar2 << 0x17" identifier << number_literal) ))) < number_literal) )) && (parenthesized_expression "((int)(uVar2 << 0x18) < 0)" ( (binary_expression "(int)(uVar2 << 0x18) < 0" (cast_expression "(int)(uVar2 << 0x18)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar2 << 0x18)" ( (binary_expression "uVar2 << 0x18" identifier << number_literal) ))) < number_literal) ))) )) && (parenthesized_expression "(((uVar2 & 0xc00000) == 0 || ((uVar2 & 0xc00000) == 0xc00000)))" ( (parenthesized_expression "((uVar2 & 0xc00000) == 0 || ((uVar2 & 0xc00000) == 0xc00000))" ( (binary_expression "(uVar2 & 0xc00000) == 0 || ((uVar2 & 0xc00000) == 0xc00000)" (binary_expression "(uVar2 & 0xc00000) == 0" (parenthesized_expression "(uVar2 & 0xc00000)" ( (binary_expression "uVar2 & 0xc00000" identifier & number_literal) )) == number_literal) || (parenthesized_expression "((uVar2 & 0xc00000) == 0xc00000)" ( (binary_expression "(uVar2 & 0xc00000) == 0xc00000" (parenthesized_expression "(uVar2 & 0xc00000)" ( (binary_expression "uVar2 & 0xc00000" identifier & number_literal) )) == number_literal) ))) )) ))) )) && (parenthesized_expression "(-1 < (int)(uVar2 << 0x1c))" ( (binary_expression "-1 < (int)(uVar2 << 0x1c)" number_literal < (cast_expression "(int)(uVar2 << 0x1c)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar2 << 0x1c)" ( (binary_expression "uVar2 << 0x1c" identifier << number_literal) )))) ))) )) (compound_statement "{\n    return uVar4;\n  }" { (return_statement "return uVar4;" return identifier ;) })) (expression_statement "iVar6 = *(int *)(*(int *)PTR_parameters_00432be0 + 8);" (assignment_expression "iVar6 = *(int *)(*(int *)PTR_parameters_00432be0 + 8)" identifier = (pointer_expression "*(int *)(*(int *)PTR_parameters_00432be0 + 8)" * (cast_expression "(int *)(*(int *)PTR_parameters_00432be0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_parameters_00432be0 + 8)" ( (binary_expression "*(int *)PTR_parameters_00432be0 + 8" (pointer_expression "*(int *)PTR_parameters_00432be0" * (cast_expression "(int *)PTR_parameters_00432be0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ;) (if_statement "if (iVar6 == 0) goto LAB_0022ee04;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0022ee04;" goto statement_identifier ;)) (if_statement "if (((*(char *)(iVar6 + 0x18b5) == '\0') || (*(char *)(iVar6 + 0x1a29) != '\0')) ||\n     ((uVar2 << 0x10) >> 0x1d != 0)) {\n    if ((uVar2 & 0xe000) != 0) {\nLAB_0022ebf4:\n      iVar6 = Version_script_info::get_symbol_version\n                        ((Version_script_info *)(iVar6 + 0x59b8),*(char **)this,(string *)0x0,\n                         (bool *)local_40);\n      if ((iVar6 != 0) && (local_40[0]._0_1_ == '\0')) {\nLAB_0022ec20:\n        if (-1 < *(int *)(this + 0x28) << 0x1c) {\n          return uVar4;\n        }\n        uVar3 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x35f0);\n        FUN_0022e934(local_40,*(undefined4 *)this);\n                    \n        (*(code *)PTR_gold_warning_0043245c)(uVar3,local_40[0]);\n        if (local_40[0] == auStack_38) {\n          return 0;\n        }\n        (*(code *)PTR_operator_delete_0043228c)();\n        return 0;\n      }\n      iVar6 = *(int *)(*(int *)puVar1 + 8);\n      if (iVar6 == 0) goto LAB_0022ee04;\n      if (*(int *)(iVar6 + 0x1348) != 0) {\n        iVar7 = *(int *)this;\n        local_40[0] = auStack_38;\n        if (iVar7 == 0) {\n          iVar5 = -1;\n        }\n        else {\n          iVar5 = (*(code *)PTR_strlen_0043677c)(iVar7);\n          iVar5 = iVar7 + iVar5;\n        }\n        (*(code *)PTR__M_construct<char_const*>_00432488)(local_40,iVar7,iVar5,0);\n        (*(code *)PTR_find_00433360)(local_28,iVar6 + 0x133c,local_40);\n        if (local_28[0] != 0) {\n          if (local_40[0] != auStack_38) {\n            (*(code *)PTR_operator_delete_0043228c)();\n          }\n          goto LAB_0022ec20;\n        }\n        if (local_40[0] != auStack_38) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n      }\n      uVar2 = *(uint *)(this + 0x28);\n      goto LAB_0022ecdc;\n    }\n    uVar8 = (uVar2 << 0x1c) >> 0x1f;\n    if (-1 < *(int *)(*(int *)(this + 8) + 0x2c)) {\n      iVar6 = *(int *)(*(int *)PTR_parameters_00432be0 + 8);\n      goto LAB_0022ebf4;\n    }\n  }\n  else {\n    if ((uVar2 & 0xe000) != 0) {\n      uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                        (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + -0x2a70);\n      return uVar4;\n    }\n    uVar8 = *(uint *)(this + 8);\n    if (-1 < *(int *)(uVar8 + 0x2c)) {\n      if (((int)(uVar2 << 0x1d) < 0) && (uVar2 = *(uint *)(this + 0xc), uVar2 != 0)) {\n        if ((uint)(*(int *)(uVar8 + 0x3c) - *(int *)(uVar8 + 0x38) >> 2) <= uVar2) {\n          uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                            (PTR_LAB_0043220c + 0x44a8,0x50b,PTR_DAT_0043226c + -0x2a84);\n          return uVar4;\n        }\n        if (*(int *)(*(int *)(uVar8 + 0x38) + uVar2 * 4) == 0) {\n          iVar6 = Symbol_table::is_section_folded((Relobj *)param_1,uVar8);\n          if (iVar6 == 0) {\n            return 0;\n          }\n          uVar2 = *(uint *)(this + 0x28);\n          if (((uVar2 & 0xe000) == 0) &&\n             (uVar8 = (uVar2 << 0x1c) >> 0x1f, *(int *)(*(int *)(this + 8) + 0x2c) < 0))\n          goto LAB_0022ece0;\n        }\n      }\n      iVar6 = *(int *)(*(int *)puVar1 + 8);\n      if (iVar6 == 0) goto LAB_0022ee04;\n      goto LAB_0022ebf4;\n    }\nLAB_0022ecdc:\n    uVar8 = (uVar2 << 0x1c) >> 0x1f;\n  }" if (parenthesized_expression "(((*(char *)(iVar6 + 0x18b5) == '\0') || (*(char *)(iVar6 + 0x1a29) != '\0')) ||\n     ((uVar2 << 0x10) >> 0x1d != 0))" ( (binary_expression "((*(char *)(iVar6 + 0x18b5) == '\0') || (*(char *)(iVar6 + 0x1a29) != '\0')) ||\n     ((uVar2 << 0x10) >> 0x1d != 0)" (parenthesized_expression "((*(char *)(iVar6 + 0x18b5) == '\0') || (*(char *)(iVar6 + 0x1a29) != '\0'))" ( (binary_expression "(*(char *)(iVar6 + 0x18b5) == '\0') || (*(char *)(iVar6 + 0x1a29) != '\0')" (parenthesized_expression "(*(char *)(iVar6 + 0x18b5) == '\0')" ( (binary_expression "*(char *)(iVar6 + 0x18b5) == '\0'" (pointer_expression "*(char *)(iVar6 + 0x18b5)" * (cast_expression "(char *)(iVar6 + 0x18b5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x18b5)" ( (binary_expression "iVar6 + 0x18b5" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(*(char *)(iVar6 + 0x1a29) != '\0')" ( (binary_expression "*(char *)(iVar6 + 0x1a29) != '\0'" (pointer_expression "*(char *)(iVar6 + 0x1a29)" * (cast_expression "(char *)(iVar6 + 0x1a29)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x1a29)" ( (binary_expression "iVar6 + 0x1a29" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) || (parenthesized_expression "((uVar2 << 0x10) >> 0x1d != 0)" ( (binary_expression "(uVar2 << 0x10) >> 0x1d != 0" (binary_expression "(uVar2 << 0x10) >> 0x1d" (parenthesized_expression "(uVar2 << 0x10)" ( (binary_expression "uVar2 << 0x10" identifier << number_literal) )) >> number_literal) != number_literal) ))) )) (compound_statement "{\n    if ((uVar2 & 0xe000) != 0) {\nLAB_0022ebf4:\n      iVar6 = Version_script_info::get_symbol_version\n                        ((Version_script_info *)(iVar6 + 0x59b8),*(char **)this,(string *)0x0,\n                         (bool *)local_40);\n      if ((iVar6 != 0) && (local_40[0]._0_1_ == '\0')) {\nLAB_0022ec20:\n        if (-1 < *(int *)(this + 0x28) << 0x1c) {\n          return uVar4;\n        }\n        uVar3 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x35f0);\n        FUN_0022e934(local_40,*(undefined4 *)this);\n                    \n        (*(code *)PTR_gold_warning_0043245c)(uVar3,local_40[0]);\n        if (local_40[0] == auStack_38) {\n          return 0;\n        }\n        (*(code *)PTR_operator_delete_0043228c)();\n        return 0;\n      }\n      iVar6 = *(int *)(*(int *)puVar1 + 8);\n      if (iVar6 == 0) goto LAB_0022ee04;\n      if (*(int *)(iVar6 + 0x1348) != 0) {\n        iVar7 = *(int *)this;\n        local_40[0] = auStack_38;\n        if (iVar7 == 0) {\n          iVar5 = -1;\n        }\n        else {\n          iVar5 = (*(code *)PTR_strlen_0043677c)(iVar7);\n          iVar5 = iVar7 + iVar5;\n        }\n        (*(code *)PTR__M_construct<char_const*>_00432488)(local_40,iVar7,iVar5,0);\n        (*(code *)PTR_find_00433360)(local_28,iVar6 + 0x133c,local_40);\n        if (local_28[0] != 0) {\n          if (local_40[0] != auStack_38) {\n            (*(code *)PTR_operator_delete_0043228c)();\n          }\n          goto LAB_0022ec20;\n        }\n        if (local_40[0] != auStack_38) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n      }\n      uVar2 = *(uint *)(this + 0x28);\n      goto LAB_0022ecdc;\n    }\n    uVar8 = (uVar2 << 0x1c) >> 0x1f;\n    if (-1 < *(int *)(*(int *)(this + 8) + 0x2c)) {\n      iVar6 = *(int *)(*(int *)PTR_parameters_00432be0 + 8);\n      goto LAB_0022ebf4;\n    }\n  }" { (if_statement "if ((uVar2 & 0xe000) != 0) {\nLAB_0022ebf4:\n      iVar6 = Version_script_info::get_symbol_version\n                        ((Version_script_info *)(iVar6 + 0x59b8),*(char **)this,(string *)0x0,\n                         (bool *)local_40);\n      if ((iVar6 != 0) && (local_40[0]._0_1_ == '\0')) {\nLAB_0022ec20:\n        if (-1 < *(int *)(this + 0x28) << 0x1c) {\n          return uVar4;\n        }\n        uVar3 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x35f0);\n        FUN_0022e934(local_40,*(undefined4 *)this);\n                    \n        (*(code *)PTR_gold_warning_0043245c)(uVar3,local_40[0]);\n        if (local_40[0] == auStack_38) {\n          return 0;\n        }\n        (*(code *)PTR_operator_delete_0043228c)();\n        return 0;\n      }\n      iVar6 = *(int *)(*(int *)puVar1 + 8);\n      if (iVar6 == 0) goto LAB_0022ee04;\n      if (*(int *)(iVar6 + 0x1348) != 0) {\n        iVar7 = *(int *)this;\n        local_40[0] = auStack_38;\n        if (iVar7 == 0) {\n          iVar5 = -1;\n        }\n        else {\n          iVar5 = (*(code *)PTR_strlen_0043677c)(iVar7);\n          iVar5 = iVar7 + iVar5;\n        }\n        (*(code *)PTR__M_construct<char_const*>_00432488)(local_40,iVar7,iVar5,0);\n        (*(code *)PTR_find_00433360)(local_28,iVar6 + 0x133c,local_40);\n        if (local_28[0] != 0) {\n          if (local_40[0] != auStack_38) {\n            (*(code *)PTR_operator_delete_0043228c)();\n          }\n          goto LAB_0022ec20;\n        }\n        if (local_40[0] != auStack_38) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n      }\n      uVar2 = *(uint *)(this + 0x28);\n      goto LAB_0022ecdc;\n    }" if (parenthesized_expression "((uVar2 & 0xe000) != 0)" ( (binary_expression "(uVar2 & 0xe000) != 0" (parenthesized_expression "(uVar2 & 0xe000)" ( (binary_expression "uVar2 & 0xe000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_0022ebf4:\n      iVar6 = Version_script_info::get_symbol_version\n                        ((Version_script_info *)(iVar6 + 0x59b8),*(char **)this,(string *)0x0,\n                         (bool *)local_40);\n      if ((iVar6 != 0) && (local_40[0]._0_1_ == '\0')) {\nLAB_0022ec20:\n        if (-1 < *(int *)(this + 0x28) << 0x1c) {\n          return uVar4;\n        }\n        uVar3 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x35f0);\n        FUN_0022e934(local_40,*(undefined4 *)this);\n                    \n        (*(code *)PTR_gold_warning_0043245c)(uVar3,local_40[0]);\n        if (local_40[0] == auStack_38) {\n          return 0;\n        }\n        (*(code *)PTR_operator_delete_0043228c)();\n        return 0;\n      }\n      iVar6 = *(int *)(*(int *)puVar1 + 8);\n      if (iVar6 == 0) goto LAB_0022ee04;\n      if (*(int *)(iVar6 + 0x1348) != 0) {\n        iVar7 = *(int *)this;\n        local_40[0] = auStack_38;\n        if (iVar7 == 0) {\n          iVar5 = -1;\n        }\n        else {\n          iVar5 = (*(code *)PTR_strlen_0043677c)(iVar7);\n          iVar5 = iVar7 + iVar5;\n        }\n        (*(code *)PTR__M_construct<char_const*>_00432488)(local_40,iVar7,iVar5,0);\n        (*(code *)PTR_find_00433360)(local_28,iVar6 + 0x133c,local_40);\n        if (local_28[0] != 0) {\n          if (local_40[0] != auStack_38) {\n            (*(code *)PTR_operator_delete_0043228c)();\n          }\n          goto LAB_0022ec20;\n        }\n        if (local_40[0] != auStack_38) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n      }\n      uVar2 = *(uint *)(this + 0x28);\n      goto LAB_0022ecdc;\n    }" { (labeled_statement "LAB_0022ebf4:\n      iVar6 = Version_script_info::get_symbol_version\n                        ((Version_script_info *)(iVar6 + 0x59b8),*(char **)this,(string *)0x0,\n                         (bool *)local_40);" statement_identifier : (ERROR "iVar6 = Version_script_info::" (assignment_expression "iVar6 = Version_script_info" identifier = identifier) : :) (expression_statement "get_symbol_version\n                        ((Version_script_info *)(iVar6 + 0x59b8),*(char **)this,(string *)0x0,\n                         (bool *)local_40);" (call_expression "get_symbol_version\n                        ((Version_script_info *)(iVar6 + 0x59b8),*(char **)this,(string *)0x0,\n                         (bool *)local_40)" identifier (argument_list "((Version_script_info *)(iVar6 + 0x59b8),*(char **)this,(string *)0x0,\n                         (bool *)local_40)" ( (cast_expression "(Version_script_info *)(iVar6 + 0x59b8)" ( (type_descriptor "Version_script_info *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x59b8)" ( (binary_expression "iVar6 + 0x59b8" identifier + number_literal) ))) , (pointer_expression "*(char **)this" * (cast_expression "(char **)this" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) , (cast_expression "(string *)0x0" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(bool *)local_40" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)) (if_statement "if ((iVar6 != 0) && (local_40[0]._0_1_ == '\0')) {\nLAB_0022ec20:\n        if (-1 < *(int *)(this + 0x28) << 0x1c) {\n          return uVar4;\n        }\n        uVar3 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x35f0);\n        FUN_0022e934(local_40,*(undefined4 *)this);\n                    \n        (*(code *)PTR_gold_warning_0043245c)(uVar3,local_40[0]);\n        if (local_40[0] == auStack_38) {\n          return 0;\n        }\n        (*(code *)PTR_operator_delete_0043228c)();\n        return 0;\n      }" if (parenthesized_expression "((iVar6 != 0) && (local_40[0]._0_1_ == '\0'))" ( (binary_expression "(iVar6 != 0) && (local_40[0]._0_1_ == '\0')" (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) && (parenthesized_expression "(local_40[0]._0_1_ == '\0')" ( (binary_expression "local_40[0]._0_1_ == '\0'" (field_expression "local_40[0]._0_1_" (subscript_expression "local_40[0]" identifier [ number_literal ]) . field_identifier) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\nLAB_0022ec20:\n        if (-1 < *(int *)(this + 0x28) << 0x1c) {\n          return uVar4;\n        }\n        uVar3 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x35f0);\n        FUN_0022e934(local_40,*(undefined4 *)this);\n                    \n        (*(code *)PTR_gold_warning_0043245c)(uVar3,local_40[0]);\n        if (local_40[0] == auStack_38) {\n          return 0;\n        }\n        (*(code *)PTR_operator_delete_0043228c)();\n        return 0;\n      }" { (labeled_statement "LAB_0022ec20:\n        if (-1 < *(int *)(this + 0x28) << 0x1c) {\n          return uVar4;\n        }" statement_identifier : (if_statement "if (-1 < *(int *)(this + 0x28) << 0x1c) {\n          return uVar4;\n        }" if (parenthesized_expression "(-1 < *(int *)(this + 0x28) << 0x1c)" ( (binary_expression "-1 < *(int *)(this + 0x28) << 0x1c" number_literal < (binary_expression "*(int *)(this + 0x28) << 0x1c" (pointer_expression "*(int *)(this + 0x28)" * (cast_expression "(int *)(this + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x28)" ( (binary_expression "this + 0x28" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\n          return uVar4;\n        }" { (return_statement "return uVar4;" return identifier ;) }))) (expression_statement "uVar3 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x35f0);" (assignment_expression "uVar3 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x35f0)" identifier = (call_expression "(*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x35f0)" (parenthesized_expression "(*(code *)PTR_gettext_00436818)" ( (pointer_expression "*(code *)PTR_gettext_00436818" * (cast_expression "(code *)PTR_gettext_00436818" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0043226c + -0x35f0)" ( (binary_expression "PTR_DAT_0043226c + -0x35f0" identifier + number_literal) )))) ;) (expression_statement "FUN_0022e934(local_40,*(undefined4 *)this);" (call_expression "FUN_0022e934(local_40,*(undefined4 *)this)" identifier (argument_list "(local_40,*(undefined4 *)this)" ( identifier , (pointer_expression "*(undefined4 *)this" * (cast_expression "(undefined4 *)this" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (expression_statement "(*(code *)PTR_gold_warning_0043245c)(uVar3,local_40[0]);" (call_expression "(*(code *)PTR_gold_warning_0043245c)(uVar3,local_40[0])" (parenthesized_expression "(*(code *)PTR_gold_warning_0043245c)" ( (pointer_expression "*(code *)PTR_gold_warning_0043245c" * (cast_expression "(code *)PTR_gold_warning_0043245c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar3,local_40[0])" ( identifier , (subscript_expression "local_40[0]" identifier [ number_literal ]) ))) ;) (if_statement "if (local_40[0] == auStack_38) {\n          return 0;\n        }" if (parenthesized_expression "(local_40[0] == auStack_38)" ( (binary_expression "local_40[0] == auStack_38" (subscript_expression "local_40[0]" identifier [ number_literal ]) == identifier) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" ( (pointer_expression "*(code *)PTR_operator_delete_0043228c" * (cast_expression "(code *)PTR_operator_delete_0043228c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar6 = *(int *)(*(int *)puVar1 + 8);" (assignment_expression "iVar6 = *(int *)(*(int *)puVar1 + 8)" identifier = (pointer_expression "*(int *)(*(int *)puVar1 + 8)" * (cast_expression "(int *)(*(int *)puVar1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar1 + 8)" ( (binary_expression "*(int *)puVar1 + 8" (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ;) (if_statement "if (iVar6 == 0) goto LAB_0022ee04;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0022ee04;" goto statement_identifier ;)) (if_statement "if (*(int *)(iVar6 + 0x1348) != 0) {\n        iVar7 = *(int *)this;\n        local_40[0] = auStack_38;\n        if (iVar7 == 0) {\n          iVar5 = -1;\n        }\n        else {\n          iVar5 = (*(code *)PTR_strlen_0043677c)(iVar7);\n          iVar5 = iVar7 + iVar5;\n        }\n        (*(code *)PTR__M_construct<char_const*>_00432488)(local_40,iVar7,iVar5,0);\n        (*(code *)PTR_find_00433360)(local_28,iVar6 + 0x133c,local_40);\n        if (local_28[0] != 0) {\n          if (local_40[0] != auStack_38) {\n            (*(code *)PTR_operator_delete_0043228c)();\n          }\n          goto LAB_0022ec20;\n        }\n        if (local_40[0] != auStack_38) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n      }" if (parenthesized_expression "(*(int *)(iVar6 + 0x1348) != 0)" ( (binary_expression "*(int *)(iVar6 + 0x1348) != 0" (pointer_expression "*(int *)(iVar6 + 0x1348)" * (cast_expression "(int *)(iVar6 + 0x1348)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x1348)" ( (binary_expression "iVar6 + 0x1348" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        iVar7 = *(int *)this;\n        local_40[0] = auStack_38;\n        if (iVar7 == 0) {\n          iVar5 = -1;\n        }\n        else {\n          iVar5 = (*(code *)PTR_strlen_0043677c)(iVar7);\n          iVar5 = iVar7 + iVar5;\n        }\n        (*(code *)PTR__M_construct<char_const*>_00432488)(local_40,iVar7,iVar5,0);\n        (*(code *)PTR_find_00433360)(local_28,iVar6 + 0x133c,local_40);\n        if (local_28[0] != 0) {\n          if (local_40[0] != auStack_38) {\n            (*(code *)PTR_operator_delete_0043228c)();\n          }\n          goto LAB_0022ec20;\n        }\n        if (local_40[0] != auStack_38) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n      }" { (expression_statement "iVar7 = *(int *)this;" (assignment_expression "iVar7 = *(int *)this" identifier = (pointer_expression "*(int *)this" * (cast_expression "(int *)this" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "local_40[0] = auStack_38;" (assignment_expression "local_40[0] = auStack_38" (subscript_expression "local_40[0]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar7 == 0) {\n          iVar5 = -1;\n        }\n        else {\n          iVar5 = (*(code *)PTR_strlen_0043677c)(iVar7);\n          iVar5 = iVar7 + iVar5;\n        }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar5 = -1;\n        }" { (expression_statement "iVar5 = -1;" (assignment_expression "iVar5 = -1" identifier = number_literal) ;) }) (else_clause "else {\n          iVar5 = (*(code *)PTR_strlen_0043677c)(iVar7);\n          iVar5 = iVar7 + iVar5;\n        }" else (compound_statement "{\n          iVar5 = (*(code *)PTR_strlen_0043677c)(iVar7);\n          iVar5 = iVar7 + iVar5;\n        }" { (expression_statement "iVar5 = (*(code *)PTR_strlen_0043677c)(iVar7);" (assignment_expression "iVar5 = (*(code *)PTR_strlen_0043677c)(iVar7)" identifier = (call_expression "(*(code *)PTR_strlen_0043677c)(iVar7)" (parenthesized_expression "(*(code *)PTR_strlen_0043677c)" ( (pointer_expression "*(code *)PTR_strlen_0043677c" * (cast_expression "(code *)PTR_strlen_0043677c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar7)" ( identifier )))) ;) (expression_statement "iVar5 = iVar7 + iVar5;" (assignment_expression "iVar5 = iVar7 + iVar5" identifier = (binary_expression "iVar7 + iVar5" identifier + identifier)) ;) }))) (expression_statement "(*(code *)PTR__M_construct<char_const*>_00432488)(local_40,iVar7,iVar5,0);" (call_expression "(*(code *)PTR__M_construct<char_const*>_00432488)(local_40,iVar7,iVar5,0)" (parenthesized_expression "(*(code *)PTR__M_construct<char_const*>_00432488)" ( (binary_expression "*(code *)PTR__M_construct<char_const*>_00432488" (binary_expression "*(code *)PTR__M_construct<char_const" (pointer_expression "*(code *)PTR__M_construct" * (cast_expression "(code *)PTR__M_construct" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < identifier) (ERROR "*" *) > identifier) )) (argument_list "(local_40,iVar7,iVar5,0)" ( identifier , identifier , identifier , number_literal ))) ;) (expression_statement "(*(code *)PTR_find_00433360)(local_28,iVar6 + 0x133c,local_40);" (call_expression "(*(code *)PTR_find_00433360)(local_28,iVar6 + 0x133c,local_40)" (parenthesized_expression "(*(code *)PTR_find_00433360)" ( (pointer_expression "*(code *)PTR_find_00433360" * (cast_expression "(code *)PTR_find_00433360" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_28,iVar6 + 0x133c,local_40)" ( identifier , (binary_expression "iVar6 + 0x133c" identifier + number_literal) , identifier ))) ;) (if_statement "if (local_28[0] != 0) {\n          if (local_40[0] != auStack_38) {\n            (*(code *)PTR_operator_delete_0043228c)();\n          }\n          goto LAB_0022ec20;\n        }" if (parenthesized_expression "(local_28[0] != 0)" ( (binary_expression "local_28[0] != 0" (subscript_expression "local_28[0]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n          if (local_40[0] != auStack_38) {\n            (*(code *)PTR_operator_delete_0043228c)();\n          }\n          goto LAB_0022ec20;\n        }" { (if_statement "if (local_40[0] != auStack_38) {\n            (*(code *)PTR_operator_delete_0043228c)();\n          }" if (parenthesized_expression "(local_40[0] != auStack_38)" ( (binary_expression "local_40[0] != auStack_38" (subscript_expression "local_40[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n            (*(code *)PTR_operator_delete_0043228c)();\n          }" { (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" ( (pointer_expression "*(code *)PTR_operator_delete_0043228c" * (cast_expression "(code *)PTR_operator_delete_0043228c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (goto_statement "goto LAB_0022ec20;" goto statement_identifier ;) })) (if_statement "if (local_40[0] != auStack_38) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }" if (parenthesized_expression "(local_40[0] != auStack_38)" ( (binary_expression "local_40[0] != auStack_38" (subscript_expression "local_40[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n          (*(code *)PTR_operator_delete_0043228c)();\n        }" { (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" ( (pointer_expression "*(code *)PTR_operator_delete_0043228c" * (cast_expression "(code *)PTR_operator_delete_0043228c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) })) (expression_statement "uVar2 = *(uint *)(this + 0x28);" (assignment_expression "uVar2 = *(uint *)(this + 0x28)" identifier = (pointer_expression "*(uint *)(this + 0x28)" * (cast_expression "(uint *)(this + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x28)" ( (binary_expression "this + 0x28" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0022ecdc;" goto statement_identifier ;) })) (expression_statement "uVar8 = (uVar2 << 0x1c) >> 0x1f;" (assignment_expression "uVar8 = (uVar2 << 0x1c) >> 0x1f" identifier = (binary_expression "(uVar2 << 0x1c) >> 0x1f" (parenthesized_expression "(uVar2 << 0x1c)" ( (binary_expression "uVar2 << 0x1c" identifier << number_literal) )) >> number_literal)) ;) (if_statement "if (-1 < *(int *)(*(int *)(this + 8) + 0x2c)) {\n      iVar6 = *(int *)(*(int *)PTR_parameters_00432be0 + 8);\n      goto LAB_0022ebf4;\n    }" if (parenthesized_expression "(-1 < *(int *)(*(int *)(this + 8) + 0x2c))" ( (binary_expression "-1 < *(int *)(*(int *)(this + 8) + 0x2c)" number_literal < (pointer_expression "*(int *)(*(int *)(this + 8) + 0x2c)" * (cast_expression "(int *)(*(int *)(this + 8) + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(this + 8) + 0x2c)" ( (binary_expression "*(int *)(this + 8) + 0x2c" (pointer_expression "*(int *)(this + 8)" * (cast_expression "(int *)(this + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) )))) + number_literal) ))))) )) (compound_statement "{\n      iVar6 = *(int *)(*(int *)PTR_parameters_00432be0 + 8);\n      goto LAB_0022ebf4;\n    }" { (expression_statement "iVar6 = *(int *)(*(int *)PTR_parameters_00432be0 + 8);" (assignment_expression "iVar6 = *(int *)(*(int *)PTR_parameters_00432be0 + 8)" identifier = (pointer_expression "*(int *)(*(int *)PTR_parameters_00432be0 + 8)" * (cast_expression "(int *)(*(int *)PTR_parameters_00432be0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_parameters_00432be0 + 8)" ( (binary_expression "*(int *)PTR_parameters_00432be0 + 8" (pointer_expression "*(int *)PTR_parameters_00432be0" * (cast_expression "(int *)PTR_parameters_00432be0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ;) (goto_statement "goto LAB_0022ebf4;" goto statement_identifier ;) })) }) (else_clause "else {\n    if ((uVar2 & 0xe000) != 0) {\n      uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                        (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + -0x2a70);\n      return uVar4;\n    }\n    uVar8 = *(uint *)(this + 8);\n    if (-1 < *(int *)(uVar8 + 0x2c)) {\n      if (((int)(uVar2 << 0x1d) < 0) && (uVar2 = *(uint *)(this + 0xc), uVar2 != 0)) {\n        if ((uint)(*(int *)(uVar8 + 0x3c) - *(int *)(uVar8 + 0x38) >> 2) <= uVar2) {\n          uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                            (PTR_LAB_0043220c + 0x44a8,0x50b,PTR_DAT_0043226c + -0x2a84);\n          return uVar4;\n        }\n        if (*(int *)(*(int *)(uVar8 + 0x38) + uVar2 * 4) == 0) {\n          iVar6 = Symbol_table::is_section_folded((Relobj *)param_1,uVar8);\n          if (iVar6 == 0) {\n            return 0;\n          }\n          uVar2 = *(uint *)(this + 0x28);\n          if (((uVar2 & 0xe000) == 0) &&\n             (uVar8 = (uVar2 << 0x1c) >> 0x1f, *(int *)(*(int *)(this + 8) + 0x2c) < 0))\n          goto LAB_0022ece0;\n        }\n      }\n      iVar6 = *(int *)(*(int *)puVar1 + 8);\n      if (iVar6 == 0) goto LAB_0022ee04;\n      goto LAB_0022ebf4;\n    }\nLAB_0022ecdc:\n    uVar8 = (uVar2 << 0x1c) >> 0x1f;\n  }" else (compound_statement "{\n    if ((uVar2 & 0xe000) != 0) {\n      uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                        (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + -0x2a70);\n      return uVar4;\n    }\n    uVar8 = *(uint *)(this + 8);\n    if (-1 < *(int *)(uVar8 + 0x2c)) {\n      if (((int)(uVar2 << 0x1d) < 0) && (uVar2 = *(uint *)(this + 0xc), uVar2 != 0)) {\n        if ((uint)(*(int *)(uVar8 + 0x3c) - *(int *)(uVar8 + 0x38) >> 2) <= uVar2) {\n          uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                            (PTR_LAB_0043220c + 0x44a8,0x50b,PTR_DAT_0043226c + -0x2a84);\n          return uVar4;\n        }\n        if (*(int *)(*(int *)(uVar8 + 0x38) + uVar2 * 4) == 0) {\n          iVar6 = Symbol_table::is_section_folded((Relobj *)param_1,uVar8);\n          if (iVar6 == 0) {\n            return 0;\n          }\n          uVar2 = *(uint *)(this + 0x28);\n          if (((uVar2 & 0xe000) == 0) &&\n             (uVar8 = (uVar2 << 0x1c) >> 0x1f, *(int *)(*(int *)(this + 8) + 0x2c) < 0))\n          goto LAB_0022ece0;\n        }\n      }\n      iVar6 = *(int *)(*(int *)puVar1 + 8);\n      if (iVar6 == 0) goto LAB_0022ee04;\n      goto LAB_0022ebf4;\n    }\nLAB_0022ecdc:\n    uVar8 = (uVar2 << 0x1c) >> 0x1f;\n  }" { (if_statement "if ((uVar2 & 0xe000) != 0) {\n      uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                        (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + -0x2a70);\n      return uVar4;\n    }" if (parenthesized_expression "((uVar2 & 0xe000) != 0)" ( (binary_expression "(uVar2 & 0xe000) != 0" (parenthesized_expression "(uVar2 & 0xe000)" ( (binary_expression "uVar2 & 0xe000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                        (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + -0x2a70);\n      return uVar4;\n    }" { (expression_statement "uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                        (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + -0x2a70);" (assignment_expression "uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                        (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + -0x2a70)" identifier = (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                        (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + -0x2a70)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + -0x2a70)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5bdc" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0043226c + -0x2a70" identifier + number_literal) )))) ;) (return_statement "return uVar4;" return identifier ;) })) (expression_statement "uVar8 = *(uint *)(this + 8);" (assignment_expression "uVar8 = *(uint *)(this + 8)" identifier = (pointer_expression "*(uint *)(this + 8)" * (cast_expression "(uint *)(this + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) ))))) ;) (if_statement "if (-1 < *(int *)(uVar8 + 0x2c)) {\n      if (((int)(uVar2 << 0x1d) < 0) && (uVar2 = *(uint *)(this + 0xc), uVar2 != 0)) {\n        if ((uint)(*(int *)(uVar8 + 0x3c) - *(int *)(uVar8 + 0x38) >> 2) <= uVar2) {\n          uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                            (PTR_LAB_0043220c + 0x44a8,0x50b,PTR_DAT_0043226c + -0x2a84);\n          return uVar4;\n        }\n        if (*(int *)(*(int *)(uVar8 + 0x38) + uVar2 * 4) == 0) {\n          iVar6 = Symbol_table::is_section_folded((Relobj *)param_1,uVar8);\n          if (iVar6 == 0) {\n            return 0;\n          }\n          uVar2 = *(uint *)(this + 0x28);\n          if (((uVar2 & 0xe000) == 0) &&\n             (uVar8 = (uVar2 << 0x1c) >> 0x1f, *(int *)(*(int *)(this + 8) + 0x2c) < 0))\n          goto LAB_0022ece0;\n        }\n      }\n      iVar6 = *(int *)(*(int *)puVar1 + 8);\n      if (iVar6 == 0) goto LAB_0022ee04;\n      goto LAB_0022ebf4;\n    }" if (parenthesized_expression "(-1 < *(int *)(uVar8 + 0x2c))" ( (binary_expression "-1 < *(int *)(uVar8 + 0x2c)" number_literal < (pointer_expression "*(int *)(uVar8 + 0x2c)" * (cast_expression "(int *)(uVar8 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar8 + 0x2c)" ( (binary_expression "uVar8 + 0x2c" identifier + number_literal) ))))) )) (compound_statement "{\n      if (((int)(uVar2 << 0x1d) < 0) && (uVar2 = *(uint *)(this + 0xc), uVar2 != 0)) {\n        if ((uint)(*(int *)(uVar8 + 0x3c) - *(int *)(uVar8 + 0x38) >> 2) <= uVar2) {\n          uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                            (PTR_LAB_0043220c + 0x44a8,0x50b,PTR_DAT_0043226c + -0x2a84);\n          return uVar4;\n        }\n        if (*(int *)(*(int *)(uVar8 + 0x38) + uVar2 * 4) == 0) {\n          iVar6 = Symbol_table::is_section_folded((Relobj *)param_1,uVar8);\n          if (iVar6 == 0) {\n            return 0;\n          }\n          uVar2 = *(uint *)(this + 0x28);\n          if (((uVar2 & 0xe000) == 0) &&\n             (uVar8 = (uVar2 << 0x1c) >> 0x1f, *(int *)(*(int *)(this + 8) + 0x2c) < 0))\n          goto LAB_0022ece0;\n        }\n      }\n      iVar6 = *(int *)(*(int *)puVar1 + 8);\n      if (iVar6 == 0) goto LAB_0022ee04;\n      goto LAB_0022ebf4;\n    }" { (if_statement "if (((int)(uVar2 << 0x1d) < 0) && (uVar2 = *(uint *)(this + 0xc), uVar2 != 0)) {\n        if ((uint)(*(int *)(uVar8 + 0x3c) - *(int *)(uVar8 + 0x38) >> 2) <= uVar2) {\n          uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                            (PTR_LAB_0043220c + 0x44a8,0x50b,PTR_DAT_0043226c + -0x2a84);\n          return uVar4;\n        }\n        if (*(int *)(*(int *)(uVar8 + 0x38) + uVar2 * 4) == 0) {\n          iVar6 = Symbol_table::is_section_folded((Relobj *)param_1,uVar8);\n          if (iVar6 == 0) {\n            return 0;\n          }\n          uVar2 = *(uint *)(this + 0x28);\n          if (((uVar2 & 0xe000) == 0) &&\n             (uVar8 = (uVar2 << 0x1c) >> 0x1f, *(int *)(*(int *)(this + 8) + 0x2c) < 0))\n          goto LAB_0022ece0;\n        }\n      }" if (parenthesized_expression "(((int)(uVar2 << 0x1d) < 0) && (uVar2 = *(uint *)(this + 0xc), uVar2 != 0))" ( (binary_expression "((int)(uVar2 << 0x1d) < 0) && (uVar2 = *(uint *)(this + 0xc), uVar2 != 0)" (parenthesized_expression "((int)(uVar2 << 0x1d) < 0)" ( (binary_expression "(int)(uVar2 << 0x1d) < 0" (cast_expression "(int)(uVar2 << 0x1d)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar2 << 0x1d)" ( (binary_expression "uVar2 << 0x1d" identifier << number_literal) ))) < number_literal) )) && (parenthesized_expression "(uVar2 = *(uint *)(this + 0xc), uVar2 != 0)" ( (comma_expression "uVar2 = *(uint *)(this + 0xc), uVar2 != 0" (assignment_expression "uVar2 = *(uint *)(this + 0xc)" identifier = (pointer_expression "*(uint *)(this + 0xc)" * (cast_expression "(uint *)(this + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0xc)" ( (binary_expression "this + 0xc" identifier + number_literal) ))))) , (binary_expression "uVar2 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n        if ((uint)(*(int *)(uVar8 + 0x3c) - *(int *)(uVar8 + 0x38) >> 2) <= uVar2) {\n          uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                            (PTR_LAB_0043220c + 0x44a8,0x50b,PTR_DAT_0043226c + -0x2a84);\n          return uVar4;\n        }\n        if (*(int *)(*(int *)(uVar8 + 0x38) + uVar2 * 4) == 0) {\n          iVar6 = Symbol_table::is_section_folded((Relobj *)param_1,uVar8);\n          if (iVar6 == 0) {\n            return 0;\n          }\n          uVar2 = *(uint *)(this + 0x28);\n          if (((uVar2 & 0xe000) == 0) &&\n             (uVar8 = (uVar2 << 0x1c) >> 0x1f, *(int *)(*(int *)(this + 8) + 0x2c) < 0))\n          goto LAB_0022ece0;\n        }\n      }" { (if_statement "if ((uint)(*(int *)(uVar8 + 0x3c) - *(int *)(uVar8 + 0x38) >> 2) <= uVar2) {\n          uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                            (PTR_LAB_0043220c + 0x44a8,0x50b,PTR_DAT_0043226c + -0x2a84);\n          return uVar4;\n        }" if (parenthesized_expression "((uint)(*(int *)(uVar8 + 0x3c) - *(int *)(uVar8 + 0x38) >> 2) <= uVar2)" ( (binary_expression "(uint)(*(int *)(uVar8 + 0x3c) - *(int *)(uVar8 + 0x38) >> 2) <= uVar2" (call_expression "(uint)(*(int *)(uVar8 + 0x3c) - *(int *)(uVar8 + 0x38) >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(uVar8 + 0x3c) - *(int *)(uVar8 + 0x38) >> 2)" ( (binary_expression "*(int *)(uVar8 + 0x3c) - *(int *)(uVar8 + 0x38) >> 2" (binary_expression "*(int *)(uVar8 + 0x3c) - *(int *)(uVar8 + 0x38)" (pointer_expression "*(int *)(uVar8 + 0x3c)" * (cast_expression "(int *)(uVar8 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar8 + 0x3c)" ( (binary_expression "uVar8 + 0x3c" identifier + number_literal) )))) - (pointer_expression "*(int *)(uVar8 + 0x38)" * (cast_expression "(int *)(uVar8 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar8 + 0x38)" ( (binary_expression "uVar8 + 0x38" identifier + number_literal) ))))) >> number_literal) ))) <= identifier) )) (compound_statement "{\n          uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                            (PTR_LAB_0043220c + 0x44a8,0x50b,PTR_DAT_0043226c + -0x2a84);\n          return uVar4;\n        }" { (expression_statement "uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                            (PTR_LAB_0043220c + 0x44a8,0x50b,PTR_DAT_0043226c + -0x2a84);" (assignment_expression "uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                            (PTR_LAB_0043220c + 0x44a8,0x50b,PTR_DAT_0043226c + -0x2a84)" identifier = (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                            (PTR_LAB_0043220c + 0x44a8,0x50b,PTR_DAT_0043226c + -0x2a84)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_0043220c + 0x44a8,0x50b,PTR_DAT_0043226c + -0x2a84)" ( (binary_expression "PTR_LAB_0043220c + 0x44a8" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0043226c + -0x2a84" identifier + number_literal) )))) ;) (return_statement "return uVar4;" return identifier ;) })) (if_statement "if (*(int *)(*(int *)(uVar8 + 0x38) + uVar2 * 4) == 0) {\n          iVar6 = Symbol_table::is_section_folded((Relobj *)param_1,uVar8);\n          if (iVar6 == 0) {\n            return 0;\n          }\n          uVar2 = *(uint *)(this + 0x28);\n          if (((uVar2 & 0xe000) == 0) &&\n             (uVar8 = (uVar2 << 0x1c) >> 0x1f, *(int *)(*(int *)(this + 8) + 0x2c) < 0))\n          goto LAB_0022ece0;\n        }" if (parenthesized_expression "(*(int *)(*(int *)(uVar8 + 0x38) + uVar2 * 4) == 0)" ( (binary_expression "*(int *)(*(int *)(uVar8 + 0x38) + uVar2 * 4) == 0" (pointer_expression "*(int *)(*(int *)(uVar8 + 0x38) + uVar2 * 4)" * (cast_expression "(int *)(*(int *)(uVar8 + 0x38) + uVar2 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(uVar8 + 0x38) + uVar2 * 4)" ( (binary_expression "*(int *)(uVar8 + 0x38) + uVar2 * 4" (pointer_expression "*(int *)(uVar8 + 0x38)" * (cast_expression "(int *)(uVar8 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar8 + 0x38)" ( (binary_expression "uVar8 + 0x38" identifier + number_literal) )))) + (binary_expression "uVar2 * 4" identifier * number_literal)) )))) == number_literal) )) (compound_statement "{\n          iVar6 = Symbol_table::is_section_folded((Relobj *)param_1,uVar8);\n          if (iVar6 == 0) {\n            return 0;\n          }\n          uVar2 = *(uint *)(this + 0x28);\n          if (((uVar2 & 0xe000) == 0) &&\n             (uVar8 = (uVar2 << 0x1c) >> 0x1f, *(int *)(*(int *)(this + 8) + 0x2c) < 0))\n          goto LAB_0022ece0;\n        }" { (ERROR "iVar6 = Symbol_table::" (assignment_expression "iVar6 = Symbol_table" identifier = identifier) : :) (expression_statement "is_section_folded((Relobj *)param_1,uVar8);" (call_expression "is_section_folded((Relobj *)param_1,uVar8)" identifier (argument_list "((Relobj *)param_1,uVar8)" ( (cast_expression "(Relobj *)param_1" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (if_statement "if (iVar6 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar2 = *(uint *)(this + 0x28);" (assignment_expression "uVar2 = *(uint *)(this + 0x28)" identifier = (pointer_expression "*(uint *)(this + 0x28)" * (cast_expression "(uint *)(this + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x28)" ( (binary_expression "this + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (((uVar2 & 0xe000) == 0) &&\n             (uVar8 = (uVar2 << 0x1c) >> 0x1f, *(int *)(*(int *)(this + 8) + 0x2c) < 0))\n          goto LAB_0022ece0;" if (parenthesized_expression "(((uVar2 & 0xe000) == 0) &&\n             (uVar8 = (uVar2 << 0x1c) >> 0x1f, *(int *)(*(int *)(this + 8) + 0x2c) < 0))" ( (binary_expression "((uVar2 & 0xe000) == 0) &&\n             (uVar8 = (uVar2 << 0x1c) >> 0x1f, *(int *)(*(int *)(this + 8) + 0x2c) < 0)" (parenthesized_expression "((uVar2 & 0xe000) == 0)" ( (binary_expression "(uVar2 & 0xe000) == 0" (parenthesized_expression "(uVar2 & 0xe000)" ( (binary_expression "uVar2 & 0xe000" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(uVar8 = (uVar2 << 0x1c) >> 0x1f, *(int *)(*(int *)(this + 8) + 0x2c) < 0)" ( (comma_expression "uVar8 = (uVar2 << 0x1c) >> 0x1f, *(int *)(*(int *)(this + 8) + 0x2c) < 0" (assignment_expression "uVar8 = (uVar2 << 0x1c) >> 0x1f" identifier = (binary_expression "(uVar2 << 0x1c) >> 0x1f" (parenthesized_expression "(uVar2 << 0x1c)" ( (binary_expression "uVar2 << 0x1c" identifier << number_literal) )) >> number_literal)) , (binary_expression "*(int *)(*(int *)(this + 8) + 0x2c) < 0" (pointer_expression "*(int *)(*(int *)(this + 8) + 0x2c)" * (cast_expression "(int *)(*(int *)(this + 8) + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(this + 8) + 0x2c)" ( (binary_expression "*(int *)(this + 8) + 0x2c" (pointer_expression "*(int *)(this + 8)" * (cast_expression "(int *)(this + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) )))) + number_literal) )))) < number_literal)) ))) )) (goto_statement "goto LAB_0022ece0;" goto statement_identifier ;)) })) })) (expression_statement "iVar6 = *(int *)(*(int *)puVar1 + 8);" (assignment_expression "iVar6 = *(int *)(*(int *)puVar1 + 8)" identifier = (pointer_expression "*(int *)(*(int *)puVar1 + 8)" * (cast_expression "(int *)(*(int *)puVar1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar1 + 8)" ( (binary_expression "*(int *)puVar1 + 8" (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ;) (if_statement "if (iVar6 == 0) goto LAB_0022ee04;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0022ee04;" goto statement_identifier ;)) (goto_statement "goto LAB_0022ebf4;" goto statement_identifier ;) })) (labeled_statement "LAB_0022ecdc:\n    uVar8 = (uVar2 << 0x1c) >> 0x1f;" statement_identifier : (expression_statement "uVar8 = (uVar2 << 0x1c) >> 0x1f;" (assignment_expression "uVar8 = (uVar2 << 0x1c) >> 0x1f" identifier = (binary_expression "(uVar2 << 0x1c) >> 0x1f" (parenthesized_expression "(uVar2 << 0x1c)" ( (binary_expression "uVar2 << 0x1c" identifier << number_literal) )) >> number_literal)) ;)) }))) (labeled_statement "LAB_0022ece0:\n  if (uVar8 != 0) {\n    return 0;\n  }" statement_identifier : (if_statement "if (uVar8 != 0) {\n    return 0;\n  }" if (parenthesized_expression "(uVar8 != 0)" ( (binary_expression "uVar8 != 0" identifier != number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) }))) (expression_statement "iVar6 = *(int *)(*(int *)puVar1 + 8);" (assignment_expression "iVar6 = *(int *)(*(int *)puVar1 + 8)" identifier = (pointer_expression "*(int *)(*(int *)puVar1 + 8)" * (cast_expression "(int *)(*(int *)puVar1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar1 + 8)" ( (binary_expression "*(int *)puVar1 + 8" (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ;) (if_statement "if (iVar6 == 0) goto LAB_0022ee04;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0022ee04;" goto statement_identifier ;)) (if_statement "if (*(char *)(iVar6 + 0xe8d) == '\0') {\nLAB_0022eeb4:\n    if ((*(char *)(iVar6 + 0xf09) == '\0') && (*(char *)(iVar6 + 0xf85) == '\0')) goto LAB_0022ed40;\n    if ((uVar2 & 0xe000) == 0) {\n      iVar7 = *(int *)(this + 8);\n      goto LAB_0022ed34;\n    }\n  }\n  else {\n    if (((uVar2 & 0xe000) != 0) || (iVar7 = *(int *)(this + 8), -1 < *(int *)(iVar7 + 0x2c))) {\n      if (uVar2 >> 0x1c == 1) {\n        return uVar4;\n      }\n      goto LAB_0022eeb4;\n    }\n    if ((*(char *)(iVar6 + 0xf09) != '\0') || (*(char *)(iVar6 + 0xf85) == '\0')) goto LAB_0022ed40;\nLAB_0022ed34:\n    if (*(int *)(iVar7 + 0x2c) < 0) goto LAB_0022ed40;\n  }" if (parenthesized_expression "(*(char *)(iVar6 + 0xe8d) == '\0')" ( (binary_expression "*(char *)(iVar6 + 0xe8d) == '\0'" (pointer_expression "*(char *)(iVar6 + 0xe8d)" * (cast_expression "(char *)(iVar6 + 0xe8d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xe8d)" ( (binary_expression "iVar6 + 0xe8d" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0022eeb4:\n    if ((*(char *)(iVar6 + 0xf09) == '\0') && (*(char *)(iVar6 + 0xf85) == '\0')) goto LAB_0022ed40;\n    if ((uVar2 & 0xe000) == 0) {\n      iVar7 = *(int *)(this + 8);\n      goto LAB_0022ed34;\n    }\n  }" { (labeled_statement "LAB_0022eeb4:\n    if ((*(char *)(iVar6 + 0xf09) == '\0') && (*(char *)(iVar6 + 0xf85) == '\0')) goto LAB_0022ed40;" statement_identifier : (if_statement "if ((*(char *)(iVar6 + 0xf09) == '\0') && (*(char *)(iVar6 + 0xf85) == '\0')) goto LAB_0022ed40;" if (parenthesized_expression "((*(char *)(iVar6 + 0xf09) == '\0') && (*(char *)(iVar6 + 0xf85) == '\0'))" ( (binary_expression "(*(char *)(iVar6 + 0xf09) == '\0') && (*(char *)(iVar6 + 0xf85) == '\0')" (parenthesized_expression "(*(char *)(iVar6 + 0xf09) == '\0')" ( (binary_expression "*(char *)(iVar6 + 0xf09) == '\0'" (pointer_expression "*(char *)(iVar6 + 0xf09)" * (cast_expression "(char *)(iVar6 + 0xf09)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xf09)" ( (binary_expression "iVar6 + 0xf09" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(char *)(iVar6 + 0xf85) == '\0')" ( (binary_expression "*(char *)(iVar6 + 0xf85) == '\0'" (pointer_expression "*(char *)(iVar6 + 0xf85)" * (cast_expression "(char *)(iVar6 + 0xf85)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xf85)" ( (binary_expression "iVar6 + 0xf85" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_0022ed40;" goto statement_identifier ;))) (if_statement "if ((uVar2 & 0xe000) == 0) {\n      iVar7 = *(int *)(this + 8);\n      goto LAB_0022ed34;\n    }" if (parenthesized_expression "((uVar2 & 0xe000) == 0)" ( (binary_expression "(uVar2 & 0xe000) == 0" (parenthesized_expression "(uVar2 & 0xe000)" ( (binary_expression "uVar2 & 0xe000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      iVar7 = *(int *)(this + 8);\n      goto LAB_0022ed34;\n    }" { (expression_statement "iVar7 = *(int *)(this + 8);" (assignment_expression "iVar7 = *(int *)(this + 8)" identifier = (pointer_expression "*(int *)(this + 8)" * (cast_expression "(int *)(this + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0022ed34;" goto statement_identifier ;) })) }) (else_clause "else {\n    if (((uVar2 & 0xe000) != 0) || (iVar7 = *(int *)(this + 8), -1 < *(int *)(iVar7 + 0x2c))) {\n      if (uVar2 >> 0x1c == 1) {\n        return uVar4;\n      }\n      goto LAB_0022eeb4;\n    }\n    if ((*(char *)(iVar6 + 0xf09) != '\0') || (*(char *)(iVar6 + 0xf85) == '\0')) goto LAB_0022ed40;\nLAB_0022ed34:\n    if (*(int *)(iVar7 + 0x2c) < 0) goto LAB_0022ed40;\n  }" else (compound_statement "{\n    if (((uVar2 & 0xe000) != 0) || (iVar7 = *(int *)(this + 8), -1 < *(int *)(iVar7 + 0x2c))) {\n      if (uVar2 >> 0x1c == 1) {\n        return uVar4;\n      }\n      goto LAB_0022eeb4;\n    }\n    if ((*(char *)(iVar6 + 0xf09) != '\0') || (*(char *)(iVar6 + 0xf85) == '\0')) goto LAB_0022ed40;\nLAB_0022ed34:\n    if (*(int *)(iVar7 + 0x2c) < 0) goto LAB_0022ed40;\n  }" { (if_statement "if (((uVar2 & 0xe000) != 0) || (iVar7 = *(int *)(this + 8), -1 < *(int *)(iVar7 + 0x2c))) {\n      if (uVar2 >> 0x1c == 1) {\n        return uVar4;\n      }\n      goto LAB_0022eeb4;\n    }" if (parenthesized_expression "(((uVar2 & 0xe000) != 0) || (iVar7 = *(int *)(this + 8), -1 < *(int *)(iVar7 + 0x2c)))" ( (binary_expression "((uVar2 & 0xe000) != 0) || (iVar7 = *(int *)(this + 8), -1 < *(int *)(iVar7 + 0x2c))" (parenthesized_expression "((uVar2 & 0xe000) != 0)" ( (binary_expression "(uVar2 & 0xe000) != 0" (parenthesized_expression "(uVar2 & 0xe000)" ( (binary_expression "uVar2 & 0xe000" identifier & number_literal) )) != number_literal) )) || (parenthesized_expression "(iVar7 = *(int *)(this + 8), -1 < *(int *)(iVar7 + 0x2c))" ( (comma_expression "iVar7 = *(int *)(this + 8), -1 < *(int *)(iVar7 + 0x2c)" (assignment_expression "iVar7 = *(int *)(this + 8)" identifier = (pointer_expression "*(int *)(this + 8)" * (cast_expression "(int *)(this + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) ))))) , (binary_expression "-1 < *(int *)(iVar7 + 0x2c)" number_literal < (pointer_expression "*(int *)(iVar7 + 0x2c)" * (cast_expression "(int *)(iVar7 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x2c)" ( (binary_expression "iVar7 + 0x2c" identifier + number_literal) )))))) ))) )) (compound_statement "{\n      if (uVar2 >> 0x1c == 1) {\n        return uVar4;\n      }\n      goto LAB_0022eeb4;\n    }" { (if_statement "if (uVar2 >> 0x1c == 1) {\n        return uVar4;\n      }" if (parenthesized_expression "(uVar2 >> 0x1c == 1)" ( (binary_expression "uVar2 >> 0x1c == 1" (binary_expression "uVar2 >> 0x1c" identifier >> number_literal) == number_literal) )) (compound_statement "{\n        return uVar4;\n      }" { (return_statement "return uVar4;" return identifier ;) })) (goto_statement "goto LAB_0022eeb4;" goto statement_identifier ;) })) (if_statement "if ((*(char *)(iVar6 + 0xf09) != '\0') || (*(char *)(iVar6 + 0xf85) == '\0')) goto LAB_0022ed40;" if (parenthesized_expression "((*(char *)(iVar6 + 0xf09) != '\0') || (*(char *)(iVar6 + 0xf85) == '\0'))" ( (binary_expression "(*(char *)(iVar6 + 0xf09) != '\0') || (*(char *)(iVar6 + 0xf85) == '\0')" (parenthesized_expression "(*(char *)(iVar6 + 0xf09) != '\0')" ( (binary_expression "*(char *)(iVar6 + 0xf09) != '\0'" (pointer_expression "*(char *)(iVar6 + 0xf09)" * (cast_expression "(char *)(iVar6 + 0xf09)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xf09)" ( (binary_expression "iVar6 + 0xf09" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(*(char *)(iVar6 + 0xf85) == '\0')" ( (binary_expression "*(char *)(iVar6 + 0xf85) == '\0'" (pointer_expression "*(char *)(iVar6 + 0xf85)" * (cast_expression "(char *)(iVar6 + 0xf85)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xf85)" ( (binary_expression "iVar6 + 0xf85" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_0022ed40;" goto statement_identifier ;)) (labeled_statement "LAB_0022ed34:\n    if (*(int *)(iVar7 + 0x2c) < 0) goto LAB_0022ed40;" statement_identifier : (if_statement "if (*(int *)(iVar7 + 0x2c) < 0) goto LAB_0022ed40;" if (parenthesized_expression "(*(int *)(iVar7 + 0x2c) < 0)" ( (binary_expression "*(int *)(iVar7 + 0x2c) < 0" (pointer_expression "*(int *)(iVar7 + 0x2c)" * (cast_expression "(int *)(iVar7 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x2c)" ( (binary_expression "iVar7 + 0x2c" identifier + number_literal) )))) < number_literal) )) (goto_statement "goto LAB_0022ed40;" goto statement_identifier ;))) }))) (expression_statement "iVar6 = (*(code *)PTR_cplus_demangle_004335b0)(*(undefined4 *)this,3);" (assignment_expression "iVar6 = (*(code *)PTR_cplus_demangle_004335b0)(*(undefined4 *)this,3)" identifier = (call_expression "(*(code *)PTR_cplus_demangle_004335b0)(*(undefined4 *)this,3)" (parenthesized_expression "(*(code *)PTR_cplus_demangle_004335b0)" ( (pointer_expression "*(code *)PTR_cplus_demangle_004335b0" * (cast_expression "(code *)PTR_cplus_demangle_004335b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)this,3)" ( (pointer_expression "*(undefined4 *)this" * (cast_expression "(undefined4 *)this" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , number_literal )))) ;) (if_statement "if (iVar6 != 0) {\n    iVar7 = *(int *)(*(int *)puVar1 + 8);\n    if (iVar7 == 0) goto LAB_0022ee04;\n    uVar4 = (uint)*(byte *)(iVar7 + 0xf09);\n    if (((uVar4 != 0) &&\n        ((iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35d0,0xc), iVar5 == 0\n         || (iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35c0,0xf),\n            iVar5 == 0)))) ||\n       ((uVar4 = (uint)*(byte *)(iVar7 + 0xf85), uVar4 != 0 &&\n        ((iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35b0,0x11), iVar7 == 0\n         || (iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc),\n            iVar7 == 0)))))) {\n      (*(code *)PTR_free_00436800)(iVar6);\n      return uVar4;\n    }\n    (*(code *)PTR_free_00436800)(iVar6);\n  }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar7 = *(int *)(*(int *)puVar1 + 8);\n    if (iVar7 == 0) goto LAB_0022ee04;\n    uVar4 = (uint)*(byte *)(iVar7 + 0xf09);\n    if (((uVar4 != 0) &&\n        ((iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35d0,0xc), iVar5 == 0\n         || (iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35c0,0xf),\n            iVar5 == 0)))) ||\n       ((uVar4 = (uint)*(byte *)(iVar7 + 0xf85), uVar4 != 0 &&\n        ((iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35b0,0x11), iVar7 == 0\n         || (iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc),\n            iVar7 == 0)))))) {\n      (*(code *)PTR_free_00436800)(iVar6);\n      return uVar4;\n    }\n    (*(code *)PTR_free_00436800)(iVar6);\n  }" { (expression_statement "iVar7 = *(int *)(*(int *)puVar1 + 8);" (assignment_expression "iVar7 = *(int *)(*(int *)puVar1 + 8)" identifier = (pointer_expression "*(int *)(*(int *)puVar1 + 8)" * (cast_expression "(int *)(*(int *)puVar1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar1 + 8)" ( (binary_expression "*(int *)puVar1 + 8" (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ;) (if_statement "if (iVar7 == 0) goto LAB_0022ee04;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0022ee04;" goto statement_identifier ;)) (expression_statement "uVar4 = (uint)*(byte *)(iVar7 + 0xf09);" (assignment_expression "uVar4 = (uint)*(byte *)(iVar7 + 0xf09)" identifier = (binary_expression "(uint)*(byte *)(iVar7 + 0xf09)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar7 + 0xf09)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xf09)" ( (binary_expression "iVar7 + 0xf09" identifier + number_literal) ))))) ;) (if_statement "if (((uVar4 != 0) &&\n        ((iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35d0,0xc), iVar5 == 0\n         || (iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35c0,0xf),\n            iVar5 == 0)))) ||\n       ((uVar4 = (uint)*(byte *)(iVar7 + 0xf85), uVar4 != 0 &&\n        ((iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35b0,0x11), iVar7 == 0\n         || (iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc),\n            iVar7 == 0)))))) {\n      (*(code *)PTR_free_00436800)(iVar6);\n      return uVar4;\n    }" if (parenthesized_expression "(((uVar4 != 0) &&\n        ((iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35d0,0xc), iVar5 == 0\n         || (iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35c0,0xf),\n            iVar5 == 0)))) ||\n       ((uVar4 = (uint)*(byte *)(iVar7 + 0xf85), uVar4 != 0 &&\n        ((iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35b0,0x11), iVar7 == 0\n         || (iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc),\n            iVar7 == 0))))))" ( (binary_expression "((uVar4 != 0) &&\n        ((iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35d0,0xc), iVar5 == 0\n         || (iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35c0,0xf),\n            iVar5 == 0)))) ||\n       ((uVar4 = (uint)*(byte *)(iVar7 + 0xf85), uVar4 != 0 &&\n        ((iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35b0,0x11), iVar7 == 0\n         || (iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc),\n            iVar7 == 0)))))" (parenthesized_expression "((uVar4 != 0) &&\n        ((iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35d0,0xc), iVar5 == 0\n         || (iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35c0,0xf),\n            iVar5 == 0))))" ( (binary_expression "(uVar4 != 0) &&\n        ((iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35d0,0xc), iVar5 == 0\n         || (iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35c0,0xf),\n            iVar5 == 0)))" (parenthesized_expression "(uVar4 != 0)" ( (binary_expression "uVar4 != 0" identifier != number_literal) )) && (parenthesized_expression "((iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35d0,0xc), iVar5 == 0\n         || (iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35c0,0xf),\n            iVar5 == 0)))" ( (parenthesized_expression "(iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35d0,0xc), iVar5 == 0\n         || (iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35c0,0xf),\n            iVar5 == 0))" ( (comma_expression "iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35d0,0xc), iVar5 == 0\n         || (iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35c0,0xf),\n            iVar5 == 0)" (assignment_expression "iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35d0,0xc)" identifier = (call_expression "(*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35d0,0xc)" (parenthesized_expression "(*(code *)PTR_strncmp_004366a0)" ( (pointer_expression "*(code *)PTR_strncmp_004366a0" * (cast_expression "(code *)PTR_strncmp_004366a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar6,PTR_DAT_0043226c + -0x35d0,0xc)" ( identifier , (binary_expression "PTR_DAT_0043226c + -0x35d0" identifier + number_literal) , number_literal )))) , (binary_expression "iVar5 == 0\n         || (iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35c0,0xf),\n            iVar5 == 0)" (binary_expression "iVar5 == 0" identifier == number_literal) || (parenthesized_expression "(iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35c0,0xf),\n            iVar5 == 0)" ( (comma_expression "iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35c0,0xf),\n            iVar5 == 0" (assignment_expression "iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35c0,0xf)" identifier = (call_expression "(*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35c0,0xf)" (parenthesized_expression "(*(code *)PTR_strncmp_004366a0)" ( (pointer_expression "*(code *)PTR_strncmp_004366a0" * (cast_expression "(code *)PTR_strncmp_004366a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar6,PTR_DAT_0043226c + -0x35c0,0xf)" ( identifier , (binary_expression "PTR_DAT_0043226c + -0x35c0" identifier + number_literal) , number_literal )))) , (binary_expression "iVar5 == 0" identifier == number_literal)) )))) )) ))) )) || (parenthesized_expression "((uVar4 = (uint)*(byte *)(iVar7 + 0xf85), uVar4 != 0 &&\n        ((iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35b0,0x11), iVar7 == 0\n         || (iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc),\n            iVar7 == 0)))))" ( (parenthesized_expression "(uVar4 = (uint)*(byte *)(iVar7 + 0xf85), uVar4 != 0 &&\n        ((iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35b0,0x11), iVar7 == 0\n         || (iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc),\n            iVar7 == 0))))" ( (comma_expression "uVar4 = (uint)*(byte *)(iVar7 + 0xf85), uVar4 != 0 &&\n        ((iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35b0,0x11), iVar7 == 0\n         || (iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc),\n            iVar7 == 0)))" (assignment_expression "uVar4 = (uint)*(byte *)(iVar7 + 0xf85)" identifier = (binary_expression "(uint)*(byte *)(iVar7 + 0xf85)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar7 + 0xf85)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xf85)" ( (binary_expression "iVar7 + 0xf85" identifier + number_literal) ))))) , (binary_expression "uVar4 != 0 &&\n        ((iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35b0,0x11), iVar7 == 0\n         || (iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc),\n            iVar7 == 0)))" (binary_expression "uVar4 != 0" identifier != number_literal) && (parenthesized_expression "((iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35b0,0x11), iVar7 == 0\n         || (iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc),\n            iVar7 == 0)))" ( (parenthesized_expression "(iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35b0,0x11), iVar7 == 0\n         || (iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc),\n            iVar7 == 0))" ( (comma_expression "iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35b0,0x11), iVar7 == 0\n         || (iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc),\n            iVar7 == 0)" (assignment_expression "iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35b0,0x11)" identifier = (call_expression "(*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35b0,0x11)" (parenthesized_expression "(*(code *)PTR_strncmp_004366a0)" ( (pointer_expression "*(code *)PTR_strncmp_004366a0" * (cast_expression "(code *)PTR_strncmp_004366a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar6,PTR_DAT_0043226c + -0x35b0,0x11)" ( identifier , (binary_expression "PTR_DAT_0043226c + -0x35b0" identifier + number_literal) , number_literal )))) , (binary_expression "iVar7 == 0\n         || (iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc),\n            iVar7 == 0)" (binary_expression "iVar7 == 0" identifier == number_literal) || (parenthesized_expression "(iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc),\n            iVar7 == 0)" ( (comma_expression "iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc),\n            iVar7 == 0" (assignment_expression "iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc)" identifier = (call_expression "(*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc)" (parenthesized_expression "(*(code *)PTR_strncmp_004366a0)" ( (pointer_expression "*(code *)PTR_strncmp_004366a0" * (cast_expression "(code *)PTR_strncmp_004366a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar6,PTR_DAT_0043226c + -0x359c,0xc)" ( identifier , (binary_expression "PTR_DAT_0043226c + -0x359c" identifier + number_literal) , number_literal )))) , (binary_expression "iVar7 == 0" identifier == number_literal)) )))) )) )))) )) ))) )) (compound_statement "{\n      (*(code *)PTR_free_00436800)(iVar6);\n      return uVar4;\n    }" { (expression_statement "(*(code *)PTR_free_00436800)(iVar6);" (call_expression "(*(code *)PTR_free_00436800)(iVar6)" (parenthesized_expression "(*(code *)PTR_free_00436800)" ( (pointer_expression "*(code *)PTR_free_00436800" * (cast_expression "(code *)PTR_free_00436800" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar6)" ( identifier ))) ;) (return_statement "return uVar4;" return identifier ;) })) (expression_statement "(*(code *)PTR_free_00436800)(iVar6);" (call_expression "(*(code *)PTR_free_00436800)(iVar6)" (parenthesized_expression "(*(code *)PTR_free_00436800)" ( (pointer_expression "*(code *)PTR_free_00436800" * (cast_expression "(code *)PTR_free_00436800" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar6)" ( identifier ))) ;) })) (expression_statement "iVar6 = *(int *)(*(int *)puVar1 + 8);" (assignment_expression "iVar6 = *(int *)(*(int *)puVar1 + 8)" identifier = (pointer_expression "*(int *)(*(int *)puVar1 + 8)" * (cast_expression "(int *)(*(int *)puVar1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar1 + 8)" ( (binary_expression "*(int *)puVar1 + 8" (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ;) (if_statement "if (iVar6 != 0) {\nLAB_0022ed40:\n    if ((*(char *)(iVar6 + 0x12bd) == '\0') && (*(char *)(iVar6 + 0x1a29) == '\0')) {\n      if (*(char *)(iVar6 + 0x19ad) == '\0') {\n        return 0;\n      }\n      uVar4 = *(uint *)(this + 0x28);\n      if ((uVar4 << 4) >> 0x1c != 10) {\n        return 0;\n      }\n    }\n    else {\n      uVar4 = *(uint *)(this + 0x28);\n    }\n    if ((uVar4 & 0xe000) == 0) {\n      if (*(int *)(*(int *)(this + 8) + 0x2c) < 0) {\n        return 0;\n      }\n      if ((*(int *)(this + 0xc) == 0) && ((int)(uVar4 << 0x1d) < 0)) {\n        return 0;\n      }\n    }\n    else if ((uVar4 & 0xe000) == 0x8000) {\n      return 0;\n    }\n    if (((uVar4 & 0xc00000) != 0) && ((uVar4 & 0xc00000) != 0xc00000)) {\n      return 0;\n    }\n    return (uVar4 << 0x1c) >> 0x1f ^ 1;\n  }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_0022ed40:\n    if ((*(char *)(iVar6 + 0x12bd) == '\0') && (*(char *)(iVar6 + 0x1a29) == '\0')) {\n      if (*(char *)(iVar6 + 0x19ad) == '\0') {\n        return 0;\n      }\n      uVar4 = *(uint *)(this + 0x28);\n      if ((uVar4 << 4) >> 0x1c != 10) {\n        return 0;\n      }\n    }\n    else {\n      uVar4 = *(uint *)(this + 0x28);\n    }\n    if ((uVar4 & 0xe000) == 0) {\n      if (*(int *)(*(int *)(this + 8) + 0x2c) < 0) {\n        return 0;\n      }\n      if ((*(int *)(this + 0xc) == 0) && ((int)(uVar4 << 0x1d) < 0)) {\n        return 0;\n      }\n    }\n    else if ((uVar4 & 0xe000) == 0x8000) {\n      return 0;\n    }\n    if (((uVar4 & 0xc00000) != 0) && ((uVar4 & 0xc00000) != 0xc00000)) {\n      return 0;\n    }\n    return (uVar4 << 0x1c) >> 0x1f ^ 1;\n  }" { (labeled_statement "LAB_0022ed40:\n    if ((*(char *)(iVar6 + 0x12bd) == '\0') && (*(char *)(iVar6 + 0x1a29) == '\0')) {\n      if (*(char *)(iVar6 + 0x19ad) == '\0') {\n        return 0;\n      }\n      uVar4 = *(uint *)(this + 0x28);\n      if ((uVar4 << 4) >> 0x1c != 10) {\n        return 0;\n      }\n    }\n    else {\n      uVar4 = *(uint *)(this + 0x28);\n    }" statement_identifier : (if_statement "if ((*(char *)(iVar6 + 0x12bd) == '\0') && (*(char *)(iVar6 + 0x1a29) == '\0')) {\n      if (*(char *)(iVar6 + 0x19ad) == '\0') {\n        return 0;\n      }\n      uVar4 = *(uint *)(this + 0x28);\n      if ((uVar4 << 4) >> 0x1c != 10) {\n        return 0;\n      }\n    }\n    else {\n      uVar4 = *(uint *)(this + 0x28);\n    }" if (parenthesized_expression "((*(char *)(iVar6 + 0x12bd) == '\0') && (*(char *)(iVar6 + 0x1a29) == '\0'))" ( (binary_expression "(*(char *)(iVar6 + 0x12bd) == '\0') && (*(char *)(iVar6 + 0x1a29) == '\0')" (parenthesized_expression "(*(char *)(iVar6 + 0x12bd) == '\0')" ( (binary_expression "*(char *)(iVar6 + 0x12bd) == '\0'" (pointer_expression "*(char *)(iVar6 + 0x12bd)" * (cast_expression "(char *)(iVar6 + 0x12bd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x12bd)" ( (binary_expression "iVar6 + 0x12bd" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(char *)(iVar6 + 0x1a29) == '\0')" ( (binary_expression "*(char *)(iVar6 + 0x1a29) == '\0'" (pointer_expression "*(char *)(iVar6 + 0x1a29)" * (cast_expression "(char *)(iVar6 + 0x1a29)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x1a29)" ( (binary_expression "iVar6 + 0x1a29" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      if (*(char *)(iVar6 + 0x19ad) == '\0') {\n        return 0;\n      }\n      uVar4 = *(uint *)(this + 0x28);\n      if ((uVar4 << 4) >> 0x1c != 10) {\n        return 0;\n      }\n    }" { (if_statement "if (*(char *)(iVar6 + 0x19ad) == '\0') {\n        return 0;\n      }" if (parenthesized_expression "(*(char *)(iVar6 + 0x19ad) == '\0')" ( (binary_expression "*(char *)(iVar6 + 0x19ad) == '\0'" (pointer_expression "*(char *)(iVar6 + 0x19ad)" * (cast_expression "(char *)(iVar6 + 0x19ad)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x19ad)" ( (binary_expression "iVar6 + 0x19ad" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar4 = *(uint *)(this + 0x28);" (assignment_expression "uVar4 = *(uint *)(this + 0x28)" identifier = (pointer_expression "*(uint *)(this + 0x28)" * (cast_expression "(uint *)(this + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x28)" ( (binary_expression "this + 0x28" identifier + number_literal) ))))) ;) (if_statement "if ((uVar4 << 4) >> 0x1c != 10) {\n        return 0;\n      }" if (parenthesized_expression "((uVar4 << 4) >> 0x1c != 10)" ( (binary_expression "(uVar4 << 4) >> 0x1c != 10" (binary_expression "(uVar4 << 4) >> 0x1c" (parenthesized_expression "(uVar4 << 4)" ( (binary_expression "uVar4 << 4" identifier << number_literal) )) >> number_literal) != number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) }) (else_clause "else {\n      uVar4 = *(uint *)(this + 0x28);\n    }" else (compound_statement "{\n      uVar4 = *(uint *)(this + 0x28);\n    }" { (expression_statement "uVar4 = *(uint *)(this + 0x28);" (assignment_expression "uVar4 = *(uint *)(this + 0x28)" identifier = (pointer_expression "*(uint *)(this + 0x28)" * (cast_expression "(uint *)(this + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x28)" ( (binary_expression "this + 0x28" identifier + number_literal) ))))) ;) })))) (if_statement "if ((uVar4 & 0xe000) == 0) {\n      if (*(int *)(*(int *)(this + 8) + 0x2c) < 0) {\n        return 0;\n      }\n      if ((*(int *)(this + 0xc) == 0) && ((int)(uVar4 << 0x1d) < 0)) {\n        return 0;\n      }\n    }\n    else if ((uVar4 & 0xe000) == 0x8000) {\n      return 0;\n    }" if (parenthesized_expression "((uVar4 & 0xe000) == 0)" ( (binary_expression "(uVar4 & 0xe000) == 0" (parenthesized_expression "(uVar4 & 0xe000)" ( (binary_expression "uVar4 & 0xe000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      if (*(int *)(*(int *)(this + 8) + 0x2c) < 0) {\n        return 0;\n      }\n      if ((*(int *)(this + 0xc) == 0) && ((int)(uVar4 << 0x1d) < 0)) {\n        return 0;\n      }\n    }" { (if_statement "if (*(int *)(*(int *)(this + 8) + 0x2c) < 0) {\n        return 0;\n      }" if (parenthesized_expression "(*(int *)(*(int *)(this + 8) + 0x2c) < 0)" ( (binary_expression "*(int *)(*(int *)(this + 8) + 0x2c) < 0" (pointer_expression "*(int *)(*(int *)(this + 8) + 0x2c)" * (cast_expression "(int *)(*(int *)(this + 8) + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(this + 8) + 0x2c)" ( (binary_expression "*(int *)(this + 8) + 0x2c" (pointer_expression "*(int *)(this + 8)" * (cast_expression "(int *)(this + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) )))) + number_literal) )))) < number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if ((*(int *)(this + 0xc) == 0) && ((int)(uVar4 << 0x1d) < 0)) {\n        return 0;\n      }" if (parenthesized_expression "((*(int *)(this + 0xc) == 0) && ((int)(uVar4 << 0x1d) < 0))" ( (binary_expression "(*(int *)(this + 0xc) == 0) && ((int)(uVar4 << 0x1d) < 0)" (parenthesized_expression "(*(int *)(this + 0xc) == 0)" ( (binary_expression "*(int *)(this + 0xc) == 0" (pointer_expression "*(int *)(this + 0xc)" * (cast_expression "(int *)(this + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0xc)" ( (binary_expression "this + 0xc" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "((int)(uVar4 << 0x1d) < 0)" ( (binary_expression "(int)(uVar4 << 0x1d) < 0" (cast_expression "(int)(uVar4 << 0x1d)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar4 << 0x1d)" ( (binary_expression "uVar4 << 0x1d" identifier << number_literal) ))) < number_literal) ))) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) }) (else_clause "else if ((uVar4 & 0xe000) == 0x8000) {\n      return 0;\n    }" else (if_statement "if ((uVar4 & 0xe000) == 0x8000) {\n      return 0;\n    }" if (parenthesized_expression "((uVar4 & 0xe000) == 0x8000)" ( (binary_expression "(uVar4 & 0xe000) == 0x8000" (parenthesized_expression "(uVar4 & 0xe000)" ( (binary_expression "uVar4 & 0xe000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })))) (if_statement "if (((uVar4 & 0xc00000) != 0) && ((uVar4 & 0xc00000) != 0xc00000)) {\n      return 0;\n    }" if (parenthesized_expression "(((uVar4 & 0xc00000) != 0) && ((uVar4 & 0xc00000) != 0xc00000))" ( (binary_expression "((uVar4 & 0xc00000) != 0) && ((uVar4 & 0xc00000) != 0xc00000)" (parenthesized_expression "((uVar4 & 0xc00000) != 0)" ( (binary_expression "(uVar4 & 0xc00000) != 0" (parenthesized_expression "(uVar4 & 0xc00000)" ( (binary_expression "uVar4 & 0xc00000" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "((uVar4 & 0xc00000) != 0xc00000)" ( (binary_expression "(uVar4 & 0xc00000) != 0xc00000" (parenthesized_expression "(uVar4 & 0xc00000)" ( (binary_expression "uVar4 & 0xc00000" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (return_statement "return (uVar4 << 0x1c) >> 0x1f ^ 1;" return (binary_expression "(uVar4 << 0x1c) >> 0x1f ^ 1" (binary_expression "(uVar4 << 0x1c) >> 0x1f" (parenthesized_expression "(uVar4 << 0x1c)" ( (binary_expression "uVar4 << 0x1c" identifier << number_literal) )) >> number_literal) ^ number_literal) ;) })) (labeled_statement "LAB_0022ee04:\n  uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x2a30);" statement_identifier : (expression_statement "uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x2a30);" (assignment_expression "uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x2a30)" identifier = (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x2a30)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x2a30)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5cec" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0043226c + -0x2a30" identifier + number_literal) )))) ;)) (return_statement "return uVar4;" return identifier ;) })))
(translation_unit (function_definition TYPE (ms_call_modifier __thiscall) (ERROR IDENT : : IDENT : :) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (expression_statement (assignment_expression IDENT = 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 = (unary_expression - (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT << LIT) ))) >> LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT << LIT) ))) < LIT) )) (compound_statement { (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT << LIT) ))) < LIT) )) && (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT << LIT) ))) < LIT) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) ))) )) ))) )) && (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT << LIT) )))) ))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) ))) )) || (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT << LIT) )) >> LIT) != LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (labeled_statement statement_identifier : (ERROR (assignment_expression IDENT = IDENT) : :) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) ))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT)) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == IDENT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }))) (expression_statement (call_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) < IDENT) (ERROR *) > IDENT) )) (argument_list ( IDENT , IDENT , IDENT , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) })) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT << LIT) )) >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) )))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT << LIT) ))) < LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) >> LIT) ))) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) )))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression IDENT * LIT)) )))) == LIT) )) (compound_statement { (ERROR (assignment_expression IDENT = IDENT) : :) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT << LIT) )) >> LIT)) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) < LIT)) ))) )) (goto_statement goto statement_identifier ;)) })) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT << LIT) )) >> LIT)) ;)) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) ))) )) (goto_statement goto statement_identifier ;))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT >> LIT) == LIT) )) (compound_statement { (return_statement return IDENT ;) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) ))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) (goto_statement goto statement_identifier ;))) }))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , LIT )))) , (binary_expression (binary_expression IDENT == LIT) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , LIT )))) , (binary_expression IDENT == LIT)) )))) )) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression (binary_expression IDENT != LIT) && (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , LIT )))) , (binary_expression (binary_expression IDENT == LIT) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , LIT )))) , (binary_expression IDENT == LIT)) )))) )) )))) )) ))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (return_statement return IDENT ;) })) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT << LIT) )) >> LIT) != LIT) )) (compound_statement { (return_statement return LIT ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) < LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) && (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT << LIT) ))) < LIT) ))) )) (compound_statement { (return_statement return LIT ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (return_statement return LIT ;) })))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) ))) )) (compound_statement { (return_statement return LIT ;) })) (return_statement return (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT << LIT) )) >> LIT) ^ LIT) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) )))) ;)) (return_statement return IDENT ;) })))
(function_definition "uint __thiscall gold::Symbol::should_add_dynsym_entry(Symbol *this,Symbol_table *param_1)\n\n{\n  undefined *puVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  uint uVar8;\n  undefined1 *local_40 [2];\n  undefined1 auStack_38 [16];\n  int local_28 [2];\n  \n  puVar1 = PTR_parameters_00432be0;\n  uVar2 = *(uint *)(this + 0x28);\n  uVar4 = -((int)(uVar2 << 0x1e) >> 0x1f);\n  if (uVar4 == 0) {\n    return 0;\n  }\n  if ((int)(uVar2 << 0x16) < 0) {\n    return uVar4;\n  }\n  if (((((int)(uVar2 << 0x17) < 0) && ((int)(uVar2 << 0x18) < 0)) &&\n      (((uVar2 & 0xc00000) == 0 || ((uVar2 & 0xc00000) == 0xc00000)))) &&\n     (-1 < (int)(uVar2 << 0x1c))) {\n    return uVar4;\n  }\n  iVar6 = *(int *)(*(int *)PTR_parameters_00432be0 + 8);\n  if (iVar6 == 0) goto LAB_0022ee04;\n  if (((*(char *)(iVar6 + 0x18b5) == '\0') || (*(char *)(iVar6 + 0x1a29) != '\0')) ||\n     ((uVar2 << 0x10) >> 0x1d != 0)) {\n    if ((uVar2 & 0xe000) != 0) {\nLAB_0022ebf4:\n      iVar6 = Version_script_info::get_symbol_version\n                        ((Version_script_info *)(iVar6 + 0x59b8),*(char **)this,(string *)0x0,\n                         (bool *)local_40);\n      if ((iVar6 != 0) && (local_40[0]._0_1_ == '\0')) {\nLAB_0022ec20:\n        if (-1 < *(int *)(this + 0x28) << 0x1c) {\n          return uVar4;\n        }\n        uVar3 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x35f0);\n        FUN_0022e934(local_40,*(undefined4 *)this);\n                    \n        (*(code *)PTR_gold_warning_0043245c)(uVar3,local_40[0]);\n        if (local_40[0] == auStack_38) {\n          return 0;\n        }\n        (*(code *)PTR_operator_delete_0043228c)();\n        return 0;\n      }\n      iVar6 = *(int *)(*(int *)puVar1 + 8);\n      if (iVar6 == 0) goto LAB_0022ee04;\n      if (*(int *)(iVar6 + 0x1348) != 0) {\n        iVar7 = *(int *)this;\n        local_40[0] = auStack_38;\n        if (iVar7 == 0) {\n          iVar5 = -1;\n        }\n        else {\n          iVar5 = (*(code *)PTR_strlen_0043677c)(iVar7);\n          iVar5 = iVar7 + iVar5;\n        }\n        (*(code *)PTR__M_construct<char_const*>_00432488)(local_40,iVar7,iVar5,0);\n        (*(code *)PTR_find_00433360)(local_28,iVar6 + 0x133c,local_40);\n        if (local_28[0] != 0) {\n          if (local_40[0] != auStack_38) {\n            (*(code *)PTR_operator_delete_0043228c)();\n          }\n          goto LAB_0022ec20;\n        }\n        if (local_40[0] != auStack_38) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n      }\n      uVar2 = *(uint *)(this + 0x28);\n      goto LAB_0022ecdc;\n    }\n    uVar8 = (uVar2 << 0x1c) >> 0x1f;\n    if (-1 < *(int *)(*(int *)(this + 8) + 0x2c)) {\n      iVar6 = *(int *)(*(int *)PTR_parameters_00432be0 + 8);\n      goto LAB_0022ebf4;\n    }\n  }\n  else {\n    if ((uVar2 & 0xe000) != 0) {\n      uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                        (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + -0x2a70);\n      return uVar4;\n    }\n    uVar8 = *(uint *)(this + 8);\n    if (-1 < *(int *)(uVar8 + 0x2c)) {\n      if (((int)(uVar2 << 0x1d) < 0) && (uVar2 = *(uint *)(this + 0xc), uVar2 != 0)) {\n        if ((uint)(*(int *)(uVar8 + 0x3c) - *(int *)(uVar8 + 0x38) >> 2) <= uVar2) {\n          uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                            (PTR_LAB_0043220c + 0x44a8,0x50b,PTR_DAT_0043226c + -0x2a84);\n          return uVar4;\n        }\n        if (*(int *)(*(int *)(uVar8 + 0x38) + uVar2 * 4) == 0) {\n          iVar6 = Symbol_table::is_section_folded((Relobj *)param_1,uVar8);\n          if (iVar6 == 0) {\n            return 0;\n          }\n          uVar2 = *(uint *)(this + 0x28);\n          if (((uVar2 & 0xe000) == 0) &&\n             (uVar8 = (uVar2 << 0x1c) >> 0x1f, *(int *)(*(int *)(this + 8) + 0x2c) < 0))\n          goto LAB_0022ece0;\n        }\n      }\n      iVar6 = *(int *)(*(int *)puVar1 + 8);\n      if (iVar6 == 0) goto LAB_0022ee04;\n      goto LAB_0022ebf4;\n    }\nLAB_0022ecdc:\n    uVar8 = (uVar2 << 0x1c) >> 0x1f;\n  }\nLAB_0022ece0:\n  if (uVar8 != 0) {\n    return 0;\n  }\n  iVar6 = *(int *)(*(int *)puVar1 + 8);\n  if (iVar6 == 0) goto LAB_0022ee04;\n  if (*(char *)(iVar6 + 0xe8d) == '\0') {\nLAB_0022eeb4:\n    if ((*(char *)(iVar6 + 0xf09) == '\0') && (*(char *)(iVar6 + 0xf85) == '\0')) goto LAB_0022ed40;\n    if ((uVar2 & 0xe000) == 0) {\n      iVar7 = *(int *)(this + 8);\n      goto LAB_0022ed34;\n    }\n  }\n  else {\n    if (((uVar2 & 0xe000) != 0) || (iVar7 = *(int *)(this + 8), -1 < *(int *)(iVar7 + 0x2c))) {\n      if (uVar2 >> 0x1c == 1) {\n        return uVar4;\n      }\n      goto LAB_0022eeb4;\n    }\n    if ((*(char *)(iVar6 + 0xf09) != '\0') || (*(char *)(iVar6 + 0xf85) == '\0')) goto LAB_0022ed40;\nLAB_0022ed34:\n    if (*(int *)(iVar7 + 0x2c) < 0) goto LAB_0022ed40;\n  }\n  iVar6 = (*(code *)PTR_cplus_demangle_004335b0)(*(undefined4 *)this,3);\n  if (iVar6 != 0) {\n    iVar7 = *(int *)(*(int *)puVar1 + 8);\n    if (iVar7 == 0) goto LAB_0022ee04;\n    uVar4 = (uint)*(byte *)(iVar7 + 0xf09);\n    if (((uVar4 != 0) &&\n        ((iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35d0,0xc), iVar5 == 0\n         || (iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35c0,0xf),\n            iVar5 == 0)))) ||\n       ((uVar4 = (uint)*(byte *)(iVar7 + 0xf85), uVar4 != 0 &&\n        ((iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35b0,0x11), iVar7 == 0\n         || (iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc),\n            iVar7 == 0)))))) {\n      (*(code *)PTR_free_00436800)(iVar6);\n      return uVar4;\n    }\n    (*(code *)PTR_free_00436800)(iVar6);\n  }\n  iVar6 = *(int *)(*(int *)puVar1 + 8);\n  if (iVar6 != 0) {\nLAB_0022ed40:\n    if ((*(char *)(iVar6 + 0x12bd) == '\0') && (*(char *)(iVar6 + 0x1a29) == '\0')) {\n      if (*(char *)(iVar6 + 0x19ad) == '\0') {\n        return 0;\n      }\n      uVar4 = *(uint *)(this + 0x28);\n      if ((uVar4 << 4) >> 0x1c != 10) {\n        return 0;\n      }\n    }\n    else {\n      uVar4 = *(uint *)(this + 0x28);\n    }\n    if ((uVar4 & 0xe000) == 0) {\n      if (*(int *)(*(int *)(this + 8) + 0x2c) < 0) {\n        return 0;\n      }\n      if ((*(int *)(this + 0xc) == 0) && ((int)(uVar4 << 0x1d) < 0)) {\n        return 0;\n      }\n    }\n    else if ((uVar4 & 0xe000) == 0x8000) {\n      return 0;\n    }\n    if (((uVar4 & 0xc00000) != 0) && ((uVar4 & 0xc00000) != 0xc00000)) {\n      return 0;\n    }\n    return (uVar4 << 0x1c) >> 0x1f ^ 1;\n  }\nLAB_0022ee04:\n  uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x2a30);\n  return uVar4;\n}" (type_identifier "uint") (ms_call_modifier "__thiscall" (__thiscall "__thiscall")) (ERROR "gold::Symbol::" (identifier "gold") (: ":") (: ":") (identifier "Symbol") (: ":") (: ":")) (function_declarator "should_add_dynsym_entry(Symbol *this,Symbol_table *param_1)" (identifier "should_add_dynsym_entry") (parameter_list "(Symbol *this,Symbol_table *param_1)" (( "(") (parameter_declaration "Symbol *this" (type_identifier "Symbol") (pointer_declarator "*this" (* "*") (identifier "this"))) (, ",") (parameter_declaration "Symbol_table *param_1" (type_identifier "Symbol_table") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  uint uVar8;\n  undefined1 *local_40 [2];\n  undefined1 auStack_38 [16];\n  int local_28 [2];\n  \n  puVar1 = PTR_parameters_00432be0;\n  uVar2 = *(uint *)(this + 0x28);\n  uVar4 = -((int)(uVar2 << 0x1e) >> 0x1f);\n  if (uVar4 == 0) {\n    return 0;\n  }\n  if ((int)(uVar2 << 0x16) < 0) {\n    return uVar4;\n  }\n  if (((((int)(uVar2 << 0x17) < 0) && ((int)(uVar2 << 0x18) < 0)) &&\n      (((uVar2 & 0xc00000) == 0 || ((uVar2 & 0xc00000) == 0xc00000)))) &&\n     (-1 < (int)(uVar2 << 0x1c))) {\n    return uVar4;\n  }\n  iVar6 = *(int *)(*(int *)PTR_parameters_00432be0 + 8);\n  if (iVar6 == 0) goto LAB_0022ee04;\n  if (((*(char *)(iVar6 + 0x18b5) == '\0') || (*(char *)(iVar6 + 0x1a29) != '\0')) ||\n     ((uVar2 << 0x10) >> 0x1d != 0)) {\n    if ((uVar2 & 0xe000) != 0) {\nLAB_0022ebf4:\n      iVar6 = Version_script_info::get_symbol_version\n                        ((Version_script_info *)(iVar6 + 0x59b8),*(char **)this,(string *)0x0,\n                         (bool *)local_40);\n      if ((iVar6 != 0) && (local_40[0]._0_1_ == '\0')) {\nLAB_0022ec20:\n        if (-1 < *(int *)(this + 0x28) << 0x1c) {\n          return uVar4;\n        }\n        uVar3 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x35f0);\n        FUN_0022e934(local_40,*(undefined4 *)this);\n                    \n        (*(code *)PTR_gold_warning_0043245c)(uVar3,local_40[0]);\n        if (local_40[0] == auStack_38) {\n          return 0;\n        }\n        (*(code *)PTR_operator_delete_0043228c)();\n        return 0;\n      }\n      iVar6 = *(int *)(*(int *)puVar1 + 8);\n      if (iVar6 == 0) goto LAB_0022ee04;\n      if (*(int *)(iVar6 + 0x1348) != 0) {\n        iVar7 = *(int *)this;\n        local_40[0] = auStack_38;\n        if (iVar7 == 0) {\n          iVar5 = -1;\n        }\n        else {\n          iVar5 = (*(code *)PTR_strlen_0043677c)(iVar7);\n          iVar5 = iVar7 + iVar5;\n        }\n        (*(code *)PTR__M_construct<char_const*>_00432488)(local_40,iVar7,iVar5,0);\n        (*(code *)PTR_find_00433360)(local_28,iVar6 + 0x133c,local_40);\n        if (local_28[0] != 0) {\n          if (local_40[0] != auStack_38) {\n            (*(code *)PTR_operator_delete_0043228c)();\n          }\n          goto LAB_0022ec20;\n        }\n        if (local_40[0] != auStack_38) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n      }\n      uVar2 = *(uint *)(this + 0x28);\n      goto LAB_0022ecdc;\n    }\n    uVar8 = (uVar2 << 0x1c) >> 0x1f;\n    if (-1 < *(int *)(*(int *)(this + 8) + 0x2c)) {\n      iVar6 = *(int *)(*(int *)PTR_parameters_00432be0 + 8);\n      goto LAB_0022ebf4;\n    }\n  }\n  else {\n    if ((uVar2 & 0xe000) != 0) {\n      uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                        (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + -0x2a70);\n      return uVar4;\n    }\n    uVar8 = *(uint *)(this + 8);\n    if (-1 < *(int *)(uVar8 + 0x2c)) {\n      if (((int)(uVar2 << 0x1d) < 0) && (uVar2 = *(uint *)(this + 0xc), uVar2 != 0)) {\n        if ((uint)(*(int *)(uVar8 + 0x3c) - *(int *)(uVar8 + 0x38) >> 2) <= uVar2) {\n          uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                            (PTR_LAB_0043220c + 0x44a8,0x50b,PTR_DAT_0043226c + -0x2a84);\n          return uVar4;\n        }\n        if (*(int *)(*(int *)(uVar8 + 0x38) + uVar2 * 4) == 0) {\n          iVar6 = Symbol_table::is_section_folded((Relobj *)param_1,uVar8);\n          if (iVar6 == 0) {\n            return 0;\n          }\n          uVar2 = *(uint *)(this + 0x28);\n          if (((uVar2 & 0xe000) == 0) &&\n             (uVar8 = (uVar2 << 0x1c) >> 0x1f, *(int *)(*(int *)(this + 8) + 0x2c) < 0))\n          goto LAB_0022ece0;\n        }\n      }\n      iVar6 = *(int *)(*(int *)puVar1 + 8);\n      if (iVar6 == 0) goto LAB_0022ee04;\n      goto LAB_0022ebf4;\n    }\nLAB_0022ecdc:\n    uVar8 = (uVar2 << 0x1c) >> 0x1f;\n  }\nLAB_0022ece0:\n  if (uVar8 != 0) {\n    return 0;\n  }\n  iVar6 = *(int *)(*(int *)puVar1 + 8);\n  if (iVar6 == 0) goto LAB_0022ee04;\n  if (*(char *)(iVar6 + 0xe8d) == '\0') {\nLAB_0022eeb4:\n    if ((*(char *)(iVar6 + 0xf09) == '\0') && (*(char *)(iVar6 + 0xf85) == '\0')) goto LAB_0022ed40;\n    if ((uVar2 & 0xe000) == 0) {\n      iVar7 = *(int *)(this + 8);\n      goto LAB_0022ed34;\n    }\n  }\n  else {\n    if (((uVar2 & 0xe000) != 0) || (iVar7 = *(int *)(this + 8), -1 < *(int *)(iVar7 + 0x2c))) {\n      if (uVar2 >> 0x1c == 1) {\n        return uVar4;\n      }\n      goto LAB_0022eeb4;\n    }\n    if ((*(char *)(iVar6 + 0xf09) != '\0') || (*(char *)(iVar6 + 0xf85) == '\0')) goto LAB_0022ed40;\nLAB_0022ed34:\n    if (*(int *)(iVar7 + 0x2c) < 0) goto LAB_0022ed40;\n  }\n  iVar6 = (*(code *)PTR_cplus_demangle_004335b0)(*(undefined4 *)this,3);\n  if (iVar6 != 0) {\n    iVar7 = *(int *)(*(int *)puVar1 + 8);\n    if (iVar7 == 0) goto LAB_0022ee04;\n    uVar4 = (uint)*(byte *)(iVar7 + 0xf09);\n    if (((uVar4 != 0) &&\n        ((iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35d0,0xc), iVar5 == 0\n         || (iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35c0,0xf),\n            iVar5 == 0)))) ||\n       ((uVar4 = (uint)*(byte *)(iVar7 + 0xf85), uVar4 != 0 &&\n        ((iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35b0,0x11), iVar7 == 0\n         || (iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc),\n            iVar7 == 0)))))) {\n      (*(code *)PTR_free_00436800)(iVar6);\n      return uVar4;\n    }\n    (*(code *)PTR_free_00436800)(iVar6);\n  }\n  iVar6 = *(int *)(*(int *)puVar1 + 8);\n  if (iVar6 != 0) {\nLAB_0022ed40:\n    if ((*(char *)(iVar6 + 0x12bd) == '\0') && (*(char *)(iVar6 + 0x1a29) == '\0')) {\n      if (*(char *)(iVar6 + 0x19ad) == '\0') {\n        return 0;\n      }\n      uVar4 = *(uint *)(this + 0x28);\n      if ((uVar4 << 4) >> 0x1c != 10) {\n        return 0;\n      }\n    }\n    else {\n      uVar4 = *(uint *)(this + 0x28);\n    }\n    if ((uVar4 & 0xe000) == 0) {\n      if (*(int *)(*(int *)(this + 8) + 0x2c) < 0) {\n        return 0;\n      }\n      if ((*(int *)(this + 0xc) == 0) && ((int)(uVar4 << 0x1d) < 0)) {\n        return 0;\n      }\n    }\n    else if ((uVar4 & 0xe000) == 0x8000) {\n      return 0;\n    }\n    if (((uVar4 & 0xc00000) != 0) && ((uVar4 & 0xc00000) != 0xc00000)) {\n      return 0;\n    }\n    return (uVar4 << 0x1c) >> 0x1f ^ 1;\n  }\nLAB_0022ee04:\n  uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x2a30);\n  return uVar4;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "undefined1 *local_40 [2];" (type_identifier "undefined1") (pointer_declarator "*local_40 [2]" (* "*") (array_declarator "local_40 [2]" (identifier "local_40") ([ "[") (number_literal "2") (] "]"))) (; ";")) (declaration "undefined1 auStack_38 [16];" (type_identifier "undefined1") (array_declarator "auStack_38 [16]" (identifier "auStack_38") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "int local_28 [2];" (primitive_type "int") (array_declarator "local_28 [2]" (identifier "local_28") ([ "[") (number_literal "2") (] "]")) (; ";")) (expression_statement "puVar1 = PTR_parameters_00432be0;" (assignment_expression "puVar1 = PTR_parameters_00432be0" (identifier "puVar1") (= "=") (identifier "PTR_parameters_00432be0")) (; ";")) (expression_statement "uVar2 = *(uint *)(this + 0x28);" (assignment_expression "uVar2 = *(uint *)(this + 0x28)" (identifier "uVar2") (= "=") (pointer_expression "*(uint *)(this + 0x28)" (* "*") (cast_expression "(uint *)(this + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x28)" (( "(") (binary_expression "this + 0x28" (identifier "this") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "uVar4 = -((int)(uVar2 << 0x1e) >> 0x1f);" (assignment_expression "uVar4 = -((int)(uVar2 << 0x1e) >> 0x1f)" (identifier "uVar4") (= "=") (unary_expression "-((int)(uVar2 << 0x1e) >> 0x1f)" (- "-") (parenthesized_expression "((int)(uVar2 << 0x1e) >> 0x1f)" (( "(") (binary_expression "(int)(uVar2 << 0x1e) >> 0x1f" (cast_expression "(int)(uVar2 << 0x1e)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar2 << 0x1e)" (( "(") (binary_expression "uVar2 << 0x1e" (identifier "uVar2") (<< "<<") (number_literal "0x1e")) () ")"))) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (if_statement "if (uVar4 == 0) {\n    return 0;\n  }" (if "if") (parenthesized_expression "(uVar4 == 0)" (( "(") (binary_expression "uVar4 == 0" (identifier "uVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if ((int)(uVar2 << 0x16) < 0) {\n    return uVar4;\n  }" (if "if") (parenthesized_expression "((int)(uVar2 << 0x16) < 0)" (( "(") (binary_expression "(int)(uVar2 << 0x16) < 0" (cast_expression "(int)(uVar2 << 0x16)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar2 << 0x16)" (( "(") (binary_expression "uVar2 << 0x16" (identifier "uVar2") (<< "<<") (number_literal "0x16")) () ")"))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    return uVar4;\n  }" ({ "{") (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";")) (} "}"))) (if_statement "if (((((int)(uVar2 << 0x17) < 0) && ((int)(uVar2 << 0x18) < 0)) &&\n      (((uVar2 & 0xc00000) == 0 || ((uVar2 & 0xc00000) == 0xc00000)))) &&\n     (-1 < (int)(uVar2 << 0x1c))) {\n    return uVar4;\n  }" (if "if") (parenthesized_expression "(((((int)(uVar2 << 0x17) < 0) && ((int)(uVar2 << 0x18) < 0)) &&\n      (((uVar2 & 0xc00000) == 0 || ((uVar2 & 0xc00000) == 0xc00000)))) &&\n     (-1 < (int)(uVar2 << 0x1c)))" (( "(") (binary_expression "((((int)(uVar2 << 0x17) < 0) && ((int)(uVar2 << 0x18) < 0)) &&\n      (((uVar2 & 0xc00000) == 0 || ((uVar2 & 0xc00000) == 0xc00000)))) &&\n     (-1 < (int)(uVar2 << 0x1c))" (parenthesized_expression "((((int)(uVar2 << 0x17) < 0) && ((int)(uVar2 << 0x18) < 0)) &&\n      (((uVar2 & 0xc00000) == 0 || ((uVar2 & 0xc00000) == 0xc00000))))" (( "(") (binary_expression "(((int)(uVar2 << 0x17) < 0) && ((int)(uVar2 << 0x18) < 0)) &&\n      (((uVar2 & 0xc00000) == 0 || ((uVar2 & 0xc00000) == 0xc00000)))" (parenthesized_expression "(((int)(uVar2 << 0x17) < 0) && ((int)(uVar2 << 0x18) < 0))" (( "(") (binary_expression "((int)(uVar2 << 0x17) < 0) && ((int)(uVar2 << 0x18) < 0)" (parenthesized_expression "((int)(uVar2 << 0x17) < 0)" (( "(") (binary_expression "(int)(uVar2 << 0x17) < 0" (cast_expression "(int)(uVar2 << 0x17)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar2 << 0x17)" (( "(") (binary_expression "uVar2 << 0x17" (identifier "uVar2") (<< "<<") (number_literal "0x17")) () ")"))) (< "<") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((int)(uVar2 << 0x18) < 0)" (( "(") (binary_expression "(int)(uVar2 << 0x18) < 0" (cast_expression "(int)(uVar2 << 0x18)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar2 << 0x18)" (( "(") (binary_expression "uVar2 << 0x18" (identifier "uVar2") (<< "<<") (number_literal "0x18")) () ")"))) (< "<") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(((uVar2 & 0xc00000) == 0 || ((uVar2 & 0xc00000) == 0xc00000)))" (( "(") (parenthesized_expression "((uVar2 & 0xc00000) == 0 || ((uVar2 & 0xc00000) == 0xc00000))" (( "(") (binary_expression "(uVar2 & 0xc00000) == 0 || ((uVar2 & 0xc00000) == 0xc00000)" (binary_expression "(uVar2 & 0xc00000) == 0" (parenthesized_expression "(uVar2 & 0xc00000)" (( "(") (binary_expression "uVar2 & 0xc00000" (identifier "uVar2") (& "&") (number_literal "0xc00000")) () ")")) (== "==") (number_literal "0")) (|| "||") (parenthesized_expression "((uVar2 & 0xc00000) == 0xc00000)" (( "(") (binary_expression "(uVar2 & 0xc00000) == 0xc00000" (parenthesized_expression "(uVar2 & 0xc00000)" (( "(") (binary_expression "uVar2 & 0xc00000" (identifier "uVar2") (& "&") (number_literal "0xc00000")) () ")")) (== "==") (number_literal "0xc00000")) () ")"))) () ")")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(-1 < (int)(uVar2 << 0x1c))" (( "(") (binary_expression "-1 < (int)(uVar2 << 0x1c)" (number_literal "-1") (< "<") (cast_expression "(int)(uVar2 << 0x1c)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar2 << 0x1c)" (( "(") (binary_expression "uVar2 << 0x1c" (identifier "uVar2") (<< "<<") (number_literal "0x1c")) () ")")))) () ")"))) () ")")) (compound_statement "{\n    return uVar4;\n  }" ({ "{") (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";")) (} "}"))) (expression_statement "iVar6 = *(int *)(*(int *)PTR_parameters_00432be0 + 8);" (assignment_expression "iVar6 = *(int *)(*(int *)PTR_parameters_00432be0 + 8)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(*(int *)PTR_parameters_00432be0 + 8)" (* "*") (cast_expression "(int *)(*(int *)PTR_parameters_00432be0 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)PTR_parameters_00432be0 + 8)" (( "(") (binary_expression "*(int *)PTR_parameters_00432be0 + 8" (pointer_expression "*(int *)PTR_parameters_00432be0" (* "*") (cast_expression "(int *)PTR_parameters_00432be0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_parameters_00432be0"))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar6 == 0) goto LAB_0022ee04;" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0022ee04;" (goto "goto") (statement_identifier "LAB_0022ee04") (; ";"))) (if_statement "if (((*(char *)(iVar6 + 0x18b5) == '\0') || (*(char *)(iVar6 + 0x1a29) != '\0')) ||\n     ((uVar2 << 0x10) >> 0x1d != 0)) {\n    if ((uVar2 & 0xe000) != 0) {\nLAB_0022ebf4:\n      iVar6 = Version_script_info::get_symbol_version\n                        ((Version_script_info *)(iVar6 + 0x59b8),*(char **)this,(string *)0x0,\n                         (bool *)local_40);\n      if ((iVar6 != 0) && (local_40[0]._0_1_ == '\0')) {\nLAB_0022ec20:\n        if (-1 < *(int *)(this + 0x28) << 0x1c) {\n          return uVar4;\n        }\n        uVar3 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x35f0);\n        FUN_0022e934(local_40,*(undefined4 *)this);\n                    \n        (*(code *)PTR_gold_warning_0043245c)(uVar3,local_40[0]);\n        if (local_40[0] == auStack_38) {\n          return 0;\n        }\n        (*(code *)PTR_operator_delete_0043228c)();\n        return 0;\n      }\n      iVar6 = *(int *)(*(int *)puVar1 + 8);\n      if (iVar6 == 0) goto LAB_0022ee04;\n      if (*(int *)(iVar6 + 0x1348) != 0) {\n        iVar7 = *(int *)this;\n        local_40[0] = auStack_38;\n        if (iVar7 == 0) {\n          iVar5 = -1;\n        }\n        else {\n          iVar5 = (*(code *)PTR_strlen_0043677c)(iVar7);\n          iVar5 = iVar7 + iVar5;\n        }\n        (*(code *)PTR__M_construct<char_const*>_00432488)(local_40,iVar7,iVar5,0);\n        (*(code *)PTR_find_00433360)(local_28,iVar6 + 0x133c,local_40);\n        if (local_28[0] != 0) {\n          if (local_40[0] != auStack_38) {\n            (*(code *)PTR_operator_delete_0043228c)();\n          }\n          goto LAB_0022ec20;\n        }\n        if (local_40[0] != auStack_38) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n      }\n      uVar2 = *(uint *)(this + 0x28);\n      goto LAB_0022ecdc;\n    }\n    uVar8 = (uVar2 << 0x1c) >> 0x1f;\n    if (-1 < *(int *)(*(int *)(this + 8) + 0x2c)) {\n      iVar6 = *(int *)(*(int *)PTR_parameters_00432be0 + 8);\n      goto LAB_0022ebf4;\n    }\n  }\n  else {\n    if ((uVar2 & 0xe000) != 0) {\n      uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                        (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + -0x2a70);\n      return uVar4;\n    }\n    uVar8 = *(uint *)(this + 8);\n    if (-1 < *(int *)(uVar8 + 0x2c)) {\n      if (((int)(uVar2 << 0x1d) < 0) && (uVar2 = *(uint *)(this + 0xc), uVar2 != 0)) {\n        if ((uint)(*(int *)(uVar8 + 0x3c) - *(int *)(uVar8 + 0x38) >> 2) <= uVar2) {\n          uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                            (PTR_LAB_0043220c + 0x44a8,0x50b,PTR_DAT_0043226c + -0x2a84);\n          return uVar4;\n        }\n        if (*(int *)(*(int *)(uVar8 + 0x38) + uVar2 * 4) == 0) {\n          iVar6 = Symbol_table::is_section_folded((Relobj *)param_1,uVar8);\n          if (iVar6 == 0) {\n            return 0;\n          }\n          uVar2 = *(uint *)(this + 0x28);\n          if (((uVar2 & 0xe000) == 0) &&\n             (uVar8 = (uVar2 << 0x1c) >> 0x1f, *(int *)(*(int *)(this + 8) + 0x2c) < 0))\n          goto LAB_0022ece0;\n        }\n      }\n      iVar6 = *(int *)(*(int *)puVar1 + 8);\n      if (iVar6 == 0) goto LAB_0022ee04;\n      goto LAB_0022ebf4;\n    }\nLAB_0022ecdc:\n    uVar8 = (uVar2 << 0x1c) >> 0x1f;\n  }" (if "if") (parenthesized_expression "(((*(char *)(iVar6 + 0x18b5) == '\0') || (*(char *)(iVar6 + 0x1a29) != '\0')) ||\n     ((uVar2 << 0x10) >> 0x1d != 0))" (( "(") (binary_expression "((*(char *)(iVar6 + 0x18b5) == '\0') || (*(char *)(iVar6 + 0x1a29) != '\0')) ||\n     ((uVar2 << 0x10) >> 0x1d != 0)" (parenthesized_expression "((*(char *)(iVar6 + 0x18b5) == '\0') || (*(char *)(iVar6 + 0x1a29) != '\0'))" (( "(") (binary_expression "(*(char *)(iVar6 + 0x18b5) == '\0') || (*(char *)(iVar6 + 0x1a29) != '\0')" (parenthesized_expression "(*(char *)(iVar6 + 0x18b5) == '\0')" (( "(") (binary_expression "*(char *)(iVar6 + 0x18b5) == '\0'" (pointer_expression "*(char *)(iVar6 + 0x18b5)" (* "*") (cast_expression "(char *)(iVar6 + 0x18b5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x18b5)" (( "(") (binary_expression "iVar6 + 0x18b5" (identifier "iVar6") (+ "+") (number_literal "0x18b5")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(*(char *)(iVar6 + 0x1a29) != '\0')" (( "(") (binary_expression "*(char *)(iVar6 + 0x1a29) != '\0'" (pointer_expression "*(char *)(iVar6 + 0x1a29)" (* "*") (cast_expression "(char *)(iVar6 + 0x1a29)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x1a29)" (( "(") (binary_expression "iVar6 + 0x1a29" (identifier "iVar6") (+ "+") (number_literal "0x1a29")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "((uVar2 << 0x10) >> 0x1d != 0)" (( "(") (binary_expression "(uVar2 << 0x10) >> 0x1d != 0" (binary_expression "(uVar2 << 0x10) >> 0x1d" (parenthesized_expression "(uVar2 << 0x10)" (( "(") (binary_expression "uVar2 << 0x10" (identifier "uVar2") (<< "<<") (number_literal "0x10")) () ")")) (>> ">>") (number_literal "0x1d")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    if ((uVar2 & 0xe000) != 0) {\nLAB_0022ebf4:\n      iVar6 = Version_script_info::get_symbol_version\n                        ((Version_script_info *)(iVar6 + 0x59b8),*(char **)this,(string *)0x0,\n                         (bool *)local_40);\n      if ((iVar6 != 0) && (local_40[0]._0_1_ == '\0')) {\nLAB_0022ec20:\n        if (-1 < *(int *)(this + 0x28) << 0x1c) {\n          return uVar4;\n        }\n        uVar3 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x35f0);\n        FUN_0022e934(local_40,*(undefined4 *)this);\n                    \n        (*(code *)PTR_gold_warning_0043245c)(uVar3,local_40[0]);\n        if (local_40[0] == auStack_38) {\n          return 0;\n        }\n        (*(code *)PTR_operator_delete_0043228c)();\n        return 0;\n      }\n      iVar6 = *(int *)(*(int *)puVar1 + 8);\n      if (iVar6 == 0) goto LAB_0022ee04;\n      if (*(int *)(iVar6 + 0x1348) != 0) {\n        iVar7 = *(int *)this;\n        local_40[0] = auStack_38;\n        if (iVar7 == 0) {\n          iVar5 = -1;\n        }\n        else {\n          iVar5 = (*(code *)PTR_strlen_0043677c)(iVar7);\n          iVar5 = iVar7 + iVar5;\n        }\n        (*(code *)PTR__M_construct<char_const*>_00432488)(local_40,iVar7,iVar5,0);\n        (*(code *)PTR_find_00433360)(local_28,iVar6 + 0x133c,local_40);\n        if (local_28[0] != 0) {\n          if (local_40[0] != auStack_38) {\n            (*(code *)PTR_operator_delete_0043228c)();\n          }\n          goto LAB_0022ec20;\n        }\n        if (local_40[0] != auStack_38) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n      }\n      uVar2 = *(uint *)(this + 0x28);\n      goto LAB_0022ecdc;\n    }\n    uVar8 = (uVar2 << 0x1c) >> 0x1f;\n    if (-1 < *(int *)(*(int *)(this + 8) + 0x2c)) {\n      iVar6 = *(int *)(*(int *)PTR_parameters_00432be0 + 8);\n      goto LAB_0022ebf4;\n    }\n  }" ({ "{") (if_statement "if ((uVar2 & 0xe000) != 0) {\nLAB_0022ebf4:\n      iVar6 = Version_script_info::get_symbol_version\n                        ((Version_script_info *)(iVar6 + 0x59b8),*(char **)this,(string *)0x0,\n                         (bool *)local_40);\n      if ((iVar6 != 0) && (local_40[0]._0_1_ == '\0')) {\nLAB_0022ec20:\n        if (-1 < *(int *)(this + 0x28) << 0x1c) {\n          return uVar4;\n        }\n        uVar3 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x35f0);\n        FUN_0022e934(local_40,*(undefined4 *)this);\n                    \n        (*(code *)PTR_gold_warning_0043245c)(uVar3,local_40[0]);\n        if (local_40[0] == auStack_38) {\n          return 0;\n        }\n        (*(code *)PTR_operator_delete_0043228c)();\n        return 0;\n      }\n      iVar6 = *(int *)(*(int *)puVar1 + 8);\n      if (iVar6 == 0) goto LAB_0022ee04;\n      if (*(int *)(iVar6 + 0x1348) != 0) {\n        iVar7 = *(int *)this;\n        local_40[0] = auStack_38;\n        if (iVar7 == 0) {\n          iVar5 = -1;\n        }\n        else {\n          iVar5 = (*(code *)PTR_strlen_0043677c)(iVar7);\n          iVar5 = iVar7 + iVar5;\n        }\n        (*(code *)PTR__M_construct<char_const*>_00432488)(local_40,iVar7,iVar5,0);\n        (*(code *)PTR_find_00433360)(local_28,iVar6 + 0x133c,local_40);\n        if (local_28[0] != 0) {\n          if (local_40[0] != auStack_38) {\n            (*(code *)PTR_operator_delete_0043228c)();\n          }\n          goto LAB_0022ec20;\n        }\n        if (local_40[0] != auStack_38) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n      }\n      uVar2 = *(uint *)(this + 0x28);\n      goto LAB_0022ecdc;\n    }" (if "if") (parenthesized_expression "((uVar2 & 0xe000) != 0)" (( "(") (binary_expression "(uVar2 & 0xe000) != 0" (parenthesized_expression "(uVar2 & 0xe000)" (( "(") (binary_expression "uVar2 & 0xe000" (identifier "uVar2") (& "&") (number_literal "0xe000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0022ebf4:\n      iVar6 = Version_script_info::get_symbol_version\n                        ((Version_script_info *)(iVar6 + 0x59b8),*(char **)this,(string *)0x0,\n                         (bool *)local_40);\n      if ((iVar6 != 0) && (local_40[0]._0_1_ == '\0')) {\nLAB_0022ec20:\n        if (-1 < *(int *)(this + 0x28) << 0x1c) {\n          return uVar4;\n        }\n        uVar3 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x35f0);\n        FUN_0022e934(local_40,*(undefined4 *)this);\n                    \n        (*(code *)PTR_gold_warning_0043245c)(uVar3,local_40[0]);\n        if (local_40[0] == auStack_38) {\n          return 0;\n        }\n        (*(code *)PTR_operator_delete_0043228c)();\n        return 0;\n      }\n      iVar6 = *(int *)(*(int *)puVar1 + 8);\n      if (iVar6 == 0) goto LAB_0022ee04;\n      if (*(int *)(iVar6 + 0x1348) != 0) {\n        iVar7 = *(int *)this;\n        local_40[0] = auStack_38;\n        if (iVar7 == 0) {\n          iVar5 = -1;\n        }\n        else {\n          iVar5 = (*(code *)PTR_strlen_0043677c)(iVar7);\n          iVar5 = iVar7 + iVar5;\n        }\n        (*(code *)PTR__M_construct<char_const*>_00432488)(local_40,iVar7,iVar5,0);\n        (*(code *)PTR_find_00433360)(local_28,iVar6 + 0x133c,local_40);\n        if (local_28[0] != 0) {\n          if (local_40[0] != auStack_38) {\n            (*(code *)PTR_operator_delete_0043228c)();\n          }\n          goto LAB_0022ec20;\n        }\n        if (local_40[0] != auStack_38) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n      }\n      uVar2 = *(uint *)(this + 0x28);\n      goto LAB_0022ecdc;\n    }" ({ "{") (labeled_statement "LAB_0022ebf4:\n      iVar6 = Version_script_info::get_symbol_version\n                        ((Version_script_info *)(iVar6 + 0x59b8),*(char **)this,(string *)0x0,\n                         (bool *)local_40);" (statement_identifier "LAB_0022ebf4") (: ":") (ERROR "iVar6 = Version_script_info::" (assignment_expression "iVar6 = Version_script_info" (identifier "iVar6") (= "=") (identifier "Version_script_info")) (: ":") (: ":")) (expression_statement "get_symbol_version\n                        ((Version_script_info *)(iVar6 + 0x59b8),*(char **)this,(string *)0x0,\n                         (bool *)local_40);" (call_expression "get_symbol_version\n                        ((Version_script_info *)(iVar6 + 0x59b8),*(char **)this,(string *)0x0,\n                         (bool *)local_40)" (identifier "get_symbol_version") (argument_list "((Version_script_info *)(iVar6 + 0x59b8),*(char **)this,(string *)0x0,\n                         (bool *)local_40)" (( "(") (cast_expression "(Version_script_info *)(iVar6 + 0x59b8)" (( "(") (type_descriptor "Version_script_info *" (type_identifier "Version_script_info") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x59b8)" (( "(") (binary_expression "iVar6 + 0x59b8" (identifier "iVar6") (+ "+") (number_literal "0x59b8")) () ")"))) (, ",") (pointer_expression "*(char **)this" (* "*") (cast_expression "(char **)this" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "this"))) (, ",") (cast_expression "(string *)0x0" (( "(") (type_descriptor "string *" (type_identifier "string") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (, ",") (cast_expression "(bool *)local_40" (( "(") (type_descriptor "bool *" (primitive_type "bool") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_40")) () ")"))) (; ";"))) (if_statement "if ((iVar6 != 0) && (local_40[0]._0_1_ == '\0')) {\nLAB_0022ec20:\n        if (-1 < *(int *)(this + 0x28) << 0x1c) {\n          return uVar4;\n        }\n        uVar3 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x35f0);\n        FUN_0022e934(local_40,*(undefined4 *)this);\n                    \n        (*(code *)PTR_gold_warning_0043245c)(uVar3,local_40[0]);\n        if (local_40[0] == auStack_38) {\n          return 0;\n        }\n        (*(code *)PTR_operator_delete_0043228c)();\n        return 0;\n      }" (if "if") (parenthesized_expression "((iVar6 != 0) && (local_40[0]._0_1_ == '\0'))" (( "(") (binary_expression "(iVar6 != 0) && (local_40[0]._0_1_ == '\0')" (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(local_40[0]._0_1_ == '\0')" (( "(") (binary_expression "local_40[0]._0_1_ == '\0'" (field_expression "local_40[0]._0_1_" (subscript_expression "local_40[0]" (identifier "local_40") ([ "[") (number_literal "0") (] "]")) (. ".") (field_identifier "_0_1_")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\nLAB_0022ec20:\n        if (-1 < *(int *)(this + 0x28) << 0x1c) {\n          return uVar4;\n        }\n        uVar3 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x35f0);\n        FUN_0022e934(local_40,*(undefined4 *)this);\n                    \n        (*(code *)PTR_gold_warning_0043245c)(uVar3,local_40[0]);\n        if (local_40[0] == auStack_38) {\n          return 0;\n        }\n        (*(code *)PTR_operator_delete_0043228c)();\n        return 0;\n      }" ({ "{") (labeled_statement "LAB_0022ec20:\n        if (-1 < *(int *)(this + 0x28) << 0x1c) {\n          return uVar4;\n        }" (statement_identifier "LAB_0022ec20") (: ":") (if_statement "if (-1 < *(int *)(this + 0x28) << 0x1c) {\n          return uVar4;\n        }" (if "if") (parenthesized_expression "(-1 < *(int *)(this + 0x28) << 0x1c)" (( "(") (binary_expression "-1 < *(int *)(this + 0x28) << 0x1c" (number_literal "-1") (< "<") (binary_expression "*(int *)(this + 0x28) << 0x1c" (pointer_expression "*(int *)(this + 0x28)" (* "*") (cast_expression "(int *)(this + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x28)" (( "(") (binary_expression "this + 0x28" (identifier "this") (+ "+") (number_literal "0x28")) () ")")))) (<< "<<") (number_literal "0x1c"))) () ")")) (compound_statement "{\n          return uVar4;\n        }" ({ "{") (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";")) (} "}")))) (expression_statement "uVar3 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x35f0);" (assignment_expression "uVar3 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x35f0)" (identifier "uVar3") (= "=") (call_expression "(*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x35f0)" (parenthesized_expression "(*(code *)PTR_gettext_00436818)" (( "(") (pointer_expression "*(code *)PTR_gettext_00436818" (* "*") (cast_expression "(code *)PTR_gettext_00436818" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_gettext_00436818"))) () ")")) (argument_list "(PTR_DAT_0043226c + -0x35f0)" (( "(") (binary_expression "PTR_DAT_0043226c + -0x35f0" (identifier "PTR_DAT_0043226c") (+ "+") (number_literal "-0x35f0")) () ")")))) (; ";")) (expression_statement "FUN_0022e934(local_40,*(undefined4 *)this);" (call_expression "FUN_0022e934(local_40,*(undefined4 *)this)" (identifier "FUN_0022e934") (argument_list "(local_40,*(undefined4 *)this)" (( "(") (identifier "local_40") (, ",") (pointer_expression "*(undefined4 *)this" (* "*") (cast_expression "(undefined4 *)this" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "this"))) () ")"))) (; ";")) (expression_statement "(*(code *)PTR_gold_warning_0043245c)(uVar3,local_40[0]);" (call_expression "(*(code *)PTR_gold_warning_0043245c)(uVar3,local_40[0])" (parenthesized_expression "(*(code *)PTR_gold_warning_0043245c)" (( "(") (pointer_expression "*(code *)PTR_gold_warning_0043245c" (* "*") (cast_expression "(code *)PTR_gold_warning_0043245c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_gold_warning_0043245c"))) () ")")) (argument_list "(uVar3,local_40[0])" (( "(") (identifier "uVar3") (, ",") (subscript_expression "local_40[0]" (identifier "local_40") ([ "[") (number_literal "0") (] "]")) () ")"))) (; ";")) (if_statement "if (local_40[0] == auStack_38) {\n          return 0;\n        }" (if "if") (parenthesized_expression "(local_40[0] == auStack_38)" (( "(") (binary_expression "local_40[0] == auStack_38" (subscript_expression "local_40[0]" (identifier "local_40") ([ "[") (number_literal "0") (] "]")) (== "==") (identifier "auStack_38")) () ")")) (compound_statement "{\n          return 0;\n        }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" (( "(") (pointer_expression "*(code *)PTR_operator_delete_0043228c" (* "*") (cast_expression "(code *)PTR_operator_delete_0043228c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_delete_0043228c"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar6 = *(int *)(*(int *)puVar1 + 8);" (assignment_expression "iVar6 = *(int *)(*(int *)puVar1 + 8)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(*(int *)puVar1 + 8)" (* "*") (cast_expression "(int *)(*(int *)puVar1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)puVar1 + 8)" (( "(") (binary_expression "*(int *)puVar1 + 8" (pointer_expression "*(int *)puVar1" (* "*") (cast_expression "(int *)puVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1"))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar6 == 0) goto LAB_0022ee04;" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0022ee04;" (goto "goto") (statement_identifier "LAB_0022ee04") (; ";"))) (if_statement "if (*(int *)(iVar6 + 0x1348) != 0) {\n        iVar7 = *(int *)this;\n        local_40[0] = auStack_38;\n        if (iVar7 == 0) {\n          iVar5 = -1;\n        }\n        else {\n          iVar5 = (*(code *)PTR_strlen_0043677c)(iVar7);\n          iVar5 = iVar7 + iVar5;\n        }\n        (*(code *)PTR__M_construct<char_const*>_00432488)(local_40,iVar7,iVar5,0);\n        (*(code *)PTR_find_00433360)(local_28,iVar6 + 0x133c,local_40);\n        if (local_28[0] != 0) {\n          if (local_40[0] != auStack_38) {\n            (*(code *)PTR_operator_delete_0043228c)();\n          }\n          goto LAB_0022ec20;\n        }\n        if (local_40[0] != auStack_38) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n      }" (if "if") (parenthesized_expression "(*(int *)(iVar6 + 0x1348) != 0)" (( "(") (binary_expression "*(int *)(iVar6 + 0x1348) != 0" (pointer_expression "*(int *)(iVar6 + 0x1348)" (* "*") (cast_expression "(int *)(iVar6 + 0x1348)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x1348)" (( "(") (binary_expression "iVar6 + 0x1348" (identifier "iVar6") (+ "+") (number_literal "0x1348")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar7 = *(int *)this;\n        local_40[0] = auStack_38;\n        if (iVar7 == 0) {\n          iVar5 = -1;\n        }\n        else {\n          iVar5 = (*(code *)PTR_strlen_0043677c)(iVar7);\n          iVar5 = iVar7 + iVar5;\n        }\n        (*(code *)PTR__M_construct<char_const*>_00432488)(local_40,iVar7,iVar5,0);\n        (*(code *)PTR_find_00433360)(local_28,iVar6 + 0x133c,local_40);\n        if (local_28[0] != 0) {\n          if (local_40[0] != auStack_38) {\n            (*(code *)PTR_operator_delete_0043228c)();\n          }\n          goto LAB_0022ec20;\n        }\n        if (local_40[0] != auStack_38) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }\n      }" ({ "{") (expression_statement "iVar7 = *(int *)this;" (assignment_expression "iVar7 = *(int *)this" (identifier "iVar7") (= "=") (pointer_expression "*(int *)this" (* "*") (cast_expression "(int *)this" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "this")))) (; ";")) (expression_statement "local_40[0] = auStack_38;" (assignment_expression "local_40[0] = auStack_38" (subscript_expression "local_40[0]" (identifier "local_40") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "auStack_38")) (; ";")) (if_statement "if (iVar7 == 0) {\n          iVar5 = -1;\n        }\n        else {\n          iVar5 = (*(code *)PTR_strlen_0043677c)(iVar7);\n          iVar5 = iVar7 + iVar5;\n        }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar5 = -1;\n        }" ({ "{") (expression_statement "iVar5 = -1;" (assignment_expression "iVar5 = -1" (identifier "iVar5") (= "=") (number_literal "-1")) (; ";")) (} "}")) (else_clause "else {\n          iVar5 = (*(code *)PTR_strlen_0043677c)(iVar7);\n          iVar5 = iVar7 + iVar5;\n        }" (else "else") (compound_statement "{\n          iVar5 = (*(code *)PTR_strlen_0043677c)(iVar7);\n          iVar5 = iVar7 + iVar5;\n        }" ({ "{") (expression_statement "iVar5 = (*(code *)PTR_strlen_0043677c)(iVar7);" (assignment_expression "iVar5 = (*(code *)PTR_strlen_0043677c)(iVar7)" (identifier "iVar5") (= "=") (call_expression "(*(code *)PTR_strlen_0043677c)(iVar7)" (parenthesized_expression "(*(code *)PTR_strlen_0043677c)" (( "(") (pointer_expression "*(code *)PTR_strlen_0043677c" (* "*") (cast_expression "(code *)PTR_strlen_0043677c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_0043677c"))) () ")")) (argument_list "(iVar7)" (( "(") (identifier "iVar7") () ")")))) (; ";")) (expression_statement "iVar5 = iVar7 + iVar5;" (assignment_expression "iVar5 = iVar7 + iVar5" (identifier "iVar5") (= "=") (binary_expression "iVar7 + iVar5" (identifier "iVar7") (+ "+") (identifier "iVar5"))) (; ";")) (} "}")))) (expression_statement "(*(code *)PTR__M_construct<char_const*>_00432488)(local_40,iVar7,iVar5,0);" (call_expression "(*(code *)PTR__M_construct<char_const*>_00432488)(local_40,iVar7,iVar5,0)" (parenthesized_expression "(*(code *)PTR__M_construct<char_const*>_00432488)" (( "(") (binary_expression "*(code *)PTR__M_construct<char_const*>_00432488" (binary_expression "*(code *)PTR__M_construct<char_const" (pointer_expression "*(code *)PTR__M_construct" (* "*") (cast_expression "(code *)PTR__M_construct" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR__M_construct"))) (< "<") (identifier "char_const")) (ERROR "*" (* "*")) (> ">") (identifier "_00432488")) () ")")) (argument_list "(local_40,iVar7,iVar5,0)" (( "(") (identifier "local_40") (, ",") (identifier "iVar7") (, ",") (identifier "iVar5") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_find_00433360)(local_28,iVar6 + 0x133c,local_40);" (call_expression "(*(code *)PTR_find_00433360)(local_28,iVar6 + 0x133c,local_40)" (parenthesized_expression "(*(code *)PTR_find_00433360)" (( "(") (pointer_expression "*(code *)PTR_find_00433360" (* "*") (cast_expression "(code *)PTR_find_00433360" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_find_00433360"))) () ")")) (argument_list "(local_28,iVar6 + 0x133c,local_40)" (( "(") (identifier "local_28") (, ",") (binary_expression "iVar6 + 0x133c" (identifier "iVar6") (+ "+") (number_literal "0x133c")) (, ",") (identifier "local_40") () ")"))) (; ";")) (if_statement "if (local_28[0] != 0) {\n          if (local_40[0] != auStack_38) {\n            (*(code *)PTR_operator_delete_0043228c)();\n          }\n          goto LAB_0022ec20;\n        }" (if "if") (parenthesized_expression "(local_28[0] != 0)" (( "(") (binary_expression "local_28[0] != 0" (subscript_expression "local_28[0]" (identifier "local_28") ([ "[") (number_literal "0") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          if (local_40[0] != auStack_38) {\n            (*(code *)PTR_operator_delete_0043228c)();\n          }\n          goto LAB_0022ec20;\n        }" ({ "{") (if_statement "if (local_40[0] != auStack_38) {\n            (*(code *)PTR_operator_delete_0043228c)();\n          }" (if "if") (parenthesized_expression "(local_40[0] != auStack_38)" (( "(") (binary_expression "local_40[0] != auStack_38" (subscript_expression "local_40[0]" (identifier "local_40") ([ "[") (number_literal "0") (] "]")) (!= "!=") (identifier "auStack_38")) () ")")) (compound_statement "{\n            (*(code *)PTR_operator_delete_0043228c)();\n          }" ({ "{") (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" (( "(") (pointer_expression "*(code *)PTR_operator_delete_0043228c" (* "*") (cast_expression "(code *)PTR_operator_delete_0043228c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_delete_0043228c"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (goto_statement "goto LAB_0022ec20;" (goto "goto") (statement_identifier "LAB_0022ec20") (; ";")) (} "}"))) (if_statement "if (local_40[0] != auStack_38) {\n          (*(code *)PTR_operator_delete_0043228c)();\n        }" (if "if") (parenthesized_expression "(local_40[0] != auStack_38)" (( "(") (binary_expression "local_40[0] != auStack_38" (subscript_expression "local_40[0]" (identifier "local_40") ([ "[") (number_literal "0") (] "]")) (!= "!=") (identifier "auStack_38")) () ")")) (compound_statement "{\n          (*(code *)PTR_operator_delete_0043228c)();\n        }" ({ "{") (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" (( "(") (pointer_expression "*(code *)PTR_operator_delete_0043228c" (* "*") (cast_expression "(code *)PTR_operator_delete_0043228c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_delete_0043228c"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "uVar2 = *(uint *)(this + 0x28);" (assignment_expression "uVar2 = *(uint *)(this + 0x28)" (identifier "uVar2") (= "=") (pointer_expression "*(uint *)(this + 0x28)" (* "*") (cast_expression "(uint *)(this + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x28)" (( "(") (binary_expression "this + 0x28" (identifier "this") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (goto_statement "goto LAB_0022ecdc;" (goto "goto") (statement_identifier "LAB_0022ecdc") (; ";")) (} "}"))) (expression_statement "uVar8 = (uVar2 << 0x1c) >> 0x1f;" (assignment_expression "uVar8 = (uVar2 << 0x1c) >> 0x1f" (identifier "uVar8") (= "=") (binary_expression "(uVar2 << 0x1c) >> 0x1f" (parenthesized_expression "(uVar2 << 0x1c)" (( "(") (binary_expression "uVar2 << 0x1c" (identifier "uVar2") (<< "<<") (number_literal "0x1c")) () ")")) (>> ">>") (number_literal "0x1f"))) (; ";")) (if_statement "if (-1 < *(int *)(*(int *)(this + 8) + 0x2c)) {\n      iVar6 = *(int *)(*(int *)PTR_parameters_00432be0 + 8);\n      goto LAB_0022ebf4;\n    }" (if "if") (parenthesized_expression "(-1 < *(int *)(*(int *)(this + 8) + 0x2c))" (( "(") (binary_expression "-1 < *(int *)(*(int *)(this + 8) + 0x2c)" (number_literal "-1") (< "<") (pointer_expression "*(int *)(*(int *)(this + 8) + 0x2c)" (* "*") (cast_expression "(int *)(*(int *)(this + 8) + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(this + 8) + 0x2c)" (( "(") (binary_expression "*(int *)(this + 8) + 0x2c" (pointer_expression "*(int *)(this + 8)" (* "*") (cast_expression "(int *)(this + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 8)" (( "(") (binary_expression "this + 8" (identifier "this") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x2c")) () ")"))))) () ")")) (compound_statement "{\n      iVar6 = *(int *)(*(int *)PTR_parameters_00432be0 + 8);\n      goto LAB_0022ebf4;\n    }" ({ "{") (expression_statement "iVar6 = *(int *)(*(int *)PTR_parameters_00432be0 + 8);" (assignment_expression "iVar6 = *(int *)(*(int *)PTR_parameters_00432be0 + 8)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(*(int *)PTR_parameters_00432be0 + 8)" (* "*") (cast_expression "(int *)(*(int *)PTR_parameters_00432be0 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)PTR_parameters_00432be0 + 8)" (( "(") (binary_expression "*(int *)PTR_parameters_00432be0 + 8" (pointer_expression "*(int *)PTR_parameters_00432be0" (* "*") (cast_expression "(int *)PTR_parameters_00432be0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_parameters_00432be0"))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (goto_statement "goto LAB_0022ebf4;" (goto "goto") (statement_identifier "LAB_0022ebf4") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    if ((uVar2 & 0xe000) != 0) {\n      uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                        (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + -0x2a70);\n      return uVar4;\n    }\n    uVar8 = *(uint *)(this + 8);\n    if (-1 < *(int *)(uVar8 + 0x2c)) {\n      if (((int)(uVar2 << 0x1d) < 0) && (uVar2 = *(uint *)(this + 0xc), uVar2 != 0)) {\n        if ((uint)(*(int *)(uVar8 + 0x3c) - *(int *)(uVar8 + 0x38) >> 2) <= uVar2) {\n          uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                            (PTR_LAB_0043220c + 0x44a8,0x50b,PTR_DAT_0043226c + -0x2a84);\n          return uVar4;\n        }\n        if (*(int *)(*(int *)(uVar8 + 0x38) + uVar2 * 4) == 0) {\n          iVar6 = Symbol_table::is_section_folded((Relobj *)param_1,uVar8);\n          if (iVar6 == 0) {\n            return 0;\n          }\n          uVar2 = *(uint *)(this + 0x28);\n          if (((uVar2 & 0xe000) == 0) &&\n             (uVar8 = (uVar2 << 0x1c) >> 0x1f, *(int *)(*(int *)(this + 8) + 0x2c) < 0))\n          goto LAB_0022ece0;\n        }\n      }\n      iVar6 = *(int *)(*(int *)puVar1 + 8);\n      if (iVar6 == 0) goto LAB_0022ee04;\n      goto LAB_0022ebf4;\n    }\nLAB_0022ecdc:\n    uVar8 = (uVar2 << 0x1c) >> 0x1f;\n  }" (else "else") (compound_statement "{\n    if ((uVar2 & 0xe000) != 0) {\n      uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                        (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + -0x2a70);\n      return uVar4;\n    }\n    uVar8 = *(uint *)(this + 8);\n    if (-1 < *(int *)(uVar8 + 0x2c)) {\n      if (((int)(uVar2 << 0x1d) < 0) && (uVar2 = *(uint *)(this + 0xc), uVar2 != 0)) {\n        if ((uint)(*(int *)(uVar8 + 0x3c) - *(int *)(uVar8 + 0x38) >> 2) <= uVar2) {\n          uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                            (PTR_LAB_0043220c + 0x44a8,0x50b,PTR_DAT_0043226c + -0x2a84);\n          return uVar4;\n        }\n        if (*(int *)(*(int *)(uVar8 + 0x38) + uVar2 * 4) == 0) {\n          iVar6 = Symbol_table::is_section_folded((Relobj *)param_1,uVar8);\n          if (iVar6 == 0) {\n            return 0;\n          }\n          uVar2 = *(uint *)(this + 0x28);\n          if (((uVar2 & 0xe000) == 0) &&\n             (uVar8 = (uVar2 << 0x1c) >> 0x1f, *(int *)(*(int *)(this + 8) + 0x2c) < 0))\n          goto LAB_0022ece0;\n        }\n      }\n      iVar6 = *(int *)(*(int *)puVar1 + 8);\n      if (iVar6 == 0) goto LAB_0022ee04;\n      goto LAB_0022ebf4;\n    }\nLAB_0022ecdc:\n    uVar8 = (uVar2 << 0x1c) >> 0x1f;\n  }" ({ "{") (if_statement "if ((uVar2 & 0xe000) != 0) {\n      uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                        (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + -0x2a70);\n      return uVar4;\n    }" (if "if") (parenthesized_expression "((uVar2 & 0xe000) != 0)" (( "(") (binary_expression "(uVar2 & 0xe000) != 0" (parenthesized_expression "(uVar2 & 0xe000)" (( "(") (binary_expression "uVar2 & 0xe000" (identifier "uVar2") (& "&") (number_literal "0xe000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                        (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + -0x2a70);\n      return uVar4;\n    }" ({ "{") (expression_statement "uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                        (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + -0x2a70);" (assignment_expression "uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                        (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + -0x2a70)" (identifier "uVar4") (= "=") (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                        (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + -0x2a70)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004323c4"))) () ")")) (argument_list "(PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + -0x2a70)" (( "(") (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5bdc" (identifier "PTR_s_alize_xindex_004323b4") (+ "+") (number_literal "-0x5bdc")) (, ",") (number_literal "0xa1") (, ",") (binary_expression "PTR_DAT_0043226c + -0x2a70" (identifier "PTR_DAT_0043226c") (+ "+") (number_literal "-0x2a70")) () ")")))) (; ";")) (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";")) (} "}"))) (expression_statement "uVar8 = *(uint *)(this + 8);" (assignment_expression "uVar8 = *(uint *)(this + 8)" (identifier "uVar8") (= "=") (pointer_expression "*(uint *)(this + 8)" (* "*") (cast_expression "(uint *)(this + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 8)" (( "(") (binary_expression "this + 8" (identifier "this") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (-1 < *(int *)(uVar8 + 0x2c)) {\n      if (((int)(uVar2 << 0x1d) < 0) && (uVar2 = *(uint *)(this + 0xc), uVar2 != 0)) {\n        if ((uint)(*(int *)(uVar8 + 0x3c) - *(int *)(uVar8 + 0x38) >> 2) <= uVar2) {\n          uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                            (PTR_LAB_0043220c + 0x44a8,0x50b,PTR_DAT_0043226c + -0x2a84);\n          return uVar4;\n        }\n        if (*(int *)(*(int *)(uVar8 + 0x38) + uVar2 * 4) == 0) {\n          iVar6 = Symbol_table::is_section_folded((Relobj *)param_1,uVar8);\n          if (iVar6 == 0) {\n            return 0;\n          }\n          uVar2 = *(uint *)(this + 0x28);\n          if (((uVar2 & 0xe000) == 0) &&\n             (uVar8 = (uVar2 << 0x1c) >> 0x1f, *(int *)(*(int *)(this + 8) + 0x2c) < 0))\n          goto LAB_0022ece0;\n        }\n      }\n      iVar6 = *(int *)(*(int *)puVar1 + 8);\n      if (iVar6 == 0) goto LAB_0022ee04;\n      goto LAB_0022ebf4;\n    }" (if "if") (parenthesized_expression "(-1 < *(int *)(uVar8 + 0x2c))" (( "(") (binary_expression "-1 < *(int *)(uVar8 + 0x2c)" (number_literal "-1") (< "<") (pointer_expression "*(int *)(uVar8 + 0x2c)" (* "*") (cast_expression "(int *)(uVar8 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar8 + 0x2c)" (( "(") (binary_expression "uVar8 + 0x2c" (identifier "uVar8") (+ "+") (number_literal "0x2c")) () ")"))))) () ")")) (compound_statement "{\n      if (((int)(uVar2 << 0x1d) < 0) && (uVar2 = *(uint *)(this + 0xc), uVar2 != 0)) {\n        if ((uint)(*(int *)(uVar8 + 0x3c) - *(int *)(uVar8 + 0x38) >> 2) <= uVar2) {\n          uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                            (PTR_LAB_0043220c + 0x44a8,0x50b,PTR_DAT_0043226c + -0x2a84);\n          return uVar4;\n        }\n        if (*(int *)(*(int *)(uVar8 + 0x38) + uVar2 * 4) == 0) {\n          iVar6 = Symbol_table::is_section_folded((Relobj *)param_1,uVar8);\n          if (iVar6 == 0) {\n            return 0;\n          }\n          uVar2 = *(uint *)(this + 0x28);\n          if (((uVar2 & 0xe000) == 0) &&\n             (uVar8 = (uVar2 << 0x1c) >> 0x1f, *(int *)(*(int *)(this + 8) + 0x2c) < 0))\n          goto LAB_0022ece0;\n        }\n      }\n      iVar6 = *(int *)(*(int *)puVar1 + 8);\n      if (iVar6 == 0) goto LAB_0022ee04;\n      goto LAB_0022ebf4;\n    }" ({ "{") (if_statement "if (((int)(uVar2 << 0x1d) < 0) && (uVar2 = *(uint *)(this + 0xc), uVar2 != 0)) {\n        if ((uint)(*(int *)(uVar8 + 0x3c) - *(int *)(uVar8 + 0x38) >> 2) <= uVar2) {\n          uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                            (PTR_LAB_0043220c + 0x44a8,0x50b,PTR_DAT_0043226c + -0x2a84);\n          return uVar4;\n        }\n        if (*(int *)(*(int *)(uVar8 + 0x38) + uVar2 * 4) == 0) {\n          iVar6 = Symbol_table::is_section_folded((Relobj *)param_1,uVar8);\n          if (iVar6 == 0) {\n            return 0;\n          }\n          uVar2 = *(uint *)(this + 0x28);\n          if (((uVar2 & 0xe000) == 0) &&\n             (uVar8 = (uVar2 << 0x1c) >> 0x1f, *(int *)(*(int *)(this + 8) + 0x2c) < 0))\n          goto LAB_0022ece0;\n        }\n      }" (if "if") (parenthesized_expression "(((int)(uVar2 << 0x1d) < 0) && (uVar2 = *(uint *)(this + 0xc), uVar2 != 0))" (( "(") (binary_expression "((int)(uVar2 << 0x1d) < 0) && (uVar2 = *(uint *)(this + 0xc), uVar2 != 0)" (parenthesized_expression "((int)(uVar2 << 0x1d) < 0)" (( "(") (binary_expression "(int)(uVar2 << 0x1d) < 0" (cast_expression "(int)(uVar2 << 0x1d)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar2 << 0x1d)" (( "(") (binary_expression "uVar2 << 0x1d" (identifier "uVar2") (<< "<<") (number_literal "0x1d")) () ")"))) (< "<") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(uVar2 = *(uint *)(this + 0xc), uVar2 != 0)" (( "(") (comma_expression "uVar2 = *(uint *)(this + 0xc), uVar2 != 0" (assignment_expression "uVar2 = *(uint *)(this + 0xc)" (identifier "uVar2") (= "=") (pointer_expression "*(uint *)(this + 0xc)" (* "*") (cast_expression "(uint *)(this + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0xc)" (( "(") (binary_expression "this + 0xc" (identifier "this") (+ "+") (number_literal "0xc")) () ")"))))) (, ",") (binary_expression "uVar2 != 0" (identifier "uVar2") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n        if ((uint)(*(int *)(uVar8 + 0x3c) - *(int *)(uVar8 + 0x38) >> 2) <= uVar2) {\n          uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                            (PTR_LAB_0043220c + 0x44a8,0x50b,PTR_DAT_0043226c + -0x2a84);\n          return uVar4;\n        }\n        if (*(int *)(*(int *)(uVar8 + 0x38) + uVar2 * 4) == 0) {\n          iVar6 = Symbol_table::is_section_folded((Relobj *)param_1,uVar8);\n          if (iVar6 == 0) {\n            return 0;\n          }\n          uVar2 = *(uint *)(this + 0x28);\n          if (((uVar2 & 0xe000) == 0) &&\n             (uVar8 = (uVar2 << 0x1c) >> 0x1f, *(int *)(*(int *)(this + 8) + 0x2c) < 0))\n          goto LAB_0022ece0;\n        }\n      }" ({ "{") (if_statement "if ((uint)(*(int *)(uVar8 + 0x3c) - *(int *)(uVar8 + 0x38) >> 2) <= uVar2) {\n          uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                            (PTR_LAB_0043220c + 0x44a8,0x50b,PTR_DAT_0043226c + -0x2a84);\n          return uVar4;\n        }" (if "if") (parenthesized_expression "((uint)(*(int *)(uVar8 + 0x3c) - *(int *)(uVar8 + 0x38) >> 2) <= uVar2)" (( "(") (binary_expression "(uint)(*(int *)(uVar8 + 0x3c) - *(int *)(uVar8 + 0x38) >> 2) <= uVar2" (call_expression "(uint)(*(int *)(uVar8 + 0x3c) - *(int *)(uVar8 + 0x38) >> 2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(int *)(uVar8 + 0x3c) - *(int *)(uVar8 + 0x38) >> 2)" (( "(") (binary_expression "*(int *)(uVar8 + 0x3c) - *(int *)(uVar8 + 0x38) >> 2" (binary_expression "*(int *)(uVar8 + 0x3c) - *(int *)(uVar8 + 0x38)" (pointer_expression "*(int *)(uVar8 + 0x3c)" (* "*") (cast_expression "(int *)(uVar8 + 0x3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar8 + 0x3c)" (( "(") (binary_expression "uVar8 + 0x3c" (identifier "uVar8") (+ "+") (number_literal "0x3c")) () ")")))) (- "-") (pointer_expression "*(int *)(uVar8 + 0x38)" (* "*") (cast_expression "(int *)(uVar8 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar8 + 0x38)" (( "(") (binary_expression "uVar8 + 0x38" (identifier "uVar8") (+ "+") (number_literal "0x38")) () ")"))))) (>> ">>") (number_literal "2")) () ")"))) (<= "<=") (identifier "uVar2")) () ")")) (compound_statement "{\n          uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                            (PTR_LAB_0043220c + 0x44a8,0x50b,PTR_DAT_0043226c + -0x2a84);\n          return uVar4;\n        }" ({ "{") (expression_statement "uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                            (PTR_LAB_0043220c + 0x44a8,0x50b,PTR_DAT_0043226c + -0x2a84);" (assignment_expression "uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                            (PTR_LAB_0043220c + 0x44a8,0x50b,PTR_DAT_0043226c + -0x2a84)" (identifier "uVar4") (= "=") (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                            (PTR_LAB_0043220c + 0x44a8,0x50b,PTR_DAT_0043226c + -0x2a84)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004323c4"))) () ")")) (argument_list "(PTR_LAB_0043220c + 0x44a8,0x50b,PTR_DAT_0043226c + -0x2a84)" (( "(") (binary_expression "PTR_LAB_0043220c + 0x44a8" (identifier "PTR_LAB_0043220c") (+ "+") (number_literal "0x44a8")) (, ",") (number_literal "0x50b") (, ",") (binary_expression "PTR_DAT_0043226c + -0x2a84" (identifier "PTR_DAT_0043226c") (+ "+") (number_literal "-0x2a84")) () ")")))) (; ";")) (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";")) (} "}"))) (if_statement "if (*(int *)(*(int *)(uVar8 + 0x38) + uVar2 * 4) == 0) {\n          iVar6 = Symbol_table::is_section_folded((Relobj *)param_1,uVar8);\n          if (iVar6 == 0) {\n            return 0;\n          }\n          uVar2 = *(uint *)(this + 0x28);\n          if (((uVar2 & 0xe000) == 0) &&\n             (uVar8 = (uVar2 << 0x1c) >> 0x1f, *(int *)(*(int *)(this + 8) + 0x2c) < 0))\n          goto LAB_0022ece0;\n        }" (if "if") (parenthesized_expression "(*(int *)(*(int *)(uVar8 + 0x38) + uVar2 * 4) == 0)" (( "(") (binary_expression "*(int *)(*(int *)(uVar8 + 0x38) + uVar2 * 4) == 0" (pointer_expression "*(int *)(*(int *)(uVar8 + 0x38) + uVar2 * 4)" (* "*") (cast_expression "(int *)(*(int *)(uVar8 + 0x38) + uVar2 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(uVar8 + 0x38) + uVar2 * 4)" (( "(") (binary_expression "*(int *)(uVar8 + 0x38) + uVar2 * 4" (pointer_expression "*(int *)(uVar8 + 0x38)" (* "*") (cast_expression "(int *)(uVar8 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar8 + 0x38)" (( "(") (binary_expression "uVar8 + 0x38" (identifier "uVar8") (+ "+") (number_literal "0x38")) () ")")))) (+ "+") (binary_expression "uVar2 * 4" (identifier "uVar2") (* "*") (number_literal "4"))) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar6 = Symbol_table::is_section_folded((Relobj *)param_1,uVar8);\n          if (iVar6 == 0) {\n            return 0;\n          }\n          uVar2 = *(uint *)(this + 0x28);\n          if (((uVar2 & 0xe000) == 0) &&\n             (uVar8 = (uVar2 << 0x1c) >> 0x1f, *(int *)(*(int *)(this + 8) + 0x2c) < 0))\n          goto LAB_0022ece0;\n        }" ({ "{") (ERROR "iVar6 = Symbol_table::" (assignment_expression "iVar6 = Symbol_table" (identifier "iVar6") (= "=") (identifier "Symbol_table")) (: ":") (: ":")) (expression_statement "is_section_folded((Relobj *)param_1,uVar8);" (call_expression "is_section_folded((Relobj *)param_1,uVar8)" (identifier "is_section_folded") (argument_list "((Relobj *)param_1,uVar8)" (( "(") (cast_expression "(Relobj *)param_1" (( "(") (type_descriptor "Relobj *" (type_identifier "Relobj") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (identifier "uVar8") () ")"))) (; ";")) (if_statement "if (iVar6 == 0) {\n            return 0;\n          }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            return 0;\n          }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "uVar2 = *(uint *)(this + 0x28);" (assignment_expression "uVar2 = *(uint *)(this + 0x28)" (identifier "uVar2") (= "=") (pointer_expression "*(uint *)(this + 0x28)" (* "*") (cast_expression "(uint *)(this + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x28)" (( "(") (binary_expression "this + 0x28" (identifier "this") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (if_statement "if (((uVar2 & 0xe000) == 0) &&\n             (uVar8 = (uVar2 << 0x1c) >> 0x1f, *(int *)(*(int *)(this + 8) + 0x2c) < 0))\n          goto LAB_0022ece0;" (if "if") (parenthesized_expression "(((uVar2 & 0xe000) == 0) &&\n             (uVar8 = (uVar2 << 0x1c) >> 0x1f, *(int *)(*(int *)(this + 8) + 0x2c) < 0))" (( "(") (binary_expression "((uVar2 & 0xe000) == 0) &&\n             (uVar8 = (uVar2 << 0x1c) >> 0x1f, *(int *)(*(int *)(this + 8) + 0x2c) < 0)" (parenthesized_expression "((uVar2 & 0xe000) == 0)" (( "(") (binary_expression "(uVar2 & 0xe000) == 0" (parenthesized_expression "(uVar2 & 0xe000)" (( "(") (binary_expression "uVar2 & 0xe000" (identifier "uVar2") (& "&") (number_literal "0xe000")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(uVar8 = (uVar2 << 0x1c) >> 0x1f, *(int *)(*(int *)(this + 8) + 0x2c) < 0)" (( "(") (comma_expression "uVar8 = (uVar2 << 0x1c) >> 0x1f, *(int *)(*(int *)(this + 8) + 0x2c) < 0" (assignment_expression "uVar8 = (uVar2 << 0x1c) >> 0x1f" (identifier "uVar8") (= "=") (binary_expression "(uVar2 << 0x1c) >> 0x1f" (parenthesized_expression "(uVar2 << 0x1c)" (( "(") (binary_expression "uVar2 << 0x1c" (identifier "uVar2") (<< "<<") (number_literal "0x1c")) () ")")) (>> ">>") (number_literal "0x1f"))) (, ",") (binary_expression "*(int *)(*(int *)(this + 8) + 0x2c) < 0" (pointer_expression "*(int *)(*(int *)(this + 8) + 0x2c)" (* "*") (cast_expression "(int *)(*(int *)(this + 8) + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(this + 8) + 0x2c)" (( "(") (binary_expression "*(int *)(this + 8) + 0x2c" (pointer_expression "*(int *)(this + 8)" (* "*") (cast_expression "(int *)(this + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 8)" (( "(") (binary_expression "this + 8" (identifier "this") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x2c")) () ")")))) (< "<") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_0022ece0;" (goto "goto") (statement_identifier "LAB_0022ece0") (; ";"))) (} "}"))) (} "}"))) (expression_statement "iVar6 = *(int *)(*(int *)puVar1 + 8);" (assignment_expression "iVar6 = *(int *)(*(int *)puVar1 + 8)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(*(int *)puVar1 + 8)" (* "*") (cast_expression "(int *)(*(int *)puVar1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)puVar1 + 8)" (( "(") (binary_expression "*(int *)puVar1 + 8" (pointer_expression "*(int *)puVar1" (* "*") (cast_expression "(int *)puVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1"))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar6 == 0) goto LAB_0022ee04;" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0022ee04;" (goto "goto") (statement_identifier "LAB_0022ee04") (; ";"))) (goto_statement "goto LAB_0022ebf4;" (goto "goto") (statement_identifier "LAB_0022ebf4") (; ";")) (} "}"))) (labeled_statement "LAB_0022ecdc:\n    uVar8 = (uVar2 << 0x1c) >> 0x1f;" (statement_identifier "LAB_0022ecdc") (: ":") (expression_statement "uVar8 = (uVar2 << 0x1c) >> 0x1f;" (assignment_expression "uVar8 = (uVar2 << 0x1c) >> 0x1f" (identifier "uVar8") (= "=") (binary_expression "(uVar2 << 0x1c) >> 0x1f" (parenthesized_expression "(uVar2 << 0x1c)" (( "(") (binary_expression "uVar2 << 0x1c" (identifier "uVar2") (<< "<<") (number_literal "0x1c")) () ")")) (>> ">>") (number_literal "0x1f"))) (; ";"))) (} "}")))) (labeled_statement "LAB_0022ece0:\n  if (uVar8 != 0) {\n    return 0;\n  }" (statement_identifier "LAB_0022ece0") (: ":") (if_statement "if (uVar8 != 0) {\n    return 0;\n  }" (if "if") (parenthesized_expression "(uVar8 != 0)" (( "(") (binary_expression "uVar8 != 0" (identifier "uVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))) (expression_statement "iVar6 = *(int *)(*(int *)puVar1 + 8);" (assignment_expression "iVar6 = *(int *)(*(int *)puVar1 + 8)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(*(int *)puVar1 + 8)" (* "*") (cast_expression "(int *)(*(int *)puVar1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)puVar1 + 8)" (( "(") (binary_expression "*(int *)puVar1 + 8" (pointer_expression "*(int *)puVar1" (* "*") (cast_expression "(int *)puVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1"))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar6 == 0) goto LAB_0022ee04;" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0022ee04;" (goto "goto") (statement_identifier "LAB_0022ee04") (; ";"))) (if_statement "if (*(char *)(iVar6 + 0xe8d) == '\0') {\nLAB_0022eeb4:\n    if ((*(char *)(iVar6 + 0xf09) == '\0') && (*(char *)(iVar6 + 0xf85) == '\0')) goto LAB_0022ed40;\n    if ((uVar2 & 0xe000) == 0) {\n      iVar7 = *(int *)(this + 8);\n      goto LAB_0022ed34;\n    }\n  }\n  else {\n    if (((uVar2 & 0xe000) != 0) || (iVar7 = *(int *)(this + 8), -1 < *(int *)(iVar7 + 0x2c))) {\n      if (uVar2 >> 0x1c == 1) {\n        return uVar4;\n      }\n      goto LAB_0022eeb4;\n    }\n    if ((*(char *)(iVar6 + 0xf09) != '\0') || (*(char *)(iVar6 + 0xf85) == '\0')) goto LAB_0022ed40;\nLAB_0022ed34:\n    if (*(int *)(iVar7 + 0x2c) < 0) goto LAB_0022ed40;\n  }" (if "if") (parenthesized_expression "(*(char *)(iVar6 + 0xe8d) == '\0')" (( "(") (binary_expression "*(char *)(iVar6 + 0xe8d) == '\0'" (pointer_expression "*(char *)(iVar6 + 0xe8d)" (* "*") (cast_expression "(char *)(iVar6 + 0xe8d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0xe8d)" (( "(") (binary_expression "iVar6 + 0xe8d" (identifier "iVar6") (+ "+") (number_literal "0xe8d")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\nLAB_0022eeb4:\n    if ((*(char *)(iVar6 + 0xf09) == '\0') && (*(char *)(iVar6 + 0xf85) == '\0')) goto LAB_0022ed40;\n    if ((uVar2 & 0xe000) == 0) {\n      iVar7 = *(int *)(this + 8);\n      goto LAB_0022ed34;\n    }\n  }" ({ "{") (labeled_statement "LAB_0022eeb4:\n    if ((*(char *)(iVar6 + 0xf09) == '\0') && (*(char *)(iVar6 + 0xf85) == '\0')) goto LAB_0022ed40;" (statement_identifier "LAB_0022eeb4") (: ":") (if_statement "if ((*(char *)(iVar6 + 0xf09) == '\0') && (*(char *)(iVar6 + 0xf85) == '\0')) goto LAB_0022ed40;" (if "if") (parenthesized_expression "((*(char *)(iVar6 + 0xf09) == '\0') && (*(char *)(iVar6 + 0xf85) == '\0'))" (( "(") (binary_expression "(*(char *)(iVar6 + 0xf09) == '\0') && (*(char *)(iVar6 + 0xf85) == '\0')" (parenthesized_expression "(*(char *)(iVar6 + 0xf09) == '\0')" (( "(") (binary_expression "*(char *)(iVar6 + 0xf09) == '\0'" (pointer_expression "*(char *)(iVar6 + 0xf09)" (* "*") (cast_expression "(char *)(iVar6 + 0xf09)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0xf09)" (( "(") (binary_expression "iVar6 + 0xf09" (identifier "iVar6") (+ "+") (number_literal "0xf09")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(iVar6 + 0xf85) == '\0')" (( "(") (binary_expression "*(char *)(iVar6 + 0xf85) == '\0'" (pointer_expression "*(char *)(iVar6 + 0xf85)" (* "*") (cast_expression "(char *)(iVar6 + 0xf85)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0xf85)" (( "(") (binary_expression "iVar6 + 0xf85" (identifier "iVar6") (+ "+") (number_literal "0xf85")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (goto_statement "goto LAB_0022ed40;" (goto "goto") (statement_identifier "LAB_0022ed40") (; ";")))) (if_statement "if ((uVar2 & 0xe000) == 0) {\n      iVar7 = *(int *)(this + 8);\n      goto LAB_0022ed34;\n    }" (if "if") (parenthesized_expression "((uVar2 & 0xe000) == 0)" (( "(") (binary_expression "(uVar2 & 0xe000) == 0" (parenthesized_expression "(uVar2 & 0xe000)" (( "(") (binary_expression "uVar2 & 0xe000" (identifier "uVar2") (& "&") (number_literal "0xe000")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar7 = *(int *)(this + 8);\n      goto LAB_0022ed34;\n    }" ({ "{") (expression_statement "iVar7 = *(int *)(this + 8);" (assignment_expression "iVar7 = *(int *)(this + 8)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(this + 8)" (* "*") (cast_expression "(int *)(this + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 8)" (( "(") (binary_expression "this + 8" (identifier "this") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (goto_statement "goto LAB_0022ed34;" (goto "goto") (statement_identifier "LAB_0022ed34") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    if (((uVar2 & 0xe000) != 0) || (iVar7 = *(int *)(this + 8), -1 < *(int *)(iVar7 + 0x2c))) {\n      if (uVar2 >> 0x1c == 1) {\n        return uVar4;\n      }\n      goto LAB_0022eeb4;\n    }\n    if ((*(char *)(iVar6 + 0xf09) != '\0') || (*(char *)(iVar6 + 0xf85) == '\0')) goto LAB_0022ed40;\nLAB_0022ed34:\n    if (*(int *)(iVar7 + 0x2c) < 0) goto LAB_0022ed40;\n  }" (else "else") (compound_statement "{\n    if (((uVar2 & 0xe000) != 0) || (iVar7 = *(int *)(this + 8), -1 < *(int *)(iVar7 + 0x2c))) {\n      if (uVar2 >> 0x1c == 1) {\n        return uVar4;\n      }\n      goto LAB_0022eeb4;\n    }\n    if ((*(char *)(iVar6 + 0xf09) != '\0') || (*(char *)(iVar6 + 0xf85) == '\0')) goto LAB_0022ed40;\nLAB_0022ed34:\n    if (*(int *)(iVar7 + 0x2c) < 0) goto LAB_0022ed40;\n  }" ({ "{") (if_statement "if (((uVar2 & 0xe000) != 0) || (iVar7 = *(int *)(this + 8), -1 < *(int *)(iVar7 + 0x2c))) {\n      if (uVar2 >> 0x1c == 1) {\n        return uVar4;\n      }\n      goto LAB_0022eeb4;\n    }" (if "if") (parenthesized_expression "(((uVar2 & 0xe000) != 0) || (iVar7 = *(int *)(this + 8), -1 < *(int *)(iVar7 + 0x2c)))" (( "(") (binary_expression "((uVar2 & 0xe000) != 0) || (iVar7 = *(int *)(this + 8), -1 < *(int *)(iVar7 + 0x2c))" (parenthesized_expression "((uVar2 & 0xe000) != 0)" (( "(") (binary_expression "(uVar2 & 0xe000) != 0" (parenthesized_expression "(uVar2 & 0xe000)" (( "(") (binary_expression "uVar2 & 0xe000" (identifier "uVar2") (& "&") (number_literal "0xe000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar7 = *(int *)(this + 8), -1 < *(int *)(iVar7 + 0x2c))" (( "(") (comma_expression "iVar7 = *(int *)(this + 8), -1 < *(int *)(iVar7 + 0x2c)" (assignment_expression "iVar7 = *(int *)(this + 8)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(this + 8)" (* "*") (cast_expression "(int *)(this + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 8)" (( "(") (binary_expression "this + 8" (identifier "this") (+ "+") (number_literal "8")) () ")"))))) (, ",") (binary_expression "-1 < *(int *)(iVar7 + 0x2c)" (number_literal "-1") (< "<") (pointer_expression "*(int *)(iVar7 + 0x2c)" (* "*") (cast_expression "(int *)(iVar7 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x2c)" (( "(") (binary_expression "iVar7 + 0x2c" (identifier "iVar7") (+ "+") (number_literal "0x2c")) () ")")))))) () ")"))) () ")")) (compound_statement "{\n      if (uVar2 >> 0x1c == 1) {\n        return uVar4;\n      }\n      goto LAB_0022eeb4;\n    }" ({ "{") (if_statement "if (uVar2 >> 0x1c == 1) {\n        return uVar4;\n      }" (if "if") (parenthesized_expression "(uVar2 >> 0x1c == 1)" (( "(") (binary_expression "uVar2 >> 0x1c == 1" (binary_expression "uVar2 >> 0x1c" (identifier "uVar2") (>> ">>") (number_literal "0x1c")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n        return uVar4;\n      }" ({ "{") (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";")) (} "}"))) (goto_statement "goto LAB_0022eeb4;" (goto "goto") (statement_identifier "LAB_0022eeb4") (; ";")) (} "}"))) (if_statement "if ((*(char *)(iVar6 + 0xf09) != '\0') || (*(char *)(iVar6 + 0xf85) == '\0')) goto LAB_0022ed40;" (if "if") (parenthesized_expression "((*(char *)(iVar6 + 0xf09) != '\0') || (*(char *)(iVar6 + 0xf85) == '\0'))" (( "(") (binary_expression "(*(char *)(iVar6 + 0xf09) != '\0') || (*(char *)(iVar6 + 0xf85) == '\0')" (parenthesized_expression "(*(char *)(iVar6 + 0xf09) != '\0')" (( "(") (binary_expression "*(char *)(iVar6 + 0xf09) != '\0'" (pointer_expression "*(char *)(iVar6 + 0xf09)" (* "*") (cast_expression "(char *)(iVar6 + 0xf09)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0xf09)" (( "(") (binary_expression "iVar6 + 0xf09" (identifier "iVar6") (+ "+") (number_literal "0xf09")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(*(char *)(iVar6 + 0xf85) == '\0')" (( "(") (binary_expression "*(char *)(iVar6 + 0xf85) == '\0'" (pointer_expression "*(char *)(iVar6 + 0xf85)" (* "*") (cast_expression "(char *)(iVar6 + 0xf85)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0xf85)" (( "(") (binary_expression "iVar6 + 0xf85" (identifier "iVar6") (+ "+") (number_literal "0xf85")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (goto_statement "goto LAB_0022ed40;" (goto "goto") (statement_identifier "LAB_0022ed40") (; ";"))) (labeled_statement "LAB_0022ed34:\n    if (*(int *)(iVar7 + 0x2c) < 0) goto LAB_0022ed40;" (statement_identifier "LAB_0022ed34") (: ":") (if_statement "if (*(int *)(iVar7 + 0x2c) < 0) goto LAB_0022ed40;" (if "if") (parenthesized_expression "(*(int *)(iVar7 + 0x2c) < 0)" (( "(") (binary_expression "*(int *)(iVar7 + 0x2c) < 0" (pointer_expression "*(int *)(iVar7 + 0x2c)" (* "*") (cast_expression "(int *)(iVar7 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x2c)" (( "(") (binary_expression "iVar7 + 0x2c" (identifier "iVar7") (+ "+") (number_literal "0x2c")) () ")")))) (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_0022ed40;" (goto "goto") (statement_identifier "LAB_0022ed40") (; ";")))) (} "}")))) (expression_statement "iVar6 = (*(code *)PTR_cplus_demangle_004335b0)(*(undefined4 *)this,3);" (assignment_expression "iVar6 = (*(code *)PTR_cplus_demangle_004335b0)(*(undefined4 *)this,3)" (identifier "iVar6") (= "=") (call_expression "(*(code *)PTR_cplus_demangle_004335b0)(*(undefined4 *)this,3)" (parenthesized_expression "(*(code *)PTR_cplus_demangle_004335b0)" (( "(") (pointer_expression "*(code *)PTR_cplus_demangle_004335b0" (* "*") (cast_expression "(code *)PTR_cplus_demangle_004335b0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_cplus_demangle_004335b0"))) () ")")) (argument_list "(*(undefined4 *)this,3)" (( "(") (pointer_expression "*(undefined4 *)this" (* "*") (cast_expression "(undefined4 *)this" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "this"))) (, ",") (number_literal "3") () ")")))) (; ";")) (if_statement "if (iVar6 != 0) {\n    iVar7 = *(int *)(*(int *)puVar1 + 8);\n    if (iVar7 == 0) goto LAB_0022ee04;\n    uVar4 = (uint)*(byte *)(iVar7 + 0xf09);\n    if (((uVar4 != 0) &&\n        ((iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35d0,0xc), iVar5 == 0\n         || (iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35c0,0xf),\n            iVar5 == 0)))) ||\n       ((uVar4 = (uint)*(byte *)(iVar7 + 0xf85), uVar4 != 0 &&\n        ((iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35b0,0x11), iVar7 == 0\n         || (iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc),\n            iVar7 == 0)))))) {\n      (*(code *)PTR_free_00436800)(iVar6);\n      return uVar4;\n    }\n    (*(code *)PTR_free_00436800)(iVar6);\n  }" (if "if") (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar7 = *(int *)(*(int *)puVar1 + 8);\n    if (iVar7 == 0) goto LAB_0022ee04;\n    uVar4 = (uint)*(byte *)(iVar7 + 0xf09);\n    if (((uVar4 != 0) &&\n        ((iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35d0,0xc), iVar5 == 0\n         || (iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35c0,0xf),\n            iVar5 == 0)))) ||\n       ((uVar4 = (uint)*(byte *)(iVar7 + 0xf85), uVar4 != 0 &&\n        ((iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35b0,0x11), iVar7 == 0\n         || (iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc),\n            iVar7 == 0)))))) {\n      (*(code *)PTR_free_00436800)(iVar6);\n      return uVar4;\n    }\n    (*(code *)PTR_free_00436800)(iVar6);\n  }" ({ "{") (expression_statement "iVar7 = *(int *)(*(int *)puVar1 + 8);" (assignment_expression "iVar7 = *(int *)(*(int *)puVar1 + 8)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(*(int *)puVar1 + 8)" (* "*") (cast_expression "(int *)(*(int *)puVar1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)puVar1 + 8)" (( "(") (binary_expression "*(int *)puVar1 + 8" (pointer_expression "*(int *)puVar1" (* "*") (cast_expression "(int *)puVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1"))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar7 == 0) goto LAB_0022ee04;" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0022ee04;" (goto "goto") (statement_identifier "LAB_0022ee04") (; ";"))) (expression_statement "uVar4 = (uint)*(byte *)(iVar7 + 0xf09);" (assignment_expression "uVar4 = (uint)*(byte *)(iVar7 + 0xf09)" (identifier "uVar4") (= "=") (binary_expression "(uint)*(byte *)(iVar7 + 0xf09)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(iVar7 + 0xf09)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0xf09)" (( "(") (binary_expression "iVar7 + 0xf09" (identifier "iVar7") (+ "+") (number_literal "0xf09")) () ")"))))) (; ";")) (if_statement "if (((uVar4 != 0) &&\n        ((iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35d0,0xc), iVar5 == 0\n         || (iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35c0,0xf),\n            iVar5 == 0)))) ||\n       ((uVar4 = (uint)*(byte *)(iVar7 + 0xf85), uVar4 != 0 &&\n        ((iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35b0,0x11), iVar7 == 0\n         || (iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc),\n            iVar7 == 0)))))) {\n      (*(code *)PTR_free_00436800)(iVar6);\n      return uVar4;\n    }" (if "if") (parenthesized_expression "(((uVar4 != 0) &&\n        ((iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35d0,0xc), iVar5 == 0\n         || (iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35c0,0xf),\n            iVar5 == 0)))) ||\n       ((uVar4 = (uint)*(byte *)(iVar7 + 0xf85), uVar4 != 0 &&\n        ((iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35b0,0x11), iVar7 == 0\n         || (iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc),\n            iVar7 == 0))))))" (( "(") (binary_expression "((uVar4 != 0) &&\n        ((iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35d0,0xc), iVar5 == 0\n         || (iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35c0,0xf),\n            iVar5 == 0)))) ||\n       ((uVar4 = (uint)*(byte *)(iVar7 + 0xf85), uVar4 != 0 &&\n        ((iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35b0,0x11), iVar7 == 0\n         || (iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc),\n            iVar7 == 0)))))" (parenthesized_expression "((uVar4 != 0) &&\n        ((iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35d0,0xc), iVar5 == 0\n         || (iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35c0,0xf),\n            iVar5 == 0))))" (( "(") (binary_expression "(uVar4 != 0) &&\n        ((iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35d0,0xc), iVar5 == 0\n         || (iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35c0,0xf),\n            iVar5 == 0)))" (parenthesized_expression "(uVar4 != 0)" (( "(") (binary_expression "uVar4 != 0" (identifier "uVar4") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35d0,0xc), iVar5 == 0\n         || (iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35c0,0xf),\n            iVar5 == 0)))" (( "(") (parenthesized_expression "(iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35d0,0xc), iVar5 == 0\n         || (iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35c0,0xf),\n            iVar5 == 0))" (( "(") (comma_expression "iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35d0,0xc), iVar5 == 0\n         || (iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35c0,0xf),\n            iVar5 == 0)" (assignment_expression "iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35d0,0xc)" (identifier "iVar5") (= "=") (call_expression "(*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35d0,0xc)" (parenthesized_expression "(*(code *)PTR_strncmp_004366a0)" (( "(") (pointer_expression "*(code *)PTR_strncmp_004366a0" (* "*") (cast_expression "(code *)PTR_strncmp_004366a0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strncmp_004366a0"))) () ")")) (argument_list "(iVar6,PTR_DAT_0043226c + -0x35d0,0xc)" (( "(") (identifier "iVar6") (, ",") (binary_expression "PTR_DAT_0043226c + -0x35d0" (identifier "PTR_DAT_0043226c") (+ "+") (number_literal "-0x35d0")) (, ",") (number_literal "0xc") () ")")))) (, ",") (binary_expression "iVar5 == 0\n         || (iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35c0,0xf),\n            iVar5 == 0)" (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) (|| "||") (parenthesized_expression "(iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35c0,0xf),\n            iVar5 == 0)" (( "(") (comma_expression "iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35c0,0xf),\n            iVar5 == 0" (assignment_expression "iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35c0,0xf)" (identifier "iVar5") (= "=") (call_expression "(*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35c0,0xf)" (parenthesized_expression "(*(code *)PTR_strncmp_004366a0)" (( "(") (pointer_expression "*(code *)PTR_strncmp_004366a0" (* "*") (cast_expression "(code *)PTR_strncmp_004366a0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strncmp_004366a0"))) () ")")) (argument_list "(iVar6,PTR_DAT_0043226c + -0x35c0,0xf)" (( "(") (identifier "iVar6") (, ",") (binary_expression "PTR_DAT_0043226c + -0x35c0" (identifier "PTR_DAT_0043226c") (+ "+") (number_literal "-0x35c0")) (, ",") (number_literal "0xf") () ")")))) (, ",") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0"))) () ")")))) () ")")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((uVar4 = (uint)*(byte *)(iVar7 + 0xf85), uVar4 != 0 &&\n        ((iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35b0,0x11), iVar7 == 0\n         || (iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc),\n            iVar7 == 0)))))" (( "(") (parenthesized_expression "(uVar4 = (uint)*(byte *)(iVar7 + 0xf85), uVar4 != 0 &&\n        ((iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35b0,0x11), iVar7 == 0\n         || (iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc),\n            iVar7 == 0))))" (( "(") (comma_expression "uVar4 = (uint)*(byte *)(iVar7 + 0xf85), uVar4 != 0 &&\n        ((iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35b0,0x11), iVar7 == 0\n         || (iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc),\n            iVar7 == 0)))" (assignment_expression "uVar4 = (uint)*(byte *)(iVar7 + 0xf85)" (identifier "uVar4") (= "=") (binary_expression "(uint)*(byte *)(iVar7 + 0xf85)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(iVar7 + 0xf85)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0xf85)" (( "(") (binary_expression "iVar7 + 0xf85" (identifier "iVar7") (+ "+") (number_literal "0xf85")) () ")"))))) (, ",") (binary_expression "uVar4 != 0 &&\n        ((iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35b0,0x11), iVar7 == 0\n         || (iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc),\n            iVar7 == 0)))" (binary_expression "uVar4 != 0" (identifier "uVar4") (!= "!=") (number_literal "0")) (&& "&&") (parenthesized_expression "((iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35b0,0x11), iVar7 == 0\n         || (iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc),\n            iVar7 == 0)))" (( "(") (parenthesized_expression "(iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35b0,0x11), iVar7 == 0\n         || (iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc),\n            iVar7 == 0))" (( "(") (comma_expression "iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35b0,0x11), iVar7 == 0\n         || (iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc),\n            iVar7 == 0)" (assignment_expression "iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35b0,0x11)" (identifier "iVar7") (= "=") (call_expression "(*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35b0,0x11)" (parenthesized_expression "(*(code *)PTR_strncmp_004366a0)" (( "(") (pointer_expression "*(code *)PTR_strncmp_004366a0" (* "*") (cast_expression "(code *)PTR_strncmp_004366a0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strncmp_004366a0"))) () ")")) (argument_list "(iVar6,PTR_DAT_0043226c + -0x35b0,0x11)" (( "(") (identifier "iVar6") (, ",") (binary_expression "PTR_DAT_0043226c + -0x35b0" (identifier "PTR_DAT_0043226c") (+ "+") (number_literal "-0x35b0")) (, ",") (number_literal "0x11") () ")")))) (, ",") (binary_expression "iVar7 == 0\n         || (iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc),\n            iVar7 == 0)" (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) (|| "||") (parenthesized_expression "(iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc),\n            iVar7 == 0)" (( "(") (comma_expression "iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc),\n            iVar7 == 0" (assignment_expression "iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc)" (identifier "iVar7") (= "=") (call_expression "(*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc)" (parenthesized_expression "(*(code *)PTR_strncmp_004366a0)" (( "(") (pointer_expression "*(code *)PTR_strncmp_004366a0" (* "*") (cast_expression "(code *)PTR_strncmp_004366a0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strncmp_004366a0"))) () ")")) (argument_list "(iVar6,PTR_DAT_0043226c + -0x359c,0xc)" (( "(") (identifier "iVar6") (, ",") (binary_expression "PTR_DAT_0043226c + -0x359c" (identifier "PTR_DAT_0043226c") (+ "+") (number_literal "-0x359c")) (, ",") (number_literal "0xc") () ")")))) (, ",") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0"))) () ")")))) () ")")) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n      (*(code *)PTR_free_00436800)(iVar6);\n      return uVar4;\n    }" ({ "{") (expression_statement "(*(code *)PTR_free_00436800)(iVar6);" (call_expression "(*(code *)PTR_free_00436800)(iVar6)" (parenthesized_expression "(*(code *)PTR_free_00436800)" (( "(") (pointer_expression "*(code *)PTR_free_00436800" (* "*") (cast_expression "(code *)PTR_free_00436800" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_00436800"))) () ")")) (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))) (; ";")) (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_free_00436800)(iVar6);" (call_expression "(*(code *)PTR_free_00436800)(iVar6)" (parenthesized_expression "(*(code *)PTR_free_00436800)" (( "(") (pointer_expression "*(code *)PTR_free_00436800" (* "*") (cast_expression "(code *)PTR_free_00436800" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_00436800"))) () ")")) (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar6 = *(int *)(*(int *)puVar1 + 8);" (assignment_expression "iVar6 = *(int *)(*(int *)puVar1 + 8)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(*(int *)puVar1 + 8)" (* "*") (cast_expression "(int *)(*(int *)puVar1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)puVar1 + 8)" (( "(") (binary_expression "*(int *)puVar1 + 8" (pointer_expression "*(int *)puVar1" (* "*") (cast_expression "(int *)puVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1"))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar6 != 0) {\nLAB_0022ed40:\n    if ((*(char *)(iVar6 + 0x12bd) == '\0') && (*(char *)(iVar6 + 0x1a29) == '\0')) {\n      if (*(char *)(iVar6 + 0x19ad) == '\0') {\n        return 0;\n      }\n      uVar4 = *(uint *)(this + 0x28);\n      if ((uVar4 << 4) >> 0x1c != 10) {\n        return 0;\n      }\n    }\n    else {\n      uVar4 = *(uint *)(this + 0x28);\n    }\n    if ((uVar4 & 0xe000) == 0) {\n      if (*(int *)(*(int *)(this + 8) + 0x2c) < 0) {\n        return 0;\n      }\n      if ((*(int *)(this + 0xc) == 0) && ((int)(uVar4 << 0x1d) < 0)) {\n        return 0;\n      }\n    }\n    else if ((uVar4 & 0xe000) == 0x8000) {\n      return 0;\n    }\n    if (((uVar4 & 0xc00000) != 0) && ((uVar4 & 0xc00000) != 0xc00000)) {\n      return 0;\n    }\n    return (uVar4 << 0x1c) >> 0x1f ^ 1;\n  }" (if "if") (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0022ed40:\n    if ((*(char *)(iVar6 + 0x12bd) == '\0') && (*(char *)(iVar6 + 0x1a29) == '\0')) {\n      if (*(char *)(iVar6 + 0x19ad) == '\0') {\n        return 0;\n      }\n      uVar4 = *(uint *)(this + 0x28);\n      if ((uVar4 << 4) >> 0x1c != 10) {\n        return 0;\n      }\n    }\n    else {\n      uVar4 = *(uint *)(this + 0x28);\n    }\n    if ((uVar4 & 0xe000) == 0) {\n      if (*(int *)(*(int *)(this + 8) + 0x2c) < 0) {\n        return 0;\n      }\n      if ((*(int *)(this + 0xc) == 0) && ((int)(uVar4 << 0x1d) < 0)) {\n        return 0;\n      }\n    }\n    else if ((uVar4 & 0xe000) == 0x8000) {\n      return 0;\n    }\n    if (((uVar4 & 0xc00000) != 0) && ((uVar4 & 0xc00000) != 0xc00000)) {\n      return 0;\n    }\n    return (uVar4 << 0x1c) >> 0x1f ^ 1;\n  }" ({ "{") (labeled_statement "LAB_0022ed40:\n    if ((*(char *)(iVar6 + 0x12bd) == '\0') && (*(char *)(iVar6 + 0x1a29) == '\0')) {\n      if (*(char *)(iVar6 + 0x19ad) == '\0') {\n        return 0;\n      }\n      uVar4 = *(uint *)(this + 0x28);\n      if ((uVar4 << 4) >> 0x1c != 10) {\n        return 0;\n      }\n    }\n    else {\n      uVar4 = *(uint *)(this + 0x28);\n    }" (statement_identifier "LAB_0022ed40") (: ":") (if_statement "if ((*(char *)(iVar6 + 0x12bd) == '\0') && (*(char *)(iVar6 + 0x1a29) == '\0')) {\n      if (*(char *)(iVar6 + 0x19ad) == '\0') {\n        return 0;\n      }\n      uVar4 = *(uint *)(this + 0x28);\n      if ((uVar4 << 4) >> 0x1c != 10) {\n        return 0;\n      }\n    }\n    else {\n      uVar4 = *(uint *)(this + 0x28);\n    }" (if "if") (parenthesized_expression "((*(char *)(iVar6 + 0x12bd) == '\0') && (*(char *)(iVar6 + 0x1a29) == '\0'))" (( "(") (binary_expression "(*(char *)(iVar6 + 0x12bd) == '\0') && (*(char *)(iVar6 + 0x1a29) == '\0')" (parenthesized_expression "(*(char *)(iVar6 + 0x12bd) == '\0')" (( "(") (binary_expression "*(char *)(iVar6 + 0x12bd) == '\0'" (pointer_expression "*(char *)(iVar6 + 0x12bd)" (* "*") (cast_expression "(char *)(iVar6 + 0x12bd)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x12bd)" (( "(") (binary_expression "iVar6 + 0x12bd" (identifier "iVar6") (+ "+") (number_literal "0x12bd")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(iVar6 + 0x1a29) == '\0')" (( "(") (binary_expression "*(char *)(iVar6 + 0x1a29) == '\0'" (pointer_expression "*(char *)(iVar6 + 0x1a29)" (* "*") (cast_expression "(char *)(iVar6 + 0x1a29)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x1a29)" (( "(") (binary_expression "iVar6 + 0x1a29" (identifier "iVar6") (+ "+") (number_literal "0x1a29")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n      if (*(char *)(iVar6 + 0x19ad) == '\0') {\n        return 0;\n      }\n      uVar4 = *(uint *)(this + 0x28);\n      if ((uVar4 << 4) >> 0x1c != 10) {\n        return 0;\n      }\n    }" ({ "{") (if_statement "if (*(char *)(iVar6 + 0x19ad) == '\0') {\n        return 0;\n      }" (if "if") (parenthesized_expression "(*(char *)(iVar6 + 0x19ad) == '\0')" (( "(") (binary_expression "*(char *)(iVar6 + 0x19ad) == '\0'" (pointer_expression "*(char *)(iVar6 + 0x19ad)" (* "*") (cast_expression "(char *)(iVar6 + 0x19ad)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x19ad)" (( "(") (binary_expression "iVar6 + 0x19ad" (identifier "iVar6") (+ "+") (number_literal "0x19ad")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        return 0;\n      }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "uVar4 = *(uint *)(this + 0x28);" (assignment_expression "uVar4 = *(uint *)(this + 0x28)" (identifier "uVar4") (= "=") (pointer_expression "*(uint *)(this + 0x28)" (* "*") (cast_expression "(uint *)(this + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x28)" (( "(") (binary_expression "this + 0x28" (identifier "this") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (if_statement "if ((uVar4 << 4) >> 0x1c != 10) {\n        return 0;\n      }" (if "if") (parenthesized_expression "((uVar4 << 4) >> 0x1c != 10)" (( "(") (binary_expression "(uVar4 << 4) >> 0x1c != 10" (binary_expression "(uVar4 << 4) >> 0x1c" (parenthesized_expression "(uVar4 << 4)" (( "(") (binary_expression "uVar4 << 4" (identifier "uVar4") (<< "<<") (number_literal "4")) () ")")) (>> ">>") (number_literal "0x1c")) (!= "!=") (number_literal "10")) () ")")) (compound_statement "{\n        return 0;\n      }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      uVar4 = *(uint *)(this + 0x28);\n    }" (else "else") (compound_statement "{\n      uVar4 = *(uint *)(this + 0x28);\n    }" ({ "{") (expression_statement "uVar4 = *(uint *)(this + 0x28);" (assignment_expression "uVar4 = *(uint *)(this + 0x28)" (identifier "uVar4") (= "=") (pointer_expression "*(uint *)(this + 0x28)" (* "*") (cast_expression "(uint *)(this + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x28)" (( "(") (binary_expression "this + 0x28" (identifier "this") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (} "}"))))) (if_statement "if ((uVar4 & 0xe000) == 0) {\n      if (*(int *)(*(int *)(this + 8) + 0x2c) < 0) {\n        return 0;\n      }\n      if ((*(int *)(this + 0xc) == 0) && ((int)(uVar4 << 0x1d) < 0)) {\n        return 0;\n      }\n    }\n    else if ((uVar4 & 0xe000) == 0x8000) {\n      return 0;\n    }" (if "if") (parenthesized_expression "((uVar4 & 0xe000) == 0)" (( "(") (binary_expression "(uVar4 & 0xe000) == 0" (parenthesized_expression "(uVar4 & 0xe000)" (( "(") (binary_expression "uVar4 & 0xe000" (identifier "uVar4") (& "&") (number_literal "0xe000")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (*(int *)(*(int *)(this + 8) + 0x2c) < 0) {\n        return 0;\n      }\n      if ((*(int *)(this + 0xc) == 0) && ((int)(uVar4 << 0x1d) < 0)) {\n        return 0;\n      }\n    }" ({ "{") (if_statement "if (*(int *)(*(int *)(this + 8) + 0x2c) < 0) {\n        return 0;\n      }" (if "if") (parenthesized_expression "(*(int *)(*(int *)(this + 8) + 0x2c) < 0)" (( "(") (binary_expression "*(int *)(*(int *)(this + 8) + 0x2c) < 0" (pointer_expression "*(int *)(*(int *)(this + 8) + 0x2c)" (* "*") (cast_expression "(int *)(*(int *)(this + 8) + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(this + 8) + 0x2c)" (( "(") (binary_expression "*(int *)(this + 8) + 0x2c" (pointer_expression "*(int *)(this + 8)" (* "*") (cast_expression "(int *)(this + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 8)" (( "(") (binary_expression "this + 8" (identifier "this") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x2c")) () ")")))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        return 0;\n      }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if ((*(int *)(this + 0xc) == 0) && ((int)(uVar4 << 0x1d) < 0)) {\n        return 0;\n      }" (if "if") (parenthesized_expression "((*(int *)(this + 0xc) == 0) && ((int)(uVar4 << 0x1d) < 0))" (( "(") (binary_expression "(*(int *)(this + 0xc) == 0) && ((int)(uVar4 << 0x1d) < 0)" (parenthesized_expression "(*(int *)(this + 0xc) == 0)" (( "(") (binary_expression "*(int *)(this + 0xc) == 0" (pointer_expression "*(int *)(this + 0xc)" (* "*") (cast_expression "(int *)(this + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0xc)" (( "(") (binary_expression "this + 0xc" (identifier "this") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((int)(uVar4 << 0x1d) < 0)" (( "(") (binary_expression "(int)(uVar4 << 0x1d) < 0" (cast_expression "(int)(uVar4 << 0x1d)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar4 << 0x1d)" (( "(") (binary_expression "uVar4 << 0x1d" (identifier "uVar4") (<< "<<") (number_literal "0x1d")) () ")"))) (< "<") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n        return 0;\n      }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}")) (else_clause "else if ((uVar4 & 0xe000) == 0x8000) {\n      return 0;\n    }" (else "else") (if_statement "if ((uVar4 & 0xe000) == 0x8000) {\n      return 0;\n    }" (if "if") (parenthesized_expression "((uVar4 & 0xe000) == 0x8000)" (( "(") (binary_expression "(uVar4 & 0xe000) == 0x8000" (parenthesized_expression "(uVar4 & 0xe000)" (( "(") (binary_expression "uVar4 & 0xe000" (identifier "uVar4") (& "&") (number_literal "0xe000")) () ")")) (== "==") (number_literal "0x8000")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))))) (if_statement "if (((uVar4 & 0xc00000) != 0) && ((uVar4 & 0xc00000) != 0xc00000)) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(((uVar4 & 0xc00000) != 0) && ((uVar4 & 0xc00000) != 0xc00000))" (( "(") (binary_expression "((uVar4 & 0xc00000) != 0) && ((uVar4 & 0xc00000) != 0xc00000)" (parenthesized_expression "((uVar4 & 0xc00000) != 0)" (( "(") (binary_expression "(uVar4 & 0xc00000) != 0" (parenthesized_expression "(uVar4 & 0xc00000)" (( "(") (binary_expression "uVar4 & 0xc00000" (identifier "uVar4") (& "&") (number_literal "0xc00000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((uVar4 & 0xc00000) != 0xc00000)" (( "(") (binary_expression "(uVar4 & 0xc00000) != 0xc00000" (parenthesized_expression "(uVar4 & 0xc00000)" (( "(") (binary_expression "uVar4 & 0xc00000" (identifier "uVar4") (& "&") (number_literal "0xc00000")) () ")")) (!= "!=") (number_literal "0xc00000")) () ")"))) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (return_statement "return (uVar4 << 0x1c) >> 0x1f ^ 1;" (return "return") (binary_expression "(uVar4 << 0x1c) >> 0x1f ^ 1" (binary_expression "(uVar4 << 0x1c) >> 0x1f" (parenthesized_expression "(uVar4 << 0x1c)" (( "(") (binary_expression "uVar4 << 0x1c" (identifier "uVar4") (<< "<<") (number_literal "0x1c")) () ")")) (>> ">>") (number_literal "0x1f")) (^ "^") (number_literal "1")) (; ";")) (} "}"))) (labeled_statement "LAB_0022ee04:\n  uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x2a30);" (statement_identifier "LAB_0022ee04") (: ":") (expression_statement "uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x2a30);" (assignment_expression "uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x2a30)" (identifier "uVar4") (= "=") (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x2a30)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004323c4"))) () ")")) (argument_list "(PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x2a30)" (( "(") (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5cec" (identifier "PTR_s_alize_xindex_004323b4") (+ "+") (number_literal "-0x5cec")) (, ",") (number_literal "0x5c") (, ",") (binary_expression "PTR_DAT_0043226c + -0x2a30" (identifier "PTR_DAT_0043226c") (+ "+") (number_literal "-0x2a30")) () ")")))) (; ";"))) (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";")) (} "}")))
(translation_unit (function_definition type: (type_identifier) (ms_call_modifier) (ERROR (identifier) (identifier)) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (array_declarator declarator: (identifier) size: (number_literal)))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (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: (unary_expression argument: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))) consequence: (compound_statement (return_statement (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))))))) right: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))))) right: (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)) right: (number_literal))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (ERROR (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)) right: (char_literal (escape_sequence)))))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) consequence: (compound_statement (return_statement (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) 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)) value: (identifier)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))))) (expression_statement (call_expression function: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (identifier)) (ERROR) right: (identifier))) arguments: (argument_list (identifier) (identifier) (identifier) (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))))) (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))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal)))))) (return_statement (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (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)))))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal)))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal)))))) (return_statement (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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: (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))) consequence: (compound_statement (ERROR (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (number_literal)))))) consequence: (goto_statement label: (statement_identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))))) consequence: (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (binary_expression left: (number_literal) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (return_statement (identifier)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (number_literal)))) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (number_literal)))) right: (binary_expression left: (identifier) right: (number_literal)))))))))) right: (parenthesized_expression (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (parenthesized_expression (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (number_literal)))) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (number_literal)))) right: (binary_expression left: (identifier) right: (number_literal)))))))))))))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (return_statement (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))))) consequence: (compound_statement (return_statement (number_literal))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (return_statement (number_literal)))) (return_statement (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)) right: (number_literal))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal))))))) (return_statement (identifier)))))

/* gold::Symbol::MASKED(gold::Symbol_table*) const */

uint __thiscall gold::Symbol::MASKED(Symbol *this,Symbol_table *param_1)

{
  undefined *puVar1;
  uint uVar2;
  undefined4 uVar3;
  uint uVar4;
  int iVar5;
  int iVar6;
  int iVar7;
  uint uVar8;
  undefined1 *local_40 [2];
  undefined1 auStack_38 [16];
  int local_28 [2];
  
  puVar1 = PTR_parameters_00432be0;
  uVar2 = *(uint *)(this + 0x28);
  uVar4 = -((int)(uVar2 << 0x1e) >> 0x1f);
  if (uVar4 == 0) {
    return 0;
  }
  if ((int)(uVar2 << 0x16) < 0) {
    return uVar4;
  }
  if (((((int)(uVar2 << 0x17) < 0) && ((int)(uVar2 << 0x18) < 0)) &&
      (((uVar2 & 0xc00000) == 0 || ((uVar2 & 0xc00000) == 0xc00000)))) &&
     (-1 < (int)(uVar2 << 0x1c))) {
    return uVar4;
  }
  iVar6 = *(int *)(*(int *)PTR_parameters_00432be0 + 8);
  if (iVar6 == 0) goto LAB_0022ee04;
  if (((*(char *)(iVar6 + 0x18b5) == '\0') || (*(char *)(iVar6 + 0x1a29) != '\0')) ||
     ((uVar2 << 0x10) >> 0x1d != 0)) {
    if ((uVar2 & 0xe000) != 0) {
LAB_0022ebf4:
      iVar6 = Version_script_info::get_symbol_version
                        ((Version_script_info *)(iVar6 + 0x59b8),*(char **)this,(string *)0x0,
                         (bool *)local_40);
      if ((iVar6 != 0) && (local_40[0]._0_1_ == '\0')) {
LAB_0022ec20:
        if (-1 < *(int *)(this + 0x28) << 0x1c) {
          return uVar4;
        }
        uVar3 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x35f0);
        FUN_0022e934(local_40,*(undefined4 *)this);
                    /* try { // try from 0022ec68 to 0022ec6f has its CatchHandler @ 0022f0e0 */
        (*(code *)PTR_gold_warning_0043245c)(uVar3,local_40[0]);
        if (local_40[0] == auStack_38) {
          return 0;
        }
        (*(code *)PTR_operator_delete_0043228c)();
        return 0;
      }
      iVar6 = *(int *)(*(int *)puVar1 + 8);
      if (iVar6 == 0) goto LAB_0022ee04;
      if (*(int *)(iVar6 + 0x1348) != 0) {
        iVar7 = *(int *)this;
        local_40[0] = auStack_38;
        if (iVar7 == 0) {
          iVar5 = -1;
        }
        else {
          iVar5 = (*(code *)PTR_strlen_0043677c)(iVar7);
          iVar5 = iVar7 + iVar5;
        }
        (*(code *)PTR__M_construct<char_const*>_00432488)(local_40,iVar7,iVar5,0);
        (*(code *)PTR_find_00433360)(local_28,iVar6 + 0x133c,local_40);
        if (local_28[0] != 0) {
          if (local_40[0] != auStack_38) {
            (*(code *)PTR_operator_delete_0043228c)();
          }
          goto LAB_0022ec20;
        }
        if (local_40[0] != auStack_38) {
          (*(code *)PTR_operator_delete_0043228c)();
        }
      }
      uVar2 = *(uint *)(this + 0x28);
      goto LAB_0022ecdc;
    }
    uVar8 = (uVar2 << 0x1c) >> 0x1f;
    if (-1 < *(int *)(*(int *)(this + 8) + 0x2c)) {
      iVar6 = *(int *)(*(int *)PTR_parameters_00432be0 + 8);
      goto LAB_0022ebf4;
    }
  }
  else {
    if ((uVar2 & 0xe000) != 0) {
      uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)
                        (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + -0x2a70);
      return uVar4;
    }
    uVar8 = *(uint *)(this + 8);
    if (-1 < *(int *)(uVar8 + 0x2c)) {
      if (((int)(uVar2 << 0x1d) < 0) && (uVar2 = *(uint *)(this + 0xc), uVar2 != 0)) {
        if ((uint)(*(int *)(uVar8 + 0x3c) - *(int *)(uVar8 + 0x38) >> 2) <= uVar2) {
          uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)
                            (PTR_LAB_0043220c + 0x44a8,0x50b,PTR_DAT_0043226c + -0x2a84);
          return uVar4;
        }
        if (*(int *)(*(int *)(uVar8 + 0x38) + uVar2 * 4) == 0) {
          iVar6 = Symbol_table::is_section_folded((Relobj *)param_1,uVar8);
          if (iVar6 == 0) {
            return 0;
          }
          uVar2 = *(uint *)(this + 0x28);
          if (((uVar2 & 0xe000) == 0) &&
             (uVar8 = (uVar2 << 0x1c) >> 0x1f, *(int *)(*(int *)(this + 8) + 0x2c) < 0))
          goto LAB_0022ece0;
        }
      }
      iVar6 = *(int *)(*(int *)puVar1 + 8);
      if (iVar6 == 0) goto LAB_0022ee04;
      goto LAB_0022ebf4;
    }
LAB_0022ecdc:
    uVar8 = (uVar2 << 0x1c) >> 0x1f;
  }
LAB_0022ece0:
  if (uVar8 != 0) {
    return 0;
  }
  iVar6 = *(int *)(*(int *)puVar1 + 8);
  if (iVar6 == 0) goto LAB_0022ee04;
  if (*(char *)(iVar6 + 0xe8d) == '\0') {
LAB_0022eeb4:
    if ((*(char *)(iVar6 + 0xf09) == '\0') && (*(char *)(iVar6 + 0xf85) == '\0')) goto LAB_0022ed40;
    if ((uVar2 & 0xe000) == 0) {
      iVar7 = *(int *)(this + 8);
      goto LAB_0022ed34;
    }
  }
  else {
    if (((uVar2 & 0xe000) != 0) || (iVar7 = *(int *)(this + 8), -1 < *(int *)(iVar7 + 0x2c))) {
      if (uVar2 >> 0x1c == 1) {
        return uVar4;
      }
      goto LAB_0022eeb4;
    }
    if ((*(char *)(iVar6 + 0xf09) != '\0') || (*(char *)(iVar6 + 0xf85) == '\0')) goto LAB_0022ed40;
LAB_0022ed34:
    if (*(int *)(iVar7 + 0x2c) < 0) goto LAB_0022ed40;
  }
  iVar6 = (*(code *)PTR_cplus_demangle_004335b0)(*(undefined4 *)this,3);
  if (iVar6 != 0) {
    iVar7 = *(int *)(*(int *)puVar1 + 8);
    if (iVar7 == 0) goto LAB_0022ee04;
    uVar4 = (uint)*(byte *)(iVar7 + 0xf09);
    if (((uVar4 != 0) &&
        ((iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35d0,0xc), iVar5 == 0
         || (iVar5 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35c0,0xf),
            iVar5 == 0)))) ||
       ((uVar4 = (uint)*(byte *)(iVar7 + 0xf85), uVar4 != 0 &&
        ((iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x35b0,0x11), iVar7 == 0
         || (iVar7 = (*(code *)PTR_strncmp_004366a0)(iVar6,PTR_DAT_0043226c + -0x359c,0xc),
            iVar7 == 0)))))) {
      (*(code *)PTR_free_00436800)(iVar6);
      return uVar4;
    }
    (*(code *)PTR_free_00436800)(iVar6);
  }
  iVar6 = *(int *)(*(int *)puVar1 + 8);
  if (iVar6 != 0) {
LAB_0022ed40:
    if ((*(char *)(iVar6 + 0x12bd) == '\0') && (*(char *)(iVar6 + 0x1a29) == '\0')) {
      if (*(char *)(iVar6 + 0x19ad) == '\0') {
        return 0;
      }
      uVar4 = *(uint *)(this + 0x28);
      if ((uVar4 << 4) >> 0x1c != 10) {
        return 0;
      }
    }
    else {
      uVar4 = *(uint *)(this + 0x28);
    }
    if ((uVar4 & 0xe000) == 0) {
      if (*(int *)(*(int *)(this + 8) + 0x2c) < 0) {
        return 0;
      }
      if ((*(int *)(this + 0xc) == 0) && ((int)(uVar4 << 0x1d) < 0)) {
        return 0;
      }
    }
    else if ((uVar4 & 0xe000) == 0x8000) {
      return 0;
    }
    if (((uVar4 & 0xc00000) != 0) && ((uVar4 & 0xc00000) != 0xc00000)) {
      return 0;
    }
    return (uVar4 << 0x1c) >> 0x1f ^ 1;
  }
LAB_0022ee04:
  uVar4 = (*(code *)PTR_do_gold_unreachable_004323c4)
                    (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x2a30);
  return uVar4;
}

