
/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* WARNING: Enum "STB": Some values do not have unique names */
/* WARNING: Enum "STT": Some values do not have unique names */
/* DWARF original name: resolve<64, true>
   DWARF original prototype: void resolve<64,_true>(Symbol_table * this, Sized_symbol<64> * to,
   Sym<64,_true> * sym, uint st_shndx, bool is_ordinary, uint orig_st_shndx, Object * object, char *
   version, bool is_default_version) */

void __thiscall
gold::Symbol_table::resolve<64,_true>
          (Symbol_table *this,Sized_symbol<64> *to,Sym<64,_true> *sym,uint st_shndx,bool is_ordinary
          ,uint orig_st_shndx,Object *object,char *version,bool is_default_version)

{
  undefined *puVar1;
  undefined3 extraout_var;
  uint uVar2;
  int iVar3;
  Object *pOVar4;
  char *pcVar5;
  _func_int_varargs **pp_Var6;
  bool bVar9;
  Output_segment *pOVar7;
  undefined4 uVar8;
  byte bVar10;
  int *piVar11;
  STT SVar12;
  undefined *puVar13;
  Sym_data<64> *pSVar14;
  int iVar15;
  _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
  *p_Var16;
  uint uVar17;
  STT fromtype;
  uint uVar18;
  uint uVar19;
  char *in_stack_ffffff70;
  bool adjust_dyndef;
  uint uStack_74;
  undefined1 auStack_70 [16];
  bool adjust_common_sizes;
  undefined4 uStack_5c;
  undefined4 uStack_58;
  Input_file *pIStack_54;
  _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
  a_Stack_50 [8];
  __node_gen_type __node_gen;
  char *pcStack_44;
  Xindex *pXStack_40;
  _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
  *p_Stack_3c;
  __node_gen_type *p_Stack_38;
  code *pcStack_34;
  key_type *ppcStack_30;
  Odr_map *pOStack_2c;
  
  uVar2 = *(uint *)&(to->super_Symbol).field_0x28;
  if ((uVar2 & 0xe000) == 0) {
    uVar19 = (to->super_Symbol).u2_.shndx;
    uVar18 = -((int)(uVar2 << 0x1d) >> 0x1f);
    if (((uVar2 << 0x10) >> 0x1d == 0) && (object == (to->super_Symbol).u1_.object)) {
      if (uVar18 == 0) {
        bVar10 = (*(code *)PTR_is_common_shndx_00432fe0)(uVar19);
        bVar10 = bVar10 ^ 1;
      }
      else {
        bVar10 = uVar19 != 0;
      }
      if (bVar10 == 0) goto LAB_00295df8;
      if (!is_ordinary) goto LAB_0029609c;
joined_r0x002960a4:
      if ((((uVar18 == 0) && (uVar19 == st_shndx)) &&
          (*(int *)&sym->p_->st_value == *(int *)&to->value_)) &&
         ((int)sym->p_->st_value == (int)to->value_)) {
        return;
      }
    }
    else {
LAB_00295df8:
      if (!is_ordinary) {
LAB_0029609c:
        if (st_shndx == 0xfff1) goto joined_r0x002960a4;
      }
    }
    puVar1 = PTR_parameters_00432be0;
    piVar11 = *(int **)(*(int *)PTR_parameters_00432be0 + 0xc);
    puVar13 = PTR_s__0043226c;
    if (piVar11 == (int *)0x0) goto LAB_00296780;
    if ((*(char *)(piVar11[1] + 0xd) != '\0') &&
       (in_stack_ffffff70 = version,
       iVar3 = (**(code **)(*piVar11 + 0xac))(piVar11,to,sym,object,version), iVar3 != 0)) {
      return;
    }
    if (*(int *)&object->field_0x2c < 0) {
      if ((st_shndx == 0) &&
         ((((uint)(*(int *)&(to->super_Symbol).field_0x28 << 8) >> 0x1e) + 3 & 3) < 2)) {
        return;
      }
      *(uint *)&(to->super_Symbol).field_0x28 =
           *(uint *)&(to->super_Symbol).field_0x28 & 0xffffff7f | 0x80;
      iVar3 = (*object->_vptr_Object[5])(object);
    }
    else {
      if (((sym->p_->st_info & 0xf) == 5) &&
         ((is_ordinary || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(st_shndx), iVar3 == 0))))
      {
        uVar8 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + 0x3c50);
        (*(code *)PTR_demangled_name_00433f24)(&adjust_dyndef,to);
        if ((*(uint *)&(to->super_Symbol).field_0x28 & 0xe000) == 0) {
                    /* try { // try from 002965d8 to 002965df has its CatchHandler @ 002967d0 */
          (*(code *)PTR_gold_warning_0043245c)
                    (uVar8,_adjust_dyndef,
                     ((to->super_Symbol).u1_.output_segment)->output_lists_[0].
                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.
                     _M_impl._M_finish);
          if (_adjust_dyndef == (Object *)auStack_70) {
            return;
          }
          operator_delete(_adjust_dyndef);
          return;
        }
        goto LAB_002967b4;
      }
      *(uint *)&(to->super_Symbol).field_0x28 =
           *(uint *)&(to->super_Symbol).field_0x28 & 0xfffffeff | 0x100;
      iVar3 = (*object->_vptr_Object[5])(object);
    }
    if ((iVar3 == 0) && (-1 < *(int *)&object->field_0x2c)) {
      *(uint *)&(to->super_Symbol).field_0x28 =
           *(uint *)&(to->super_Symbol).field_0x28 & 0xfffffffd | 2;
    }
    uVar2 = *(uint *)&(to->super_Symbol).field_0x28;
    if ((uVar2 << 0x10) >> 0x1d != 0) {
LAB_002963b4:
      iVar3 = *(int *)(*(int *)puVar1 + 8);
      if (iVar3 == 0) goto LAB_002963c4;
LAB_00295ee8:
      if (*(char *)(iVar3 + 0xe11) == '\0') {
LAB_00296184:
        pXStack_40 = (Xindex *)&adjust_dyndef;
        pp_Var6 = object->_vptr_Object;
      }
      else {
        pSVar14 = sym->p_;
        if (((((int)(uint)pSVar14->st_info >> 4 != 2) &&
             ((uint)(*(int *)&(to->super_Symbol).field_0x28 << 4) >> 0x1c != 2)) ||
            (orig_st_shndx == 0)) || ((uVar18 == 0 || (uVar19 == 0)))) goto LAB_00296184;
        iVar3 = (int)pSVar14->st_size;
        if (*(int *)&pSVar14->st_size == 0 && iVar3 == 0) goto LAB_00296184;
        iVar15 = (int)to->symsize_;
        if ((*(int *)&to->symsize_ == 0 && iVar15 == 0) ||
           ((((uVar2 = *(uint *)&(to->super_Symbol).field_0x28,
              uVar2 >> 0x1c == (pSVar14->st_info & 0xf) &&
              (*(int *)&to->symsize_ == *(int *)&pSVar14->st_size)) && (iVar15 == iVar3)) ||
            ((pcVar5 = (to->super_Symbol).name_, *pcVar5 != '_' || (pcVar5[1] != 'Z'))))))
        goto LAB_00296184;
        uStack_58 = *(undefined4 *)&pSVar14->st_value;
        pIStack_54 = *(Input_file **)((int)&pSVar14->st_value + 4);
        _adjust_common_sizes = object;
        uStack_5c = orig_st_shndx;
        if ((uVar2 & 0xe000) != 0) goto LAB_0029679c;
        pcStack_34 = (code *)PTR_operator___00435c08;
        pOStack_2c = &this->candidate_odr_violations_;
        _adjust_dyndef = (to->super_Symbol).u1_;
        ppcStack_30 = &pcStack_44;
        auStack_70._4_4_ = *(undefined4 *)((int)&to->value_ + 4);
        auStack_70._0_4_ = *(undefined4 *)&to->value_;
        pXStack_40 = (Xindex *)&adjust_dyndef;
        uStack_74 = uVar19;
        pcStack_44 = pcVar5;
        __node_gen._M_h =
             (__hashtable_alloc *)
             std::__detail::
             _Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>
             ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>
                           *)pOStack_2c,ppcStack_30);
        p_Stack_38 = &__node_gen;
        p_Stack_3c = a_Stack_50;
        uVar2 = (uint)in_stack_ffffff70 & 0xffffff;
        std::
        _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
        ::
        _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>
                  (p_Stack_3c,__node_gen._M_h,&adjust_common_sizes,p_Stack_38,uVar2,1);
        pcStack_44 = (to->super_Symbol).name_;
        __node_gen._M_h = (__hashtable_alloc *)(*pcStack_34)(pOStack_2c,ppcStack_30);
        std::
        _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
        ::
        _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>
                  (p_Stack_3c,__node_gen._M_h,pXStack_40,p_Stack_38,uVar2 & 0xffffff,1);
        pp_Var6 = object->_vptr_Object;
      }
      iVar3 = (*pp_Var6[5])(object);
      if (iVar3 == 0) {
        SVar12 = (STT)sym->p_->st_info;
        fromtype = SVar12 & STT_HIPROC;
      }
      else {
        SVar12 = (STT)sym->p_->st_info;
        fromtype = *(uint *)&(to->super_Symbol).field_0x28 >> 0x1c;
      }
      uVar2 = symbol_to_bits(SVar12 >> 4,SUB41((uint)*(undefined4 *)&object->field_0x2c >> 0x1f,0),
                             st_shndx,is_ordinary);
      p_Stack_3c = *(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
                     **)((int)&to->symsize_ + 4);
      uVar18 = *(uint *)&to->symsize_;
      bVar9 = should_override(&to->super_Symbol,uVar2,fromtype,OBJECT,object,&adjust_common_sizes,
                              (bool *)pXStack_40,is_default_version);
      if (CONCAT31(extraout_var,bVar9) == 0) {
        puVar13 = (undefined *)((uint)_adjust_common_sizes >> 0x18);
        pSVar14 = sym->p_;
        if (puVar13 != (undefined *)0x0) {
          uVar2 = *(uint *)&pSVar14->st_size;
          p_Var16 = *(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
                      **)((int)&pSVar14->st_size + 4);
          if ((uVar18 < uVar2) || ((uVar2 == uVar18 && (p_Stack_3c < p_Var16)))) {
            *(uint *)&to->symsize_ = uVar2;
            *(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
              **)((int)&to->symsize_ + 4) = p_Var16;
          }
          uVar2 = *(uint *)&pSVar14->st_value;
          uVar19 = (uint)pSVar14->st_value;
          if ((*(uint *)&to->value_ < uVar2) ||
             ((*(uint *)&to->value_ == uVar2 && ((uint)to->value_ < uVar19)))) {
            *(uint *)&to->value_ = uVar2;
            *(uint *)((int)&to->value_ + 4) = uVar19;
          }
        }
        if ((adjust_dyndef != false) &&
           ((iVar3 = *(int *)&(to->super_Symbol).field_0x2c, -1 < iVar3 || (iVar3 << 1 < 0)))) {
          (to->super_Symbol).field_0x2c =
               (to->super_Symbol).field_0x2c & 0x3f | ((int)(uint)pSVar14->st_info >> 4 == 2) << 6 |
               0x80;
        }
        bVar10 = pSVar14->st_other;
        uVar2 = *(uint *)&(to->super_Symbol).field_0x28;
        if (((bVar10 & 3) != 0) &&
           (((uVar2 & 0xc00000) == 0 || ((bVar10 & 3) < (uVar2 << 8) >> 0x1e)))) {
          uVar2 = uVar2 & 0xff3fffff | (bVar10 & 3) << 0x16;
          *(uint *)&(to->super_Symbol).field_0x28 = uVar2;
        }
      }
      else {
        iVar3 = *(int *)&(to->super_Symbol).field_0x28;
        uVar2 = *(uint *)&to->value_;
        uVar19 = (uint)to->value_;
        override<64,_true>(this,to,sym,st_shndx,is_ordinary,object,version);
        puVar13 = (undefined *)((uint)_adjust_common_sizes >> 0x18);
        if (puVar13 != (undefined *)0x0) {
          if ((*(uint *)&to->symsize_ < uVar18) ||
             ((*(uint *)&to->symsize_ == uVar18 &&
              (*(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
                 **)((int)&to->symsize_ + 4) < p_Stack_3c)))) {
            *(uint *)&to->symsize_ = uVar18;
            *(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
              **)((int)&to->symsize_ + 4) = p_Stack_3c;
          }
          if ((*(uint *)&to->value_ < uVar2) ||
             ((*(uint *)&to->value_ == uVar2 && ((uint)to->value_ < uVar19)))) {
            *(uint *)&to->value_ = uVar2;
            *(uint *)((int)&to->value_ + 4) = uVar19;
          }
        }
        uVar2 = *(uint *)&(to->super_Symbol).field_0x28;
        if (adjust_dyndef != false) {
          iVar15 = *(int *)&(to->super_Symbol).field_0x2c;
          if (iVar15 < 0) {
            if (-1 < iVar15 << 1) goto LAB_002962d0;
            bVar10 = (to->super_Symbol).field_0x2c;
          }
          else {
            bVar10 = (to->super_Symbol).field_0x2c;
          }
          (to->super_Symbol).field_0x2c =
               bVar10 & 0x3f | ((uint)(iVar3 << 4) >> 0x1c == 2) << 6 | 0x80;
        }
      }
LAB_002962d0:
      if (((uVar2 & 0xe000) == 0) &&
         (pOVar7 = (to->super_Symbol).u1_.output_segment,
         (int)pOVar7->output_lists_[3].
              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.
              _M_end_of_storage < 0)) goto LAB_002963dc;
      while( true ) {
        if (puVar13 == (undefined *)0x0) {
          return;
        }
        if (*(int *)(*(int *)puVar1 + 8) != 0) break;
LAB_002963c4:
        puVar13 = PTR_s_alize_xindex_004323b4 + -0x5cec;
        pOVar7 = (Output_segment *)
                 (*(code *)PTR_do_gold_unreachable_004323c4)(puVar13,0x5c,PTR_s__0043226c + 0x3c1c);
LAB_002963dc:
        if ((*(int *)&(to->super_Symbol).field_0x28 << 0x17 < 0) &&
           (-1 < *(int *)&(to->super_Symbol).field_0x2c << 1)) {
          *(byte *)&pOVar7->output_lists_[3].
                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.
                    _M_impl._M_end_of_storage =
               *(byte *)&pOVar7->output_lists_[3].
                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>
                         ._M_impl._M_end_of_storage & 0xbf | 0x40;
        }
      }
      if (*(char *)(*(int *)(*(int *)puVar1 + 8) + 0x43f5) == '\0') {
        return;
      }
      uVar2 = *(uint *)&sym->p_->st_size;
      p_Var16 = *(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
                  **)((int)&sym->p_->st_size + 4);
      if ((uVar2 < uVar18) || ((uVar18 == uVar2 && (p_Var16 < p_Stack_3c)))) {
        puVar13 = PTR_s__0043226c + 0x3c88;
      }
      else if ((uVar18 < uVar2) || ((uVar2 == uVar18 && (p_Stack_3c < p_Var16)))) {
        puVar13 = PTR_s__0043226c + 0x3cb4;
      }
      else {
        puVar13 = PTR_s__0043226c + 0x3ce0;
      }
      pcVar5 = (char *)(*(code *)PTR_gettext_00436818)(puVar13);
      report_resolve_problem(false,pcVar5,&to->super_Symbol,OBJECT,object);
      return;
    }
    if ((uVar2 & 0xe000) == 0) {
      pOVar4 = (to->super_Symbol).u1_.object;
      iVar3 = (*pOVar4->_vptr_Object[5])(pOVar4);
      if (iVar3 == 0) goto LAB_002963b4;
      iVar3 = *(int *)(*(int *)puVar1 + 8);
      if (iVar3 == 0) goto LAB_002963c4;
      if (*(char *)(*(int *)(iVar3 + 0x594c) + 0x69) != '\0') {
        uVar2 = *(uint *)&(to->super_Symbol).field_0x28;
        if (((((uVar2 & 0xe000) != 0) || ((int)(uVar2 << 0x1d) < 0)) ||
            (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)((to->super_Symbol).u2_.shndx),
            iVar3 == 0)) ||
           ((is_ordinary || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(st_shndx), iVar3 == 0))
           )) {
          override<64,_true>(this,to,sym,st_shndx,is_ordinary,object,version);
          return;
        }
        uVar18 = *(uint *)&to->symsize_;
        uVar17 = (uint)to->symsize_;
        uVar2 = *(uint *)&to->value_;
        uVar19 = (uint)to->value_;
        override<64,_true>(this,to,sym,st_shndx,false,object,version);
        if ((*(uint *)&to->symsize_ < uVar18) ||
           ((*(uint *)&to->symsize_ == uVar18 && ((uint)to->symsize_ < uVar17)))) {
          *(uint *)&to->symsize_ = uVar18;
          *(uint *)((int)&to->symsize_ + 4) = uVar17;
        }
        if (uVar2 <= *(uint *)&to->value_) {
          if (*(uint *)&to->value_ != uVar2) {
            return;
          }
          if (uVar19 <= (uint)to->value_) {
            return;
          }
        }
        *(uint *)&to->value_ = uVar2;
        *(uint *)((int)&to->value_ + 4) = uVar19;
        return;
      }
      goto LAB_00295ee8;
    }
  }
  else {
    puVar13 = PTR_s__0043226c + 0x3c38;
    (*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s_alize_xindex_004323b4 + -0x5bdc,0xaa,puVar13);
LAB_00296780:
    (*(code *)PTR_do_gold_unreachable_004323c4)
              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,puVar13 + 0x3bb8);
  }
LAB_0029679c:
  (*(code *)PTR_do_gold_unreachable_004323c4)
            (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_s__0043226c + 0x3c24);
LAB_002967b4:
  puVar13 = PTR_s_alize_xindex_004323b4 + -0x5bdc;
  (*(code *)PTR_do_gold_unreachable_004323c4)(puVar13,0xa1,PTR_s__0043226c + 0x3c24);
  if (_adjust_dyndef != (Object *)auStack_70) {
    operator_delete(_adjust_dyndef);
  }
  (*(code *)PTR__Unwind_Resume_00432258)(puVar13);
  return;
}



/* void gold::Symbol_table::resolve<64, true>(gold::Sized_symbol<64>*, elfcpp::Sym<64, true> const&,
   unsigned int, bool, unsigned int, gold::Object*, char const*, bool) */

void __thiscall
gold::Symbol_table::resolve<64,true>
          (Symbol_table *this,Sized_symbol *param_1,Sym *param_2,uint param_3,bool param_4,
          uint param_5,Object *param_6,char *param_7,bool param_8)

{
  Sized_symbol SVar1;
  uint uVar2;
  int iVar3;
  char *pcVar4;
  int iVar5;
  undefined4 uVar6;
  byte bVar7;
  int *piVar8;
  undefined *puVar9;
  undefined1 *puVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  char *in_stack_ffffff70;
  undefined4 *local_78;
  uint local_74;
  undefined4 local_70;
  undefined4 local_6c;
  Object *local_60;
  uint local_5c;
  undefined4 local_58;
  undefined4 local_54;
  undefined1 auStack_50 [8];
  undefined4 local_48;
  char *local_44;
  undefined4 **local_40;
  undefined1 *local_3c;
  undefined4 *local_38;
  code *local_34;
  char **local_30;
  _Map_base<char_const*,std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>,std::allocator<std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>>,std::__detail::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>
  *local_2c;
  
  uVar2 = *(uint *)(param_1 + 0x28);
  if ((uVar2 & 0xe000) != 0) {
    (*(code *)PTR_do_gold_unreachable_004323c4)
              (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xaa,PTR_DAT_0043226c + 0x3c38);
    return;
  }
  uVar13 = *(uint *)(param_1 + 0xc);
  iVar5 = uVar2 << 0x1d;
  if (((uVar2 << 0x10) >> 0x1d == 0) && (param_6 == *(Object **)(param_1 + 8))) {
    if (iVar5 < 0) {
      bVar7 = uVar13 != 0;
    }
    else {
      bVar7 = (*(code *)PTR_is_common_shndx_00432fe0)(uVar13);
      bVar7 = bVar7 ^ 1;
    }
    if (bVar7 == 0) goto LAB_00295df8;
    if (!param_4) goto LAB_0029609c;
joined_r0x002960a4:
    if ((((-1 < iVar5) && (uVar13 == param_3)) &&
        (*(int *)(*(int *)param_2 + 8) == *(int *)(param_1 + 0x30))) &&
       (*(int *)(*(int *)param_2 + 0xc) == *(int *)(param_1 + 0x34))) {
      return;
    }
  }
  else {
LAB_00295df8:
    if (!param_4) {
LAB_0029609c:
      if (param_3 == 0xfff1) goto joined_r0x002960a4;
    }
  }
  puVar9 = PTR_parameters_00432be0;
  piVar8 = *(int **)(*(int *)PTR_parameters_00432be0 + 0xc);
  if (piVar8 == (int *)0x0) {
    (*(code *)PTR_do_gold_unreachable_004323c4)
              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + 0x3bb8);
    return;
  }
  if ((*(char *)(piVar8[1] + 0xd) != '\0') &&
     (in_stack_ffffff70 = param_7,
     iVar3 = (**(code **)(*piVar8 + 0xac))(piVar8,param_1,param_2,param_6,param_7), iVar3 != 0)) {
    return;
  }
  if (*(int *)(param_6 + 0x2c) < 0) {
    if ((param_3 == 0) && ((((uint)(*(int *)(param_1 + 0x28) << 8) >> 0x1e) + 3 & 3) < 2)) {
      return;
    }
    *(uint *)(param_1 + 0x28) = *(uint *)(param_1 + 0x28) & 0xffffff7f | 0x80;
    iVar3 = (**(code **)(*(int *)param_6 + 0x14))(param_6);
  }
  else {
    if (((*(byte *)(*(int *)param_2 + 4) & 0xf) == 5) &&
       ((param_4 || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar3 == 0)))) {
      uVar6 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + 0x3c50);
      (*(code *)PTR_demangled_name_abi_cxx11__00433f24)(&local_78,param_1);
      if ((*(uint *)(param_1 + 0x28) & 0xe000) != 0) {
                    /* try { // try from 002967c8 to 002967cf has its CatchHandler @ 002967d0 */
        (*(code *)PTR_do_gold_unreachable_004323c4)
                  (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24);
        return;
      }
                    /* try { // try from 002965d8 to 002965df has its CatchHandler @ 002967d0 */
      (*(code *)PTR_gold_warning_0043245c)
                (uVar6,local_78,*(undefined4 *)(*(int *)(param_1 + 8) + 4));
      if (local_78 == &local_70) {
        return;
      }
      operator_delete(local_78);
      return;
    }
    *(uint *)(param_1 + 0x28) = *(uint *)(param_1 + 0x28) & 0xfffffeff | 0x100;
    iVar3 = (**(code **)(*(int *)param_6 + 0x14))(param_6);
  }
  if ((iVar3 == 0) && (-1 < *(int *)(param_6 + 0x2c))) {
    *(uint *)(param_1 + 0x28) = *(uint *)(param_1 + 0x28) & 0xfffffffd | 2;
  }
  if ((*(uint *)(param_1 + 0x28) << 0x10) >> 0x1d == 0) {
    if ((*(uint *)(param_1 + 0x28) & 0xe000) != 0) goto LAB_0029679c;
    iVar3 = (**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8));
    if (iVar3 == 0) goto LAB_002963b4;
    iVar3 = *(int *)(*(int *)puVar9 + 8);
    if (iVar3 == 0) goto LAB_002963c4;
    if (*(char *)(*(int *)(iVar3 + 0x594c) + 0x69) != '\0') {
      if (((((*(uint *)(param_1 + 0x28) & 0xe000) != 0) ||
           ((int)(*(uint *)(param_1 + 0x28) << 0x1d) < 0)) ||
          (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(*(undefined4 *)(param_1 + 0xc)),
          iVar5 == 0)) ||
         ((param_4 || (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar5 == 0)))) {
        override<64,true>(this,param_1,param_2,param_3,param_4,param_6,param_7);
        return;
      }
      uVar13 = *(uint *)(param_1 + 0x38);
      uVar12 = *(uint *)(param_1 + 0x3c);
      uVar2 = *(uint *)(param_1 + 0x30);
      uVar11 = *(uint *)(param_1 + 0x34);
      override<64,true>(this,param_1,param_2,param_3,false,param_6,param_7);
      if ((*(uint *)(param_1 + 0x38) < uVar13) ||
         ((*(uint *)(param_1 + 0x38) == uVar13 && (*(uint *)(param_1 + 0x3c) < uVar12)))) {
        *(uint *)(param_1 + 0x38) = uVar13;
        *(uint *)(param_1 + 0x3c) = uVar12;
      }
      if (uVar2 <= *(uint *)(param_1 + 0x30)) {
        if (*(uint *)(param_1 + 0x30) != uVar2) {
          return;
        }
        if (uVar11 <= *(uint *)(param_1 + 0x34)) {
          return;
        }
      }
      *(uint *)(param_1 + 0x30) = uVar2;
      *(uint *)(param_1 + 0x34) = uVar11;
      return;
    }
  }
  else {
LAB_002963b4:
    iVar3 = *(int *)(*(int *)puVar9 + 8);
    if (iVar3 == 0) goto LAB_002963c4;
  }
  if (*(char *)(iVar3 + 0xe11) == '\0') {
LAB_00296184:
    local_40 = &local_78;
    iVar5 = *(int *)param_6;
  }
  else {
    iVar3 = *(int *)param_2;
    if (((((int)(uint)*(byte *)(iVar3 + 4) >> 4 != 2) &&
         ((uint)(*(int *)(param_1 + 0x28) << 4) >> 0x1c != 2)) || (param_5 == 0)) ||
       ((-1 < iVar5 || (uVar13 == 0)))) goto LAB_00296184;
    if (*(int *)(iVar3 + 0x10) == 0 && *(int *)(iVar3 + 0x14) == 0) goto LAB_00296184;
    if ((*(int *)(param_1 + 0x38) == 0 && *(int *)(param_1 + 0x3c) == 0) ||
       ((((*(uint *)(param_1 + 0x28) >> 0x1c == (*(byte *)(iVar3 + 4) & 0xf) &&
          (*(int *)(param_1 + 0x38) == *(int *)(iVar3 + 0x10))) &&
         (*(int *)(param_1 + 0x3c) == *(int *)(iVar3 + 0x14))) ||
        ((pcVar4 = *(char **)param_1, *pcVar4 != '_' || (pcVar4[1] != 'Z')))))) goto LAB_00296184;
    local_58 = *(undefined4 *)(iVar3 + 8);
    local_54 = *(undefined4 *)(iVar3 + 0xc);
    local_60 = param_6;
    local_5c = param_5;
    if ((*(uint *)(param_1 + 0x28) & 0xe000) != 0) {
LAB_0029679c:
      (*(code *)PTR_do_gold_unreachable_004323c4)
                (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24);
      return;
    }
    local_34 = (code *)PTR_operator___00435c08;
    local_2c = (_Map_base<char_const*,std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>,std::allocator<std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>>,std::__detail::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>
                *)(this + 0x128);
    local_78 = *(undefined4 **)(param_1 + 8);
    local_30 = &local_44;
    local_6c = *(undefined4 *)(param_1 + 0x34);
    local_70 = *(undefined4 *)(param_1 + 0x30);
    local_40 = &local_78;
    local_74 = uVar13;
    local_44 = pcVar4;
    local_48 = std::__detail::
               _Map_base<char_const*,std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>,std::allocator<std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>>,std::__detail::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>
               ::operator[](local_2c,local_30);
    local_38 = &local_48;
    local_3c = auStack_50;
    uVar2 = (uint)in_stack_ffffff70 & 0xffffff;
    std::
    _Hashtable<gold::Symbol_location,gold::Symbol_location,std::allocator<gold::Symbol_location>,std::__detail::_Identity,std::equal_to<gold::Symbol_location>,gold::Symbol_location_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,true,true>>
    ::
    _M_insert<gold::Symbol_location_const&,std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,true>>>>
              (local_3c,local_48,&local_60,local_38,uVar2,1);
    local_44 = *(char **)param_1;
    local_48 = (*local_34)(local_2c,local_30);
    std::
    _Hashtable<gold::Symbol_location,gold::Symbol_location,std::allocator<gold::Symbol_location>,std::__detail::_Identity,std::equal_to<gold::Symbol_location>,gold::Symbol_location_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,true,true>>
    ::
    _M_insert<gold::Symbol_location_const&,std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,true>>>>
              (local_3c,local_48,local_40,local_38,uVar2 & 0xffffff,1);
    iVar5 = *(int *)param_6;
  }
  iVar5 = (**(code **)(iVar5 + 0x14))(param_6);
  if (iVar5 == 0) {
    uVar2 = (uint)*(byte *)(*(int *)param_2 + 4);
    uVar13 = uVar2 & 0xf;
  }
  else {
    uVar2 = (uint)*(byte *)(*(int *)param_2 + 4);
    uVar13 = *(uint *)(param_1 + 0x28) >> 0x1c;
  }
  uVar6 = FUN_00291650(uVar2 >> 4,*(uint *)(param_6 + 0x2c) >> 0x1f,param_3,param_4);
  local_3c = *(undefined1 **)(param_1 + 0x3c);
  uVar2 = *(uint *)(param_1 + 0x38);
  iVar5 = should_override(param_1,uVar6,uVar13,0,param_6,&local_60,local_40,param_8);
  if (iVar5 == 0) {
    iVar5 = *(int *)param_2;
    if (local_60._0_1_ != '\0') {
      uVar13 = *(uint *)(iVar5 + 0x10);
      puVar10 = *(undefined1 **)(iVar5 + 0x14);
      if ((uVar2 < uVar13) || ((uVar13 == uVar2 && (local_3c < puVar10)))) {
        *(uint *)(param_1 + 0x38) = uVar13;
        *(undefined1 **)(param_1 + 0x3c) = puVar10;
      }
      uVar13 = *(uint *)(iVar5 + 8);
      uVar11 = *(uint *)(iVar5 + 0xc);
      if ((*(uint *)(param_1 + 0x30) < uVar13) ||
         ((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)))) {
        *(uint *)(param_1 + 0x30) = uVar13;
        *(uint *)(param_1 + 0x34) = uVar11;
      }
    }
    if ((local_78._0_1_ != '\0') &&
       ((-1 < *(int *)(param_1 + 0x2c) || (*(int *)(param_1 + 0x2c) << 1 < 0)))) {
      param_1[0x2c] =
           (Sized_symbol)
           ((byte)param_1[0x2c] & 0x3f | ((int)(uint)*(byte *)(iVar5 + 4) >> 4 == 2) << 6 | 0x80);
    }
    bVar7 = *(byte *)(iVar5 + 5);
    uVar13 = *(uint *)(param_1 + 0x28);
    if (((bVar7 & 3) != 0) && (((uVar13 & 0xc00000) == 0 || ((bVar7 & 3) < (uVar13 << 8) >> 0x1e))))
    {
      uVar13 = uVar13 & 0xff3fffff | (bVar7 & 3) << 0x16;
      *(uint *)(param_1 + 0x28) = uVar13;
    }
  }
  else {
    iVar5 = *(int *)(param_1 + 0x28);
    uVar13 = *(uint *)(param_1 + 0x30);
    uVar11 = *(uint *)(param_1 + 0x34);
    override<64,true>(this,param_1,param_2,param_3,param_4,param_6,param_7);
    if (local_60._0_1_ != '\0') {
      if ((*(uint *)(param_1 + 0x38) < uVar2) ||
         ((*(uint *)(param_1 + 0x38) == uVar2 && (*(undefined1 **)(param_1 + 0x3c) < local_3c)))) {
        *(uint *)(param_1 + 0x38) = uVar2;
        *(undefined1 **)(param_1 + 0x3c) = local_3c;
      }
      if ((*(uint *)(param_1 + 0x30) < uVar13) ||
         ((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)))) {
        *(uint *)(param_1 + 0x30) = uVar13;
        *(uint *)(param_1 + 0x34) = uVar11;
      }
    }
    uVar13 = *(uint *)(param_1 + 0x28);
    if (local_78._0_1_ != '\0') {
      if (*(int *)(param_1 + 0x2c) < 0) {
        if (-1 < *(int *)(param_1 + 0x2c) << 1) goto LAB_002962d0;
        SVar1 = param_1[0x2c];
      }
      else {
        SVar1 = param_1[0x2c];
      }
      param_1[0x2c] =
           (Sized_symbol)((byte)SVar1 & 0x3f | ((uint)(iVar5 << 4) >> 0x1c == 2) << 6 | 0x80);
    }
  }
LAB_002962d0:
  if (((((uVar13 & 0xe000) == 0) && (iVar5 = *(int *)(param_1 + 8), *(int *)(iVar5 + 0x2c) < 0)) &&
      (*(int *)(param_1 + 0x28) << 0x17 < 0)) && (-1 < *(int *)(param_1 + 0x2c) << 1)) {
    *(byte *)(iVar5 + 0x2c) = *(byte *)(iVar5 + 0x2c) & 0xbf | 0x40;
  }
  if (local_60._0_1_ != '\0') {
    if (*(int *)(*(int *)puVar9 + 8) == 0) {
LAB_002963c4:
      (*(code *)PTR_do_gold_unreachable_004323c4)
                (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + 0x3c1c);
      return;
    }
    if (*(char *)(*(int *)(*(int *)puVar9 + 8) + 0x43f5) != '\0') {
      uVar13 = *(uint *)(*(int *)param_2 + 0x10);
      puVar10 = *(undefined1 **)(*(int *)param_2 + 0x14);
      if ((uVar13 < uVar2) || ((uVar2 == uVar13 && (puVar10 < local_3c)))) {
        puVar9 = PTR_DAT_0043226c + 0x3c88;
      }
      else if ((uVar2 < uVar13) || ((uVar13 == uVar2 && (local_3c < puVar10)))) {
        puVar9 = PTR_DAT_0043226c + 0x3cb4;
      }
      else {
        puVar9 = PTR_DAT_0043226c + 0x3ce0;
      }
      uVar6 = (*(code *)PTR_gettext_00436818)(puVar9);
      report_resolve_problem(0,uVar6,param_1,0,param_6);
      return;
    }
  }
  return;
}


lui gp,0x1a
addiu gp,gp,0x4454
addu gp,gp,t9
addiu sp,sp,-0xa0
lw v0,0x28(a1)
sw s5,0x8c(sp)
or s5,a0,zero
sw gp,0x20(sp)
andi a0,v0,0xe000
sw s8,0x98(sp)
sw s1,0x7c(sp)
sw ra,0x9c(sp)
sw s7,0x94(sp)
sw s6,0x90(sp)
sw s4,0x88(sp)
sw s3,0x84(sp)
sw s2,0x80(sp)
sw s0,0x78(sp)
lbu s1,0xb3(sp)
bne a0,zero,0x00296764
_lw s8,0xb8(sp)
ext a0,v0,0xd,0x3
lw s6,0xc(a1)
or s7,a1,zero
or s0,a2,zero
or s2,a3,zero
bne a0,zero,0x00295df8
_ext s4,v0,0x2,0x1
lw v0,0x8(a1)
beq s8,v0,0x0029640c
_nop
beq s1,zero,0x0029609c
_ori v0,zero,0xfff1
lw s3,-0x75f0(gp)
lw v0,0x0(s3)
lw a0,0xc(v0)
beq a0,zero,0x00296780
_lw a2,-0x7f64(gp)
lw v0,0x4(a0)
lbu v0,0xd(v0)
beq v0,zero,0x00295e48
_or a3,s8,zero
lw v0,0x0(a0)
lw v1,0xbc(sp)
or a2,s0,zero
sw v1,0x10(sp)
lw t9,0xac(v0)
jalr t9
_or a1,s7,zero
bne v0,zero,0x002960d8
_lw gp,0x20(sp)
lw v0,0x2c(s8)
bltz v0,0x00296108
_li a0,0x5
lw v0,0x0(s0)
lbu v0,0x4(v0)
andi v0,v0,0xf
beq v0,a0,0x00296574
_nop
lw v0,0x28(s7)
li a0,0x1
ins v0,a0,0x8,0x1
sw v0,0x28(s7)
lw v0,0x0(s8)
lw t9,0x14(v0)
jalr t9
_or a0,s8,zero
beq v0,zero,0x00296154
_lw gp,0x20(sp)
lw v0,0x28(s7)
ext a0,v0,0xd,0x3
bne a0,zero,0x002963b4
_andi v0,v0,0xe000
bne v0,zero,0x0029679c
_lw a2,-0x7f64(gp)
lw v0,0x8(s7)
or a0,v0,zero
lw v0,0x0(v0)
lw t9,0x14(v0)
jalr t9
_nop
beq v0,zero,0x002963b4
_lw gp,0x20(sp)
lw v0,0x0(s3)
lw v0,0x8(v0)
beq v0,zero,0x002963c4
_lw a2,-0x7f64(gp)
lw a0,0x594c(v0)
lbu a0,0x69(a0)
bne a0,zero,0x00296438
_nop
lbu v0,0xe11(v0)
beq v0,zero,0x00296184
_addiu v0,sp,0x28
lw a1,0x0(s0)
li v0,0x2
lbu a2,0x4(a1)
sra a0,a2,0x4
beq a0,v0,0x00295f1c
_nop
lw a0,0x28(s7)
ext a0,a0,0x18,0x4
bne a0,v0,0x00296184
_addiu v0,sp,0x28
lw v0,0xb4(sp)
beq v0,zero,0x00296180
_nop
beq s4,zero,0x00296184
_addiu v0,sp,0x28
beq s6,zero,0x00296184
_nop
lw a0,0x10(a1)
lw v0,0x14(a1)
or a3,a0,v0
beq a3,zero,0x00296180
_nop
lw t1,0x38(s7)
lw a3,0x3c(s7)
or t2,t1,a3
beq t2,zero,0x00296180
_andi a2,a2,0xf
lw t2,0x28(s7)
srl t3,t2,0x1c
beq t3,a2,0x00296170
_nop
lw v0,0x0(s7)
li a0,0x5f
lb a2,0x0(v0)
bne a2,a0,0x00296180
_li a0,0x5a
lb a2,0x1(v0)
bne a2,a0,0x00296180
_andi t2,t2,0xe000
lw a0,0x8(a1)
lw a1,0xc(a1)
lw v1,0xb4(sp)
sw s8,0x40(sp)
sw a1,0x4c(sp)
sw v1,0x44(sp)
bne t2,zero,0x00296798
_sw a0,0x48(sp)
lw t3,-0x45c8(gp)
addiu t4,s5,0x128
lw t1,0x8(s7)
addiu t2,sp,0x5c
lw a3,0x34(s7)
or a0,t4,zero
lw a2,0x30(s7)
or a1,t2,zero
lw s4,-0x45c4(gp)
or t9,t3,zero
sw v0,0x5c(sp)
addiu v0,sp,0x28
sw t4,0x74(sp)
sw t2,0x70(sp)
sw t3,0x6c(sp)
sw t1,0x28(sp)
sw s6,0x2c(sp)
addiu s6,sp,0x40
sw a3,0x34(sp)
sw a2,0x30(sp)
bal 0x00292f90
_sw v0,0x60(sp)
addiu t1,sp,0x58
addiu v1,sp,0x50
sw v0,0x58(sp)
li t5,0x1
sw t1,0x68(sp)
or a3,t1,zero
sw v1,0x64(sp)
or a0,v1,zero
sw t5,0x14(sp)
or a2,s6,zero
sb zero,0x10(sp)
or t9,s4,zero
bal 0x00293d28
_or a1,v0,zero
lw t2,0x70(sp)
lw t4,0x74(sp)
lw t3,0x6c(sp)
lw v0,0x0(s7)
or a1,t2,zero
or a0,t4,zero
or t9,t3,zero
jalr t9
_sw v0,0x5c(sp)
li t5,0x1
lw t1,0x68(sp)
or a1,v0,zero
lw v1,0x64(sp)
or t9,s4,zero
lw a2,0x60(sp)
or a3,t1,zero
sw t5,0x14(sp)
sb zero,0x10(sp)
or a0,v1,zero
bal 0x00293d28
_sw v0,0x58(sp)
b 0x00296190
_lw v0,0x0(s8)
bne s2,v0,0x00295e04
_lw s3,-0x75f0(gp)
bne s4,zero,0x00295e04
_nop
bne s6,s2,0x00295e00
_nop
lw v0,0x0(s0)
lw a0,0x30(s7)
lw a1,0x8(v0)
bne a1,a0,0x00295e04
_lw s3,-0x75f0(gp)
lw a0,0xc(v0)
lw v0,0x34(s7)
bne a0,v0,0x00295e04
_nop
lw ra,0x9c(sp)
lw s8,0x98(sp)
lw s7,0x94(sp)
lw s6,0x90(sp)
lw s5,0x8c(sp)
lw s4,0x88(sp)
lw s3,0x84(sp)
lw s2,0x80(sp)
lw s1,0x7c(sp)
lw s0,0x78(sp)
jr ra
_addiu sp,sp,0xa0
bne s2,zero,0x0029612c
_nop
lw v0,0x28(s7)
ext v0,v0,0x16,0x2
addiu v0,v0,0x3
andi v0,v0,0x3
sltiu v0,v0,0x2
bne v0,zero,0x002960dc
_lw ra,0x9c(sp)
lw v0,0x28(s7)
li a0,0x1
ins v0,a0,0x7,0x1
sw v0,0x28(s7)
lw v0,0x0(s8)
lw t9,0x14(v0)
jalr t9
_or a0,s8,zero
bne v0,zero,0x00295e90
_lw gp,0x20(sp)
lw v0,0x2c(s8)
bltz v0,0x00295e90
_li a0,0x1
lw v0,0x28(s7)
ins v0,a0,0x1,0x1
b 0x00295e90
_sw v0,0x28(s7)
bne t1,a0,0x00295f70
_nop
bne a3,v0,0x00295f70
_nop
addiu v0,sp,0x28
addiu s6,sp,0x40
sw v0,0x60(sp)
lw v0,0x0(s8)
lw t9,0x14(v0)
jalr t9
_or a0,s8,zero
beq v0,zero,0x00296564
_lw gp,0x20(sp)
lw v0,0x0(s0)
lw s4,0x28(s7)
lbu a0,0x4(v0)
srl s4,s4,0x1c
lw t9,-0x4680(gp)
srl a0,a0,0x4
lw a1,0x2c(s8)
or a3,s1,zero
or a2,s2,zero
addiu t9,t9,0x1650
bal 0x00291650
_srl a1,a1,0x1f
or a2,s4,zero
or a1,v0,zero
lw v0,0x3c(s7)
lw gp,0x20(sp)
or a3,zero,zero
lw s4,0x38(s7)
or a0,s7,zero
sw v0,0x64(sp)
lbu v0,0xc3(sp)
lw t9,-0x45f0(gp)
sw s6,0x14(sp)
sw v0,0x1c(sp)
sw s8,0x10(sp)
lw v0,0x60(sp)
bal 0x00291be4
_sw v0,0x18(sp)
bne v0,zero,0x0029648c
_lw gp,0x20(sp)
lbu a0,0x40(sp)
beq a0,zero,0x0029625c
_lw v0,0x0(s0)
lw a1,0x10(v0)
sltu a2,s4,a1
bne a2,zero,0x00296610
_lw a3,0x14(v0)
beq a1,s4,0x00296604
_lw v1,0x64(sp)
lw a1,0x8(v0)
lw a2,0x30(s7)
sltu a3,a2,a1
bne a3,zero,0x0029662c
_lw t1,0xc(v0)
beq a2,a1,0x0029661c
_nop
lbu a1,0x28(sp)
beq a1,zero,0x002962a4
_nop
lw a1,0x2c(s7)
bgez a1,0x0029627c
_ext a1,a1,0x1e,0x1
beq a1,zero,0x002962a4
_nop
lbu a1,0x4(v0)
lbu a2,0x2c(s7)
sra a1,a1,0x4
xori a1,a1,0x2
sltiu a1,a1,0x1
ins a2,a1,0x6,0x1
or a1,a2,zero
li a2,0x1
ins a1,a2,0x7,0x1
sb a1,0x2c(s7)
lbu a1,0x5(v0)
andi a2,a1,0x3
beq a2,zero,0x002962d0
_lw v0,0x28(s7)
lui a3,0xc0
and a3,v0,a3
beq a3,zero,0x00296480
_ext a3,v0,0x16,0x2
slt a2,a2,a3
bne a2,zero,0x00296480
_nop
andi v0,v0,0xe000
bne v0,zero,0x002962ec
_nop
lw v0,0x8(s7)
lw a1,0x2c(v0)
bltz a1,0x002963dc
_nop
beq a0,zero,0x002960dc
_lw ra,0x9c(sp)
lw v0,0x0(s3)
lw v0,0x8(v0)
beq v0,zero,0x002963c4
_lw a2,-0x7f64(gp)
lbu v0,0x43f5(v0)
beq v0,zero,0x002960dc
_nop
lw a0,0x0(s0)
lw v0,0x10(a0)
lw a1,0x14(a0)
sltu a0,v0,s4
bne a0,zero,0x00296740
_lw a0,-0x7f64(gp)
beq s4,v0,0x00296734
_lw v1,0x64(sp)
sltu a0,s4,v0
bne a0,zero,0x00296350
_nop
bne v0,s4,0x00296724
_lw v0,0x64(sp)
sltu v0,v0,a1
beq v0,zero,0x00296728
_lw a0,-0x7f64(gp)
lw a0,-0x7f64(gp)
lw t9,-0x39b8(gp)
addiu a0,a0,0x3cb4
jalr t9
_nop
or a3,zero,zero
lw gp,0x20(sp)
or a0,zero,zero
sw s8,0x10(sp)
or a2,s7,zero
lw t9,-0x45f4(gp)
bal 0x0029194c
_or a1,v0,zero
lw ra,0x9c(sp)
lw s8,0x98(sp)
lw s7,0x94(sp)
lw s6,0x90(sp)
lw s5,0x8c(sp)
lw s4,0x88(sp)
lw s3,0x84(sp)
lw s2,0x80(sp)
lw s1,0x7c(sp)
lw s0,0x78(sp)
jr ra
_addiu sp,sp,0xa0
lw v0,0x0(s3)
lw v0,0x8(v0)
bne v0,zero,0x00295ee8
_lw a2,-0x7f64(gp)
li a1,0x5c
lw a0,-0x7e1c(gp)
lw t9,-0x7e0c(gp)
addiu a2,a2,0x3c1c
jalr t9
_addiu a0,a0,-0x5cec
lw a1,0x28(s7)
ext a1,a1,0x8,0x1
beq a1,zero,0x002962ec
_nop
lw a1,0x2c(s7)
ext a1,a1,0x1e,0x1
bne a1,zero,0x002962ec
_li a2,0x1
lbu a1,0x2c(v0)
ins a1,a2,0x6,0x1
b 0x002962ec
_sb a1,0x2c(v0)
beq s4,zero,0x0029674c
_lw t9,-0x71f0(gp)
sltu v0,zero,s6
beq v0,zero,0x00295df8
_nop
beq s1,zero,0x0029609c
_ori v0,zero,0xfff1
bne s4,zero,0x002960ac
_nop
b 0x00295e04
_lw s3,-0x75f0(gp)
lw v0,0x28(s7)
andi a0,v0,0xe000
bne a0,zero,0x00296450
_ext v0,v0,0x2,0x1
beq v0,zero,0x0029664c
_lw t9,-0x71f0(gp)
lw v0,0xbc(sp)
or a3,s2,zero
lw t9,-0x45b4(gp)
or a2,s0,zero
sw s8,0x14(sp)
or a1,s7,zero
sw v0,0x18(sp)
or a0,s5,zero
bal 0x002935a4
_sw s1,0x10(sp)
b 0x002960dc
_lw ra,0x9c(sp)
ins v0,a1,0x16,0x2
b 0x002962d0
_sw v0,0x28(s7)
lw v1,0xbc(sp)
or a0,s5,zero
lw v0,0x28(s7)
or a3,s2,zero
lw t9,-0x45b4(gp)
or a2,s0,zero
lw s2,0x30(s7)
or a1,s7,zero
lw s6,0x34(s7)
ext s5,v0,0x18,0x4
sw v1,0x18(sp)
sw s8,0x14(sp)
bal 0x002935a4
_sw s1,0x10(sp)
lbu a0,0x40(sp)
beq a0,zero,0x0029652c
_lw gp,0x20(sp)
lw v0,0x38(s7)
sltu a1,v0,s4
bne a1,zero,0x002964f8
_nop
bne v0,s4,0x00296504
_lw v1,0x64(sp)
lw v0,0x3c(s7)
sltu v0,v0,v1
beq v0,zero,0x00296504
_nop
lw v0,0x64(sp)
sw s4,0x38(s7)
sw v0,0x3c(s7)
lw v0,0x30(s7)
sltu a1,v0,s2
bne a1,zero,0x0029670c
_nop
bne v0,s2,0x00296530
_lbu a1,0x28(sp)
lw v0,0x34(s7)
sltu v0,v0,s6
bne v0,zero,0x0029670c
_nop
lbu a1,0x28(sp)
beq a1,zero,0x002962d0
_lw v0,0x28(s7)
lw a1,0x2c(s7)
bltz a1,0x00296638
_nop
lbu a1,0x2c(s7)
xori s5,s5,0x2
sltiu s5,s5,0x1
li a2,0x1
ins a1,s5,0x6,0x1
ins a1,a2,0x7,0x1
b 0x002962d0
_sb a1,0x2c(s7)
lw v0,0x0(s0)
lbu a0,0x4(v0)
b 0x002961b4
_andi s4,a0,0xf
bne s1,zero,0x00296594
_lw a0,-0x7f64(gp)
lw t9,-0x71f0(gp)
jalr t9
_or a0,s2,zero
bne v0,zero,0x00295e68
_lw gp,0x20(sp)
lw a0,-0x7f64(gp)
lw t9,-0x39b8(gp)
jalr t9
_addiu a0,a0,0x3c50
addiu a0,sp,0x28
lw gp,0x20(sp)
or a1,s7,zero
lw t9,-0x62ac(gp)
jalr t9
_or s0,v0,zero
lw a0,0x28(s7)
lw gp,0x20(sp)
andi a0,a0,0xe000
bne a0,zero,0x002967b4
_lw a1,0x28(sp)
lw v1,0x8(s7)
or a0,s0,zero
lw t9,-0x7d74(gp)
jalr t9
_lw a2,0x4(v1)
lw a0,0x28(sp)
addiu v0,sp,0x30
beq a0,v0,0x002960d8
_lw gp,0x20(sp)
lw t9,-0x7f44(gp)
bal 0x002b5e40
_nop
b 0x002960dc
_lw ra,0x9c(sp)
sltu a2,v1,a3
beq a2,zero,0x00296240
_nop
sw a1,0x38(s7)
b 0x00296240
_sw a3,0x3c(s7)
lw a2,0x34(s7)
sltu a2,a2,t1
beq a2,zero,0x0029625c
_nop
sw a1,0x30(s7)
b 0x0029625c
_sw t1,0x34(s7)
ext a1,a1,0x1e,0x1
beq a1,zero,0x002962d0
_nop
b 0x00296548
_lbu a1,0x2c(s7)
jalr t9
_lw a0,0xc(s7)
beq v0,zero,0x00296450
_lw gp,0x20(sp)
bne s1,zero,0x00296454
_lw v0,0xbc(sp)
lw t9,-0x71f0(gp)
jalr t9
_or a0,s2,zero
beq v0,zero,0x00296450
_lw gp,0x20(sp)
lw v0,0xbc(sp)
or a3,s2,zero
lw t9,-0x45b4(gp)
or a2,s0,zero
lw s1,0x38(s7)
or a0,s5,zero
lw s3,0x3c(s7)
or a1,s7,zero
lw s0,0x30(s7)
lw s2,0x34(s7)
sw v0,0x18(sp)
sw s8,0x14(sp)
bal 0x002935a4
_sw zero,0x10(sp)
lw v0,0x38(s7)
sltu a0,v0,s1
bne a0,zero,0x00296718
_nop
bne v0,s1,0x002966d8
_nop
lw v0,0x3c(s7)
sltu v0,v0,s3
bne v0,zero,0x00296718
_nop
lw v0,0x30(s7)
sltu a0,v0,s0
bne a0,zero,0x00296700
_nop
bne v0,s0,0x002960dc
_lw ra,0x9c(sp)
lw v0,0x34(s7)
sltu v0,v0,s2
beq v0,zero,0x002960e0
_lw s8,0x98(sp)
sw s0,0x30(s7)
b 0x002960d8
_sw s2,0x34(s7)
sw s2,0x30(s7)
b 0x0029652c
_sw s6,0x34(s7)
sw s1,0x38(s7)
b 0x002966d8
_sw s3,0x3c(s7)
lw a0,-0x7f64(gp)
lw t9,-0x39b8(gp)
b 0x0029635c
_addiu a0,a0,0x3ce0
sltu a0,a1,v1
beq a0,zero,0x00296330
_lw a0,-0x7f64(gp)
lw t9,-0x39b8(gp)
b 0x0029635c
_addiu a0,a0,0x3c88
jalr t9
_or a0,s6,zero
xori v0,v0,0x1
lw gp,0x20(sp)
b 0x00296418
_andi v0,v0,0xff
lw a2,-0x7f64(gp)
li a1,0xaa
lw a0,-0x7e1c(gp)
lw t9,-0x7e0c(gp)
addiu a2,a2,0x3c38
jalr t9
_addiu a0,a0,-0x5bdc
li a1,0x69
lw a0,-0x7e1c(gp)
lw t9,-0x7e0c(gp)
addiu a2,a2,0x3bb8
jalr t9
_addiu a0,a0,-0x5cec
lw a2,-0x7f64(gp)
li a1,0xa1
lw a0,-0x7e1c(gp)
lw t9,-0x7e0c(gp)
addiu a2,a2,0x3c24
jalr t9
_addiu a0,a0,-0x5bdc
lw a2,-0x7f64(gp)
li a1,0xa1
lw a0,-0x7e1c(gp)
lw t9,-0x7e0c(gp)
addiu a2,a2,0x3c24
jalr t9
_addiu a0,a0,-0x5bdc
(translation_unit "/* void gold::Symbol_table::resolve<64, true>(gold::Sized_symbol<64>*, elfcpp::Sym<64, true> const&,\n   unsigned int, bool, unsigned int, gold::Object*, char const*, bool) */\n\nvoid __thiscall\ngold::Symbol_table::resolve<64,true>\n          (Symbol_table *this,Sized_symbol *param_1,Sym *param_2,uint param_3,bool param_4,\n          uint param_5,Object *param_6,char *param_7,bool param_8)\n\n{\n  Sized_symbol SVar1;\n  uint uVar2;\n  int iVar3;\n  char *pcVar4;\n  int iVar5;\n  undefined4 uVar6;\n  byte bVar7;\n  int *piVar8;\n  undefined *puVar9;\n  undefined1 *puVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  char *in_stack_ffffff70;\n  undefined4 *local_78;\n  uint local_74;\n  undefined4 local_70;\n  undefined4 local_6c;\n  Object *local_60;\n  uint local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined1 auStack_50 [8];\n  undefined4 local_48;\n  char *local_44;\n  undefined4 **local_40;\n  undefined1 *local_3c;\n  undefined4 *local_38;\n  code *local_34;\n  char **local_30;\n  _Map_base<char_const*,std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>,std::allocator<std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>>,std::__detail::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n  *local_2c;\n  \n  uVar2 = *(uint *)(param_1 + 0x28);\n  if ((uVar2 & 0xe000) != 0) {\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xaa,PTR_DAT_0043226c + 0x3c38);\n    return;\n  }\n  uVar13 = *(uint *)(param_1 + 0xc);\n  iVar5 = uVar2 << 0x1d;\n  if (((uVar2 << 0x10) >> 0x1d == 0) && (param_6 == *(Object **)(param_1 + 8))) {\n    if (iVar5 < 0) {\n      bVar7 = uVar13 != 0;\n    }\n    else {\n      bVar7 = (*(code *)PTR_is_common_shndx_00432fe0)(uVar13);\n      bVar7 = bVar7 ^ 1;\n    }\n    if (bVar7 == 0) goto LAB_00295df8;\n    if (!param_4) goto LAB_0029609c;\njoined_r0x002960a4:\n    if ((((-1 < iVar5) && (uVar13 == param_3)) &&\n        (*(int *)(*(int *)param_2 + 8) == *(int *)(param_1 + 0x30))) &&\n       (*(int *)(*(int *)param_2 + 0xc) == *(int *)(param_1 + 0x34))) {\n      return;\n    }\n  }\n  else {\nLAB_00295df8:\n    if (!param_4) {\nLAB_0029609c:\n      if (param_3 == 0xfff1) goto joined_r0x002960a4;\n    }\n  }\n  puVar9 = PTR_parameters_00432be0;\n  piVar8 = *(int **)(*(int *)PTR_parameters_00432be0 + 0xc);\n  if (piVar8 == (int *)0x0) {\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + 0x3bb8);\n    return;\n  }\n  if ((*(char *)(piVar8[1] + 0xd) != '\0') &&\n     (in_stack_ffffff70 = param_7,\n     iVar3 = (**(code **)(*piVar8 + 0xac))(piVar8,param_1,param_2,param_6,param_7), iVar3 != 0)) {\n    return;\n  }\n  if (*(int *)(param_6 + 0x2c) < 0) {\n    if ((param_3 == 0) && ((((uint)(*(int *)(param_1 + 0x28) << 8) >> 0x1e) + 3 & 3) < 2)) {\n      return;\n    }\n    *(uint *)(param_1 + 0x28) = *(uint *)(param_1 + 0x28) & 0xffffff7f | 0x80;\n    iVar3 = (**(code **)(*(int *)param_6 + 0x14))(param_6);\n  }\n  else {\n    if (((*(byte *)(*(int *)param_2 + 4) & 0xf) == 5) &&\n       ((param_4 || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar3 == 0)))) {\n      uVar6 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + 0x3c50);\n      (*(code *)PTR_demangled_name_abi_cxx11__00433f24)(&local_78,param_1);\n      if ((*(uint *)(param_1 + 0x28) & 0xe000) != 0) {\n                    /* try { // try from 002967c8 to 002967cf has its CatchHandler @ 002967d0 */\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24);\n        return;\n      }\n                    /* try { // try from 002965d8 to 002965df has its CatchHandler @ 002967d0 */\n      (*(code *)PTR_gold_warning_0043245c)\n                (uVar6,local_78,*(undefined4 *)(*(int *)(param_1 + 8) + 4));\n      if (local_78 == &local_70) {\n        return;\n      }\n      operator_delete(local_78);\n      return;\n    }\n    *(uint *)(param_1 + 0x28) = *(uint *)(param_1 + 0x28) & 0xfffffeff | 0x100;\n    iVar3 = (**(code **)(*(int *)param_6 + 0x14))(param_6);\n  }\n  if ((iVar3 == 0) && (-1 < *(int *)(param_6 + 0x2c))) {\n    *(uint *)(param_1 + 0x28) = *(uint *)(param_1 + 0x28) & 0xfffffffd | 2;\n  }\n  if ((*(uint *)(param_1 + 0x28) << 0x10) >> 0x1d == 0) {\n    if ((*(uint *)(param_1 + 0x28) & 0xe000) != 0) goto LAB_0029679c;\n    iVar3 = (**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8));\n    if (iVar3 == 0) goto LAB_002963b4;\n    iVar3 = *(int *)(*(int *)puVar9 + 8);\n    if (iVar3 == 0) goto LAB_002963c4;\n    if (*(char *)(*(int *)(iVar3 + 0x594c) + 0x69) != '\0') {\n      if (((((*(uint *)(param_1 + 0x28) & 0xe000) != 0) ||\n           ((int)(*(uint *)(param_1 + 0x28) << 0x1d) < 0)) ||\n          (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(*(undefined4 *)(param_1 + 0xc)),\n          iVar5 == 0)) ||\n         ((param_4 || (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar5 == 0)))) {\n        override<64,true>(this,param_1,param_2,param_3,param_4,param_6,param_7);\n        return;\n      }\n      uVar13 = *(uint *)(param_1 + 0x38);\n      uVar12 = *(uint *)(param_1 + 0x3c);\n      uVar2 = *(uint *)(param_1 + 0x30);\n      uVar11 = *(uint *)(param_1 + 0x34);\n      override<64,true>(this,param_1,param_2,param_3,false,param_6,param_7);\n      if ((*(uint *)(param_1 + 0x38) < uVar13) ||\n         ((*(uint *)(param_1 + 0x38) == uVar13 && (*(uint *)(param_1 + 0x3c) < uVar12)))) {\n        *(uint *)(param_1 + 0x38) = uVar13;\n        *(uint *)(param_1 + 0x3c) = uVar12;\n      }\n      if (uVar2 <= *(uint *)(param_1 + 0x30)) {\n        if (*(uint *)(param_1 + 0x30) != uVar2) {\n          return;\n        }\n        if (uVar11 <= *(uint *)(param_1 + 0x34)) {\n          return;\n        }\n      }\n      *(uint *)(param_1 + 0x30) = uVar2;\n      *(uint *)(param_1 + 0x34) = uVar11;\n      return;\n    }\n  }\n  else {\nLAB_002963b4:\n    iVar3 = *(int *)(*(int *)puVar9 + 8);\n    if (iVar3 == 0) goto LAB_002963c4;\n  }\n  if (*(char *)(iVar3 + 0xe11) == '\0') {\nLAB_00296184:\n    local_40 = &local_78;\n    iVar5 = *(int *)param_6;\n  }\n  else {\n    iVar3 = *(int *)param_2;\n    if (((((int)(uint)*(byte *)(iVar3 + 4) >> 4 != 2) &&\n         ((uint)(*(int *)(param_1 + 0x28) << 4) >> 0x1c != 2)) || (param_5 == 0)) ||\n       ((-1 < iVar5 || (uVar13 == 0)))) goto LAB_00296184;\n    if (*(int *)(iVar3 + 0x10) == 0 && *(int *)(iVar3 + 0x14) == 0) goto LAB_00296184;\n    if ((*(int *)(param_1 + 0x38) == 0 && *(int *)(param_1 + 0x3c) == 0) ||\n       ((((*(uint *)(param_1 + 0x28) >> 0x1c == (*(byte *)(iVar3 + 4) & 0xf) &&\n          (*(int *)(param_1 + 0x38) == *(int *)(iVar3 + 0x10))) &&\n         (*(int *)(param_1 + 0x3c) == *(int *)(iVar3 + 0x14))) ||\n        ((pcVar4 = *(char **)param_1, *pcVar4 != '_' || (pcVar4[1] != 'Z')))))) goto LAB_00296184;\n    local_58 = *(undefined4 *)(iVar3 + 8);\n    local_54 = *(undefined4 *)(iVar3 + 0xc);\n    local_60 = param_6;\n    local_5c = param_5;\n    if ((*(uint *)(param_1 + 0x28) & 0xe000) != 0) {\nLAB_0029679c:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24);\n      return;\n    }\n    local_34 = (code *)PTR_operator___00435c08;\n    local_2c = (_Map_base<char_const*,std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>,std::allocator<std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>>,std::__detail::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n                *)(this + 0x128);\n    local_78 = *(undefined4 **)(param_1 + 8);\n    local_30 = &local_44;\n    local_6c = *(undefined4 *)(param_1 + 0x34);\n    local_70 = *(undefined4 *)(param_1 + 0x30);\n    local_40 = &local_78;\n    local_74 = uVar13;\n    local_44 = pcVar4;\n    local_48 = std::__detail::\n               _Map_base<char_const*,std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>,std::allocator<std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>>,std::__detail::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n               ::operator[](local_2c,local_30);\n    local_38 = &local_48;\n    local_3c = auStack_50;\n    uVar2 = (uint)in_stack_ffffff70 & 0xffffff;\n    std::\n    _Hashtable<gold::Symbol_location,gold::Symbol_location,std::allocator<gold::Symbol_location>,std::__detail::_Identity,std::equal_to<gold::Symbol_location>,gold::Symbol_location_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&,std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,true>>>>\n              (local_3c,local_48,&local_60,local_38,uVar2,1);\n    local_44 = *(char **)param_1;\n    local_48 = (*local_34)(local_2c,local_30);\n    std::\n    _Hashtable<gold::Symbol_location,gold::Symbol_location,std::allocator<gold::Symbol_location>,std::__detail::_Identity,std::equal_to<gold::Symbol_location>,gold::Symbol_location_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&,std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,true>>>>\n              (local_3c,local_48,local_40,local_38,uVar2 & 0xffffff,1);\n    iVar5 = *(int *)param_6;\n  }\n  iVar5 = (**(code **)(iVar5 + 0x14))(param_6);\n  if (iVar5 == 0) {\n    uVar2 = (uint)*(byte *)(*(int *)param_2 + 4);\n    uVar13 = uVar2 & 0xf;\n  }\n  else {\n    uVar2 = (uint)*(byte *)(*(int *)param_2 + 4);\n    uVar13 = *(uint *)(param_1 + 0x28) >> 0x1c;\n  }\n  uVar6 = FUN_00291650(uVar2 >> 4,*(uint *)(param_6 + 0x2c) >> 0x1f,param_3,param_4);\n  local_3c = *(undefined1 **)(param_1 + 0x3c);\n  uVar2 = *(uint *)(param_1 + 0x38);\n  iVar5 = should_override(param_1,uVar6,uVar13,0,param_6,&local_60,local_40,param_8);\n  if (iVar5 == 0) {\n    iVar5 = *(int *)param_2;\n    if (local_60._0_1_ != '\0') {\n      uVar13 = *(uint *)(iVar5 + 0x10);\n      puVar10 = *(undefined1 **)(iVar5 + 0x14);\n      if ((uVar2 < uVar13) || ((uVar13 == uVar2 && (local_3c < puVar10)))) {\n        *(uint *)(param_1 + 0x38) = uVar13;\n        *(undefined1 **)(param_1 + 0x3c) = puVar10;\n      }\n      uVar13 = *(uint *)(iVar5 + 8);\n      uVar11 = *(uint *)(iVar5 + 0xc);\n      if ((*(uint *)(param_1 + 0x30) < uVar13) ||\n         ((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)))) {\n        *(uint *)(param_1 + 0x30) = uVar13;\n        *(uint *)(param_1 + 0x34) = uVar11;\n      }\n    }\n    if ((local_78._0_1_ != '\0') &&\n       ((-1 < *(int *)(param_1 + 0x2c) || (*(int *)(param_1 + 0x2c) << 1 < 0)))) {\n      param_1[0x2c] =\n           (Sized_symbol)\n           ((byte)param_1[0x2c] & 0x3f | ((int)(uint)*(byte *)(iVar5 + 4) >> 4 == 2) << 6 | 0x80);\n    }\n    bVar7 = *(byte *)(iVar5 + 5);\n    uVar13 = *(uint *)(param_1 + 0x28);\n    if (((bVar7 & 3) != 0) && (((uVar13 & 0xc00000) == 0 || ((bVar7 & 3) < (uVar13 << 8) >> 0x1e))))\n    {\n      uVar13 = uVar13 & 0xff3fffff | (bVar7 & 3) << 0x16;\n      *(uint *)(param_1 + 0x28) = uVar13;\n    }\n  }\n  else {\n    iVar5 = *(int *)(param_1 + 0x28);\n    uVar13 = *(uint *)(param_1 + 0x30);\n    uVar11 = *(uint *)(param_1 + 0x34);\n    override<64,true>(this,param_1,param_2,param_3,param_4,param_6,param_7);\n    if (local_60._0_1_ != '\0') {\n      if ((*(uint *)(param_1 + 0x38) < uVar2) ||\n         ((*(uint *)(param_1 + 0x38) == uVar2 && (*(undefined1 **)(param_1 + 0x3c) < local_3c)))) {\n        *(uint *)(param_1 + 0x38) = uVar2;\n        *(undefined1 **)(param_1 + 0x3c) = local_3c;\n      }\n      if ((*(uint *)(param_1 + 0x30) < uVar13) ||\n         ((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)))) {\n        *(uint *)(param_1 + 0x30) = uVar13;\n        *(uint *)(param_1 + 0x34) = uVar11;\n      }\n    }\n    uVar13 = *(uint *)(param_1 + 0x28);\n    if (local_78._0_1_ != '\0') {\n      if (*(int *)(param_1 + 0x2c) < 0) {\n        if (-1 < *(int *)(param_1 + 0x2c) << 1) goto LAB_002962d0;\n        SVar1 = param_1[0x2c];\n      }\n      else {\n        SVar1 = param_1[0x2c];\n      }\n      param_1[0x2c] =\n           (Sized_symbol)((byte)SVar1 & 0x3f | ((uint)(iVar5 << 4) >> 0x1c == 2) << 6 | 0x80);\n    }\n  }\nLAB_002962d0:\n  if (((((uVar13 & 0xe000) == 0) && (iVar5 = *(int *)(param_1 + 8), *(int *)(iVar5 + 0x2c) < 0)) &&\n      (*(int *)(param_1 + 0x28) << 0x17 < 0)) && (-1 < *(int *)(param_1 + 0x2c) << 1)) {\n    *(byte *)(iVar5 + 0x2c) = *(byte *)(iVar5 + 0x2c) & 0xbf | 0x40;\n  }\n  if (local_60._0_1_ != '\0') {\n    if (*(int *)(*(int *)puVar9 + 8) == 0) {\nLAB_002963c4:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + 0x3c1c);\n      return;\n    }\n    if (*(char *)(*(int *)(*(int *)puVar9 + 8) + 0x43f5) != '\0') {\n      uVar13 = *(uint *)(*(int *)param_2 + 0x10);\n      puVar10 = *(undefined1 **)(*(int *)param_2 + 0x14);\n      if ((uVar13 < uVar2) || ((uVar2 == uVar13 && (puVar10 < local_3c)))) {\n        puVar9 = PTR_DAT_0043226c + 0x3c88;\n      }\n      else if ((uVar2 < uVar13) || ((uVar13 == uVar2 && (local_3c < puVar10)))) {\n        puVar9 = PTR_DAT_0043226c + 0x3cb4;\n      }\n      else {\n        puVar9 = PTR_DAT_0043226c + 0x3ce0;\n      }\n      uVar6 = (*(code *)PTR_gettext_00436818)(puVar9);\n      report_resolve_problem(0,uVar6,param_1,0,param_6);\n      return;\n    }\n  }\n  return;\n}\n\n" comment (declaration "void __thiscall\ngold::Symbol_table::resolve<64,true>\n          (Symbol_table *this,Sized_symbol *param_1,Sym *param_2,uint param_3,bool param_4,\n          uint param_5,Object *param_6,char *param_7,bool param_8)\n\n{\n  Sized_symbol SVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Symbol_table::" identifier : : identifier : :) identifier (ERROR "<64" < number_literal) , (ERROR "true>\n          (Symbol_table *this,Sized_symbol *param_1,Sym *param_2,uint param_3,bool param_4,\n          uint param_5,Object *param_6,char *param_7,bool param_8)\n\n{\n  Sized_symbol" (function_declarator "true>\n          (Symbol_table *this,Sized_symbol *param_1,Sym *param_2,uint param_3,bool param_4,\n          uint param_5,Object *param_6,char *param_7,bool param_8)" identifier (ERROR ">" >) (parameter_list "(Symbol_table *this,Sized_symbol *param_1,Sym *param_2,uint param_3,bool param_4,\n          uint param_5,Object *param_6,char *param_7,bool param_8)" ( (parameter_declaration "Symbol_table *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Sized_symbol *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "Sym *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "bool param_4" primitive_type identifier) , (parameter_declaration "uint param_5" type_identifier identifier) , (parameter_declaration "Object *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) , (parameter_declaration "char *param_7" primitive_type (pointer_declarator "*param_7" * identifier)) , (parameter_declaration "bool param_8" primitive_type identifier) ))) { identifier) identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "byte bVar7;" type_identifier identifier ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "undefined *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "undefined1 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "char *in_stack_ffffff70;" primitive_type (pointer_declarator "*in_stack_ffffff70" * identifier) ;) (declaration "undefined4 *local_78;" type_identifier (pointer_declarator "*local_78" * identifier) ;) (declaration "uint local_74;" type_identifier identifier ;) (declaration "undefined4 local_70;" type_identifier identifier ;) (declaration "undefined4 local_6c;" type_identifier identifier ;) (declaration "Object *local_60;" type_identifier (pointer_declarator "*local_60" * identifier) ;) (declaration "uint local_5c;" type_identifier identifier ;) (declaration "undefined4 local_58;" type_identifier identifier ;) (declaration "undefined4 local_54;" type_identifier identifier ;) (declaration "undefined1 auStack_50 [8];" type_identifier (array_declarator "auStack_50 [8]" identifier [ number_literal ]) ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "char *local_44;" primitive_type (pointer_declarator "*local_44" * identifier) ;) (declaration "undefined4 **local_40;" type_identifier (pointer_declarator "**local_40" * (pointer_declarator "*local_40" * identifier)) ;) (declaration "undefined1 *local_3c;" type_identifier (pointer_declarator "*local_3c" * identifier) ;) (declaration "undefined4 *local_38;" type_identifier (pointer_declarator "*local_38" * identifier) ;) (declaration "code *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "char **local_30;" primitive_type (pointer_declarator "**local_30" * (pointer_declarator "*local_30" * identifier)) ;) (ERROR "_Map_base<char_const*,std::pair<char_const*const," (binary_expression "_Map_base<char_const*,std::pair<char_const*const" (binary_expression "_Map_base<char_const*,std" identifier < (binary_expression "char_const*,std" identifier * (ERROR "," ,) identifier)) (ERROR "::pair" : : identifier) < (binary_expression "char_const*const" identifier * identifier)) ,) (labeled_statement "std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>,std::allocator<std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>>,std::__detail::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n  *local_2c;" statement_identifier (ERROR "::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>,std::allocator<std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>>,std:" : : (binary_expression "unordered_set<gold" identifier < identifier) : : (comma_expression "Symbol_location,gold" identifier , identifier) : : (comma_expression "Symbol_location_hash,std" identifier , identifier) : : (binary_expression "equal_to<gold" identifier < identifier) : : (binary_expression "Symbol_location>,std" identifier > (ERROR "," ,) identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Symbol_location>>>,std" identifier >> (ERROR ">," > ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<char_const*const,std" (binary_expression "pair<char_const*const" identifier < (binary_expression "char_const*const" identifier * identifier)) , identifier) : : (binary_expression "unordered_set<gold" identifier < identifier) : : (comma_expression "Symbol_location,gold" identifier , identifier) : : (comma_expression "Symbol_location_hash,std" identifier , identifier) : : (binary_expression "equal_to<gold" identifier < identifier) : : (binary_expression "Symbol_location>,std" identifier > (ERROR "," ,) identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Symbol_location>>>>,std" identifier >> (ERROR ">>," >> ,) identifier) :) : (labeled_statement "__detail::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n  *local_2c;" statement_identifier (ERROR "::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std:" : : (comma_expression "_Select1st,std" identifier , identifier) : : (comma_expression "equal_to<char_const*>,std" (binary_expression "equal_to<char_const" identifier < identifier) (ERROR "*>" * >) , identifier) : : (comma_expression "hash<char_const*>,std" (binary_expression "hash<char_const" identifier < identifier) (ERROR "*>" * >) , identifier) :) : (labeled_statement "__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n  *local_2c;" statement_identifier (ERROR "::_Mod_range_hashing,std:" : : (comma_expression "_Mod_range_hashing,std" identifier , identifier) :) : (labeled_statement "__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n  *local_2c;" statement_identifier (ERROR "::_Default_ranged_hash,std:" : : (comma_expression "_Default_ranged_hash,std" identifier , identifier) :) : (labeled_statement "__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n  *local_2c;" statement_identifier (ERROR "::_Prime_rehash_policy,std:" : : (comma_expression "_Prime_rehash_policy,std" identifier , identifier) :) : (labeled_statement "__detail::_Hashtable_traits<false,false,true>,true>\n  *local_2c;" statement_identifier : (ERROR ":" :) (expression_statement "_Hashtable_traits<false,false,true>,true>\n  *local_2c;" (comma_expression "_Hashtable_traits<false,false,true>,true>\n  *local_2c" (binary_expression "_Hashtable_traits<false" identifier < false) , (comma_expression "false,true>,true>\n  *local_2c" false , (binary_expression "true>,true>\n  *local_2c" (binary_expression "true>,true" true > (ERROR "," ,) true) > (pointer_expression "*local_2c" * identifier)))) ;))))))) (expression_statement "uVar2 = *(uint *)(param_1 + 0x28);" (assignment_expression "uVar2 = *(uint *)(param_1 + 0x28)" identifier = (pointer_expression "*(uint *)(param_1 + 0x28)" * (cast_expression "(uint *)(param_1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (if_statement "if ((uVar2 & 0xe000) != 0) {\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xaa,PTR_DAT_0043226c + 0x3c38);\n    return;\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    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xaa,PTR_DAT_0043226c + 0x3c38);\n    return;\n  }" { (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xaa,PTR_DAT_0043226c + 0x3c38);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xaa,PTR_DAT_0043226c + 0x3c38)" (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,0xaa,PTR_DAT_0043226c + 0x3c38)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5bdc" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0043226c + 0x3c38" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar13 = *(uint *)(param_1 + 0xc);" (assignment_expression "uVar13 = *(uint *)(param_1 + 0xc)" identifier = (pointer_expression "*(uint *)(param_1 + 0xc)" * (cast_expression "(uint *)(param_1 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = uVar2 << 0x1d;" (assignment_expression "iVar5 = uVar2 << 0x1d" identifier = (binary_expression "uVar2 << 0x1d" identifier << number_literal)) ;) (if_statement "if (((uVar2 << 0x10) >> 0x1d == 0) && (param_6 == *(Object **)(param_1 + 8))) {\n    if (iVar5 < 0) {\n      bVar7 = uVar13 != 0;\n    }\n    else {\n      bVar7 = (*(code *)PTR_is_common_shndx_00432fe0)(uVar13);\n      bVar7 = bVar7 ^ 1;\n    }\n    if (bVar7 == 0) goto LAB_00295df8;\n    if (!param_4) goto LAB_0029609c;\njoined_r0x002960a4:\n    if ((((-1 < iVar5) && (uVar13 == param_3)) &&\n        (*(int *)(*(int *)param_2 + 8) == *(int *)(param_1 + 0x30))) &&\n       (*(int *)(*(int *)param_2 + 0xc) == *(int *)(param_1 + 0x34))) {\n      return;\n    }\n  }\n  else {\nLAB_00295df8:\n    if (!param_4) {\nLAB_0029609c:\n      if (param_3 == 0xfff1) goto joined_r0x002960a4;\n    }\n  }" if (parenthesized_expression "(((uVar2 << 0x10) >> 0x1d == 0) && (param_6 == *(Object **)(param_1 + 8)))" ( (binary_expression "((uVar2 << 0x10) >> 0x1d == 0) && (param_6 == *(Object **)(param_1 + 8))" (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) )) && (parenthesized_expression "(param_6 == *(Object **)(param_1 + 8))" ( (binary_expression "param_6 == *(Object **)(param_1 + 8)" identifier == (pointer_expression "*(Object **)(param_1 + 8)" * (cast_expression "(Object **)(param_1 + 8)" ( (type_descriptor "Object **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ))) )) (compound_statement "{\n    if (iVar5 < 0) {\n      bVar7 = uVar13 != 0;\n    }\n    else {\n      bVar7 = (*(code *)PTR_is_common_shndx_00432fe0)(uVar13);\n      bVar7 = bVar7 ^ 1;\n    }\n    if (bVar7 == 0) goto LAB_00295df8;\n    if (!param_4) goto LAB_0029609c;\njoined_r0x002960a4:\n    if ((((-1 < iVar5) && (uVar13 == param_3)) &&\n        (*(int *)(*(int *)param_2 + 8) == *(int *)(param_1 + 0x30))) &&\n       (*(int *)(*(int *)param_2 + 0xc) == *(int *)(param_1 + 0x34))) {\n      return;\n    }\n  }" { (if_statement "if (iVar5 < 0) {\n      bVar7 = uVar13 != 0;\n    }\n    else {\n      bVar7 = (*(code *)PTR_is_common_shndx_00432fe0)(uVar13);\n      bVar7 = bVar7 ^ 1;\n    }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n      bVar7 = uVar13 != 0;\n    }" { (expression_statement "bVar7 = uVar13 != 0;" (assignment_expression "bVar7 = uVar13 != 0" identifier = (binary_expression "uVar13 != 0" identifier != number_literal)) ;) }) (else_clause "else {\n      bVar7 = (*(code *)PTR_is_common_shndx_00432fe0)(uVar13);\n      bVar7 = bVar7 ^ 1;\n    }" else (compound_statement "{\n      bVar7 = (*(code *)PTR_is_common_shndx_00432fe0)(uVar13);\n      bVar7 = bVar7 ^ 1;\n    }" { (expression_statement "bVar7 = (*(code *)PTR_is_common_shndx_00432fe0)(uVar13);" (assignment_expression "bVar7 = (*(code *)PTR_is_common_shndx_00432fe0)(uVar13)" identifier = (call_expression "(*(code *)PTR_is_common_shndx_00432fe0)(uVar13)" (parenthesized_expression "(*(code *)PTR_is_common_shndx_00432fe0)" ( (pointer_expression "*(code *)PTR_is_common_shndx_00432fe0" * (cast_expression "(code *)PTR_is_common_shndx_00432fe0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar13)" ( identifier )))) ;) (expression_statement "bVar7 = bVar7 ^ 1;" (assignment_expression "bVar7 = bVar7 ^ 1" identifier = (binary_expression "bVar7 ^ 1" identifier ^ number_literal)) ;) }))) (if_statement "if (bVar7 == 0) goto LAB_00295df8;" if (parenthesized_expression "(bVar7 == 0)" ( (binary_expression "bVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00295df8;" goto statement_identifier ;)) (if_statement "if (!param_4) goto LAB_0029609c;" if (parenthesized_expression "(!param_4)" ( (unary_expression "!param_4" ! identifier) )) (goto_statement "goto LAB_0029609c;" goto statement_identifier ;)) (labeled_statement "joined_r0x002960a4:\n    if ((((-1 < iVar5) && (uVar13 == param_3)) &&\n        (*(int *)(*(int *)param_2 + 8) == *(int *)(param_1 + 0x30))) &&\n       (*(int *)(*(int *)param_2 + 0xc) == *(int *)(param_1 + 0x34))) {\n      return;\n    }" statement_identifier : (if_statement "if ((((-1 < iVar5) && (uVar13 == param_3)) &&\n        (*(int *)(*(int *)param_2 + 8) == *(int *)(param_1 + 0x30))) &&\n       (*(int *)(*(int *)param_2 + 0xc) == *(int *)(param_1 + 0x34))) {\n      return;\n    }" if (parenthesized_expression "((((-1 < iVar5) && (uVar13 == param_3)) &&\n        (*(int *)(*(int *)param_2 + 8) == *(int *)(param_1 + 0x30))) &&\n       (*(int *)(*(int *)param_2 + 0xc) == *(int *)(param_1 + 0x34)))" ( (binary_expression "(((-1 < iVar5) && (uVar13 == param_3)) &&\n        (*(int *)(*(int *)param_2 + 8) == *(int *)(param_1 + 0x30))) &&\n       (*(int *)(*(int *)param_2 + 0xc) == *(int *)(param_1 + 0x34))" (parenthesized_expression "(((-1 < iVar5) && (uVar13 == param_3)) &&\n        (*(int *)(*(int *)param_2 + 8) == *(int *)(param_1 + 0x30)))" ( (binary_expression "((-1 < iVar5) && (uVar13 == param_3)) &&\n        (*(int *)(*(int *)param_2 + 8) == *(int *)(param_1 + 0x30))" (parenthesized_expression "((-1 < iVar5) && (uVar13 == param_3))" ( (binary_expression "(-1 < iVar5) && (uVar13 == param_3)" (parenthesized_expression "(-1 < iVar5)" ( (binary_expression "-1 < iVar5" number_literal < identifier) )) && (parenthesized_expression "(uVar13 == param_3)" ( (binary_expression "uVar13 == param_3" identifier == identifier) ))) )) && (parenthesized_expression "(*(int *)(*(int *)param_2 + 8) == *(int *)(param_1 + 0x30))" ( (binary_expression "*(int *)(*(int *)param_2 + 8) == *(int *)(param_1 + 0x30)" (pointer_expression "*(int *)(*(int *)param_2 + 8)" * (cast_expression "(int *)(*(int *)param_2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)param_2 + 8)" ( (binary_expression "*(int *)param_2 + 8" (pointer_expression "*(int *)param_2" * (cast_expression "(int *)param_2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == (pointer_expression "*(int *)(param_1 + 0x30)" * (cast_expression "(int *)(param_1 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) ))))) ))) )) && (parenthesized_expression "(*(int *)(*(int *)param_2 + 0xc) == *(int *)(param_1 + 0x34))" ( (binary_expression "*(int *)(*(int *)param_2 + 0xc) == *(int *)(param_1 + 0x34)" (pointer_expression "*(int *)(*(int *)param_2 + 0xc)" * (cast_expression "(int *)(*(int *)param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)param_2 + 0xc)" ( (binary_expression "*(int *)param_2 + 0xc" (pointer_expression "*(int *)param_2" * (cast_expression "(int *)param_2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == (pointer_expression "*(int *)(param_1 + 0x34)" * (cast_expression "(int *)(param_1 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) ))))) ))) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) }))) }) (else_clause "else {\nLAB_00295df8:\n    if (!param_4) {\nLAB_0029609c:\n      if (param_3 == 0xfff1) goto joined_r0x002960a4;\n    }\n  }" else (compound_statement "{\nLAB_00295df8:\n    if (!param_4) {\nLAB_0029609c:\n      if (param_3 == 0xfff1) goto joined_r0x002960a4;\n    }\n  }" { (labeled_statement "LAB_00295df8:\n    if (!param_4) {\nLAB_0029609c:\n      if (param_3 == 0xfff1) goto joined_r0x002960a4;\n    }" statement_identifier : (if_statement "if (!param_4) {\nLAB_0029609c:\n      if (param_3 == 0xfff1) goto joined_r0x002960a4;\n    }" if (parenthesized_expression "(!param_4)" ( (unary_expression "!param_4" ! identifier) )) (compound_statement "{\nLAB_0029609c:\n      if (param_3 == 0xfff1) goto joined_r0x002960a4;\n    }" { (labeled_statement "LAB_0029609c:\n      if (param_3 == 0xfff1) goto joined_r0x002960a4;" statement_identifier : (if_statement "if (param_3 == 0xfff1) goto joined_r0x002960a4;" if (parenthesized_expression "(param_3 == 0xfff1)" ( (binary_expression "param_3 == 0xfff1" identifier == number_literal) )) (goto_statement "goto joined_r0x002960a4;" goto statement_identifier ;))) }))) }))) (expression_statement "puVar9 = PTR_parameters_00432be0;" (assignment_expression "puVar9 = PTR_parameters_00432be0" identifier = identifier) ;) (expression_statement "piVar8 = *(int **)(*(int *)PTR_parameters_00432be0 + 0xc);" (assignment_expression "piVar8 = *(int **)(*(int *)PTR_parameters_00432be0 + 0xc)" identifier = (pointer_expression "*(int **)(*(int *)PTR_parameters_00432be0 + 0xc)" * (cast_expression "(int **)(*(int *)PTR_parameters_00432be0 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)PTR_parameters_00432be0 + 0xc)" ( (binary_expression "*(int *)PTR_parameters_00432be0 + 0xc" (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 (piVar8 == (int *)0x0) {\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + 0x3bb8);\n    return;\n  }" if (parenthesized_expression "(piVar8 == (int *)0x0)" ( (binary_expression "piVar8 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + 0x3bb8);\n    return;\n  }" { (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + 0x3bb8);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + 0x3bb8)" (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,0x69,PTR_DAT_0043226c + 0x3bb8)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5cec" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0043226c + 0x3bb8" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (if_statement "if ((*(char *)(piVar8[1] + 0xd) != '\0') &&\n     (in_stack_ffffff70 = param_7,\n     iVar3 = (**(code **)(*piVar8 + 0xac))(piVar8,param_1,param_2,param_6,param_7), iVar3 != 0)) {\n    return;\n  }" if (parenthesized_expression "((*(char *)(piVar8[1] + 0xd) != '\0') &&\n     (in_stack_ffffff70 = param_7,\n     iVar3 = (**(code **)(*piVar8 + 0xac))(piVar8,param_1,param_2,param_6,param_7), iVar3 != 0))" ( (binary_expression "(*(char *)(piVar8[1] + 0xd) != '\0') &&\n     (in_stack_ffffff70 = param_7,\n     iVar3 = (**(code **)(*piVar8 + 0xac))(piVar8,param_1,param_2,param_6,param_7), iVar3 != 0)" (parenthesized_expression "(*(char *)(piVar8[1] + 0xd) != '\0')" ( (binary_expression "*(char *)(piVar8[1] + 0xd) != '\0'" (pointer_expression "*(char *)(piVar8[1] + 0xd)" * (cast_expression "(char *)(piVar8[1] + 0xd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8[1] + 0xd)" ( (binary_expression "piVar8[1] + 0xd" (subscript_expression "piVar8[1]" identifier [ number_literal ]) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(in_stack_ffffff70 = param_7,\n     iVar3 = (**(code **)(*piVar8 + 0xac))(piVar8,param_1,param_2,param_6,param_7), iVar3 != 0)" ( (comma_expression "in_stack_ffffff70 = param_7,\n     iVar3 = (**(code **)(*piVar8 + 0xac))(piVar8,param_1,param_2,param_6,param_7), iVar3 != 0" (assignment_expression "in_stack_ffffff70 = param_7" identifier = identifier) , (comma_expression "iVar3 = (**(code **)(*piVar8 + 0xac))(piVar8,param_1,param_2,param_6,param_7), iVar3 != 0" (assignment_expression "iVar3 = (**(code **)(*piVar8 + 0xac))(piVar8,param_1,param_2,param_6,param_7)" identifier = (call_expression "(**(code **)(*piVar8 + 0xac))(piVar8,param_1,param_2,param_6,param_7)" (parenthesized_expression "(**(code **)(*piVar8 + 0xac))" ( (pointer_expression "**(code **)(*piVar8 + 0xac)" * (pointer_expression "*(code **)(*piVar8 + 0xac)" * (cast_expression "(code **)(*piVar8 + 0xac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar8 + 0xac)" ( (binary_expression "*piVar8 + 0xac" (pointer_expression "*piVar8" * identifier) + number_literal) ))))) )) (argument_list "(piVar8,param_1,param_2,param_6,param_7)" ( identifier , identifier , identifier , identifier , identifier )))) , (binary_expression "iVar3 != 0" identifier != number_literal))) ))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (if_statement "if (*(int *)(param_6 + 0x2c) < 0) {\n    if ((param_3 == 0) && ((((uint)(*(int *)(param_1 + 0x28) << 8) >> 0x1e) + 3 & 3) < 2)) {\n      return;\n    }\n    *(uint *)(param_1 + 0x28) = *(uint *)(param_1 + 0x28) & 0xffffff7f | 0x80;\n    iVar3 = (**(code **)(*(int *)param_6 + 0x14))(param_6);\n  }\n  else {\n    if (((*(byte *)(*(int *)param_2 + 4) & 0xf) == 5) &&\n       ((param_4 || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar3 == 0)))) {\n      uVar6 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + 0x3c50);\n      (*(code *)PTR_demangled_name_abi_cxx11__00433f24)(&local_78,param_1);\n      if ((*(uint *)(param_1 + 0x28) & 0xe000) != 0) {\n                    /* try { // try from 002967c8 to 002967cf has its CatchHandler @ 002967d0 */\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24);\n        return;\n      }\n                    /* try { // try from 002965d8 to 002965df has its CatchHandler @ 002967d0 */\n      (*(code *)PTR_gold_warning_0043245c)\n                (uVar6,local_78,*(undefined4 *)(*(int *)(param_1 + 8) + 4));\n      if (local_78 == &local_70) {\n        return;\n      }\n      operator_delete(local_78);\n      return;\n    }\n    *(uint *)(param_1 + 0x28) = *(uint *)(param_1 + 0x28) & 0xfffffeff | 0x100;\n    iVar3 = (**(code **)(*(int *)param_6 + 0x14))(param_6);\n  }" if (parenthesized_expression "(*(int *)(param_6 + 0x2c) < 0)" ( (binary_expression "*(int *)(param_6 + 0x2c) < 0" (pointer_expression "*(int *)(param_6 + 0x2c)" * (cast_expression "(int *)(param_6 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x2c)" ( (binary_expression "param_6 + 0x2c" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n    if ((param_3 == 0) && ((((uint)(*(int *)(param_1 + 0x28) << 8) >> 0x1e) + 3 & 3) < 2)) {\n      return;\n    }\n    *(uint *)(param_1 + 0x28) = *(uint *)(param_1 + 0x28) & 0xffffff7f | 0x80;\n    iVar3 = (**(code **)(*(int *)param_6 + 0x14))(param_6);\n  }" { (if_statement "if ((param_3 == 0) && ((((uint)(*(int *)(param_1 + 0x28) << 8) >> 0x1e) + 3 & 3) < 2)) {\n      return;\n    }" if (parenthesized_expression "((param_3 == 0) && ((((uint)(*(int *)(param_1 + 0x28) << 8) >> 0x1e) + 3 & 3) < 2))" ( (binary_expression "(param_3 == 0) && ((((uint)(*(int *)(param_1 + 0x28) << 8) >> 0x1e) + 3 & 3) < 2)" (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) && (parenthesized_expression "((((uint)(*(int *)(param_1 + 0x28) << 8) >> 0x1e) + 3 & 3) < 2)" ( (binary_expression "(((uint)(*(int *)(param_1 + 0x28) << 8) >> 0x1e) + 3 & 3) < 2" (parenthesized_expression "(((uint)(*(int *)(param_1 + 0x28) << 8) >> 0x1e) + 3 & 3)" ( (binary_expression "((uint)(*(int *)(param_1 + 0x28) << 8) >> 0x1e) + 3 & 3" (binary_expression "((uint)(*(int *)(param_1 + 0x28) << 8) >> 0x1e) + 3" (parenthesized_expression "((uint)(*(int *)(param_1 + 0x28) << 8) >> 0x1e)" ( (binary_expression "(uint)(*(int *)(param_1 + 0x28) << 8) >> 0x1e" (call_expression "(uint)(*(int *)(param_1 + 0x28) << 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(param_1 + 0x28) << 8)" ( (binary_expression "*(int *)(param_1 + 0x28) << 8" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) << number_literal) ))) >> number_literal) )) + number_literal) & number_literal) )) < number_literal) ))) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "*(uint *)(param_1 + 0x28) = *(uint *)(param_1 + 0x28) & 0xffffff7f | 0x80;" (assignment_expression "*(uint *)(param_1 + 0x28) = *(uint *)(param_1 + 0x28) & 0xffffff7f | 0x80" (pointer_expression "*(uint *)(param_1 + 0x28)" * (cast_expression "(uint *)(param_1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = (binary_expression "*(uint *)(param_1 + 0x28) & 0xffffff7f | 0x80" (binary_expression "*(uint *)(param_1 + 0x28) & 0xffffff7f" (pointer_expression "*(uint *)(param_1 + 0x28)" * (cast_expression "(uint *)(param_1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (expression_statement "iVar3 = (**(code **)(*(int *)param_6 + 0x14))(param_6);" (assignment_expression "iVar3 = (**(code **)(*(int *)param_6 + 0x14))(param_6)" identifier = (call_expression "(**(code **)(*(int *)param_6 + 0x14))(param_6)" (parenthesized_expression "(**(code **)(*(int *)param_6 + 0x14))" ( (pointer_expression "**(code **)(*(int *)param_6 + 0x14)" * (pointer_expression "*(code **)(*(int *)param_6 + 0x14)" * (cast_expression "(code **)(*(int *)param_6 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)param_6 + 0x14)" ( (binary_expression "*(int *)param_6 + 0x14" (pointer_expression "*(int *)param_6" * (cast_expression "(int *)param_6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(param_6)" ( identifier )))) ;) }) (else_clause "else {\n    if (((*(byte *)(*(int *)param_2 + 4) & 0xf) == 5) &&\n       ((param_4 || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar3 == 0)))) {\n      uVar6 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + 0x3c50);\n      (*(code *)PTR_demangled_name_abi_cxx11__00433f24)(&local_78,param_1);\n      if ((*(uint *)(param_1 + 0x28) & 0xe000) != 0) {\n                    /* try { // try from 002967c8 to 002967cf has its CatchHandler @ 002967d0 */\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24);\n        return;\n      }\n                    /* try { // try from 002965d8 to 002965df has its CatchHandler @ 002967d0 */\n      (*(code *)PTR_gold_warning_0043245c)\n                (uVar6,local_78,*(undefined4 *)(*(int *)(param_1 + 8) + 4));\n      if (local_78 == &local_70) {\n        return;\n      }\n      operator_delete(local_78);\n      return;\n    }\n    *(uint *)(param_1 + 0x28) = *(uint *)(param_1 + 0x28) & 0xfffffeff | 0x100;\n    iVar3 = (**(code **)(*(int *)param_6 + 0x14))(param_6);\n  }" else (compound_statement "{\n    if (((*(byte *)(*(int *)param_2 + 4) & 0xf) == 5) &&\n       ((param_4 || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar3 == 0)))) {\n      uVar6 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + 0x3c50);\n      (*(code *)PTR_demangled_name_abi_cxx11__00433f24)(&local_78,param_1);\n      if ((*(uint *)(param_1 + 0x28) & 0xe000) != 0) {\n                    /* try { // try from 002967c8 to 002967cf has its CatchHandler @ 002967d0 */\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24);\n        return;\n      }\n                    /* try { // try from 002965d8 to 002965df has its CatchHandler @ 002967d0 */\n      (*(code *)PTR_gold_warning_0043245c)\n                (uVar6,local_78,*(undefined4 *)(*(int *)(param_1 + 8) + 4));\n      if (local_78 == &local_70) {\n        return;\n      }\n      operator_delete(local_78);\n      return;\n    }\n    *(uint *)(param_1 + 0x28) = *(uint *)(param_1 + 0x28) & 0xfffffeff | 0x100;\n    iVar3 = (**(code **)(*(int *)param_6 + 0x14))(param_6);\n  }" { (if_statement "if (((*(byte *)(*(int *)param_2 + 4) & 0xf) == 5) &&\n       ((param_4 || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar3 == 0)))) {\n      uVar6 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + 0x3c50);\n      (*(code *)PTR_demangled_name_abi_cxx11__00433f24)(&local_78,param_1);\n      if ((*(uint *)(param_1 + 0x28) & 0xe000) != 0) {\n                    /* try { // try from 002967c8 to 002967cf has its CatchHandler @ 002967d0 */\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24);\n        return;\n      }\n                    /* try { // try from 002965d8 to 002965df has its CatchHandler @ 002967d0 */\n      (*(code *)PTR_gold_warning_0043245c)\n                (uVar6,local_78,*(undefined4 *)(*(int *)(param_1 + 8) + 4));\n      if (local_78 == &local_70) {\n        return;\n      }\n      operator_delete(local_78);\n      return;\n    }" if (parenthesized_expression "(((*(byte *)(*(int *)param_2 + 4) & 0xf) == 5) &&\n       ((param_4 || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar3 == 0))))" ( (binary_expression "((*(byte *)(*(int *)param_2 + 4) & 0xf) == 5) &&\n       ((param_4 || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar3 == 0)))" (parenthesized_expression "((*(byte *)(*(int *)param_2 + 4) & 0xf) == 5)" ( (binary_expression "(*(byte *)(*(int *)param_2 + 4) & 0xf) == 5" (parenthesized_expression "(*(byte *)(*(int *)param_2 + 4) & 0xf)" ( (binary_expression "*(byte *)(*(int *)param_2 + 4) & 0xf" (pointer_expression "*(byte *)(*(int *)param_2 + 4)" * (cast_expression "(byte *)(*(int *)param_2 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)param_2 + 4)" ( (binary_expression "*(int *)param_2 + 4" (pointer_expression "*(int *)param_2" * (cast_expression "(int *)param_2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "((param_4 || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar3 == 0)))" ( (parenthesized_expression "(param_4 || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar3 == 0))" ( (binary_expression "param_4 || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar3 == 0)" identifier || (parenthesized_expression "(iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar3 == 0)" ( (comma_expression "iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar3 == 0" (assignment_expression "iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3)" identifier = (call_expression "(*(code *)PTR_is_common_shndx_00432fe0)(param_3)" (parenthesized_expression "(*(code *)PTR_is_common_shndx_00432fe0)" ( (pointer_expression "*(code *)PTR_is_common_shndx_00432fe0" * (cast_expression "(code *)PTR_is_common_shndx_00432fe0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_3)" ( identifier )))) , (binary_expression "iVar3 == 0" identifier == number_literal)) ))) )) ))) )) (compound_statement "{\n      uVar6 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + 0x3c50);\n      (*(code *)PTR_demangled_name_abi_cxx11__00433f24)(&local_78,param_1);\n      if ((*(uint *)(param_1 + 0x28) & 0xe000) != 0) {\n                    /* try { // try from 002967c8 to 002967cf has its CatchHandler @ 002967d0 */\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24);\n        return;\n      }\n                    /* try { // try from 002965d8 to 002965df has its CatchHandler @ 002967d0 */\n      (*(code *)PTR_gold_warning_0043245c)\n                (uVar6,local_78,*(undefined4 *)(*(int *)(param_1 + 8) + 4));\n      if (local_78 == &local_70) {\n        return;\n      }\n      operator_delete(local_78);\n      return;\n    }" { (expression_statement "uVar6 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + 0x3c50);" (assignment_expression "uVar6 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + 0x3c50)" identifier = (call_expression "(*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + 0x3c50)" (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 + 0x3c50)" ( (binary_expression "PTR_DAT_0043226c + 0x3c50" identifier + number_literal) )))) ;) (expression_statement "(*(code *)PTR_demangled_name_abi_cxx11__00433f24)(&local_78,param_1);" (call_expression "(*(code *)PTR_demangled_name_abi_cxx11__00433f24)(&local_78,param_1)" (parenthesized_expression "(*(code *)PTR_demangled_name_abi_cxx11__00433f24)" ( (pointer_expression "*(code *)PTR_demangled_name_abi_cxx11__00433f24" * (cast_expression "(code *)PTR_demangled_name_abi_cxx11__00433f24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_78,param_1)" ( (pointer_expression "&local_78" & identifier) , identifier ))) ;) (if_statement "if ((*(uint *)(param_1 + 0x28) & 0xe000) != 0) {\n                    /* try { // try from 002967c8 to 002967cf has its CatchHandler @ 002967d0 */\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24);\n        return;\n      }" if (parenthesized_expression "((*(uint *)(param_1 + 0x28) & 0xe000) != 0)" ( (binary_expression "(*(uint *)(param_1 + 0x28) & 0xe000) != 0" (parenthesized_expression "(*(uint *)(param_1 + 0x28) & 0xe000)" ( (binary_expression "*(uint *)(param_1 + 0x28) & 0xe000" (pointer_expression "*(uint *)(param_1 + 0x28)" * (cast_expression "(uint *)(param_1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                    /* try { // try from 002967c8 to 002967cf has its CatchHandler @ 002967d0 */\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24);\n        return;\n      }" { comment (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24)" (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 + 0x3c24)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5bdc" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0043226c + 0x3c24" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) comment (expression_statement "(*(code *)PTR_gold_warning_0043245c)\n                (uVar6,local_78,*(undefined4 *)(*(int *)(param_1 + 8) + 4));" (call_expression "(*(code *)PTR_gold_warning_0043245c)\n                (uVar6,local_78,*(undefined4 *)(*(int *)(param_1 + 8) + 4))" (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 "(uVar6,local_78,*(undefined4 *)(*(int *)(param_1 + 8) + 4))" ( identifier , identifier , (pointer_expression "*(undefined4 *)(*(int *)(param_1 + 8) + 4)" * (cast_expression "(undefined4 *)(*(int *)(param_1 + 8) + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 8) + 4)" ( (binary_expression "*(int *)(param_1 + 8) + 4" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) )))) ))) ;) (if_statement "if (local_78 == &local_70) {\n        return;\n      }" if (parenthesized_expression "(local_78 == &local_70)" ( (binary_expression "local_78 == &local_70" identifier == (pointer_expression "&local_70" & identifier)) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "operator_delete(local_78);" (call_expression "operator_delete(local_78)" identifier (argument_list "(local_78)" ( identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "*(uint *)(param_1 + 0x28) = *(uint *)(param_1 + 0x28) & 0xfffffeff | 0x100;" (assignment_expression "*(uint *)(param_1 + 0x28) = *(uint *)(param_1 + 0x28) & 0xfffffeff | 0x100" (pointer_expression "*(uint *)(param_1 + 0x28)" * (cast_expression "(uint *)(param_1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = (binary_expression "*(uint *)(param_1 + 0x28) & 0xfffffeff | 0x100" (binary_expression "*(uint *)(param_1 + 0x28) & 0xfffffeff" (pointer_expression "*(uint *)(param_1 + 0x28)" * (cast_expression "(uint *)(param_1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (expression_statement "iVar3 = (**(code **)(*(int *)param_6 + 0x14))(param_6);" (assignment_expression "iVar3 = (**(code **)(*(int *)param_6 + 0x14))(param_6)" identifier = (call_expression "(**(code **)(*(int *)param_6 + 0x14))(param_6)" (parenthesized_expression "(**(code **)(*(int *)param_6 + 0x14))" ( (pointer_expression "**(code **)(*(int *)param_6 + 0x14)" * (pointer_expression "*(code **)(*(int *)param_6 + 0x14)" * (cast_expression "(code **)(*(int *)param_6 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)param_6 + 0x14)" ( (binary_expression "*(int *)param_6 + 0x14" (pointer_expression "*(int *)param_6" * (cast_expression "(int *)param_6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(param_6)" ( identifier )))) ;) }))) (if_statement "if ((iVar3 == 0) && (-1 < *(int *)(param_6 + 0x2c))) {\n    *(uint *)(param_1 + 0x28) = *(uint *)(param_1 + 0x28) & 0xfffffffd | 2;\n  }" if (parenthesized_expression "((iVar3 == 0) && (-1 < *(int *)(param_6 + 0x2c)))" ( (binary_expression "(iVar3 == 0) && (-1 < *(int *)(param_6 + 0x2c))" (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) && (parenthesized_expression "(-1 < *(int *)(param_6 + 0x2c))" ( (binary_expression "-1 < *(int *)(param_6 + 0x2c)" number_literal < (pointer_expression "*(int *)(param_6 + 0x2c)" * (cast_expression "(int *)(param_6 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x2c)" ( (binary_expression "param_6 + 0x2c" identifier + number_literal) ))))) ))) )) (compound_statement "{\n    *(uint *)(param_1 + 0x28) = *(uint *)(param_1 + 0x28) & 0xfffffffd | 2;\n  }" { (expression_statement "*(uint *)(param_1 + 0x28) = *(uint *)(param_1 + 0x28) & 0xfffffffd | 2;" (assignment_expression "*(uint *)(param_1 + 0x28) = *(uint *)(param_1 + 0x28) & 0xfffffffd | 2" (pointer_expression "*(uint *)(param_1 + 0x28)" * (cast_expression "(uint *)(param_1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = (binary_expression "*(uint *)(param_1 + 0x28) & 0xfffffffd | 2" (binary_expression "*(uint *)(param_1 + 0x28) & 0xfffffffd" (pointer_expression "*(uint *)(param_1 + 0x28)" * (cast_expression "(uint *)(param_1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) & number_literal) | number_literal)) ;) })) (if_statement "if ((*(uint *)(param_1 + 0x28) << 0x10) >> 0x1d == 0) {\n    if ((*(uint *)(param_1 + 0x28) & 0xe000) != 0) goto LAB_0029679c;\n    iVar3 = (**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8));\n    if (iVar3 == 0) goto LAB_002963b4;\n    iVar3 = *(int *)(*(int *)puVar9 + 8);\n    if (iVar3 == 0) goto LAB_002963c4;\n    if (*(char *)(*(int *)(iVar3 + 0x594c) + 0x69) != '\0') {\n      if (((((*(uint *)(param_1 + 0x28) & 0xe000) != 0) ||\n           ((int)(*(uint *)(param_1 + 0x28) << 0x1d) < 0)) ||\n          (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(*(undefined4 *)(param_1 + 0xc)),\n          iVar5 == 0)) ||\n         ((param_4 || (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar5 == 0)))) {\n        override<64,true>(this,param_1,param_2,param_3,param_4,param_6,param_7);\n        return;\n      }\n      uVar13 = *(uint *)(param_1 + 0x38);\n      uVar12 = *(uint *)(param_1 + 0x3c);\n      uVar2 = *(uint *)(param_1 + 0x30);\n      uVar11 = *(uint *)(param_1 + 0x34);\n      override<64,true>(this,param_1,param_2,param_3,false,param_6,param_7);\n      if ((*(uint *)(param_1 + 0x38) < uVar13) ||\n         ((*(uint *)(param_1 + 0x38) == uVar13 && (*(uint *)(param_1 + 0x3c) < uVar12)))) {\n        *(uint *)(param_1 + 0x38) = uVar13;\n        *(uint *)(param_1 + 0x3c) = uVar12;\n      }\n      if (uVar2 <= *(uint *)(param_1 + 0x30)) {\n        if (*(uint *)(param_1 + 0x30) != uVar2) {\n          return;\n        }\n        if (uVar11 <= *(uint *)(param_1 + 0x34)) {\n          return;\n        }\n      }\n      *(uint *)(param_1 + 0x30) = uVar2;\n      *(uint *)(param_1 + 0x34) = uVar11;\n      return;\n    }\n  }\n  else {\nLAB_002963b4:\n    iVar3 = *(int *)(*(int *)puVar9 + 8);\n    if (iVar3 == 0) goto LAB_002963c4;\n  }" if (parenthesized_expression "((*(uint *)(param_1 + 0x28) << 0x10) >> 0x1d == 0)" ( (binary_expression "(*(uint *)(param_1 + 0x28) << 0x10) >> 0x1d == 0" (binary_expression "(*(uint *)(param_1 + 0x28) << 0x10) >> 0x1d" (parenthesized_expression "(*(uint *)(param_1 + 0x28) << 0x10)" ( (binary_expression "*(uint *)(param_1 + 0x28) << 0x10" (pointer_expression "*(uint *)(param_1 + 0x28)" * (cast_expression "(uint *)(param_1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) << number_literal) )) >> number_literal) == number_literal) )) (compound_statement "{\n    if ((*(uint *)(param_1 + 0x28) & 0xe000) != 0) goto LAB_0029679c;\n    iVar3 = (**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8));\n    if (iVar3 == 0) goto LAB_002963b4;\n    iVar3 = *(int *)(*(int *)puVar9 + 8);\n    if (iVar3 == 0) goto LAB_002963c4;\n    if (*(char *)(*(int *)(iVar3 + 0x594c) + 0x69) != '\0') {\n      if (((((*(uint *)(param_1 + 0x28) & 0xe000) != 0) ||\n           ((int)(*(uint *)(param_1 + 0x28) << 0x1d) < 0)) ||\n          (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(*(undefined4 *)(param_1 + 0xc)),\n          iVar5 == 0)) ||\n         ((param_4 || (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar5 == 0)))) {\n        override<64,true>(this,param_1,param_2,param_3,param_4,param_6,param_7);\n        return;\n      }\n      uVar13 = *(uint *)(param_1 + 0x38);\n      uVar12 = *(uint *)(param_1 + 0x3c);\n      uVar2 = *(uint *)(param_1 + 0x30);\n      uVar11 = *(uint *)(param_1 + 0x34);\n      override<64,true>(this,param_1,param_2,param_3,false,param_6,param_7);\n      if ((*(uint *)(param_1 + 0x38) < uVar13) ||\n         ((*(uint *)(param_1 + 0x38) == uVar13 && (*(uint *)(param_1 + 0x3c) < uVar12)))) {\n        *(uint *)(param_1 + 0x38) = uVar13;\n        *(uint *)(param_1 + 0x3c) = uVar12;\n      }\n      if (uVar2 <= *(uint *)(param_1 + 0x30)) {\n        if (*(uint *)(param_1 + 0x30) != uVar2) {\n          return;\n        }\n        if (uVar11 <= *(uint *)(param_1 + 0x34)) {\n          return;\n        }\n      }\n      *(uint *)(param_1 + 0x30) = uVar2;\n      *(uint *)(param_1 + 0x34) = uVar11;\n      return;\n    }\n  }" { (if_statement "if ((*(uint *)(param_1 + 0x28) & 0xe000) != 0) goto LAB_0029679c;" if (parenthesized_expression "((*(uint *)(param_1 + 0x28) & 0xe000) != 0)" ( (binary_expression "(*(uint *)(param_1 + 0x28) & 0xe000) != 0" (parenthesized_expression "(*(uint *)(param_1 + 0x28) & 0xe000)" ( (binary_expression "*(uint *)(param_1 + 0x28) & 0xe000" (pointer_expression "*(uint *)(param_1 + 0x28)" * (cast_expression "(uint *)(param_1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0029679c;" goto statement_identifier ;)) (expression_statement "iVar3 = (**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8));" (assignment_expression "iVar3 = (**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8))" identifier = (call_expression "(**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8))" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 8) + 0x14))" ( (pointer_expression "**(code **)(**(int **)(param_1 + 8) + 0x14)" * (pointer_expression "*(code **)(**(int **)(param_1 + 8) + 0x14)" * (cast_expression "(code **)(**(int **)(param_1 + 8) + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(param_1 + 8) + 0x14)" ( (binary_expression "**(int **)(param_1 + 8) + 0x14" (pointer_expression "**(int **)(param_1 + 8)" * (pointer_expression "*(int **)(param_1 + 8)" * (cast_expression "(int **)(param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(param_1 + 8))" ( (pointer_expression "*(int **)(param_1 + 8)" * (cast_expression "(int **)(param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar3 == 0) goto LAB_002963b4;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_002963b4;" goto statement_identifier ;)) (expression_statement "iVar3 = *(int *)(*(int *)puVar9 + 8);" (assignment_expression "iVar3 = *(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 (iVar3 == 0) goto LAB_002963c4;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_002963c4;" goto statement_identifier ;)) (if_statement "if (*(char *)(*(int *)(iVar3 + 0x594c) + 0x69) != '\0') {\n      if (((((*(uint *)(param_1 + 0x28) & 0xe000) != 0) ||\n           ((int)(*(uint *)(param_1 + 0x28) << 0x1d) < 0)) ||\n          (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(*(undefined4 *)(param_1 + 0xc)),\n          iVar5 == 0)) ||\n         ((param_4 || (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar5 == 0)))) {\n        override<64,true>(this,param_1,param_2,param_3,param_4,param_6,param_7);\n        return;\n      }\n      uVar13 = *(uint *)(param_1 + 0x38);\n      uVar12 = *(uint *)(param_1 + 0x3c);\n      uVar2 = *(uint *)(param_1 + 0x30);\n      uVar11 = *(uint *)(param_1 + 0x34);\n      override<64,true>(this,param_1,param_2,param_3,false,param_6,param_7);\n      if ((*(uint *)(param_1 + 0x38) < uVar13) ||\n         ((*(uint *)(param_1 + 0x38) == uVar13 && (*(uint *)(param_1 + 0x3c) < uVar12)))) {\n        *(uint *)(param_1 + 0x38) = uVar13;\n        *(uint *)(param_1 + 0x3c) = uVar12;\n      }\n      if (uVar2 <= *(uint *)(param_1 + 0x30)) {\n        if (*(uint *)(param_1 + 0x30) != uVar2) {\n          return;\n        }\n        if (uVar11 <= *(uint *)(param_1 + 0x34)) {\n          return;\n        }\n      }\n      *(uint *)(param_1 + 0x30) = uVar2;\n      *(uint *)(param_1 + 0x34) = uVar11;\n      return;\n    }" if (parenthesized_expression "(*(char *)(*(int *)(iVar3 + 0x594c) + 0x69) != '\0')" ( (binary_expression "*(char *)(*(int *)(iVar3 + 0x594c) + 0x69) != '\0'" (pointer_expression "*(char *)(*(int *)(iVar3 + 0x594c) + 0x69)" * (cast_expression "(char *)(*(int *)(iVar3 + 0x594c) + 0x69)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar3 + 0x594c) + 0x69)" ( (binary_expression "*(int *)(iVar3 + 0x594c) + 0x69" (pointer_expression "*(int *)(iVar3 + 0x594c)" * (cast_expression "(int *)(iVar3 + 0x594c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x594c)" ( (binary_expression "iVar3 + 0x594c" identifier + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if (((((*(uint *)(param_1 + 0x28) & 0xe000) != 0) ||\n           ((int)(*(uint *)(param_1 + 0x28) << 0x1d) < 0)) ||\n          (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(*(undefined4 *)(param_1 + 0xc)),\n          iVar5 == 0)) ||\n         ((param_4 || (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar5 == 0)))) {\n        override<64,true>(this,param_1,param_2,param_3,param_4,param_6,param_7);\n        return;\n      }\n      uVar13 = *(uint *)(param_1 + 0x38);\n      uVar12 = *(uint *)(param_1 + 0x3c);\n      uVar2 = *(uint *)(param_1 + 0x30);\n      uVar11 = *(uint *)(param_1 + 0x34);\n      override<64,true>(this,param_1,param_2,param_3,false,param_6,param_7);\n      if ((*(uint *)(param_1 + 0x38) < uVar13) ||\n         ((*(uint *)(param_1 + 0x38) == uVar13 && (*(uint *)(param_1 + 0x3c) < uVar12)))) {\n        *(uint *)(param_1 + 0x38) = uVar13;\n        *(uint *)(param_1 + 0x3c) = uVar12;\n      }\n      if (uVar2 <= *(uint *)(param_1 + 0x30)) {\n        if (*(uint *)(param_1 + 0x30) != uVar2) {\n          return;\n        }\n        if (uVar11 <= *(uint *)(param_1 + 0x34)) {\n          return;\n        }\n      }\n      *(uint *)(param_1 + 0x30) = uVar2;\n      *(uint *)(param_1 + 0x34) = uVar11;\n      return;\n    }" { (if_statement "if (((((*(uint *)(param_1 + 0x28) & 0xe000) != 0) ||\n           ((int)(*(uint *)(param_1 + 0x28) << 0x1d) < 0)) ||\n          (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(*(undefined4 *)(param_1 + 0xc)),\n          iVar5 == 0)) ||\n         ((param_4 || (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar5 == 0)))) {\n        override<64,true>(this,param_1,param_2,param_3,param_4,param_6,param_7);\n        return;\n      }" if (parenthesized_expression "(((((*(uint *)(param_1 + 0x28) & 0xe000) != 0) ||\n           ((int)(*(uint *)(param_1 + 0x28) << 0x1d) < 0)) ||\n          (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(*(undefined4 *)(param_1 + 0xc)),\n          iVar5 == 0)) ||\n         ((param_4 || (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar5 == 0))))" ( (binary_expression "((((*(uint *)(param_1 + 0x28) & 0xe000) != 0) ||\n           ((int)(*(uint *)(param_1 + 0x28) << 0x1d) < 0)) ||\n          (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(*(undefined4 *)(param_1 + 0xc)),\n          iVar5 == 0)) ||\n         ((param_4 || (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar5 == 0)))" (parenthesized_expression "((((*(uint *)(param_1 + 0x28) & 0xe000) != 0) ||\n           ((int)(*(uint *)(param_1 + 0x28) << 0x1d) < 0)) ||\n          (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(*(undefined4 *)(param_1 + 0xc)),\n          iVar5 == 0))" ( (binary_expression "(((*(uint *)(param_1 + 0x28) & 0xe000) != 0) ||\n           ((int)(*(uint *)(param_1 + 0x28) << 0x1d) < 0)) ||\n          (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(*(undefined4 *)(param_1 + 0xc)),\n          iVar5 == 0)" (parenthesized_expression "(((*(uint *)(param_1 + 0x28) & 0xe000) != 0) ||\n           ((int)(*(uint *)(param_1 + 0x28) << 0x1d) < 0))" ( (binary_expression "((*(uint *)(param_1 + 0x28) & 0xe000) != 0) ||\n           ((int)(*(uint *)(param_1 + 0x28) << 0x1d) < 0)" (parenthesized_expression "((*(uint *)(param_1 + 0x28) & 0xe000) != 0)" ( (binary_expression "(*(uint *)(param_1 + 0x28) & 0xe000) != 0" (parenthesized_expression "(*(uint *)(param_1 + 0x28) & 0xe000)" ( (binary_expression "*(uint *)(param_1 + 0x28) & 0xe000" (pointer_expression "*(uint *)(param_1 + 0x28)" * (cast_expression "(uint *)(param_1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) & number_literal) )) != number_literal) )) || (parenthesized_expression "((int)(*(uint *)(param_1 + 0x28) << 0x1d) < 0)" ( (binary_expression "(int)(*(uint *)(param_1 + 0x28) << 0x1d) < 0" (cast_expression "(int)(*(uint *)(param_1 + 0x28) << 0x1d)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(*(uint *)(param_1 + 0x28) << 0x1d)" ( (binary_expression "*(uint *)(param_1 + 0x28) << 0x1d" (pointer_expression "*(uint *)(param_1 + 0x28)" * (cast_expression "(uint *)(param_1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) << number_literal) ))) < number_literal) ))) )) || (parenthesized_expression "(iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(*(undefined4 *)(param_1 + 0xc)),\n          iVar5 == 0)" ( (comma_expression "iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(*(undefined4 *)(param_1 + 0xc)),\n          iVar5 == 0" (assignment_expression "iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(*(undefined4 *)(param_1 + 0xc))" identifier = (call_expression "(*(code *)PTR_is_common_shndx_00432fe0)(*(undefined4 *)(param_1 + 0xc))" (parenthesized_expression "(*(code *)PTR_is_common_shndx_00432fe0)" ( (pointer_expression "*(code *)PTR_is_common_shndx_00432fe0" * (cast_expression "(code *)PTR_is_common_shndx_00432fe0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(param_1 + 0xc))" ( (pointer_expression "*(undefined4 *)(param_1 + 0xc)" * (cast_expression "(undefined4 *)(param_1 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) )))) , (binary_expression "iVar5 == 0" identifier == number_literal)) ))) )) || (parenthesized_expression "((param_4 || (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar5 == 0)))" ( (parenthesized_expression "(param_4 || (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar5 == 0))" ( (binary_expression "param_4 || (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar5 == 0)" identifier || (parenthesized_expression "(iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar5 == 0)" ( (comma_expression "iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar5 == 0" (assignment_expression "iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3)" identifier = (call_expression "(*(code *)PTR_is_common_shndx_00432fe0)(param_3)" (parenthesized_expression "(*(code *)PTR_is_common_shndx_00432fe0)" ( (pointer_expression "*(code *)PTR_is_common_shndx_00432fe0" * (cast_expression "(code *)PTR_is_common_shndx_00432fe0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_3)" ( identifier )))) , (binary_expression "iVar5 == 0" identifier == number_literal)) ))) )) ))) )) (compound_statement "{\n        override<64,true>(this,param_1,param_2,param_3,param_4,param_6,param_7);\n        return;\n      }" { (expression_statement "override<64,true>(this,param_1,param_2,param_3,param_4,param_6,param_7);" (comma_expression "override<64,true>(this,param_1,param_2,param_3,param_4,param_6,param_7)" (binary_expression "override<64" identifier < number_literal) , (binary_expression "true>(this,param_1,param_2,param_3,param_4,param_6,param_7)" true > (parenthesized_expression "(this,param_1,param_2,param_3,param_4,param_6,param_7)" ( (comma_expression "this,param_1,param_2,param_3,param_4,param_6,param_7" identifier , (comma_expression "param_1,param_2,param_3,param_4,param_6,param_7" identifier , (comma_expression "param_2,param_3,param_4,param_6,param_7" identifier , (comma_expression "param_3,param_4,param_6,param_7" identifier , (comma_expression "param_4,param_6,param_7" identifier , (comma_expression "param_6,param_7" identifier , identifier)))))) )))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar13 = *(uint *)(param_1 + 0x38);" (assignment_expression "uVar13 = *(uint *)(param_1 + 0x38)" identifier = (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = *(uint *)(param_1 + 0x3c);" (assignment_expression "uVar12 = *(uint *)(param_1 + 0x3c)" identifier = (pointer_expression "*(uint *)(param_1 + 0x3c)" * (cast_expression "(uint *)(param_1 + 0x3c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = *(uint *)(param_1 + 0x30);" (assignment_expression "uVar2 = *(uint *)(param_1 + 0x30)" identifier = (pointer_expression "*(uint *)(param_1 + 0x30)" * (cast_expression "(uint *)(param_1 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = *(uint *)(param_1 + 0x34);" (assignment_expression "uVar11 = *(uint *)(param_1 + 0x34)" identifier = (pointer_expression "*(uint *)(param_1 + 0x34)" * (cast_expression "(uint *)(param_1 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "override<64,true>(this,param_1,param_2,param_3,false,param_6,param_7);" (comma_expression "override<64,true>(this,param_1,param_2,param_3,false,param_6,param_7)" (binary_expression "override<64" identifier < number_literal) , (binary_expression "true>(this,param_1,param_2,param_3,false,param_6,param_7)" true > (parenthesized_expression "(this,param_1,param_2,param_3,false,param_6,param_7)" ( (comma_expression "this,param_1,param_2,param_3,false,param_6,param_7" identifier , (comma_expression "param_1,param_2,param_3,false,param_6,param_7" identifier , (comma_expression "param_2,param_3,false,param_6,param_7" identifier , (comma_expression "param_3,false,param_6,param_7" identifier , (comma_expression "false,param_6,param_7" false , (comma_expression "param_6,param_7" identifier , identifier)))))) )))) ;) (if_statement "if ((*(uint *)(param_1 + 0x38) < uVar13) ||\n         ((*(uint *)(param_1 + 0x38) == uVar13 && (*(uint *)(param_1 + 0x3c) < uVar12)))) {\n        *(uint *)(param_1 + 0x38) = uVar13;\n        *(uint *)(param_1 + 0x3c) = uVar12;\n      }" if (parenthesized_expression "((*(uint *)(param_1 + 0x38) < uVar13) ||\n         ((*(uint *)(param_1 + 0x38) == uVar13 && (*(uint *)(param_1 + 0x3c) < uVar12))))" ( (binary_expression "(*(uint *)(param_1 + 0x38) < uVar13) ||\n         ((*(uint *)(param_1 + 0x38) == uVar13 && (*(uint *)(param_1 + 0x3c) < uVar12)))" (parenthesized_expression "(*(uint *)(param_1 + 0x38) < uVar13)" ( (binary_expression "*(uint *)(param_1 + 0x38) < uVar13" (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) < identifier) )) || (parenthesized_expression "((*(uint *)(param_1 + 0x38) == uVar13 && (*(uint *)(param_1 + 0x3c) < uVar12)))" ( (parenthesized_expression "(*(uint *)(param_1 + 0x38) == uVar13 && (*(uint *)(param_1 + 0x3c) < uVar12))" ( (binary_expression "*(uint *)(param_1 + 0x38) == uVar13 && (*(uint *)(param_1 + 0x3c) < uVar12)" (binary_expression "*(uint *)(param_1 + 0x38) == uVar13" (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) == identifier) && (parenthesized_expression "(*(uint *)(param_1 + 0x3c) < uVar12)" ( (binary_expression "*(uint *)(param_1 + 0x3c) < uVar12" (pointer_expression "*(uint *)(param_1 + 0x3c)" * (cast_expression "(uint *)(param_1 + 0x3c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) )))) < identifier) ))) )) ))) )) (compound_statement "{\n        *(uint *)(param_1 + 0x38) = uVar13;\n        *(uint *)(param_1 + 0x3c) = uVar12;\n      }" { (expression_statement "*(uint *)(param_1 + 0x38) = uVar13;" (assignment_expression "*(uint *)(param_1 + 0x38) = uVar13" (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(param_1 + 0x3c) = uVar12;" (assignment_expression "*(uint *)(param_1 + 0x3c) = uVar12" (pointer_expression "*(uint *)(param_1 + 0x3c)" * (cast_expression "(uint *)(param_1 + 0x3c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (uVar2 <= *(uint *)(param_1 + 0x30)) {\n        if (*(uint *)(param_1 + 0x30) != uVar2) {\n          return;\n        }\n        if (uVar11 <= *(uint *)(param_1 + 0x34)) {\n          return;\n        }\n      }" if (parenthesized_expression "(uVar2 <= *(uint *)(param_1 + 0x30))" ( (binary_expression "uVar2 <= *(uint *)(param_1 + 0x30)" identifier <= (pointer_expression "*(uint *)(param_1 + 0x30)" * (cast_expression "(uint *)(param_1 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) ))))) )) (compound_statement "{\n        if (*(uint *)(param_1 + 0x30) != uVar2) {\n          return;\n        }\n        if (uVar11 <= *(uint *)(param_1 + 0x34)) {\n          return;\n        }\n      }" { (if_statement "if (*(uint *)(param_1 + 0x30) != uVar2) {\n          return;\n        }" if (parenthesized_expression "(*(uint *)(param_1 + 0x30) != uVar2)" ( (binary_expression "*(uint *)(param_1 + 0x30) != uVar2" (pointer_expression "*(uint *)(param_1 + 0x30)" * (cast_expression "(uint *)(param_1 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (if_statement "if (uVar11 <= *(uint *)(param_1 + 0x34)) {\n          return;\n        }" if (parenthesized_expression "(uVar11 <= *(uint *)(param_1 + 0x34))" ( (binary_expression "uVar11 <= *(uint *)(param_1 + 0x34)" identifier <= (pointer_expression "*(uint *)(param_1 + 0x34)" * (cast_expression "(uint *)(param_1 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) ))))) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) })) (expression_statement "*(uint *)(param_1 + 0x30) = uVar2;" (assignment_expression "*(uint *)(param_1 + 0x30) = uVar2" (pointer_expression "*(uint *)(param_1 + 0x30)" * (cast_expression "(uint *)(param_1 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(param_1 + 0x34) = uVar11;" (assignment_expression "*(uint *)(param_1 + 0x34) = uVar11" (pointer_expression "*(uint *)(param_1 + 0x34)" * (cast_expression "(uint *)(param_1 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })) }) (else_clause "else {\nLAB_002963b4:\n    iVar3 = *(int *)(*(int *)puVar9 + 8);\n    if (iVar3 == 0) goto LAB_002963c4;\n  }" else (compound_statement "{\nLAB_002963b4:\n    iVar3 = *(int *)(*(int *)puVar9 + 8);\n    if (iVar3 == 0) goto LAB_002963c4;\n  }" { (labeled_statement "LAB_002963b4:\n    iVar3 = *(int *)(*(int *)puVar9 + 8);" statement_identifier : (expression_statement "iVar3 = *(int *)(*(int *)puVar9 + 8);" (assignment_expression "iVar3 = *(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 (iVar3 == 0) goto LAB_002963c4;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_002963c4;" goto statement_identifier ;)) }))) (if_statement "if (*(char *)(iVar3 + 0xe11) == '\0') {\nLAB_00296184:\n    local_40 = &local_78;\n    iVar5 = *(int *)param_6;\n  }\n  else {\n    iVar3 = *(int *)param_2;\n    if (((((int)(uint)*(byte *)(iVar3 + 4) >> 4 != 2) &&\n         ((uint)(*(int *)(param_1 + 0x28) << 4) >> 0x1c != 2)) || (param_5 == 0)) ||\n       ((-1 < iVar5 || (uVar13 == 0)))) goto LAB_00296184;\n    if (*(int *)(iVar3 + 0x10) == 0 && *(int *)(iVar3 + 0x14) == 0) goto LAB_00296184;\n    if ((*(int *)(param_1 + 0x38) == 0 && *(int *)(param_1 + 0x3c) == 0) ||\n       ((((*(uint *)(param_1 + 0x28) >> 0x1c == (*(byte *)(iVar3 + 4) & 0xf) &&\n          (*(int *)(param_1 + 0x38) == *(int *)(iVar3 + 0x10))) &&\n         (*(int *)(param_1 + 0x3c) == *(int *)(iVar3 + 0x14))) ||\n        ((pcVar4 = *(char **)param_1, *pcVar4 != '_' || (pcVar4[1] != 'Z')))))) goto LAB_00296184;\n    local_58 = *(undefined4 *)(iVar3 + 8);\n    local_54 = *(undefined4 *)(iVar3 + 0xc);\n    local_60 = param_6;\n    local_5c = param_5;\n    if ((*(uint *)(param_1 + 0x28) & 0xe000) != 0) {\nLAB_0029679c:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24);\n      return;\n    }\n    local_34 = (code *)PTR_operator___00435c08;\n    local_2c = (_Map_base<char_const*,std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>,std::allocator<std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>>,std::__detail::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n                *)(this + 0x128);\n    local_78 = *(undefined4 **)(param_1 + 8);\n    local_30 = &local_44;\n    local_6c = *(undefined4 *)(param_1 + 0x34);\n    local_70 = *(undefined4 *)(param_1 + 0x30);\n    local_40 = &local_78;\n    local_74 = uVar13;\n    local_44 = pcVar4;\n    local_48 = std::__detail::\n               _Map_base<char_const*,std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>,std::allocator<std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>>,std::__detail::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n               ::operator[](local_2c,local_30);\n    local_38 = &local_48;\n    local_3c = auStack_50;\n    uVar2 = (uint)in_stack_ffffff70 & 0xffffff;\n    std::\n    _Hashtable<gold::Symbol_location,gold::Symbol_location,std::allocator<gold::Symbol_location>,std::__detail::_Identity,std::equal_to<gold::Symbol_location>,gold::Symbol_location_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&,std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,true>>>>\n              (local_3c,local_48,&local_60,local_38,uVar2,1);\n    local_44 = *(char **)param_1;\n    local_48 = (*local_34)(local_2c,local_30);\n    std::\n    _Hashtable<gold::Symbol_location,gold::Symbol_location,std::allocator<gold::Symbol_location>,std::__detail::_Identity,std::equal_to<gold::Symbol_location>,gold::Symbol_location_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&,std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,true>>>>\n              (local_3c,local_48,local_40,local_38,uVar2 & 0xffffff,1);\n    iVar5 = *(int *)param_6;\n  }" if (parenthesized_expression "(*(char *)(iVar3 + 0xe11) == '\0')" ( (binary_expression "*(char *)(iVar3 + 0xe11) == '\0'" (pointer_expression "*(char *)(iVar3 + 0xe11)" * (cast_expression "(char *)(iVar3 + 0xe11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xe11)" ( (binary_expression "iVar3 + 0xe11" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_00296184:\n    local_40 = &local_78;\n    iVar5 = *(int *)param_6;\n  }" { (labeled_statement "LAB_00296184:\n    local_40 = &local_78;" statement_identifier : (expression_statement "local_40 = &local_78;" (assignment_expression "local_40 = &local_78" identifier = (pointer_expression "&local_78" & identifier)) ;)) (expression_statement "iVar5 = *(int *)param_6;" (assignment_expression "iVar5 = *(int *)param_6" identifier = (pointer_expression "*(int *)param_6" * (cast_expression "(int *)param_6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) }) (else_clause "else {\n    iVar3 = *(int *)param_2;\n    if (((((int)(uint)*(byte *)(iVar3 + 4) >> 4 != 2) &&\n         ((uint)(*(int *)(param_1 + 0x28) << 4) >> 0x1c != 2)) || (param_5 == 0)) ||\n       ((-1 < iVar5 || (uVar13 == 0)))) goto LAB_00296184;\n    if (*(int *)(iVar3 + 0x10) == 0 && *(int *)(iVar3 + 0x14) == 0) goto LAB_00296184;\n    if ((*(int *)(param_1 + 0x38) == 0 && *(int *)(param_1 + 0x3c) == 0) ||\n       ((((*(uint *)(param_1 + 0x28) >> 0x1c == (*(byte *)(iVar3 + 4) & 0xf) &&\n          (*(int *)(param_1 + 0x38) == *(int *)(iVar3 + 0x10))) &&\n         (*(int *)(param_1 + 0x3c) == *(int *)(iVar3 + 0x14))) ||\n        ((pcVar4 = *(char **)param_1, *pcVar4 != '_' || (pcVar4[1] != 'Z')))))) goto LAB_00296184;\n    local_58 = *(undefined4 *)(iVar3 + 8);\n    local_54 = *(undefined4 *)(iVar3 + 0xc);\n    local_60 = param_6;\n    local_5c = param_5;\n    if ((*(uint *)(param_1 + 0x28) & 0xe000) != 0) {\nLAB_0029679c:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24);\n      return;\n    }\n    local_34 = (code *)PTR_operator___00435c08;\n    local_2c = (_Map_base<char_const*,std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>,std::allocator<std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>>,std::__detail::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n                *)(this + 0x128);\n    local_78 = *(undefined4 **)(param_1 + 8);\n    local_30 = &local_44;\n    local_6c = *(undefined4 *)(param_1 + 0x34);\n    local_70 = *(undefined4 *)(param_1 + 0x30);\n    local_40 = &local_78;\n    local_74 = uVar13;\n    local_44 = pcVar4;\n    local_48 = std::__detail::\n               _Map_base<char_const*,std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>,std::allocator<std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>>,std::__detail::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n               ::operator[](local_2c,local_30);\n    local_38 = &local_48;\n    local_3c = auStack_50;\n    uVar2 = (uint)in_stack_ffffff70 & 0xffffff;\n    std::\n    _Hashtable<gold::Symbol_location,gold::Symbol_location,std::allocator<gold::Symbol_location>,std::__detail::_Identity,std::equal_to<gold::Symbol_location>,gold::Symbol_location_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&,std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,true>>>>\n              (local_3c,local_48,&local_60,local_38,uVar2,1);\n    local_44 = *(char **)param_1;\n    local_48 = (*local_34)(local_2c,local_30);\n    std::\n    _Hashtable<gold::Symbol_location,gold::Symbol_location,std::allocator<gold::Symbol_location>,std::__detail::_Identity,std::equal_to<gold::Symbol_location>,gold::Symbol_location_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&,std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,true>>>>\n              (local_3c,local_48,local_40,local_38,uVar2 & 0xffffff,1);\n    iVar5 = *(int *)param_6;\n  }" else (compound_statement "{\n    iVar3 = *(int *)param_2;\n    if (((((int)(uint)*(byte *)(iVar3 + 4) >> 4 != 2) &&\n         ((uint)(*(int *)(param_1 + 0x28) << 4) >> 0x1c != 2)) || (param_5 == 0)) ||\n       ((-1 < iVar5 || (uVar13 == 0)))) goto LAB_00296184;\n    if (*(int *)(iVar3 + 0x10) == 0 && *(int *)(iVar3 + 0x14) == 0) goto LAB_00296184;\n    if ((*(int *)(param_1 + 0x38) == 0 && *(int *)(param_1 + 0x3c) == 0) ||\n       ((((*(uint *)(param_1 + 0x28) >> 0x1c == (*(byte *)(iVar3 + 4) & 0xf) &&\n          (*(int *)(param_1 + 0x38) == *(int *)(iVar3 + 0x10))) &&\n         (*(int *)(param_1 + 0x3c) == *(int *)(iVar3 + 0x14))) ||\n        ((pcVar4 = *(char **)param_1, *pcVar4 != '_' || (pcVar4[1] != 'Z')))))) goto LAB_00296184;\n    local_58 = *(undefined4 *)(iVar3 + 8);\n    local_54 = *(undefined4 *)(iVar3 + 0xc);\n    local_60 = param_6;\n    local_5c = param_5;\n    if ((*(uint *)(param_1 + 0x28) & 0xe000) != 0) {\nLAB_0029679c:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24);\n      return;\n    }\n    local_34 = (code *)PTR_operator___00435c08;\n    local_2c = (_Map_base<char_const*,std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>,std::allocator<std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>>,std::__detail::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n                *)(this + 0x128);\n    local_78 = *(undefined4 **)(param_1 + 8);\n    local_30 = &local_44;\n    local_6c = *(undefined4 *)(param_1 + 0x34);\n    local_70 = *(undefined4 *)(param_1 + 0x30);\n    local_40 = &local_78;\n    local_74 = uVar13;\n    local_44 = pcVar4;\n    local_48 = std::__detail::\n               _Map_base<char_const*,std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>,std::allocator<std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>>,std::__detail::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n               ::operator[](local_2c,local_30);\n    local_38 = &local_48;\n    local_3c = auStack_50;\n    uVar2 = (uint)in_stack_ffffff70 & 0xffffff;\n    std::\n    _Hashtable<gold::Symbol_location,gold::Symbol_location,std::allocator<gold::Symbol_location>,std::__detail::_Identity,std::equal_to<gold::Symbol_location>,gold::Symbol_location_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&,std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,true>>>>\n              (local_3c,local_48,&local_60,local_38,uVar2,1);\n    local_44 = *(char **)param_1;\n    local_48 = (*local_34)(local_2c,local_30);\n    std::\n    _Hashtable<gold::Symbol_location,gold::Symbol_location,std::allocator<gold::Symbol_location>,std::__detail::_Identity,std::equal_to<gold::Symbol_location>,gold::Symbol_location_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&,std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,true>>>>\n              (local_3c,local_48,local_40,local_38,uVar2 & 0xffffff,1);\n    iVar5 = *(int *)param_6;\n  }" { (expression_statement "iVar3 = *(int *)param_2;" (assignment_expression "iVar3 = *(int *)param_2" identifier = (pointer_expression "*(int *)param_2" * (cast_expression "(int *)param_2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (((((int)(uint)*(byte *)(iVar3 + 4) >> 4 != 2) &&\n         ((uint)(*(int *)(param_1 + 0x28) << 4) >> 0x1c != 2)) || (param_5 == 0)) ||\n       ((-1 < iVar5 || (uVar13 == 0)))) goto LAB_00296184;" if (parenthesized_expression "(((((int)(uint)*(byte *)(iVar3 + 4) >> 4 != 2) &&\n         ((uint)(*(int *)(param_1 + 0x28) << 4) >> 0x1c != 2)) || (param_5 == 0)) ||\n       ((-1 < iVar5 || (uVar13 == 0))))" ( (binary_expression "((((int)(uint)*(byte *)(iVar3 + 4) >> 4 != 2) &&\n         ((uint)(*(int *)(param_1 + 0x28) << 4) >> 0x1c != 2)) || (param_5 == 0)) ||\n       ((-1 < iVar5 || (uVar13 == 0)))" (parenthesized_expression "((((int)(uint)*(byte *)(iVar3 + 4) >> 4 != 2) &&\n         ((uint)(*(int *)(param_1 + 0x28) << 4) >> 0x1c != 2)) || (param_5 == 0))" ( (binary_expression "(((int)(uint)*(byte *)(iVar3 + 4) >> 4 != 2) &&\n         ((uint)(*(int *)(param_1 + 0x28) << 4) >> 0x1c != 2)) || (param_5 == 0)" (parenthesized_expression "(((int)(uint)*(byte *)(iVar3 + 4) >> 4 != 2) &&\n         ((uint)(*(int *)(param_1 + 0x28) << 4) >> 0x1c != 2))" ( (binary_expression "((int)(uint)*(byte *)(iVar3 + 4) >> 4 != 2) &&\n         ((uint)(*(int *)(param_1 + 0x28) << 4) >> 0x1c != 2)" (parenthesized_expression "((int)(uint)*(byte *)(iVar3 + 4) >> 4 != 2)" ( (binary_expression "(int)(uint)*(byte *)(iVar3 + 4) >> 4 != 2" (binary_expression "(int)(uint)*(byte *)(iVar3 + 4) >> 4" (binary_expression "(int)(uint)*(byte *)(iVar3 + 4)" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)(iVar3 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) )))) >> number_literal) != number_literal) )) && (parenthesized_expression "((uint)(*(int *)(param_1 + 0x28) << 4) >> 0x1c != 2)" ( (binary_expression "(uint)(*(int *)(param_1 + 0x28) << 4) >> 0x1c != 2" (binary_expression "(uint)(*(int *)(param_1 + 0x28) << 4) >> 0x1c" (call_expression "(uint)(*(int *)(param_1 + 0x28) << 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(param_1 + 0x28) << 4)" ( (binary_expression "*(int *)(param_1 + 0x28) << 4" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) << number_literal) ))) >> number_literal) != number_literal) ))) )) || (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) ))) )) || (parenthesized_expression "((-1 < iVar5 || (uVar13 == 0)))" ( (parenthesized_expression "(-1 < iVar5 || (uVar13 == 0))" ( (binary_expression "-1 < iVar5 || (uVar13 == 0)" (binary_expression "-1 < iVar5" number_literal < identifier) || (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) ))) )) ))) )) (goto_statement "goto LAB_00296184;" goto statement_identifier ;)) (if_statement "if (*(int *)(iVar3 + 0x10) == 0 && *(int *)(iVar3 + 0x14) == 0) goto LAB_00296184;" if (parenthesized_expression "(*(int *)(iVar3 + 0x10) == 0 && *(int *)(iVar3 + 0x14) == 0)" ( (binary_expression "*(int *)(iVar3 + 0x10) == 0 && *(int *)(iVar3 + 0x14) == 0" (binary_expression "*(int *)(iVar3 + 0x10) == 0" (pointer_expression "*(int *)(iVar3 + 0x10)" * (cast_expression "(int *)(iVar3 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x10)" ( (binary_expression "iVar3 + 0x10" identifier + number_literal) )))) == number_literal) && (binary_expression "*(int *)(iVar3 + 0x14) == 0" (pointer_expression "*(int *)(iVar3 + 0x14)" * (cast_expression "(int *)(iVar3 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x14)" ( (binary_expression "iVar3 + 0x14" identifier + number_literal) )))) == number_literal)) )) (goto_statement "goto LAB_00296184;" goto statement_identifier ;)) (if_statement "if ((*(int *)(param_1 + 0x38) == 0 && *(int *)(param_1 + 0x3c) == 0) ||\n       ((((*(uint *)(param_1 + 0x28) >> 0x1c == (*(byte *)(iVar3 + 4) & 0xf) &&\n          (*(int *)(param_1 + 0x38) == *(int *)(iVar3 + 0x10))) &&\n         (*(int *)(param_1 + 0x3c) == *(int *)(iVar3 + 0x14))) ||\n        ((pcVar4 = *(char **)param_1, *pcVar4 != '_' || (pcVar4[1] != 'Z')))))) goto LAB_00296184;" if (parenthesized_expression "((*(int *)(param_1 + 0x38) == 0 && *(int *)(param_1 + 0x3c) == 0) ||\n       ((((*(uint *)(param_1 + 0x28) >> 0x1c == (*(byte *)(iVar3 + 4) & 0xf) &&\n          (*(int *)(param_1 + 0x38) == *(int *)(iVar3 + 0x10))) &&\n         (*(int *)(param_1 + 0x3c) == *(int *)(iVar3 + 0x14))) ||\n        ((pcVar4 = *(char **)param_1, *pcVar4 != '_' || (pcVar4[1] != 'Z'))))))" ( (binary_expression "(*(int *)(param_1 + 0x38) == 0 && *(int *)(param_1 + 0x3c) == 0) ||\n       ((((*(uint *)(param_1 + 0x28) >> 0x1c == (*(byte *)(iVar3 + 4) & 0xf) &&\n          (*(int *)(param_1 + 0x38) == *(int *)(iVar3 + 0x10))) &&\n         (*(int *)(param_1 + 0x3c) == *(int *)(iVar3 + 0x14))) ||\n        ((pcVar4 = *(char **)param_1, *pcVar4 != '_' || (pcVar4[1] != 'Z')))))" (parenthesized_expression "(*(int *)(param_1 + 0x38) == 0 && *(int *)(param_1 + 0x3c) == 0)" ( (binary_expression "*(int *)(param_1 + 0x38) == 0 && *(int *)(param_1 + 0x3c) == 0" (binary_expression "*(int *)(param_1 + 0x38) == 0" (pointer_expression "*(int *)(param_1 + 0x38)" * (cast_expression "(int *)(param_1 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) == number_literal) && (binary_expression "*(int *)(param_1 + 0x3c) == 0" (pointer_expression "*(int *)(param_1 + 0x3c)" * (cast_expression "(int *)(param_1 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) )))) == number_literal)) )) || (parenthesized_expression "((((*(uint *)(param_1 + 0x28) >> 0x1c == (*(byte *)(iVar3 + 4) & 0xf) &&\n          (*(int *)(param_1 + 0x38) == *(int *)(iVar3 + 0x10))) &&\n         (*(int *)(param_1 + 0x3c) == *(int *)(iVar3 + 0x14))) ||\n        ((pcVar4 = *(char **)param_1, *pcVar4 != '_' || (pcVar4[1] != 'Z')))))" ( (parenthesized_expression "(((*(uint *)(param_1 + 0x28) >> 0x1c == (*(byte *)(iVar3 + 4) & 0xf) &&\n          (*(int *)(param_1 + 0x38) == *(int *)(iVar3 + 0x10))) &&\n         (*(int *)(param_1 + 0x3c) == *(int *)(iVar3 + 0x14))) ||\n        ((pcVar4 = *(char **)param_1, *pcVar4 != '_' || (pcVar4[1] != 'Z'))))" ( (binary_expression "((*(uint *)(param_1 + 0x28) >> 0x1c == (*(byte *)(iVar3 + 4) & 0xf) &&\n          (*(int *)(param_1 + 0x38) == *(int *)(iVar3 + 0x10))) &&\n         (*(int *)(param_1 + 0x3c) == *(int *)(iVar3 + 0x14))) ||\n        ((pcVar4 = *(char **)param_1, *pcVar4 != '_' || (pcVar4[1] != 'Z')))" (parenthesized_expression "((*(uint *)(param_1 + 0x28) >> 0x1c == (*(byte *)(iVar3 + 4) & 0xf) &&\n          (*(int *)(param_1 + 0x38) == *(int *)(iVar3 + 0x10))) &&\n         (*(int *)(param_1 + 0x3c) == *(int *)(iVar3 + 0x14)))" ( (binary_expression "(*(uint *)(param_1 + 0x28) >> 0x1c == (*(byte *)(iVar3 + 4) & 0xf) &&\n          (*(int *)(param_1 + 0x38) == *(int *)(iVar3 + 0x10))) &&\n         (*(int *)(param_1 + 0x3c) == *(int *)(iVar3 + 0x14))" (parenthesized_expression "(*(uint *)(param_1 + 0x28) >> 0x1c == (*(byte *)(iVar3 + 4) & 0xf) &&\n          (*(int *)(param_1 + 0x38) == *(int *)(iVar3 + 0x10)))" ( (binary_expression "*(uint *)(param_1 + 0x28) >> 0x1c == (*(byte *)(iVar3 + 4) & 0xf) &&\n          (*(int *)(param_1 + 0x38) == *(int *)(iVar3 + 0x10))" (binary_expression "*(uint *)(param_1 + 0x28) >> 0x1c == (*(byte *)(iVar3 + 4) & 0xf)" (binary_expression "*(uint *)(param_1 + 0x28) >> 0x1c" (pointer_expression "*(uint *)(param_1 + 0x28)" * (cast_expression "(uint *)(param_1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) >> number_literal) == (parenthesized_expression "(*(byte *)(iVar3 + 4) & 0xf)" ( (binary_expression "*(byte *)(iVar3 + 4) & 0xf" (pointer_expression "*(byte *)(iVar3 + 4)" * (cast_expression "(byte *)(iVar3 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) )))) & number_literal) ))) && (parenthesized_expression "(*(int *)(param_1 + 0x38) == *(int *)(iVar3 + 0x10))" ( (binary_expression "*(int *)(param_1 + 0x38) == *(int *)(iVar3 + 0x10)" (pointer_expression "*(int *)(param_1 + 0x38)" * (cast_expression "(int *)(param_1 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) == (pointer_expression "*(int *)(iVar3 + 0x10)" * (cast_expression "(int *)(iVar3 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x10)" ( (binary_expression "iVar3 + 0x10" identifier + number_literal) ))))) ))) )) && (parenthesized_expression "(*(int *)(param_1 + 0x3c) == *(int *)(iVar3 + 0x14))" ( (binary_expression "*(int *)(param_1 + 0x3c) == *(int *)(iVar3 + 0x14)" (pointer_expression "*(int *)(param_1 + 0x3c)" * (cast_expression "(int *)(param_1 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) )))) == (pointer_expression "*(int *)(iVar3 + 0x14)" * (cast_expression "(int *)(iVar3 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x14)" ( (binary_expression "iVar3 + 0x14" identifier + number_literal) ))))) ))) )) || (parenthesized_expression "((pcVar4 = *(char **)param_1, *pcVar4 != '_' || (pcVar4[1] != 'Z')))" ( (parenthesized_expression "(pcVar4 = *(char **)param_1, *pcVar4 != '_' || (pcVar4[1] != 'Z'))" ( (comma_expression "pcVar4 = *(char **)param_1, *pcVar4 != '_' || (pcVar4[1] != 'Z')" (assignment_expression "pcVar4 = *(char **)param_1" identifier = (pointer_expression "*(char **)param_1" * (cast_expression "(char **)param_1" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) , (binary_expression "*pcVar4 != '_' || (pcVar4[1] != 'Z')" (binary_expression "*pcVar4 != '_'" (pointer_expression "*pcVar4" * identifier) != (char_literal "'_'" ' character ')) || (parenthesized_expression "(pcVar4[1] != 'Z')" ( (binary_expression "pcVar4[1] != 'Z'" (subscript_expression "pcVar4[1]" identifier [ number_literal ]) != (char_literal "'Z'" ' character ')) )))) )) ))) )) ))) )) (goto_statement "goto LAB_00296184;" goto statement_identifier ;)) (expression_statement "local_58 = *(undefined4 *)(iVar3 + 8);" (assignment_expression "local_58 = *(undefined4 *)(iVar3 + 8)" identifier = (pointer_expression "*(undefined4 *)(iVar3 + 8)" * (cast_expression "(undefined4 *)(iVar3 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) ))))) ;) (expression_statement "local_54 = *(undefined4 *)(iVar3 + 0xc);" (assignment_expression "local_54 = *(undefined4 *)(iVar3 + 0xc)" identifier = (pointer_expression "*(undefined4 *)(iVar3 + 0xc)" * (cast_expression "(undefined4 *)(iVar3 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "local_60 = param_6;" (assignment_expression "local_60 = param_6" identifier = identifier) ;) (expression_statement "local_5c = param_5;" (assignment_expression "local_5c = param_5" identifier = identifier) ;) (if_statement "if ((*(uint *)(param_1 + 0x28) & 0xe000) != 0) {\nLAB_0029679c:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24);\n      return;\n    }" if (parenthesized_expression "((*(uint *)(param_1 + 0x28) & 0xe000) != 0)" ( (binary_expression "(*(uint *)(param_1 + 0x28) & 0xe000) != 0" (parenthesized_expression "(*(uint *)(param_1 + 0x28) & 0xe000)" ( (binary_expression "*(uint *)(param_1 + 0x28) & 0xe000" (pointer_expression "*(uint *)(param_1 + 0x28)" * (cast_expression "(uint *)(param_1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_0029679c:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24);\n      return;\n    }" { (labeled_statement "LAB_0029679c:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24);" statement_identifier : (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24)" (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 + 0x3c24)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5bdc" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0043226c + 0x3c24" identifier + number_literal) ))) ;)) (return_statement "return;" return ;) })) (expression_statement "local_34 = (code *)PTR_operator___00435c08;" (assignment_expression "local_34 = (code *)PTR_operator___00435c08" identifier = (cast_expression "(code *)PTR_operator___00435c08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_2c = (_Map_base<char_const*,std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>,std::allocator<std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>>,std::__detail::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n                *)(this + 0x128);" (assignment_expression "local_2c = (_Map_base<char_const*,std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>,std::allocator<std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>>,std::__detail::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n                *)(this + 0x128)" identifier = (call_expression "(_Map_base<char_const*,std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>,std::allocator<std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>>,std::__detail::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n                *)(this + 0x128)" (parenthesized_expression "(_Map_base<char_const*,std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>,std::allocator<std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>>,std::__detail::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n                *)" ( (ERROR "_Map_base<char_const*,std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>,std::allocator<std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>>,std::__detail::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::" (comma_expression "_Map_base<char_const*,std" (binary_expression "_Map_base<char_const" identifier < identifier) (ERROR "*" *) , identifier) : : (comma_expression "pair<char_const*const,std" (binary_expression "pair<char_const*const" identifier < (binary_expression "char_const*const" identifier * identifier)) , identifier) : : (binary_expression "unordered_set<gold" identifier < identifier) : : (comma_expression "Symbol_location,gold" identifier , identifier) : : (comma_expression "Symbol_location_hash,std" identifier , identifier) : : (binary_expression "equal_to<gold" identifier < identifier) : : (binary_expression "Symbol_location>,std" identifier > (ERROR "," ,) identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Symbol_location>>>,std" identifier >> (ERROR ">," > ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<char_const*const,std" (binary_expression "pair<char_const*const" identifier < (binary_expression "char_const*const" identifier * identifier)) , identifier) : : (binary_expression "unordered_set<gold" identifier < identifier) : : (comma_expression "Symbol_location,gold" identifier , identifier) : : (comma_expression "Symbol_location_hash,std" identifier , identifier) : : (binary_expression "equal_to<gold" identifier < identifier) : : (binary_expression "Symbol_location>,std" identifier > (ERROR "," ,) identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Symbol_location>>>>,std" identifier >> (ERROR ">>," >> ,) identifier) : : identifier : : (comma_expression "_Select1st,std" identifier , identifier) : : (comma_expression "equal_to<char_const*>,std" (binary_expression "equal_to<char_const" identifier < identifier) (ERROR "*>" * >) , identifier) : : (comma_expression "hash<char_const*>,std" (binary_expression "hash<char_const" identifier < identifier) (ERROR "*>" * >) , identifier) : : identifier : : (comma_expression "_Mod_range_hashing,std" identifier , identifier) : : identifier : : (comma_expression "_Default_ranged_hash,std" identifier , identifier) : : identifier : : (comma_expression "_Prime_rehash_policy,std" identifier , identifier) : : identifier : :) (comma_expression "_Hashtable_traits<false,false,true>,true>\n                *" (binary_expression "_Hashtable_traits<false" identifier < false) , (comma_expression "false,true>,true>\n                *" false , (binary_expression "true>,true>\n                *" (binary_expression "true>,true" true > (ERROR "," ,) true) > (pointer_expression "*" * identifier)))) )) (argument_list "(this + 0x128)" ( (binary_expression "this + 0x128" identifier + number_literal) )))) ;) (expression_statement "local_78 = *(undefined4 **)(param_1 + 8);" (assignment_expression "local_78 = *(undefined4 **)(param_1 + 8)" identifier = (pointer_expression "*(undefined4 **)(param_1 + 8)" * (cast_expression "(undefined4 **)(param_1 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "local_30 = &local_44;" (assignment_expression "local_30 = &local_44" identifier = (pointer_expression "&local_44" & identifier)) ;) (expression_statement "local_6c = *(undefined4 *)(param_1 + 0x34);" (assignment_expression "local_6c = *(undefined4 *)(param_1 + 0x34)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x34)" * (cast_expression "(undefined4 *)(param_1 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "local_70 = *(undefined4 *)(param_1 + 0x30);" (assignment_expression "local_70 = *(undefined4 *)(param_1 + 0x30)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x30)" * (cast_expression "(undefined4 *)(param_1 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "local_40 = &local_78;" (assignment_expression "local_40 = &local_78" identifier = (pointer_expression "&local_78" & identifier)) ;) (expression_statement "local_74 = uVar13;" (assignment_expression "local_74 = uVar13" identifier = identifier) ;) (expression_statement "local_44 = pcVar4;" (assignment_expression "local_44 = pcVar4" identifier = identifier) ;) (ERROR "local_48 = std::__detail::\n               _Map_base<char_const*,std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>,std::allocator<std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>>,std::" (assignment_expression "local_48 = std" identifier = identifier) : : (comma_expression "__detail::\n               _Map_base<char_const*,std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std" identifier (ERROR "::\n               _Map_base<char_const*,std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>" : : (comma_expression "_Map_base<char_const*,std" (binary_expression "_Map_base<char_const" identifier < identifier) (ERROR "*" *) , identifier) : : (comma_expression "pair<char_const*const,std" (binary_expression "pair<char_const*const" identifier < (binary_expression "char_const*const" identifier * identifier)) , identifier) : : (binary_expression "unordered_set<gold" identifier < identifier) : : (comma_expression "Symbol_location,gold" identifier , identifier) : : (comma_expression "Symbol_location_hash,std" identifier , identifier) : : (binary_expression "equal_to<gold" identifier < identifier) : : identifier >) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Symbol_location>>>,std" identifier >> (ERROR ">," > ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<char_const*const,std" (binary_expression "pair<char_const*const" identifier < (binary_expression "char_const*const" identifier * identifier)) , identifier) : : (binary_expression "unordered_set<gold" identifier < identifier) : : (comma_expression "Symbol_location,gold" identifier , identifier) : : (comma_expression "Symbol_location_hash,std" identifier , identifier) : : (binary_expression "equal_to<gold" identifier < identifier) : : (binary_expression "Symbol_location>,std" identifier > (ERROR "," ,) identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Symbol_location>>>>,std" identifier >> (ERROR ">>," >> ,) identifier) : :) (labeled_statement "__detail::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n               ::operator[](local_2c,local_30);" statement_identifier (ERROR "::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std:" : : (comma_expression "_Select1st,std" identifier , identifier) : : (comma_expression "equal_to<char_const*>,std" (binary_expression "equal_to<char_const" identifier < identifier) (ERROR "*>" * >) , identifier) : : (comma_expression "hash<char_const*>,std" (binary_expression "hash<char_const" identifier < identifier) (ERROR "*>" * >) , identifier) :) : (labeled_statement "__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n               ::operator[](local_2c,local_30);" statement_identifier (ERROR "::_Mod_range_hashing,std:" : : (comma_expression "_Mod_range_hashing,std" identifier , identifier) :) : (labeled_statement "__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n               ::operator[](local_2c,local_30);" statement_identifier (ERROR "::_Default_ranged_hash,std:" : : (comma_expression "_Default_ranged_hash,std" identifier , identifier) :) : (labeled_statement "__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n               ::operator[](local_2c,local_30);" statement_identifier (ERROR "::_Prime_rehash_policy,std:" : : (comma_expression "_Prime_rehash_policy,std" identifier , identifier) :) : (labeled_statement "__detail::_Hashtable_traits<false,false,true>,true>\n               ::operator[](local_2c,local_30);" statement_identifier : (ERROR ":" :) (expression_statement "_Hashtable_traits<false,false,true>,true>\n               ::operator[](local_2c,local_30);" (comma_expression "_Hashtable_traits<false,false,true>,true>\n               ::operator[](local_2c,local_30)" (binary_expression "_Hashtable_traits<false" identifier < false) , (comma_expression "false,true>,true>\n               ::operator[](local_2c,local_30)" false , (binary_expression "true>,true>\n               ::operator[](local_2c,local_30)" (binary_expression "true>,true" true > (ERROR "," ,) true) > (ERROR "::" : :) (call_expression "operator[](local_2c,local_30)" (subscript_expression "operator[]" identifier [ identifier ]) (argument_list "(local_2c,local_30)" ( identifier , identifier )))))) ;)))))) (expression_statement "local_38 = &local_48;" (assignment_expression "local_38 = &local_48" identifier = (pointer_expression "&local_48" & identifier)) ;) (expression_statement "local_3c = auStack_50;" (assignment_expression "local_3c = auStack_50" identifier = identifier) ;) (expression_statement "uVar2 = (uint)in_stack_ffffff70 & 0xffffff;" (assignment_expression "uVar2 = (uint)in_stack_ffffff70 & 0xffffff" identifier = (binary_expression "(uint)in_stack_ffffff70 & 0xffffff" (cast_expression "(uint)in_stack_ffffff70" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (ERROR "std::\n    _Hashtable<gold::Symbol_location,gold::Symbol_location,std::allocator<gold::Symbol_location>,std::__detail::_Identity,std::equal_to<gold::Symbol_location>,gold::Symbol_location_hash,std::" (comma_expression "std::\n    _Hashtable<gold::Symbol_location,gold::Symbol_location,std::allocator<gold::Symbol_location>,std" identifier (ERROR "::\n    _Hashtable<gold::Symbol_location,gold::Symbol_location,std::allocator<gold::Symbol_location>" : : (binary_expression "_Hashtable<gold" identifier < identifier) : : (comma_expression "Symbol_location,gold" identifier , identifier) : : (comma_expression "Symbol_location,std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier >) , identifier) : : identifier : : (comma_expression "_Identity,std" identifier , identifier) : : (binary_expression "equal_to<gold" identifier < identifier) : : (binary_expression "Symbol_location>,gold" identifier > (ERROR "," ,) identifier) : : (comma_expression "Symbol_location_hash,std" identifier , identifier) : :) (labeled_statement "__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&,std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,true>>>>\n              (local_3c,local_48,&local_60,local_38,uVar2,1);" statement_identifier (ERROR "::_Mod_range_hashing,std:" : : (comma_expression "_Mod_range_hashing,std" identifier , identifier) :) : (labeled_statement "__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&,std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,true>>>>\n              (local_3c,local_48,&local_60,local_38,uVar2,1);" statement_identifier (ERROR "::_Default_ranged_hash,std:" : : (comma_expression "_Default_ranged_hash,std" identifier , identifier) :) : (labeled_statement "__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&,std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,true>>>>\n              (local_3c,local_48,&local_60,local_38,uVar2,1);" statement_identifier (ERROR "::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&,std:" : : (comma_expression "_Prime_rehash_policy,std" identifier , identifier) : : (comma_expression "__detail::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&,std" identifier (ERROR "::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&" : : (comma_expression "_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "true,true>>\n    ::\n    _M_insert<gold" true , (binary_expression "true>>\n    ::\n    _M_insert<gold" (binary_expression "true>>\n    ::\n    _M_insert" true >> (ERROR "::" : :) identifier) < identifier))) : : identifier &) , identifier) :) : (labeled_statement "__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,true>>>>\n              (local_3c,local_48,&local_60,local_38,uVar2,1);" statement_identifier (ERROR "::_AllocNode<std::allocator<std:" : : (binary_expression "_AllocNode<std" identifier < identifier) : : (binary_expression "allocator<std" identifier < identifier) :) : (labeled_statement "__detail::_Hash_node<gold::Symbol_location,true>>>>\n              (local_3c,local_48,&local_60,local_38,uVar2,1);" statement_identifier (ERROR "::_Hash_node<gold:" : : (binary_expression "_Hash_node<gold" identifier < identifier) :) : (expression_statement "Symbol_location,true>>>>\n              (local_3c,local_48,&local_60,local_38,uVar2,1);" (comma_expression "Symbol_location,true>>>>\n              (local_3c,local_48,&local_60,local_38,uVar2,1)" identifier , (binary_expression "true>>>>\n              (local_3c,local_48,&local_60,local_38,uVar2,1)" true >> (ERROR ">>" >>) (parenthesized_expression "(local_3c,local_48,&local_60,local_38,uVar2,1)" ( (comma_expression "local_3c,local_48,&local_60,local_38,uVar2,1" identifier , (comma_expression "local_48,&local_60,local_38,uVar2,1" identifier , (comma_expression "&local_60,local_38,uVar2,1" (pointer_expression "&local_60" & identifier) , (comma_expression "local_38,uVar2,1" identifier , (comma_expression "uVar2,1" identifier , number_literal))))) )))) ;)))))) (expression_statement "local_44 = *(char **)param_1;" (assignment_expression "local_44 = *(char **)param_1" identifier = (pointer_expression "*(char **)param_1" * (cast_expression "(char **)param_1" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "local_48 = (*local_34)(local_2c,local_30);" (assignment_expression "local_48 = (*local_34)(local_2c,local_30)" identifier = (call_expression "(*local_34)(local_2c,local_30)" (parenthesized_expression "(*local_34)" ( (pointer_expression "*local_34" * identifier) )) (argument_list "(local_2c,local_30)" ( identifier , identifier )))) ;) (ERROR "std::\n    _Hashtable<gold::Symbol_location,gold::Symbol_location,std::allocator<gold::Symbol_location>,std::__detail::_Identity,std::equal_to<gold::Symbol_location>,gold::Symbol_location_hash,std::" (comma_expression "std::\n    _Hashtable<gold::Symbol_location,gold::Symbol_location,std::allocator<gold::Symbol_location>,std" identifier (ERROR "::\n    _Hashtable<gold::Symbol_location,gold::Symbol_location,std::allocator<gold::Symbol_location>" : : (binary_expression "_Hashtable<gold" identifier < identifier) : : (comma_expression "Symbol_location,gold" identifier , identifier) : : (comma_expression "Symbol_location,std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier >) , identifier) : : identifier : : (comma_expression "_Identity,std" identifier , identifier) : : (binary_expression "equal_to<gold" identifier < identifier) : : (binary_expression "Symbol_location>,gold" identifier > (ERROR "," ,) identifier) : : (comma_expression "Symbol_location_hash,std" identifier , identifier) : :) (labeled_statement "__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&,std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,true>>>>\n              (local_3c,local_48,local_40,local_38,uVar2 & 0xffffff,1);" statement_identifier (ERROR "::_Mod_range_hashing,std:" : : (comma_expression "_Mod_range_hashing,std" identifier , identifier) :) : (labeled_statement "__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&,std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,true>>>>\n              (local_3c,local_48,local_40,local_38,uVar2 & 0xffffff,1);" statement_identifier (ERROR "::_Default_ranged_hash,std:" : : (comma_expression "_Default_ranged_hash,std" identifier , identifier) :) : (labeled_statement "__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&,std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,true>>>>\n              (local_3c,local_48,local_40,local_38,uVar2 & 0xffffff,1);" statement_identifier (ERROR "::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&,std:" : : (comma_expression "_Prime_rehash_policy,std" identifier , identifier) : : (comma_expression "__detail::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&,std" identifier (ERROR "::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&" : : (comma_expression "_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "true,true>>\n    ::\n    _M_insert<gold" true , (binary_expression "true>>\n    ::\n    _M_insert<gold" (binary_expression "true>>\n    ::\n    _M_insert" true >> (ERROR "::" : :) identifier) < identifier))) : : identifier &) , identifier) :) : (labeled_statement "__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,true>>>>\n              (local_3c,local_48,local_40,local_38,uVar2 & 0xffffff,1);" statement_identifier (ERROR "::_AllocNode<std::allocator<std:" : : (binary_expression "_AllocNode<std" identifier < identifier) : : (binary_expression "allocator<std" identifier < identifier) :) : (labeled_statement "__detail::_Hash_node<gold::Symbol_location,true>>>>\n              (local_3c,local_48,local_40,local_38,uVar2 & 0xffffff,1);" statement_identifier (ERROR "::_Hash_node<gold:" : : (binary_expression "_Hash_node<gold" identifier < identifier) :) : (expression_statement "Symbol_location,true>>>>\n              (local_3c,local_48,local_40,local_38,uVar2 & 0xffffff,1);" (comma_expression "Symbol_location,true>>>>\n              (local_3c,local_48,local_40,local_38,uVar2 & 0xffffff,1)" identifier , (binary_expression "true>>>>\n              (local_3c,local_48,local_40,local_38,uVar2 & 0xffffff,1)" true >> (ERROR ">>" >>) (parenthesized_expression "(local_3c,local_48,local_40,local_38,uVar2 & 0xffffff,1)" ( (comma_expression "local_3c,local_48,local_40,local_38,uVar2 & 0xffffff,1" identifier , (comma_expression "local_48,local_40,local_38,uVar2 & 0xffffff,1" identifier , (comma_expression "local_40,local_38,uVar2 & 0xffffff,1" identifier , (comma_expression "local_38,uVar2 & 0xffffff,1" identifier , (comma_expression "uVar2 & 0xffffff,1" (binary_expression "uVar2 & 0xffffff" identifier & number_literal) , number_literal))))) )))) ;)))))) (expression_statement "iVar5 = *(int *)param_6;" (assignment_expression "iVar5 = *(int *)param_6" identifier = (pointer_expression "*(int *)param_6" * (cast_expression "(int *)param_6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) }))) (expression_statement "iVar5 = (**(code **)(iVar5 + 0x14))(param_6);" (assignment_expression "iVar5 = (**(code **)(iVar5 + 0x14))(param_6)" identifier = (call_expression "(**(code **)(iVar5 + 0x14))(param_6)" (parenthesized_expression "(**(code **)(iVar5 + 0x14))" ( (pointer_expression "**(code **)(iVar5 + 0x14)" * (pointer_expression "*(code **)(iVar5 + 0x14)" * (cast_expression "(code **)(iVar5 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) ))))) )) (argument_list "(param_6)" ( identifier )))) ;) (if_statement "if (iVar5 == 0) {\n    uVar2 = (uint)*(byte *)(*(int *)param_2 + 4);\n    uVar13 = uVar2 & 0xf;\n  }\n  else {\n    uVar2 = (uint)*(byte *)(*(int *)param_2 + 4);\n    uVar13 = *(uint *)(param_1 + 0x28) >> 0x1c;\n  }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar2 = (uint)*(byte *)(*(int *)param_2 + 4);\n    uVar13 = uVar2 & 0xf;\n  }" { (expression_statement "uVar2 = (uint)*(byte *)(*(int *)param_2 + 4);" (assignment_expression "uVar2 = (uint)*(byte *)(*(int *)param_2 + 4)" identifier = (binary_expression "(uint)*(byte *)(*(int *)param_2 + 4)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(*(int *)param_2 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)param_2 + 4)" ( (binary_expression "*(int *)param_2 + 4" (pointer_expression "*(int *)param_2" * (cast_expression "(int *)param_2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ;) (expression_statement "uVar13 = uVar2 & 0xf;" (assignment_expression "uVar13 = uVar2 & 0xf" identifier = (binary_expression "uVar2 & 0xf" identifier & number_literal)) ;) }) (else_clause "else {\n    uVar2 = (uint)*(byte *)(*(int *)param_2 + 4);\n    uVar13 = *(uint *)(param_1 + 0x28) >> 0x1c;\n  }" else (compound_statement "{\n    uVar2 = (uint)*(byte *)(*(int *)param_2 + 4);\n    uVar13 = *(uint *)(param_1 + 0x28) >> 0x1c;\n  }" { (expression_statement "uVar2 = (uint)*(byte *)(*(int *)param_2 + 4);" (assignment_expression "uVar2 = (uint)*(byte *)(*(int *)param_2 + 4)" identifier = (binary_expression "(uint)*(byte *)(*(int *)param_2 + 4)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(*(int *)param_2 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)param_2 + 4)" ( (binary_expression "*(int *)param_2 + 4" (pointer_expression "*(int *)param_2" * (cast_expression "(int *)param_2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ;) (expression_statement "uVar13 = *(uint *)(param_1 + 0x28) >> 0x1c;" (assignment_expression "uVar13 = *(uint *)(param_1 + 0x28) >> 0x1c" identifier = (binary_expression "*(uint *)(param_1 + 0x28) >> 0x1c" (pointer_expression "*(uint *)(param_1 + 0x28)" * (cast_expression "(uint *)(param_1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) >> number_literal)) ;) }))) (expression_statement "uVar6 = FUN_00291650(uVar2 >> 4,*(uint *)(param_6 + 0x2c) >> 0x1f,param_3,param_4);" (assignment_expression "uVar6 = FUN_00291650(uVar2 >> 4,*(uint *)(param_6 + 0x2c) >> 0x1f,param_3,param_4)" identifier = (call_expression "FUN_00291650(uVar2 >> 4,*(uint *)(param_6 + 0x2c) >> 0x1f,param_3,param_4)" identifier (argument_list "(uVar2 >> 4,*(uint *)(param_6 + 0x2c) >> 0x1f,param_3,param_4)" ( (binary_expression "uVar2 >> 4" identifier >> number_literal) , (binary_expression "*(uint *)(param_6 + 0x2c) >> 0x1f" (pointer_expression "*(uint *)(param_6 + 0x2c)" * (cast_expression "(uint *)(param_6 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x2c)" ( (binary_expression "param_6 + 0x2c" identifier + number_literal) )))) >> number_literal) , identifier , identifier )))) ;) (expression_statement "local_3c = *(undefined1 **)(param_1 + 0x3c);" (assignment_expression "local_3c = *(undefined1 **)(param_1 + 0x3c)" identifier = (pointer_expression "*(undefined1 **)(param_1 + 0x3c)" * (cast_expression "(undefined1 **)(param_1 + 0x3c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = *(uint *)(param_1 + 0x38);" (assignment_expression "uVar2 = *(uint *)(param_1 + 0x38)" identifier = (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = should_override(param_1,uVar6,uVar13,0,param_6,&local_60,local_40,param_8);" (assignment_expression "iVar5 = should_override(param_1,uVar6,uVar13,0,param_6,&local_60,local_40,param_8)" identifier = (call_expression "should_override(param_1,uVar6,uVar13,0,param_6,&local_60,local_40,param_8)" identifier (argument_list "(param_1,uVar6,uVar13,0,param_6,&local_60,local_40,param_8)" ( identifier , identifier , identifier , number_literal , identifier , (pointer_expression "&local_60" & identifier) , identifier , identifier )))) ;) (if_statement "if (iVar5 == 0) {\n    iVar5 = *(int *)param_2;\n    if (local_60._0_1_ != '\0') {\n      uVar13 = *(uint *)(iVar5 + 0x10);\n      puVar10 = *(undefined1 **)(iVar5 + 0x14);\n      if ((uVar2 < uVar13) || ((uVar13 == uVar2 && (local_3c < puVar10)))) {\n        *(uint *)(param_1 + 0x38) = uVar13;\n        *(undefined1 **)(param_1 + 0x3c) = puVar10;\n      }\n      uVar13 = *(uint *)(iVar5 + 8);\n      uVar11 = *(uint *)(iVar5 + 0xc);\n      if ((*(uint *)(param_1 + 0x30) < uVar13) ||\n         ((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)))) {\n        *(uint *)(param_1 + 0x30) = uVar13;\n        *(uint *)(param_1 + 0x34) = uVar11;\n      }\n    }\n    if ((local_78._0_1_ != '\0') &&\n       ((-1 < *(int *)(param_1 + 0x2c) || (*(int *)(param_1 + 0x2c) << 1 < 0)))) {\n      param_1[0x2c] =\n           (Sized_symbol)\n           ((byte)param_1[0x2c] & 0x3f | ((int)(uint)*(byte *)(iVar5 + 4) >> 4 == 2) << 6 | 0x80);\n    }\n    bVar7 = *(byte *)(iVar5 + 5);\n    uVar13 = *(uint *)(param_1 + 0x28);\n    if (((bVar7 & 3) != 0) && (((uVar13 & 0xc00000) == 0 || ((bVar7 & 3) < (uVar13 << 8) >> 0x1e))))\n    {\n      uVar13 = uVar13 & 0xff3fffff | (bVar7 & 3) << 0x16;\n      *(uint *)(param_1 + 0x28) = uVar13;\n    }\n  }\n  else {\n    iVar5 = *(int *)(param_1 + 0x28);\n    uVar13 = *(uint *)(param_1 + 0x30);\n    uVar11 = *(uint *)(param_1 + 0x34);\n    override<64,true>(this,param_1,param_2,param_3,param_4,param_6,param_7);\n    if (local_60._0_1_ != '\0') {\n      if ((*(uint *)(param_1 + 0x38) < uVar2) ||\n         ((*(uint *)(param_1 + 0x38) == uVar2 && (*(undefined1 **)(param_1 + 0x3c) < local_3c)))) {\n        *(uint *)(param_1 + 0x38) = uVar2;\n        *(undefined1 **)(param_1 + 0x3c) = local_3c;\n      }\n      if ((*(uint *)(param_1 + 0x30) < uVar13) ||\n         ((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)))) {\n        *(uint *)(param_1 + 0x30) = uVar13;\n        *(uint *)(param_1 + 0x34) = uVar11;\n      }\n    }\n    uVar13 = *(uint *)(param_1 + 0x28);\n    if (local_78._0_1_ != '\0') {\n      if (*(int *)(param_1 + 0x2c) < 0) {\n        if (-1 < *(int *)(param_1 + 0x2c) << 1) goto LAB_002962d0;\n        SVar1 = param_1[0x2c];\n      }\n      else {\n        SVar1 = param_1[0x2c];\n      }\n      param_1[0x2c] =\n           (Sized_symbol)((byte)SVar1 & 0x3f | ((uint)(iVar5 << 4) >> 0x1c == 2) << 6 | 0x80);\n    }\n  }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar5 = *(int *)param_2;\n    if (local_60._0_1_ != '\0') {\n      uVar13 = *(uint *)(iVar5 + 0x10);\n      puVar10 = *(undefined1 **)(iVar5 + 0x14);\n      if ((uVar2 < uVar13) || ((uVar13 == uVar2 && (local_3c < puVar10)))) {\n        *(uint *)(param_1 + 0x38) = uVar13;\n        *(undefined1 **)(param_1 + 0x3c) = puVar10;\n      }\n      uVar13 = *(uint *)(iVar5 + 8);\n      uVar11 = *(uint *)(iVar5 + 0xc);\n      if ((*(uint *)(param_1 + 0x30) < uVar13) ||\n         ((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)))) {\n        *(uint *)(param_1 + 0x30) = uVar13;\n        *(uint *)(param_1 + 0x34) = uVar11;\n      }\n    }\n    if ((local_78._0_1_ != '\0') &&\n       ((-1 < *(int *)(param_1 + 0x2c) || (*(int *)(param_1 + 0x2c) << 1 < 0)))) {\n      param_1[0x2c] =\n           (Sized_symbol)\n           ((byte)param_1[0x2c] & 0x3f | ((int)(uint)*(byte *)(iVar5 + 4) >> 4 == 2) << 6 | 0x80);\n    }\n    bVar7 = *(byte *)(iVar5 + 5);\n    uVar13 = *(uint *)(param_1 + 0x28);\n    if (((bVar7 & 3) != 0) && (((uVar13 & 0xc00000) == 0 || ((bVar7 & 3) < (uVar13 << 8) >> 0x1e))))\n    {\n      uVar13 = uVar13 & 0xff3fffff | (bVar7 & 3) << 0x16;\n      *(uint *)(param_1 + 0x28) = uVar13;\n    }\n  }" { (expression_statement "iVar5 = *(int *)param_2;" (assignment_expression "iVar5 = *(int *)param_2" identifier = (pointer_expression "*(int *)param_2" * (cast_expression "(int *)param_2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (local_60._0_1_ != '\0') {\n      uVar13 = *(uint *)(iVar5 + 0x10);\n      puVar10 = *(undefined1 **)(iVar5 + 0x14);\n      if ((uVar2 < uVar13) || ((uVar13 == uVar2 && (local_3c < puVar10)))) {\n        *(uint *)(param_1 + 0x38) = uVar13;\n        *(undefined1 **)(param_1 + 0x3c) = puVar10;\n      }\n      uVar13 = *(uint *)(iVar5 + 8);\n      uVar11 = *(uint *)(iVar5 + 0xc);\n      if ((*(uint *)(param_1 + 0x30) < uVar13) ||\n         ((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)))) {\n        *(uint *)(param_1 + 0x30) = uVar13;\n        *(uint *)(param_1 + 0x34) = uVar11;\n      }\n    }" if (parenthesized_expression "(local_60._0_1_ != '\0')" ( (binary_expression "local_60._0_1_ != '\0'" (field_expression "local_60._0_1_" identifier . field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar13 = *(uint *)(iVar5 + 0x10);\n      puVar10 = *(undefined1 **)(iVar5 + 0x14);\n      if ((uVar2 < uVar13) || ((uVar13 == uVar2 && (local_3c < puVar10)))) {\n        *(uint *)(param_1 + 0x38) = uVar13;\n        *(undefined1 **)(param_1 + 0x3c) = puVar10;\n      }\n      uVar13 = *(uint *)(iVar5 + 8);\n      uVar11 = *(uint *)(iVar5 + 0xc);\n      if ((*(uint *)(param_1 + 0x30) < uVar13) ||\n         ((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)))) {\n        *(uint *)(param_1 + 0x30) = uVar13;\n        *(uint *)(param_1 + 0x34) = uVar11;\n      }\n    }" { (expression_statement "uVar13 = *(uint *)(iVar5 + 0x10);" (assignment_expression "uVar13 = *(uint *)(iVar5 + 0x10)" identifier = (pointer_expression "*(uint *)(iVar5 + 0x10)" * (cast_expression "(uint *)(iVar5 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "puVar10 = *(undefined1 **)(iVar5 + 0x14);" (assignment_expression "puVar10 = *(undefined1 **)(iVar5 + 0x14)" identifier = (pointer_expression "*(undefined1 **)(iVar5 + 0x14)" * (cast_expression "(undefined1 **)(iVar5 + 0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if ((uVar2 < uVar13) || ((uVar13 == uVar2 && (local_3c < puVar10)))) {\n        *(uint *)(param_1 + 0x38) = uVar13;\n        *(undefined1 **)(param_1 + 0x3c) = puVar10;\n      }" if (parenthesized_expression "((uVar2 < uVar13) || ((uVar13 == uVar2 && (local_3c < puVar10))))" ( (binary_expression "(uVar2 < uVar13) || ((uVar13 == uVar2 && (local_3c < puVar10)))" (parenthesized_expression "(uVar2 < uVar13)" ( (binary_expression "uVar2 < uVar13" identifier < identifier) )) || (parenthesized_expression "((uVar13 == uVar2 && (local_3c < puVar10)))" ( (parenthesized_expression "(uVar13 == uVar2 && (local_3c < puVar10))" ( (binary_expression "uVar13 == uVar2 && (local_3c < puVar10)" (binary_expression "uVar13 == uVar2" identifier == identifier) && (parenthesized_expression "(local_3c < puVar10)" ( (binary_expression "local_3c < puVar10" identifier < identifier) ))) )) ))) )) (compound_statement "{\n        *(uint *)(param_1 + 0x38) = uVar13;\n        *(undefined1 **)(param_1 + 0x3c) = puVar10;\n      }" { (expression_statement "*(uint *)(param_1 + 0x38) = uVar13;" (assignment_expression "*(uint *)(param_1 + 0x38) = uVar13" (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(param_1 + 0x3c) = puVar10;" (assignment_expression "*(undefined1 **)(param_1 + 0x3c) = puVar10" (pointer_expression "*(undefined1 **)(param_1 + 0x3c)" * (cast_expression "(undefined1 **)(param_1 + 0x3c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "uVar13 = *(uint *)(iVar5 + 8);" (assignment_expression "uVar13 = *(uint *)(iVar5 + 8)" identifier = (pointer_expression "*(uint *)(iVar5 + 8)" * (cast_expression "(uint *)(iVar5 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 8)" ( (binary_expression "iVar5 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = *(uint *)(iVar5 + 0xc);" (assignment_expression "uVar11 = *(uint *)(iVar5 + 0xc)" identifier = (pointer_expression "*(uint *)(iVar5 + 0xc)" * (cast_expression "(uint *)(iVar5 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if ((*(uint *)(param_1 + 0x30) < uVar13) ||\n         ((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)))) {\n        *(uint *)(param_1 + 0x30) = uVar13;\n        *(uint *)(param_1 + 0x34) = uVar11;\n      }" if (parenthesized_expression "((*(uint *)(param_1 + 0x30) < uVar13) ||\n         ((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11))))" ( (binary_expression "(*(uint *)(param_1 + 0x30) < uVar13) ||\n         ((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)))" (parenthesized_expression "(*(uint *)(param_1 + 0x30) < uVar13)" ( (binary_expression "*(uint *)(param_1 + 0x30) < uVar13" (pointer_expression "*(uint *)(param_1 + 0x30)" * (cast_expression "(uint *)(param_1 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) < identifier) )) || (parenthesized_expression "((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)))" ( (parenthesized_expression "(*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11))" ( (binary_expression "*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)" (binary_expression "*(uint *)(param_1 + 0x30) == uVar13" (pointer_expression "*(uint *)(param_1 + 0x30)" * (cast_expression "(uint *)(param_1 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) == identifier) && (parenthesized_expression "(*(uint *)(param_1 + 0x34) < uVar11)" ( (binary_expression "*(uint *)(param_1 + 0x34) < uVar11" (pointer_expression "*(uint *)(param_1 + 0x34)" * (cast_expression "(uint *)(param_1 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) )))) < identifier) ))) )) ))) )) (compound_statement "{\n        *(uint *)(param_1 + 0x30) = uVar13;\n        *(uint *)(param_1 + 0x34) = uVar11;\n      }" { (expression_statement "*(uint *)(param_1 + 0x30) = uVar13;" (assignment_expression "*(uint *)(param_1 + 0x30) = uVar13" (pointer_expression "*(uint *)(param_1 + 0x30)" * (cast_expression "(uint *)(param_1 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(param_1 + 0x34) = uVar11;" (assignment_expression "*(uint *)(param_1 + 0x34) = uVar11" (pointer_expression "*(uint *)(param_1 + 0x34)" * (cast_expression "(uint *)(param_1 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) )))) = identifier) ;) })) })) (if_statement "if ((local_78._0_1_ != '\0') &&\n       ((-1 < *(int *)(param_1 + 0x2c) || (*(int *)(param_1 + 0x2c) << 1 < 0)))) {\n      param_1[0x2c] =\n           (Sized_symbol)\n           ((byte)param_1[0x2c] & 0x3f | ((int)(uint)*(byte *)(iVar5 + 4) >> 4 == 2) << 6 | 0x80);\n    }" if (parenthesized_expression "((local_78._0_1_ != '\0') &&\n       ((-1 < *(int *)(param_1 + 0x2c) || (*(int *)(param_1 + 0x2c) << 1 < 0))))" ( (binary_expression "(local_78._0_1_ != '\0') &&\n       ((-1 < *(int *)(param_1 + 0x2c) || (*(int *)(param_1 + 0x2c) << 1 < 0)))" (parenthesized_expression "(local_78._0_1_ != '\0')" ( (binary_expression "local_78._0_1_ != '\0'" (field_expression "local_78._0_1_" identifier . field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "((-1 < *(int *)(param_1 + 0x2c) || (*(int *)(param_1 + 0x2c) << 1 < 0)))" ( (parenthesized_expression "(-1 < *(int *)(param_1 + 0x2c) || (*(int *)(param_1 + 0x2c) << 1 < 0))" ( (binary_expression "-1 < *(int *)(param_1 + 0x2c) || (*(int *)(param_1 + 0x2c) << 1 < 0)" (binary_expression "-1 < *(int *)(param_1 + 0x2c)" number_literal < (pointer_expression "*(int *)(param_1 + 0x2c)" * (cast_expression "(int *)(param_1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) ))))) || (parenthesized_expression "(*(int *)(param_1 + 0x2c) << 1 < 0)" ( (binary_expression "*(int *)(param_1 + 0x2c) << 1 < 0" (binary_expression "*(int *)(param_1 + 0x2c) << 1" (pointer_expression "*(int *)(param_1 + 0x2c)" * (cast_expression "(int *)(param_1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) << number_literal) < number_literal) ))) )) ))) )) (compound_statement "{\n      param_1[0x2c] =\n           (Sized_symbol)\n           ((byte)param_1[0x2c] & 0x3f | ((int)(uint)*(byte *)(iVar5 + 4) >> 4 == 2) << 6 | 0x80);\n    }" { (expression_statement "param_1[0x2c] =\n           (Sized_symbol)\n           ((byte)param_1[0x2c] & 0x3f | ((int)(uint)*(byte *)(iVar5 + 4) >> 4 == 2) << 6 | 0x80);" (assignment_expression "param_1[0x2c] =\n           (Sized_symbol)\n           ((byte)param_1[0x2c] & 0x3f | ((int)(uint)*(byte *)(iVar5 + 4) >> 4 == 2) << 6 | 0x80)" (subscript_expression "param_1[0x2c]" identifier [ number_literal ]) = (call_expression "(Sized_symbol)\n           ((byte)param_1[0x2c] & 0x3f | ((int)(uint)*(byte *)(iVar5 + 4) >> 4 == 2) << 6 | 0x80)" (parenthesized_expression "(Sized_symbol)" ( identifier )) (argument_list "((byte)param_1[0x2c] & 0x3f | ((int)(uint)*(byte *)(iVar5 + 4) >> 4 == 2) << 6 | 0x80)" ( (binary_expression "(byte)param_1[0x2c] & 0x3f | ((int)(uint)*(byte *)(iVar5 + 4) >> 4 == 2) << 6 | 0x80" (binary_expression "(byte)param_1[0x2c] & 0x3f | ((int)(uint)*(byte *)(iVar5 + 4) >> 4 == 2) << 6" (binary_expression "(byte)param_1[0x2c] & 0x3f" (cast_expression "(byte)param_1[0x2c]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0x2c]" identifier [ number_literal ])) & number_literal) | (binary_expression "((int)(uint)*(byte *)(iVar5 + 4) >> 4 == 2) << 6" (parenthesized_expression "((int)(uint)*(byte *)(iVar5 + 4) >> 4 == 2)" ( (binary_expression "(int)(uint)*(byte *)(iVar5 + 4) >> 4 == 2" (binary_expression "(int)(uint)*(byte *)(iVar5 + 4) >> 4" (binary_expression "(int)(uint)*(byte *)(iVar5 + 4)" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)(iVar5 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) )))) >> number_literal) == number_literal) )) << number_literal)) | number_literal) )))) ;) })) (expression_statement "bVar7 = *(byte *)(iVar5 + 5);" (assignment_expression "bVar7 = *(byte *)(iVar5 + 5)" identifier = (pointer_expression "*(byte *)(iVar5 + 5)" * (cast_expression "(byte *)(iVar5 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 5)" ( (binary_expression "iVar5 + 5" identifier + number_literal) ))))) ;) (expression_statement "uVar13 = *(uint *)(param_1 + 0x28);" (assignment_expression "uVar13 = *(uint *)(param_1 + 0x28)" identifier = (pointer_expression "*(uint *)(param_1 + 0x28)" * (cast_expression "(uint *)(param_1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (((bVar7 & 3) != 0) && (((uVar13 & 0xc00000) == 0 || ((bVar7 & 3) < (uVar13 << 8) >> 0x1e))))\n    {\n      uVar13 = uVar13 & 0xff3fffff | (bVar7 & 3) << 0x16;\n      *(uint *)(param_1 + 0x28) = uVar13;\n    }" if (parenthesized_expression "(((bVar7 & 3) != 0) && (((uVar13 & 0xc00000) == 0 || ((bVar7 & 3) < (uVar13 << 8) >> 0x1e))))" ( (binary_expression "((bVar7 & 3) != 0) && (((uVar13 & 0xc00000) == 0 || ((bVar7 & 3) < (uVar13 << 8) >> 0x1e)))" (parenthesized_expression "((bVar7 & 3) != 0)" ( (binary_expression "(bVar7 & 3) != 0" (parenthesized_expression "(bVar7 & 3)" ( (binary_expression "bVar7 & 3" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(((uVar13 & 0xc00000) == 0 || ((bVar7 & 3) < (uVar13 << 8) >> 0x1e)))" ( (parenthesized_expression "((uVar13 & 0xc00000) == 0 || ((bVar7 & 3) < (uVar13 << 8) >> 0x1e))" ( (binary_expression "(uVar13 & 0xc00000) == 0 || ((bVar7 & 3) < (uVar13 << 8) >> 0x1e)" (binary_expression "(uVar13 & 0xc00000) == 0" (parenthesized_expression "(uVar13 & 0xc00000)" ( (binary_expression "uVar13 & 0xc00000" identifier & number_literal) )) == number_literal) || (parenthesized_expression "((bVar7 & 3) < (uVar13 << 8) >> 0x1e)" ( (binary_expression "(bVar7 & 3) < (uVar13 << 8) >> 0x1e" (parenthesized_expression "(bVar7 & 3)" ( (binary_expression "bVar7 & 3" identifier & number_literal) )) < (binary_expression "(uVar13 << 8) >> 0x1e" (parenthesized_expression "(uVar13 << 8)" ( (binary_expression "uVar13 << 8" identifier << number_literal) )) >> number_literal)) ))) )) ))) )) (compound_statement "{\n      uVar13 = uVar13 & 0xff3fffff | (bVar7 & 3) << 0x16;\n      *(uint *)(param_1 + 0x28) = uVar13;\n    }" { (expression_statement "uVar13 = uVar13 & 0xff3fffff | (bVar7 & 3) << 0x16;" (assignment_expression "uVar13 = uVar13 & 0xff3fffff | (bVar7 & 3) << 0x16" identifier = (binary_expression "uVar13 & 0xff3fffff | (bVar7 & 3) << 0x16" (binary_expression "uVar13 & 0xff3fffff" identifier & number_literal) | (binary_expression "(bVar7 & 3) << 0x16" (parenthesized_expression "(bVar7 & 3)" ( (binary_expression "bVar7 & 3" identifier & number_literal) )) << number_literal))) ;) (expression_statement "*(uint *)(param_1 + 0x28) = uVar13;" (assignment_expression "*(uint *)(param_1 + 0x28) = uVar13" (pointer_expression "*(uint *)(param_1 + 0x28)" * (cast_expression "(uint *)(param_1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = identifier) ;) })) }) (else_clause "else {\n    iVar5 = *(int *)(param_1 + 0x28);\n    uVar13 = *(uint *)(param_1 + 0x30);\n    uVar11 = *(uint *)(param_1 + 0x34);\n    override<64,true>(this,param_1,param_2,param_3,param_4,param_6,param_7);\n    if (local_60._0_1_ != '\0') {\n      if ((*(uint *)(param_1 + 0x38) < uVar2) ||\n         ((*(uint *)(param_1 + 0x38) == uVar2 && (*(undefined1 **)(param_1 + 0x3c) < local_3c)))) {\n        *(uint *)(param_1 + 0x38) = uVar2;\n        *(undefined1 **)(param_1 + 0x3c) = local_3c;\n      }\n      if ((*(uint *)(param_1 + 0x30) < uVar13) ||\n         ((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)))) {\n        *(uint *)(param_1 + 0x30) = uVar13;\n        *(uint *)(param_1 + 0x34) = uVar11;\n      }\n    }\n    uVar13 = *(uint *)(param_1 + 0x28);\n    if (local_78._0_1_ != '\0') {\n      if (*(int *)(param_1 + 0x2c) < 0) {\n        if (-1 < *(int *)(param_1 + 0x2c) << 1) goto LAB_002962d0;\n        SVar1 = param_1[0x2c];\n      }\n      else {\n        SVar1 = param_1[0x2c];\n      }\n      param_1[0x2c] =\n           (Sized_symbol)((byte)SVar1 & 0x3f | ((uint)(iVar5 << 4) >> 0x1c == 2) << 6 | 0x80);\n    }\n  }" else (compound_statement "{\n    iVar5 = *(int *)(param_1 + 0x28);\n    uVar13 = *(uint *)(param_1 + 0x30);\n    uVar11 = *(uint *)(param_1 + 0x34);\n    override<64,true>(this,param_1,param_2,param_3,param_4,param_6,param_7);\n    if (local_60._0_1_ != '\0') {\n      if ((*(uint *)(param_1 + 0x38) < uVar2) ||\n         ((*(uint *)(param_1 + 0x38) == uVar2 && (*(undefined1 **)(param_1 + 0x3c) < local_3c)))) {\n        *(uint *)(param_1 + 0x38) = uVar2;\n        *(undefined1 **)(param_1 + 0x3c) = local_3c;\n      }\n      if ((*(uint *)(param_1 + 0x30) < uVar13) ||\n         ((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)))) {\n        *(uint *)(param_1 + 0x30) = uVar13;\n        *(uint *)(param_1 + 0x34) = uVar11;\n      }\n    }\n    uVar13 = *(uint *)(param_1 + 0x28);\n    if (local_78._0_1_ != '\0') {\n      if (*(int *)(param_1 + 0x2c) < 0) {\n        if (-1 < *(int *)(param_1 + 0x2c) << 1) goto LAB_002962d0;\n        SVar1 = param_1[0x2c];\n      }\n      else {\n        SVar1 = param_1[0x2c];\n      }\n      param_1[0x2c] =\n           (Sized_symbol)((byte)SVar1 & 0x3f | ((uint)(iVar5 << 4) >> 0x1c == 2) << 6 | 0x80);\n    }\n  }" { (expression_statement "iVar5 = *(int *)(param_1 + 0x28);" (assignment_expression "iVar5 = *(int *)(param_1 + 0x28)" identifier = (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar13 = *(uint *)(param_1 + 0x30);" (assignment_expression "uVar13 = *(uint *)(param_1 + 0x30)" identifier = (pointer_expression "*(uint *)(param_1 + 0x30)" * (cast_expression "(uint *)(param_1 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = *(uint *)(param_1 + 0x34);" (assignment_expression "uVar11 = *(uint *)(param_1 + 0x34)" identifier = (pointer_expression "*(uint *)(param_1 + 0x34)" * (cast_expression "(uint *)(param_1 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "override<64,true>(this,param_1,param_2,param_3,param_4,param_6,param_7);" (comma_expression "override<64,true>(this,param_1,param_2,param_3,param_4,param_6,param_7)" (binary_expression "override<64" identifier < number_literal) , (binary_expression "true>(this,param_1,param_2,param_3,param_4,param_6,param_7)" true > (parenthesized_expression "(this,param_1,param_2,param_3,param_4,param_6,param_7)" ( (comma_expression "this,param_1,param_2,param_3,param_4,param_6,param_7" identifier , (comma_expression "param_1,param_2,param_3,param_4,param_6,param_7" identifier , (comma_expression "param_2,param_3,param_4,param_6,param_7" identifier , (comma_expression "param_3,param_4,param_6,param_7" identifier , (comma_expression "param_4,param_6,param_7" identifier , (comma_expression "param_6,param_7" identifier , identifier)))))) )))) ;) (if_statement "if (local_60._0_1_ != '\0') {\n      if ((*(uint *)(param_1 + 0x38) < uVar2) ||\n         ((*(uint *)(param_1 + 0x38) == uVar2 && (*(undefined1 **)(param_1 + 0x3c) < local_3c)))) {\n        *(uint *)(param_1 + 0x38) = uVar2;\n        *(undefined1 **)(param_1 + 0x3c) = local_3c;\n      }\n      if ((*(uint *)(param_1 + 0x30) < uVar13) ||\n         ((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)))) {\n        *(uint *)(param_1 + 0x30) = uVar13;\n        *(uint *)(param_1 + 0x34) = uVar11;\n      }\n    }" if (parenthesized_expression "(local_60._0_1_ != '\0')" ( (binary_expression "local_60._0_1_ != '\0'" (field_expression "local_60._0_1_" identifier . field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if ((*(uint *)(param_1 + 0x38) < uVar2) ||\n         ((*(uint *)(param_1 + 0x38) == uVar2 && (*(undefined1 **)(param_1 + 0x3c) < local_3c)))) {\n        *(uint *)(param_1 + 0x38) = uVar2;\n        *(undefined1 **)(param_1 + 0x3c) = local_3c;\n      }\n      if ((*(uint *)(param_1 + 0x30) < uVar13) ||\n         ((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)))) {\n        *(uint *)(param_1 + 0x30) = uVar13;\n        *(uint *)(param_1 + 0x34) = uVar11;\n      }\n    }" { (if_statement "if ((*(uint *)(param_1 + 0x38) < uVar2) ||\n         ((*(uint *)(param_1 + 0x38) == uVar2 && (*(undefined1 **)(param_1 + 0x3c) < local_3c)))) {\n        *(uint *)(param_1 + 0x38) = uVar2;\n        *(undefined1 **)(param_1 + 0x3c) = local_3c;\n      }" if (parenthesized_expression "((*(uint *)(param_1 + 0x38) < uVar2) ||\n         ((*(uint *)(param_1 + 0x38) == uVar2 && (*(undefined1 **)(param_1 + 0x3c) < local_3c))))" ( (binary_expression "(*(uint *)(param_1 + 0x38) < uVar2) ||\n         ((*(uint *)(param_1 + 0x38) == uVar2 && (*(undefined1 **)(param_1 + 0x3c) < local_3c)))" (parenthesized_expression "(*(uint *)(param_1 + 0x38) < uVar2)" ( (binary_expression "*(uint *)(param_1 + 0x38) < uVar2" (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) < identifier) )) || (parenthesized_expression "((*(uint *)(param_1 + 0x38) == uVar2 && (*(undefined1 **)(param_1 + 0x3c) < local_3c)))" ( (parenthesized_expression "(*(uint *)(param_1 + 0x38) == uVar2 && (*(undefined1 **)(param_1 + 0x3c) < local_3c))" ( (binary_expression "*(uint *)(param_1 + 0x38) == uVar2 && (*(undefined1 **)(param_1 + 0x3c) < local_3c)" (binary_expression "*(uint *)(param_1 + 0x38) == uVar2" (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) == identifier) && (parenthesized_expression "(*(undefined1 **)(param_1 + 0x3c) < local_3c)" ( (binary_expression "*(undefined1 **)(param_1 + 0x3c) < local_3c" (pointer_expression "*(undefined1 **)(param_1 + 0x3c)" * (cast_expression "(undefined1 **)(param_1 + 0x3c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) )))) < identifier) ))) )) ))) )) (compound_statement "{\n        *(uint *)(param_1 + 0x38) = uVar2;\n        *(undefined1 **)(param_1 + 0x3c) = local_3c;\n      }" { (expression_statement "*(uint *)(param_1 + 0x38) = uVar2;" (assignment_expression "*(uint *)(param_1 + 0x38) = uVar2" (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(param_1 + 0x3c) = local_3c;" (assignment_expression "*(undefined1 **)(param_1 + 0x3c) = local_3c" (pointer_expression "*(undefined1 **)(param_1 + 0x3c)" * (cast_expression "(undefined1 **)(param_1 + 0x3c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if ((*(uint *)(param_1 + 0x30) < uVar13) ||\n         ((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)))) {\n        *(uint *)(param_1 + 0x30) = uVar13;\n        *(uint *)(param_1 + 0x34) = uVar11;\n      }" if (parenthesized_expression "((*(uint *)(param_1 + 0x30) < uVar13) ||\n         ((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11))))" ( (binary_expression "(*(uint *)(param_1 + 0x30) < uVar13) ||\n         ((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)))" (parenthesized_expression "(*(uint *)(param_1 + 0x30) < uVar13)" ( (binary_expression "*(uint *)(param_1 + 0x30) < uVar13" (pointer_expression "*(uint *)(param_1 + 0x30)" * (cast_expression "(uint *)(param_1 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) < identifier) )) || (parenthesized_expression "((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)))" ( (parenthesized_expression "(*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11))" ( (binary_expression "*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)" (binary_expression "*(uint *)(param_1 + 0x30) == uVar13" (pointer_expression "*(uint *)(param_1 + 0x30)" * (cast_expression "(uint *)(param_1 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) == identifier) && (parenthesized_expression "(*(uint *)(param_1 + 0x34) < uVar11)" ( (binary_expression "*(uint *)(param_1 + 0x34) < uVar11" (pointer_expression "*(uint *)(param_1 + 0x34)" * (cast_expression "(uint *)(param_1 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) )))) < identifier) ))) )) ))) )) (compound_statement "{\n        *(uint *)(param_1 + 0x30) = uVar13;\n        *(uint *)(param_1 + 0x34) = uVar11;\n      }" { (expression_statement "*(uint *)(param_1 + 0x30) = uVar13;" (assignment_expression "*(uint *)(param_1 + 0x30) = uVar13" (pointer_expression "*(uint *)(param_1 + 0x30)" * (cast_expression "(uint *)(param_1 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(param_1 + 0x34) = uVar11;" (assignment_expression "*(uint *)(param_1 + 0x34) = uVar11" (pointer_expression "*(uint *)(param_1 + 0x34)" * (cast_expression "(uint *)(param_1 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) )))) = identifier) ;) })) })) (expression_statement "uVar13 = *(uint *)(param_1 + 0x28);" (assignment_expression "uVar13 = *(uint *)(param_1 + 0x28)" identifier = (pointer_expression "*(uint *)(param_1 + 0x28)" * (cast_expression "(uint *)(param_1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (local_78._0_1_ != '\0') {\n      if (*(int *)(param_1 + 0x2c) < 0) {\n        if (-1 < *(int *)(param_1 + 0x2c) << 1) goto LAB_002962d0;\n        SVar1 = param_1[0x2c];\n      }\n      else {\n        SVar1 = param_1[0x2c];\n      }\n      param_1[0x2c] =\n           (Sized_symbol)((byte)SVar1 & 0x3f | ((uint)(iVar5 << 4) >> 0x1c == 2) << 6 | 0x80);\n    }" if (parenthesized_expression "(local_78._0_1_ != '\0')" ( (binary_expression "local_78._0_1_ != '\0'" (field_expression "local_78._0_1_" identifier . field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if (*(int *)(param_1 + 0x2c) < 0) {\n        if (-1 < *(int *)(param_1 + 0x2c) << 1) goto LAB_002962d0;\n        SVar1 = param_1[0x2c];\n      }\n      else {\n        SVar1 = param_1[0x2c];\n      }\n      param_1[0x2c] =\n           (Sized_symbol)((byte)SVar1 & 0x3f | ((uint)(iVar5 << 4) >> 0x1c == 2) << 6 | 0x80);\n    }" { (if_statement "if (*(int *)(param_1 + 0x2c) < 0) {\n        if (-1 < *(int *)(param_1 + 0x2c) << 1) goto LAB_002962d0;\n        SVar1 = param_1[0x2c];\n      }\n      else {\n        SVar1 = param_1[0x2c];\n      }" if (parenthesized_expression "(*(int *)(param_1 + 0x2c) < 0)" ( (binary_expression "*(int *)(param_1 + 0x2c) < 0" (pointer_expression "*(int *)(param_1 + 0x2c)" * (cast_expression "(int *)(param_1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n        if (-1 < *(int *)(param_1 + 0x2c) << 1) goto LAB_002962d0;\n        SVar1 = param_1[0x2c];\n      }" { (if_statement "if (-1 < *(int *)(param_1 + 0x2c) << 1) goto LAB_002962d0;" if (parenthesized_expression "(-1 < *(int *)(param_1 + 0x2c) << 1)" ( (binary_expression "-1 < *(int *)(param_1 + 0x2c) << 1" number_literal < (binary_expression "*(int *)(param_1 + 0x2c) << 1" (pointer_expression "*(int *)(param_1 + 0x2c)" * (cast_expression "(int *)(param_1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) << number_literal)) )) (goto_statement "goto LAB_002962d0;" goto statement_identifier ;)) (expression_statement "SVar1 = param_1[0x2c];" (assignment_expression "SVar1 = param_1[0x2c]" identifier = (subscript_expression "param_1[0x2c]" identifier [ number_literal ])) ;) }) (else_clause "else {\n        SVar1 = param_1[0x2c];\n      }" else (compound_statement "{\n        SVar1 = param_1[0x2c];\n      }" { (expression_statement "SVar1 = param_1[0x2c];" (assignment_expression "SVar1 = param_1[0x2c]" identifier = (subscript_expression "param_1[0x2c]" identifier [ number_literal ])) ;) }))) (expression_statement "param_1[0x2c] =\n           (Sized_symbol)((byte)SVar1 & 0x3f | ((uint)(iVar5 << 4) >> 0x1c == 2) << 6 | 0x80);" (assignment_expression "param_1[0x2c] =\n           (Sized_symbol)((byte)SVar1 & 0x3f | ((uint)(iVar5 << 4) >> 0x1c == 2) << 6 | 0x80)" (subscript_expression "param_1[0x2c]" identifier [ number_literal ]) = (call_expression "(Sized_symbol)((byte)SVar1 & 0x3f | ((uint)(iVar5 << 4) >> 0x1c == 2) << 6 | 0x80)" (parenthesized_expression "(Sized_symbol)" ( identifier )) (argument_list "((byte)SVar1 & 0x3f | ((uint)(iVar5 << 4) >> 0x1c == 2) << 6 | 0x80)" ( (binary_expression "(byte)SVar1 & 0x3f | ((uint)(iVar5 << 4) >> 0x1c == 2) << 6 | 0x80" (binary_expression "(byte)SVar1 & 0x3f | ((uint)(iVar5 << 4) >> 0x1c == 2) << 6" (binary_expression "(byte)SVar1 & 0x3f" (cast_expression "(byte)SVar1" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) | (binary_expression "((uint)(iVar5 << 4) >> 0x1c == 2) << 6" (parenthesized_expression "((uint)(iVar5 << 4) >> 0x1c == 2)" ( (binary_expression "(uint)(iVar5 << 4) >> 0x1c == 2" (binary_expression "(uint)(iVar5 << 4) >> 0x1c" (call_expression "(uint)(iVar5 << 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar5 << 4)" ( (binary_expression "iVar5 << 4" identifier << number_literal) ))) >> number_literal) == number_literal) )) << number_literal)) | number_literal) )))) ;) })) }))) (labeled_statement "LAB_002962d0:\n  if (((((uVar13 & 0xe000) == 0) && (iVar5 = *(int *)(param_1 + 8), *(int *)(iVar5 + 0x2c) < 0)) &&\n      (*(int *)(param_1 + 0x28) << 0x17 < 0)) && (-1 < *(int *)(param_1 + 0x2c) << 1)) {\n    *(byte *)(iVar5 + 0x2c) = *(byte *)(iVar5 + 0x2c) & 0xbf | 0x40;\n  }" statement_identifier : (if_statement "if (((((uVar13 & 0xe000) == 0) && (iVar5 = *(int *)(param_1 + 8), *(int *)(iVar5 + 0x2c) < 0)) &&\n      (*(int *)(param_1 + 0x28) << 0x17 < 0)) && (-1 < *(int *)(param_1 + 0x2c) << 1)) {\n    *(byte *)(iVar5 + 0x2c) = *(byte *)(iVar5 + 0x2c) & 0xbf | 0x40;\n  }" if (parenthesized_expression "(((((uVar13 & 0xe000) == 0) && (iVar5 = *(int *)(param_1 + 8), *(int *)(iVar5 + 0x2c) < 0)) &&\n      (*(int *)(param_1 + 0x28) << 0x17 < 0)) && (-1 < *(int *)(param_1 + 0x2c) << 1))" ( (binary_expression "((((uVar13 & 0xe000) == 0) && (iVar5 = *(int *)(param_1 + 8), *(int *)(iVar5 + 0x2c) < 0)) &&\n      (*(int *)(param_1 + 0x28) << 0x17 < 0)) && (-1 < *(int *)(param_1 + 0x2c) << 1)" (parenthesized_expression "((((uVar13 & 0xe000) == 0) && (iVar5 = *(int *)(param_1 + 8), *(int *)(iVar5 + 0x2c) < 0)) &&\n      (*(int *)(param_1 + 0x28) << 0x17 < 0))" ( (binary_expression "(((uVar13 & 0xe000) == 0) && (iVar5 = *(int *)(param_1 + 8), *(int *)(iVar5 + 0x2c) < 0)) &&\n      (*(int *)(param_1 + 0x28) << 0x17 < 0)" (parenthesized_expression "(((uVar13 & 0xe000) == 0) && (iVar5 = *(int *)(param_1 + 8), *(int *)(iVar5 + 0x2c) < 0))" ( (binary_expression "((uVar13 & 0xe000) == 0) && (iVar5 = *(int *)(param_1 + 8), *(int *)(iVar5 + 0x2c) < 0)" (parenthesized_expression "((uVar13 & 0xe000) == 0)" ( (binary_expression "(uVar13 & 0xe000) == 0" (parenthesized_expression "(uVar13 & 0xe000)" ( (binary_expression "uVar13 & 0xe000" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(iVar5 = *(int *)(param_1 + 8), *(int *)(iVar5 + 0x2c) < 0)" ( (comma_expression "iVar5 = *(int *)(param_1 + 8), *(int *)(iVar5 + 0x2c) < 0" (assignment_expression "iVar5 = *(int *)(param_1 + 8)" identifier = (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) , (binary_expression "*(int *)(iVar5 + 0x2c) < 0" (pointer_expression "*(int *)(iVar5 + 0x2c)" * (cast_expression "(int *)(iVar5 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2c)" ( (binary_expression "iVar5 + 0x2c" identifier + number_literal) )))) < number_literal)) ))) )) && (parenthesized_expression "(*(int *)(param_1 + 0x28) << 0x17 < 0)" ( (binary_expression "*(int *)(param_1 + 0x28) << 0x17 < 0" (binary_expression "*(int *)(param_1 + 0x28) << 0x17" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) << number_literal) < number_literal) ))) )) && (parenthesized_expression "(-1 < *(int *)(param_1 + 0x2c) << 1)" ( (binary_expression "-1 < *(int *)(param_1 + 0x2c) << 1" number_literal < (binary_expression "*(int *)(param_1 + 0x2c) << 1" (pointer_expression "*(int *)(param_1 + 0x2c)" * (cast_expression "(int *)(param_1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) << number_literal)) ))) )) (compound_statement "{\n    *(byte *)(iVar5 + 0x2c) = *(byte *)(iVar5 + 0x2c) & 0xbf | 0x40;\n  }" { (expression_statement "*(byte *)(iVar5 + 0x2c) = *(byte *)(iVar5 + 0x2c) & 0xbf | 0x40;" (assignment_expression "*(byte *)(iVar5 + 0x2c) = *(byte *)(iVar5 + 0x2c) & 0xbf | 0x40" (pointer_expression "*(byte *)(iVar5 + 0x2c)" * (cast_expression "(byte *)(iVar5 + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2c)" ( (binary_expression "iVar5 + 0x2c" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar5 + 0x2c) & 0xbf | 0x40" (binary_expression "*(byte *)(iVar5 + 0x2c) & 0xbf" (pointer_expression "*(byte *)(iVar5 + 0x2c)" * (cast_expression "(byte *)(iVar5 + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2c)" ( (binary_expression "iVar5 + 0x2c" identifier + number_literal) )))) & number_literal) | number_literal)) ;) }))) (if_statement "if (local_60._0_1_ != '\0') {\n    if (*(int *)(*(int *)puVar9 + 8) == 0) {\nLAB_002963c4:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + 0x3c1c);\n      return;\n    }\n    if (*(char *)(*(int *)(*(int *)puVar9 + 8) + 0x43f5) != '\0') {\n      uVar13 = *(uint *)(*(int *)param_2 + 0x10);\n      puVar10 = *(undefined1 **)(*(int *)param_2 + 0x14);\n      if ((uVar13 < uVar2) || ((uVar2 == uVar13 && (puVar10 < local_3c)))) {\n        puVar9 = PTR_DAT_0043226c + 0x3c88;\n      }\n      else if ((uVar2 < uVar13) || ((uVar13 == uVar2 && (local_3c < puVar10)))) {\n        puVar9 = PTR_DAT_0043226c + 0x3cb4;\n      }\n      else {\n        puVar9 = PTR_DAT_0043226c + 0x3ce0;\n      }\n      uVar6 = (*(code *)PTR_gettext_00436818)(puVar9);\n      report_resolve_problem(0,uVar6,param_1,0,param_6);\n      return;\n    }\n  }" if (parenthesized_expression "(local_60._0_1_ != '\0')" ( (binary_expression "local_60._0_1_ != '\0'" (field_expression "local_60._0_1_" identifier . field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    if (*(int *)(*(int *)puVar9 + 8) == 0) {\nLAB_002963c4:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + 0x3c1c);\n      return;\n    }\n    if (*(char *)(*(int *)(*(int *)puVar9 + 8) + 0x43f5) != '\0') {\n      uVar13 = *(uint *)(*(int *)param_2 + 0x10);\n      puVar10 = *(undefined1 **)(*(int *)param_2 + 0x14);\n      if ((uVar13 < uVar2) || ((uVar2 == uVar13 && (puVar10 < local_3c)))) {\n        puVar9 = PTR_DAT_0043226c + 0x3c88;\n      }\n      else if ((uVar2 < uVar13) || ((uVar13 == uVar2 && (local_3c < puVar10)))) {\n        puVar9 = PTR_DAT_0043226c + 0x3cb4;\n      }\n      else {\n        puVar9 = PTR_DAT_0043226c + 0x3ce0;\n      }\n      uVar6 = (*(code *)PTR_gettext_00436818)(puVar9);\n      report_resolve_problem(0,uVar6,param_1,0,param_6);\n      return;\n    }\n  }" { (if_statement "if (*(int *)(*(int *)puVar9 + 8) == 0) {\nLAB_002963c4:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + 0x3c1c);\n      return;\n    }" if (parenthesized_expression "(*(int *)(*(int *)puVar9 + 8) == 0)" ( (binary_expression "*(int *)(*(int *)puVar9 + 8) == 0" (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) )))) == number_literal) )) (compound_statement "{\nLAB_002963c4:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + 0x3c1c);\n      return;\n    }" { (labeled_statement "LAB_002963c4:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + 0x3c1c);" statement_identifier : (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + 0x3c1c);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + 0x3c1c)" (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 + 0x3c1c)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5cec" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0043226c + 0x3c1c" identifier + number_literal) ))) ;)) (return_statement "return;" return ;) })) (if_statement "if (*(char *)(*(int *)(*(int *)puVar9 + 8) + 0x43f5) != '\0') {\n      uVar13 = *(uint *)(*(int *)param_2 + 0x10);\n      puVar10 = *(undefined1 **)(*(int *)param_2 + 0x14);\n      if ((uVar13 < uVar2) || ((uVar2 == uVar13 && (puVar10 < local_3c)))) {\n        puVar9 = PTR_DAT_0043226c + 0x3c88;\n      }\n      else if ((uVar2 < uVar13) || ((uVar13 == uVar2 && (local_3c < puVar10)))) {\n        puVar9 = PTR_DAT_0043226c + 0x3cb4;\n      }\n      else {\n        puVar9 = PTR_DAT_0043226c + 0x3ce0;\n      }\n      uVar6 = (*(code *)PTR_gettext_00436818)(puVar9);\n      report_resolve_problem(0,uVar6,param_1,0,param_6);\n      return;\n    }" if (parenthesized_expression "(*(char *)(*(int *)(*(int *)puVar9 + 8) + 0x43f5) != '\0')" ( (binary_expression "*(char *)(*(int *)(*(int *)puVar9 + 8) + 0x43f5) != '\0'" (pointer_expression "*(char *)(*(int *)(*(int *)puVar9 + 8) + 0x43f5)" * (cast_expression "(char *)(*(int *)(*(int *)puVar9 + 8) + 0x43f5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)puVar9 + 8) + 0x43f5)" ( (binary_expression "*(int *)(*(int *)puVar9 + 8) + 0x43f5" (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) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar13 = *(uint *)(*(int *)param_2 + 0x10);\n      puVar10 = *(undefined1 **)(*(int *)param_2 + 0x14);\n      if ((uVar13 < uVar2) || ((uVar2 == uVar13 && (puVar10 < local_3c)))) {\n        puVar9 = PTR_DAT_0043226c + 0x3c88;\n      }\n      else if ((uVar2 < uVar13) || ((uVar13 == uVar2 && (local_3c < puVar10)))) {\n        puVar9 = PTR_DAT_0043226c + 0x3cb4;\n      }\n      else {\n        puVar9 = PTR_DAT_0043226c + 0x3ce0;\n      }\n      uVar6 = (*(code *)PTR_gettext_00436818)(puVar9);\n      report_resolve_problem(0,uVar6,param_1,0,param_6);\n      return;\n    }" { (expression_statement "uVar13 = *(uint *)(*(int *)param_2 + 0x10);" (assignment_expression "uVar13 = *(uint *)(*(int *)param_2 + 0x10)" identifier = (pointer_expression "*(uint *)(*(int *)param_2 + 0x10)" * (cast_expression "(uint *)(*(int *)param_2 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)param_2 + 0x10)" ( (binary_expression "*(int *)param_2 + 0x10" (pointer_expression "*(int *)param_2" * (cast_expression "(int *)param_2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ;) (expression_statement "puVar10 = *(undefined1 **)(*(int *)param_2 + 0x14);" (assignment_expression "puVar10 = *(undefined1 **)(*(int *)param_2 + 0x14)" identifier = (pointer_expression "*(undefined1 **)(*(int *)param_2 + 0x14)" * (cast_expression "(undefined1 **)(*(int *)param_2 + 0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)param_2 + 0x14)" ( (binary_expression "*(int *)param_2 + 0x14" (pointer_expression "*(int *)param_2" * (cast_expression "(int *)param_2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ;) (if_statement "if ((uVar13 < uVar2) || ((uVar2 == uVar13 && (puVar10 < local_3c)))) {\n        puVar9 = PTR_DAT_0043226c + 0x3c88;\n      }\n      else if ((uVar2 < uVar13) || ((uVar13 == uVar2 && (local_3c < puVar10)))) {\n        puVar9 = PTR_DAT_0043226c + 0x3cb4;\n      }\n      else {\n        puVar9 = PTR_DAT_0043226c + 0x3ce0;\n      }" if (parenthesized_expression "((uVar13 < uVar2) || ((uVar2 == uVar13 && (puVar10 < local_3c))))" ( (binary_expression "(uVar13 < uVar2) || ((uVar2 == uVar13 && (puVar10 < local_3c)))" (parenthesized_expression "(uVar13 < uVar2)" ( (binary_expression "uVar13 < uVar2" identifier < identifier) )) || (parenthesized_expression "((uVar2 == uVar13 && (puVar10 < local_3c)))" ( (parenthesized_expression "(uVar2 == uVar13 && (puVar10 < local_3c))" ( (binary_expression "uVar2 == uVar13 && (puVar10 < local_3c)" (binary_expression "uVar2 == uVar13" identifier == identifier) && (parenthesized_expression "(puVar10 < local_3c)" ( (binary_expression "puVar10 < local_3c" identifier < identifier) ))) )) ))) )) (compound_statement "{\n        puVar9 = PTR_DAT_0043226c + 0x3c88;\n      }" { (expression_statement "puVar9 = PTR_DAT_0043226c + 0x3c88;" (assignment_expression "puVar9 = PTR_DAT_0043226c + 0x3c88" identifier = (binary_expression "PTR_DAT_0043226c + 0x3c88" identifier + number_literal)) ;) }) (else_clause "else if ((uVar2 < uVar13) || ((uVar13 == uVar2 && (local_3c < puVar10)))) {\n        puVar9 = PTR_DAT_0043226c + 0x3cb4;\n      }\n      else {\n        puVar9 = PTR_DAT_0043226c + 0x3ce0;\n      }" else (if_statement "if ((uVar2 < uVar13) || ((uVar13 == uVar2 && (local_3c < puVar10)))) {\n        puVar9 = PTR_DAT_0043226c + 0x3cb4;\n      }\n      else {\n        puVar9 = PTR_DAT_0043226c + 0x3ce0;\n      }" if (parenthesized_expression "((uVar2 < uVar13) || ((uVar13 == uVar2 && (local_3c < puVar10))))" ( (binary_expression "(uVar2 < uVar13) || ((uVar13 == uVar2 && (local_3c < puVar10)))" (parenthesized_expression "(uVar2 < uVar13)" ( (binary_expression "uVar2 < uVar13" identifier < identifier) )) || (parenthesized_expression "((uVar13 == uVar2 && (local_3c < puVar10)))" ( (parenthesized_expression "(uVar13 == uVar2 && (local_3c < puVar10))" ( (binary_expression "uVar13 == uVar2 && (local_3c < puVar10)" (binary_expression "uVar13 == uVar2" identifier == identifier) && (parenthesized_expression "(local_3c < puVar10)" ( (binary_expression "local_3c < puVar10" identifier < identifier) ))) )) ))) )) (compound_statement "{\n        puVar9 = PTR_DAT_0043226c + 0x3cb4;\n      }" { (expression_statement "puVar9 = PTR_DAT_0043226c + 0x3cb4;" (assignment_expression "puVar9 = PTR_DAT_0043226c + 0x3cb4" identifier = (binary_expression "PTR_DAT_0043226c + 0x3cb4" identifier + number_literal)) ;) }) (else_clause "else {\n        puVar9 = PTR_DAT_0043226c + 0x3ce0;\n      }" else (compound_statement "{\n        puVar9 = PTR_DAT_0043226c + 0x3ce0;\n      }" { (expression_statement "puVar9 = PTR_DAT_0043226c + 0x3ce0;" (assignment_expression "puVar9 = PTR_DAT_0043226c + 0x3ce0" identifier = (binary_expression "PTR_DAT_0043226c + 0x3ce0" identifier + number_literal)) ;) }))))) (expression_statement "uVar6 = (*(code *)PTR_gettext_00436818)(puVar9);" (assignment_expression "uVar6 = (*(code *)PTR_gettext_00436818)(puVar9)" identifier = (call_expression "(*(code *)PTR_gettext_00436818)(puVar9)" (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 "(puVar9)" ( identifier )))) ;) (expression_statement "report_resolve_problem(0,uVar6,param_1,0,param_6);" (call_expression "report_resolve_problem(0,uVar6,param_1,0,param_6)" identifier (argument_list "(0,uVar6,param_1,0,param_6)" ( number_literal , identifier , identifier , number_literal , identifier ))) ;) (return_statement "return;" return ;) })) })) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */\n/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */\n/* WARNING: Enum "STB": Some values do not have unique names */\n/* WARNING: Enum "STT": Some values do not have unique names */\n/* DWARF original name: resolve<64, true>\n   DWARF original prototype: void resolve<64,_true>(Symbol_table * this, Sized_symbol<64> * to,\n   Sym<64,_true> * sym, uint st_shndx, bool is_ordinary, uint orig_st_shndx, Object * object, char *\n   version, bool is_default_version) */\n\nvoid __thiscall\ngold::Symbol_table::resolve<64,_true>\n          (Symbol_table *this,Sized_symbol<64> *to,Sym<64,_true> *sym,uint st_shndx,bool is_ordinary\n          ,uint orig_st_shndx,Object *object,char *version,bool is_default_version)\n\n{\n  undefined *puVar1;\n  undefined3 extraout_var;\n  uint uVar2;\n  int iVar3;\n  Object *pOVar4;\n  char *pcVar5;\n  _func_int_varargs **pp_Var6;\n  bool bVar9;\n  Output_segment *pOVar7;\n  undefined4 uVar8;\n  byte bVar10;\n  int *piVar11;\n  STT SVar12;\n  undefined *puVar13;\n  Sym_data<64> *pSVar14;\n  int iVar15;\n  _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n  *p_Var16;\n  uint uVar17;\n  STT fromtype;\n  uint uVar18;\n  uint uVar19;\n  char *in_stack_ffffff70;\n  bool adjust_dyndef;\n  uint uStack_74;\n  undefined1 auStack_70 [16];\n  bool adjust_common_sizes;\n  undefined4 uStack_5c;\n  undefined4 uStack_58;\n  Input_file *pIStack_54;\n  _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n  a_Stack_50 [8];\n  __node_gen_type __node_gen;\n  char *pcStack_44;\n  Xindex *pXStack_40;\n  _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n  *p_Stack_3c;\n  __node_gen_type *p_Stack_38;\n  code *pcStack_34;\n  key_type *ppcStack_30;\n  Odr_map *pOStack_2c;\n  \n  uVar2 = *(uint *)&(to->super_Symbol).field_0x28;\n  if ((uVar2 & 0xe000) == 0) {\n    uVar19 = (to->super_Symbol).u2_.shndx;\n    uVar18 = -((int)(uVar2 << 0x1d) >> 0x1f);\n    if (((uVar2 << 0x10) >> 0x1d == 0) && (object == (to->super_Symbol).u1_.object)) {\n      if (uVar18 == 0) {\n        bVar10 = (*(code *)PTR_is_common_shndx_00432fe0)(uVar19);\n        bVar10 = bVar10 ^ 1;\n      }\n      else {\n        bVar10 = uVar19 != 0;\n      }\n      if (bVar10 == 0) goto LAB_00295df8;\n      if (!is_ordinary) goto LAB_0029609c;\njoined_r0x002960a4:\n      if ((((uVar18 == 0) && (uVar19 == st_shndx)) &&\n          (*(int *)&sym->p_->st_value == *(int *)&to->value_)) &&\n         ((int)sym->p_->st_value == (int)to->value_)) {\n        return;\n      }\n    }\n    else {\nLAB_00295df8:\n      if (!is_ordinary) {\nLAB_0029609c:\n        if (st_shndx == 0xfff1) goto joined_r0x002960a4;\n      }\n    }\n    puVar1 = PTR_parameters_00432be0;\n    piVar11 = *(int **)(*(int *)PTR_parameters_00432be0 + 0xc);\n    puVar13 = PTR_s__0043226c;\n    if (piVar11 == (int *)0x0) goto LAB_00296780;\n    if ((*(char *)(piVar11[1] + 0xd) != '\0') &&\n       (in_stack_ffffff70 = version,\n       iVar3 = (**(code **)(*piVar11 + 0xac))(piVar11,to,sym,object,version), iVar3 != 0)) {\n      return;\n    }\n    if (*(int *)&object->field_0x2c < 0) {\n      if ((st_shndx == 0) &&\n         ((((uint)(*(int *)&(to->super_Symbol).field_0x28 << 8) >> 0x1e) + 3 & 3) < 2)) {\n        return;\n      }\n      *(uint *)&(to->super_Symbol).field_0x28 =\n           *(uint *)&(to->super_Symbol).field_0x28 & 0xffffff7f | 0x80;\n      iVar3 = (*object->_vptr_Object[5])(object);\n    }\n    else {\n      if (((sym->p_->st_info & 0xf) == 5) &&\n         ((is_ordinary || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(st_shndx), iVar3 == 0))))\n      {\n        uVar8 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + 0x3c50);\n        (*(code *)PTR_demangled_name_00433f24)(&adjust_dyndef,to);\n        if ((*(uint *)&(to->super_Symbol).field_0x28 & 0xe000) == 0) {\n                    /* try { // try from 002965d8 to 002965df has its CatchHandler @ 002967d0 */\n          (*(code *)PTR_gold_warning_0043245c)\n                    (uVar8,_adjust_dyndef,\n                     ((to->super_Symbol).u1_.output_segment)->output_lists_[0].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_finish);\n          if (_adjust_dyndef == (Object *)auStack_70) {\n            return;\n          }\n          operator_delete(_adjust_dyndef);\n          return;\n        }\n        goto LAB_002967b4;\n      }\n      *(uint *)&(to->super_Symbol).field_0x28 =\n           *(uint *)&(to->super_Symbol).field_0x28 & 0xfffffeff | 0x100;\n      iVar3 = (*object->_vptr_Object[5])(object);\n    }\n    if ((iVar3 == 0) && (-1 < *(int *)&object->field_0x2c)) {\n      *(uint *)&(to->super_Symbol).field_0x28 =\n           *(uint *)&(to->super_Symbol).field_0x28 & 0xfffffffd | 2;\n    }\n    uVar2 = *(uint *)&(to->super_Symbol).field_0x28;\n    if ((uVar2 << 0x10) >> 0x1d != 0) {\nLAB_002963b4:\n      iVar3 = *(int *)(*(int *)puVar1 + 8);\n      if (iVar3 == 0) goto LAB_002963c4;\nLAB_00295ee8:\n      if (*(char *)(iVar3 + 0xe11) == '\0') {\nLAB_00296184:\n        pXStack_40 = (Xindex *)&adjust_dyndef;\n        pp_Var6 = object->_vptr_Object;\n      }\n      else {\n        pSVar14 = sym->p_;\n        if (((((int)(uint)pSVar14->st_info >> 4 != 2) &&\n             ((uint)(*(int *)&(to->super_Symbol).field_0x28 << 4) >> 0x1c != 2)) ||\n            (orig_st_shndx == 0)) || ((uVar18 == 0 || (uVar19 == 0)))) goto LAB_00296184;\n        iVar3 = (int)pSVar14->st_size;\n        if (*(int *)&pSVar14->st_size == 0 && iVar3 == 0) goto LAB_00296184;\n        iVar15 = (int)to->symsize_;\n        if ((*(int *)&to->symsize_ == 0 && iVar15 == 0) ||\n           ((((uVar2 = *(uint *)&(to->super_Symbol).field_0x28,\n              uVar2 >> 0x1c == (pSVar14->st_info & 0xf) &&\n              (*(int *)&to->symsize_ == *(int *)&pSVar14->st_size)) && (iVar15 == iVar3)) ||\n            ((pcVar5 = (to->super_Symbol).name_, *pcVar5 != '_' || (pcVar5[1] != 'Z'))))))\n        goto LAB_00296184;\n        uStack_58 = *(undefined4 *)&pSVar14->st_value;\n        pIStack_54 = *(Input_file **)((int)&pSVar14->st_value + 4);\n        _adjust_common_sizes = object;\n        uStack_5c = orig_st_shndx;\n        if ((uVar2 & 0xe000) != 0) goto LAB_0029679c;\n        pcStack_34 = (code *)PTR_operator___00435c08;\n        pOStack_2c = &this->candidate_odr_violations_;\n        _adjust_dyndef = (to->super_Symbol).u1_;\n        ppcStack_30 = &pcStack_44;\n        auStack_70._4_4_ = *(undefined4 *)((int)&to->value_ + 4);\n        auStack_70._0_4_ = *(undefined4 *)&to->value_;\n        pXStack_40 = (Xindex *)&adjust_dyndef;\n        uStack_74 = uVar19;\n        pcStack_44 = pcVar5;\n        __node_gen._M_h =\n             (__hashtable_alloc *)\n             std::__detail::\n             _Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n             ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                           *)pOStack_2c,ppcStack_30);\n        p_Stack_38 = &__node_gen;\n        p_Stack_3c = a_Stack_50;\n        uVar2 = (uint)in_stack_ffffff70 & 0xffffff;\n        std::\n        _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                  (p_Stack_3c,__node_gen._M_h,&adjust_common_sizes,p_Stack_38,uVar2,1);\n        pcStack_44 = (to->super_Symbol).name_;\n        __node_gen._M_h = (__hashtable_alloc *)(*pcStack_34)(pOStack_2c,ppcStack_30);\n        std::\n        _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                  (p_Stack_3c,__node_gen._M_h,pXStack_40,p_Stack_38,uVar2 & 0xffffff,1);\n        pp_Var6 = object->_vptr_Object;\n      }\n      iVar3 = (*pp_Var6[5])(object);\n      if (iVar3 == 0) {\n        SVar12 = (STT)sym->p_->st_info;\n        fromtype = SVar12 & STT_HIPROC;\n      }\n      else {\n        SVar12 = (STT)sym->p_->st_info;\n        fromtype = *(uint *)&(to->super_Symbol).field_0x28 >> 0x1c;\n      }\n      uVar2 = symbol_to_bits(SVar12 >> 4,SUB41((uint)*(undefined4 *)&object->field_0x2c >> 0x1f,0),\n                             st_shndx,is_ordinary);\n      p_Stack_3c = *(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                     **)((int)&to->symsize_ + 4);\n      uVar18 = *(uint *)&to->symsize_;\n      bVar9 = should_override(&to->super_Symbol,uVar2,fromtype,OBJECT,object,&adjust_common_sizes,\n                              (bool *)pXStack_40,is_default_version);\n      if (CONCAT31(extraout_var,bVar9) == 0) {\n        puVar13 = (undefined *)((uint)_adjust_common_sizes >> 0x18);\n        pSVar14 = sym->p_;\n        if (puVar13 != (undefined *)0x0) {\n          uVar2 = *(uint *)&pSVar14->st_size;\n          p_Var16 = *(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                      **)((int)&pSVar14->st_size + 4);\n          if ((uVar18 < uVar2) || ((uVar2 == uVar18 && (p_Stack_3c < p_Var16)))) {\n            *(uint *)&to->symsize_ = uVar2;\n            *(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              **)((int)&to->symsize_ + 4) = p_Var16;\n          }\n          uVar2 = *(uint *)&pSVar14->st_value;\n          uVar19 = (uint)pSVar14->st_value;\n          if ((*(uint *)&to->value_ < uVar2) ||\n             ((*(uint *)&to->value_ == uVar2 && ((uint)to->value_ < uVar19)))) {\n            *(uint *)&to->value_ = uVar2;\n            *(uint *)((int)&to->value_ + 4) = uVar19;\n          }\n        }\n        if ((adjust_dyndef != false) &&\n           ((iVar3 = *(int *)&(to->super_Symbol).field_0x2c, -1 < iVar3 || (iVar3 << 1 < 0)))) {\n          (to->super_Symbol).field_0x2c =\n               (to->super_Symbol).field_0x2c & 0x3f | ((int)(uint)pSVar14->st_info >> 4 == 2) << 6 |\n               0x80;\n        }\n        bVar10 = pSVar14->st_other;\n        uVar2 = *(uint *)&(to->super_Symbol).field_0x28;\n        if (((bVar10 & 3) != 0) &&\n           (((uVar2 & 0xc00000) == 0 || ((bVar10 & 3) < (uVar2 << 8) >> 0x1e)))) {\n          uVar2 = uVar2 & 0xff3fffff | (bVar10 & 3) << 0x16;\n          *(uint *)&(to->super_Symbol).field_0x28 = uVar2;\n        }\n      }\n      else {\n        iVar3 = *(int *)&(to->super_Symbol).field_0x28;\n        uVar2 = *(uint *)&to->value_;\n        uVar19 = (uint)to->value_;\n        override<64,_true>(this,to,sym,st_shndx,is_ordinary,object,version);\n        puVar13 = (undefined *)((uint)_adjust_common_sizes >> 0x18);\n        if (puVar13 != (undefined *)0x0) {\n          if ((*(uint *)&to->symsize_ < uVar18) ||\n             ((*(uint *)&to->symsize_ == uVar18 &&\n              (*(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                 **)((int)&to->symsize_ + 4) < p_Stack_3c)))) {\n            *(uint *)&to->symsize_ = uVar18;\n            *(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              **)((int)&to->symsize_ + 4) = p_Stack_3c;\n          }\n          if ((*(uint *)&to->value_ < uVar2) ||\n             ((*(uint *)&to->value_ == uVar2 && ((uint)to->value_ < uVar19)))) {\n            *(uint *)&to->value_ = uVar2;\n            *(uint *)((int)&to->value_ + 4) = uVar19;\n          }\n        }\n        uVar2 = *(uint *)&(to->super_Symbol).field_0x28;\n        if (adjust_dyndef != false) {\n          iVar15 = *(int *)&(to->super_Symbol).field_0x2c;\n          if (iVar15 < 0) {\n            if (-1 < iVar15 << 1) goto LAB_002962d0;\n            bVar10 = (to->super_Symbol).field_0x2c;\n          }\n          else {\n            bVar10 = (to->super_Symbol).field_0x2c;\n          }\n          (to->super_Symbol).field_0x2c =\n               bVar10 & 0x3f | ((uint)(iVar3 << 4) >> 0x1c == 2) << 6 | 0x80;\n        }\n      }\nLAB_002962d0:\n      if (((uVar2 & 0xe000) == 0) &&\n         (pOVar7 = (to->super_Symbol).u1_.output_segment,\n         (int)pOVar7->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_002963dc;\n      while( true ) {\n        if (puVar13 == (undefined *)0x0) {\n          return;\n        }\n        if (*(int *)(*(int *)puVar1 + 8) != 0) break;\nLAB_002963c4:\n        puVar13 = PTR_s_alize_xindex_004323b4 + -0x5cec;\n        pOVar7 = (Output_segment *)\n                 (*(code *)PTR_do_gold_unreachable_004323c4)(puVar13,0x5c,PTR_s__0043226c + 0x3c1c);\nLAB_002963dc:\n        if ((*(int *)&(to->super_Symbol).field_0x28 << 0x17 < 0) &&\n           (-1 < *(int *)&(to->super_Symbol).field_0x2c << 1)) {\n          *(byte *)&pOVar7->output_lists_[3].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_end_of_storage =\n               *(byte *)&pOVar7->output_lists_[3].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_end_of_storage & 0xbf | 0x40;\n        }\n      }\n      if (*(char *)(*(int *)(*(int *)puVar1 + 8) + 0x43f5) == '\0') {\n        return;\n      }\n      uVar2 = *(uint *)&sym->p_->st_size;\n      p_Var16 = *(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                  **)((int)&sym->p_->st_size + 4);\n      if ((uVar2 < uVar18) || ((uVar18 == uVar2 && (p_Var16 < p_Stack_3c)))) {\n        puVar13 = PTR_s__0043226c + 0x3c88;\n      }\n      else if ((uVar18 < uVar2) || ((uVar2 == uVar18 && (p_Stack_3c < p_Var16)))) {\n        puVar13 = PTR_s__0043226c + 0x3cb4;\n      }\n      else {\n        puVar13 = PTR_s__0043226c + 0x3ce0;\n      }\n      pcVar5 = (char *)(*(code *)PTR_gettext_00436818)(puVar13);\n      report_resolve_problem(false,pcVar5,&to->super_Symbol,OBJECT,object);\n      return;\n    }\n    if ((uVar2 & 0xe000) == 0) {\n      pOVar4 = (to->super_Symbol).u1_.object;\n      iVar3 = (*pOVar4->_vptr_Object[5])(pOVar4);\n      if (iVar3 == 0) goto LAB_002963b4;\n      iVar3 = *(int *)(*(int *)puVar1 + 8);\n      if (iVar3 == 0) goto LAB_002963c4;\n      if (*(char *)(*(int *)(iVar3 + 0x594c) + 0x69) != '\0') {\n        uVar2 = *(uint *)&(to->super_Symbol).field_0x28;\n        if (((((uVar2 & 0xe000) != 0) || ((int)(uVar2 << 0x1d) < 0)) ||\n            (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)((to->super_Symbol).u2_.shndx),\n            iVar3 == 0)) ||\n           ((is_ordinary || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(st_shndx), iVar3 == 0))\n           )) {\n          override<64,_true>(this,to,sym,st_shndx,is_ordinary,object,version);\n          return;\n        }\n        uVar18 = *(uint *)&to->symsize_;\n        uVar17 = (uint)to->symsize_;\n        uVar2 = *(uint *)&to->value_;\n        uVar19 = (uint)to->value_;\n        override<64,_true>(this,to,sym,st_shndx,false,object,version);\n        if ((*(uint *)&to->symsize_ < uVar18) ||\n           ((*(uint *)&to->symsize_ == uVar18 && ((uint)to->symsize_ < uVar17)))) {\n          *(uint *)&to->symsize_ = uVar18;\n          *(uint *)((int)&to->symsize_ + 4) = uVar17;\n        }\n        if (uVar2 <= *(uint *)&to->value_) {\n          if (*(uint *)&to->value_ != uVar2) {\n            return;\n          }\n          if (uVar19 <= (uint)to->value_) {\n            return;\n          }\n        }\n        *(uint *)&to->value_ = uVar2;\n        *(uint *)((int)&to->value_ + 4) = uVar19;\n        return;\n      }\n      goto LAB_00295ee8;\n    }\n  }\n  else {\n    puVar13 = PTR_s__0043226c + 0x3c38;\n    (*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s_alize_xindex_004323b4 + -0x5bdc,0xaa,puVar13);\nLAB_00296780:\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,puVar13 + 0x3bb8);\n  }\nLAB_0029679c:\n  (*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_s__0043226c + 0x3c24);\nLAB_002967b4:\n  puVar13 = PTR_s_alize_xindex_004323b4 + -0x5bdc;\n  (*(code *)PTR_do_gold_unreachable_004323c4)(puVar13,0xa1,PTR_s__0043226c + 0x3c24);\n  if (_adjust_dyndef != (Object *)auStack_70) {\n    operator_delete(_adjust_dyndef);\n  }\n  (*(code *)PTR__Unwind_Resume_00432258)(puVar13);\n  return;\n}\n\n" comment comment comment comment comment (declaration "void __thiscall\ngold::Symbol_table::resolve<64,_true>\n          (Symbol_table *this,Sized_symbol<64> *to,Sym<64,_true> *sym,uint st_shndx,bool is_ordinary\n          ,uint orig_st_shndx,Object *object,char *version,bool is_default_version)\n\n{\n  undefined *puVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Symbol_table::" identifier : : identifier : :) identifier (ERROR "<64" < number_literal) , (ERROR "_true>\n          (Symbol_table *this,Sized_symbol<64> *to,Sym<64,_true> *sym,uint st_shndx,bool is_ordinary\n          ,uint orig_st_shndx,Object *object,char *version,bool is_default_version)\n\n{\n  undefined" (function_declarator "_true>\n          (Symbol_table *this,Sized_symbol<64> *to,Sym<64,_true> *sym,uint st_shndx,bool is_ordinary\n          ,uint orig_st_shndx,Object *object,char *version,bool is_default_version)" identifier (ERROR ">" >) (parameter_list "(Symbol_table *this,Sized_symbol<64> *to,Sym<64,_true> *sym,uint st_shndx,bool is_ordinary\n          ,uint orig_st_shndx,Object *object,char *version,bool is_default_version)" ( (parameter_declaration "Symbol_table *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Sized_symbol<64> *to" type_identifier (ERROR "<64>" < number_literal >) (pointer_declarator "*to" * identifier)) , (parameter_declaration "Sym" type_identifier) (ERROR "<64" < number_literal) , (parameter_declaration "_true> *sym" type_identifier (ERROR ">" >) (pointer_declarator "*sym" * identifier)) , (parameter_declaration "uint st_shndx" type_identifier identifier) , (parameter_declaration "bool is_ordinary" primitive_type identifier) , (parameter_declaration "uint orig_st_shndx" type_identifier identifier) , (parameter_declaration "Object *object" type_identifier (pointer_declarator "*object" * identifier)) , (parameter_declaration "char *version" primitive_type (pointer_declarator "*version" * identifier)) , (parameter_declaration "bool is_default_version" primitive_type identifier) ))) { identifier) (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined3 extraout_var;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "Object *pOVar4;" type_identifier (pointer_declarator "*pOVar4" * identifier) ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "_func_int_varargs **pp_Var6;" type_identifier (pointer_declarator "**pp_Var6" * (pointer_declarator "*pp_Var6" * identifier)) ;) (declaration "bool bVar9;" primitive_type identifier ;) (declaration "Output_segment *pOVar7;" type_identifier (pointer_declarator "*pOVar7" * identifier) ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "byte bVar10;" type_identifier identifier ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "STT SVar12;" type_identifier identifier ;) (declaration "undefined *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (expression_statement "Sym_data<64> *pSVar14;" (update_expression "Sym_data<64> *pSVar14" (binary_expression "Sym_data<64> *pSVar14" (binary_expression "Sym_data<64" identifier < number_literal) > (pointer_expression "*pSVar14" * identifier)) --) ;) (declaration "int iVar15;" primitive_type identifier ;) (ERROR "_Hashtable<gold::Symbol_location," (binary_expression "_Hashtable<gold" identifier < identifier) : : identifier ,) (labeled_statement "_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n  *p_Var16;" statement_identifier (ERROR "::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std:" : : (comma_expression "Symbol_location,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Symbol_location>,_std" identifier > (ERROR "," ,) identifier) : : (comma_expression "__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold" identifier (ERROR "::_Identity,_std::equal_to<gold::Symbol_location>" : : (comma_expression "_Identity,_std" identifier , identifier) : : (binary_expression "equal_to<gold" identifier < identifier) : : identifier >) , identifier) : : (comma_expression "Symbol_location_hash,_std" identifier , identifier) :) : (labeled_statement "__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n  *p_Var16;" statement_identifier (ERROR "::_Mod_range_hashing,_std:" : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) :) : (labeled_statement "__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n  *p_Var16;" statement_identifier (ERROR "::_Default_ranged_hash,_std:" : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) :) : (labeled_statement "__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n  *p_Var16;" statement_identifier (ERROR "::_Prime_rehash_policy,_std:" : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) :) : (labeled_statement "__detail::_Hashtable_traits<true,_true,_true>_>\n  *p_Var16;" statement_identifier : (ERROR ":" :) (expression_statement "_Hashtable_traits<true,_true,_true>_>\n  *p_Var16;" (comma_expression "_Hashtable_traits<true,_true,_true>_>\n  *p_Var16" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n  *p_Var16" identifier , (binary_expression "_true>_>\n  *p_Var16" (binary_expression "_true>_" identifier > identifier) > (pointer_expression "*p_Var16" * identifier)))) ;)))))) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "STT fromtype;" type_identifier identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "char *in_stack_ffffff70;" primitive_type (pointer_declarator "*in_stack_ffffff70" * identifier) ;) (declaration "bool adjust_dyndef;" primitive_type identifier ;) (declaration "uint uStack_74;" type_identifier identifier ;) (declaration "undefined1 auStack_70 [16];" type_identifier (array_declarator "auStack_70 [16]" identifier [ number_literal ]) ;) (declaration "bool adjust_common_sizes;" primitive_type identifier ;) (declaration "undefined4 uStack_5c;" type_identifier identifier ;) (declaration "undefined4 uStack_58;" type_identifier identifier ;) (declaration "Input_file *pIStack_54;" type_identifier (pointer_declarator "*pIStack_54" * identifier) ;) (ERROR "_Hashtable<gold::Symbol_location," (binary_expression "_Hashtable<gold" identifier < identifier) : : identifier ,) (labeled_statement "_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n  a_Stack_50 [8];" statement_identifier (ERROR "::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std:" : : (comma_expression "Symbol_location,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Symbol_location>,_std" identifier > (ERROR "," ,) identifier) : : (comma_expression "__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold" identifier (ERROR "::_Identity,_std::equal_to<gold::Symbol_location>" : : (comma_expression "_Identity,_std" identifier , identifier) : : (binary_expression "equal_to<gold" identifier < identifier) : : identifier >) , identifier) : : (comma_expression "Symbol_location_hash,_std" identifier , identifier) :) : (labeled_statement "__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n  a_Stack_50 [8];" statement_identifier (ERROR "::_Mod_range_hashing,_std:" : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) :) : (labeled_statement "__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n  a_Stack_50 [8];" statement_identifier (ERROR "::_Default_ranged_hash,_std:" : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) :) : (labeled_statement "__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n  a_Stack_50 [8];" statement_identifier (ERROR "::_Prime_rehash_policy,_std:" : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) :) : (labeled_statement "__detail::_Hashtable_traits<true,_true,_true>_>\n  a_Stack_50 [8];" statement_identifier : (ERROR ":" :) (expression_statement "_Hashtable_traits<true,_true,_true>_>\n  a_Stack_50 [8];" (comma_expression "_Hashtable_traits<true,_true,_true>_>\n  a_Stack_50 [8]" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n  a_Stack_50 [8]" identifier , (binary_expression "_true>_>\n  a_Stack_50 [8]" (binary_expression "_true>_" identifier > identifier) > (subscript_expression "a_Stack_50 [8]" identifier [ number_literal ])))) ;)))))) (declaration "__node_gen_type __node_gen;" type_identifier identifier ;) (declaration "char *pcStack_44;" primitive_type (pointer_declarator "*pcStack_44" * identifier) ;) (declaration "Xindex *pXStack_40;" type_identifier (pointer_declarator "*pXStack_40" * identifier) ;) (ERROR "_Hashtable<gold::Symbol_location," (binary_expression "_Hashtable<gold" identifier < identifier) : : identifier ,) (labeled_statement "_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n  *p_Stack_3c;" statement_identifier (ERROR "::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std:" : : (comma_expression "Symbol_location,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Symbol_location>,_std" identifier > (ERROR "," ,) identifier) : : (comma_expression "__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold" identifier (ERROR "::_Identity,_std::equal_to<gold::Symbol_location>" : : (comma_expression "_Identity,_std" identifier , identifier) : : (binary_expression "equal_to<gold" identifier < identifier) : : identifier >) , identifier) : : (comma_expression "Symbol_location_hash,_std" identifier , identifier) :) : (labeled_statement "__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n  *p_Stack_3c;" statement_identifier (ERROR "::_Mod_range_hashing,_std:" : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) :) : (labeled_statement "__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n  *p_Stack_3c;" statement_identifier (ERROR "::_Default_ranged_hash,_std:" : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) :) : (labeled_statement "__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n  *p_Stack_3c;" statement_identifier (ERROR "::_Prime_rehash_policy,_std:" : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) :) : (labeled_statement "__detail::_Hashtable_traits<true,_true,_true>_>\n  *p_Stack_3c;" statement_identifier : (ERROR ":" :) (expression_statement "_Hashtable_traits<true,_true,_true>_>\n  *p_Stack_3c;" (comma_expression "_Hashtable_traits<true,_true,_true>_>\n  *p_Stack_3c" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n  *p_Stack_3c" identifier , (binary_expression "_true>_>\n  *p_Stack_3c" (binary_expression "_true>_" identifier > identifier) > (pointer_expression "*p_Stack_3c" * identifier)))) ;)))))) (declaration "__node_gen_type *p_Stack_38;" type_identifier (pointer_declarator "*p_Stack_38" * identifier) ;) (declaration "code *pcStack_34;" type_identifier (pointer_declarator "*pcStack_34" * identifier) ;) (declaration "key_type *ppcStack_30;" type_identifier (pointer_declarator "*ppcStack_30" * identifier) ;) (declaration "Odr_map *pOStack_2c;" type_identifier (pointer_declarator "*pOStack_2c" * identifier) ;) (expression_statement "uVar2 = *(uint *)&(to->super_Symbol).field_0x28;" (assignment_expression "uVar2 = *(uint *)&(to->super_Symbol).field_0x28" identifier = (pointer_expression "*(uint *)&(to->super_Symbol).field_0x28" * (cast_expression "(uint *)&(to->super_Symbol).field_0x28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(to->super_Symbol).field_0x28" & (field_expression "(to->super_Symbol).field_0x28" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier))))) ;) (if_statement "if ((uVar2 & 0xe000) == 0) {\n    uVar19 = (to->super_Symbol).u2_.shndx;\n    uVar18 = -((int)(uVar2 << 0x1d) >> 0x1f);\n    if (((uVar2 << 0x10) >> 0x1d == 0) && (object == (to->super_Symbol).u1_.object)) {\n      if (uVar18 == 0) {\n        bVar10 = (*(code *)PTR_is_common_shndx_00432fe0)(uVar19);\n        bVar10 = bVar10 ^ 1;\n      }\n      else {\n        bVar10 = uVar19 != 0;\n      }\n      if (bVar10 == 0) goto LAB_00295df8;\n      if (!is_ordinary) goto LAB_0029609c;\njoined_r0x002960a4:\n      if ((((uVar18 == 0) && (uVar19 == st_shndx)) &&\n          (*(int *)&sym->p_->st_value == *(int *)&to->value_)) &&\n         ((int)sym->p_->st_value == (int)to->value_)) {\n        return;\n      }\n    }\n    else {\nLAB_00295df8:\n      if (!is_ordinary) {\nLAB_0029609c:\n        if (st_shndx == 0xfff1) goto joined_r0x002960a4;\n      }\n    }\n    puVar1 = PTR_parameters_00432be0;\n    piVar11 = *(int **)(*(int *)PTR_parameters_00432be0 + 0xc);\n    puVar13 = PTR_s__0043226c;\n    if (piVar11 == (int *)0x0) goto LAB_00296780;\n    if ((*(char *)(piVar11[1] + 0xd) != '\0') &&\n       (in_stack_ffffff70 = version,\n       iVar3 = (**(code **)(*piVar11 + 0xac))(piVar11,to,sym,object,version), iVar3 != 0)) {\n      return;\n    }\n    if (*(int *)&object->field_0x2c < 0) {\n      if ((st_shndx == 0) &&\n         ((((uint)(*(int *)&(to->super_Symbol).field_0x28 << 8) >> 0x1e) + 3 & 3) < 2)) {\n        return;\n      }\n      *(uint *)&(to->super_Symbol).field_0x28 =\n           *(uint *)&(to->super_Symbol).field_0x28 & 0xffffff7f | 0x80;\n      iVar3 = (*object->_vptr_Object[5])(object);\n    }\n    else {\n      if (((sym->p_->st_info & 0xf) == 5) &&\n         ((is_ordinary || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(st_shndx), iVar3 == 0))))\n      {\n        uVar8 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + 0x3c50);\n        (*(code *)PTR_demangled_name_00433f24)(&adjust_dyndef,to);\n        if ((*(uint *)&(to->super_Symbol).field_0x28 & 0xe000) == 0) {\n                    /* try { // try from 002965d8 to 002965df has its CatchHandler @ 002967d0 */\n          (*(code *)PTR_gold_warning_0043245c)\n                    (uVar8,_adjust_dyndef,\n                     ((to->super_Symbol).u1_.output_segment)->output_lists_[0].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_finish);\n          if (_adjust_dyndef == (Object *)auStack_70) {\n            return;\n          }\n          operator_delete(_adjust_dyndef);\n          return;\n        }\n        goto LAB_002967b4;\n      }\n      *(uint *)&(to->super_Symbol).field_0x28 =\n           *(uint *)&(to->super_Symbol).field_0x28 & 0xfffffeff | 0x100;\n      iVar3 = (*object->_vptr_Object[5])(object);\n    }\n    if ((iVar3 == 0) && (-1 < *(int *)&object->field_0x2c)) {\n      *(uint *)&(to->super_Symbol).field_0x28 =\n           *(uint *)&(to->super_Symbol).field_0x28 & 0xfffffffd | 2;\n    }\n    uVar2 = *(uint *)&(to->super_Symbol).field_0x28;\n    if ((uVar2 << 0x10) >> 0x1d != 0) {\nLAB_002963b4:\n      iVar3 = *(int *)(*(int *)puVar1 + 8);\n      if (iVar3 == 0) goto LAB_002963c4;\nLAB_00295ee8:\n      if (*(char *)(iVar3 + 0xe11) == '\0') {\nLAB_00296184:\n        pXStack_40 = (Xindex *)&adjust_dyndef;\n        pp_Var6 = object->_vptr_Object;\n      }\n      else {\n        pSVar14 = sym->p_;\n        if (((((int)(uint)pSVar14->st_info >> 4 != 2) &&\n             ((uint)(*(int *)&(to->super_Symbol).field_0x28 << 4) >> 0x1c != 2)) ||\n            (orig_st_shndx == 0)) || ((uVar18 == 0 || (uVar19 == 0)))) goto LAB_00296184;\n        iVar3 = (int)pSVar14->st_size;\n        if (*(int *)&pSVar14->st_size == 0 && iVar3 == 0) goto LAB_00296184;\n        iVar15 = (int)to->symsize_;\n        if ((*(int *)&to->symsize_ == 0 && iVar15 == 0) ||\n           ((((uVar2 = *(uint *)&(to->super_Symbol).field_0x28,\n              uVar2 >> 0x1c == (pSVar14->st_info & 0xf) &&\n              (*(int *)&to->symsize_ == *(int *)&pSVar14->st_size)) && (iVar15 == iVar3)) ||\n            ((pcVar5 = (to->super_Symbol).name_, *pcVar5 != '_' || (pcVar5[1] != 'Z'))))))\n        goto LAB_00296184;\n        uStack_58 = *(undefined4 *)&pSVar14->st_value;\n        pIStack_54 = *(Input_file **)((int)&pSVar14->st_value + 4);\n        _adjust_common_sizes = object;\n        uStack_5c = orig_st_shndx;\n        if ((uVar2 & 0xe000) != 0) goto LAB_0029679c;\n        pcStack_34 = (code *)PTR_operator___00435c08;\n        pOStack_2c = &this->candidate_odr_violations_;\n        _adjust_dyndef = (to->super_Symbol).u1_;\n        ppcStack_30 = &pcStack_44;\n        auStack_70._4_4_ = *(undefined4 *)((int)&to->value_ + 4);\n        auStack_70._0_4_ = *(undefined4 *)&to->value_;\n        pXStack_40 = (Xindex *)&adjust_dyndef;\n        uStack_74 = uVar19;\n        pcStack_44 = pcVar5;\n        __node_gen._M_h =\n             (__hashtable_alloc *)\n             std::__detail::\n             _Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n             ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                           *)pOStack_2c,ppcStack_30);\n        p_Stack_38 = &__node_gen;\n        p_Stack_3c = a_Stack_50;\n        uVar2 = (uint)in_stack_ffffff70 & 0xffffff;\n        std::\n        _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                  (p_Stack_3c,__node_gen._M_h,&adjust_common_sizes,p_Stack_38,uVar2,1);\n        pcStack_44 = (to->super_Symbol).name_;\n        __node_gen._M_h = (__hashtable_alloc *)(*pcStack_34)(pOStack_2c,ppcStack_30);\n        std::\n        _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                  (p_Stack_3c,__node_gen._M_h,pXStack_40,p_Stack_38,uVar2 & 0xffffff,1);\n        pp_Var6 = object->_vptr_Object;\n      }\n      iVar3 = (*pp_Var6[5])(object);\n      if (iVar3 == 0) {\n        SVar12 = (STT)sym->p_->st_info;\n        fromtype = SVar12 & STT_HIPROC;\n      }\n      else {\n        SVar12 = (STT)sym->p_->st_info;\n        fromtype = *(uint *)&(to->super_Symbol).field_0x28 >> 0x1c;\n      }\n      uVar2 = symbol_to_bits(SVar12 >> 4,SUB41((uint)*(undefined4 *)&object->field_0x2c >> 0x1f,0),\n                             st_shndx,is_ordinary);\n      p_Stack_3c = *(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                     **)((int)&to->symsize_ + 4);\n      uVar18 = *(uint *)&to->symsize_;\n      bVar9 = should_override(&to->super_Symbol,uVar2,fromtype,OBJECT,object,&adjust_common_sizes,\n                              (bool *)pXStack_40,is_default_version);\n      if (CONCAT31(extraout_var,bVar9) == 0) {\n        puVar13 = (undefined *)((uint)_adjust_common_sizes >> 0x18);\n        pSVar14 = sym->p_;\n        if (puVar13 != (undefined *)0x0) {\n          uVar2 = *(uint *)&pSVar14->st_size;\n          p_Var16 = *(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                      **)((int)&pSVar14->st_size + 4);\n          if ((uVar18 < uVar2) || ((uVar2 == uVar18 && (p_Stack_3c < p_Var16)))) {\n            *(uint *)&to->symsize_ = uVar2;\n            *(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              **)((int)&to->symsize_ + 4) = p_Var16;\n          }\n          uVar2 = *(uint *)&pSVar14->st_value;\n          uVar19 = (uint)pSVar14->st_value;\n          if ((*(uint *)&to->value_ < uVar2) ||\n             ((*(uint *)&to->value_ == uVar2 && ((uint)to->value_ < uVar19)))) {\n            *(uint *)&to->value_ = uVar2;\n            *(uint *)((int)&to->value_ + 4) = uVar19;\n          }\n        }\n        if ((adjust_dyndef != false) &&\n           ((iVar3 = *(int *)&(to->super_Symbol).field_0x2c, -1 < iVar3 || (iVar3 << 1 < 0)))) {\n          (to->super_Symbol).field_0x2c =\n               (to->super_Symbol).field_0x2c & 0x3f | ((int)(uint)pSVar14->st_info >> 4 == 2) << 6 |\n               0x80;\n        }\n        bVar10 = pSVar14->st_other;\n        uVar2 = *(uint *)&(to->super_Symbol).field_0x28;\n        if (((bVar10 & 3) != 0) &&\n           (((uVar2 & 0xc00000) == 0 || ((bVar10 & 3) < (uVar2 << 8) >> 0x1e)))) {\n          uVar2 = uVar2 & 0xff3fffff | (bVar10 & 3) << 0x16;\n          *(uint *)&(to->super_Symbol).field_0x28 = uVar2;\n        }\n      }\n      else {\n        iVar3 = *(int *)&(to->super_Symbol).field_0x28;\n        uVar2 = *(uint *)&to->value_;\n        uVar19 = (uint)to->value_;\n        override<64,_true>(this,to,sym,st_shndx,is_ordinary,object,version);\n        puVar13 = (undefined *)((uint)_adjust_common_sizes >> 0x18);\n        if (puVar13 != (undefined *)0x0) {\n          if ((*(uint *)&to->symsize_ < uVar18) ||\n             ((*(uint *)&to->symsize_ == uVar18 &&\n              (*(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                 **)((int)&to->symsize_ + 4) < p_Stack_3c)))) {\n            *(uint *)&to->symsize_ = uVar18;\n            *(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              **)((int)&to->symsize_ + 4) = p_Stack_3c;\n          }\n          if ((*(uint *)&to->value_ < uVar2) ||\n             ((*(uint *)&to->value_ == uVar2 && ((uint)to->value_ < uVar19)))) {\n            *(uint *)&to->value_ = uVar2;\n            *(uint *)((int)&to->value_ + 4) = uVar19;\n          }\n        }\n        uVar2 = *(uint *)&(to->super_Symbol).field_0x28;\n        if (adjust_dyndef != false) {\n          iVar15 = *(int *)&(to->super_Symbol).field_0x2c;\n          if (iVar15 < 0) {\n            if (-1 < iVar15 << 1) goto LAB_002962d0;\n            bVar10 = (to->super_Symbol).field_0x2c;\n          }\n          else {\n            bVar10 = (to->super_Symbol).field_0x2c;\n          }\n          (to->super_Symbol).field_0x2c =\n               bVar10 & 0x3f | ((uint)(iVar3 << 4) >> 0x1c == 2) << 6 | 0x80;\n        }\n      }\nLAB_002962d0:\n      if (((uVar2 & 0xe000) == 0) &&\n         (pOVar7 = (to->super_Symbol).u1_.output_segment,\n         (int)pOVar7->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_002963dc;\n      while( true ) {\n        if (puVar13 == (undefined *)0x0) {\n          return;\n        }\n        if (*(int *)(*(int *)puVar1 + 8) != 0) break;\nLAB_002963c4:\n        puVar13 = PTR_s_alize_xindex_004323b4 + -0x5cec;\n        pOVar7 = (Output_segment *)\n                 (*(code *)PTR_do_gold_unreachable_004323c4)(puVar13,0x5c,PTR_s__0043226c + 0x3c1c);\nLAB_002963dc:\n        if ((*(int *)&(to->super_Symbol).field_0x28 << 0x17 < 0) &&\n           (-1 < *(int *)&(to->super_Symbol).field_0x2c << 1)) {\n          *(byte *)&pOVar7->output_lists_[3].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_end_of_storage =\n               *(byte *)&pOVar7->output_lists_[3].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_end_of_storage & 0xbf | 0x40;\n        }\n      }\n      if (*(char *)(*(int *)(*(int *)puVar1 + 8) + 0x43f5) == '\0') {\n        return;\n      }\n      uVar2 = *(uint *)&sym->p_->st_size;\n      p_Var16 = *(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                  **)((int)&sym->p_->st_size + 4);\n      if ((uVar2 < uVar18) || ((uVar18 == uVar2 && (p_Var16 < p_Stack_3c)))) {\n        puVar13 = PTR_s__0043226c + 0x3c88;\n      }\n      else if ((uVar18 < uVar2) || ((uVar2 == uVar18 && (p_Stack_3c < p_Var16)))) {\n        puVar13 = PTR_s__0043226c + 0x3cb4;\n      }\n      else {\n        puVar13 = PTR_s__0043226c + 0x3ce0;\n      }\n      pcVar5 = (char *)(*(code *)PTR_gettext_00436818)(puVar13);\n      report_resolve_problem(false,pcVar5,&to->super_Symbol,OBJECT,object);\n      return;\n    }\n    if ((uVar2 & 0xe000) == 0) {\n      pOVar4 = (to->super_Symbol).u1_.object;\n      iVar3 = (*pOVar4->_vptr_Object[5])(pOVar4);\n      if (iVar3 == 0) goto LAB_002963b4;\n      iVar3 = *(int *)(*(int *)puVar1 + 8);\n      if (iVar3 == 0) goto LAB_002963c4;\n      if (*(char *)(*(int *)(iVar3 + 0x594c) + 0x69) != '\0') {\n        uVar2 = *(uint *)&(to->super_Symbol).field_0x28;\n        if (((((uVar2 & 0xe000) != 0) || ((int)(uVar2 << 0x1d) < 0)) ||\n            (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)((to->super_Symbol).u2_.shndx),\n            iVar3 == 0)) ||\n           ((is_ordinary || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(st_shndx), iVar3 == 0))\n           )) {\n          override<64,_true>(this,to,sym,st_shndx,is_ordinary,object,version);\n          return;\n        }\n        uVar18 = *(uint *)&to->symsize_;\n        uVar17 = (uint)to->symsize_;\n        uVar2 = *(uint *)&to->value_;\n        uVar19 = (uint)to->value_;\n        override<64,_true>(this,to,sym,st_shndx,false,object,version);\n        if ((*(uint *)&to->symsize_ < uVar18) ||\n           ((*(uint *)&to->symsize_ == uVar18 && ((uint)to->symsize_ < uVar17)))) {\n          *(uint *)&to->symsize_ = uVar18;\n          *(uint *)((int)&to->symsize_ + 4) = uVar17;\n        }\n        if (uVar2 <= *(uint *)&to->value_) {\n          if (*(uint *)&to->value_ != uVar2) {\n            return;\n          }\n          if (uVar19 <= (uint)to->value_) {\n            return;\n          }\n        }\n        *(uint *)&to->value_ = uVar2;\n        *(uint *)((int)&to->value_ + 4) = uVar19;\n        return;\n      }\n      goto LAB_00295ee8;\n    }\n  }\n  else {\n    puVar13 = PTR_s__0043226c + 0x3c38;\n    (*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s_alize_xindex_004323b4 + -0x5bdc,0xaa,puVar13);\nLAB_00296780:\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,puVar13 + 0x3bb8);\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    uVar19 = (to->super_Symbol).u2_.shndx;\n    uVar18 = -((int)(uVar2 << 0x1d) >> 0x1f);\n    if (((uVar2 << 0x10) >> 0x1d == 0) && (object == (to->super_Symbol).u1_.object)) {\n      if (uVar18 == 0) {\n        bVar10 = (*(code *)PTR_is_common_shndx_00432fe0)(uVar19);\n        bVar10 = bVar10 ^ 1;\n      }\n      else {\n        bVar10 = uVar19 != 0;\n      }\n      if (bVar10 == 0) goto LAB_00295df8;\n      if (!is_ordinary) goto LAB_0029609c;\njoined_r0x002960a4:\n      if ((((uVar18 == 0) && (uVar19 == st_shndx)) &&\n          (*(int *)&sym->p_->st_value == *(int *)&to->value_)) &&\n         ((int)sym->p_->st_value == (int)to->value_)) {\n        return;\n      }\n    }\n    else {\nLAB_00295df8:\n      if (!is_ordinary) {\nLAB_0029609c:\n        if (st_shndx == 0xfff1) goto joined_r0x002960a4;\n      }\n    }\n    puVar1 = PTR_parameters_00432be0;\n    piVar11 = *(int **)(*(int *)PTR_parameters_00432be0 + 0xc);\n    puVar13 = PTR_s__0043226c;\n    if (piVar11 == (int *)0x0) goto LAB_00296780;\n    if ((*(char *)(piVar11[1] + 0xd) != '\0') &&\n       (in_stack_ffffff70 = version,\n       iVar3 = (**(code **)(*piVar11 + 0xac))(piVar11,to,sym,object,version), iVar3 != 0)) {\n      return;\n    }\n    if (*(int *)&object->field_0x2c < 0) {\n      if ((st_shndx == 0) &&\n         ((((uint)(*(int *)&(to->super_Symbol).field_0x28 << 8) >> 0x1e) + 3 & 3) < 2)) {\n        return;\n      }\n      *(uint *)&(to->super_Symbol).field_0x28 =\n           *(uint *)&(to->super_Symbol).field_0x28 & 0xffffff7f | 0x80;\n      iVar3 = (*object->_vptr_Object[5])(object);\n    }\n    else {\n      if (((sym->p_->st_info & 0xf) == 5) &&\n         ((is_ordinary || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(st_shndx), iVar3 == 0))))\n      {\n        uVar8 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + 0x3c50);\n        (*(code *)PTR_demangled_name_00433f24)(&adjust_dyndef,to);\n        if ((*(uint *)&(to->super_Symbol).field_0x28 & 0xe000) == 0) {\n                    /* try { // try from 002965d8 to 002965df has its CatchHandler @ 002967d0 */\n          (*(code *)PTR_gold_warning_0043245c)\n                    (uVar8,_adjust_dyndef,\n                     ((to->super_Symbol).u1_.output_segment)->output_lists_[0].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_finish);\n          if (_adjust_dyndef == (Object *)auStack_70) {\n            return;\n          }\n          operator_delete(_adjust_dyndef);\n          return;\n        }\n        goto LAB_002967b4;\n      }\n      *(uint *)&(to->super_Symbol).field_0x28 =\n           *(uint *)&(to->super_Symbol).field_0x28 & 0xfffffeff | 0x100;\n      iVar3 = (*object->_vptr_Object[5])(object);\n    }\n    if ((iVar3 == 0) && (-1 < *(int *)&object->field_0x2c)) {\n      *(uint *)&(to->super_Symbol).field_0x28 =\n           *(uint *)&(to->super_Symbol).field_0x28 & 0xfffffffd | 2;\n    }\n    uVar2 = *(uint *)&(to->super_Symbol).field_0x28;\n    if ((uVar2 << 0x10) >> 0x1d != 0) {\nLAB_002963b4:\n      iVar3 = *(int *)(*(int *)puVar1 + 8);\n      if (iVar3 == 0) goto LAB_002963c4;\nLAB_00295ee8:\n      if (*(char *)(iVar3 + 0xe11) == '\0') {\nLAB_00296184:\n        pXStack_40 = (Xindex *)&adjust_dyndef;\n        pp_Var6 = object->_vptr_Object;\n      }\n      else {\n        pSVar14 = sym->p_;\n        if (((((int)(uint)pSVar14->st_info >> 4 != 2) &&\n             ((uint)(*(int *)&(to->super_Symbol).field_0x28 << 4) >> 0x1c != 2)) ||\n            (orig_st_shndx == 0)) || ((uVar18 == 0 || (uVar19 == 0)))) goto LAB_00296184;\n        iVar3 = (int)pSVar14->st_size;\n        if (*(int *)&pSVar14->st_size == 0 && iVar3 == 0) goto LAB_00296184;\n        iVar15 = (int)to->symsize_;\n        if ((*(int *)&to->symsize_ == 0 && iVar15 == 0) ||\n           ((((uVar2 = *(uint *)&(to->super_Symbol).field_0x28,\n              uVar2 >> 0x1c == (pSVar14->st_info & 0xf) &&\n              (*(int *)&to->symsize_ == *(int *)&pSVar14->st_size)) && (iVar15 == iVar3)) ||\n            ((pcVar5 = (to->super_Symbol).name_, *pcVar5 != '_' || (pcVar5[1] != 'Z'))))))\n        goto LAB_00296184;\n        uStack_58 = *(undefined4 *)&pSVar14->st_value;\n        pIStack_54 = *(Input_file **)((int)&pSVar14->st_value + 4);\n        _adjust_common_sizes = object;\n        uStack_5c = orig_st_shndx;\n        if ((uVar2 & 0xe000) != 0) goto LAB_0029679c;\n        pcStack_34 = (code *)PTR_operator___00435c08;\n        pOStack_2c = &this->candidate_odr_violations_;\n        _adjust_dyndef = (to->super_Symbol).u1_;\n        ppcStack_30 = &pcStack_44;\n        auStack_70._4_4_ = *(undefined4 *)((int)&to->value_ + 4);\n        auStack_70._0_4_ = *(undefined4 *)&to->value_;\n        pXStack_40 = (Xindex *)&adjust_dyndef;\n        uStack_74 = uVar19;\n        pcStack_44 = pcVar5;\n        __node_gen._M_h =\n             (__hashtable_alloc *)\n             std::__detail::\n             _Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n             ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                           *)pOStack_2c,ppcStack_30);\n        p_Stack_38 = &__node_gen;\n        p_Stack_3c = a_Stack_50;\n        uVar2 = (uint)in_stack_ffffff70 & 0xffffff;\n        std::\n        _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                  (p_Stack_3c,__node_gen._M_h,&adjust_common_sizes,p_Stack_38,uVar2,1);\n        pcStack_44 = (to->super_Symbol).name_;\n        __node_gen._M_h = (__hashtable_alloc *)(*pcStack_34)(pOStack_2c,ppcStack_30);\n        std::\n        _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                  (p_Stack_3c,__node_gen._M_h,pXStack_40,p_Stack_38,uVar2 & 0xffffff,1);\n        pp_Var6 = object->_vptr_Object;\n      }\n      iVar3 = (*pp_Var6[5])(object);\n      if (iVar3 == 0) {\n        SVar12 = (STT)sym->p_->st_info;\n        fromtype = SVar12 & STT_HIPROC;\n      }\n      else {\n        SVar12 = (STT)sym->p_->st_info;\n        fromtype = *(uint *)&(to->super_Symbol).field_0x28 >> 0x1c;\n      }\n      uVar2 = symbol_to_bits(SVar12 >> 4,SUB41((uint)*(undefined4 *)&object->field_0x2c >> 0x1f,0),\n                             st_shndx,is_ordinary);\n      p_Stack_3c = *(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                     **)((int)&to->symsize_ + 4);\n      uVar18 = *(uint *)&to->symsize_;\n      bVar9 = should_override(&to->super_Symbol,uVar2,fromtype,OBJECT,object,&adjust_common_sizes,\n                              (bool *)pXStack_40,is_default_version);\n      if (CONCAT31(extraout_var,bVar9) == 0) {\n        puVar13 = (undefined *)((uint)_adjust_common_sizes >> 0x18);\n        pSVar14 = sym->p_;\n        if (puVar13 != (undefined *)0x0) {\n          uVar2 = *(uint *)&pSVar14->st_size;\n          p_Var16 = *(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                      **)((int)&pSVar14->st_size + 4);\n          if ((uVar18 < uVar2) || ((uVar2 == uVar18 && (p_Stack_3c < p_Var16)))) {\n            *(uint *)&to->symsize_ = uVar2;\n            *(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              **)((int)&to->symsize_ + 4) = p_Var16;\n          }\n          uVar2 = *(uint *)&pSVar14->st_value;\n          uVar19 = (uint)pSVar14->st_value;\n          if ((*(uint *)&to->value_ < uVar2) ||\n             ((*(uint *)&to->value_ == uVar2 && ((uint)to->value_ < uVar19)))) {\n            *(uint *)&to->value_ = uVar2;\n            *(uint *)((int)&to->value_ + 4) = uVar19;\n          }\n        }\n        if ((adjust_dyndef != false) &&\n           ((iVar3 = *(int *)&(to->super_Symbol).field_0x2c, -1 < iVar3 || (iVar3 << 1 < 0)))) {\n          (to->super_Symbol).field_0x2c =\n               (to->super_Symbol).field_0x2c & 0x3f | ((int)(uint)pSVar14->st_info >> 4 == 2) << 6 |\n               0x80;\n        }\n        bVar10 = pSVar14->st_other;\n        uVar2 = *(uint *)&(to->super_Symbol).field_0x28;\n        if (((bVar10 & 3) != 0) &&\n           (((uVar2 & 0xc00000) == 0 || ((bVar10 & 3) < (uVar2 << 8) >> 0x1e)))) {\n          uVar2 = uVar2 & 0xff3fffff | (bVar10 & 3) << 0x16;\n          *(uint *)&(to->super_Symbol).field_0x28 = uVar2;\n        }\n      }\n      else {\n        iVar3 = *(int *)&(to->super_Symbol).field_0x28;\n        uVar2 = *(uint *)&to->value_;\n        uVar19 = (uint)to->value_;\n        override<64,_true>(this,to,sym,st_shndx,is_ordinary,object,version);\n        puVar13 = (undefined *)((uint)_adjust_common_sizes >> 0x18);\n        if (puVar13 != (undefined *)0x0) {\n          if ((*(uint *)&to->symsize_ < uVar18) ||\n             ((*(uint *)&to->symsize_ == uVar18 &&\n              (*(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                 **)((int)&to->symsize_ + 4) < p_Stack_3c)))) {\n            *(uint *)&to->symsize_ = uVar18;\n            *(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              **)((int)&to->symsize_ + 4) = p_Stack_3c;\n          }\n          if ((*(uint *)&to->value_ < uVar2) ||\n             ((*(uint *)&to->value_ == uVar2 && ((uint)to->value_ < uVar19)))) {\n            *(uint *)&to->value_ = uVar2;\n            *(uint *)((int)&to->value_ + 4) = uVar19;\n          }\n        }\n        uVar2 = *(uint *)&(to->super_Symbol).field_0x28;\n        if (adjust_dyndef != false) {\n          iVar15 = *(int *)&(to->super_Symbol).field_0x2c;\n          if (iVar15 < 0) {\n            if (-1 < iVar15 << 1) goto LAB_002962d0;\n            bVar10 = (to->super_Symbol).field_0x2c;\n          }\n          else {\n            bVar10 = (to->super_Symbol).field_0x2c;\n          }\n          (to->super_Symbol).field_0x2c =\n               bVar10 & 0x3f | ((uint)(iVar3 << 4) >> 0x1c == 2) << 6 | 0x80;\n        }\n      }\nLAB_002962d0:\n      if (((uVar2 & 0xe000) == 0) &&\n         (pOVar7 = (to->super_Symbol).u1_.output_segment,\n         (int)pOVar7->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_002963dc;\n      while( true ) {\n        if (puVar13 == (undefined *)0x0) {\n          return;\n        }\n        if (*(int *)(*(int *)puVar1 + 8) != 0) break;\nLAB_002963c4:\n        puVar13 = PTR_s_alize_xindex_004323b4 + -0x5cec;\n        pOVar7 = (Output_segment *)\n                 (*(code *)PTR_do_gold_unreachable_004323c4)(puVar13,0x5c,PTR_s__0043226c + 0x3c1c);\nLAB_002963dc:\n        if ((*(int *)&(to->super_Symbol).field_0x28 << 0x17 < 0) &&\n           (-1 < *(int *)&(to->super_Symbol).field_0x2c << 1)) {\n          *(byte *)&pOVar7->output_lists_[3].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_end_of_storage =\n               *(byte *)&pOVar7->output_lists_[3].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_end_of_storage & 0xbf | 0x40;\n        }\n      }\n      if (*(char *)(*(int *)(*(int *)puVar1 + 8) + 0x43f5) == '\0') {\n        return;\n      }\n      uVar2 = *(uint *)&sym->p_->st_size;\n      p_Var16 = *(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                  **)((int)&sym->p_->st_size + 4);\n      if ((uVar2 < uVar18) || ((uVar18 == uVar2 && (p_Var16 < p_Stack_3c)))) {\n        puVar13 = PTR_s__0043226c + 0x3c88;\n      }\n      else if ((uVar18 < uVar2) || ((uVar2 == uVar18 && (p_Stack_3c < p_Var16)))) {\n        puVar13 = PTR_s__0043226c + 0x3cb4;\n      }\n      else {\n        puVar13 = PTR_s__0043226c + 0x3ce0;\n      }\n      pcVar5 = (char *)(*(code *)PTR_gettext_00436818)(puVar13);\n      report_resolve_problem(false,pcVar5,&to->super_Symbol,OBJECT,object);\n      return;\n    }\n    if ((uVar2 & 0xe000) == 0) {\n      pOVar4 = (to->super_Symbol).u1_.object;\n      iVar3 = (*pOVar4->_vptr_Object[5])(pOVar4);\n      if (iVar3 == 0) goto LAB_002963b4;\n      iVar3 = *(int *)(*(int *)puVar1 + 8);\n      if (iVar3 == 0) goto LAB_002963c4;\n      if (*(char *)(*(int *)(iVar3 + 0x594c) + 0x69) != '\0') {\n        uVar2 = *(uint *)&(to->super_Symbol).field_0x28;\n        if (((((uVar2 & 0xe000) != 0) || ((int)(uVar2 << 0x1d) < 0)) ||\n            (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)((to->super_Symbol).u2_.shndx),\n            iVar3 == 0)) ||\n           ((is_ordinary || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(st_shndx), iVar3 == 0))\n           )) {\n          override<64,_true>(this,to,sym,st_shndx,is_ordinary,object,version);\n          return;\n        }\n        uVar18 = *(uint *)&to->symsize_;\n        uVar17 = (uint)to->symsize_;\n        uVar2 = *(uint *)&to->value_;\n        uVar19 = (uint)to->value_;\n        override<64,_true>(this,to,sym,st_shndx,false,object,version);\n        if ((*(uint *)&to->symsize_ < uVar18) ||\n           ((*(uint *)&to->symsize_ == uVar18 && ((uint)to->symsize_ < uVar17)))) {\n          *(uint *)&to->symsize_ = uVar18;\n          *(uint *)((int)&to->symsize_ + 4) = uVar17;\n        }\n        if (uVar2 <= *(uint *)&to->value_) {\n          if (*(uint *)&to->value_ != uVar2) {\n            return;\n          }\n          if (uVar19 <= (uint)to->value_) {\n            return;\n          }\n        }\n        *(uint *)&to->value_ = uVar2;\n        *(uint *)((int)&to->value_ + 4) = uVar19;\n        return;\n      }\n      goto LAB_00295ee8;\n    }\n  }" { (expression_statement "uVar19 = (to->super_Symbol).u2_.shndx;" (assignment_expression "uVar19 = (to->super_Symbol).u2_.shndx" identifier = (field_expression "(to->super_Symbol).u2_.shndx" (field_expression "(to->super_Symbol).u2_" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "uVar18 = -((int)(uVar2 << 0x1d) >> 0x1f);" (assignment_expression "uVar18 = -((int)(uVar2 << 0x1d) >> 0x1f)" identifier = (unary_expression "-((int)(uVar2 << 0x1d) >> 0x1f)" - (parenthesized_expression "((int)(uVar2 << 0x1d) >> 0x1f)" ( (binary_expression "(int)(uVar2 << 0x1d) >> 0x1f" (cast_expression "(int)(uVar2 << 0x1d)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar2 << 0x1d)" ( (binary_expression "uVar2 << 0x1d" identifier << number_literal) ))) >> number_literal) )))) ;) (if_statement "if (((uVar2 << 0x10) >> 0x1d == 0) && (object == (to->super_Symbol).u1_.object)) {\n      if (uVar18 == 0) {\n        bVar10 = (*(code *)PTR_is_common_shndx_00432fe0)(uVar19);\n        bVar10 = bVar10 ^ 1;\n      }\n      else {\n        bVar10 = uVar19 != 0;\n      }\n      if (bVar10 == 0) goto LAB_00295df8;\n      if (!is_ordinary) goto LAB_0029609c;\njoined_r0x002960a4:\n      if ((((uVar18 == 0) && (uVar19 == st_shndx)) &&\n          (*(int *)&sym->p_->st_value == *(int *)&to->value_)) &&\n         ((int)sym->p_->st_value == (int)to->value_)) {\n        return;\n      }\n    }\n    else {\nLAB_00295df8:\n      if (!is_ordinary) {\nLAB_0029609c:\n        if (st_shndx == 0xfff1) goto joined_r0x002960a4;\n      }\n    }" if (parenthesized_expression "(((uVar2 << 0x10) >> 0x1d == 0) && (object == (to->super_Symbol).u1_.object))" ( (binary_expression "((uVar2 << 0x10) >> 0x1d == 0) && (object == (to->super_Symbol).u1_.object)" (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) )) && (parenthesized_expression "(object == (to->super_Symbol).u1_.object)" ( (binary_expression "object == (to->super_Symbol).u1_.object" identifier == (field_expression "(to->super_Symbol).u1_.object" (field_expression "(to->super_Symbol).u1_" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ))) )) (compound_statement "{\n      if (uVar18 == 0) {\n        bVar10 = (*(code *)PTR_is_common_shndx_00432fe0)(uVar19);\n        bVar10 = bVar10 ^ 1;\n      }\n      else {\n        bVar10 = uVar19 != 0;\n      }\n      if (bVar10 == 0) goto LAB_00295df8;\n      if (!is_ordinary) goto LAB_0029609c;\njoined_r0x002960a4:\n      if ((((uVar18 == 0) && (uVar19 == st_shndx)) &&\n          (*(int *)&sym->p_->st_value == *(int *)&to->value_)) &&\n         ((int)sym->p_->st_value == (int)to->value_)) {\n        return;\n      }\n    }" { (if_statement "if (uVar18 == 0) {\n        bVar10 = (*(code *)PTR_is_common_shndx_00432fe0)(uVar19);\n        bVar10 = bVar10 ^ 1;\n      }\n      else {\n        bVar10 = uVar19 != 0;\n      }" if (parenthesized_expression "(uVar18 == 0)" ( (binary_expression "uVar18 == 0" identifier == number_literal) )) (compound_statement "{\n        bVar10 = (*(code *)PTR_is_common_shndx_00432fe0)(uVar19);\n        bVar10 = bVar10 ^ 1;\n      }" { (expression_statement "bVar10 = (*(code *)PTR_is_common_shndx_00432fe0)(uVar19);" (assignment_expression "bVar10 = (*(code *)PTR_is_common_shndx_00432fe0)(uVar19)" identifier = (call_expression "(*(code *)PTR_is_common_shndx_00432fe0)(uVar19)" (parenthesized_expression "(*(code *)PTR_is_common_shndx_00432fe0)" ( (pointer_expression "*(code *)PTR_is_common_shndx_00432fe0" * (cast_expression "(code *)PTR_is_common_shndx_00432fe0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar19)" ( identifier )))) ;) (expression_statement "bVar10 = bVar10 ^ 1;" (assignment_expression "bVar10 = bVar10 ^ 1" identifier = (binary_expression "bVar10 ^ 1" identifier ^ number_literal)) ;) }) (else_clause "else {\n        bVar10 = uVar19 != 0;\n      }" else (compound_statement "{\n        bVar10 = uVar19 != 0;\n      }" { (expression_statement "bVar10 = uVar19 != 0;" (assignment_expression "bVar10 = uVar19 != 0" identifier = (binary_expression "uVar19 != 0" identifier != number_literal)) ;) }))) (if_statement "if (bVar10 == 0) goto LAB_00295df8;" if (parenthesized_expression "(bVar10 == 0)" ( (binary_expression "bVar10 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00295df8;" goto statement_identifier ;)) (if_statement "if (!is_ordinary) goto LAB_0029609c;" if (parenthesized_expression "(!is_ordinary)" ( (unary_expression "!is_ordinary" ! identifier) )) (goto_statement "goto LAB_0029609c;" goto statement_identifier ;)) (labeled_statement "joined_r0x002960a4:\n      if ((((uVar18 == 0) && (uVar19 == st_shndx)) &&\n          (*(int *)&sym->p_->st_value == *(int *)&to->value_)) &&\n         ((int)sym->p_->st_value == (int)to->value_)) {\n        return;\n      }" statement_identifier : (if_statement "if ((((uVar18 == 0) && (uVar19 == st_shndx)) &&\n          (*(int *)&sym->p_->st_value == *(int *)&to->value_)) &&\n         ((int)sym->p_->st_value == (int)to->value_)) {\n        return;\n      }" if (parenthesized_expression "((((uVar18 == 0) && (uVar19 == st_shndx)) &&\n          (*(int *)&sym->p_->st_value == *(int *)&to->value_)) &&\n         ((int)sym->p_->st_value == (int)to->value_))" ( (binary_expression "(((uVar18 == 0) && (uVar19 == st_shndx)) &&\n          (*(int *)&sym->p_->st_value == *(int *)&to->value_)) &&\n         ((int)sym->p_->st_value == (int)to->value_)" (parenthesized_expression "(((uVar18 == 0) && (uVar19 == st_shndx)) &&\n          (*(int *)&sym->p_->st_value == *(int *)&to->value_))" ( (binary_expression "((uVar18 == 0) && (uVar19 == st_shndx)) &&\n          (*(int *)&sym->p_->st_value == *(int *)&to->value_)" (parenthesized_expression "((uVar18 == 0) && (uVar19 == st_shndx))" ( (binary_expression "(uVar18 == 0) && (uVar19 == st_shndx)" (parenthesized_expression "(uVar18 == 0)" ( (binary_expression "uVar18 == 0" identifier == number_literal) )) && (parenthesized_expression "(uVar19 == st_shndx)" ( (binary_expression "uVar19 == st_shndx" identifier == identifier) ))) )) && (parenthesized_expression "(*(int *)&sym->p_->st_value == *(int *)&to->value_)" ( (binary_expression "*(int *)&sym->p_->st_value == *(int *)&to->value_" (pointer_expression "*(int *)&sym->p_->st_value" * (cast_expression "(int *)&sym->p_->st_value" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&sym->p_->st_value" & (field_expression "sym->p_->st_value" (field_expression "sym->p_" identifier -> field_identifier) -> field_identifier)))) == (pointer_expression "*(int *)&to->value_" * (cast_expression "(int *)&to->value_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&to->value_" & (field_expression "to->value_" identifier -> field_identifier))))) ))) )) && (parenthesized_expression "((int)sym->p_->st_value == (int)to->value_)" ( (binary_expression "(int)sym->p_->st_value == (int)to->value_" (cast_expression "(int)sym->p_->st_value" ( (type_descriptor "int" primitive_type) ) (field_expression "sym->p_->st_value" (field_expression "sym->p_" identifier -> field_identifier) -> field_identifier)) == (cast_expression "(int)to->value_" ( (type_descriptor "int" primitive_type) ) (field_expression "to->value_" identifier -> field_identifier))) ))) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) }))) }) (else_clause "else {\nLAB_00295df8:\n      if (!is_ordinary) {\nLAB_0029609c:\n        if (st_shndx == 0xfff1) goto joined_r0x002960a4;\n      }\n    }" else (compound_statement "{\nLAB_00295df8:\n      if (!is_ordinary) {\nLAB_0029609c:\n        if (st_shndx == 0xfff1) goto joined_r0x002960a4;\n      }\n    }" { (labeled_statement "LAB_00295df8:\n      if (!is_ordinary) {\nLAB_0029609c:\n        if (st_shndx == 0xfff1) goto joined_r0x002960a4;\n      }" statement_identifier : (if_statement "if (!is_ordinary) {\nLAB_0029609c:\n        if (st_shndx == 0xfff1) goto joined_r0x002960a4;\n      }" if (parenthesized_expression "(!is_ordinary)" ( (unary_expression "!is_ordinary" ! identifier) )) (compound_statement "{\nLAB_0029609c:\n        if (st_shndx == 0xfff1) goto joined_r0x002960a4;\n      }" { (labeled_statement "LAB_0029609c:\n        if (st_shndx == 0xfff1) goto joined_r0x002960a4;" statement_identifier : (if_statement "if (st_shndx == 0xfff1) goto joined_r0x002960a4;" if (parenthesized_expression "(st_shndx == 0xfff1)" ( (binary_expression "st_shndx == 0xfff1" identifier == number_literal) )) (goto_statement "goto joined_r0x002960a4;" goto statement_identifier ;))) }))) }))) (expression_statement "puVar1 = PTR_parameters_00432be0;" (assignment_expression "puVar1 = PTR_parameters_00432be0" identifier = identifier) ;) (expression_statement "piVar11 = *(int **)(*(int *)PTR_parameters_00432be0 + 0xc);" (assignment_expression "piVar11 = *(int **)(*(int *)PTR_parameters_00432be0 + 0xc)" identifier = (pointer_expression "*(int **)(*(int *)PTR_parameters_00432be0 + 0xc)" * (cast_expression "(int **)(*(int *)PTR_parameters_00432be0 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)PTR_parameters_00432be0 + 0xc)" ( (binary_expression "*(int *)PTR_parameters_00432be0 + 0xc" (pointer_expression "*(int *)PTR_parameters_00432be0" * (cast_expression "(int *)PTR_parameters_00432be0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ;) (expression_statement "puVar13 = PTR_s__0043226c;" (assignment_expression "puVar13 = PTR_s__0043226c" identifier = identifier) ;) (if_statement "if (piVar11 == (int *)0x0) goto LAB_00296780;" if (parenthesized_expression "(piVar11 == (int *)0x0)" ( (binary_expression "piVar11 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00296780;" goto statement_identifier ;)) (if_statement "if ((*(char *)(piVar11[1] + 0xd) != '\0') &&\n       (in_stack_ffffff70 = version,\n       iVar3 = (**(code **)(*piVar11 + 0xac))(piVar11,to,sym,object,version), iVar3 != 0)) {\n      return;\n    }" if (parenthesized_expression "((*(char *)(piVar11[1] + 0xd) != '\0') &&\n       (in_stack_ffffff70 = version,\n       iVar3 = (**(code **)(*piVar11 + 0xac))(piVar11,to,sym,object,version), iVar3 != 0))" ( (binary_expression "(*(char *)(piVar11[1] + 0xd) != '\0') &&\n       (in_stack_ffffff70 = version,\n       iVar3 = (**(code **)(*piVar11 + 0xac))(piVar11,to,sym,object,version), iVar3 != 0)" (parenthesized_expression "(*(char *)(piVar11[1] + 0xd) != '\0')" ( (binary_expression "*(char *)(piVar11[1] + 0xd) != '\0'" (pointer_expression "*(char *)(piVar11[1] + 0xd)" * (cast_expression "(char *)(piVar11[1] + 0xd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar11[1] + 0xd)" ( (binary_expression "piVar11[1] + 0xd" (subscript_expression "piVar11[1]" identifier [ number_literal ]) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(in_stack_ffffff70 = version,\n       iVar3 = (**(code **)(*piVar11 + 0xac))(piVar11,to,sym,object,version), iVar3 != 0)" ( (comma_expression "in_stack_ffffff70 = version,\n       iVar3 = (**(code **)(*piVar11 + 0xac))(piVar11,to,sym,object,version), iVar3 != 0" (assignment_expression "in_stack_ffffff70 = version" identifier = identifier) , (comma_expression "iVar3 = (**(code **)(*piVar11 + 0xac))(piVar11,to,sym,object,version), iVar3 != 0" (assignment_expression "iVar3 = (**(code **)(*piVar11 + 0xac))(piVar11,to,sym,object,version)" identifier = (call_expression "(**(code **)(*piVar11 + 0xac))(piVar11,to,sym,object,version)" (parenthesized_expression "(**(code **)(*piVar11 + 0xac))" ( (pointer_expression "**(code **)(*piVar11 + 0xac)" * (pointer_expression "*(code **)(*piVar11 + 0xac)" * (cast_expression "(code **)(*piVar11 + 0xac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar11 + 0xac)" ( (binary_expression "*piVar11 + 0xac" (pointer_expression "*piVar11" * identifier) + number_literal) ))))) )) (argument_list "(piVar11,to,sym,object,version)" ( identifier , identifier , identifier , identifier , identifier )))) , (binary_expression "iVar3 != 0" identifier != number_literal))) ))) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (if_statement "if (*(int *)&object->field_0x2c < 0) {\n      if ((st_shndx == 0) &&\n         ((((uint)(*(int *)&(to->super_Symbol).field_0x28 << 8) >> 0x1e) + 3 & 3) < 2)) {\n        return;\n      }\n      *(uint *)&(to->super_Symbol).field_0x28 =\n           *(uint *)&(to->super_Symbol).field_0x28 & 0xffffff7f | 0x80;\n      iVar3 = (*object->_vptr_Object[5])(object);\n    }\n    else {\n      if (((sym->p_->st_info & 0xf) == 5) &&\n         ((is_ordinary || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(st_shndx), iVar3 == 0))))\n      {\n        uVar8 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + 0x3c50);\n        (*(code *)PTR_demangled_name_00433f24)(&adjust_dyndef,to);\n        if ((*(uint *)&(to->super_Symbol).field_0x28 & 0xe000) == 0) {\n                    /* try { // try from 002965d8 to 002965df has its CatchHandler @ 002967d0 */\n          (*(code *)PTR_gold_warning_0043245c)\n                    (uVar8,_adjust_dyndef,\n                     ((to->super_Symbol).u1_.output_segment)->output_lists_[0].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_finish);\n          if (_adjust_dyndef == (Object *)auStack_70) {\n            return;\n          }\n          operator_delete(_adjust_dyndef);\n          return;\n        }\n        goto LAB_002967b4;\n      }\n      *(uint *)&(to->super_Symbol).field_0x28 =\n           *(uint *)&(to->super_Symbol).field_0x28 & 0xfffffeff | 0x100;\n      iVar3 = (*object->_vptr_Object[5])(object);\n    }" if (parenthesized_expression "(*(int *)&object->field_0x2c < 0)" ( (binary_expression "*(int *)&object->field_0x2c < 0" (pointer_expression "*(int *)&object->field_0x2c" * (cast_expression "(int *)&object->field_0x2c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&object->field_0x2c" & (field_expression "object->field_0x2c" identifier -> field_identifier)))) < number_literal) )) (compound_statement "{\n      if ((st_shndx == 0) &&\n         ((((uint)(*(int *)&(to->super_Symbol).field_0x28 << 8) >> 0x1e) + 3 & 3) < 2)) {\n        return;\n      }\n      *(uint *)&(to->super_Symbol).field_0x28 =\n           *(uint *)&(to->super_Symbol).field_0x28 & 0xffffff7f | 0x80;\n      iVar3 = (*object->_vptr_Object[5])(object);\n    }" { (if_statement "if ((st_shndx == 0) &&\n         ((((uint)(*(int *)&(to->super_Symbol).field_0x28 << 8) >> 0x1e) + 3 & 3) < 2)) {\n        return;\n      }" if (parenthesized_expression "((st_shndx == 0) &&\n         ((((uint)(*(int *)&(to->super_Symbol).field_0x28 << 8) >> 0x1e) + 3 & 3) < 2))" ( (binary_expression "(st_shndx == 0) &&\n         ((((uint)(*(int *)&(to->super_Symbol).field_0x28 << 8) >> 0x1e) + 3 & 3) < 2)" (parenthesized_expression "(st_shndx == 0)" ( (binary_expression "st_shndx == 0" identifier == number_literal) )) && (parenthesized_expression "((((uint)(*(int *)&(to->super_Symbol).field_0x28 << 8) >> 0x1e) + 3 & 3) < 2)" ( (binary_expression "(((uint)(*(int *)&(to->super_Symbol).field_0x28 << 8) >> 0x1e) + 3 & 3) < 2" (parenthesized_expression "(((uint)(*(int *)&(to->super_Symbol).field_0x28 << 8) >> 0x1e) + 3 & 3)" ( (binary_expression "((uint)(*(int *)&(to->super_Symbol).field_0x28 << 8) >> 0x1e) + 3 & 3" (binary_expression "((uint)(*(int *)&(to->super_Symbol).field_0x28 << 8) >> 0x1e) + 3" (parenthesized_expression "((uint)(*(int *)&(to->super_Symbol).field_0x28 << 8) >> 0x1e)" ( (binary_expression "(uint)(*(int *)&(to->super_Symbol).field_0x28 << 8) >> 0x1e" (call_expression "(uint)(*(int *)&(to->super_Symbol).field_0x28 << 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)&(to->super_Symbol).field_0x28 << 8)" ( (binary_expression "*(int *)&(to->super_Symbol).field_0x28 << 8" (pointer_expression "*(int *)&(to->super_Symbol).field_0x28" * (cast_expression "(int *)&(to->super_Symbol).field_0x28" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(to->super_Symbol).field_0x28" & (field_expression "(to->super_Symbol).field_0x28" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier)))) << number_literal) ))) >> number_literal) )) + number_literal) & number_literal) )) < number_literal) ))) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "*(uint *)&(to->super_Symbol).field_0x28 =\n           *(uint *)&(to->super_Symbol).field_0x28 & 0xffffff7f | 0x80;" (assignment_expression "*(uint *)&(to->super_Symbol).field_0x28 =\n           *(uint *)&(to->super_Symbol).field_0x28 & 0xffffff7f | 0x80" (pointer_expression "*(uint *)&(to->super_Symbol).field_0x28" * (cast_expression "(uint *)&(to->super_Symbol).field_0x28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(to->super_Symbol).field_0x28" & (field_expression "(to->super_Symbol).field_0x28" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier)))) = (binary_expression "*(uint *)&(to->super_Symbol).field_0x28 & 0xffffff7f | 0x80" (binary_expression "*(uint *)&(to->super_Symbol).field_0x28 & 0xffffff7f" (pointer_expression "*(uint *)&(to->super_Symbol).field_0x28" * (cast_expression "(uint *)&(to->super_Symbol).field_0x28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(to->super_Symbol).field_0x28" & (field_expression "(to->super_Symbol).field_0x28" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier)))) & number_literal) | number_literal)) ;) (expression_statement "iVar3 = (*object->_vptr_Object[5])(object);" (assignment_expression "iVar3 = (*object->_vptr_Object[5])(object)" identifier = (call_expression "(*object->_vptr_Object[5])(object)" (parenthesized_expression "(*object->_vptr_Object[5])" ( (pointer_expression "*object->_vptr_Object[5]" * (subscript_expression "object->_vptr_Object[5]" (field_expression "object->_vptr_Object" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(object)" ( identifier )))) ;) }) (else_clause "else {\n      if (((sym->p_->st_info & 0xf) == 5) &&\n         ((is_ordinary || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(st_shndx), iVar3 == 0))))\n      {\n        uVar8 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + 0x3c50);\n        (*(code *)PTR_demangled_name_00433f24)(&adjust_dyndef,to);\n        if ((*(uint *)&(to->super_Symbol).field_0x28 & 0xe000) == 0) {\n                    /* try { // try from 002965d8 to 002965df has its CatchHandler @ 002967d0 */\n          (*(code *)PTR_gold_warning_0043245c)\n                    (uVar8,_adjust_dyndef,\n                     ((to->super_Symbol).u1_.output_segment)->output_lists_[0].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_finish);\n          if (_adjust_dyndef == (Object *)auStack_70) {\n            return;\n          }\n          operator_delete(_adjust_dyndef);\n          return;\n        }\n        goto LAB_002967b4;\n      }\n      *(uint *)&(to->super_Symbol).field_0x28 =\n           *(uint *)&(to->super_Symbol).field_0x28 & 0xfffffeff | 0x100;\n      iVar3 = (*object->_vptr_Object[5])(object);\n    }" else (compound_statement "{\n      if (((sym->p_->st_info & 0xf) == 5) &&\n         ((is_ordinary || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(st_shndx), iVar3 == 0))))\n      {\n        uVar8 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + 0x3c50);\n        (*(code *)PTR_demangled_name_00433f24)(&adjust_dyndef,to);\n        if ((*(uint *)&(to->super_Symbol).field_0x28 & 0xe000) == 0) {\n                    /* try { // try from 002965d8 to 002965df has its CatchHandler @ 002967d0 */\n          (*(code *)PTR_gold_warning_0043245c)\n                    (uVar8,_adjust_dyndef,\n                     ((to->super_Symbol).u1_.output_segment)->output_lists_[0].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_finish);\n          if (_adjust_dyndef == (Object *)auStack_70) {\n            return;\n          }\n          operator_delete(_adjust_dyndef);\n          return;\n        }\n        goto LAB_002967b4;\n      }\n      *(uint *)&(to->super_Symbol).field_0x28 =\n           *(uint *)&(to->super_Symbol).field_0x28 & 0xfffffeff | 0x100;\n      iVar3 = (*object->_vptr_Object[5])(object);\n    }" { (if_statement "if (((sym->p_->st_info & 0xf) == 5) &&\n         ((is_ordinary || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(st_shndx), iVar3 == 0))))\n      {\n        uVar8 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + 0x3c50);\n        (*(code *)PTR_demangled_name_00433f24)(&adjust_dyndef,to);\n        if ((*(uint *)&(to->super_Symbol).field_0x28 & 0xe000) == 0) {\n                    /* try { // try from 002965d8 to 002965df has its CatchHandler @ 002967d0 */\n          (*(code *)PTR_gold_warning_0043245c)\n                    (uVar8,_adjust_dyndef,\n                     ((to->super_Symbol).u1_.output_segment)->output_lists_[0].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_finish);\n          if (_adjust_dyndef == (Object *)auStack_70) {\n            return;\n          }\n          operator_delete(_adjust_dyndef);\n          return;\n        }\n        goto LAB_002967b4;\n      }" if (parenthesized_expression "(((sym->p_->st_info & 0xf) == 5) &&\n         ((is_ordinary || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(st_shndx), iVar3 == 0))))" ( (binary_expression "((sym->p_->st_info & 0xf) == 5) &&\n         ((is_ordinary || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(st_shndx), iVar3 == 0)))" (parenthesized_expression "((sym->p_->st_info & 0xf) == 5)" ( (binary_expression "(sym->p_->st_info & 0xf) == 5" (parenthesized_expression "(sym->p_->st_info & 0xf)" ( (binary_expression "sym->p_->st_info & 0xf" (field_expression "sym->p_->st_info" (field_expression "sym->p_" identifier -> field_identifier) -> field_identifier) & number_literal) )) == number_literal) )) && (parenthesized_expression "((is_ordinary || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(st_shndx), iVar3 == 0)))" ( (parenthesized_expression "(is_ordinary || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(st_shndx), iVar3 == 0))" ( (binary_expression "is_ordinary || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(st_shndx), iVar3 == 0)" identifier || (parenthesized_expression "(iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(st_shndx), iVar3 == 0)" ( (comma_expression "iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(st_shndx), iVar3 == 0" (assignment_expression "iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(st_shndx)" identifier = (call_expression "(*(code *)PTR_is_common_shndx_00432fe0)(st_shndx)" (parenthesized_expression "(*(code *)PTR_is_common_shndx_00432fe0)" ( (pointer_expression "*(code *)PTR_is_common_shndx_00432fe0" * (cast_expression "(code *)PTR_is_common_shndx_00432fe0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(st_shndx)" ( identifier )))) , (binary_expression "iVar3 == 0" identifier == number_literal)) ))) )) ))) )) (compound_statement "{\n        uVar8 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + 0x3c50);\n        (*(code *)PTR_demangled_name_00433f24)(&adjust_dyndef,to);\n        if ((*(uint *)&(to->super_Symbol).field_0x28 & 0xe000) == 0) {\n                    /* try { // try from 002965d8 to 002965df has its CatchHandler @ 002967d0 */\n          (*(code *)PTR_gold_warning_0043245c)\n                    (uVar8,_adjust_dyndef,\n                     ((to->super_Symbol).u1_.output_segment)->output_lists_[0].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_finish);\n          if (_adjust_dyndef == (Object *)auStack_70) {\n            return;\n          }\n          operator_delete(_adjust_dyndef);\n          return;\n        }\n        goto LAB_002967b4;\n      }" { (expression_statement "uVar8 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + 0x3c50);" (assignment_expression "uVar8 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + 0x3c50)" identifier = (call_expression "(*(code *)PTR_gettext_00436818)(PTR_s__0043226c + 0x3c50)" (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 + 0x3c50)" ( (binary_expression "PTR_s__0043226c + 0x3c50" identifier + number_literal) )))) ;) (expression_statement "(*(code *)PTR_demangled_name_00433f24)(&adjust_dyndef,to);" (call_expression "(*(code *)PTR_demangled_name_00433f24)(&adjust_dyndef,to)" (parenthesized_expression "(*(code *)PTR_demangled_name_00433f24)" ( (pointer_expression "*(code *)PTR_demangled_name_00433f24" * (cast_expression "(code *)PTR_demangled_name_00433f24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&adjust_dyndef,to)" ( (pointer_expression "&adjust_dyndef" & identifier) , identifier ))) ;) (if_statement "if ((*(uint *)&(to->super_Symbol).field_0x28 & 0xe000) == 0) {\n                    /* try { // try from 002965d8 to 002965df has its CatchHandler @ 002967d0 */\n          (*(code *)PTR_gold_warning_0043245c)\n                    (uVar8,_adjust_dyndef,\n                     ((to->super_Symbol).u1_.output_segment)->output_lists_[0].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_finish);\n          if (_adjust_dyndef == (Object *)auStack_70) {\n            return;\n          }\n          operator_delete(_adjust_dyndef);\n          return;\n        }" if (parenthesized_expression "((*(uint *)&(to->super_Symbol).field_0x28 & 0xe000) == 0)" ( (binary_expression "(*(uint *)&(to->super_Symbol).field_0x28 & 0xe000) == 0" (parenthesized_expression "(*(uint *)&(to->super_Symbol).field_0x28 & 0xe000)" ( (binary_expression "*(uint *)&(to->super_Symbol).field_0x28 & 0xe000" (pointer_expression "*(uint *)&(to->super_Symbol).field_0x28" * (cast_expression "(uint *)&(to->super_Symbol).field_0x28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(to->super_Symbol).field_0x28" & (field_expression "(to->super_Symbol).field_0x28" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier)))) & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* try { // try from 002965d8 to 002965df has its CatchHandler @ 002967d0 */\n          (*(code *)PTR_gold_warning_0043245c)\n                    (uVar8,_adjust_dyndef,\n                     ((to->super_Symbol).u1_.output_segment)->output_lists_[0].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_finish);\n          if (_adjust_dyndef == (Object *)auStack_70) {\n            return;\n          }\n          operator_delete(_adjust_dyndef);\n          return;\n        }" { comment (expression_statement "(*(code *)PTR_gold_warning_0043245c)\n                    (uVar8,_adjust_dyndef,\n                     ((to->super_Symbol).u1_.output_segment)->output_lists_[0].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_finish);" (call_expression "(*(code *)PTR_gold_warning_0043245c)\n                    (uVar8,_adjust_dyndef,\n                     ((to->super_Symbol).u1_.output_segment)->output_lists_[0].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_finish)" (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 "(uVar8,_adjust_dyndef,\n                     ((to->super_Symbol).u1_.output_segment)->output_lists_[0].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_finish)" ( identifier , identifier , (binary_expression "((to->super_Symbol).u1_.output_segment)->output_lists_[0].\n                     super__Vector_base<gold" (field_expression "((to->super_Symbol).u1_.output_segment)->output_lists_[0].\n                     super__Vector_base" (subscript_expression "((to->super_Symbol).u1_.output_segment)->output_lists_[0]" (field_expression "((to->super_Symbol).u1_.output_segment)->output_lists_" (parenthesized_expression "((to->super_Symbol).u1_.output_segment)" ( (field_expression "(to->super_Symbol).u1_.output_segment" (field_expression "(to->super_Symbol).u1_" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier) )) -> field_identifier) [ number_literal ]) . field_identifier) < identifier) (ERROR "::Output_data*" : : identifier *) , (ERROR "_std::allocator<gold::" identifier : : (binary_expression "allocator<gold" identifier < identifier) : :) (field_expression "Output_data*>_>.\n                     _M_impl._M_finish" (field_expression "Output_data*>_>.\n                     _M_impl" (binary_expression "Output_data*>_" identifier * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ))) ;) (if_statement "if (_adjust_dyndef == (Object *)auStack_70) {\n            return;\n          }" if (parenthesized_expression "(_adjust_dyndef == (Object *)auStack_70)" ( (binary_expression "_adjust_dyndef == (Object *)auStack_70" identifier == (cast_expression "(Object *)auStack_70" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n            return;\n          }" { (return_statement "return;" return ;) })) (expression_statement "operator_delete(_adjust_dyndef);" (call_expression "operator_delete(_adjust_dyndef)" identifier (argument_list "(_adjust_dyndef)" ( identifier ))) ;) (return_statement "return;" return ;) })) (goto_statement "goto LAB_002967b4;" goto statement_identifier ;) })) (expression_statement "*(uint *)&(to->super_Symbol).field_0x28 =\n           *(uint *)&(to->super_Symbol).field_0x28 & 0xfffffeff | 0x100;" (assignment_expression "*(uint *)&(to->super_Symbol).field_0x28 =\n           *(uint *)&(to->super_Symbol).field_0x28 & 0xfffffeff | 0x100" (pointer_expression "*(uint *)&(to->super_Symbol).field_0x28" * (cast_expression "(uint *)&(to->super_Symbol).field_0x28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(to->super_Symbol).field_0x28" & (field_expression "(to->super_Symbol).field_0x28" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier)))) = (binary_expression "*(uint *)&(to->super_Symbol).field_0x28 & 0xfffffeff | 0x100" (binary_expression "*(uint *)&(to->super_Symbol).field_0x28 & 0xfffffeff" (pointer_expression "*(uint *)&(to->super_Symbol).field_0x28" * (cast_expression "(uint *)&(to->super_Symbol).field_0x28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(to->super_Symbol).field_0x28" & (field_expression "(to->super_Symbol).field_0x28" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier)))) & number_literal) | number_literal)) ;) (expression_statement "iVar3 = (*object->_vptr_Object[5])(object);" (assignment_expression "iVar3 = (*object->_vptr_Object[5])(object)" identifier = (call_expression "(*object->_vptr_Object[5])(object)" (parenthesized_expression "(*object->_vptr_Object[5])" ( (pointer_expression "*object->_vptr_Object[5]" * (subscript_expression "object->_vptr_Object[5]" (field_expression "object->_vptr_Object" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(object)" ( identifier )))) ;) }))) (if_statement "if ((iVar3 == 0) && (-1 < *(int *)&object->field_0x2c)) {\n      *(uint *)&(to->super_Symbol).field_0x28 =\n           *(uint *)&(to->super_Symbol).field_0x28 & 0xfffffffd | 2;\n    }" if (parenthesized_expression "((iVar3 == 0) && (-1 < *(int *)&object->field_0x2c))" ( (binary_expression "(iVar3 == 0) && (-1 < *(int *)&object->field_0x2c)" (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) && (parenthesized_expression "(-1 < *(int *)&object->field_0x2c)" ( (binary_expression "-1 < *(int *)&object->field_0x2c" number_literal < (pointer_expression "*(int *)&object->field_0x2c" * (cast_expression "(int *)&object->field_0x2c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&object->field_0x2c" & (field_expression "object->field_0x2c" identifier -> field_identifier))))) ))) )) (compound_statement "{\n      *(uint *)&(to->super_Symbol).field_0x28 =\n           *(uint *)&(to->super_Symbol).field_0x28 & 0xfffffffd | 2;\n    }" { (expression_statement "*(uint *)&(to->super_Symbol).field_0x28 =\n           *(uint *)&(to->super_Symbol).field_0x28 & 0xfffffffd | 2;" (assignment_expression "*(uint *)&(to->super_Symbol).field_0x28 =\n           *(uint *)&(to->super_Symbol).field_0x28 & 0xfffffffd | 2" (pointer_expression "*(uint *)&(to->super_Symbol).field_0x28" * (cast_expression "(uint *)&(to->super_Symbol).field_0x28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(to->super_Symbol).field_0x28" & (field_expression "(to->super_Symbol).field_0x28" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier)))) = (binary_expression "*(uint *)&(to->super_Symbol).field_0x28 & 0xfffffffd | 2" (binary_expression "*(uint *)&(to->super_Symbol).field_0x28 & 0xfffffffd" (pointer_expression "*(uint *)&(to->super_Symbol).field_0x28" * (cast_expression "(uint *)&(to->super_Symbol).field_0x28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(to->super_Symbol).field_0x28" & (field_expression "(to->super_Symbol).field_0x28" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier)))) & number_literal) | number_literal)) ;) })) (expression_statement "uVar2 = *(uint *)&(to->super_Symbol).field_0x28;" (assignment_expression "uVar2 = *(uint *)&(to->super_Symbol).field_0x28" identifier = (pointer_expression "*(uint *)&(to->super_Symbol).field_0x28" * (cast_expression "(uint *)&(to->super_Symbol).field_0x28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(to->super_Symbol).field_0x28" & (field_expression "(to->super_Symbol).field_0x28" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier))))) ;) (if_statement "if ((uVar2 << 0x10) >> 0x1d != 0) {\nLAB_002963b4:\n      iVar3 = *(int *)(*(int *)puVar1 + 8);\n      if (iVar3 == 0) goto LAB_002963c4;\nLAB_00295ee8:\n      if (*(char *)(iVar3 + 0xe11) == '\0') {\nLAB_00296184:\n        pXStack_40 = (Xindex *)&adjust_dyndef;\n        pp_Var6 = object->_vptr_Object;\n      }\n      else {\n        pSVar14 = sym->p_;\n        if (((((int)(uint)pSVar14->st_info >> 4 != 2) &&\n             ((uint)(*(int *)&(to->super_Symbol).field_0x28 << 4) >> 0x1c != 2)) ||\n            (orig_st_shndx == 0)) || ((uVar18 == 0 || (uVar19 == 0)))) goto LAB_00296184;\n        iVar3 = (int)pSVar14->st_size;\n        if (*(int *)&pSVar14->st_size == 0 && iVar3 == 0) goto LAB_00296184;\n        iVar15 = (int)to->symsize_;\n        if ((*(int *)&to->symsize_ == 0 && iVar15 == 0) ||\n           ((((uVar2 = *(uint *)&(to->super_Symbol).field_0x28,\n              uVar2 >> 0x1c == (pSVar14->st_info & 0xf) &&\n              (*(int *)&to->symsize_ == *(int *)&pSVar14->st_size)) && (iVar15 == iVar3)) ||\n            ((pcVar5 = (to->super_Symbol).name_, *pcVar5 != '_' || (pcVar5[1] != 'Z'))))))\n        goto LAB_00296184;\n        uStack_58 = *(undefined4 *)&pSVar14->st_value;\n        pIStack_54 = *(Input_file **)((int)&pSVar14->st_value + 4);\n        _adjust_common_sizes = object;\n        uStack_5c = orig_st_shndx;\n        if ((uVar2 & 0xe000) != 0) goto LAB_0029679c;\n        pcStack_34 = (code *)PTR_operator___00435c08;\n        pOStack_2c = &this->candidate_odr_violations_;\n        _adjust_dyndef = (to->super_Symbol).u1_;\n        ppcStack_30 = &pcStack_44;\n        auStack_70._4_4_ = *(undefined4 *)((int)&to->value_ + 4);\n        auStack_70._0_4_ = *(undefined4 *)&to->value_;\n        pXStack_40 = (Xindex *)&adjust_dyndef;\n        uStack_74 = uVar19;\n        pcStack_44 = pcVar5;\n        __node_gen._M_h =\n             (__hashtable_alloc *)\n             std::__detail::\n             _Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n             ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                           *)pOStack_2c,ppcStack_30);\n        p_Stack_38 = &__node_gen;\n        p_Stack_3c = a_Stack_50;\n        uVar2 = (uint)in_stack_ffffff70 & 0xffffff;\n        std::\n        _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                  (p_Stack_3c,__node_gen._M_h,&adjust_common_sizes,p_Stack_38,uVar2,1);\n        pcStack_44 = (to->super_Symbol).name_;\n        __node_gen._M_h = (__hashtable_alloc *)(*pcStack_34)(pOStack_2c,ppcStack_30);\n        std::\n        _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                  (p_Stack_3c,__node_gen._M_h,pXStack_40,p_Stack_38,uVar2 & 0xffffff,1);\n        pp_Var6 = object->_vptr_Object;\n      }\n      iVar3 = (*pp_Var6[5])(object);\n      if (iVar3 == 0) {\n        SVar12 = (STT)sym->p_->st_info;\n        fromtype = SVar12 & STT_HIPROC;\n      }\n      else {\n        SVar12 = (STT)sym->p_->st_info;\n        fromtype = *(uint *)&(to->super_Symbol).field_0x28 >> 0x1c;\n      }\n      uVar2 = symbol_to_bits(SVar12 >> 4,SUB41((uint)*(undefined4 *)&object->field_0x2c >> 0x1f,0),\n                             st_shndx,is_ordinary);\n      p_Stack_3c = *(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                     **)((int)&to->symsize_ + 4);\n      uVar18 = *(uint *)&to->symsize_;\n      bVar9 = should_override(&to->super_Symbol,uVar2,fromtype,OBJECT,object,&adjust_common_sizes,\n                              (bool *)pXStack_40,is_default_version);\n      if (CONCAT31(extraout_var,bVar9) == 0) {\n        puVar13 = (undefined *)((uint)_adjust_common_sizes >> 0x18);\n        pSVar14 = sym->p_;\n        if (puVar13 != (undefined *)0x0) {\n          uVar2 = *(uint *)&pSVar14->st_size;\n          p_Var16 = *(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                      **)((int)&pSVar14->st_size + 4);\n          if ((uVar18 < uVar2) || ((uVar2 == uVar18 && (p_Stack_3c < p_Var16)))) {\n            *(uint *)&to->symsize_ = uVar2;\n            *(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              **)((int)&to->symsize_ + 4) = p_Var16;\n          }\n          uVar2 = *(uint *)&pSVar14->st_value;\n          uVar19 = (uint)pSVar14->st_value;\n          if ((*(uint *)&to->value_ < uVar2) ||\n             ((*(uint *)&to->value_ == uVar2 && ((uint)to->value_ < uVar19)))) {\n            *(uint *)&to->value_ = uVar2;\n            *(uint *)((int)&to->value_ + 4) = uVar19;\n          }\n        }\n        if ((adjust_dyndef != false) &&\n           ((iVar3 = *(int *)&(to->super_Symbol).field_0x2c, -1 < iVar3 || (iVar3 << 1 < 0)))) {\n          (to->super_Symbol).field_0x2c =\n               (to->super_Symbol).field_0x2c & 0x3f | ((int)(uint)pSVar14->st_info >> 4 == 2) << 6 |\n               0x80;\n        }\n        bVar10 = pSVar14->st_other;\n        uVar2 = *(uint *)&(to->super_Symbol).field_0x28;\n        if (((bVar10 & 3) != 0) &&\n           (((uVar2 & 0xc00000) == 0 || ((bVar10 & 3) < (uVar2 << 8) >> 0x1e)))) {\n          uVar2 = uVar2 & 0xff3fffff | (bVar10 & 3) << 0x16;\n          *(uint *)&(to->super_Symbol).field_0x28 = uVar2;\n        }\n      }\n      else {\n        iVar3 = *(int *)&(to->super_Symbol).field_0x28;\n        uVar2 = *(uint *)&to->value_;\n        uVar19 = (uint)to->value_;\n        override<64,_true>(this,to,sym,st_shndx,is_ordinary,object,version);\n        puVar13 = (undefined *)((uint)_adjust_common_sizes >> 0x18);\n        if (puVar13 != (undefined *)0x0) {\n          if ((*(uint *)&to->symsize_ < uVar18) ||\n             ((*(uint *)&to->symsize_ == uVar18 &&\n              (*(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                 **)((int)&to->symsize_ + 4) < p_Stack_3c)))) {\n            *(uint *)&to->symsize_ = uVar18;\n            *(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              **)((int)&to->symsize_ + 4) = p_Stack_3c;\n          }\n          if ((*(uint *)&to->value_ < uVar2) ||\n             ((*(uint *)&to->value_ == uVar2 && ((uint)to->value_ < uVar19)))) {\n            *(uint *)&to->value_ = uVar2;\n            *(uint *)((int)&to->value_ + 4) = uVar19;\n          }\n        }\n        uVar2 = *(uint *)&(to->super_Symbol).field_0x28;\n        if (adjust_dyndef != false) {\n          iVar15 = *(int *)&(to->super_Symbol).field_0x2c;\n          if (iVar15 < 0) {\n            if (-1 < iVar15 << 1) goto LAB_002962d0;\n            bVar10 = (to->super_Symbol).field_0x2c;\n          }\n          else {\n            bVar10 = (to->super_Symbol).field_0x2c;\n          }\n          (to->super_Symbol).field_0x2c =\n               bVar10 & 0x3f | ((uint)(iVar3 << 4) >> 0x1c == 2) << 6 | 0x80;\n        }\n      }\nLAB_002962d0:\n      if (((uVar2 & 0xe000) == 0) &&\n         (pOVar7 = (to->super_Symbol).u1_.output_segment,\n         (int)pOVar7->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_002963dc;\n      while( true ) {\n        if (puVar13 == (undefined *)0x0) {\n          return;\n        }\n        if (*(int *)(*(int *)puVar1 + 8) != 0) break;\nLAB_002963c4:\n        puVar13 = PTR_s_alize_xindex_004323b4 + -0x5cec;\n        pOVar7 = (Output_segment *)\n                 (*(code *)PTR_do_gold_unreachable_004323c4)(puVar13,0x5c,PTR_s__0043226c + 0x3c1c);\nLAB_002963dc:\n        if ((*(int *)&(to->super_Symbol).field_0x28 << 0x17 < 0) &&\n           (-1 < *(int *)&(to->super_Symbol).field_0x2c << 1)) {\n          *(byte *)&pOVar7->output_lists_[3].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_end_of_storage =\n               *(byte *)&pOVar7->output_lists_[3].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_end_of_storage & 0xbf | 0x40;\n        }\n      }\n      if (*(char *)(*(int *)(*(int *)puVar1 + 8) + 0x43f5) == '\0') {\n        return;\n      }\n      uVar2 = *(uint *)&sym->p_->st_size;\n      p_Var16 = *(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                  **)((int)&sym->p_->st_size + 4);\n      if ((uVar2 < uVar18) || ((uVar18 == uVar2 && (p_Var16 < p_Stack_3c)))) {\n        puVar13 = PTR_s__0043226c + 0x3c88;\n      }\n      else if ((uVar18 < uVar2) || ((uVar2 == uVar18 && (p_Stack_3c < p_Var16)))) {\n        puVar13 = PTR_s__0043226c + 0x3cb4;\n      }\n      else {\n        puVar13 = PTR_s__0043226c + 0x3ce0;\n      }\n      pcVar5 = (char *)(*(code *)PTR_gettext_00436818)(puVar13);\n      report_resolve_problem(false,pcVar5,&to->super_Symbol,OBJECT,object);\n      return;\n    }" if (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 "{\nLAB_002963b4:\n      iVar3 = *(int *)(*(int *)puVar1 + 8);\n      if (iVar3 == 0) goto LAB_002963c4;\nLAB_00295ee8:\n      if (*(char *)(iVar3 + 0xe11) == '\0') {\nLAB_00296184:\n        pXStack_40 = (Xindex *)&adjust_dyndef;\n        pp_Var6 = object->_vptr_Object;\n      }\n      else {\n        pSVar14 = sym->p_;\n        if (((((int)(uint)pSVar14->st_info >> 4 != 2) &&\n             ((uint)(*(int *)&(to->super_Symbol).field_0x28 << 4) >> 0x1c != 2)) ||\n            (orig_st_shndx == 0)) || ((uVar18 == 0 || (uVar19 == 0)))) goto LAB_00296184;\n        iVar3 = (int)pSVar14->st_size;\n        if (*(int *)&pSVar14->st_size == 0 && iVar3 == 0) goto LAB_00296184;\n        iVar15 = (int)to->symsize_;\n        if ((*(int *)&to->symsize_ == 0 && iVar15 == 0) ||\n           ((((uVar2 = *(uint *)&(to->super_Symbol).field_0x28,\n              uVar2 >> 0x1c == (pSVar14->st_info & 0xf) &&\n              (*(int *)&to->symsize_ == *(int *)&pSVar14->st_size)) && (iVar15 == iVar3)) ||\n            ((pcVar5 = (to->super_Symbol).name_, *pcVar5 != '_' || (pcVar5[1] != 'Z'))))))\n        goto LAB_00296184;\n        uStack_58 = *(undefined4 *)&pSVar14->st_value;\n        pIStack_54 = *(Input_file **)((int)&pSVar14->st_value + 4);\n        _adjust_common_sizes = object;\n        uStack_5c = orig_st_shndx;\n        if ((uVar2 & 0xe000) != 0) goto LAB_0029679c;\n        pcStack_34 = (code *)PTR_operator___00435c08;\n        pOStack_2c = &this->candidate_odr_violations_;\n        _adjust_dyndef = (to->super_Symbol).u1_;\n        ppcStack_30 = &pcStack_44;\n        auStack_70._4_4_ = *(undefined4 *)((int)&to->value_ + 4);\n        auStack_70._0_4_ = *(undefined4 *)&to->value_;\n        pXStack_40 = (Xindex *)&adjust_dyndef;\n        uStack_74 = uVar19;\n        pcStack_44 = pcVar5;\n        __node_gen._M_h =\n             (__hashtable_alloc *)\n             std::__detail::\n             _Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n             ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                           *)pOStack_2c,ppcStack_30);\n        p_Stack_38 = &__node_gen;\n        p_Stack_3c = a_Stack_50;\n        uVar2 = (uint)in_stack_ffffff70 & 0xffffff;\n        std::\n        _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                  (p_Stack_3c,__node_gen._M_h,&adjust_common_sizes,p_Stack_38,uVar2,1);\n        pcStack_44 = (to->super_Symbol).name_;\n        __node_gen._M_h = (__hashtable_alloc *)(*pcStack_34)(pOStack_2c,ppcStack_30);\n        std::\n        _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                  (p_Stack_3c,__node_gen._M_h,pXStack_40,p_Stack_38,uVar2 & 0xffffff,1);\n        pp_Var6 = object->_vptr_Object;\n      }\n      iVar3 = (*pp_Var6[5])(object);\n      if (iVar3 == 0) {\n        SVar12 = (STT)sym->p_->st_info;\n        fromtype = SVar12 & STT_HIPROC;\n      }\n      else {\n        SVar12 = (STT)sym->p_->st_info;\n        fromtype = *(uint *)&(to->super_Symbol).field_0x28 >> 0x1c;\n      }\n      uVar2 = symbol_to_bits(SVar12 >> 4,SUB41((uint)*(undefined4 *)&object->field_0x2c >> 0x1f,0),\n                             st_shndx,is_ordinary);\n      p_Stack_3c = *(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                     **)((int)&to->symsize_ + 4);\n      uVar18 = *(uint *)&to->symsize_;\n      bVar9 = should_override(&to->super_Symbol,uVar2,fromtype,OBJECT,object,&adjust_common_sizes,\n                              (bool *)pXStack_40,is_default_version);\n      if (CONCAT31(extraout_var,bVar9) == 0) {\n        puVar13 = (undefined *)((uint)_adjust_common_sizes >> 0x18);\n        pSVar14 = sym->p_;\n        if (puVar13 != (undefined *)0x0) {\n          uVar2 = *(uint *)&pSVar14->st_size;\n          p_Var16 = *(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                      **)((int)&pSVar14->st_size + 4);\n          if ((uVar18 < uVar2) || ((uVar2 == uVar18 && (p_Stack_3c < p_Var16)))) {\n            *(uint *)&to->symsize_ = uVar2;\n            *(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              **)((int)&to->symsize_ + 4) = p_Var16;\n          }\n          uVar2 = *(uint *)&pSVar14->st_value;\n          uVar19 = (uint)pSVar14->st_value;\n          if ((*(uint *)&to->value_ < uVar2) ||\n             ((*(uint *)&to->value_ == uVar2 && ((uint)to->value_ < uVar19)))) {\n            *(uint *)&to->value_ = uVar2;\n            *(uint *)((int)&to->value_ + 4) = uVar19;\n          }\n        }\n        if ((adjust_dyndef != false) &&\n           ((iVar3 = *(int *)&(to->super_Symbol).field_0x2c, -1 < iVar3 || (iVar3 << 1 < 0)))) {\n          (to->super_Symbol).field_0x2c =\n               (to->super_Symbol).field_0x2c & 0x3f | ((int)(uint)pSVar14->st_info >> 4 == 2) << 6 |\n               0x80;\n        }\n        bVar10 = pSVar14->st_other;\n        uVar2 = *(uint *)&(to->super_Symbol).field_0x28;\n        if (((bVar10 & 3) != 0) &&\n           (((uVar2 & 0xc00000) == 0 || ((bVar10 & 3) < (uVar2 << 8) >> 0x1e)))) {\n          uVar2 = uVar2 & 0xff3fffff | (bVar10 & 3) << 0x16;\n          *(uint *)&(to->super_Symbol).field_0x28 = uVar2;\n        }\n      }\n      else {\n        iVar3 = *(int *)&(to->super_Symbol).field_0x28;\n        uVar2 = *(uint *)&to->value_;\n        uVar19 = (uint)to->value_;\n        override<64,_true>(this,to,sym,st_shndx,is_ordinary,object,version);\n        puVar13 = (undefined *)((uint)_adjust_common_sizes >> 0x18);\n        if (puVar13 != (undefined *)0x0) {\n          if ((*(uint *)&to->symsize_ < uVar18) ||\n             ((*(uint *)&to->symsize_ == uVar18 &&\n              (*(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                 **)((int)&to->symsize_ + 4) < p_Stack_3c)))) {\n            *(uint *)&to->symsize_ = uVar18;\n            *(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              **)((int)&to->symsize_ + 4) = p_Stack_3c;\n          }\n          if ((*(uint *)&to->value_ < uVar2) ||\n             ((*(uint *)&to->value_ == uVar2 && ((uint)to->value_ < uVar19)))) {\n            *(uint *)&to->value_ = uVar2;\n            *(uint *)((int)&to->value_ + 4) = uVar19;\n          }\n        }\n        uVar2 = *(uint *)&(to->super_Symbol).field_0x28;\n        if (adjust_dyndef != false) {\n          iVar15 = *(int *)&(to->super_Symbol).field_0x2c;\n          if (iVar15 < 0) {\n            if (-1 < iVar15 << 1) goto LAB_002962d0;\n            bVar10 = (to->super_Symbol).field_0x2c;\n          }\n          else {\n            bVar10 = (to->super_Symbol).field_0x2c;\n          }\n          (to->super_Symbol).field_0x2c =\n               bVar10 & 0x3f | ((uint)(iVar3 << 4) >> 0x1c == 2) << 6 | 0x80;\n        }\n      }\nLAB_002962d0:\n      if (((uVar2 & 0xe000) == 0) &&\n         (pOVar7 = (to->super_Symbol).u1_.output_segment,\n         (int)pOVar7->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_002963dc;\n      while( true ) {\n        if (puVar13 == (undefined *)0x0) {\n          return;\n        }\n        if (*(int *)(*(int *)puVar1 + 8) != 0) break;\nLAB_002963c4:\n        puVar13 = PTR_s_alize_xindex_004323b4 + -0x5cec;\n        pOVar7 = (Output_segment *)\n                 (*(code *)PTR_do_gold_unreachable_004323c4)(puVar13,0x5c,PTR_s__0043226c + 0x3c1c);\nLAB_002963dc:\n        if ((*(int *)&(to->super_Symbol).field_0x28 << 0x17 < 0) &&\n           (-1 < *(int *)&(to->super_Symbol).field_0x2c << 1)) {\n          *(byte *)&pOVar7->output_lists_[3].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_end_of_storage =\n               *(byte *)&pOVar7->output_lists_[3].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_end_of_storage & 0xbf | 0x40;\n        }\n      }\n      if (*(char *)(*(int *)(*(int *)puVar1 + 8) + 0x43f5) == '\0') {\n        return;\n      }\n      uVar2 = *(uint *)&sym->p_->st_size;\n      p_Var16 = *(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                  **)((int)&sym->p_->st_size + 4);\n      if ((uVar2 < uVar18) || ((uVar18 == uVar2 && (p_Var16 < p_Stack_3c)))) {\n        puVar13 = PTR_s__0043226c + 0x3c88;\n      }\n      else if ((uVar18 < uVar2) || ((uVar2 == uVar18 && (p_Stack_3c < p_Var16)))) {\n        puVar13 = PTR_s__0043226c + 0x3cb4;\n      }\n      else {\n        puVar13 = PTR_s__0043226c + 0x3ce0;\n      }\n      pcVar5 = (char *)(*(code *)PTR_gettext_00436818)(puVar13);\n      report_resolve_problem(false,pcVar5,&to->super_Symbol,OBJECT,object);\n      return;\n    }" { (labeled_statement "LAB_002963b4:\n      iVar3 = *(int *)(*(int *)puVar1 + 8);" statement_identifier : (expression_statement "iVar3 = *(int *)(*(int *)puVar1 + 8);" (assignment_expression "iVar3 = *(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 (iVar3 == 0) goto LAB_002963c4;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_002963c4;" goto statement_identifier ;)) (labeled_statement "LAB_00295ee8:\n      if (*(char *)(iVar3 + 0xe11) == '\0') {\nLAB_00296184:\n        pXStack_40 = (Xindex *)&adjust_dyndef;\n        pp_Var6 = object->_vptr_Object;\n      }\n      else {\n        pSVar14 = sym->p_;\n        if (((((int)(uint)pSVar14->st_info >> 4 != 2) &&\n             ((uint)(*(int *)&(to->super_Symbol).field_0x28 << 4) >> 0x1c != 2)) ||\n            (orig_st_shndx == 0)) || ((uVar18 == 0 || (uVar19 == 0)))) goto LAB_00296184;\n        iVar3 = (int)pSVar14->st_size;\n        if (*(int *)&pSVar14->st_size == 0 && iVar3 == 0) goto LAB_00296184;\n        iVar15 = (int)to->symsize_;\n        if ((*(int *)&to->symsize_ == 0 && iVar15 == 0) ||\n           ((((uVar2 = *(uint *)&(to->super_Symbol).field_0x28,\n              uVar2 >> 0x1c == (pSVar14->st_info & 0xf) &&\n              (*(int *)&to->symsize_ == *(int *)&pSVar14->st_size)) && (iVar15 == iVar3)) ||\n            ((pcVar5 = (to->super_Symbol).name_, *pcVar5 != '_' || (pcVar5[1] != 'Z'))))))\n        goto LAB_00296184;\n        uStack_58 = *(undefined4 *)&pSVar14->st_value;\n        pIStack_54 = *(Input_file **)((int)&pSVar14->st_value + 4);\n        _adjust_common_sizes = object;\n        uStack_5c = orig_st_shndx;\n        if ((uVar2 & 0xe000) != 0) goto LAB_0029679c;\n        pcStack_34 = (code *)PTR_operator___00435c08;\n        pOStack_2c = &this->candidate_odr_violations_;\n        _adjust_dyndef = (to->super_Symbol).u1_;\n        ppcStack_30 = &pcStack_44;\n        auStack_70._4_4_ = *(undefined4 *)((int)&to->value_ + 4);\n        auStack_70._0_4_ = *(undefined4 *)&to->value_;\n        pXStack_40 = (Xindex *)&adjust_dyndef;\n        uStack_74 = uVar19;\n        pcStack_44 = pcVar5;\n        __node_gen._M_h =\n             (__hashtable_alloc *)\n             std::__detail::\n             _Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n             ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                           *)pOStack_2c,ppcStack_30);\n        p_Stack_38 = &__node_gen;\n        p_Stack_3c = a_Stack_50;\n        uVar2 = (uint)in_stack_ffffff70 & 0xffffff;\n        std::\n        _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                  (p_Stack_3c,__node_gen._M_h,&adjust_common_sizes,p_Stack_38,uVar2,1);\n        pcStack_44 = (to->super_Symbol).name_;\n        __node_gen._M_h = (__hashtable_alloc *)(*pcStack_34)(pOStack_2c,ppcStack_30);\n        std::\n        _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                  (p_Stack_3c,__node_gen._M_h,pXStack_40,p_Stack_38,uVar2 & 0xffffff,1);\n        pp_Var6 = object->_vptr_Object;\n      }" statement_identifier : (if_statement "if (*(char *)(iVar3 + 0xe11) == '\0') {\nLAB_00296184:\n        pXStack_40 = (Xindex *)&adjust_dyndef;\n        pp_Var6 = object->_vptr_Object;\n      }\n      else {\n        pSVar14 = sym->p_;\n        if (((((int)(uint)pSVar14->st_info >> 4 != 2) &&\n             ((uint)(*(int *)&(to->super_Symbol).field_0x28 << 4) >> 0x1c != 2)) ||\n            (orig_st_shndx == 0)) || ((uVar18 == 0 || (uVar19 == 0)))) goto LAB_00296184;\n        iVar3 = (int)pSVar14->st_size;\n        if (*(int *)&pSVar14->st_size == 0 && iVar3 == 0) goto LAB_00296184;\n        iVar15 = (int)to->symsize_;\n        if ((*(int *)&to->symsize_ == 0 && iVar15 == 0) ||\n           ((((uVar2 = *(uint *)&(to->super_Symbol).field_0x28,\n              uVar2 >> 0x1c == (pSVar14->st_info & 0xf) &&\n              (*(int *)&to->symsize_ == *(int *)&pSVar14->st_size)) && (iVar15 == iVar3)) ||\n            ((pcVar5 = (to->super_Symbol).name_, *pcVar5 != '_' || (pcVar5[1] != 'Z'))))))\n        goto LAB_00296184;\n        uStack_58 = *(undefined4 *)&pSVar14->st_value;\n        pIStack_54 = *(Input_file **)((int)&pSVar14->st_value + 4);\n        _adjust_common_sizes = object;\n        uStack_5c = orig_st_shndx;\n        if ((uVar2 & 0xe000) != 0) goto LAB_0029679c;\n        pcStack_34 = (code *)PTR_operator___00435c08;\n        pOStack_2c = &this->candidate_odr_violations_;\n        _adjust_dyndef = (to->super_Symbol).u1_;\n        ppcStack_30 = &pcStack_44;\n        auStack_70._4_4_ = *(undefined4 *)((int)&to->value_ + 4);\n        auStack_70._0_4_ = *(undefined4 *)&to->value_;\n        pXStack_40 = (Xindex *)&adjust_dyndef;\n        uStack_74 = uVar19;\n        pcStack_44 = pcVar5;\n        __node_gen._M_h =\n             (__hashtable_alloc *)\n             std::__detail::\n             _Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n             ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                           *)pOStack_2c,ppcStack_30);\n        p_Stack_38 = &__node_gen;\n        p_Stack_3c = a_Stack_50;\n        uVar2 = (uint)in_stack_ffffff70 & 0xffffff;\n        std::\n        _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                  (p_Stack_3c,__node_gen._M_h,&adjust_common_sizes,p_Stack_38,uVar2,1);\n        pcStack_44 = (to->super_Symbol).name_;\n        __node_gen._M_h = (__hashtable_alloc *)(*pcStack_34)(pOStack_2c,ppcStack_30);\n        std::\n        _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                  (p_Stack_3c,__node_gen._M_h,pXStack_40,p_Stack_38,uVar2 & 0xffffff,1);\n        pp_Var6 = object->_vptr_Object;\n      }" if (parenthesized_expression "(*(char *)(iVar3 + 0xe11) == '\0')" ( (binary_expression "*(char *)(iVar3 + 0xe11) == '\0'" (pointer_expression "*(char *)(iVar3 + 0xe11)" * (cast_expression "(char *)(iVar3 + 0xe11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xe11)" ( (binary_expression "iVar3 + 0xe11" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_00296184:\n        pXStack_40 = (Xindex *)&adjust_dyndef;\n        pp_Var6 = object->_vptr_Object;\n      }" { (labeled_statement "LAB_00296184:\n        pXStack_40 = (Xindex *)&adjust_dyndef;" statement_identifier : (expression_statement "pXStack_40 = (Xindex *)&adjust_dyndef;" (assignment_expression "pXStack_40 = (Xindex *)&adjust_dyndef" identifier = (cast_expression "(Xindex *)&adjust_dyndef" ( (type_descriptor "Xindex *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&adjust_dyndef" & identifier))) ;)) (expression_statement "pp_Var6 = object->_vptr_Object;" (assignment_expression "pp_Var6 = object->_vptr_Object" identifier = (field_expression "object->_vptr_Object" identifier -> field_identifier)) ;) }) (else_clause "else {\n        pSVar14 = sym->p_;\n        if (((((int)(uint)pSVar14->st_info >> 4 != 2) &&\n             ((uint)(*(int *)&(to->super_Symbol).field_0x28 << 4) >> 0x1c != 2)) ||\n            (orig_st_shndx == 0)) || ((uVar18 == 0 || (uVar19 == 0)))) goto LAB_00296184;\n        iVar3 = (int)pSVar14->st_size;\n        if (*(int *)&pSVar14->st_size == 0 && iVar3 == 0) goto LAB_00296184;\n        iVar15 = (int)to->symsize_;\n        if ((*(int *)&to->symsize_ == 0 && iVar15 == 0) ||\n           ((((uVar2 = *(uint *)&(to->super_Symbol).field_0x28,\n              uVar2 >> 0x1c == (pSVar14->st_info & 0xf) &&\n              (*(int *)&to->symsize_ == *(int *)&pSVar14->st_size)) && (iVar15 == iVar3)) ||\n            ((pcVar5 = (to->super_Symbol).name_, *pcVar5 != '_' || (pcVar5[1] != 'Z'))))))\n        goto LAB_00296184;\n        uStack_58 = *(undefined4 *)&pSVar14->st_value;\n        pIStack_54 = *(Input_file **)((int)&pSVar14->st_value + 4);\n        _adjust_common_sizes = object;\n        uStack_5c = orig_st_shndx;\n        if ((uVar2 & 0xe000) != 0) goto LAB_0029679c;\n        pcStack_34 = (code *)PTR_operator___00435c08;\n        pOStack_2c = &this->candidate_odr_violations_;\n        _adjust_dyndef = (to->super_Symbol).u1_;\n        ppcStack_30 = &pcStack_44;\n        auStack_70._4_4_ = *(undefined4 *)((int)&to->value_ + 4);\n        auStack_70._0_4_ = *(undefined4 *)&to->value_;\n        pXStack_40 = (Xindex *)&adjust_dyndef;\n        uStack_74 = uVar19;\n        pcStack_44 = pcVar5;\n        __node_gen._M_h =\n             (__hashtable_alloc *)\n             std::__detail::\n             _Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n             ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                           *)pOStack_2c,ppcStack_30);\n        p_Stack_38 = &__node_gen;\n        p_Stack_3c = a_Stack_50;\n        uVar2 = (uint)in_stack_ffffff70 & 0xffffff;\n        std::\n        _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                  (p_Stack_3c,__node_gen._M_h,&adjust_common_sizes,p_Stack_38,uVar2,1);\n        pcStack_44 = (to->super_Symbol).name_;\n        __node_gen._M_h = (__hashtable_alloc *)(*pcStack_34)(pOStack_2c,ppcStack_30);\n        std::\n        _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                  (p_Stack_3c,__node_gen._M_h,pXStack_40,p_Stack_38,uVar2 & 0xffffff,1);\n        pp_Var6 = object->_vptr_Object;\n      }" else (compound_statement "{\n        pSVar14 = sym->p_;\n        if (((((int)(uint)pSVar14->st_info >> 4 != 2) &&\n             ((uint)(*(int *)&(to->super_Symbol).field_0x28 << 4) >> 0x1c != 2)) ||\n            (orig_st_shndx == 0)) || ((uVar18 == 0 || (uVar19 == 0)))) goto LAB_00296184;\n        iVar3 = (int)pSVar14->st_size;\n        if (*(int *)&pSVar14->st_size == 0 && iVar3 == 0) goto LAB_00296184;\n        iVar15 = (int)to->symsize_;\n        if ((*(int *)&to->symsize_ == 0 && iVar15 == 0) ||\n           ((((uVar2 = *(uint *)&(to->super_Symbol).field_0x28,\n              uVar2 >> 0x1c == (pSVar14->st_info & 0xf) &&\n              (*(int *)&to->symsize_ == *(int *)&pSVar14->st_size)) && (iVar15 == iVar3)) ||\n            ((pcVar5 = (to->super_Symbol).name_, *pcVar5 != '_' || (pcVar5[1] != 'Z'))))))\n        goto LAB_00296184;\n        uStack_58 = *(undefined4 *)&pSVar14->st_value;\n        pIStack_54 = *(Input_file **)((int)&pSVar14->st_value + 4);\n        _adjust_common_sizes = object;\n        uStack_5c = orig_st_shndx;\n        if ((uVar2 & 0xe000) != 0) goto LAB_0029679c;\n        pcStack_34 = (code *)PTR_operator___00435c08;\n        pOStack_2c = &this->candidate_odr_violations_;\n        _adjust_dyndef = (to->super_Symbol).u1_;\n        ppcStack_30 = &pcStack_44;\n        auStack_70._4_4_ = *(undefined4 *)((int)&to->value_ + 4);\n        auStack_70._0_4_ = *(undefined4 *)&to->value_;\n        pXStack_40 = (Xindex *)&adjust_dyndef;\n        uStack_74 = uVar19;\n        pcStack_44 = pcVar5;\n        __node_gen._M_h =\n             (__hashtable_alloc *)\n             std::__detail::\n             _Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n             ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                           *)pOStack_2c,ppcStack_30);\n        p_Stack_38 = &__node_gen;\n        p_Stack_3c = a_Stack_50;\n        uVar2 = (uint)in_stack_ffffff70 & 0xffffff;\n        std::\n        _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                  (p_Stack_3c,__node_gen._M_h,&adjust_common_sizes,p_Stack_38,uVar2,1);\n        pcStack_44 = (to->super_Symbol).name_;\n        __node_gen._M_h = (__hashtable_alloc *)(*pcStack_34)(pOStack_2c,ppcStack_30);\n        std::\n        _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                  (p_Stack_3c,__node_gen._M_h,pXStack_40,p_Stack_38,uVar2 & 0xffffff,1);\n        pp_Var6 = object->_vptr_Object;\n      }" { (expression_statement "pSVar14 = sym->p_;" (assignment_expression "pSVar14 = sym->p_" identifier = (field_expression "sym->p_" identifier -> field_identifier)) ;) (if_statement "if (((((int)(uint)pSVar14->st_info >> 4 != 2) &&\n             ((uint)(*(int *)&(to->super_Symbol).field_0x28 << 4) >> 0x1c != 2)) ||\n            (orig_st_shndx == 0)) || ((uVar18 == 0 || (uVar19 == 0)))) goto LAB_00296184;" if (parenthesized_expression "(((((int)(uint)pSVar14->st_info >> 4 != 2) &&\n             ((uint)(*(int *)&(to->super_Symbol).field_0x28 << 4) >> 0x1c != 2)) ||\n            (orig_st_shndx == 0)) || ((uVar18 == 0 || (uVar19 == 0))))" ( (binary_expression "((((int)(uint)pSVar14->st_info >> 4 != 2) &&\n             ((uint)(*(int *)&(to->super_Symbol).field_0x28 << 4) >> 0x1c != 2)) ||\n            (orig_st_shndx == 0)) || ((uVar18 == 0 || (uVar19 == 0)))" (parenthesized_expression "((((int)(uint)pSVar14->st_info >> 4 != 2) &&\n             ((uint)(*(int *)&(to->super_Symbol).field_0x28 << 4) >> 0x1c != 2)) ||\n            (orig_st_shndx == 0))" ( (binary_expression "(((int)(uint)pSVar14->st_info >> 4 != 2) &&\n             ((uint)(*(int *)&(to->super_Symbol).field_0x28 << 4) >> 0x1c != 2)) ||\n            (orig_st_shndx == 0)" (parenthesized_expression "(((int)(uint)pSVar14->st_info >> 4 != 2) &&\n             ((uint)(*(int *)&(to->super_Symbol).field_0x28 << 4) >> 0x1c != 2))" ( (binary_expression "((int)(uint)pSVar14->st_info >> 4 != 2) &&\n             ((uint)(*(int *)&(to->super_Symbol).field_0x28 << 4) >> 0x1c != 2)" (parenthesized_expression "((int)(uint)pSVar14->st_info >> 4 != 2)" ( (binary_expression "(int)(uint)pSVar14->st_info >> 4 != 2" (binary_expression "(int)(uint)pSVar14->st_info >> 4" (cast_expression "(int)(uint)pSVar14->st_info" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)pSVar14->st_info" ( (type_descriptor "uint" type_identifier) ) (field_expression "pSVar14->st_info" identifier -> field_identifier))) >> number_literal) != number_literal) )) && (parenthesized_expression "((uint)(*(int *)&(to->super_Symbol).field_0x28 << 4) >> 0x1c != 2)" ( (binary_expression "(uint)(*(int *)&(to->super_Symbol).field_0x28 << 4) >> 0x1c != 2" (binary_expression "(uint)(*(int *)&(to->super_Symbol).field_0x28 << 4) >> 0x1c" (call_expression "(uint)(*(int *)&(to->super_Symbol).field_0x28 << 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)&(to->super_Symbol).field_0x28 << 4)" ( (binary_expression "*(int *)&(to->super_Symbol).field_0x28 << 4" (pointer_expression "*(int *)&(to->super_Symbol).field_0x28" * (cast_expression "(int *)&(to->super_Symbol).field_0x28" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(to->super_Symbol).field_0x28" & (field_expression "(to->super_Symbol).field_0x28" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier)))) << number_literal) ))) >> number_literal) != number_literal) ))) )) || (parenthesized_expression "(orig_st_shndx == 0)" ( (binary_expression "orig_st_shndx == 0" identifier == number_literal) ))) )) || (parenthesized_expression "((uVar18 == 0 || (uVar19 == 0)))" ( (parenthesized_expression "(uVar18 == 0 || (uVar19 == 0))" ( (binary_expression "uVar18 == 0 || (uVar19 == 0)" (binary_expression "uVar18 == 0" identifier == number_literal) || (parenthesized_expression "(uVar19 == 0)" ( (binary_expression "uVar19 == 0" identifier == number_literal) ))) )) ))) )) (goto_statement "goto LAB_00296184;" goto statement_identifier ;)) (expression_statement "iVar3 = (int)pSVar14->st_size;" (assignment_expression "iVar3 = (int)pSVar14->st_size" identifier = (cast_expression "(int)pSVar14->st_size" ( (type_descriptor "int" primitive_type) ) (field_expression "pSVar14->st_size" identifier -> field_identifier))) ;) (if_statement "if (*(int *)&pSVar14->st_size == 0 && iVar3 == 0) goto LAB_00296184;" if (parenthesized_expression "(*(int *)&pSVar14->st_size == 0 && iVar3 == 0)" ( (binary_expression "*(int *)&pSVar14->st_size == 0 && iVar3 == 0" (binary_expression "*(int *)&pSVar14->st_size == 0" (pointer_expression "*(int *)&pSVar14->st_size" * (cast_expression "(int *)&pSVar14->st_size" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pSVar14->st_size" & (field_expression "pSVar14->st_size" identifier -> field_identifier)))) == number_literal) && (binary_expression "iVar3 == 0" identifier == number_literal)) )) (goto_statement "goto LAB_00296184;" goto statement_identifier ;)) (expression_statement "iVar15 = (int)to->symsize_;" (assignment_expression "iVar15 = (int)to->symsize_" identifier = (cast_expression "(int)to->symsize_" ( (type_descriptor "int" primitive_type) ) (field_expression "to->symsize_" identifier -> field_identifier))) ;) (if_statement "if ((*(int *)&to->symsize_ == 0 && iVar15 == 0) ||\n           ((((uVar2 = *(uint *)&(to->super_Symbol).field_0x28,\n              uVar2 >> 0x1c == (pSVar14->st_info & 0xf) &&\n              (*(int *)&to->symsize_ == *(int *)&pSVar14->st_size)) && (iVar15 == iVar3)) ||\n            ((pcVar5 = (to->super_Symbol).name_, *pcVar5 != '_' || (pcVar5[1] != 'Z'))))))\n        goto LAB_00296184;" if (parenthesized_expression "((*(int *)&to->symsize_ == 0 && iVar15 == 0) ||\n           ((((uVar2 = *(uint *)&(to->super_Symbol).field_0x28,\n              uVar2 >> 0x1c == (pSVar14->st_info & 0xf) &&\n              (*(int *)&to->symsize_ == *(int *)&pSVar14->st_size)) && (iVar15 == iVar3)) ||\n            ((pcVar5 = (to->super_Symbol).name_, *pcVar5 != '_' || (pcVar5[1] != 'Z'))))))" ( (binary_expression "(*(int *)&to->symsize_ == 0 && iVar15 == 0) ||\n           ((((uVar2 = *(uint *)&(to->super_Symbol).field_0x28,\n              uVar2 >> 0x1c == (pSVar14->st_info & 0xf) &&\n              (*(int *)&to->symsize_ == *(int *)&pSVar14->st_size)) && (iVar15 == iVar3)) ||\n            ((pcVar5 = (to->super_Symbol).name_, *pcVar5 != '_' || (pcVar5[1] != 'Z')))))" (parenthesized_expression "(*(int *)&to->symsize_ == 0 && iVar15 == 0)" ( (binary_expression "*(int *)&to->symsize_ == 0 && iVar15 == 0" (binary_expression "*(int *)&to->symsize_ == 0" (pointer_expression "*(int *)&to->symsize_" * (cast_expression "(int *)&to->symsize_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&to->symsize_" & (field_expression "to->symsize_" identifier -> field_identifier)))) == number_literal) && (binary_expression "iVar15 == 0" identifier == number_literal)) )) || (parenthesized_expression "((((uVar2 = *(uint *)&(to->super_Symbol).field_0x28,\n              uVar2 >> 0x1c == (pSVar14->st_info & 0xf) &&\n              (*(int *)&to->symsize_ == *(int *)&pSVar14->st_size)) && (iVar15 == iVar3)) ||\n            ((pcVar5 = (to->super_Symbol).name_, *pcVar5 != '_' || (pcVar5[1] != 'Z')))))" ( (parenthesized_expression "(((uVar2 = *(uint *)&(to->super_Symbol).field_0x28,\n              uVar2 >> 0x1c == (pSVar14->st_info & 0xf) &&\n              (*(int *)&to->symsize_ == *(int *)&pSVar14->st_size)) && (iVar15 == iVar3)) ||\n            ((pcVar5 = (to->super_Symbol).name_, *pcVar5 != '_' || (pcVar5[1] != 'Z'))))" ( (binary_expression "((uVar2 = *(uint *)&(to->super_Symbol).field_0x28,\n              uVar2 >> 0x1c == (pSVar14->st_info & 0xf) &&\n              (*(int *)&to->symsize_ == *(int *)&pSVar14->st_size)) && (iVar15 == iVar3)) ||\n            ((pcVar5 = (to->super_Symbol).name_, *pcVar5 != '_' || (pcVar5[1] != 'Z')))" (parenthesized_expression "((uVar2 = *(uint *)&(to->super_Symbol).field_0x28,\n              uVar2 >> 0x1c == (pSVar14->st_info & 0xf) &&\n              (*(int *)&to->symsize_ == *(int *)&pSVar14->st_size)) && (iVar15 == iVar3))" ( (binary_expression "(uVar2 = *(uint *)&(to->super_Symbol).field_0x28,\n              uVar2 >> 0x1c == (pSVar14->st_info & 0xf) &&\n              (*(int *)&to->symsize_ == *(int *)&pSVar14->st_size)) && (iVar15 == iVar3)" (parenthesized_expression "(uVar2 = *(uint *)&(to->super_Symbol).field_0x28,\n              uVar2 >> 0x1c == (pSVar14->st_info & 0xf) &&\n              (*(int *)&to->symsize_ == *(int *)&pSVar14->st_size))" ( (comma_expression "uVar2 = *(uint *)&(to->super_Symbol).field_0x28,\n              uVar2 >> 0x1c == (pSVar14->st_info & 0xf) &&\n              (*(int *)&to->symsize_ == *(int *)&pSVar14->st_size)" (assignment_expression "uVar2 = *(uint *)&(to->super_Symbol).field_0x28" identifier = (pointer_expression "*(uint *)&(to->super_Symbol).field_0x28" * (cast_expression "(uint *)&(to->super_Symbol).field_0x28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(to->super_Symbol).field_0x28" & (field_expression "(to->super_Symbol).field_0x28" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier))))) , (binary_expression "uVar2 >> 0x1c == (pSVar14->st_info & 0xf) &&\n              (*(int *)&to->symsize_ == *(int *)&pSVar14->st_size)" (binary_expression "uVar2 >> 0x1c == (pSVar14->st_info & 0xf)" (binary_expression "uVar2 >> 0x1c" identifier >> number_literal) == (parenthesized_expression "(pSVar14->st_info & 0xf)" ( (binary_expression "pSVar14->st_info & 0xf" (field_expression "pSVar14->st_info" identifier -> field_identifier) & number_literal) ))) && (parenthesized_expression "(*(int *)&to->symsize_ == *(int *)&pSVar14->st_size)" ( (binary_expression "*(int *)&to->symsize_ == *(int *)&pSVar14->st_size" (pointer_expression "*(int *)&to->symsize_" * (cast_expression "(int *)&to->symsize_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&to->symsize_" & (field_expression "to->symsize_" identifier -> field_identifier)))) == (pointer_expression "*(int *)&pSVar14->st_size" * (cast_expression "(int *)&pSVar14->st_size" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pSVar14->st_size" & (field_expression "pSVar14->st_size" identifier -> field_identifier))))) )))) )) && (parenthesized_expression "(iVar15 == iVar3)" ( (binary_expression "iVar15 == iVar3" identifier == identifier) ))) )) || (parenthesized_expression "((pcVar5 = (to->super_Symbol).name_, *pcVar5 != '_' || (pcVar5[1] != 'Z')))" ( (parenthesized_expression "(pcVar5 = (to->super_Symbol).name_, *pcVar5 != '_' || (pcVar5[1] != 'Z'))" ( (comma_expression "pcVar5 = (to->super_Symbol).name_, *pcVar5 != '_' || (pcVar5[1] != 'Z')" (assignment_expression "pcVar5 = (to->super_Symbol).name_" identifier = (field_expression "(to->super_Symbol).name_" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier)) , (binary_expression "*pcVar5 != '_' || (pcVar5[1] != 'Z')" (binary_expression "*pcVar5 != '_'" (pointer_expression "*pcVar5" * identifier) != (char_literal "'_'" ' character ')) || (parenthesized_expression "(pcVar5[1] != 'Z')" ( (binary_expression "pcVar5[1] != 'Z'" (subscript_expression "pcVar5[1]" identifier [ number_literal ]) != (char_literal "'Z'" ' character ')) )))) )) ))) )) ))) )) (goto_statement "goto LAB_00296184;" goto statement_identifier ;)) (expression_statement "uStack_58 = *(undefined4 *)&pSVar14->st_value;" (assignment_expression "uStack_58 = *(undefined4 *)&pSVar14->st_value" identifier = (pointer_expression "*(undefined4 *)&pSVar14->st_value" * (cast_expression "(undefined4 *)&pSVar14->st_value" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pSVar14->st_value" & (field_expression "pSVar14->st_value" identifier -> field_identifier))))) ;) (expression_statement "pIStack_54 = *(Input_file **)((int)&pSVar14->st_value + 4);" (assignment_expression "pIStack_54 = *(Input_file **)((int)&pSVar14->st_value + 4)" identifier = (pointer_expression "*(Input_file **)((int)&pSVar14->st_value + 4)" * (cast_expression "(Input_file **)((int)&pSVar14->st_value + 4)" ( (type_descriptor "Input_file **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&pSVar14->st_value + 4)" ( (binary_expression "(int)&pSVar14->st_value + 4" (cast_expression "(int)&pSVar14->st_value" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pSVar14->st_value" & (field_expression "pSVar14->st_value" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "_adjust_common_sizes = object;" (assignment_expression "_adjust_common_sizes = object" identifier = identifier) ;) (expression_statement "uStack_5c = orig_st_shndx;" (assignment_expression "uStack_5c = orig_st_shndx" identifier = identifier) ;) (if_statement "if ((uVar2 & 0xe000) != 0) goto LAB_0029679c;" if (parenthesized_expression "((uVar2 & 0xe000) != 0)" ( (binary_expression "(uVar2 & 0xe000) != 0" (parenthesized_expression "(uVar2 & 0xe000)" ( (binary_expression "uVar2 & 0xe000" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0029679c;" goto statement_identifier ;)) (expression_statement "pcStack_34 = (code *)PTR_operator___00435c08;" (assignment_expression "pcStack_34 = (code *)PTR_operator___00435c08" identifier = (cast_expression "(code *)PTR_operator___00435c08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pOStack_2c = &this->candidate_odr_violations_;" (assignment_expression "pOStack_2c = &this->candidate_odr_violations_" identifier = (pointer_expression "&this->candidate_odr_violations_" & (field_expression "this->candidate_odr_violations_" identifier -> field_identifier))) ;) (expression_statement "_adjust_dyndef = (to->super_Symbol).u1_;" (assignment_expression "_adjust_dyndef = (to->super_Symbol).u1_" identifier = (field_expression "(to->super_Symbol).u1_" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "ppcStack_30 = &pcStack_44;" (assignment_expression "ppcStack_30 = &pcStack_44" identifier = (pointer_expression "&pcStack_44" & identifier)) ;) (expression_statement "auStack_70._4_4_ = *(undefined4 *)((int)&to->value_ + 4);" (assignment_expression "auStack_70._4_4_ = *(undefined4 *)((int)&to->value_ + 4)" (field_expression "auStack_70._4_4_" identifier . field_identifier) = (pointer_expression "*(undefined4 *)((int)&to->value_ + 4)" * (cast_expression "(undefined4 *)((int)&to->value_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&to->value_ + 4)" ( (binary_expression "(int)&to->value_ + 4" (cast_expression "(int)&to->value_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&to->value_" & (field_expression "to->value_" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "auStack_70._0_4_ = *(undefined4 *)&to->value_;" (assignment_expression "auStack_70._0_4_ = *(undefined4 *)&to->value_" (field_expression "auStack_70._0_4_" identifier . field_identifier) = (pointer_expression "*(undefined4 *)&to->value_" * (cast_expression "(undefined4 *)&to->value_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&to->value_" & (field_expression "to->value_" identifier -> field_identifier))))) ;) (expression_statement "pXStack_40 = (Xindex *)&adjust_dyndef;" (assignment_expression "pXStack_40 = (Xindex *)&adjust_dyndef" identifier = (cast_expression "(Xindex *)&adjust_dyndef" ( (type_descriptor "Xindex *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&adjust_dyndef" & identifier))) ;) (expression_statement "uStack_74 = uVar19;" (assignment_expression "uStack_74 = uVar19" identifier = identifier) ;) (expression_statement "pcStack_44 = pcVar5;" (assignment_expression "pcStack_44 = pcVar5" identifier = identifier) ;) (ERROR "__node_gen._M_h =\n             (__hashtable_alloc *)\n             std::__detail::\n             _Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::" (comma_expression "__node_gen._M_h =\n             (__hashtable_alloc *)\n             std::__detail::\n             _Map_base<char_const*,_std" (binary_expression "__node_gen._M_h =\n             (__hashtable_alloc *)\n             std::__detail::\n             _Map_base<char_const" (assignment_expression "__node_gen._M_h =\n             (__hashtable_alloc *)\n             std" (field_expression "__node_gen._M_h" identifier . field_identifier) = (cast_expression "(__hashtable_alloc *)\n             std" ( (type_descriptor "__hashtable_alloc *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) (ERROR "::__detail::\n             _Map_base" : : identifier : : identifier) < identifier) (ERROR "*" *) , identifier) : : (comma_expression "pair<char_const*_const,_std" (binary_expression "pair<char_const*_const" identifier < (binary_expression "char_const*_const" identifier * identifier)) , identifier) : : (binary_expression "unordered_set<gold" identifier < identifier) : : (comma_expression "Symbol_location,_gold" identifier , identifier) : : (comma_expression "Symbol_location_hash,_std" identifier , identifier) : : (binary_expression "equal_to<gold" identifier < identifier) : : (binary_expression "Symbol_location>,_std" identifier > (ERROR "," ,) identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Symbol_location>_>_>,_std" (binary_expression "Symbol_location>_>_" (binary_expression "Symbol_location>_" identifier > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<char_const*_const,_std" (binary_expression "pair<char_const*_const" identifier < (binary_expression "char_const*_const" identifier * identifier)) , identifier) : : (binary_expression "unordered_set<gold" identifier < identifier) : : (comma_expression "Symbol_location,_gold" identifier , identifier) : : (comma_expression "Symbol_location_hash,_std" identifier , identifier) : : (binary_expression "equal_to<gold" identifier < identifier) : : (binary_expression "Symbol_location>,_std" identifier > (ERROR "," ,) identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Symbol_location>_>_>_>,_std" (binary_expression "Symbol_location>_>_>_" (binary_expression "Symbol_location>_>_" (binary_expression "Symbol_location>_" identifier > identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : :) (labeled_statement "__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n             ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                           *)pOStack_2c,ppcStack_30);" statement_identifier (ERROR "::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std:" : : (comma_expression "_Select1st,_std" identifier , identifier) : : (comma_expression "equal_to<char_const*>,_std" (binary_expression "equal_to<char_const" identifier < identifier) (ERROR "*>" * >) , identifier) : : (comma_expression "hash<char_const*>,_std" (binary_expression "hash<char_const" identifier < identifier) (ERROR "*>" * >) , identifier) :) : (labeled_statement "__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n             ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                           *)pOStack_2c,ppcStack_30);" statement_identifier (ERROR "::_Mod_range_hashing,_std:" : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) :) : (labeled_statement "__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n             ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                           *)pOStack_2c,ppcStack_30);" statement_identifier (ERROR "::_Default_ranged_hash,_std:" : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) :) : (labeled_statement "__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n             ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                           *)pOStack_2c,ppcStack_30);" statement_identifier (ERROR "::_Prime_rehash_policy,_std:" : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) :) : (labeled_statement "__detail::_Hashtable_traits<false,_false,_true>,_true>\n             ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                           *)pOStack_2c,ppcStack_30);" statement_identifier : (ERROR ":" :) (expression_statement "_Hashtable_traits<false,_false,_true>,_true>\n             ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                           *)pOStack_2c,ppcStack_30);" (comma_expression "_Hashtable_traits<false,_false,_true>,_true>\n             ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                           *)pOStack_2c,ppcStack_30)" (binary_expression "_Hashtable_traits<false" identifier < false) , (comma_expression "_false,_true>,_true>\n             ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                           *)pOStack_2c,ppcStack_30)" identifier , (binary_expression "_true>,_true>\n             ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                           *)pOStack_2c,ppcStack_30)" (binary_expression "_true>,_true" identifier > (ERROR "," ,) identifier) > (ERROR "::" : :) (call_expression "operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                           *)pOStack_2c,ppcStack_30)" (subscript_expression "operator[]" identifier [ identifier ]) (argument_list "((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                           *)pOStack_2c,ppcStack_30)" ( (parenthesized_expression "(_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                           *)pOStack_2c,ppcStack_30)" ( (ERROR "_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (comma_expression "_Map_base<char_const*,_std" (binary_expression "_Map_base<char_const" identifier < identifier) (ERROR "*" *) , identifier) : : (comma_expression "pair<char_const*_const,_std" (binary_expression "pair<char_const*_const" identifier < (binary_expression "char_const*_const" identifier * identifier)) , identifier) : : (binary_expression "unordered_set<gold" identifier < identifier) : : (comma_expression "Symbol_location,_gold" identifier , identifier) : : (comma_expression "Symbol_location_hash,_std" identifier , identifier) : : (binary_expression "equal_to<gold" identifier < identifier) : : (binary_expression "Symbol_location>,_std" identifier > (ERROR "," ,) identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Symbol_location>_>_>,_std" (binary_expression "Symbol_location>_>_" (binary_expression "Symbol_location>_" identifier > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<char_const*_const,_std" (binary_expression "pair<char_const*_const" identifier < (binary_expression "char_const*_const" identifier * identifier)) , identifier) : : (binary_expression "unordered_set<gold" identifier < identifier) : : (comma_expression "Symbol_location,_gold" identifier , identifier) : : (comma_expression "Symbol_location_hash,_std" identifier , identifier) : : (binary_expression "equal_to<gold" identifier < identifier) : : (binary_expression "Symbol_location>,_std" identifier > (ERROR "," ,) identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Symbol_location>_>_>_>,_std" (binary_expression "Symbol_location>_>_>_" (binary_expression "Symbol_location>_>_" (binary_expression "Symbol_location>_" identifier > identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : identifier : : (comma_expression "_Select1st,_std" identifier , identifier) : : (comma_expression "equal_to<char_const*>,_std" (binary_expression "equal_to<char_const" identifier < identifier) (ERROR "*>" * >) , identifier) : : (comma_expression "hash<char_const*>,_std" (binary_expression "hash<char_const" identifier < identifier) (ERROR "*>" * >) , identifier) : : identifier : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) : : identifier : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : identifier : :) (comma_expression "_Hashtable_traits<false,_false,_true>,_true>\n                           *)pOStack_2c,ppcStack_30" (binary_expression "_Hashtable_traits<false" identifier < false) , (comma_expression "_false,_true>,_true>\n                           *)pOStack_2c,ppcStack_30" identifier , (comma_expression "_true>,_true>\n                           *)pOStack_2c,ppcStack_30" (binary_expression "_true>,_true>\n                           *)pOStack_2c" (binary_expression "_true>,_true" identifier > (ERROR "," ,) identifier) > (pointer_expression "*)pOStack_2c" * (ERROR ")" )) identifier)) , identifier))) )) )))))) ;)))))) (expression_statement "p_Stack_38 = &__node_gen;" (assignment_expression "p_Stack_38 = &__node_gen" identifier = (pointer_expression "&__node_gen" & identifier)) ;) (expression_statement "p_Stack_3c = a_Stack_50;" (assignment_expression "p_Stack_3c = a_Stack_50" identifier = identifier) ;) (expression_statement "uVar2 = (uint)in_stack_ffffff70 & 0xffffff;" (assignment_expression "uVar2 = (uint)in_stack_ffffff70 & 0xffffff" identifier = (binary_expression "(uint)in_stack_ffffff70 & 0xffffff" (cast_expression "(uint)in_stack_ffffff70" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (ERROR "std::\n        _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::" (comma_expression "std::\n        _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std" identifier (ERROR "::\n        _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>" : : (binary_expression "_Hashtable<gold" identifier < identifier) : : (comma_expression "Symbol_location,_gold" identifier , identifier) : : (comma_expression "Symbol_location,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier >) , identifier) : : identifier : : (comma_expression "_Identity,_std" identifier , identifier) : : (binary_expression "equal_to<gold" identifier < identifier) : : (binary_expression "Symbol_location>,_gold" identifier > (ERROR "," ,) identifier) : : (comma_expression "Symbol_location_hash,_std" identifier , identifier) : :) (labeled_statement "__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                  (p_Stack_3c,__node_gen._M_h,&adjust_common_sizes,p_Stack_38,uVar2,1);" statement_identifier (ERROR "::_Mod_range_hashing,_std:" : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) :) : (labeled_statement "__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                  (p_Stack_3c,__node_gen._M_h,&adjust_common_sizes,p_Stack_38,uVar2,1);" statement_identifier (ERROR "::_Default_ranged_hash,_std:" : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) :) : (labeled_statement "__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                  (p_Stack_3c,__node_gen._M_h,&adjust_common_sizes,p_Stack_38,uVar2,1);" statement_identifier (ERROR "::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<const_gold::Symbol_location&,_std:" : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : (comma_expression "__detail::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<const_gold::Symbol_location&,_std" identifier (ERROR "::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<const_gold::Symbol_location&" : : (comma_expression "_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<const_gold" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n        ::\n        _M_insert<const_gold" identifier , (binary_expression "_true>_>\n        ::\n        _M_insert<const_gold" (binary_expression "_true>_>\n        ::\n        _M_insert" (binary_expression "_true>_" identifier > identifier) > (ERROR "::" : :) identifier) < identifier))) : : identifier &) , identifier) :) : (labeled_statement "__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                  (p_Stack_3c,__node_gen._M_h,&adjust_common_sizes,p_Stack_38,uVar2,1);" statement_identifier (ERROR "::_AllocNode<std::allocator<std:" : : (binary_expression "_AllocNode<std" identifier < identifier) : : (binary_expression "allocator<std" identifier < identifier) :) : (labeled_statement "__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                  (p_Stack_3c,__node_gen._M_h,&adjust_common_sizes,p_Stack_38,uVar2,1);" statement_identifier (ERROR "::_Hash_node<gold:" : : (binary_expression "_Hash_node<gold" identifier < identifier) :) : (expression_statement "Symbol_location,_true>_>_>_>\n                  (p_Stack_3c,__node_gen._M_h,&adjust_common_sizes,p_Stack_38,uVar2,1);" (comma_expression "Symbol_location,_true>_>_>_>\n                  (p_Stack_3c,__node_gen._M_h,&adjust_common_sizes,p_Stack_38,uVar2,1)" identifier , (binary_expression "_true>_>_>_>\n                  (p_Stack_3c,__node_gen._M_h,&adjust_common_sizes,p_Stack_38,uVar2,1)" (binary_expression "_true>_>_>_" (binary_expression "_true>_>_" (binary_expression "_true>_" identifier > identifier) > identifier) > identifier) > (parenthesized_expression "(p_Stack_3c,__node_gen._M_h,&adjust_common_sizes,p_Stack_38,uVar2,1)" ( (comma_expression "p_Stack_3c,__node_gen._M_h,&adjust_common_sizes,p_Stack_38,uVar2,1" identifier , (comma_expression "__node_gen._M_h,&adjust_common_sizes,p_Stack_38,uVar2,1" (field_expression "__node_gen._M_h" identifier . field_identifier) , (comma_expression "&adjust_common_sizes,p_Stack_38,uVar2,1" (pointer_expression "&adjust_common_sizes" & identifier) , (comma_expression "p_Stack_38,uVar2,1" identifier , (comma_expression "uVar2,1" identifier , number_literal))))) )))) ;)))))) (expression_statement "pcStack_44 = (to->super_Symbol).name_;" (assignment_expression "pcStack_44 = (to->super_Symbol).name_" identifier = (field_expression "(to->super_Symbol).name_" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "__node_gen._M_h = (__hashtable_alloc *)(*pcStack_34)(pOStack_2c,ppcStack_30);" (assignment_expression "__node_gen._M_h = (__hashtable_alloc *)(*pcStack_34)(pOStack_2c,ppcStack_30)" (field_expression "__node_gen._M_h" identifier . field_identifier) = (cast_expression "(__hashtable_alloc *)(*pcStack_34)(pOStack_2c,ppcStack_30)" ( (type_descriptor "__hashtable_alloc *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcStack_34)(pOStack_2c,ppcStack_30)" (parenthesized_expression "(*pcStack_34)" ( (pointer_expression "*pcStack_34" * identifier) )) (argument_list "(pOStack_2c,ppcStack_30)" ( identifier , identifier ))))) ;) (ERROR "std::\n        _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::" (comma_expression "std::\n        _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std" identifier (ERROR "::\n        _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>" : : (binary_expression "_Hashtable<gold" identifier < identifier) : : (comma_expression "Symbol_location,_gold" identifier , identifier) : : (comma_expression "Symbol_location,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier >) , identifier) : : identifier : : (comma_expression "_Identity,_std" identifier , identifier) : : (binary_expression "equal_to<gold" identifier < identifier) : : (binary_expression "Symbol_location>,_gold" identifier > (ERROR "," ,) identifier) : : (comma_expression "Symbol_location_hash,_std" identifier , identifier) : :) (labeled_statement "__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                  (p_Stack_3c,__node_gen._M_h,pXStack_40,p_Stack_38,uVar2 & 0xffffff,1);" statement_identifier (ERROR "::_Mod_range_hashing,_std:" : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) :) : (labeled_statement "__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                  (p_Stack_3c,__node_gen._M_h,pXStack_40,p_Stack_38,uVar2 & 0xffffff,1);" statement_identifier (ERROR "::_Default_ranged_hash,_std:" : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) :) : (labeled_statement "__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                  (p_Stack_3c,__node_gen._M_h,pXStack_40,p_Stack_38,uVar2 & 0xffffff,1);" statement_identifier (ERROR "::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<const_gold::Symbol_location&,_std:" : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : (comma_expression "__detail::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<const_gold::Symbol_location&,_std" identifier (ERROR "::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<const_gold::Symbol_location&" : : (comma_expression "_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<const_gold" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n        ::\n        _M_insert<const_gold" identifier , (binary_expression "_true>_>\n        ::\n        _M_insert<const_gold" (binary_expression "_true>_>\n        ::\n        _M_insert" (binary_expression "_true>_" identifier > identifier) > (ERROR "::" : :) identifier) < identifier))) : : identifier &) , identifier) :) : (labeled_statement "__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                  (p_Stack_3c,__node_gen._M_h,pXStack_40,p_Stack_38,uVar2 & 0xffffff,1);" statement_identifier (ERROR "::_AllocNode<std::allocator<std:" : : (binary_expression "_AllocNode<std" identifier < identifier) : : (binary_expression "allocator<std" identifier < identifier) :) : (labeled_statement "__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                  (p_Stack_3c,__node_gen._M_h,pXStack_40,p_Stack_38,uVar2 & 0xffffff,1);" statement_identifier (ERROR "::_Hash_node<gold:" : : (binary_expression "_Hash_node<gold" identifier < identifier) :) : (expression_statement "Symbol_location,_true>_>_>_>\n                  (p_Stack_3c,__node_gen._M_h,pXStack_40,p_Stack_38,uVar2 & 0xffffff,1);" (comma_expression "Symbol_location,_true>_>_>_>\n                  (p_Stack_3c,__node_gen._M_h,pXStack_40,p_Stack_38,uVar2 & 0xffffff,1)" identifier , (binary_expression "_true>_>_>_>\n                  (p_Stack_3c,__node_gen._M_h,pXStack_40,p_Stack_38,uVar2 & 0xffffff,1)" (binary_expression "_true>_>_>_" (binary_expression "_true>_>_" (binary_expression "_true>_" identifier > identifier) > identifier) > identifier) > (parenthesized_expression "(p_Stack_3c,__node_gen._M_h,pXStack_40,p_Stack_38,uVar2 & 0xffffff,1)" ( (comma_expression "p_Stack_3c,__node_gen._M_h,pXStack_40,p_Stack_38,uVar2 & 0xffffff,1" identifier , (comma_expression "__node_gen._M_h,pXStack_40,p_Stack_38,uVar2 & 0xffffff,1" (field_expression "__node_gen._M_h" identifier . field_identifier) , (comma_expression "pXStack_40,p_Stack_38,uVar2 & 0xffffff,1" identifier , (comma_expression "p_Stack_38,uVar2 & 0xffffff,1" identifier , (comma_expression "uVar2 & 0xffffff,1" (binary_expression "uVar2 & 0xffffff" identifier & number_literal) , number_literal))))) )))) ;)))))) (expression_statement "pp_Var6 = object->_vptr_Object;" (assignment_expression "pp_Var6 = object->_vptr_Object" identifier = (field_expression "object->_vptr_Object" identifier -> field_identifier)) ;) })))) (expression_statement "iVar3 = (*pp_Var6[5])(object);" (assignment_expression "iVar3 = (*pp_Var6[5])(object)" identifier = (call_expression "(*pp_Var6[5])(object)" (parenthesized_expression "(*pp_Var6[5])" ( (pointer_expression "*pp_Var6[5]" * (subscript_expression "pp_Var6[5]" identifier [ number_literal ])) )) (argument_list "(object)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) {\n        SVar12 = (STT)sym->p_->st_info;\n        fromtype = SVar12 & STT_HIPROC;\n      }\n      else {\n        SVar12 = (STT)sym->p_->st_info;\n        fromtype = *(uint *)&(to->super_Symbol).field_0x28 >> 0x1c;\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        SVar12 = (STT)sym->p_->st_info;\n        fromtype = SVar12 & STT_HIPROC;\n      }" { (expression_statement "SVar12 = (STT)sym->p_->st_info;" (assignment_expression "SVar12 = (STT)sym->p_->st_info" identifier = (cast_expression "(STT)sym->p_->st_info" ( (type_descriptor "STT" type_identifier) ) (field_expression "sym->p_->st_info" (field_expression "sym->p_" identifier -> field_identifier) -> field_identifier))) ;) (expression_statement "fromtype = SVar12 & STT_HIPROC;" (assignment_expression "fromtype = SVar12 & STT_HIPROC" identifier = (binary_expression "SVar12 & STT_HIPROC" identifier & identifier)) ;) }) (else_clause "else {\n        SVar12 = (STT)sym->p_->st_info;\n        fromtype = *(uint *)&(to->super_Symbol).field_0x28 >> 0x1c;\n      }" else (compound_statement "{\n        SVar12 = (STT)sym->p_->st_info;\n        fromtype = *(uint *)&(to->super_Symbol).field_0x28 >> 0x1c;\n      }" { (expression_statement "SVar12 = (STT)sym->p_->st_info;" (assignment_expression "SVar12 = (STT)sym->p_->st_info" identifier = (cast_expression "(STT)sym->p_->st_info" ( (type_descriptor "STT" type_identifier) ) (field_expression "sym->p_->st_info" (field_expression "sym->p_" identifier -> field_identifier) -> field_identifier))) ;) (expression_statement "fromtype = *(uint *)&(to->super_Symbol).field_0x28 >> 0x1c;" (assignment_expression "fromtype = *(uint *)&(to->super_Symbol).field_0x28 >> 0x1c" identifier = (binary_expression "*(uint *)&(to->super_Symbol).field_0x28 >> 0x1c" (pointer_expression "*(uint *)&(to->super_Symbol).field_0x28" * (cast_expression "(uint *)&(to->super_Symbol).field_0x28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(to->super_Symbol).field_0x28" & (field_expression "(to->super_Symbol).field_0x28" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier)))) >> number_literal)) ;) }))) (expression_statement "uVar2 = symbol_to_bits(SVar12 >> 4,SUB41((uint)*(undefined4 *)&object->field_0x2c >> 0x1f,0),\n                             st_shndx,is_ordinary);" (assignment_expression "uVar2 = symbol_to_bits(SVar12 >> 4,SUB41((uint)*(undefined4 *)&object->field_0x2c >> 0x1f,0),\n                             st_shndx,is_ordinary)" identifier = (call_expression "symbol_to_bits(SVar12 >> 4,SUB41((uint)*(undefined4 *)&object->field_0x2c >> 0x1f,0),\n                             st_shndx,is_ordinary)" identifier (argument_list "(SVar12 >> 4,SUB41((uint)*(undefined4 *)&object->field_0x2c >> 0x1f,0),\n                             st_shndx,is_ordinary)" ( (binary_expression "SVar12 >> 4" identifier >> number_literal) , (call_expression "SUB41((uint)*(undefined4 *)&object->field_0x2c >> 0x1f,0)" identifier (argument_list "((uint)*(undefined4 *)&object->field_0x2c >> 0x1f,0)" ( (binary_expression "(uint)*(undefined4 *)&object->field_0x2c >> 0x1f" (binary_expression "(uint)*(undefined4 *)&object->field_0x2c" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(undefined4 *)&object->field_0x2c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&object->field_0x2c" & (field_expression "object->field_0x2c" identifier -> field_identifier)))) >> number_literal) , number_literal ))) , identifier , identifier )))) ;) (expression_statement "p_Stack_3c = *(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                     **)((int)&to->symsize_ + 4);" (assignment_expression "p_Stack_3c = *(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                     **)((int)&to->symsize_ + 4)" identifier = (pointer_expression "*(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                     **)((int)&to->symsize_ + 4)" * (call_expression "(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                     **)((int)&to->symsize_ + 4)" (parenthesized_expression "(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                     **)" ( (ERROR "_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (binary_expression "_Hashtable<gold" identifier < identifier) : : (comma_expression "Symbol_location,_gold" identifier , identifier) : : (comma_expression "Symbol_location,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Symbol_location>,_std" identifier > (ERROR "," ,) identifier) : : identifier : : (comma_expression "_Identity,_std" identifier , identifier) : : (binary_expression "equal_to<gold" identifier < identifier) : : (binary_expression "Symbol_location>,_gold" identifier > (ERROR "," ,) identifier) : : (comma_expression "Symbol_location_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) : : identifier : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : identifier : :) (comma_expression "_Hashtable_traits<true,_true,_true>_>\n                     **" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n                     **" identifier , (binary_expression "_true>_>\n                     **" (binary_expression "_true>_" identifier > identifier) > (pointer_expression "**" * (pointer_expression "*" * identifier))))) )) (argument_list "((int)&to->symsize_ + 4)" ( (binary_expression "(int)&to->symsize_ + 4" (cast_expression "(int)&to->symsize_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&to->symsize_" & (field_expression "to->symsize_" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "uVar18 = *(uint *)&to->symsize_;" (assignment_expression "uVar18 = *(uint *)&to->symsize_" identifier = (pointer_expression "*(uint *)&to->symsize_" * (cast_expression "(uint *)&to->symsize_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&to->symsize_" & (field_expression "to->symsize_" identifier -> field_identifier))))) ;) (expression_statement "bVar9 = should_override(&to->super_Symbol,uVar2,fromtype,OBJECT,object,&adjust_common_sizes,\n                              (bool *)pXStack_40,is_default_version);" (assignment_expression "bVar9 = should_override(&to->super_Symbol,uVar2,fromtype,OBJECT,object,&adjust_common_sizes,\n                              (bool *)pXStack_40,is_default_version)" identifier = (call_expression "should_override(&to->super_Symbol,uVar2,fromtype,OBJECT,object,&adjust_common_sizes,\n                              (bool *)pXStack_40,is_default_version)" identifier (argument_list "(&to->super_Symbol,uVar2,fromtype,OBJECT,object,&adjust_common_sizes,\n                              (bool *)pXStack_40,is_default_version)" ( (pointer_expression "&to->super_Symbol" & (field_expression "to->super_Symbol" identifier -> field_identifier)) , identifier , identifier , identifier , identifier , (pointer_expression "&adjust_common_sizes" & identifier) , (cast_expression "(bool *)pXStack_40" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (if_statement "if (CONCAT31(extraout_var,bVar9) == 0) {\n        puVar13 = (undefined *)((uint)_adjust_common_sizes >> 0x18);\n        pSVar14 = sym->p_;\n        if (puVar13 != (undefined *)0x0) {\n          uVar2 = *(uint *)&pSVar14->st_size;\n          p_Var16 = *(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                      **)((int)&pSVar14->st_size + 4);\n          if ((uVar18 < uVar2) || ((uVar2 == uVar18 && (p_Stack_3c < p_Var16)))) {\n            *(uint *)&to->symsize_ = uVar2;\n            *(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              **)((int)&to->symsize_ + 4) = p_Var16;\n          }\n          uVar2 = *(uint *)&pSVar14->st_value;\n          uVar19 = (uint)pSVar14->st_value;\n          if ((*(uint *)&to->value_ < uVar2) ||\n             ((*(uint *)&to->value_ == uVar2 && ((uint)to->value_ < uVar19)))) {\n            *(uint *)&to->value_ = uVar2;\n            *(uint *)((int)&to->value_ + 4) = uVar19;\n          }\n        }\n        if ((adjust_dyndef != false) &&\n           ((iVar3 = *(int *)&(to->super_Symbol).field_0x2c, -1 < iVar3 || (iVar3 << 1 < 0)))) {\n          (to->super_Symbol).field_0x2c =\n               (to->super_Symbol).field_0x2c & 0x3f | ((int)(uint)pSVar14->st_info >> 4 == 2) << 6 |\n               0x80;\n        }\n        bVar10 = pSVar14->st_other;\n        uVar2 = *(uint *)&(to->super_Symbol).field_0x28;\n        if (((bVar10 & 3) != 0) &&\n           (((uVar2 & 0xc00000) == 0 || ((bVar10 & 3) < (uVar2 << 8) >> 0x1e)))) {\n          uVar2 = uVar2 & 0xff3fffff | (bVar10 & 3) << 0x16;\n          *(uint *)&(to->super_Symbol).field_0x28 = uVar2;\n        }\n      }\n      else {\n        iVar3 = *(int *)&(to->super_Symbol).field_0x28;\n        uVar2 = *(uint *)&to->value_;\n        uVar19 = (uint)to->value_;\n        override<64,_true>(this,to,sym,st_shndx,is_ordinary,object,version);\n        puVar13 = (undefined *)((uint)_adjust_common_sizes >> 0x18);\n        if (puVar13 != (undefined *)0x0) {\n          if ((*(uint *)&to->symsize_ < uVar18) ||\n             ((*(uint *)&to->symsize_ == uVar18 &&\n              (*(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                 **)((int)&to->symsize_ + 4) < p_Stack_3c)))) {\n            *(uint *)&to->symsize_ = uVar18;\n            *(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              **)((int)&to->symsize_ + 4) = p_Stack_3c;\n          }\n          if ((*(uint *)&to->value_ < uVar2) ||\n             ((*(uint *)&to->value_ == uVar2 && ((uint)to->value_ < uVar19)))) {\n            *(uint *)&to->value_ = uVar2;\n            *(uint *)((int)&to->value_ + 4) = uVar19;\n          }\n        }\n        uVar2 = *(uint *)&(to->super_Symbol).field_0x28;\n        if (adjust_dyndef != false) {\n          iVar15 = *(int *)&(to->super_Symbol).field_0x2c;\n          if (iVar15 < 0) {\n            if (-1 < iVar15 << 1) goto LAB_002962d0;\n            bVar10 = (to->super_Symbol).field_0x2c;\n          }\n          else {\n            bVar10 = (to->super_Symbol).field_0x2c;\n          }\n          (to->super_Symbol).field_0x2c =\n               bVar10 & 0x3f | ((uint)(iVar3 << 4) >> 0x1c == 2) << 6 | 0x80;\n        }\n      }" if (parenthesized_expression "(CONCAT31(extraout_var,bVar9) == 0)" ( (binary_expression "CONCAT31(extraout_var,bVar9) == 0" (call_expression "CONCAT31(extraout_var,bVar9)" identifier (argument_list "(extraout_var,bVar9)" ( identifier , identifier ))) == number_literal) )) (compound_statement "{\n        puVar13 = (undefined *)((uint)_adjust_common_sizes >> 0x18);\n        pSVar14 = sym->p_;\n        if (puVar13 != (undefined *)0x0) {\n          uVar2 = *(uint *)&pSVar14->st_size;\n          p_Var16 = *(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                      **)((int)&pSVar14->st_size + 4);\n          if ((uVar18 < uVar2) || ((uVar2 == uVar18 && (p_Stack_3c < p_Var16)))) {\n            *(uint *)&to->symsize_ = uVar2;\n            *(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              **)((int)&to->symsize_ + 4) = p_Var16;\n          }\n          uVar2 = *(uint *)&pSVar14->st_value;\n          uVar19 = (uint)pSVar14->st_value;\n          if ((*(uint *)&to->value_ < uVar2) ||\n             ((*(uint *)&to->value_ == uVar2 && ((uint)to->value_ < uVar19)))) {\n            *(uint *)&to->value_ = uVar2;\n            *(uint *)((int)&to->value_ + 4) = uVar19;\n          }\n        }\n        if ((adjust_dyndef != false) &&\n           ((iVar3 = *(int *)&(to->super_Symbol).field_0x2c, -1 < iVar3 || (iVar3 << 1 < 0)))) {\n          (to->super_Symbol).field_0x2c =\n               (to->super_Symbol).field_0x2c & 0x3f | ((int)(uint)pSVar14->st_info >> 4 == 2) << 6 |\n               0x80;\n        }\n        bVar10 = pSVar14->st_other;\n        uVar2 = *(uint *)&(to->super_Symbol).field_0x28;\n        if (((bVar10 & 3) != 0) &&\n           (((uVar2 & 0xc00000) == 0 || ((bVar10 & 3) < (uVar2 << 8) >> 0x1e)))) {\n          uVar2 = uVar2 & 0xff3fffff | (bVar10 & 3) << 0x16;\n          *(uint *)&(to->super_Symbol).field_0x28 = uVar2;\n        }\n      }" { (expression_statement "puVar13 = (undefined *)((uint)_adjust_common_sizes >> 0x18);" (assignment_expression "puVar13 = (undefined *)((uint)_adjust_common_sizes >> 0x18)" identifier = (cast_expression "(undefined *)((uint)_adjust_common_sizes >> 0x18)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)_adjust_common_sizes >> 0x18)" ( (binary_expression "(uint)_adjust_common_sizes >> 0x18" (cast_expression "(uint)_adjust_common_sizes" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pSVar14 = sym->p_;" (assignment_expression "pSVar14 = sym->p_" identifier = (field_expression "sym->p_" identifier -> field_identifier)) ;) (if_statement "if (puVar13 != (undefined *)0x0) {\n          uVar2 = *(uint *)&pSVar14->st_size;\n          p_Var16 = *(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                      **)((int)&pSVar14->st_size + 4);\n          if ((uVar18 < uVar2) || ((uVar2 == uVar18 && (p_Stack_3c < p_Var16)))) {\n            *(uint *)&to->symsize_ = uVar2;\n            *(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              **)((int)&to->symsize_ + 4) = p_Var16;\n          }\n          uVar2 = *(uint *)&pSVar14->st_value;\n          uVar19 = (uint)pSVar14->st_value;\n          if ((*(uint *)&to->value_ < uVar2) ||\n             ((*(uint *)&to->value_ == uVar2 && ((uint)to->value_ < uVar19)))) {\n            *(uint *)&to->value_ = uVar2;\n            *(uint *)((int)&to->value_ + 4) = uVar19;\n          }\n        }" if (parenthesized_expression "(puVar13 != (undefined *)0x0)" ( (binary_expression "puVar13 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          uVar2 = *(uint *)&pSVar14->st_size;\n          p_Var16 = *(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                      **)((int)&pSVar14->st_size + 4);\n          if ((uVar18 < uVar2) || ((uVar2 == uVar18 && (p_Stack_3c < p_Var16)))) {\n            *(uint *)&to->symsize_ = uVar2;\n            *(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              **)((int)&to->symsize_ + 4) = p_Var16;\n          }\n          uVar2 = *(uint *)&pSVar14->st_value;\n          uVar19 = (uint)pSVar14->st_value;\n          if ((*(uint *)&to->value_ < uVar2) ||\n             ((*(uint *)&to->value_ == uVar2 && ((uint)to->value_ < uVar19)))) {\n            *(uint *)&to->value_ = uVar2;\n            *(uint *)((int)&to->value_ + 4) = uVar19;\n          }\n        }" { (expression_statement "uVar2 = *(uint *)&pSVar14->st_size;" (assignment_expression "uVar2 = *(uint *)&pSVar14->st_size" identifier = (pointer_expression "*(uint *)&pSVar14->st_size" * (cast_expression "(uint *)&pSVar14->st_size" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pSVar14->st_size" & (field_expression "pSVar14->st_size" identifier -> field_identifier))))) ;) (expression_statement "p_Var16 = *(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                      **)((int)&pSVar14->st_size + 4);" (assignment_expression "p_Var16 = *(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                      **)((int)&pSVar14->st_size + 4)" identifier = (pointer_expression "*(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                      **)((int)&pSVar14->st_size + 4)" * (call_expression "(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                      **)((int)&pSVar14->st_size + 4)" (parenthesized_expression "(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                      **)" ( (ERROR "_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (binary_expression "_Hashtable<gold" identifier < identifier) : : (comma_expression "Symbol_location,_gold" identifier , identifier) : : (comma_expression "Symbol_location,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Symbol_location>,_std" identifier > (ERROR "," ,) identifier) : : identifier : : (comma_expression "_Identity,_std" identifier , identifier) : : (binary_expression "equal_to<gold" identifier < identifier) : : (binary_expression "Symbol_location>,_gold" identifier > (ERROR "," ,) identifier) : : (comma_expression "Symbol_location_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) : : identifier : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : identifier : :) (comma_expression "_Hashtable_traits<true,_true,_true>_>\n                      **" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n                      **" identifier , (binary_expression "_true>_>\n                      **" (binary_expression "_true>_" identifier > identifier) > (pointer_expression "**" * (pointer_expression "*" * identifier))))) )) (argument_list "((int)&pSVar14->st_size + 4)" ( (binary_expression "(int)&pSVar14->st_size + 4" (cast_expression "(int)&pSVar14->st_size" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pSVar14->st_size" & (field_expression "pSVar14->st_size" identifier -> field_identifier))) + number_literal) ))))) ;) (if_statement "if ((uVar18 < uVar2) || ((uVar2 == uVar18 && (p_Stack_3c < p_Var16)))) {\n            *(uint *)&to->symsize_ = uVar2;\n            *(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              **)((int)&to->symsize_ + 4) = p_Var16;\n          }" if (parenthesized_expression "((uVar18 < uVar2) || ((uVar2 == uVar18 && (p_Stack_3c < p_Var16))))" ( (binary_expression "(uVar18 < uVar2) || ((uVar2 == uVar18 && (p_Stack_3c < p_Var16)))" (parenthesized_expression "(uVar18 < uVar2)" ( (binary_expression "uVar18 < uVar2" identifier < identifier) )) || (parenthesized_expression "((uVar2 == uVar18 && (p_Stack_3c < p_Var16)))" ( (parenthesized_expression "(uVar2 == uVar18 && (p_Stack_3c < p_Var16))" ( (binary_expression "uVar2 == uVar18 && (p_Stack_3c < p_Var16)" (binary_expression "uVar2 == uVar18" identifier == identifier) && (parenthesized_expression "(p_Stack_3c < p_Var16)" ( (binary_expression "p_Stack_3c < p_Var16" identifier < identifier) ))) )) ))) )) (compound_statement "{\n            *(uint *)&to->symsize_ = uVar2;\n            *(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              **)((int)&to->symsize_ + 4) = p_Var16;\n          }" { (expression_statement "*(uint *)&to->symsize_ = uVar2;" (assignment_expression "*(uint *)&to->symsize_ = uVar2" (pointer_expression "*(uint *)&to->symsize_" * (cast_expression "(uint *)&to->symsize_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&to->symsize_" & (field_expression "to->symsize_" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              **)((int)&to->symsize_ + 4) = p_Var16;" (assignment_expression "*(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              **)((int)&to->symsize_ + 4) = p_Var16" (pointer_expression "*(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              **)((int)&to->symsize_ + 4)" * (call_expression "(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              **)((int)&to->symsize_ + 4)" (parenthesized_expression "(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              **)" ( (ERROR "_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (binary_expression "_Hashtable<gold" identifier < identifier) : : (comma_expression "Symbol_location,_gold" identifier , identifier) : : (comma_expression "Symbol_location,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Symbol_location>,_std" identifier > (ERROR "," ,) identifier) : : identifier : : (comma_expression "_Identity,_std" identifier , identifier) : : (binary_expression "equal_to<gold" identifier < identifier) : : (binary_expression "Symbol_location>,_gold" identifier > (ERROR "," ,) identifier) : : (comma_expression "Symbol_location_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) : : identifier : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : identifier : :) (comma_expression "_Hashtable_traits<true,_true,_true>_>\n              **" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n              **" identifier , (binary_expression "_true>_>\n              **" (binary_expression "_true>_" identifier > identifier) > (pointer_expression "**" * (pointer_expression "*" * identifier))))) )) (argument_list "((int)&to->symsize_ + 4)" ( (binary_expression "(int)&to->symsize_ + 4" (cast_expression "(int)&to->symsize_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&to->symsize_" & (field_expression "to->symsize_" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) })) (expression_statement "uVar2 = *(uint *)&pSVar14->st_value;" (assignment_expression "uVar2 = *(uint *)&pSVar14->st_value" identifier = (pointer_expression "*(uint *)&pSVar14->st_value" * (cast_expression "(uint *)&pSVar14->st_value" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pSVar14->st_value" & (field_expression "pSVar14->st_value" identifier -> field_identifier))))) ;) (expression_statement "uVar19 = (uint)pSVar14->st_value;" (assignment_expression "uVar19 = (uint)pSVar14->st_value" identifier = (cast_expression "(uint)pSVar14->st_value" ( (type_descriptor "uint" type_identifier) ) (field_expression "pSVar14->st_value" identifier -> field_identifier))) ;) (if_statement "if ((*(uint *)&to->value_ < uVar2) ||\n             ((*(uint *)&to->value_ == uVar2 && ((uint)to->value_ < uVar19)))) {\n            *(uint *)&to->value_ = uVar2;\n            *(uint *)((int)&to->value_ + 4) = uVar19;\n          }" if (parenthesized_expression "((*(uint *)&to->value_ < uVar2) ||\n             ((*(uint *)&to->value_ == uVar2 && ((uint)to->value_ < uVar19))))" ( (binary_expression "(*(uint *)&to->value_ < uVar2) ||\n             ((*(uint *)&to->value_ == uVar2 && ((uint)to->value_ < uVar19)))" (parenthesized_expression "(*(uint *)&to->value_ < uVar2)" ( (binary_expression "*(uint *)&to->value_ < uVar2" (pointer_expression "*(uint *)&to->value_" * (cast_expression "(uint *)&to->value_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&to->value_" & (field_expression "to->value_" identifier -> field_identifier)))) < identifier) )) || (parenthesized_expression "((*(uint *)&to->value_ == uVar2 && ((uint)to->value_ < uVar19)))" ( (parenthesized_expression "(*(uint *)&to->value_ == uVar2 && ((uint)to->value_ < uVar19))" ( (binary_expression "*(uint *)&to->value_ == uVar2 && ((uint)to->value_ < uVar19)" (binary_expression "*(uint *)&to->value_ == uVar2" (pointer_expression "*(uint *)&to->value_" * (cast_expression "(uint *)&to->value_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&to->value_" & (field_expression "to->value_" identifier -> field_identifier)))) == identifier) && (parenthesized_expression "((uint)to->value_ < uVar19)" ( (binary_expression "(uint)to->value_ < uVar19" (cast_expression "(uint)to->value_" ( (type_descriptor "uint" type_identifier) ) (field_expression "to->value_" identifier -> field_identifier)) < identifier) ))) )) ))) )) (compound_statement "{\n            *(uint *)&to->value_ = uVar2;\n            *(uint *)((int)&to->value_ + 4) = uVar19;\n          }" { (expression_statement "*(uint *)&to->value_ = uVar2;" (assignment_expression "*(uint *)&to->value_ = uVar2" (pointer_expression "*(uint *)&to->value_" * (cast_expression "(uint *)&to->value_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&to->value_" & (field_expression "to->value_" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(uint *)((int)&to->value_ + 4) = uVar19;" (assignment_expression "*(uint *)((int)&to->value_ + 4) = uVar19" (pointer_expression "*(uint *)((int)&to->value_ + 4)" * (cast_expression "(uint *)((int)&to->value_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&to->value_ + 4)" ( (binary_expression "(int)&to->value_ + 4" (cast_expression "(int)&to->value_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&to->value_" & (field_expression "to->value_" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) })) })) (if_statement "if ((adjust_dyndef != false) &&\n           ((iVar3 = *(int *)&(to->super_Symbol).field_0x2c, -1 < iVar3 || (iVar3 << 1 < 0)))) {\n          (to->super_Symbol).field_0x2c =\n               (to->super_Symbol).field_0x2c & 0x3f | ((int)(uint)pSVar14->st_info >> 4 == 2) << 6 |\n               0x80;\n        }" if (parenthesized_expression "((adjust_dyndef != false) &&\n           ((iVar3 = *(int *)&(to->super_Symbol).field_0x2c, -1 < iVar3 || (iVar3 << 1 < 0))))" ( (binary_expression "(adjust_dyndef != false) &&\n           ((iVar3 = *(int *)&(to->super_Symbol).field_0x2c, -1 < iVar3 || (iVar3 << 1 < 0)))" (parenthesized_expression "(adjust_dyndef != false)" ( (binary_expression "adjust_dyndef != false" identifier != false) )) && (parenthesized_expression "((iVar3 = *(int *)&(to->super_Symbol).field_0x2c, -1 < iVar3 || (iVar3 << 1 < 0)))" ( (parenthesized_expression "(iVar3 = *(int *)&(to->super_Symbol).field_0x2c, -1 < iVar3 || (iVar3 << 1 < 0))" ( (comma_expression "iVar3 = *(int *)&(to->super_Symbol).field_0x2c, -1 < iVar3 || (iVar3 << 1 < 0)" (assignment_expression "iVar3 = *(int *)&(to->super_Symbol).field_0x2c" identifier = (pointer_expression "*(int *)&(to->super_Symbol).field_0x2c" * (cast_expression "(int *)&(to->super_Symbol).field_0x2c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(to->super_Symbol).field_0x2c" & (field_expression "(to->super_Symbol).field_0x2c" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier))))) , (binary_expression "-1 < iVar3 || (iVar3 << 1 < 0)" (binary_expression "-1 < iVar3" number_literal < identifier) || (parenthesized_expression "(iVar3 << 1 < 0)" ( (binary_expression "iVar3 << 1 < 0" (binary_expression "iVar3 << 1" identifier << number_literal) < number_literal) )))) )) ))) )) (compound_statement "{\n          (to->super_Symbol).field_0x2c =\n               (to->super_Symbol).field_0x2c & 0x3f | ((int)(uint)pSVar14->st_info >> 4 == 2) << 6 |\n               0x80;\n        }" { (expression_statement "(to->super_Symbol).field_0x2c =\n               (to->super_Symbol).field_0x2c & 0x3f | ((int)(uint)pSVar14->st_info >> 4 == 2) << 6 |\n               0x80;" (assignment_expression "(to->super_Symbol).field_0x2c =\n               (to->super_Symbol).field_0x2c & 0x3f | ((int)(uint)pSVar14->st_info >> 4 == 2) << 6 |\n               0x80" (field_expression "(to->super_Symbol).field_0x2c" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier) = (binary_expression "(to->super_Symbol).field_0x2c & 0x3f | ((int)(uint)pSVar14->st_info >> 4 == 2) << 6 |\n               0x80" (binary_expression "(to->super_Symbol).field_0x2c & 0x3f | ((int)(uint)pSVar14->st_info >> 4 == 2) << 6" (binary_expression "(to->super_Symbol).field_0x2c & 0x3f" (field_expression "(to->super_Symbol).field_0x2c" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal) | (binary_expression "((int)(uint)pSVar14->st_info >> 4 == 2) << 6" (parenthesized_expression "((int)(uint)pSVar14->st_info >> 4 == 2)" ( (binary_expression "(int)(uint)pSVar14->st_info >> 4 == 2" (binary_expression "(int)(uint)pSVar14->st_info >> 4" (cast_expression "(int)(uint)pSVar14->st_info" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)pSVar14->st_info" ( (type_descriptor "uint" type_identifier) ) (field_expression "pSVar14->st_info" identifier -> field_identifier))) >> number_literal) == number_literal) )) << number_literal)) | number_literal)) ;) })) (expression_statement "bVar10 = pSVar14->st_other;" (assignment_expression "bVar10 = pSVar14->st_other" identifier = (field_expression "pSVar14->st_other" identifier -> field_identifier)) ;) (expression_statement "uVar2 = *(uint *)&(to->super_Symbol).field_0x28;" (assignment_expression "uVar2 = *(uint *)&(to->super_Symbol).field_0x28" identifier = (pointer_expression "*(uint *)&(to->super_Symbol).field_0x28" * (cast_expression "(uint *)&(to->super_Symbol).field_0x28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(to->super_Symbol).field_0x28" & (field_expression "(to->super_Symbol).field_0x28" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier))))) ;) (if_statement "if (((bVar10 & 3) != 0) &&\n           (((uVar2 & 0xc00000) == 0 || ((bVar10 & 3) < (uVar2 << 8) >> 0x1e)))) {\n          uVar2 = uVar2 & 0xff3fffff | (bVar10 & 3) << 0x16;\n          *(uint *)&(to->super_Symbol).field_0x28 = uVar2;\n        }" if (parenthesized_expression "(((bVar10 & 3) != 0) &&\n           (((uVar2 & 0xc00000) == 0 || ((bVar10 & 3) < (uVar2 << 8) >> 0x1e))))" ( (binary_expression "((bVar10 & 3) != 0) &&\n           (((uVar2 & 0xc00000) == 0 || ((bVar10 & 3) < (uVar2 << 8) >> 0x1e)))" (parenthesized_expression "((bVar10 & 3) != 0)" ( (binary_expression "(bVar10 & 3) != 0" (parenthesized_expression "(bVar10 & 3)" ( (binary_expression "bVar10 & 3" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(((uVar2 & 0xc00000) == 0 || ((bVar10 & 3) < (uVar2 << 8) >> 0x1e)))" ( (parenthesized_expression "((uVar2 & 0xc00000) == 0 || ((bVar10 & 3) < (uVar2 << 8) >> 0x1e))" ( (binary_expression "(uVar2 & 0xc00000) == 0 || ((bVar10 & 3) < (uVar2 << 8) >> 0x1e)" (binary_expression "(uVar2 & 0xc00000) == 0" (parenthesized_expression "(uVar2 & 0xc00000)" ( (binary_expression "uVar2 & 0xc00000" identifier & number_literal) )) == number_literal) || (parenthesized_expression "((bVar10 & 3) < (uVar2 << 8) >> 0x1e)" ( (binary_expression "(bVar10 & 3) < (uVar2 << 8) >> 0x1e" (parenthesized_expression "(bVar10 & 3)" ( (binary_expression "bVar10 & 3" identifier & number_literal) )) < (binary_expression "(uVar2 << 8) >> 0x1e" (parenthesized_expression "(uVar2 << 8)" ( (binary_expression "uVar2 << 8" identifier << number_literal) )) >> number_literal)) ))) )) ))) )) (compound_statement "{\n          uVar2 = uVar2 & 0xff3fffff | (bVar10 & 3) << 0x16;\n          *(uint *)&(to->super_Symbol).field_0x28 = uVar2;\n        }" { (expression_statement "uVar2 = uVar2 & 0xff3fffff | (bVar10 & 3) << 0x16;" (assignment_expression "uVar2 = uVar2 & 0xff3fffff | (bVar10 & 3) << 0x16" identifier = (binary_expression "uVar2 & 0xff3fffff | (bVar10 & 3) << 0x16" (binary_expression "uVar2 & 0xff3fffff" identifier & number_literal) | (binary_expression "(bVar10 & 3) << 0x16" (parenthesized_expression "(bVar10 & 3)" ( (binary_expression "bVar10 & 3" identifier & number_literal) )) << number_literal))) ;) (expression_statement "*(uint *)&(to->super_Symbol).field_0x28 = uVar2;" (assignment_expression "*(uint *)&(to->super_Symbol).field_0x28 = uVar2" (pointer_expression "*(uint *)&(to->super_Symbol).field_0x28" * (cast_expression "(uint *)&(to->super_Symbol).field_0x28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(to->super_Symbol).field_0x28" & (field_expression "(to->super_Symbol).field_0x28" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier)))) = identifier) ;) })) }) (else_clause "else {\n        iVar3 = *(int *)&(to->super_Symbol).field_0x28;\n        uVar2 = *(uint *)&to->value_;\n        uVar19 = (uint)to->value_;\n        override<64,_true>(this,to,sym,st_shndx,is_ordinary,object,version);\n        puVar13 = (undefined *)((uint)_adjust_common_sizes >> 0x18);\n        if (puVar13 != (undefined *)0x0) {\n          if ((*(uint *)&to->symsize_ < uVar18) ||\n             ((*(uint *)&to->symsize_ == uVar18 &&\n              (*(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                 **)((int)&to->symsize_ + 4) < p_Stack_3c)))) {\n            *(uint *)&to->symsize_ = uVar18;\n            *(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              **)((int)&to->symsize_ + 4) = p_Stack_3c;\n          }\n          if ((*(uint *)&to->value_ < uVar2) ||\n             ((*(uint *)&to->value_ == uVar2 && ((uint)to->value_ < uVar19)))) {\n            *(uint *)&to->value_ = uVar2;\n            *(uint *)((int)&to->value_ + 4) = uVar19;\n          }\n        }\n        uVar2 = *(uint *)&(to->super_Symbol).field_0x28;\n        if (adjust_dyndef != false) {\n          iVar15 = *(int *)&(to->super_Symbol).field_0x2c;\n          if (iVar15 < 0) {\n            if (-1 < iVar15 << 1) goto LAB_002962d0;\n            bVar10 = (to->super_Symbol).field_0x2c;\n          }\n          else {\n            bVar10 = (to->super_Symbol).field_0x2c;\n          }\n          (to->super_Symbol).field_0x2c =\n               bVar10 & 0x3f | ((uint)(iVar3 << 4) >> 0x1c == 2) << 6 | 0x80;\n        }\n      }" else (compound_statement "{\n        iVar3 = *(int *)&(to->super_Symbol).field_0x28;\n        uVar2 = *(uint *)&to->value_;\n        uVar19 = (uint)to->value_;\n        override<64,_true>(this,to,sym,st_shndx,is_ordinary,object,version);\n        puVar13 = (undefined *)((uint)_adjust_common_sizes >> 0x18);\n        if (puVar13 != (undefined *)0x0) {\n          if ((*(uint *)&to->symsize_ < uVar18) ||\n             ((*(uint *)&to->symsize_ == uVar18 &&\n              (*(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                 **)((int)&to->symsize_ + 4) < p_Stack_3c)))) {\n            *(uint *)&to->symsize_ = uVar18;\n            *(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              **)((int)&to->symsize_ + 4) = p_Stack_3c;\n          }\n          if ((*(uint *)&to->value_ < uVar2) ||\n             ((*(uint *)&to->value_ == uVar2 && ((uint)to->value_ < uVar19)))) {\n            *(uint *)&to->value_ = uVar2;\n            *(uint *)((int)&to->value_ + 4) = uVar19;\n          }\n        }\n        uVar2 = *(uint *)&(to->super_Symbol).field_0x28;\n        if (adjust_dyndef != false) {\n          iVar15 = *(int *)&(to->super_Symbol).field_0x2c;\n          if (iVar15 < 0) {\n            if (-1 < iVar15 << 1) goto LAB_002962d0;\n            bVar10 = (to->super_Symbol).field_0x2c;\n          }\n          else {\n            bVar10 = (to->super_Symbol).field_0x2c;\n          }\n          (to->super_Symbol).field_0x2c =\n               bVar10 & 0x3f | ((uint)(iVar3 << 4) >> 0x1c == 2) << 6 | 0x80;\n        }\n      }" { (expression_statement "iVar3 = *(int *)&(to->super_Symbol).field_0x28;" (assignment_expression "iVar3 = *(int *)&(to->super_Symbol).field_0x28" identifier = (pointer_expression "*(int *)&(to->super_Symbol).field_0x28" * (cast_expression "(int *)&(to->super_Symbol).field_0x28" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(to->super_Symbol).field_0x28" & (field_expression "(to->super_Symbol).field_0x28" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "uVar2 = *(uint *)&to->value_;" (assignment_expression "uVar2 = *(uint *)&to->value_" identifier = (pointer_expression "*(uint *)&to->value_" * (cast_expression "(uint *)&to->value_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&to->value_" & (field_expression "to->value_" identifier -> field_identifier))))) ;) (expression_statement "uVar19 = (uint)to->value_;" (assignment_expression "uVar19 = (uint)to->value_" identifier = (cast_expression "(uint)to->value_" ( (type_descriptor "uint" type_identifier) ) (field_expression "to->value_" identifier -> field_identifier))) ;) (expression_statement "override<64,_true>(this,to,sym,st_shndx,is_ordinary,object,version);" (comma_expression "override<64,_true>(this,to,sym,st_shndx,is_ordinary,object,version)" (binary_expression "override<64" identifier < number_literal) , (binary_expression "_true>(this,to,sym,st_shndx,is_ordinary,object,version)" identifier > (parenthesized_expression "(this,to,sym,st_shndx,is_ordinary,object,version)" ( (comma_expression "this,to,sym,st_shndx,is_ordinary,object,version" identifier , (comma_expression "to,sym,st_shndx,is_ordinary,object,version" identifier , (comma_expression "sym,st_shndx,is_ordinary,object,version" identifier , (comma_expression "st_shndx,is_ordinary,object,version" identifier , (comma_expression "is_ordinary,object,version" identifier , (comma_expression "object,version" identifier , identifier)))))) )))) ;) (expression_statement "puVar13 = (undefined *)((uint)_adjust_common_sizes >> 0x18);" (assignment_expression "puVar13 = (undefined *)((uint)_adjust_common_sizes >> 0x18)" identifier = (cast_expression "(undefined *)((uint)_adjust_common_sizes >> 0x18)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)_adjust_common_sizes >> 0x18)" ( (binary_expression "(uint)_adjust_common_sizes >> 0x18" (cast_expression "(uint)_adjust_common_sizes" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (puVar13 != (undefined *)0x0) {\n          if ((*(uint *)&to->symsize_ < uVar18) ||\n             ((*(uint *)&to->symsize_ == uVar18 &&\n              (*(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                 **)((int)&to->symsize_ + 4) < p_Stack_3c)))) {\n            *(uint *)&to->symsize_ = uVar18;\n            *(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              **)((int)&to->symsize_ + 4) = p_Stack_3c;\n          }\n          if ((*(uint *)&to->value_ < uVar2) ||\n             ((*(uint *)&to->value_ == uVar2 && ((uint)to->value_ < uVar19)))) {\n            *(uint *)&to->value_ = uVar2;\n            *(uint *)((int)&to->value_ + 4) = uVar19;\n          }\n        }" if (parenthesized_expression "(puVar13 != (undefined *)0x0)" ( (binary_expression "puVar13 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if ((*(uint *)&to->symsize_ < uVar18) ||\n             ((*(uint *)&to->symsize_ == uVar18 &&\n              (*(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                 **)((int)&to->symsize_ + 4) < p_Stack_3c)))) {\n            *(uint *)&to->symsize_ = uVar18;\n            *(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              **)((int)&to->symsize_ + 4) = p_Stack_3c;\n          }\n          if ((*(uint *)&to->value_ < uVar2) ||\n             ((*(uint *)&to->value_ == uVar2 && ((uint)to->value_ < uVar19)))) {\n            *(uint *)&to->value_ = uVar2;\n            *(uint *)((int)&to->value_ + 4) = uVar19;\n          }\n        }" { (if_statement "if ((*(uint *)&to->symsize_ < uVar18) ||\n             ((*(uint *)&to->symsize_ == uVar18 &&\n              (*(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                 **)((int)&to->symsize_ + 4) < p_Stack_3c)))) {\n            *(uint *)&to->symsize_ = uVar18;\n            *(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              **)((int)&to->symsize_ + 4) = p_Stack_3c;\n          }" if (parenthesized_expression "((*(uint *)&to->symsize_ < uVar18) ||\n             ((*(uint *)&to->symsize_ == uVar18 &&\n              (*(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                 **)((int)&to->symsize_ + 4) < p_Stack_3c))))" ( (binary_expression "(*(uint *)&to->symsize_ < uVar18) ||\n             ((*(uint *)&to->symsize_ == uVar18 &&\n              (*(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                 **)((int)&to->symsize_ + 4) < p_Stack_3c)))" (parenthesized_expression "(*(uint *)&to->symsize_ < uVar18)" ( (binary_expression "*(uint *)&to->symsize_ < uVar18" (pointer_expression "*(uint *)&to->symsize_" * (cast_expression "(uint *)&to->symsize_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&to->symsize_" & (field_expression "to->symsize_" identifier -> field_identifier)))) < identifier) )) || (parenthesized_expression "((*(uint *)&to->symsize_ == uVar18 &&\n              (*(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                 **)((int)&to->symsize_ + 4) < p_Stack_3c)))" ( (parenthesized_expression "(*(uint *)&to->symsize_ == uVar18 &&\n              (*(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                 **)((int)&to->symsize_ + 4) < p_Stack_3c))" ( (binary_expression "*(uint *)&to->symsize_ == uVar18 &&\n              (*(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                 **)((int)&to->symsize_ + 4) < p_Stack_3c)" (binary_expression "*(uint *)&to->symsize_ == uVar18" (pointer_expression "*(uint *)&to->symsize_" * (cast_expression "(uint *)&to->symsize_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&to->symsize_" & (field_expression "to->symsize_" identifier -> field_identifier)))) == identifier) && (parenthesized_expression "(*(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                 **)((int)&to->symsize_ + 4) < p_Stack_3c)" ( (binary_expression "*(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                 **)((int)&to->symsize_ + 4) < p_Stack_3c" (pointer_expression "*(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                 **)((int)&to->symsize_ + 4)" * (call_expression "(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                 **)((int)&to->symsize_ + 4)" (parenthesized_expression "(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                 **)" ( (ERROR "_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (binary_expression "_Hashtable<gold" identifier < identifier) : : (comma_expression "Symbol_location,_gold" identifier , identifier) : : (comma_expression "Symbol_location,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Symbol_location>,_std" identifier > (ERROR "," ,) identifier) : : identifier : : (comma_expression "_Identity,_std" identifier , identifier) : : (binary_expression "equal_to<gold" identifier < identifier) : : (binary_expression "Symbol_location>,_gold" identifier > (ERROR "," ,) identifier) : : (comma_expression "Symbol_location_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) : : identifier : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : identifier : :) (comma_expression "_Hashtable_traits<true,_true,_true>_>\n                 **" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n                 **" identifier , (binary_expression "_true>_>\n                 **" (binary_expression "_true>_" identifier > identifier) > (pointer_expression "**" * (pointer_expression "*" * identifier))))) )) (argument_list "((int)&to->symsize_ + 4)" ( (binary_expression "(int)&to->symsize_ + 4" (cast_expression "(int)&to->symsize_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&to->symsize_" & (field_expression "to->symsize_" identifier -> field_identifier))) + number_literal) )))) < identifier) ))) )) ))) )) (compound_statement "{\n            *(uint *)&to->symsize_ = uVar18;\n            *(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              **)((int)&to->symsize_ + 4) = p_Stack_3c;\n          }" { (expression_statement "*(uint *)&to->symsize_ = uVar18;" (assignment_expression "*(uint *)&to->symsize_ = uVar18" (pointer_expression "*(uint *)&to->symsize_" * (cast_expression "(uint *)&to->symsize_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&to->symsize_" & (field_expression "to->symsize_" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              **)((int)&to->symsize_ + 4) = p_Stack_3c;" (assignment_expression "*(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              **)((int)&to->symsize_ + 4) = p_Stack_3c" (pointer_expression "*(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              **)((int)&to->symsize_ + 4)" * (call_expression "(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              **)((int)&to->symsize_ + 4)" (parenthesized_expression "(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              **)" ( (ERROR "_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (binary_expression "_Hashtable<gold" identifier < identifier) : : (comma_expression "Symbol_location,_gold" identifier , identifier) : : (comma_expression "Symbol_location,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Symbol_location>,_std" identifier > (ERROR "," ,) identifier) : : identifier : : (comma_expression "_Identity,_std" identifier , identifier) : : (binary_expression "equal_to<gold" identifier < identifier) : : (binary_expression "Symbol_location>,_gold" identifier > (ERROR "," ,) identifier) : : (comma_expression "Symbol_location_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) : : identifier : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : identifier : :) (comma_expression "_Hashtable_traits<true,_true,_true>_>\n              **" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n              **" identifier , (binary_expression "_true>_>\n              **" (binary_expression "_true>_" identifier > identifier) > (pointer_expression "**" * (pointer_expression "*" * identifier))))) )) (argument_list "((int)&to->symsize_ + 4)" ( (binary_expression "(int)&to->symsize_ + 4" (cast_expression "(int)&to->symsize_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&to->symsize_" & (field_expression "to->symsize_" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) })) (if_statement "if ((*(uint *)&to->value_ < uVar2) ||\n             ((*(uint *)&to->value_ == uVar2 && ((uint)to->value_ < uVar19)))) {\n            *(uint *)&to->value_ = uVar2;\n            *(uint *)((int)&to->value_ + 4) = uVar19;\n          }" if (parenthesized_expression "((*(uint *)&to->value_ < uVar2) ||\n             ((*(uint *)&to->value_ == uVar2 && ((uint)to->value_ < uVar19))))" ( (binary_expression "(*(uint *)&to->value_ < uVar2) ||\n             ((*(uint *)&to->value_ == uVar2 && ((uint)to->value_ < uVar19)))" (parenthesized_expression "(*(uint *)&to->value_ < uVar2)" ( (binary_expression "*(uint *)&to->value_ < uVar2" (pointer_expression "*(uint *)&to->value_" * (cast_expression "(uint *)&to->value_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&to->value_" & (field_expression "to->value_" identifier -> field_identifier)))) < identifier) )) || (parenthesized_expression "((*(uint *)&to->value_ == uVar2 && ((uint)to->value_ < uVar19)))" ( (parenthesized_expression "(*(uint *)&to->value_ == uVar2 && ((uint)to->value_ < uVar19))" ( (binary_expression "*(uint *)&to->value_ == uVar2 && ((uint)to->value_ < uVar19)" (binary_expression "*(uint *)&to->value_ == uVar2" (pointer_expression "*(uint *)&to->value_" * (cast_expression "(uint *)&to->value_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&to->value_" & (field_expression "to->value_" identifier -> field_identifier)))) == identifier) && (parenthesized_expression "((uint)to->value_ < uVar19)" ( (binary_expression "(uint)to->value_ < uVar19" (cast_expression "(uint)to->value_" ( (type_descriptor "uint" type_identifier) ) (field_expression "to->value_" identifier -> field_identifier)) < identifier) ))) )) ))) )) (compound_statement "{\n            *(uint *)&to->value_ = uVar2;\n            *(uint *)((int)&to->value_ + 4) = uVar19;\n          }" { (expression_statement "*(uint *)&to->value_ = uVar2;" (assignment_expression "*(uint *)&to->value_ = uVar2" (pointer_expression "*(uint *)&to->value_" * (cast_expression "(uint *)&to->value_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&to->value_" & (field_expression "to->value_" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(uint *)((int)&to->value_ + 4) = uVar19;" (assignment_expression "*(uint *)((int)&to->value_ + 4) = uVar19" (pointer_expression "*(uint *)((int)&to->value_ + 4)" * (cast_expression "(uint *)((int)&to->value_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&to->value_ + 4)" ( (binary_expression "(int)&to->value_ + 4" (cast_expression "(int)&to->value_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&to->value_" & (field_expression "to->value_" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) })) })) (expression_statement "uVar2 = *(uint *)&(to->super_Symbol).field_0x28;" (assignment_expression "uVar2 = *(uint *)&(to->super_Symbol).field_0x28" identifier = (pointer_expression "*(uint *)&(to->super_Symbol).field_0x28" * (cast_expression "(uint *)&(to->super_Symbol).field_0x28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(to->super_Symbol).field_0x28" & (field_expression "(to->super_Symbol).field_0x28" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier))))) ;) (if_statement "if (adjust_dyndef != false) {\n          iVar15 = *(int *)&(to->super_Symbol).field_0x2c;\n          if (iVar15 < 0) {\n            if (-1 < iVar15 << 1) goto LAB_002962d0;\n            bVar10 = (to->super_Symbol).field_0x2c;\n          }\n          else {\n            bVar10 = (to->super_Symbol).field_0x2c;\n          }\n          (to->super_Symbol).field_0x2c =\n               bVar10 & 0x3f | ((uint)(iVar3 << 4) >> 0x1c == 2) << 6 | 0x80;\n        }" if (parenthesized_expression "(adjust_dyndef != false)" ( (binary_expression "adjust_dyndef != false" identifier != false) )) (compound_statement "{\n          iVar15 = *(int *)&(to->super_Symbol).field_0x2c;\n          if (iVar15 < 0) {\n            if (-1 < iVar15 << 1) goto LAB_002962d0;\n            bVar10 = (to->super_Symbol).field_0x2c;\n          }\n          else {\n            bVar10 = (to->super_Symbol).field_0x2c;\n          }\n          (to->super_Symbol).field_0x2c =\n               bVar10 & 0x3f | ((uint)(iVar3 << 4) >> 0x1c == 2) << 6 | 0x80;\n        }" { (expression_statement "iVar15 = *(int *)&(to->super_Symbol).field_0x2c;" (assignment_expression "iVar15 = *(int *)&(to->super_Symbol).field_0x2c" identifier = (pointer_expression "*(int *)&(to->super_Symbol).field_0x2c" * (cast_expression "(int *)&(to->super_Symbol).field_0x2c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(to->super_Symbol).field_0x2c" & (field_expression "(to->super_Symbol).field_0x2c" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier))))) ;) (if_statement "if (iVar15 < 0) {\n            if (-1 < iVar15 << 1) goto LAB_002962d0;\n            bVar10 = (to->super_Symbol).field_0x2c;\n          }\n          else {\n            bVar10 = (to->super_Symbol).field_0x2c;\n          }" if (parenthesized_expression "(iVar15 < 0)" ( (binary_expression "iVar15 < 0" identifier < number_literal) )) (compound_statement "{\n            if (-1 < iVar15 << 1) goto LAB_002962d0;\n            bVar10 = (to->super_Symbol).field_0x2c;\n          }" { (if_statement "if (-1 < iVar15 << 1) goto LAB_002962d0;" if (parenthesized_expression "(-1 < iVar15 << 1)" ( (binary_expression "-1 < iVar15 << 1" number_literal < (binary_expression "iVar15 << 1" identifier << number_literal)) )) (goto_statement "goto LAB_002962d0;" goto statement_identifier ;)) (expression_statement "bVar10 = (to->super_Symbol).field_0x2c;" (assignment_expression "bVar10 = (to->super_Symbol).field_0x2c" identifier = (field_expression "(to->super_Symbol).field_0x2c" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier)) ;) }) (else_clause "else {\n            bVar10 = (to->super_Symbol).field_0x2c;\n          }" else (compound_statement "{\n            bVar10 = (to->super_Symbol).field_0x2c;\n          }" { (expression_statement "bVar10 = (to->super_Symbol).field_0x2c;" (assignment_expression "bVar10 = (to->super_Symbol).field_0x2c" identifier = (field_expression "(to->super_Symbol).field_0x2c" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier)) ;) }))) (expression_statement "(to->super_Symbol).field_0x2c =\n               bVar10 & 0x3f | ((uint)(iVar3 << 4) >> 0x1c == 2) << 6 | 0x80;" (assignment_expression "(to->super_Symbol).field_0x2c =\n               bVar10 & 0x3f | ((uint)(iVar3 << 4) >> 0x1c == 2) << 6 | 0x80" (field_expression "(to->super_Symbol).field_0x2c" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier) = (binary_expression "bVar10 & 0x3f | ((uint)(iVar3 << 4) >> 0x1c == 2) << 6 | 0x80" (binary_expression "bVar10 & 0x3f | ((uint)(iVar3 << 4) >> 0x1c == 2) << 6" (binary_expression "bVar10 & 0x3f" identifier & number_literal) | (binary_expression "((uint)(iVar3 << 4) >> 0x1c == 2) << 6" (parenthesized_expression "((uint)(iVar3 << 4) >> 0x1c == 2)" ( (binary_expression "(uint)(iVar3 << 4) >> 0x1c == 2" (binary_expression "(uint)(iVar3 << 4) >> 0x1c" (call_expression "(uint)(iVar3 << 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar3 << 4)" ( (binary_expression "iVar3 << 4" identifier << number_literal) ))) >> number_literal) == number_literal) )) << number_literal)) | number_literal)) ;) })) }))) (labeled_statement "LAB_002962d0:\n      if (((uVar2 & 0xe000) == 0) &&\n         (pOVar7 = (to->super_Symbol).u1_.output_segment,\n         (int)pOVar7->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_002963dc;" statement_identifier : (if_statement "if (((uVar2 & 0xe000) == 0) &&\n         (pOVar7 = (to->super_Symbol).u1_.output_segment,\n         (int)pOVar7->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_002963dc;" if (parenthesized_expression "(((uVar2 & 0xe000) == 0) &&\n         (pOVar7 = (to->super_Symbol).u1_.output_segment,\n         (int)pOVar7->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 "((uVar2 & 0xe000) == 0) &&\n         (pOVar7 = (to->super_Symbol).u1_.output_segment,\n         (int)pOVar7->output_lists_[3].\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_end_of_storage < 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 "(pOVar7 = (to->super_Symbol).u1_.output_segment,\n         (int)pOVar7->output_lists_[3].\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_end_of_storage < 0)" ( (ERROR "pOVar7 = (to->super_Symbol).u1_.output_segment,\n         (int)pOVar7->output_lists_[3].\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::" (comma_expression "pOVar7 = (to->super_Symbol).u1_.output_segment,\n         (int)pOVar7->output_lists_[3].\n              super__Vector_base<gold" (assignment_expression "pOVar7 = (to->super_Symbol).u1_.output_segment" identifier = (field_expression "(to->super_Symbol).u1_.output_segment" (field_expression "(to->super_Symbol).u1_" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier)) , (binary_expression "(int)pOVar7->output_lists_[3].\n              super__Vector_base<gold" (cast_expression "(int)pOVar7->output_lists_[3].\n              super__Vector_base" ( (type_descriptor "int" primitive_type) ) (field_expression "pOVar7->output_lists_[3].\n              super__Vector_base" (subscript_expression "pOVar7->output_lists_[3]" (field_expression "pOVar7->output_lists_" identifier -> field_identifier) [ number_literal ]) . field_identifier)) < identifier)) : : identifier * , identifier : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Output_data*>_>._M_impl.\n              _M_end_of_storage < 0" (field_expression "Output_data*>_>._M_impl.\n              _M_end_of_storage" (field_expression "Output_data*>_>._M_impl" (binary_expression "Output_data*>_" identifier * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) < number_literal) ))) )) (goto_statement "goto LAB_002963dc;" goto statement_identifier ;))) (while_statement "while( true ) {\n        if (puVar13 == (undefined *)0x0) {\n          return;\n        }\n        if (*(int *)(*(int *)puVar1 + 8) != 0) break;\nLAB_002963c4:\n        puVar13 = PTR_s_alize_xindex_004323b4 + -0x5cec;\n        pOVar7 = (Output_segment *)\n                 (*(code *)PTR_do_gold_unreachable_004323c4)(puVar13,0x5c,PTR_s__0043226c + 0x3c1c);\nLAB_002963dc:\n        if ((*(int *)&(to->super_Symbol).field_0x28 << 0x17 < 0) &&\n           (-1 < *(int *)&(to->super_Symbol).field_0x2c << 1)) {\n          *(byte *)&pOVar7->output_lists_[3].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_end_of_storage =\n               *(byte *)&pOVar7->output_lists_[3].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_end_of_storage & 0xbf | 0x40;\n        }\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        if (puVar13 == (undefined *)0x0) {\n          return;\n        }\n        if (*(int *)(*(int *)puVar1 + 8) != 0) break;\nLAB_002963c4:\n        puVar13 = PTR_s_alize_xindex_004323b4 + -0x5cec;\n        pOVar7 = (Output_segment *)\n                 (*(code *)PTR_do_gold_unreachable_004323c4)(puVar13,0x5c,PTR_s__0043226c + 0x3c1c);\nLAB_002963dc:\n        if ((*(int *)&(to->super_Symbol).field_0x28 << 0x17 < 0) &&\n           (-1 < *(int *)&(to->super_Symbol).field_0x2c << 1)) {\n          *(byte *)&pOVar7->output_lists_[3].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_end_of_storage =\n               *(byte *)&pOVar7->output_lists_[3].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_end_of_storage & 0xbf | 0x40;\n        }\n      }" { (if_statement "if (puVar13 == (undefined *)0x0) {\n          return;\n        }" if (parenthesized_expression "(puVar13 == (undefined *)0x0)" ( (binary_expression "puVar13 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (if_statement "if (*(int *)(*(int *)puVar1 + 8) != 0) break;" if (parenthesized_expression "(*(int *)(*(int *)puVar1 + 8) != 0)" ( (binary_expression "*(int *)(*(int *)puVar1 + 8) != 0" (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) )))) != number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_002963c4:\n        puVar13 = PTR_s_alize_xindex_004323b4 + -0x5cec;" statement_identifier : (expression_statement "puVar13 = PTR_s_alize_xindex_004323b4 + -0x5cec;" (assignment_expression "puVar13 = PTR_s_alize_xindex_004323b4 + -0x5cec" identifier = (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5cec" identifier + number_literal)) ;)) (expression_statement "pOVar7 = (Output_segment *)\n                 (*(code *)PTR_do_gold_unreachable_004323c4)(puVar13,0x5c,PTR_s__0043226c + 0x3c1c);" (assignment_expression "pOVar7 = (Output_segment *)\n                 (*(code *)PTR_do_gold_unreachable_004323c4)(puVar13,0x5c,PTR_s__0043226c + 0x3c1c)" identifier = (cast_expression "(Output_segment *)\n                 (*(code *)PTR_do_gold_unreachable_004323c4)(puVar13,0x5c,PTR_s__0043226c + 0x3c1c)" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)(puVar13,0x5c,PTR_s__0043226c + 0x3c1c)" (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 "(puVar13,0x5c,PTR_s__0043226c + 0x3c1c)" ( identifier , number_literal , (binary_expression "PTR_s__0043226c + 0x3c1c" identifier + number_literal) ))))) ;) (labeled_statement "LAB_002963dc:\n        if ((*(int *)&(to->super_Symbol).field_0x28 << 0x17 < 0) &&\n           (-1 < *(int *)&(to->super_Symbol).field_0x2c << 1)) {\n          *(byte *)&pOVar7->output_lists_[3].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_end_of_storage =\n               *(byte *)&pOVar7->output_lists_[3].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_end_of_storage & 0xbf | 0x40;\n        }" statement_identifier : (if_statement "if ((*(int *)&(to->super_Symbol).field_0x28 << 0x17 < 0) &&\n           (-1 < *(int *)&(to->super_Symbol).field_0x2c << 1)) {\n          *(byte *)&pOVar7->output_lists_[3].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_end_of_storage =\n               *(byte *)&pOVar7->output_lists_[3].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_end_of_storage & 0xbf | 0x40;\n        }" if (parenthesized_expression "((*(int *)&(to->super_Symbol).field_0x28 << 0x17 < 0) &&\n           (-1 < *(int *)&(to->super_Symbol).field_0x2c << 1))" ( (binary_expression "(*(int *)&(to->super_Symbol).field_0x28 << 0x17 < 0) &&\n           (-1 < *(int *)&(to->super_Symbol).field_0x2c << 1)" (parenthesized_expression "(*(int *)&(to->super_Symbol).field_0x28 << 0x17 < 0)" ( (binary_expression "*(int *)&(to->super_Symbol).field_0x28 << 0x17 < 0" (binary_expression "*(int *)&(to->super_Symbol).field_0x28 << 0x17" (pointer_expression "*(int *)&(to->super_Symbol).field_0x28" * (cast_expression "(int *)&(to->super_Symbol).field_0x28" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(to->super_Symbol).field_0x28" & (field_expression "(to->super_Symbol).field_0x28" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier)))) << number_literal) < number_literal) )) && (parenthesized_expression "(-1 < *(int *)&(to->super_Symbol).field_0x2c << 1)" ( (binary_expression "-1 < *(int *)&(to->super_Symbol).field_0x2c << 1" number_literal < (binary_expression "*(int *)&(to->super_Symbol).field_0x2c << 1" (pointer_expression "*(int *)&(to->super_Symbol).field_0x2c" * (cast_expression "(int *)&(to->super_Symbol).field_0x2c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(to->super_Symbol).field_0x2c" & (field_expression "(to->super_Symbol).field_0x2c" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier)))) << number_literal)) ))) )) (compound_statement "{\n          *(byte *)&pOVar7->output_lists_[3].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_end_of_storage =\n               *(byte *)&pOVar7->output_lists_[3].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_end_of_storage & 0xbf | 0x40;\n        }" { (expression_statement "*(byte *)&pOVar7->output_lists_[3].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_end_of_storage =\n               *(byte *)&pOVar7->output_lists_[3].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_end_of_storage & 0xbf | 0x40;" (binary_expression "*(byte *)&pOVar7->output_lists_[3].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_end_of_storage =\n               *(byte *)&pOVar7->output_lists_[3].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_end_of_storage & 0xbf | 0x40" (binary_expression "*(byte *)&pOVar7->output_lists_[3].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_end_of_storage =\n               *(byte *)&pOVar7->output_lists_[3].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_end_of_storage & 0xbf" (field_expression "*(byte *)&pOVar7->output_lists_[3].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_end_of_storage =\n               *(byte *)&pOVar7->output_lists_[3].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_end_of_storage" (field_expression "*(byte *)&pOVar7->output_lists_[3].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_end_of_storage =\n               *(byte *)&pOVar7->output_lists_[3].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl" (binary_expression "*(byte *)&pOVar7->output_lists_[3].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_end_of_storage =\n               *(byte *)&pOVar7->output_lists_[3].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "*(byte *)&pOVar7->output_lists_[3].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_end_of_storage =\n               *(byte *)&pOVar7->output_lists_[3].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "*(byte *)&pOVar7->output_lists_[3].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_end_of_storage =\n               *(byte *)&pOVar7->output_lists_[3].\n                         super__Vector_base<gold::Output_data*,_std" (assignment_expression "*(byte *)&pOVar7->output_lists_[3].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_end_of_storage =\n               *(byte *)&pOVar7->output_lists_[3].\n                         super__Vector_base<gold" (field_expression "*(byte *)&pOVar7->output_lists_[3].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_end_of_storage" (field_expression "*(byte *)&pOVar7->output_lists_[3].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl" (binary_expression "*(byte *)&pOVar7->output_lists_[3].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "*(byte *)&pOVar7->output_lists_[3].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "*(byte *)&pOVar7->output_lists_[3].\n                    super__Vector_base<gold::Output_data*,_std" (binary_expression "*(byte *)&pOVar7->output_lists_[3].\n                    super__Vector_base<gold" (pointer_expression "*(byte *)&pOVar7->output_lists_[3].\n                    super__Vector_base" * (cast_expression "(byte *)&pOVar7->output_lists_[3].\n                    super__Vector_base" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar7->output_lists_[3].\n                    super__Vector_base" & (field_expression "pOVar7->output_lists_[3].\n                    super__Vector_base" (subscript_expression "pOVar7->output_lists_[3]" (field_expression "pOVar7->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) = (binary_expression "*(byte *)&pOVar7->output_lists_[3].\n                         super__Vector_base<gold" (pointer_expression "*(byte *)&pOVar7->output_lists_[3].\n                         super__Vector_base" * (cast_expression "(byte *)&pOVar7->output_lists_[3].\n                         super__Vector_base" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar7->output_lists_[3].\n                         super__Vector_base" & (field_expression "pOVar7->output_lists_[3].\n                         super__Vector_base" (subscript_expression "pOVar7->output_lists_[3]" (field_expression "pOVar7->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) | number_literal) ;) }))) })) (if_statement "if (*(char *)(*(int *)(*(int *)puVar1 + 8) + 0x43f5) == '\0') {\n        return;\n      }" if (parenthesized_expression "(*(char *)(*(int *)(*(int *)puVar1 + 8) + 0x43f5) == '\0')" ( (binary_expression "*(char *)(*(int *)(*(int *)puVar1 + 8) + 0x43f5) == '\0'" (pointer_expression "*(char *)(*(int *)(*(int *)puVar1 + 8) + 0x43f5)" * (cast_expression "(char *)(*(int *)(*(int *)puVar1 + 8) + 0x43f5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)puVar1 + 8) + 0x43f5)" ( (binary_expression "*(int *)(*(int *)puVar1 + 8) + 0x43f5" (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) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "uVar2 = *(uint *)&sym->p_->st_size;" (assignment_expression "uVar2 = *(uint *)&sym->p_->st_size" identifier = (pointer_expression "*(uint *)&sym->p_->st_size" * (cast_expression "(uint *)&sym->p_->st_size" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&sym->p_->st_size" & (field_expression "sym->p_->st_size" (field_expression "sym->p_" identifier -> field_identifier) -> field_identifier))))) ;) (expression_statement "p_Var16 = *(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                  **)((int)&sym->p_->st_size + 4);" (assignment_expression "p_Var16 = *(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                  **)((int)&sym->p_->st_size + 4)" identifier = (pointer_expression "*(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                  **)((int)&sym->p_->st_size + 4)" * (call_expression "(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                  **)((int)&sym->p_->st_size + 4)" (parenthesized_expression "(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                  **)" ( (ERROR "_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (binary_expression "_Hashtable<gold" identifier < identifier) : : (comma_expression "Symbol_location,_gold" identifier , identifier) : : (comma_expression "Symbol_location,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Symbol_location>,_std" identifier > (ERROR "," ,) identifier) : : identifier : : (comma_expression "_Identity,_std" identifier , identifier) : : (binary_expression "equal_to<gold" identifier < identifier) : : (binary_expression "Symbol_location>,_gold" identifier > (ERROR "," ,) identifier) : : (comma_expression "Symbol_location_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) : : identifier : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : identifier : :) (comma_expression "_Hashtable_traits<true,_true,_true>_>\n                  **" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n                  **" identifier , (binary_expression "_true>_>\n                  **" (binary_expression "_true>_" identifier > identifier) > (pointer_expression "**" * (pointer_expression "*" * identifier))))) )) (argument_list "((int)&sym->p_->st_size + 4)" ( (binary_expression "(int)&sym->p_->st_size + 4" (cast_expression "(int)&sym->p_->st_size" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&sym->p_->st_size" & (field_expression "sym->p_->st_size" (field_expression "sym->p_" identifier -> field_identifier) -> field_identifier))) + number_literal) ))))) ;) (if_statement "if ((uVar2 < uVar18) || ((uVar18 == uVar2 && (p_Var16 < p_Stack_3c)))) {\n        puVar13 = PTR_s__0043226c + 0x3c88;\n      }\n      else if ((uVar18 < uVar2) || ((uVar2 == uVar18 && (p_Stack_3c < p_Var16)))) {\n        puVar13 = PTR_s__0043226c + 0x3cb4;\n      }\n      else {\n        puVar13 = PTR_s__0043226c + 0x3ce0;\n      }" if (parenthesized_expression "((uVar2 < uVar18) || ((uVar18 == uVar2 && (p_Var16 < p_Stack_3c))))" ( (binary_expression "(uVar2 < uVar18) || ((uVar18 == uVar2 && (p_Var16 < p_Stack_3c)))" (parenthesized_expression "(uVar2 < uVar18)" ( (binary_expression "uVar2 < uVar18" identifier < identifier) )) || (parenthesized_expression "((uVar18 == uVar2 && (p_Var16 < p_Stack_3c)))" ( (parenthesized_expression "(uVar18 == uVar2 && (p_Var16 < p_Stack_3c))" ( (binary_expression "uVar18 == uVar2 && (p_Var16 < p_Stack_3c)" (binary_expression "uVar18 == uVar2" identifier == identifier) && (parenthesized_expression "(p_Var16 < p_Stack_3c)" ( (binary_expression "p_Var16 < p_Stack_3c" identifier < identifier) ))) )) ))) )) (compound_statement "{\n        puVar13 = PTR_s__0043226c + 0x3c88;\n      }" { (expression_statement "puVar13 = PTR_s__0043226c + 0x3c88;" (assignment_expression "puVar13 = PTR_s__0043226c + 0x3c88" identifier = (binary_expression "PTR_s__0043226c + 0x3c88" identifier + number_literal)) ;) }) (else_clause "else if ((uVar18 < uVar2) || ((uVar2 == uVar18 && (p_Stack_3c < p_Var16)))) {\n        puVar13 = PTR_s__0043226c + 0x3cb4;\n      }\n      else {\n        puVar13 = PTR_s__0043226c + 0x3ce0;\n      }" else (if_statement "if ((uVar18 < uVar2) || ((uVar2 == uVar18 && (p_Stack_3c < p_Var16)))) {\n        puVar13 = PTR_s__0043226c + 0x3cb4;\n      }\n      else {\n        puVar13 = PTR_s__0043226c + 0x3ce0;\n      }" if (parenthesized_expression "((uVar18 < uVar2) || ((uVar2 == uVar18 && (p_Stack_3c < p_Var16))))" ( (binary_expression "(uVar18 < uVar2) || ((uVar2 == uVar18 && (p_Stack_3c < p_Var16)))" (parenthesized_expression "(uVar18 < uVar2)" ( (binary_expression "uVar18 < uVar2" identifier < identifier) )) || (parenthesized_expression "((uVar2 == uVar18 && (p_Stack_3c < p_Var16)))" ( (parenthesized_expression "(uVar2 == uVar18 && (p_Stack_3c < p_Var16))" ( (binary_expression "uVar2 == uVar18 && (p_Stack_3c < p_Var16)" (binary_expression "uVar2 == uVar18" identifier == identifier) && (parenthesized_expression "(p_Stack_3c < p_Var16)" ( (binary_expression "p_Stack_3c < p_Var16" identifier < identifier) ))) )) ))) )) (compound_statement "{\n        puVar13 = PTR_s__0043226c + 0x3cb4;\n      }" { (expression_statement "puVar13 = PTR_s__0043226c + 0x3cb4;" (assignment_expression "puVar13 = PTR_s__0043226c + 0x3cb4" identifier = (binary_expression "PTR_s__0043226c + 0x3cb4" identifier + number_literal)) ;) }) (else_clause "else {\n        puVar13 = PTR_s__0043226c + 0x3ce0;\n      }" else (compound_statement "{\n        puVar13 = PTR_s__0043226c + 0x3ce0;\n      }" { (expression_statement "puVar13 = PTR_s__0043226c + 0x3ce0;" (assignment_expression "puVar13 = PTR_s__0043226c + 0x3ce0" identifier = (binary_expression "PTR_s__0043226c + 0x3ce0" identifier + number_literal)) ;) }))))) (expression_statement "pcVar5 = (char *)(*(code *)PTR_gettext_00436818)(puVar13);" (assignment_expression "pcVar5 = (char *)(*(code *)PTR_gettext_00436818)(puVar13)" identifier = (cast_expression "(char *)(*(code *)PTR_gettext_00436818)(puVar13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_gettext_00436818)(puVar13)" (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 "(puVar13)" ( identifier ))))) ;) (expression_statement "report_resolve_problem(false,pcVar5,&to->super_Symbol,OBJECT,object);" (call_expression "report_resolve_problem(false,pcVar5,&to->super_Symbol,OBJECT,object)" identifier (argument_list "(false,pcVar5,&to->super_Symbol,OBJECT,object)" ( false , identifier , (pointer_expression "&to->super_Symbol" & (field_expression "to->super_Symbol" identifier -> field_identifier)) , identifier , identifier ))) ;) (return_statement "return;" return ;) })) (if_statement "if ((uVar2 & 0xe000) == 0) {\n      pOVar4 = (to->super_Symbol).u1_.object;\n      iVar3 = (*pOVar4->_vptr_Object[5])(pOVar4);\n      if (iVar3 == 0) goto LAB_002963b4;\n      iVar3 = *(int *)(*(int *)puVar1 + 8);\n      if (iVar3 == 0) goto LAB_002963c4;\n      if (*(char *)(*(int *)(iVar3 + 0x594c) + 0x69) != '\0') {\n        uVar2 = *(uint *)&(to->super_Symbol).field_0x28;\n        if (((((uVar2 & 0xe000) != 0) || ((int)(uVar2 << 0x1d) < 0)) ||\n            (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)((to->super_Symbol).u2_.shndx),\n            iVar3 == 0)) ||\n           ((is_ordinary || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(st_shndx), iVar3 == 0))\n           )) {\n          override<64,_true>(this,to,sym,st_shndx,is_ordinary,object,version);\n          return;\n        }\n        uVar18 = *(uint *)&to->symsize_;\n        uVar17 = (uint)to->symsize_;\n        uVar2 = *(uint *)&to->value_;\n        uVar19 = (uint)to->value_;\n        override<64,_true>(this,to,sym,st_shndx,false,object,version);\n        if ((*(uint *)&to->symsize_ < uVar18) ||\n           ((*(uint *)&to->symsize_ == uVar18 && ((uint)to->symsize_ < uVar17)))) {\n          *(uint *)&to->symsize_ = uVar18;\n          *(uint *)((int)&to->symsize_ + 4) = uVar17;\n        }\n        if (uVar2 <= *(uint *)&to->value_) {\n          if (*(uint *)&to->value_ != uVar2) {\n            return;\n          }\n          if (uVar19 <= (uint)to->value_) {\n            return;\n          }\n        }\n        *(uint *)&to->value_ = uVar2;\n        *(uint *)((int)&to->value_ + 4) = uVar19;\n        return;\n      }\n      goto LAB_00295ee8;\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      pOVar4 = (to->super_Symbol).u1_.object;\n      iVar3 = (*pOVar4->_vptr_Object[5])(pOVar4);\n      if (iVar3 == 0) goto LAB_002963b4;\n      iVar3 = *(int *)(*(int *)puVar1 + 8);\n      if (iVar3 == 0) goto LAB_002963c4;\n      if (*(char *)(*(int *)(iVar3 + 0x594c) + 0x69) != '\0') {\n        uVar2 = *(uint *)&(to->super_Symbol).field_0x28;\n        if (((((uVar2 & 0xe000) != 0) || ((int)(uVar2 << 0x1d) < 0)) ||\n            (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)((to->super_Symbol).u2_.shndx),\n            iVar3 == 0)) ||\n           ((is_ordinary || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(st_shndx), iVar3 == 0))\n           )) {\n          override<64,_true>(this,to,sym,st_shndx,is_ordinary,object,version);\n          return;\n        }\n        uVar18 = *(uint *)&to->symsize_;\n        uVar17 = (uint)to->symsize_;\n        uVar2 = *(uint *)&to->value_;\n        uVar19 = (uint)to->value_;\n        override<64,_true>(this,to,sym,st_shndx,false,object,version);\n        if ((*(uint *)&to->symsize_ < uVar18) ||\n           ((*(uint *)&to->symsize_ == uVar18 && ((uint)to->symsize_ < uVar17)))) {\n          *(uint *)&to->symsize_ = uVar18;\n          *(uint *)((int)&to->symsize_ + 4) = uVar17;\n        }\n        if (uVar2 <= *(uint *)&to->value_) {\n          if (*(uint *)&to->value_ != uVar2) {\n            return;\n          }\n          if (uVar19 <= (uint)to->value_) {\n            return;\n          }\n        }\n        *(uint *)&to->value_ = uVar2;\n        *(uint *)((int)&to->value_ + 4) = uVar19;\n        return;\n      }\n      goto LAB_00295ee8;\n    }" { (expression_statement "pOVar4 = (to->super_Symbol).u1_.object;" (assignment_expression "pOVar4 = (to->super_Symbol).u1_.object" identifier = (field_expression "(to->super_Symbol).u1_.object" (field_expression "(to->super_Symbol).u1_" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "iVar3 = (*pOVar4->_vptr_Object[5])(pOVar4);" (assignment_expression "iVar3 = (*pOVar4->_vptr_Object[5])(pOVar4)" identifier = (call_expression "(*pOVar4->_vptr_Object[5])(pOVar4)" (parenthesized_expression "(*pOVar4->_vptr_Object[5])" ( (pointer_expression "*pOVar4->_vptr_Object[5]" * (subscript_expression "pOVar4->_vptr_Object[5]" (field_expression "pOVar4->_vptr_Object" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(pOVar4)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) goto LAB_002963b4;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_002963b4;" goto statement_identifier ;)) (expression_statement "iVar3 = *(int *)(*(int *)puVar1 + 8);" (assignment_expression "iVar3 = *(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 (iVar3 == 0) goto LAB_002963c4;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_002963c4;" goto statement_identifier ;)) (if_statement "if (*(char *)(*(int *)(iVar3 + 0x594c) + 0x69) != '\0') {\n        uVar2 = *(uint *)&(to->super_Symbol).field_0x28;\n        if (((((uVar2 & 0xe000) != 0) || ((int)(uVar2 << 0x1d) < 0)) ||\n            (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)((to->super_Symbol).u2_.shndx),\n            iVar3 == 0)) ||\n           ((is_ordinary || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(st_shndx), iVar3 == 0))\n           )) {\n          override<64,_true>(this,to,sym,st_shndx,is_ordinary,object,version);\n          return;\n        }\n        uVar18 = *(uint *)&to->symsize_;\n        uVar17 = (uint)to->symsize_;\n        uVar2 = *(uint *)&to->value_;\n        uVar19 = (uint)to->value_;\n        override<64,_true>(this,to,sym,st_shndx,false,object,version);\n        if ((*(uint *)&to->symsize_ < uVar18) ||\n           ((*(uint *)&to->symsize_ == uVar18 && ((uint)to->symsize_ < uVar17)))) {\n          *(uint *)&to->symsize_ = uVar18;\n          *(uint *)((int)&to->symsize_ + 4) = uVar17;\n        }\n        if (uVar2 <= *(uint *)&to->value_) {\n          if (*(uint *)&to->value_ != uVar2) {\n            return;\n          }\n          if (uVar19 <= (uint)to->value_) {\n            return;\n          }\n        }\n        *(uint *)&to->value_ = uVar2;\n        *(uint *)((int)&to->value_ + 4) = uVar19;\n        return;\n      }" if (parenthesized_expression "(*(char *)(*(int *)(iVar3 + 0x594c) + 0x69) != '\0')" ( (binary_expression "*(char *)(*(int *)(iVar3 + 0x594c) + 0x69) != '\0'" (pointer_expression "*(char *)(*(int *)(iVar3 + 0x594c) + 0x69)" * (cast_expression "(char *)(*(int *)(iVar3 + 0x594c) + 0x69)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar3 + 0x594c) + 0x69)" ( (binary_expression "*(int *)(iVar3 + 0x594c) + 0x69" (pointer_expression "*(int *)(iVar3 + 0x594c)" * (cast_expression "(int *)(iVar3 + 0x594c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x594c)" ( (binary_expression "iVar3 + 0x594c" identifier + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        uVar2 = *(uint *)&(to->super_Symbol).field_0x28;\n        if (((((uVar2 & 0xe000) != 0) || ((int)(uVar2 << 0x1d) < 0)) ||\n            (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)((to->super_Symbol).u2_.shndx),\n            iVar3 == 0)) ||\n           ((is_ordinary || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(st_shndx), iVar3 == 0))\n           )) {\n          override<64,_true>(this,to,sym,st_shndx,is_ordinary,object,version);\n          return;\n        }\n        uVar18 = *(uint *)&to->symsize_;\n        uVar17 = (uint)to->symsize_;\n        uVar2 = *(uint *)&to->value_;\n        uVar19 = (uint)to->value_;\n        override<64,_true>(this,to,sym,st_shndx,false,object,version);\n        if ((*(uint *)&to->symsize_ < uVar18) ||\n           ((*(uint *)&to->symsize_ == uVar18 && ((uint)to->symsize_ < uVar17)))) {\n          *(uint *)&to->symsize_ = uVar18;\n          *(uint *)((int)&to->symsize_ + 4) = uVar17;\n        }\n        if (uVar2 <= *(uint *)&to->value_) {\n          if (*(uint *)&to->value_ != uVar2) {\n            return;\n          }\n          if (uVar19 <= (uint)to->value_) {\n            return;\n          }\n        }\n        *(uint *)&to->value_ = uVar2;\n        *(uint *)((int)&to->value_ + 4) = uVar19;\n        return;\n      }" { (expression_statement "uVar2 = *(uint *)&(to->super_Symbol).field_0x28;" (assignment_expression "uVar2 = *(uint *)&(to->super_Symbol).field_0x28" identifier = (pointer_expression "*(uint *)&(to->super_Symbol).field_0x28" * (cast_expression "(uint *)&(to->super_Symbol).field_0x28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(to->super_Symbol).field_0x28" & (field_expression "(to->super_Symbol).field_0x28" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier))))) ;) (if_statement "if (((((uVar2 & 0xe000) != 0) || ((int)(uVar2 << 0x1d) < 0)) ||\n            (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)((to->super_Symbol).u2_.shndx),\n            iVar3 == 0)) ||\n           ((is_ordinary || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(st_shndx), iVar3 == 0))\n           )) {\n          override<64,_true>(this,to,sym,st_shndx,is_ordinary,object,version);\n          return;\n        }" if (parenthesized_expression "(((((uVar2 & 0xe000) != 0) || ((int)(uVar2 << 0x1d) < 0)) ||\n            (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)((to->super_Symbol).u2_.shndx),\n            iVar3 == 0)) ||\n           ((is_ordinary || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(st_shndx), iVar3 == 0))\n           ))" ( (binary_expression "((((uVar2 & 0xe000) != 0) || ((int)(uVar2 << 0x1d) < 0)) ||\n            (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)((to->super_Symbol).u2_.shndx),\n            iVar3 == 0)) ||\n           ((is_ordinary || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(st_shndx), iVar3 == 0))\n           )" (parenthesized_expression "((((uVar2 & 0xe000) != 0) || ((int)(uVar2 << 0x1d) < 0)) ||\n            (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)((to->super_Symbol).u2_.shndx),\n            iVar3 == 0))" ( (binary_expression "(((uVar2 & 0xe000) != 0) || ((int)(uVar2 << 0x1d) < 0)) ||\n            (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)((to->super_Symbol).u2_.shndx),\n            iVar3 == 0)" (parenthesized_expression "(((uVar2 & 0xe000) != 0) || ((int)(uVar2 << 0x1d) < 0))" ( (binary_expression "((uVar2 & 0xe000) != 0) || ((int)(uVar2 << 0x1d) < 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 "((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 "(iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)((to->super_Symbol).u2_.shndx),\n            iVar3 == 0)" ( (comma_expression "iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)((to->super_Symbol).u2_.shndx),\n            iVar3 == 0" (assignment_expression "iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)((to->super_Symbol).u2_.shndx)" identifier = (call_expression "(*(code *)PTR_is_common_shndx_00432fe0)((to->super_Symbol).u2_.shndx)" (parenthesized_expression "(*(code *)PTR_is_common_shndx_00432fe0)" ( (pointer_expression "*(code *)PTR_is_common_shndx_00432fe0" * (cast_expression "(code *)PTR_is_common_shndx_00432fe0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((to->super_Symbol).u2_.shndx)" ( (field_expression "(to->super_Symbol).u2_.shndx" (field_expression "(to->super_Symbol).u2_" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier) )))) , (binary_expression "iVar3 == 0" identifier == number_literal)) ))) )) || (parenthesized_expression "((is_ordinary || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(st_shndx), iVar3 == 0))\n           )" ( (parenthesized_expression "(is_ordinary || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(st_shndx), iVar3 == 0))" ( (binary_expression "is_ordinary || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(st_shndx), iVar3 == 0)" identifier || (parenthesized_expression "(iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(st_shndx), iVar3 == 0)" ( (comma_expression "iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(st_shndx), iVar3 == 0" (assignment_expression "iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(st_shndx)" identifier = (call_expression "(*(code *)PTR_is_common_shndx_00432fe0)(st_shndx)" (parenthesized_expression "(*(code *)PTR_is_common_shndx_00432fe0)" ( (pointer_expression "*(code *)PTR_is_common_shndx_00432fe0" * (cast_expression "(code *)PTR_is_common_shndx_00432fe0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(st_shndx)" ( identifier )))) , (binary_expression "iVar3 == 0" identifier == number_literal)) ))) )) ))) )) (compound_statement "{\n          override<64,_true>(this,to,sym,st_shndx,is_ordinary,object,version);\n          return;\n        }" { (expression_statement "override<64,_true>(this,to,sym,st_shndx,is_ordinary,object,version);" (comma_expression "override<64,_true>(this,to,sym,st_shndx,is_ordinary,object,version)" (binary_expression "override<64" identifier < number_literal) , (binary_expression "_true>(this,to,sym,st_shndx,is_ordinary,object,version)" identifier > (parenthesized_expression "(this,to,sym,st_shndx,is_ordinary,object,version)" ( (comma_expression "this,to,sym,st_shndx,is_ordinary,object,version" identifier , (comma_expression "to,sym,st_shndx,is_ordinary,object,version" identifier , (comma_expression "sym,st_shndx,is_ordinary,object,version" identifier , (comma_expression "st_shndx,is_ordinary,object,version" identifier , (comma_expression "is_ordinary,object,version" identifier , (comma_expression "object,version" identifier , identifier)))))) )))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar18 = *(uint *)&to->symsize_;" (assignment_expression "uVar18 = *(uint *)&to->symsize_" identifier = (pointer_expression "*(uint *)&to->symsize_" * (cast_expression "(uint *)&to->symsize_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&to->symsize_" & (field_expression "to->symsize_" identifier -> field_identifier))))) ;) (expression_statement "uVar17 = (uint)to->symsize_;" (assignment_expression "uVar17 = (uint)to->symsize_" identifier = (cast_expression "(uint)to->symsize_" ( (type_descriptor "uint" type_identifier) ) (field_expression "to->symsize_" identifier -> field_identifier))) ;) (expression_statement "uVar2 = *(uint *)&to->value_;" (assignment_expression "uVar2 = *(uint *)&to->value_" identifier = (pointer_expression "*(uint *)&to->value_" * (cast_expression "(uint *)&to->value_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&to->value_" & (field_expression "to->value_" identifier -> field_identifier))))) ;) (expression_statement "uVar19 = (uint)to->value_;" (assignment_expression "uVar19 = (uint)to->value_" identifier = (cast_expression "(uint)to->value_" ( (type_descriptor "uint" type_identifier) ) (field_expression "to->value_" identifier -> field_identifier))) ;) (expression_statement "override<64,_true>(this,to,sym,st_shndx,false,object,version);" (comma_expression "override<64,_true>(this,to,sym,st_shndx,false,object,version)" (binary_expression "override<64" identifier < number_literal) , (binary_expression "_true>(this,to,sym,st_shndx,false,object,version)" identifier > (parenthesized_expression "(this,to,sym,st_shndx,false,object,version)" ( (comma_expression "this,to,sym,st_shndx,false,object,version" identifier , (comma_expression "to,sym,st_shndx,false,object,version" identifier , (comma_expression "sym,st_shndx,false,object,version" identifier , (comma_expression "st_shndx,false,object,version" identifier , (comma_expression "false,object,version" false , (comma_expression "object,version" identifier , identifier)))))) )))) ;) (if_statement "if ((*(uint *)&to->symsize_ < uVar18) ||\n           ((*(uint *)&to->symsize_ == uVar18 && ((uint)to->symsize_ < uVar17)))) {\n          *(uint *)&to->symsize_ = uVar18;\n          *(uint *)((int)&to->symsize_ + 4) = uVar17;\n        }" if (parenthesized_expression "((*(uint *)&to->symsize_ < uVar18) ||\n           ((*(uint *)&to->symsize_ == uVar18 && ((uint)to->symsize_ < uVar17))))" ( (binary_expression "(*(uint *)&to->symsize_ < uVar18) ||\n           ((*(uint *)&to->symsize_ == uVar18 && ((uint)to->symsize_ < uVar17)))" (parenthesized_expression "(*(uint *)&to->symsize_ < uVar18)" ( (binary_expression "*(uint *)&to->symsize_ < uVar18" (pointer_expression "*(uint *)&to->symsize_" * (cast_expression "(uint *)&to->symsize_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&to->symsize_" & (field_expression "to->symsize_" identifier -> field_identifier)))) < identifier) )) || (parenthesized_expression "((*(uint *)&to->symsize_ == uVar18 && ((uint)to->symsize_ < uVar17)))" ( (parenthesized_expression "(*(uint *)&to->symsize_ == uVar18 && ((uint)to->symsize_ < uVar17))" ( (binary_expression "*(uint *)&to->symsize_ == uVar18 && ((uint)to->symsize_ < uVar17)" (binary_expression "*(uint *)&to->symsize_ == uVar18" (pointer_expression "*(uint *)&to->symsize_" * (cast_expression "(uint *)&to->symsize_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&to->symsize_" & (field_expression "to->symsize_" identifier -> field_identifier)))) == identifier) && (parenthesized_expression "((uint)to->symsize_ < uVar17)" ( (binary_expression "(uint)to->symsize_ < uVar17" (cast_expression "(uint)to->symsize_" ( (type_descriptor "uint" type_identifier) ) (field_expression "to->symsize_" identifier -> field_identifier)) < identifier) ))) )) ))) )) (compound_statement "{\n          *(uint *)&to->symsize_ = uVar18;\n          *(uint *)((int)&to->symsize_ + 4) = uVar17;\n        }" { (expression_statement "*(uint *)&to->symsize_ = uVar18;" (assignment_expression "*(uint *)&to->symsize_ = uVar18" (pointer_expression "*(uint *)&to->symsize_" * (cast_expression "(uint *)&to->symsize_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&to->symsize_" & (field_expression "to->symsize_" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(uint *)((int)&to->symsize_ + 4) = uVar17;" (assignment_expression "*(uint *)((int)&to->symsize_ + 4) = uVar17" (pointer_expression "*(uint *)((int)&to->symsize_ + 4)" * (cast_expression "(uint *)((int)&to->symsize_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&to->symsize_ + 4)" ( (binary_expression "(int)&to->symsize_ + 4" (cast_expression "(int)&to->symsize_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&to->symsize_" & (field_expression "to->symsize_" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) })) (if_statement "if (uVar2 <= *(uint *)&to->value_) {\n          if (*(uint *)&to->value_ != uVar2) {\n            return;\n          }\n          if (uVar19 <= (uint)to->value_) {\n            return;\n          }\n        }" if (parenthesized_expression "(uVar2 <= *(uint *)&to->value_)" ( (binary_expression "uVar2 <= *(uint *)&to->value_" identifier <= (pointer_expression "*(uint *)&to->value_" * (cast_expression "(uint *)&to->value_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&to->value_" & (field_expression "to->value_" identifier -> field_identifier))))) )) (compound_statement "{\n          if (*(uint *)&to->value_ != uVar2) {\n            return;\n          }\n          if (uVar19 <= (uint)to->value_) {\n            return;\n          }\n        }" { (if_statement "if (*(uint *)&to->value_ != uVar2) {\n            return;\n          }" if (parenthesized_expression "(*(uint *)&to->value_ != uVar2)" ( (binary_expression "*(uint *)&to->value_ != uVar2" (pointer_expression "*(uint *)&to->value_" * (cast_expression "(uint *)&to->value_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&to->value_" & (field_expression "to->value_" identifier -> field_identifier)))) != identifier) )) (compound_statement "{\n            return;\n          }" { (return_statement "return;" return ;) })) (if_statement "if (uVar19 <= (uint)to->value_) {\n            return;\n          }" if (parenthesized_expression "(uVar19 <= (uint)to->value_)" ( (binary_expression "uVar19 <= (uint)to->value_" identifier <= (cast_expression "(uint)to->value_" ( (type_descriptor "uint" type_identifier) ) (field_expression "to->value_" identifier -> field_identifier))) )) (compound_statement "{\n            return;\n          }" { (return_statement "return;" return ;) })) })) (expression_statement "*(uint *)&to->value_ = uVar2;" (assignment_expression "*(uint *)&to->value_ = uVar2" (pointer_expression "*(uint *)&to->value_" * (cast_expression "(uint *)&to->value_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&to->value_" & (field_expression "to->value_" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(uint *)((int)&to->value_ + 4) = uVar19;" (assignment_expression "*(uint *)((int)&to->value_ + 4) = uVar19" (pointer_expression "*(uint *)((int)&to->value_ + 4)" * (cast_expression "(uint *)((int)&to->value_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&to->value_ + 4)" ( (binary_expression "(int)&to->value_ + 4" (cast_expression "(int)&to->value_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&to->value_" & (field_expression "to->value_" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })) (goto_statement "goto LAB_00295ee8;" goto statement_identifier ;) })) }) (else_clause "else {\n    puVar13 = PTR_s__0043226c + 0x3c38;\n    (*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s_alize_xindex_004323b4 + -0x5bdc,0xaa,puVar13);\nLAB_00296780:\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,puVar13 + 0x3bb8);\n  }" else (compound_statement "{\n    puVar13 = PTR_s__0043226c + 0x3c38;\n    (*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s_alize_xindex_004323b4 + -0x5bdc,0xaa,puVar13);\nLAB_00296780:\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,puVar13 + 0x3bb8);\n  }" { (expression_statement "puVar13 = PTR_s__0043226c + 0x3c38;" (assignment_expression "puVar13 = PTR_s__0043226c + 0x3c38" identifier = (binary_expression "PTR_s__0043226c + 0x3c38" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s_alize_xindex_004323b4 + -0x5bdc,0xaa,puVar13);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s_alize_xindex_004323b4 + -0x5bdc,0xaa,puVar13)" (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,0xaa,puVar13)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5bdc" identifier + number_literal) , number_literal , identifier ))) ;) (labeled_statement "LAB_00296780:\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,puVar13 + 0x3bb8);" statement_identifier : (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,puVar13 + 0x3bb8);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,puVar13 + 0x3bb8)" (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,0x69,puVar13 + 0x3bb8)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5cec" identifier + number_literal) , number_literal , (binary_expression "puVar13 + 0x3bb8" identifier + number_literal) ))) ;)) }))) (labeled_statement "LAB_0029679c:\n  (*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_s__0043226c + 0x3c24);" statement_identifier : (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_s__0043226c + 0x3c24);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_s__0043226c + 0x3c24)" (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 + 0x3c24)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5bdc" identifier + number_literal) , number_literal , (binary_expression "PTR_s__0043226c + 0x3c24" identifier + number_literal) ))) ;)) (labeled_statement "LAB_002967b4:\n  puVar13 = PTR_s_alize_xindex_004323b4 + -0x5bdc;" statement_identifier : (expression_statement "puVar13 = PTR_s_alize_xindex_004323b4 + -0x5bdc;" (assignment_expression "puVar13 = PTR_s_alize_xindex_004323b4 + -0x5bdc" identifier = (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5bdc" identifier + number_literal)) ;)) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)(puVar13,0xa1,PTR_s__0043226c + 0x3c24);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)(puVar13,0xa1,PTR_s__0043226c + 0x3c24)" (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 "(puVar13,0xa1,PTR_s__0043226c + 0x3c24)" ( identifier , number_literal , (binary_expression "PTR_s__0043226c + 0x3c24" identifier + number_literal) ))) ;) (if_statement "if (_adjust_dyndef != (Object *)auStack_70) {\n    operator_delete(_adjust_dyndef);\n  }" if (parenthesized_expression "(_adjust_dyndef != (Object *)auStack_70)" ( (binary_expression "_adjust_dyndef != (Object *)auStack_70" identifier != (cast_expression "(Object *)auStack_70" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n    operator_delete(_adjust_dyndef);\n  }" { (expression_statement "operator_delete(_adjust_dyndef);" (call_expression "operator_delete(_adjust_dyndef)" identifier (argument_list "(_adjust_dyndef)" ( identifier ))) ;) })) (expression_statement "(*(code *)PTR__Unwind_Resume_00432258)(puVar13);" (call_expression "(*(code *)PTR__Unwind_Resume_00432258)(puVar13)" (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 "(puVar13)" ( identifier ))) ;) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void __thiscall\ngold::Symbol_table::resolve<64,true>\n          (Symbol_table *this,Sized_symbol *param_1,Sym *param_2,uint param_3,bool param_4,\n          uint param_5,Object *param_6,char *param_7,bool param_8)\n\n{\n  Sized_symbol SVar1;\n  uint uVar2;\n  int iVar3;\n  char *pcVar4;\n  int iVar5;\n  undefined4 uVar6;\n  byte bVar7;\n  int *piVar8;\n  undefined *puVar9;\n  undefined1 *puVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  char *in_stack_ffffff70;\n  undefined4 *local_78;\n  uint local_74;\n  undefined4 local_70;\n  undefined4 local_6c;\n  Object *local_60;\n  uint local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined1 auStack_50 [8];\n  undefined4 local_48;\n  char *local_44;\n  undefined4 **local_40;\n  undefined1 *local_3c;\n  undefined4 *local_38;\n  code *local_34;\n  char **local_30;\n  _Map_base<char_const*,std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>,std::allocator<std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>>,std::__detail::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n  *local_2c;\n  \n  uVar2 = *(uint *)(param_1 + 0x28);\n  if ((uVar2 & 0xe000) != 0) {\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xaa,PTR_DAT_0043226c + 0x3c38);\n    return;\n  }\n  uVar13 = *(uint *)(param_1 + 0xc);\n  iVar5 = uVar2 << 0x1d;\n  if (((uVar2 << 0x10) >> 0x1d == 0) && (param_6 == *(Object **)(param_1 + 8))) {\n    if (iVar5 < 0) {\n      bVar7 = uVar13 != 0;\n    }\n    else {\n      bVar7 = (*(code *)PTR_is_common_shndx_00432fe0)(uVar13);\n      bVar7 = bVar7 ^ 1;\n    }\n    if (bVar7 == 0) goto LAB_00295df8;\n    if (!param_4) goto LAB_0029609c;\njoined_r0x002960a4:\n    if ((((-1 < iVar5) && (uVar13 == param_3)) &&\n        (*(int *)(*(int *)param_2 + 8) == *(int *)(param_1 + 0x30))) &&\n       (*(int *)(*(int *)param_2 + 0xc) == *(int *)(param_1 + 0x34))) {\n      return;\n    }\n  }\n  else {\nLAB_00295df8:\n    if (!param_4) {\nLAB_0029609c:\n      if (param_3 == 0xfff1) goto joined_r0x002960a4;\n    }\n  }\n  puVar9 = PTR_parameters_00432be0;\n  piVar8 = *(int **)(*(int *)PTR_parameters_00432be0 + 0xc);\n  if (piVar8 == (int *)0x0) {\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + 0x3bb8);\n    return;\n  }\n  if ((*(char *)(piVar8[1] + 0xd) != '\0') &&\n     (in_stack_ffffff70 = param_7,\n     iVar3 = (**(code **)(*piVar8 + 0xac))(piVar8,param_1,param_2,param_6,param_7), iVar3 != 0)) {\n    return;\n  }\n  if (*(int *)(param_6 + 0x2c) < 0) {\n    if ((param_3 == 0) && ((((uint)(*(int *)(param_1 + 0x28) << 8) >> 0x1e) + 3 & 3) < 2)) {\n      return;\n    }\n    *(uint *)(param_1 + 0x28) = *(uint *)(param_1 + 0x28) & 0xffffff7f | 0x80;\n    iVar3 = (**(code **)(*(int *)param_6 + 0x14))(param_6);\n  }\n  else {\n    if (((*(byte *)(*(int *)param_2 + 4) & 0xf) == 5) &&\n       ((param_4 || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar3 == 0)))) {\n      uVar6 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + 0x3c50);\n      (*(code *)PTR_demangled_name_abi_cxx11__00433f24)(&local_78,param_1);\n      if ((*(uint *)(param_1 + 0x28) & 0xe000) != 0) {\n                    \n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24);\n        return;\n      }\n                    \n      (*(code *)PTR_gold_warning_0043245c)\n                (uVar6,local_78,*(undefined4 *)(*(int *)(param_1 + 8) + 4));\n      if (local_78 == &local_70) {\n        return;\n      }\n      operator_delete(local_78);\n      return;\n    }\n    *(uint *)(param_1 + 0x28) = *(uint *)(param_1 + 0x28) & 0xfffffeff | 0x100;\n    iVar3 = (**(code **)(*(int *)param_6 + 0x14))(param_6);\n  }\n  if ((iVar3 == 0) && (-1 < *(int *)(param_6 + 0x2c))) {\n    *(uint *)(param_1 + 0x28) = *(uint *)(param_1 + 0x28) & 0xfffffffd | 2;\n  }\n  if ((*(uint *)(param_1 + 0x28) << 0x10) >> 0x1d == 0) {\n    if ((*(uint *)(param_1 + 0x28) & 0xe000) != 0) goto LAB_0029679c;\n    iVar3 = (**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8));\n    if (iVar3 == 0) goto LAB_002963b4;\n    iVar3 = *(int *)(*(int *)puVar9 + 8);\n    if (iVar3 == 0) goto LAB_002963c4;\n    if (*(char *)(*(int *)(iVar3 + 0x594c) + 0x69) != '\0') {\n      if (((((*(uint *)(param_1 + 0x28) & 0xe000) != 0) ||\n           ((int)(*(uint *)(param_1 + 0x28) << 0x1d) < 0)) ||\n          (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(*(undefined4 *)(param_1 + 0xc)),\n          iVar5 == 0)) ||\n         ((param_4 || (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar5 == 0)))) {\n        override<64,true>(this,param_1,param_2,param_3,param_4,param_6,param_7);\n        return;\n      }\n      uVar13 = *(uint *)(param_1 + 0x38);\n      uVar12 = *(uint *)(param_1 + 0x3c);\n      uVar2 = *(uint *)(param_1 + 0x30);\n      uVar11 = *(uint *)(param_1 + 0x34);\n      override<64,true>(this,param_1,param_2,param_3,false,param_6,param_7);\n      if ((*(uint *)(param_1 + 0x38) < uVar13) ||\n         ((*(uint *)(param_1 + 0x38) == uVar13 && (*(uint *)(param_1 + 0x3c) < uVar12)))) {\n        *(uint *)(param_1 + 0x38) = uVar13;\n        *(uint *)(param_1 + 0x3c) = uVar12;\n      }\n      if (uVar2 <= *(uint *)(param_1 + 0x30)) {\n        if (*(uint *)(param_1 + 0x30) != uVar2) {\n          return;\n        }\n        if (uVar11 <= *(uint *)(param_1 + 0x34)) {\n          return;\n        }\n      }\n      *(uint *)(param_1 + 0x30) = uVar2;\n      *(uint *)(param_1 + 0x34) = uVar11;\n      return;\n    }\n  }\n  else {\nLAB_002963b4:\n    iVar3 = *(int *)(*(int *)puVar9 + 8);\n    if (iVar3 == 0) goto LAB_002963c4;\n  }\n  if (*(char *)(iVar3 + 0xe11) == '\0') {\nLAB_00296184:\n    local_40 = &local_78;\n    iVar5 = *(int *)param_6;\n  }\n  else {\n    iVar3 = *(int *)param_2;\n    if (((((int)(uint)*(byte *)(iVar3 + 4) >> 4 != 2) &&\n         ((uint)(*(int *)(param_1 + 0x28) << 4) >> 0x1c != 2)) || (param_5 == 0)) ||\n       ((-1 < iVar5 || (uVar13 == 0)))) goto LAB_00296184;\n    if (*(int *)(iVar3 + 0x10) == 0 && *(int *)(iVar3 + 0x14) == 0) goto LAB_00296184;\n    if ((*(int *)(param_1 + 0x38) == 0 && *(int *)(param_1 + 0x3c) == 0) ||\n       ((((*(uint *)(param_1 + 0x28) >> 0x1c == (*(byte *)(iVar3 + 4) & 0xf) &&\n          (*(int *)(param_1 + 0x38) == *(int *)(iVar3 + 0x10))) &&\n         (*(int *)(param_1 + 0x3c) == *(int *)(iVar3 + 0x14))) ||\n        ((pcVar4 = *(char **)param_1, *pcVar4 != '_' || (pcVar4[1] != 'Z')))))) goto LAB_00296184;\n    local_58 = *(undefined4 *)(iVar3 + 8);\n    local_54 = *(undefined4 *)(iVar3 + 0xc);\n    local_60 = param_6;\n    local_5c = param_5;\n    if ((*(uint *)(param_1 + 0x28) & 0xe000) != 0) {\nLAB_0029679c:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24);\n      return;\n    }\n    local_34 = (code *)PTR_operator___00435c08;\n    local_2c = (_Map_base<char_const*,std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>,std::allocator<std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>>,std::__detail::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n                *)(this + 0x128);\n    local_78 = *(undefined4 **)(param_1 + 8);\n    local_30 = &local_44;\n    local_6c = *(undefined4 *)(param_1 + 0x34);\n    local_70 = *(undefined4 *)(param_1 + 0x30);\n    local_40 = &local_78;\n    local_74 = uVar13;\n    local_44 = pcVar4;\n    local_48 = std::__detail::\n               _Map_base<char_const*,std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>,std::allocator<std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>>,std::__detail::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n               ::operator[](local_2c,local_30);\n    local_38 = &local_48;\n    local_3c = auStack_50;\n    uVar2 = (uint)in_stack_ffffff70 & 0xffffff;\n    std::\n    _Hashtable<gold::Symbol_location,gold::Symbol_location,std::allocator<gold::Symbol_location>,std::__detail::_Identity,std::equal_to<gold::Symbol_location>,gold::Symbol_location_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&,std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,true>>>>\n              (local_3c,local_48,&local_60,local_38,uVar2,1);\n    local_44 = *(char **)param_1;\n    local_48 = (*local_34)(local_2c,local_30);\n    std::\n    _Hashtable<gold::Symbol_location,gold::Symbol_location,std::allocator<gold::Symbol_location>,std::__detail::_Identity,std::equal_to<gold::Symbol_location>,gold::Symbol_location_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&,std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,true>>>>\n              (local_3c,local_48,local_40,local_38,uVar2 & 0xffffff,1);\n    iVar5 = *(int *)param_6;\n  }\n  iVar5 = (**(code **)(iVar5 + 0x14))(param_6);\n  if (iVar5 == 0) {\n    uVar2 = (uint)*(byte *)(*(int *)param_2 + 4);\n    uVar13 = uVar2 & 0xf;\n  }\n  else {\n    uVar2 = (uint)*(byte *)(*(int *)param_2 + 4);\n    uVar13 = *(uint *)(param_1 + 0x28) >> 0x1c;\n  }\n  uVar6 = FUN_00291650(uVar2 >> 4,*(uint *)(param_6 + 0x2c) >> 0x1f,param_3,param_4);\n  local_3c = *(undefined1 **)(param_1 + 0x3c);\n  uVar2 = *(uint *)(param_1 + 0x38);\n  iVar5 = should_override(param_1,uVar6,uVar13,0,param_6,&local_60,local_40,param_8);\n  if (iVar5 == 0) {\n    iVar5 = *(int *)param_2;\n    if (local_60._0_1_ != '\0') {\n      uVar13 = *(uint *)(iVar5 + 0x10);\n      puVar10 = *(undefined1 **)(iVar5 + 0x14);\n      if ((uVar2 < uVar13) || ((uVar13 == uVar2 && (local_3c < puVar10)))) {\n        *(uint *)(param_1 + 0x38) = uVar13;\n        *(undefined1 **)(param_1 + 0x3c) = puVar10;\n      }\n      uVar13 = *(uint *)(iVar5 + 8);\n      uVar11 = *(uint *)(iVar5 + 0xc);\n      if ((*(uint *)(param_1 + 0x30) < uVar13) ||\n         ((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)))) {\n        *(uint *)(param_1 + 0x30) = uVar13;\n        *(uint *)(param_1 + 0x34) = uVar11;\n      }\n    }\n    if ((local_78._0_1_ != '\0') &&\n       ((-1 < *(int *)(param_1 + 0x2c) || (*(int *)(param_1 + 0x2c) << 1 < 0)))) {\n      param_1[0x2c] =\n           (Sized_symbol)\n           ((byte)param_1[0x2c] & 0x3f | ((int)(uint)*(byte *)(iVar5 + 4) >> 4 == 2) << 6 | 0x80);\n    }\n    bVar7 = *(byte *)(iVar5 + 5);\n    uVar13 = *(uint *)(param_1 + 0x28);\n    if (((bVar7 & 3) != 0) && (((uVar13 & 0xc00000) == 0 || ((bVar7 & 3) < (uVar13 << 8) >> 0x1e))))\n    {\n      uVar13 = uVar13 & 0xff3fffff | (bVar7 & 3) << 0x16;\n      *(uint *)(param_1 + 0x28) = uVar13;\n    }\n  }\n  else {\n    iVar5 = *(int *)(param_1 + 0x28);\n    uVar13 = *(uint *)(param_1 + 0x30);\n    uVar11 = *(uint *)(param_1 + 0x34);\n    override<64,true>(this,param_1,param_2,param_3,param_4,param_6,param_7);\n    if (local_60._0_1_ != '\0') {\n      if ((*(uint *)(param_1 + 0x38) < uVar2) ||\n         ((*(uint *)(param_1 + 0x38) == uVar2 && (*(undefined1 **)(param_1 + 0x3c) < local_3c)))) {\n        *(uint *)(param_1 + 0x38) = uVar2;\n        *(undefined1 **)(param_1 + 0x3c) = local_3c;\n      }\n      if ((*(uint *)(param_1 + 0x30) < uVar13) ||\n         ((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)))) {\n        *(uint *)(param_1 + 0x30) = uVar13;\n        *(uint *)(param_1 + 0x34) = uVar11;\n      }\n    }\n    uVar13 = *(uint *)(param_1 + 0x28);\n    if (local_78._0_1_ != '\0') {\n      if (*(int *)(param_1 + 0x2c) < 0) {\n        if (-1 < *(int *)(param_1 + 0x2c) << 1) goto LAB_002962d0;\n        SVar1 = param_1[0x2c];\n      }\n      else {\n        SVar1 = param_1[0x2c];\n      }\n      param_1[0x2c] =\n           (Sized_symbol)((byte)SVar1 & 0x3f | ((uint)(iVar5 << 4) >> 0x1c == 2) << 6 | 0x80);\n    }\n  }\nLAB_002962d0:\n  if (((((uVar13 & 0xe000) == 0) && (iVar5 = *(int *)(param_1 + 8), *(int *)(iVar5 + 0x2c) < 0)) &&\n      (*(int *)(param_1 + 0x28) << 0x17 < 0)) && (-1 < *(int *)(param_1 + 0x2c) << 1)) {\n    *(byte *)(iVar5 + 0x2c) = *(byte *)(iVar5 + 0x2c) & 0xbf | 0x40;\n  }\n  if (local_60._0_1_ != '\0') {\n    if (*(int *)(*(int *)puVar9 + 8) == 0) {\nLAB_002963c4:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + 0x3c1c);\n      return;\n    }\n    if (*(char *)(*(int *)(*(int *)puVar9 + 8) + 0x43f5) != '\0') {\n      uVar13 = *(uint *)(*(int *)param_2 + 0x10);\n      puVar10 = *(undefined1 **)(*(int *)param_2 + 0x14);\n      if ((uVar13 < uVar2) || ((uVar2 == uVar13 && (puVar10 < local_3c)))) {\n        puVar9 = PTR_DAT_0043226c + 0x3c88;\n      }\n      else if ((uVar2 < uVar13) || ((uVar13 == uVar2 && (local_3c < puVar10)))) {\n        puVar9 = PTR_DAT_0043226c + 0x3cb4;\n      }\n      else {\n        puVar9 = PTR_DAT_0043226c + 0x3ce0;\n      }\n      uVar6 = (*(code *)PTR_gettext_00436818)(puVar9);\n      report_resolve_problem(0,uVar6,param_1,0,param_6);\n      return;\n    }\n  }\n  return;\n}\n\n" (declaration "void __thiscall\ngold::Symbol_table::resolve<64,true>\n          (Symbol_table *this,Sized_symbol *param_1,Sym *param_2,uint param_3,bool param_4,\n          uint param_5,Object *param_6,char *param_7,bool param_8)\n\n{\n  Sized_symbol SVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Symbol_table::" identifier : : identifier : :) identifier (ERROR "<64" < number_literal) , (ERROR "true>\n          (Symbol_table *this,Sized_symbol *param_1,Sym *param_2,uint param_3,bool param_4,\n          uint param_5,Object *param_6,char *param_7,bool param_8)\n\n{\n  Sized_symbol" (function_declarator "true>\n          (Symbol_table *this,Sized_symbol *param_1,Sym *param_2,uint param_3,bool param_4,\n          uint param_5,Object *param_6,char *param_7,bool param_8)" identifier (ERROR ">" >) (parameter_list "(Symbol_table *this,Sized_symbol *param_1,Sym *param_2,uint param_3,bool param_4,\n          uint param_5,Object *param_6,char *param_7,bool param_8)" ( (parameter_declaration "Symbol_table *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Sized_symbol *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "Sym *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "bool param_4" primitive_type identifier) , (parameter_declaration "uint param_5" type_identifier identifier) , (parameter_declaration "Object *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) , (parameter_declaration "char *param_7" primitive_type (pointer_declarator "*param_7" * identifier)) , (parameter_declaration "bool param_8" primitive_type identifier) ))) { identifier) identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "byte bVar7;" type_identifier identifier ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "undefined *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "undefined1 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "char *in_stack_ffffff70;" primitive_type (pointer_declarator "*in_stack_ffffff70" * identifier) ;) (declaration "undefined4 *local_78;" type_identifier (pointer_declarator "*local_78" * identifier) ;) (declaration "uint local_74;" type_identifier identifier ;) (declaration "undefined4 local_70;" type_identifier identifier ;) (declaration "undefined4 local_6c;" type_identifier identifier ;) (declaration "Object *local_60;" type_identifier (pointer_declarator "*local_60" * identifier) ;) (declaration "uint local_5c;" type_identifier identifier ;) (declaration "undefined4 local_58;" type_identifier identifier ;) (declaration "undefined4 local_54;" type_identifier identifier ;) (declaration "undefined1 auStack_50 [8];" type_identifier (array_declarator "auStack_50 [8]" identifier [ number_literal ]) ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "char *local_44;" primitive_type (pointer_declarator "*local_44" * identifier) ;) (declaration "undefined4 **local_40;" type_identifier (pointer_declarator "**local_40" * (pointer_declarator "*local_40" * identifier)) ;) (declaration "undefined1 *local_3c;" type_identifier (pointer_declarator "*local_3c" * identifier) ;) (declaration "undefined4 *local_38;" type_identifier (pointer_declarator "*local_38" * identifier) ;) (declaration "code *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "char **local_30;" primitive_type (pointer_declarator "**local_30" * (pointer_declarator "*local_30" * identifier)) ;) (ERROR "_Map_base<char_const*,std::pair<char_const*const," (binary_expression "_Map_base<char_const*,std::pair<char_const*const" (binary_expression "_Map_base<char_const*,std" identifier < (binary_expression "char_const*,std" identifier * (ERROR "," ,) identifier)) (ERROR "::pair" : : identifier) < (binary_expression "char_const*const" identifier * identifier)) ,) (labeled_statement "std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>,std::allocator<std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>>,std::__detail::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n  *local_2c;" statement_identifier (ERROR "::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>,std::allocator<std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>>,std:" : : (binary_expression "unordered_set<gold" identifier < identifier) : : (comma_expression "Symbol_location,gold" identifier , identifier) : : (comma_expression "Symbol_location_hash,std" identifier , identifier) : : (binary_expression "equal_to<gold" identifier < identifier) : : (binary_expression "Symbol_location>,std" identifier > (ERROR "," ,) identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Symbol_location>>>,std" identifier >> (ERROR ">," > ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<char_const*const,std" (binary_expression "pair<char_const*const" identifier < (binary_expression "char_const*const" identifier * identifier)) , identifier) : : (binary_expression "unordered_set<gold" identifier < identifier) : : (comma_expression "Symbol_location,gold" identifier , identifier) : : (comma_expression "Symbol_location_hash,std" identifier , identifier) : : (binary_expression "equal_to<gold" identifier < identifier) : : (binary_expression "Symbol_location>,std" identifier > (ERROR "," ,) identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Symbol_location>>>>,std" identifier >> (ERROR ">>," >> ,) identifier) :) : (labeled_statement "__detail::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n  *local_2c;" statement_identifier (ERROR "::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std:" : : (comma_expression "_Select1st,std" identifier , identifier) : : (comma_expression "equal_to<char_const*>,std" (binary_expression "equal_to<char_const" identifier < identifier) (ERROR "*>" * >) , identifier) : : (comma_expression "hash<char_const*>,std" (binary_expression "hash<char_const" identifier < identifier) (ERROR "*>" * >) , identifier) :) : (labeled_statement "__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n  *local_2c;" statement_identifier (ERROR "::_Mod_range_hashing,std:" : : (comma_expression "_Mod_range_hashing,std" identifier , identifier) :) : (labeled_statement "__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n  *local_2c;" statement_identifier (ERROR "::_Default_ranged_hash,std:" : : (comma_expression "_Default_ranged_hash,std" identifier , identifier) :) : (labeled_statement "__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n  *local_2c;" statement_identifier (ERROR "::_Prime_rehash_policy,std:" : : (comma_expression "_Prime_rehash_policy,std" identifier , identifier) :) : (labeled_statement "__detail::_Hashtable_traits<false,false,true>,true>\n  *local_2c;" statement_identifier : (ERROR ":" :) (expression_statement "_Hashtable_traits<false,false,true>,true>\n  *local_2c;" (comma_expression "_Hashtable_traits<false,false,true>,true>\n  *local_2c" (binary_expression "_Hashtable_traits<false" identifier < false) , (comma_expression "false,true>,true>\n  *local_2c" false , (binary_expression "true>,true>\n  *local_2c" (binary_expression "true>,true" true > (ERROR "," ,) true) > (pointer_expression "*local_2c" * identifier)))) ;))))))) (expression_statement "uVar2 = *(uint *)(param_1 + 0x28);" (assignment_expression "uVar2 = *(uint *)(param_1 + 0x28)" identifier = (pointer_expression "*(uint *)(param_1 + 0x28)" * (cast_expression "(uint *)(param_1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (if_statement "if ((uVar2 & 0xe000) != 0) {\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xaa,PTR_DAT_0043226c + 0x3c38);\n    return;\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    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xaa,PTR_DAT_0043226c + 0x3c38);\n    return;\n  }" { (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xaa,PTR_DAT_0043226c + 0x3c38);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xaa,PTR_DAT_0043226c + 0x3c38)" (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,0xaa,PTR_DAT_0043226c + 0x3c38)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5bdc" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0043226c + 0x3c38" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar13 = *(uint *)(param_1 + 0xc);" (assignment_expression "uVar13 = *(uint *)(param_1 + 0xc)" identifier = (pointer_expression "*(uint *)(param_1 + 0xc)" * (cast_expression "(uint *)(param_1 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = uVar2 << 0x1d;" (assignment_expression "iVar5 = uVar2 << 0x1d" identifier = (binary_expression "uVar2 << 0x1d" identifier << number_literal)) ;) (if_statement "if (((uVar2 << 0x10) >> 0x1d == 0) && (param_6 == *(Object **)(param_1 + 8))) {\n    if (iVar5 < 0) {\n      bVar7 = uVar13 != 0;\n    }\n    else {\n      bVar7 = (*(code *)PTR_is_common_shndx_00432fe0)(uVar13);\n      bVar7 = bVar7 ^ 1;\n    }\n    if (bVar7 == 0) goto LAB_00295df8;\n    if (!param_4) goto LAB_0029609c;\njoined_r0x002960a4:\n    if ((((-1 < iVar5) && (uVar13 == param_3)) &&\n        (*(int *)(*(int *)param_2 + 8) == *(int *)(param_1 + 0x30))) &&\n       (*(int *)(*(int *)param_2 + 0xc) == *(int *)(param_1 + 0x34))) {\n      return;\n    }\n  }\n  else {\nLAB_00295df8:\n    if (!param_4) {\nLAB_0029609c:\n      if (param_3 == 0xfff1) goto joined_r0x002960a4;\n    }\n  }" if (parenthesized_expression "(((uVar2 << 0x10) >> 0x1d == 0) && (param_6 == *(Object **)(param_1 + 8)))" ( (binary_expression "((uVar2 << 0x10) >> 0x1d == 0) && (param_6 == *(Object **)(param_1 + 8))" (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) )) && (parenthesized_expression "(param_6 == *(Object **)(param_1 + 8))" ( (binary_expression "param_6 == *(Object **)(param_1 + 8)" identifier == (pointer_expression "*(Object **)(param_1 + 8)" * (cast_expression "(Object **)(param_1 + 8)" ( (type_descriptor "Object **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ))) )) (compound_statement "{\n    if (iVar5 < 0) {\n      bVar7 = uVar13 != 0;\n    }\n    else {\n      bVar7 = (*(code *)PTR_is_common_shndx_00432fe0)(uVar13);\n      bVar7 = bVar7 ^ 1;\n    }\n    if (bVar7 == 0) goto LAB_00295df8;\n    if (!param_4) goto LAB_0029609c;\njoined_r0x002960a4:\n    if ((((-1 < iVar5) && (uVar13 == param_3)) &&\n        (*(int *)(*(int *)param_2 + 8) == *(int *)(param_1 + 0x30))) &&\n       (*(int *)(*(int *)param_2 + 0xc) == *(int *)(param_1 + 0x34))) {\n      return;\n    }\n  }" { (if_statement "if (iVar5 < 0) {\n      bVar7 = uVar13 != 0;\n    }\n    else {\n      bVar7 = (*(code *)PTR_is_common_shndx_00432fe0)(uVar13);\n      bVar7 = bVar7 ^ 1;\n    }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n      bVar7 = uVar13 != 0;\n    }" { (expression_statement "bVar7 = uVar13 != 0;" (assignment_expression "bVar7 = uVar13 != 0" identifier = (binary_expression "uVar13 != 0" identifier != number_literal)) ;) }) (else_clause "else {\n      bVar7 = (*(code *)PTR_is_common_shndx_00432fe0)(uVar13);\n      bVar7 = bVar7 ^ 1;\n    }" else (compound_statement "{\n      bVar7 = (*(code *)PTR_is_common_shndx_00432fe0)(uVar13);\n      bVar7 = bVar7 ^ 1;\n    }" { (expression_statement "bVar7 = (*(code *)PTR_is_common_shndx_00432fe0)(uVar13);" (assignment_expression "bVar7 = (*(code *)PTR_is_common_shndx_00432fe0)(uVar13)" identifier = (call_expression "(*(code *)PTR_is_common_shndx_00432fe0)(uVar13)" (parenthesized_expression "(*(code *)PTR_is_common_shndx_00432fe0)" ( (pointer_expression "*(code *)PTR_is_common_shndx_00432fe0" * (cast_expression "(code *)PTR_is_common_shndx_00432fe0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar13)" ( identifier )))) ;) (expression_statement "bVar7 = bVar7 ^ 1;" (assignment_expression "bVar7 = bVar7 ^ 1" identifier = (binary_expression "bVar7 ^ 1" identifier ^ number_literal)) ;) }))) (if_statement "if (bVar7 == 0) goto LAB_00295df8;" if (parenthesized_expression "(bVar7 == 0)" ( (binary_expression "bVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00295df8;" goto statement_identifier ;)) (if_statement "if (!param_4) goto LAB_0029609c;" if (parenthesized_expression "(!param_4)" ( (unary_expression "!param_4" ! identifier) )) (goto_statement "goto LAB_0029609c;" goto statement_identifier ;)) (labeled_statement "joined_r0x002960a4:\n    if ((((-1 < iVar5) && (uVar13 == param_3)) &&\n        (*(int *)(*(int *)param_2 + 8) == *(int *)(param_1 + 0x30))) &&\n       (*(int *)(*(int *)param_2 + 0xc) == *(int *)(param_1 + 0x34))) {\n      return;\n    }" statement_identifier : (if_statement "if ((((-1 < iVar5) && (uVar13 == param_3)) &&\n        (*(int *)(*(int *)param_2 + 8) == *(int *)(param_1 + 0x30))) &&\n       (*(int *)(*(int *)param_2 + 0xc) == *(int *)(param_1 + 0x34))) {\n      return;\n    }" if (parenthesized_expression "((((-1 < iVar5) && (uVar13 == param_3)) &&\n        (*(int *)(*(int *)param_2 + 8) == *(int *)(param_1 + 0x30))) &&\n       (*(int *)(*(int *)param_2 + 0xc) == *(int *)(param_1 + 0x34)))" ( (binary_expression "(((-1 < iVar5) && (uVar13 == param_3)) &&\n        (*(int *)(*(int *)param_2 + 8) == *(int *)(param_1 + 0x30))) &&\n       (*(int *)(*(int *)param_2 + 0xc) == *(int *)(param_1 + 0x34))" (parenthesized_expression "(((-1 < iVar5) && (uVar13 == param_3)) &&\n        (*(int *)(*(int *)param_2 + 8) == *(int *)(param_1 + 0x30)))" ( (binary_expression "((-1 < iVar5) && (uVar13 == param_3)) &&\n        (*(int *)(*(int *)param_2 + 8) == *(int *)(param_1 + 0x30))" (parenthesized_expression "((-1 < iVar5) && (uVar13 == param_3))" ( (binary_expression "(-1 < iVar5) && (uVar13 == param_3)" (parenthesized_expression "(-1 < iVar5)" ( (binary_expression "-1 < iVar5" number_literal < identifier) )) && (parenthesized_expression "(uVar13 == param_3)" ( (binary_expression "uVar13 == param_3" identifier == identifier) ))) )) && (parenthesized_expression "(*(int *)(*(int *)param_2 + 8) == *(int *)(param_1 + 0x30))" ( (binary_expression "*(int *)(*(int *)param_2 + 8) == *(int *)(param_1 + 0x30)" (pointer_expression "*(int *)(*(int *)param_2 + 8)" * (cast_expression "(int *)(*(int *)param_2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)param_2 + 8)" ( (binary_expression "*(int *)param_2 + 8" (pointer_expression "*(int *)param_2" * (cast_expression "(int *)param_2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == (pointer_expression "*(int *)(param_1 + 0x30)" * (cast_expression "(int *)(param_1 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) ))))) ))) )) && (parenthesized_expression "(*(int *)(*(int *)param_2 + 0xc) == *(int *)(param_1 + 0x34))" ( (binary_expression "*(int *)(*(int *)param_2 + 0xc) == *(int *)(param_1 + 0x34)" (pointer_expression "*(int *)(*(int *)param_2 + 0xc)" * (cast_expression "(int *)(*(int *)param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)param_2 + 0xc)" ( (binary_expression "*(int *)param_2 + 0xc" (pointer_expression "*(int *)param_2" * (cast_expression "(int *)param_2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == (pointer_expression "*(int *)(param_1 + 0x34)" * (cast_expression "(int *)(param_1 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) ))))) ))) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) }))) }) (else_clause "else {\nLAB_00295df8:\n    if (!param_4) {\nLAB_0029609c:\n      if (param_3 == 0xfff1) goto joined_r0x002960a4;\n    }\n  }" else (compound_statement "{\nLAB_00295df8:\n    if (!param_4) {\nLAB_0029609c:\n      if (param_3 == 0xfff1) goto joined_r0x002960a4;\n    }\n  }" { (labeled_statement "LAB_00295df8:\n    if (!param_4) {\nLAB_0029609c:\n      if (param_3 == 0xfff1) goto joined_r0x002960a4;\n    }" statement_identifier : (if_statement "if (!param_4) {\nLAB_0029609c:\n      if (param_3 == 0xfff1) goto joined_r0x002960a4;\n    }" if (parenthesized_expression "(!param_4)" ( (unary_expression "!param_4" ! identifier) )) (compound_statement "{\nLAB_0029609c:\n      if (param_3 == 0xfff1) goto joined_r0x002960a4;\n    }" { (labeled_statement "LAB_0029609c:\n      if (param_3 == 0xfff1) goto joined_r0x002960a4;" statement_identifier : (if_statement "if (param_3 == 0xfff1) goto joined_r0x002960a4;" if (parenthesized_expression "(param_3 == 0xfff1)" ( (binary_expression "param_3 == 0xfff1" identifier == number_literal) )) (goto_statement "goto joined_r0x002960a4;" goto statement_identifier ;))) }))) }))) (expression_statement "puVar9 = PTR_parameters_00432be0;" (assignment_expression "puVar9 = PTR_parameters_00432be0" identifier = identifier) ;) (expression_statement "piVar8 = *(int **)(*(int *)PTR_parameters_00432be0 + 0xc);" (assignment_expression "piVar8 = *(int **)(*(int *)PTR_parameters_00432be0 + 0xc)" identifier = (pointer_expression "*(int **)(*(int *)PTR_parameters_00432be0 + 0xc)" * (cast_expression "(int **)(*(int *)PTR_parameters_00432be0 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)PTR_parameters_00432be0 + 0xc)" ( (binary_expression "*(int *)PTR_parameters_00432be0 + 0xc" (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 (piVar8 == (int *)0x0) {\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + 0x3bb8);\n    return;\n  }" if (parenthesized_expression "(piVar8 == (int *)0x0)" ( (binary_expression "piVar8 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + 0x3bb8);\n    return;\n  }" { (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + 0x3bb8);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + 0x3bb8)" (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,0x69,PTR_DAT_0043226c + 0x3bb8)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5cec" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0043226c + 0x3bb8" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (if_statement "if ((*(char *)(piVar8[1] + 0xd) != '\0') &&\n     (in_stack_ffffff70 = param_7,\n     iVar3 = (**(code **)(*piVar8 + 0xac))(piVar8,param_1,param_2,param_6,param_7), iVar3 != 0)) {\n    return;\n  }" if (parenthesized_expression "((*(char *)(piVar8[1] + 0xd) != '\0') &&\n     (in_stack_ffffff70 = param_7,\n     iVar3 = (**(code **)(*piVar8 + 0xac))(piVar8,param_1,param_2,param_6,param_7), iVar3 != 0))" ( (binary_expression "(*(char *)(piVar8[1] + 0xd) != '\0') &&\n     (in_stack_ffffff70 = param_7,\n     iVar3 = (**(code **)(*piVar8 + 0xac))(piVar8,param_1,param_2,param_6,param_7), iVar3 != 0)" (parenthesized_expression "(*(char *)(piVar8[1] + 0xd) != '\0')" ( (binary_expression "*(char *)(piVar8[1] + 0xd) != '\0'" (pointer_expression "*(char *)(piVar8[1] + 0xd)" * (cast_expression "(char *)(piVar8[1] + 0xd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8[1] + 0xd)" ( (binary_expression "piVar8[1] + 0xd" (subscript_expression "piVar8[1]" identifier [ number_literal ]) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(in_stack_ffffff70 = param_7,\n     iVar3 = (**(code **)(*piVar8 + 0xac))(piVar8,param_1,param_2,param_6,param_7), iVar3 != 0)" ( (comma_expression "in_stack_ffffff70 = param_7,\n     iVar3 = (**(code **)(*piVar8 + 0xac))(piVar8,param_1,param_2,param_6,param_7), iVar3 != 0" (assignment_expression "in_stack_ffffff70 = param_7" identifier = identifier) , (comma_expression "iVar3 = (**(code **)(*piVar8 + 0xac))(piVar8,param_1,param_2,param_6,param_7), iVar3 != 0" (assignment_expression "iVar3 = (**(code **)(*piVar8 + 0xac))(piVar8,param_1,param_2,param_6,param_7)" identifier = (call_expression "(**(code **)(*piVar8 + 0xac))(piVar8,param_1,param_2,param_6,param_7)" (parenthesized_expression "(**(code **)(*piVar8 + 0xac))" ( (pointer_expression "**(code **)(*piVar8 + 0xac)" * (pointer_expression "*(code **)(*piVar8 + 0xac)" * (cast_expression "(code **)(*piVar8 + 0xac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar8 + 0xac)" ( (binary_expression "*piVar8 + 0xac" (pointer_expression "*piVar8" * identifier) + number_literal) ))))) )) (argument_list "(piVar8,param_1,param_2,param_6,param_7)" ( identifier , identifier , identifier , identifier , identifier )))) , (binary_expression "iVar3 != 0" identifier != number_literal))) ))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (if_statement "if (*(int *)(param_6 + 0x2c) < 0) {\n    if ((param_3 == 0) && ((((uint)(*(int *)(param_1 + 0x28) << 8) >> 0x1e) + 3 & 3) < 2)) {\n      return;\n    }\n    *(uint *)(param_1 + 0x28) = *(uint *)(param_1 + 0x28) & 0xffffff7f | 0x80;\n    iVar3 = (**(code **)(*(int *)param_6 + 0x14))(param_6);\n  }\n  else {\n    if (((*(byte *)(*(int *)param_2 + 4) & 0xf) == 5) &&\n       ((param_4 || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar3 == 0)))) {\n      uVar6 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + 0x3c50);\n      (*(code *)PTR_demangled_name_abi_cxx11__00433f24)(&local_78,param_1);\n      if ((*(uint *)(param_1 + 0x28) & 0xe000) != 0) {\n                    \n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24);\n        return;\n      }\n                    \n      (*(code *)PTR_gold_warning_0043245c)\n                (uVar6,local_78,*(undefined4 *)(*(int *)(param_1 + 8) + 4));\n      if (local_78 == &local_70) {\n        return;\n      }\n      operator_delete(local_78);\n      return;\n    }\n    *(uint *)(param_1 + 0x28) = *(uint *)(param_1 + 0x28) & 0xfffffeff | 0x100;\n    iVar3 = (**(code **)(*(int *)param_6 + 0x14))(param_6);\n  }" if (parenthesized_expression "(*(int *)(param_6 + 0x2c) < 0)" ( (binary_expression "*(int *)(param_6 + 0x2c) < 0" (pointer_expression "*(int *)(param_6 + 0x2c)" * (cast_expression "(int *)(param_6 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x2c)" ( (binary_expression "param_6 + 0x2c" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n    if ((param_3 == 0) && ((((uint)(*(int *)(param_1 + 0x28) << 8) >> 0x1e) + 3 & 3) < 2)) {\n      return;\n    }\n    *(uint *)(param_1 + 0x28) = *(uint *)(param_1 + 0x28) & 0xffffff7f | 0x80;\n    iVar3 = (**(code **)(*(int *)param_6 + 0x14))(param_6);\n  }" { (if_statement "if ((param_3 == 0) && ((((uint)(*(int *)(param_1 + 0x28) << 8) >> 0x1e) + 3 & 3) < 2)) {\n      return;\n    }" if (parenthesized_expression "((param_3 == 0) && ((((uint)(*(int *)(param_1 + 0x28) << 8) >> 0x1e) + 3 & 3) < 2))" ( (binary_expression "(param_3 == 0) && ((((uint)(*(int *)(param_1 + 0x28) << 8) >> 0x1e) + 3 & 3) < 2)" (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) && (parenthesized_expression "((((uint)(*(int *)(param_1 + 0x28) << 8) >> 0x1e) + 3 & 3) < 2)" ( (binary_expression "(((uint)(*(int *)(param_1 + 0x28) << 8) >> 0x1e) + 3 & 3) < 2" (parenthesized_expression "(((uint)(*(int *)(param_1 + 0x28) << 8) >> 0x1e) + 3 & 3)" ( (binary_expression "((uint)(*(int *)(param_1 + 0x28) << 8) >> 0x1e) + 3 & 3" (binary_expression "((uint)(*(int *)(param_1 + 0x28) << 8) >> 0x1e) + 3" (parenthesized_expression "((uint)(*(int *)(param_1 + 0x28) << 8) >> 0x1e)" ( (binary_expression "(uint)(*(int *)(param_1 + 0x28) << 8) >> 0x1e" (call_expression "(uint)(*(int *)(param_1 + 0x28) << 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(param_1 + 0x28) << 8)" ( (binary_expression "*(int *)(param_1 + 0x28) << 8" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) << number_literal) ))) >> number_literal) )) + number_literal) & number_literal) )) < number_literal) ))) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "*(uint *)(param_1 + 0x28) = *(uint *)(param_1 + 0x28) & 0xffffff7f | 0x80;" (assignment_expression "*(uint *)(param_1 + 0x28) = *(uint *)(param_1 + 0x28) & 0xffffff7f | 0x80" (pointer_expression "*(uint *)(param_1 + 0x28)" * (cast_expression "(uint *)(param_1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = (binary_expression "*(uint *)(param_1 + 0x28) & 0xffffff7f | 0x80" (binary_expression "*(uint *)(param_1 + 0x28) & 0xffffff7f" (pointer_expression "*(uint *)(param_1 + 0x28)" * (cast_expression "(uint *)(param_1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (expression_statement "iVar3 = (**(code **)(*(int *)param_6 + 0x14))(param_6);" (assignment_expression "iVar3 = (**(code **)(*(int *)param_6 + 0x14))(param_6)" identifier = (call_expression "(**(code **)(*(int *)param_6 + 0x14))(param_6)" (parenthesized_expression "(**(code **)(*(int *)param_6 + 0x14))" ( (pointer_expression "**(code **)(*(int *)param_6 + 0x14)" * (pointer_expression "*(code **)(*(int *)param_6 + 0x14)" * (cast_expression "(code **)(*(int *)param_6 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)param_6 + 0x14)" ( (binary_expression "*(int *)param_6 + 0x14" (pointer_expression "*(int *)param_6" * (cast_expression "(int *)param_6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(param_6)" ( identifier )))) ;) }) (else_clause "else {\n    if (((*(byte *)(*(int *)param_2 + 4) & 0xf) == 5) &&\n       ((param_4 || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar3 == 0)))) {\n      uVar6 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + 0x3c50);\n      (*(code *)PTR_demangled_name_abi_cxx11__00433f24)(&local_78,param_1);\n      if ((*(uint *)(param_1 + 0x28) & 0xe000) != 0) {\n                    \n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24);\n        return;\n      }\n                    \n      (*(code *)PTR_gold_warning_0043245c)\n                (uVar6,local_78,*(undefined4 *)(*(int *)(param_1 + 8) + 4));\n      if (local_78 == &local_70) {\n        return;\n      }\n      operator_delete(local_78);\n      return;\n    }\n    *(uint *)(param_1 + 0x28) = *(uint *)(param_1 + 0x28) & 0xfffffeff | 0x100;\n    iVar3 = (**(code **)(*(int *)param_6 + 0x14))(param_6);\n  }" else (compound_statement "{\n    if (((*(byte *)(*(int *)param_2 + 4) & 0xf) == 5) &&\n       ((param_4 || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar3 == 0)))) {\n      uVar6 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + 0x3c50);\n      (*(code *)PTR_demangled_name_abi_cxx11__00433f24)(&local_78,param_1);\n      if ((*(uint *)(param_1 + 0x28) & 0xe000) != 0) {\n                    \n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24);\n        return;\n      }\n                    \n      (*(code *)PTR_gold_warning_0043245c)\n                (uVar6,local_78,*(undefined4 *)(*(int *)(param_1 + 8) + 4));\n      if (local_78 == &local_70) {\n        return;\n      }\n      operator_delete(local_78);\n      return;\n    }\n    *(uint *)(param_1 + 0x28) = *(uint *)(param_1 + 0x28) & 0xfffffeff | 0x100;\n    iVar3 = (**(code **)(*(int *)param_6 + 0x14))(param_6);\n  }" { (if_statement "if (((*(byte *)(*(int *)param_2 + 4) & 0xf) == 5) &&\n       ((param_4 || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar3 == 0)))) {\n      uVar6 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + 0x3c50);\n      (*(code *)PTR_demangled_name_abi_cxx11__00433f24)(&local_78,param_1);\n      if ((*(uint *)(param_1 + 0x28) & 0xe000) != 0) {\n                    \n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24);\n        return;\n      }\n                    \n      (*(code *)PTR_gold_warning_0043245c)\n                (uVar6,local_78,*(undefined4 *)(*(int *)(param_1 + 8) + 4));\n      if (local_78 == &local_70) {\n        return;\n      }\n      operator_delete(local_78);\n      return;\n    }" if (parenthesized_expression "(((*(byte *)(*(int *)param_2 + 4) & 0xf) == 5) &&\n       ((param_4 || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar3 == 0))))" ( (binary_expression "((*(byte *)(*(int *)param_2 + 4) & 0xf) == 5) &&\n       ((param_4 || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar3 == 0)))" (parenthesized_expression "((*(byte *)(*(int *)param_2 + 4) & 0xf) == 5)" ( (binary_expression "(*(byte *)(*(int *)param_2 + 4) & 0xf) == 5" (parenthesized_expression "(*(byte *)(*(int *)param_2 + 4) & 0xf)" ( (binary_expression "*(byte *)(*(int *)param_2 + 4) & 0xf" (pointer_expression "*(byte *)(*(int *)param_2 + 4)" * (cast_expression "(byte *)(*(int *)param_2 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)param_2 + 4)" ( (binary_expression "*(int *)param_2 + 4" (pointer_expression "*(int *)param_2" * (cast_expression "(int *)param_2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "((param_4 || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar3 == 0)))" ( (parenthesized_expression "(param_4 || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar3 == 0))" ( (binary_expression "param_4 || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar3 == 0)" identifier || (parenthesized_expression "(iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar3 == 0)" ( (comma_expression "iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar3 == 0" (assignment_expression "iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3)" identifier = (call_expression "(*(code *)PTR_is_common_shndx_00432fe0)(param_3)" (parenthesized_expression "(*(code *)PTR_is_common_shndx_00432fe0)" ( (pointer_expression "*(code *)PTR_is_common_shndx_00432fe0" * (cast_expression "(code *)PTR_is_common_shndx_00432fe0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_3)" ( identifier )))) , (binary_expression "iVar3 == 0" identifier == number_literal)) ))) )) ))) )) (compound_statement "{\n      uVar6 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + 0x3c50);\n      (*(code *)PTR_demangled_name_abi_cxx11__00433f24)(&local_78,param_1);\n      if ((*(uint *)(param_1 + 0x28) & 0xe000) != 0) {\n                    \n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24);\n        return;\n      }\n                    \n      (*(code *)PTR_gold_warning_0043245c)\n                (uVar6,local_78,*(undefined4 *)(*(int *)(param_1 + 8) + 4));\n      if (local_78 == &local_70) {\n        return;\n      }\n      operator_delete(local_78);\n      return;\n    }" { (expression_statement "uVar6 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + 0x3c50);" (assignment_expression "uVar6 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + 0x3c50)" identifier = (call_expression "(*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + 0x3c50)" (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 + 0x3c50)" ( (binary_expression "PTR_DAT_0043226c + 0x3c50" identifier + number_literal) )))) ;) (expression_statement "(*(code *)PTR_demangled_name_abi_cxx11__00433f24)(&local_78,param_1);" (call_expression "(*(code *)PTR_demangled_name_abi_cxx11__00433f24)(&local_78,param_1)" (parenthesized_expression "(*(code *)PTR_demangled_name_abi_cxx11__00433f24)" ( (pointer_expression "*(code *)PTR_demangled_name_abi_cxx11__00433f24" * (cast_expression "(code *)PTR_demangled_name_abi_cxx11__00433f24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_78,param_1)" ( (pointer_expression "&local_78" & identifier) , identifier ))) ;) (if_statement "if ((*(uint *)(param_1 + 0x28) & 0xe000) != 0) {\n                    \n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24);\n        return;\n      }" if (parenthesized_expression "((*(uint *)(param_1 + 0x28) & 0xe000) != 0)" ( (binary_expression "(*(uint *)(param_1 + 0x28) & 0xe000) != 0" (parenthesized_expression "(*(uint *)(param_1 + 0x28) & 0xe000)" ( (binary_expression "*(uint *)(param_1 + 0x28) & 0xe000" (pointer_expression "*(uint *)(param_1 + 0x28)" * (cast_expression "(uint *)(param_1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                    \n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24);\n        return;\n      }" { (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24)" (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 + 0x3c24)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5bdc" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0043226c + 0x3c24" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (expression_statement "(*(code *)PTR_gold_warning_0043245c)\n                (uVar6,local_78,*(undefined4 *)(*(int *)(param_1 + 8) + 4));" (call_expression "(*(code *)PTR_gold_warning_0043245c)\n                (uVar6,local_78,*(undefined4 *)(*(int *)(param_1 + 8) + 4))" (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 "(uVar6,local_78,*(undefined4 *)(*(int *)(param_1 + 8) + 4))" ( identifier , identifier , (pointer_expression "*(undefined4 *)(*(int *)(param_1 + 8) + 4)" * (cast_expression "(undefined4 *)(*(int *)(param_1 + 8) + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 8) + 4)" ( (binary_expression "*(int *)(param_1 + 8) + 4" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) )))) ))) ;) (if_statement "if (local_78 == &local_70) {\n        return;\n      }" if (parenthesized_expression "(local_78 == &local_70)" ( (binary_expression "local_78 == &local_70" identifier == (pointer_expression "&local_70" & identifier)) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "operator_delete(local_78);" (call_expression "operator_delete(local_78)" identifier (argument_list "(local_78)" ( identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "*(uint *)(param_1 + 0x28) = *(uint *)(param_1 + 0x28) & 0xfffffeff | 0x100;" (assignment_expression "*(uint *)(param_1 + 0x28) = *(uint *)(param_1 + 0x28) & 0xfffffeff | 0x100" (pointer_expression "*(uint *)(param_1 + 0x28)" * (cast_expression "(uint *)(param_1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = (binary_expression "*(uint *)(param_1 + 0x28) & 0xfffffeff | 0x100" (binary_expression "*(uint *)(param_1 + 0x28) & 0xfffffeff" (pointer_expression "*(uint *)(param_1 + 0x28)" * (cast_expression "(uint *)(param_1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (expression_statement "iVar3 = (**(code **)(*(int *)param_6 + 0x14))(param_6);" (assignment_expression "iVar3 = (**(code **)(*(int *)param_6 + 0x14))(param_6)" identifier = (call_expression "(**(code **)(*(int *)param_6 + 0x14))(param_6)" (parenthesized_expression "(**(code **)(*(int *)param_6 + 0x14))" ( (pointer_expression "**(code **)(*(int *)param_6 + 0x14)" * (pointer_expression "*(code **)(*(int *)param_6 + 0x14)" * (cast_expression "(code **)(*(int *)param_6 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)param_6 + 0x14)" ( (binary_expression "*(int *)param_6 + 0x14" (pointer_expression "*(int *)param_6" * (cast_expression "(int *)param_6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(param_6)" ( identifier )))) ;) }))) (if_statement "if ((iVar3 == 0) && (-1 < *(int *)(param_6 + 0x2c))) {\n    *(uint *)(param_1 + 0x28) = *(uint *)(param_1 + 0x28) & 0xfffffffd | 2;\n  }" if (parenthesized_expression "((iVar3 == 0) && (-1 < *(int *)(param_6 + 0x2c)))" ( (binary_expression "(iVar3 == 0) && (-1 < *(int *)(param_6 + 0x2c))" (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) && (parenthesized_expression "(-1 < *(int *)(param_6 + 0x2c))" ( (binary_expression "-1 < *(int *)(param_6 + 0x2c)" number_literal < (pointer_expression "*(int *)(param_6 + 0x2c)" * (cast_expression "(int *)(param_6 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x2c)" ( (binary_expression "param_6 + 0x2c" identifier + number_literal) ))))) ))) )) (compound_statement "{\n    *(uint *)(param_1 + 0x28) = *(uint *)(param_1 + 0x28) & 0xfffffffd | 2;\n  }" { (expression_statement "*(uint *)(param_1 + 0x28) = *(uint *)(param_1 + 0x28) & 0xfffffffd | 2;" (assignment_expression "*(uint *)(param_1 + 0x28) = *(uint *)(param_1 + 0x28) & 0xfffffffd | 2" (pointer_expression "*(uint *)(param_1 + 0x28)" * (cast_expression "(uint *)(param_1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = (binary_expression "*(uint *)(param_1 + 0x28) & 0xfffffffd | 2" (binary_expression "*(uint *)(param_1 + 0x28) & 0xfffffffd" (pointer_expression "*(uint *)(param_1 + 0x28)" * (cast_expression "(uint *)(param_1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) & number_literal) | number_literal)) ;) })) (if_statement "if ((*(uint *)(param_1 + 0x28) << 0x10) >> 0x1d == 0) {\n    if ((*(uint *)(param_1 + 0x28) & 0xe000) != 0) goto LAB_0029679c;\n    iVar3 = (**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8));\n    if (iVar3 == 0) goto LAB_002963b4;\n    iVar3 = *(int *)(*(int *)puVar9 + 8);\n    if (iVar3 == 0) goto LAB_002963c4;\n    if (*(char *)(*(int *)(iVar3 + 0x594c) + 0x69) != '\0') {\n      if (((((*(uint *)(param_1 + 0x28) & 0xe000) != 0) ||\n           ((int)(*(uint *)(param_1 + 0x28) << 0x1d) < 0)) ||\n          (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(*(undefined4 *)(param_1 + 0xc)),\n          iVar5 == 0)) ||\n         ((param_4 || (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar5 == 0)))) {\n        override<64,true>(this,param_1,param_2,param_3,param_4,param_6,param_7);\n        return;\n      }\n      uVar13 = *(uint *)(param_1 + 0x38);\n      uVar12 = *(uint *)(param_1 + 0x3c);\n      uVar2 = *(uint *)(param_1 + 0x30);\n      uVar11 = *(uint *)(param_1 + 0x34);\n      override<64,true>(this,param_1,param_2,param_3,false,param_6,param_7);\n      if ((*(uint *)(param_1 + 0x38) < uVar13) ||\n         ((*(uint *)(param_1 + 0x38) == uVar13 && (*(uint *)(param_1 + 0x3c) < uVar12)))) {\n        *(uint *)(param_1 + 0x38) = uVar13;\n        *(uint *)(param_1 + 0x3c) = uVar12;\n      }\n      if (uVar2 <= *(uint *)(param_1 + 0x30)) {\n        if (*(uint *)(param_1 + 0x30) != uVar2) {\n          return;\n        }\n        if (uVar11 <= *(uint *)(param_1 + 0x34)) {\n          return;\n        }\n      }\n      *(uint *)(param_1 + 0x30) = uVar2;\n      *(uint *)(param_1 + 0x34) = uVar11;\n      return;\n    }\n  }\n  else {\nLAB_002963b4:\n    iVar3 = *(int *)(*(int *)puVar9 + 8);\n    if (iVar3 == 0) goto LAB_002963c4;\n  }" if (parenthesized_expression "((*(uint *)(param_1 + 0x28) << 0x10) >> 0x1d == 0)" ( (binary_expression "(*(uint *)(param_1 + 0x28) << 0x10) >> 0x1d == 0" (binary_expression "(*(uint *)(param_1 + 0x28) << 0x10) >> 0x1d" (parenthesized_expression "(*(uint *)(param_1 + 0x28) << 0x10)" ( (binary_expression "*(uint *)(param_1 + 0x28) << 0x10" (pointer_expression "*(uint *)(param_1 + 0x28)" * (cast_expression "(uint *)(param_1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) << number_literal) )) >> number_literal) == number_literal) )) (compound_statement "{\n    if ((*(uint *)(param_1 + 0x28) & 0xe000) != 0) goto LAB_0029679c;\n    iVar3 = (**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8));\n    if (iVar3 == 0) goto LAB_002963b4;\n    iVar3 = *(int *)(*(int *)puVar9 + 8);\n    if (iVar3 == 0) goto LAB_002963c4;\n    if (*(char *)(*(int *)(iVar3 + 0x594c) + 0x69) != '\0') {\n      if (((((*(uint *)(param_1 + 0x28) & 0xe000) != 0) ||\n           ((int)(*(uint *)(param_1 + 0x28) << 0x1d) < 0)) ||\n          (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(*(undefined4 *)(param_1 + 0xc)),\n          iVar5 == 0)) ||\n         ((param_4 || (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar5 == 0)))) {\n        override<64,true>(this,param_1,param_2,param_3,param_4,param_6,param_7);\n        return;\n      }\n      uVar13 = *(uint *)(param_1 + 0x38);\n      uVar12 = *(uint *)(param_1 + 0x3c);\n      uVar2 = *(uint *)(param_1 + 0x30);\n      uVar11 = *(uint *)(param_1 + 0x34);\n      override<64,true>(this,param_1,param_2,param_3,false,param_6,param_7);\n      if ((*(uint *)(param_1 + 0x38) < uVar13) ||\n         ((*(uint *)(param_1 + 0x38) == uVar13 && (*(uint *)(param_1 + 0x3c) < uVar12)))) {\n        *(uint *)(param_1 + 0x38) = uVar13;\n        *(uint *)(param_1 + 0x3c) = uVar12;\n      }\n      if (uVar2 <= *(uint *)(param_1 + 0x30)) {\n        if (*(uint *)(param_1 + 0x30) != uVar2) {\n          return;\n        }\n        if (uVar11 <= *(uint *)(param_1 + 0x34)) {\n          return;\n        }\n      }\n      *(uint *)(param_1 + 0x30) = uVar2;\n      *(uint *)(param_1 + 0x34) = uVar11;\n      return;\n    }\n  }" { (if_statement "if ((*(uint *)(param_1 + 0x28) & 0xe000) != 0) goto LAB_0029679c;" if (parenthesized_expression "((*(uint *)(param_1 + 0x28) & 0xe000) != 0)" ( (binary_expression "(*(uint *)(param_1 + 0x28) & 0xe000) != 0" (parenthesized_expression "(*(uint *)(param_1 + 0x28) & 0xe000)" ( (binary_expression "*(uint *)(param_1 + 0x28) & 0xe000" (pointer_expression "*(uint *)(param_1 + 0x28)" * (cast_expression "(uint *)(param_1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0029679c;" goto statement_identifier ;)) (expression_statement "iVar3 = (**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8));" (assignment_expression "iVar3 = (**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8))" identifier = (call_expression "(**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8))" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 8) + 0x14))" ( (pointer_expression "**(code **)(**(int **)(param_1 + 8) + 0x14)" * (pointer_expression "*(code **)(**(int **)(param_1 + 8) + 0x14)" * (cast_expression "(code **)(**(int **)(param_1 + 8) + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(param_1 + 8) + 0x14)" ( (binary_expression "**(int **)(param_1 + 8) + 0x14" (pointer_expression "**(int **)(param_1 + 8)" * (pointer_expression "*(int **)(param_1 + 8)" * (cast_expression "(int **)(param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(param_1 + 8))" ( (pointer_expression "*(int **)(param_1 + 8)" * (cast_expression "(int **)(param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar3 == 0) goto LAB_002963b4;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_002963b4;" goto statement_identifier ;)) (expression_statement "iVar3 = *(int *)(*(int *)puVar9 + 8);" (assignment_expression "iVar3 = *(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 (iVar3 == 0) goto LAB_002963c4;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_002963c4;" goto statement_identifier ;)) (if_statement "if (*(char *)(*(int *)(iVar3 + 0x594c) + 0x69) != '\0') {\n      if (((((*(uint *)(param_1 + 0x28) & 0xe000) != 0) ||\n           ((int)(*(uint *)(param_1 + 0x28) << 0x1d) < 0)) ||\n          (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(*(undefined4 *)(param_1 + 0xc)),\n          iVar5 == 0)) ||\n         ((param_4 || (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar5 == 0)))) {\n        override<64,true>(this,param_1,param_2,param_3,param_4,param_6,param_7);\n        return;\n      }\n      uVar13 = *(uint *)(param_1 + 0x38);\n      uVar12 = *(uint *)(param_1 + 0x3c);\n      uVar2 = *(uint *)(param_1 + 0x30);\n      uVar11 = *(uint *)(param_1 + 0x34);\n      override<64,true>(this,param_1,param_2,param_3,false,param_6,param_7);\n      if ((*(uint *)(param_1 + 0x38) < uVar13) ||\n         ((*(uint *)(param_1 + 0x38) == uVar13 && (*(uint *)(param_1 + 0x3c) < uVar12)))) {\n        *(uint *)(param_1 + 0x38) = uVar13;\n        *(uint *)(param_1 + 0x3c) = uVar12;\n      }\n      if (uVar2 <= *(uint *)(param_1 + 0x30)) {\n        if (*(uint *)(param_1 + 0x30) != uVar2) {\n          return;\n        }\n        if (uVar11 <= *(uint *)(param_1 + 0x34)) {\n          return;\n        }\n      }\n      *(uint *)(param_1 + 0x30) = uVar2;\n      *(uint *)(param_1 + 0x34) = uVar11;\n      return;\n    }" if (parenthesized_expression "(*(char *)(*(int *)(iVar3 + 0x594c) + 0x69) != '\0')" ( (binary_expression "*(char *)(*(int *)(iVar3 + 0x594c) + 0x69) != '\0'" (pointer_expression "*(char *)(*(int *)(iVar3 + 0x594c) + 0x69)" * (cast_expression "(char *)(*(int *)(iVar3 + 0x594c) + 0x69)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar3 + 0x594c) + 0x69)" ( (binary_expression "*(int *)(iVar3 + 0x594c) + 0x69" (pointer_expression "*(int *)(iVar3 + 0x594c)" * (cast_expression "(int *)(iVar3 + 0x594c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x594c)" ( (binary_expression "iVar3 + 0x594c" identifier + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if (((((*(uint *)(param_1 + 0x28) & 0xe000) != 0) ||\n           ((int)(*(uint *)(param_1 + 0x28) << 0x1d) < 0)) ||\n          (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(*(undefined4 *)(param_1 + 0xc)),\n          iVar5 == 0)) ||\n         ((param_4 || (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar5 == 0)))) {\n        override<64,true>(this,param_1,param_2,param_3,param_4,param_6,param_7);\n        return;\n      }\n      uVar13 = *(uint *)(param_1 + 0x38);\n      uVar12 = *(uint *)(param_1 + 0x3c);\n      uVar2 = *(uint *)(param_1 + 0x30);\n      uVar11 = *(uint *)(param_1 + 0x34);\n      override<64,true>(this,param_1,param_2,param_3,false,param_6,param_7);\n      if ((*(uint *)(param_1 + 0x38) < uVar13) ||\n         ((*(uint *)(param_1 + 0x38) == uVar13 && (*(uint *)(param_1 + 0x3c) < uVar12)))) {\n        *(uint *)(param_1 + 0x38) = uVar13;\n        *(uint *)(param_1 + 0x3c) = uVar12;\n      }\n      if (uVar2 <= *(uint *)(param_1 + 0x30)) {\n        if (*(uint *)(param_1 + 0x30) != uVar2) {\n          return;\n        }\n        if (uVar11 <= *(uint *)(param_1 + 0x34)) {\n          return;\n        }\n      }\n      *(uint *)(param_1 + 0x30) = uVar2;\n      *(uint *)(param_1 + 0x34) = uVar11;\n      return;\n    }" { (if_statement "if (((((*(uint *)(param_1 + 0x28) & 0xe000) != 0) ||\n           ((int)(*(uint *)(param_1 + 0x28) << 0x1d) < 0)) ||\n          (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(*(undefined4 *)(param_1 + 0xc)),\n          iVar5 == 0)) ||\n         ((param_4 || (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar5 == 0)))) {\n        override<64,true>(this,param_1,param_2,param_3,param_4,param_6,param_7);\n        return;\n      }" if (parenthesized_expression "(((((*(uint *)(param_1 + 0x28) & 0xe000) != 0) ||\n           ((int)(*(uint *)(param_1 + 0x28) << 0x1d) < 0)) ||\n          (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(*(undefined4 *)(param_1 + 0xc)),\n          iVar5 == 0)) ||\n         ((param_4 || (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar5 == 0))))" ( (binary_expression "((((*(uint *)(param_1 + 0x28) & 0xe000) != 0) ||\n           ((int)(*(uint *)(param_1 + 0x28) << 0x1d) < 0)) ||\n          (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(*(undefined4 *)(param_1 + 0xc)),\n          iVar5 == 0)) ||\n         ((param_4 || (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar5 == 0)))" (parenthesized_expression "((((*(uint *)(param_1 + 0x28) & 0xe000) != 0) ||\n           ((int)(*(uint *)(param_1 + 0x28) << 0x1d) < 0)) ||\n          (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(*(undefined4 *)(param_1 + 0xc)),\n          iVar5 == 0))" ( (binary_expression "(((*(uint *)(param_1 + 0x28) & 0xe000) != 0) ||\n           ((int)(*(uint *)(param_1 + 0x28) << 0x1d) < 0)) ||\n          (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(*(undefined4 *)(param_1 + 0xc)),\n          iVar5 == 0)" (parenthesized_expression "(((*(uint *)(param_1 + 0x28) & 0xe000) != 0) ||\n           ((int)(*(uint *)(param_1 + 0x28) << 0x1d) < 0))" ( (binary_expression "((*(uint *)(param_1 + 0x28) & 0xe000) != 0) ||\n           ((int)(*(uint *)(param_1 + 0x28) << 0x1d) < 0)" (parenthesized_expression "((*(uint *)(param_1 + 0x28) & 0xe000) != 0)" ( (binary_expression "(*(uint *)(param_1 + 0x28) & 0xe000) != 0" (parenthesized_expression "(*(uint *)(param_1 + 0x28) & 0xe000)" ( (binary_expression "*(uint *)(param_1 + 0x28) & 0xe000" (pointer_expression "*(uint *)(param_1 + 0x28)" * (cast_expression "(uint *)(param_1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) & number_literal) )) != number_literal) )) || (parenthesized_expression "((int)(*(uint *)(param_1 + 0x28) << 0x1d) < 0)" ( (binary_expression "(int)(*(uint *)(param_1 + 0x28) << 0x1d) < 0" (cast_expression "(int)(*(uint *)(param_1 + 0x28) << 0x1d)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(*(uint *)(param_1 + 0x28) << 0x1d)" ( (binary_expression "*(uint *)(param_1 + 0x28) << 0x1d" (pointer_expression "*(uint *)(param_1 + 0x28)" * (cast_expression "(uint *)(param_1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) << number_literal) ))) < number_literal) ))) )) || (parenthesized_expression "(iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(*(undefined4 *)(param_1 + 0xc)),\n          iVar5 == 0)" ( (comma_expression "iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(*(undefined4 *)(param_1 + 0xc)),\n          iVar5 == 0" (assignment_expression "iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(*(undefined4 *)(param_1 + 0xc))" identifier = (call_expression "(*(code *)PTR_is_common_shndx_00432fe0)(*(undefined4 *)(param_1 + 0xc))" (parenthesized_expression "(*(code *)PTR_is_common_shndx_00432fe0)" ( (pointer_expression "*(code *)PTR_is_common_shndx_00432fe0" * (cast_expression "(code *)PTR_is_common_shndx_00432fe0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(param_1 + 0xc))" ( (pointer_expression "*(undefined4 *)(param_1 + 0xc)" * (cast_expression "(undefined4 *)(param_1 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) )))) , (binary_expression "iVar5 == 0" identifier == number_literal)) ))) )) || (parenthesized_expression "((param_4 || (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar5 == 0)))" ( (parenthesized_expression "(param_4 || (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar5 == 0))" ( (binary_expression "param_4 || (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar5 == 0)" identifier || (parenthesized_expression "(iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar5 == 0)" ( (comma_expression "iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar5 == 0" (assignment_expression "iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3)" identifier = (call_expression "(*(code *)PTR_is_common_shndx_00432fe0)(param_3)" (parenthesized_expression "(*(code *)PTR_is_common_shndx_00432fe0)" ( (pointer_expression "*(code *)PTR_is_common_shndx_00432fe0" * (cast_expression "(code *)PTR_is_common_shndx_00432fe0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_3)" ( identifier )))) , (binary_expression "iVar5 == 0" identifier == number_literal)) ))) )) ))) )) (compound_statement "{\n        override<64,true>(this,param_1,param_2,param_3,param_4,param_6,param_7);\n        return;\n      }" { (expression_statement "override<64,true>(this,param_1,param_2,param_3,param_4,param_6,param_7);" (comma_expression "override<64,true>(this,param_1,param_2,param_3,param_4,param_6,param_7)" (binary_expression "override<64" identifier < number_literal) , (binary_expression "true>(this,param_1,param_2,param_3,param_4,param_6,param_7)" true > (parenthesized_expression "(this,param_1,param_2,param_3,param_4,param_6,param_7)" ( (comma_expression "this,param_1,param_2,param_3,param_4,param_6,param_7" identifier , (comma_expression "param_1,param_2,param_3,param_4,param_6,param_7" identifier , (comma_expression "param_2,param_3,param_4,param_6,param_7" identifier , (comma_expression "param_3,param_4,param_6,param_7" identifier , (comma_expression "param_4,param_6,param_7" identifier , (comma_expression "param_6,param_7" identifier , identifier)))))) )))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar13 = *(uint *)(param_1 + 0x38);" (assignment_expression "uVar13 = *(uint *)(param_1 + 0x38)" identifier = (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = *(uint *)(param_1 + 0x3c);" (assignment_expression "uVar12 = *(uint *)(param_1 + 0x3c)" identifier = (pointer_expression "*(uint *)(param_1 + 0x3c)" * (cast_expression "(uint *)(param_1 + 0x3c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = *(uint *)(param_1 + 0x30);" (assignment_expression "uVar2 = *(uint *)(param_1 + 0x30)" identifier = (pointer_expression "*(uint *)(param_1 + 0x30)" * (cast_expression "(uint *)(param_1 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = *(uint *)(param_1 + 0x34);" (assignment_expression "uVar11 = *(uint *)(param_1 + 0x34)" identifier = (pointer_expression "*(uint *)(param_1 + 0x34)" * (cast_expression "(uint *)(param_1 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "override<64,true>(this,param_1,param_2,param_3,false,param_6,param_7);" (comma_expression "override<64,true>(this,param_1,param_2,param_3,false,param_6,param_7)" (binary_expression "override<64" identifier < number_literal) , (binary_expression "true>(this,param_1,param_2,param_3,false,param_6,param_7)" true > (parenthesized_expression "(this,param_1,param_2,param_3,false,param_6,param_7)" ( (comma_expression "this,param_1,param_2,param_3,false,param_6,param_7" identifier , (comma_expression "param_1,param_2,param_3,false,param_6,param_7" identifier , (comma_expression "param_2,param_3,false,param_6,param_7" identifier , (comma_expression "param_3,false,param_6,param_7" identifier , (comma_expression "false,param_6,param_7" false , (comma_expression "param_6,param_7" identifier , identifier)))))) )))) ;) (if_statement "if ((*(uint *)(param_1 + 0x38) < uVar13) ||\n         ((*(uint *)(param_1 + 0x38) == uVar13 && (*(uint *)(param_1 + 0x3c) < uVar12)))) {\n        *(uint *)(param_1 + 0x38) = uVar13;\n        *(uint *)(param_1 + 0x3c) = uVar12;\n      }" if (parenthesized_expression "((*(uint *)(param_1 + 0x38) < uVar13) ||\n         ((*(uint *)(param_1 + 0x38) == uVar13 && (*(uint *)(param_1 + 0x3c) < uVar12))))" ( (binary_expression "(*(uint *)(param_1 + 0x38) < uVar13) ||\n         ((*(uint *)(param_1 + 0x38) == uVar13 && (*(uint *)(param_1 + 0x3c) < uVar12)))" (parenthesized_expression "(*(uint *)(param_1 + 0x38) < uVar13)" ( (binary_expression "*(uint *)(param_1 + 0x38) < uVar13" (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) < identifier) )) || (parenthesized_expression "((*(uint *)(param_1 + 0x38) == uVar13 && (*(uint *)(param_1 + 0x3c) < uVar12)))" ( (parenthesized_expression "(*(uint *)(param_1 + 0x38) == uVar13 && (*(uint *)(param_1 + 0x3c) < uVar12))" ( (binary_expression "*(uint *)(param_1 + 0x38) == uVar13 && (*(uint *)(param_1 + 0x3c) < uVar12)" (binary_expression "*(uint *)(param_1 + 0x38) == uVar13" (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) == identifier) && (parenthesized_expression "(*(uint *)(param_1 + 0x3c) < uVar12)" ( (binary_expression "*(uint *)(param_1 + 0x3c) < uVar12" (pointer_expression "*(uint *)(param_1 + 0x3c)" * (cast_expression "(uint *)(param_1 + 0x3c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) )))) < identifier) ))) )) ))) )) (compound_statement "{\n        *(uint *)(param_1 + 0x38) = uVar13;\n        *(uint *)(param_1 + 0x3c) = uVar12;\n      }" { (expression_statement "*(uint *)(param_1 + 0x38) = uVar13;" (assignment_expression "*(uint *)(param_1 + 0x38) = uVar13" (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(param_1 + 0x3c) = uVar12;" (assignment_expression "*(uint *)(param_1 + 0x3c) = uVar12" (pointer_expression "*(uint *)(param_1 + 0x3c)" * (cast_expression "(uint *)(param_1 + 0x3c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (uVar2 <= *(uint *)(param_1 + 0x30)) {\n        if (*(uint *)(param_1 + 0x30) != uVar2) {\n          return;\n        }\n        if (uVar11 <= *(uint *)(param_1 + 0x34)) {\n          return;\n        }\n      }" if (parenthesized_expression "(uVar2 <= *(uint *)(param_1 + 0x30))" ( (binary_expression "uVar2 <= *(uint *)(param_1 + 0x30)" identifier <= (pointer_expression "*(uint *)(param_1 + 0x30)" * (cast_expression "(uint *)(param_1 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) ))))) )) (compound_statement "{\n        if (*(uint *)(param_1 + 0x30) != uVar2) {\n          return;\n        }\n        if (uVar11 <= *(uint *)(param_1 + 0x34)) {\n          return;\n        }\n      }" { (if_statement "if (*(uint *)(param_1 + 0x30) != uVar2) {\n          return;\n        }" if (parenthesized_expression "(*(uint *)(param_1 + 0x30) != uVar2)" ( (binary_expression "*(uint *)(param_1 + 0x30) != uVar2" (pointer_expression "*(uint *)(param_1 + 0x30)" * (cast_expression "(uint *)(param_1 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (if_statement "if (uVar11 <= *(uint *)(param_1 + 0x34)) {\n          return;\n        }" if (parenthesized_expression "(uVar11 <= *(uint *)(param_1 + 0x34))" ( (binary_expression "uVar11 <= *(uint *)(param_1 + 0x34)" identifier <= (pointer_expression "*(uint *)(param_1 + 0x34)" * (cast_expression "(uint *)(param_1 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) ))))) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) })) (expression_statement "*(uint *)(param_1 + 0x30) = uVar2;" (assignment_expression "*(uint *)(param_1 + 0x30) = uVar2" (pointer_expression "*(uint *)(param_1 + 0x30)" * (cast_expression "(uint *)(param_1 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(param_1 + 0x34) = uVar11;" (assignment_expression "*(uint *)(param_1 + 0x34) = uVar11" (pointer_expression "*(uint *)(param_1 + 0x34)" * (cast_expression "(uint *)(param_1 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })) }) (else_clause "else {\nLAB_002963b4:\n    iVar3 = *(int *)(*(int *)puVar9 + 8);\n    if (iVar3 == 0) goto LAB_002963c4;\n  }" else (compound_statement "{\nLAB_002963b4:\n    iVar3 = *(int *)(*(int *)puVar9 + 8);\n    if (iVar3 == 0) goto LAB_002963c4;\n  }" { (labeled_statement "LAB_002963b4:\n    iVar3 = *(int *)(*(int *)puVar9 + 8);" statement_identifier : (expression_statement "iVar3 = *(int *)(*(int *)puVar9 + 8);" (assignment_expression "iVar3 = *(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 (iVar3 == 0) goto LAB_002963c4;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_002963c4;" goto statement_identifier ;)) }))) (if_statement "if (*(char *)(iVar3 + 0xe11) == '\0') {\nLAB_00296184:\n    local_40 = &local_78;\n    iVar5 = *(int *)param_6;\n  }\n  else {\n    iVar3 = *(int *)param_2;\n    if (((((int)(uint)*(byte *)(iVar3 + 4) >> 4 != 2) &&\n         ((uint)(*(int *)(param_1 + 0x28) << 4) >> 0x1c != 2)) || (param_5 == 0)) ||\n       ((-1 < iVar5 || (uVar13 == 0)))) goto LAB_00296184;\n    if (*(int *)(iVar3 + 0x10) == 0 && *(int *)(iVar3 + 0x14) == 0) goto LAB_00296184;\n    if ((*(int *)(param_1 + 0x38) == 0 && *(int *)(param_1 + 0x3c) == 0) ||\n       ((((*(uint *)(param_1 + 0x28) >> 0x1c == (*(byte *)(iVar3 + 4) & 0xf) &&\n          (*(int *)(param_1 + 0x38) == *(int *)(iVar3 + 0x10))) &&\n         (*(int *)(param_1 + 0x3c) == *(int *)(iVar3 + 0x14))) ||\n        ((pcVar4 = *(char **)param_1, *pcVar4 != '_' || (pcVar4[1] != 'Z')))))) goto LAB_00296184;\n    local_58 = *(undefined4 *)(iVar3 + 8);\n    local_54 = *(undefined4 *)(iVar3 + 0xc);\n    local_60 = param_6;\n    local_5c = param_5;\n    if ((*(uint *)(param_1 + 0x28) & 0xe000) != 0) {\nLAB_0029679c:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24);\n      return;\n    }\n    local_34 = (code *)PTR_operator___00435c08;\n    local_2c = (_Map_base<char_const*,std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>,std::allocator<std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>>,std::__detail::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n                *)(this + 0x128);\n    local_78 = *(undefined4 **)(param_1 + 8);\n    local_30 = &local_44;\n    local_6c = *(undefined4 *)(param_1 + 0x34);\n    local_70 = *(undefined4 *)(param_1 + 0x30);\n    local_40 = &local_78;\n    local_74 = uVar13;\n    local_44 = pcVar4;\n    local_48 = std::__detail::\n               _Map_base<char_const*,std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>,std::allocator<std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>>,std::__detail::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n               ::operator[](local_2c,local_30);\n    local_38 = &local_48;\n    local_3c = auStack_50;\n    uVar2 = (uint)in_stack_ffffff70 & 0xffffff;\n    std::\n    _Hashtable<gold::Symbol_location,gold::Symbol_location,std::allocator<gold::Symbol_location>,std::__detail::_Identity,std::equal_to<gold::Symbol_location>,gold::Symbol_location_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&,std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,true>>>>\n              (local_3c,local_48,&local_60,local_38,uVar2,1);\n    local_44 = *(char **)param_1;\n    local_48 = (*local_34)(local_2c,local_30);\n    std::\n    _Hashtable<gold::Symbol_location,gold::Symbol_location,std::allocator<gold::Symbol_location>,std::__detail::_Identity,std::equal_to<gold::Symbol_location>,gold::Symbol_location_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&,std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,true>>>>\n              (local_3c,local_48,local_40,local_38,uVar2 & 0xffffff,1);\n    iVar5 = *(int *)param_6;\n  }" if (parenthesized_expression "(*(char *)(iVar3 + 0xe11) == '\0')" ( (binary_expression "*(char *)(iVar3 + 0xe11) == '\0'" (pointer_expression "*(char *)(iVar3 + 0xe11)" * (cast_expression "(char *)(iVar3 + 0xe11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xe11)" ( (binary_expression "iVar3 + 0xe11" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_00296184:\n    local_40 = &local_78;\n    iVar5 = *(int *)param_6;\n  }" { (labeled_statement "LAB_00296184:\n    local_40 = &local_78;" statement_identifier : (expression_statement "local_40 = &local_78;" (assignment_expression "local_40 = &local_78" identifier = (pointer_expression "&local_78" & identifier)) ;)) (expression_statement "iVar5 = *(int *)param_6;" (assignment_expression "iVar5 = *(int *)param_6" identifier = (pointer_expression "*(int *)param_6" * (cast_expression "(int *)param_6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) }) (else_clause "else {\n    iVar3 = *(int *)param_2;\n    if (((((int)(uint)*(byte *)(iVar3 + 4) >> 4 != 2) &&\n         ((uint)(*(int *)(param_1 + 0x28) << 4) >> 0x1c != 2)) || (param_5 == 0)) ||\n       ((-1 < iVar5 || (uVar13 == 0)))) goto LAB_00296184;\n    if (*(int *)(iVar3 + 0x10) == 0 && *(int *)(iVar3 + 0x14) == 0) goto LAB_00296184;\n    if ((*(int *)(param_1 + 0x38) == 0 && *(int *)(param_1 + 0x3c) == 0) ||\n       ((((*(uint *)(param_1 + 0x28) >> 0x1c == (*(byte *)(iVar3 + 4) & 0xf) &&\n          (*(int *)(param_1 + 0x38) == *(int *)(iVar3 + 0x10))) &&\n         (*(int *)(param_1 + 0x3c) == *(int *)(iVar3 + 0x14))) ||\n        ((pcVar4 = *(char **)param_1, *pcVar4 != '_' || (pcVar4[1] != 'Z')))))) goto LAB_00296184;\n    local_58 = *(undefined4 *)(iVar3 + 8);\n    local_54 = *(undefined4 *)(iVar3 + 0xc);\n    local_60 = param_6;\n    local_5c = param_5;\n    if ((*(uint *)(param_1 + 0x28) & 0xe000) != 0) {\nLAB_0029679c:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24);\n      return;\n    }\n    local_34 = (code *)PTR_operator___00435c08;\n    local_2c = (_Map_base<char_const*,std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>,std::allocator<std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>>,std::__detail::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n                *)(this + 0x128);\n    local_78 = *(undefined4 **)(param_1 + 8);\n    local_30 = &local_44;\n    local_6c = *(undefined4 *)(param_1 + 0x34);\n    local_70 = *(undefined4 *)(param_1 + 0x30);\n    local_40 = &local_78;\n    local_74 = uVar13;\n    local_44 = pcVar4;\n    local_48 = std::__detail::\n               _Map_base<char_const*,std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>,std::allocator<std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>>,std::__detail::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n               ::operator[](local_2c,local_30);\n    local_38 = &local_48;\n    local_3c = auStack_50;\n    uVar2 = (uint)in_stack_ffffff70 & 0xffffff;\n    std::\n    _Hashtable<gold::Symbol_location,gold::Symbol_location,std::allocator<gold::Symbol_location>,std::__detail::_Identity,std::equal_to<gold::Symbol_location>,gold::Symbol_location_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&,std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,true>>>>\n              (local_3c,local_48,&local_60,local_38,uVar2,1);\n    local_44 = *(char **)param_1;\n    local_48 = (*local_34)(local_2c,local_30);\n    std::\n    _Hashtable<gold::Symbol_location,gold::Symbol_location,std::allocator<gold::Symbol_location>,std::__detail::_Identity,std::equal_to<gold::Symbol_location>,gold::Symbol_location_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&,std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,true>>>>\n              (local_3c,local_48,local_40,local_38,uVar2 & 0xffffff,1);\n    iVar5 = *(int *)param_6;\n  }" else (compound_statement "{\n    iVar3 = *(int *)param_2;\n    if (((((int)(uint)*(byte *)(iVar3 + 4) >> 4 != 2) &&\n         ((uint)(*(int *)(param_1 + 0x28) << 4) >> 0x1c != 2)) || (param_5 == 0)) ||\n       ((-1 < iVar5 || (uVar13 == 0)))) goto LAB_00296184;\n    if (*(int *)(iVar3 + 0x10) == 0 && *(int *)(iVar3 + 0x14) == 0) goto LAB_00296184;\n    if ((*(int *)(param_1 + 0x38) == 0 && *(int *)(param_1 + 0x3c) == 0) ||\n       ((((*(uint *)(param_1 + 0x28) >> 0x1c == (*(byte *)(iVar3 + 4) & 0xf) &&\n          (*(int *)(param_1 + 0x38) == *(int *)(iVar3 + 0x10))) &&\n         (*(int *)(param_1 + 0x3c) == *(int *)(iVar3 + 0x14))) ||\n        ((pcVar4 = *(char **)param_1, *pcVar4 != '_' || (pcVar4[1] != 'Z')))))) goto LAB_00296184;\n    local_58 = *(undefined4 *)(iVar3 + 8);\n    local_54 = *(undefined4 *)(iVar3 + 0xc);\n    local_60 = param_6;\n    local_5c = param_5;\n    if ((*(uint *)(param_1 + 0x28) & 0xe000) != 0) {\nLAB_0029679c:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24);\n      return;\n    }\n    local_34 = (code *)PTR_operator___00435c08;\n    local_2c = (_Map_base<char_const*,std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>,std::allocator<std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>>,std::__detail::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n                *)(this + 0x128);\n    local_78 = *(undefined4 **)(param_1 + 8);\n    local_30 = &local_44;\n    local_6c = *(undefined4 *)(param_1 + 0x34);\n    local_70 = *(undefined4 *)(param_1 + 0x30);\n    local_40 = &local_78;\n    local_74 = uVar13;\n    local_44 = pcVar4;\n    local_48 = std::__detail::\n               _Map_base<char_const*,std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>,std::allocator<std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>>,std::__detail::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n               ::operator[](local_2c,local_30);\n    local_38 = &local_48;\n    local_3c = auStack_50;\n    uVar2 = (uint)in_stack_ffffff70 & 0xffffff;\n    std::\n    _Hashtable<gold::Symbol_location,gold::Symbol_location,std::allocator<gold::Symbol_location>,std::__detail::_Identity,std::equal_to<gold::Symbol_location>,gold::Symbol_location_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&,std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,true>>>>\n              (local_3c,local_48,&local_60,local_38,uVar2,1);\n    local_44 = *(char **)param_1;\n    local_48 = (*local_34)(local_2c,local_30);\n    std::\n    _Hashtable<gold::Symbol_location,gold::Symbol_location,std::allocator<gold::Symbol_location>,std::__detail::_Identity,std::equal_to<gold::Symbol_location>,gold::Symbol_location_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&,std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,true>>>>\n              (local_3c,local_48,local_40,local_38,uVar2 & 0xffffff,1);\n    iVar5 = *(int *)param_6;\n  }" { (expression_statement "iVar3 = *(int *)param_2;" (assignment_expression "iVar3 = *(int *)param_2" identifier = (pointer_expression "*(int *)param_2" * (cast_expression "(int *)param_2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (((((int)(uint)*(byte *)(iVar3 + 4) >> 4 != 2) &&\n         ((uint)(*(int *)(param_1 + 0x28) << 4) >> 0x1c != 2)) || (param_5 == 0)) ||\n       ((-1 < iVar5 || (uVar13 == 0)))) goto LAB_00296184;" if (parenthesized_expression "(((((int)(uint)*(byte *)(iVar3 + 4) >> 4 != 2) &&\n         ((uint)(*(int *)(param_1 + 0x28) << 4) >> 0x1c != 2)) || (param_5 == 0)) ||\n       ((-1 < iVar5 || (uVar13 == 0))))" ( (binary_expression "((((int)(uint)*(byte *)(iVar3 + 4) >> 4 != 2) &&\n         ((uint)(*(int *)(param_1 + 0x28) << 4) >> 0x1c != 2)) || (param_5 == 0)) ||\n       ((-1 < iVar5 || (uVar13 == 0)))" (parenthesized_expression "((((int)(uint)*(byte *)(iVar3 + 4) >> 4 != 2) &&\n         ((uint)(*(int *)(param_1 + 0x28) << 4) >> 0x1c != 2)) || (param_5 == 0))" ( (binary_expression "(((int)(uint)*(byte *)(iVar3 + 4) >> 4 != 2) &&\n         ((uint)(*(int *)(param_1 + 0x28) << 4) >> 0x1c != 2)) || (param_5 == 0)" (parenthesized_expression "(((int)(uint)*(byte *)(iVar3 + 4) >> 4 != 2) &&\n         ((uint)(*(int *)(param_1 + 0x28) << 4) >> 0x1c != 2))" ( (binary_expression "((int)(uint)*(byte *)(iVar3 + 4) >> 4 != 2) &&\n         ((uint)(*(int *)(param_1 + 0x28) << 4) >> 0x1c != 2)" (parenthesized_expression "((int)(uint)*(byte *)(iVar3 + 4) >> 4 != 2)" ( (binary_expression "(int)(uint)*(byte *)(iVar3 + 4) >> 4 != 2" (binary_expression "(int)(uint)*(byte *)(iVar3 + 4) >> 4" (binary_expression "(int)(uint)*(byte *)(iVar3 + 4)" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)(iVar3 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) )))) >> number_literal) != number_literal) )) && (parenthesized_expression "((uint)(*(int *)(param_1 + 0x28) << 4) >> 0x1c != 2)" ( (binary_expression "(uint)(*(int *)(param_1 + 0x28) << 4) >> 0x1c != 2" (binary_expression "(uint)(*(int *)(param_1 + 0x28) << 4) >> 0x1c" (call_expression "(uint)(*(int *)(param_1 + 0x28) << 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(param_1 + 0x28) << 4)" ( (binary_expression "*(int *)(param_1 + 0x28) << 4" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) << number_literal) ))) >> number_literal) != number_literal) ))) )) || (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) ))) )) || (parenthesized_expression "((-1 < iVar5 || (uVar13 == 0)))" ( (parenthesized_expression "(-1 < iVar5 || (uVar13 == 0))" ( (binary_expression "-1 < iVar5 || (uVar13 == 0)" (binary_expression "-1 < iVar5" number_literal < identifier) || (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) ))) )) ))) )) (goto_statement "goto LAB_00296184;" goto statement_identifier ;)) (if_statement "if (*(int *)(iVar3 + 0x10) == 0 && *(int *)(iVar3 + 0x14) == 0) goto LAB_00296184;" if (parenthesized_expression "(*(int *)(iVar3 + 0x10) == 0 && *(int *)(iVar3 + 0x14) == 0)" ( (binary_expression "*(int *)(iVar3 + 0x10) == 0 && *(int *)(iVar3 + 0x14) == 0" (binary_expression "*(int *)(iVar3 + 0x10) == 0" (pointer_expression "*(int *)(iVar3 + 0x10)" * (cast_expression "(int *)(iVar3 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x10)" ( (binary_expression "iVar3 + 0x10" identifier + number_literal) )))) == number_literal) && (binary_expression "*(int *)(iVar3 + 0x14) == 0" (pointer_expression "*(int *)(iVar3 + 0x14)" * (cast_expression "(int *)(iVar3 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x14)" ( (binary_expression "iVar3 + 0x14" identifier + number_literal) )))) == number_literal)) )) (goto_statement "goto LAB_00296184;" goto statement_identifier ;)) (if_statement "if ((*(int *)(param_1 + 0x38) == 0 && *(int *)(param_1 + 0x3c) == 0) ||\n       ((((*(uint *)(param_1 + 0x28) >> 0x1c == (*(byte *)(iVar3 + 4) & 0xf) &&\n          (*(int *)(param_1 + 0x38) == *(int *)(iVar3 + 0x10))) &&\n         (*(int *)(param_1 + 0x3c) == *(int *)(iVar3 + 0x14))) ||\n        ((pcVar4 = *(char **)param_1, *pcVar4 != '_' || (pcVar4[1] != 'Z')))))) goto LAB_00296184;" if (parenthesized_expression "((*(int *)(param_1 + 0x38) == 0 && *(int *)(param_1 + 0x3c) == 0) ||\n       ((((*(uint *)(param_1 + 0x28) >> 0x1c == (*(byte *)(iVar3 + 4) & 0xf) &&\n          (*(int *)(param_1 + 0x38) == *(int *)(iVar3 + 0x10))) &&\n         (*(int *)(param_1 + 0x3c) == *(int *)(iVar3 + 0x14))) ||\n        ((pcVar4 = *(char **)param_1, *pcVar4 != '_' || (pcVar4[1] != 'Z'))))))" ( (binary_expression "(*(int *)(param_1 + 0x38) == 0 && *(int *)(param_1 + 0x3c) == 0) ||\n       ((((*(uint *)(param_1 + 0x28) >> 0x1c == (*(byte *)(iVar3 + 4) & 0xf) &&\n          (*(int *)(param_1 + 0x38) == *(int *)(iVar3 + 0x10))) &&\n         (*(int *)(param_1 + 0x3c) == *(int *)(iVar3 + 0x14))) ||\n        ((pcVar4 = *(char **)param_1, *pcVar4 != '_' || (pcVar4[1] != 'Z')))))" (parenthesized_expression "(*(int *)(param_1 + 0x38) == 0 && *(int *)(param_1 + 0x3c) == 0)" ( (binary_expression "*(int *)(param_1 + 0x38) == 0 && *(int *)(param_1 + 0x3c) == 0" (binary_expression "*(int *)(param_1 + 0x38) == 0" (pointer_expression "*(int *)(param_1 + 0x38)" * (cast_expression "(int *)(param_1 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) == number_literal) && (binary_expression "*(int *)(param_1 + 0x3c) == 0" (pointer_expression "*(int *)(param_1 + 0x3c)" * (cast_expression "(int *)(param_1 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) )))) == number_literal)) )) || (parenthesized_expression "((((*(uint *)(param_1 + 0x28) >> 0x1c == (*(byte *)(iVar3 + 4) & 0xf) &&\n          (*(int *)(param_1 + 0x38) == *(int *)(iVar3 + 0x10))) &&\n         (*(int *)(param_1 + 0x3c) == *(int *)(iVar3 + 0x14))) ||\n        ((pcVar4 = *(char **)param_1, *pcVar4 != '_' || (pcVar4[1] != 'Z')))))" ( (parenthesized_expression "(((*(uint *)(param_1 + 0x28) >> 0x1c == (*(byte *)(iVar3 + 4) & 0xf) &&\n          (*(int *)(param_1 + 0x38) == *(int *)(iVar3 + 0x10))) &&\n         (*(int *)(param_1 + 0x3c) == *(int *)(iVar3 + 0x14))) ||\n        ((pcVar4 = *(char **)param_1, *pcVar4 != '_' || (pcVar4[1] != 'Z'))))" ( (binary_expression "((*(uint *)(param_1 + 0x28) >> 0x1c == (*(byte *)(iVar3 + 4) & 0xf) &&\n          (*(int *)(param_1 + 0x38) == *(int *)(iVar3 + 0x10))) &&\n         (*(int *)(param_1 + 0x3c) == *(int *)(iVar3 + 0x14))) ||\n        ((pcVar4 = *(char **)param_1, *pcVar4 != '_' || (pcVar4[1] != 'Z')))" (parenthesized_expression "((*(uint *)(param_1 + 0x28) >> 0x1c == (*(byte *)(iVar3 + 4) & 0xf) &&\n          (*(int *)(param_1 + 0x38) == *(int *)(iVar3 + 0x10))) &&\n         (*(int *)(param_1 + 0x3c) == *(int *)(iVar3 + 0x14)))" ( (binary_expression "(*(uint *)(param_1 + 0x28) >> 0x1c == (*(byte *)(iVar3 + 4) & 0xf) &&\n          (*(int *)(param_1 + 0x38) == *(int *)(iVar3 + 0x10))) &&\n         (*(int *)(param_1 + 0x3c) == *(int *)(iVar3 + 0x14))" (parenthesized_expression "(*(uint *)(param_1 + 0x28) >> 0x1c == (*(byte *)(iVar3 + 4) & 0xf) &&\n          (*(int *)(param_1 + 0x38) == *(int *)(iVar3 + 0x10)))" ( (binary_expression "*(uint *)(param_1 + 0x28) >> 0x1c == (*(byte *)(iVar3 + 4) & 0xf) &&\n          (*(int *)(param_1 + 0x38) == *(int *)(iVar3 + 0x10))" (binary_expression "*(uint *)(param_1 + 0x28) >> 0x1c == (*(byte *)(iVar3 + 4) & 0xf)" (binary_expression "*(uint *)(param_1 + 0x28) >> 0x1c" (pointer_expression "*(uint *)(param_1 + 0x28)" * (cast_expression "(uint *)(param_1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) >> number_literal) == (parenthesized_expression "(*(byte *)(iVar3 + 4) & 0xf)" ( (binary_expression "*(byte *)(iVar3 + 4) & 0xf" (pointer_expression "*(byte *)(iVar3 + 4)" * (cast_expression "(byte *)(iVar3 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) )))) & number_literal) ))) && (parenthesized_expression "(*(int *)(param_1 + 0x38) == *(int *)(iVar3 + 0x10))" ( (binary_expression "*(int *)(param_1 + 0x38) == *(int *)(iVar3 + 0x10)" (pointer_expression "*(int *)(param_1 + 0x38)" * (cast_expression "(int *)(param_1 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) == (pointer_expression "*(int *)(iVar3 + 0x10)" * (cast_expression "(int *)(iVar3 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x10)" ( (binary_expression "iVar3 + 0x10" identifier + number_literal) ))))) ))) )) && (parenthesized_expression "(*(int *)(param_1 + 0x3c) == *(int *)(iVar3 + 0x14))" ( (binary_expression "*(int *)(param_1 + 0x3c) == *(int *)(iVar3 + 0x14)" (pointer_expression "*(int *)(param_1 + 0x3c)" * (cast_expression "(int *)(param_1 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) )))) == (pointer_expression "*(int *)(iVar3 + 0x14)" * (cast_expression "(int *)(iVar3 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x14)" ( (binary_expression "iVar3 + 0x14" identifier + number_literal) ))))) ))) )) || (parenthesized_expression "((pcVar4 = *(char **)param_1, *pcVar4 != '_' || (pcVar4[1] != 'Z')))" ( (parenthesized_expression "(pcVar4 = *(char **)param_1, *pcVar4 != '_' || (pcVar4[1] != 'Z'))" ( (comma_expression "pcVar4 = *(char **)param_1, *pcVar4 != '_' || (pcVar4[1] != 'Z')" (assignment_expression "pcVar4 = *(char **)param_1" identifier = (pointer_expression "*(char **)param_1" * (cast_expression "(char **)param_1" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) , (binary_expression "*pcVar4 != '_' || (pcVar4[1] != 'Z')" (binary_expression "*pcVar4 != '_'" (pointer_expression "*pcVar4" * identifier) != (char_literal "'_'" ' character ')) || (parenthesized_expression "(pcVar4[1] != 'Z')" ( (binary_expression "pcVar4[1] != 'Z'" (subscript_expression "pcVar4[1]" identifier [ number_literal ]) != (char_literal "'Z'" ' character ')) )))) )) ))) )) ))) )) (goto_statement "goto LAB_00296184;" goto statement_identifier ;)) (expression_statement "local_58 = *(undefined4 *)(iVar3 + 8);" (assignment_expression "local_58 = *(undefined4 *)(iVar3 + 8)" identifier = (pointer_expression "*(undefined4 *)(iVar3 + 8)" * (cast_expression "(undefined4 *)(iVar3 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) ))))) ;) (expression_statement "local_54 = *(undefined4 *)(iVar3 + 0xc);" (assignment_expression "local_54 = *(undefined4 *)(iVar3 + 0xc)" identifier = (pointer_expression "*(undefined4 *)(iVar3 + 0xc)" * (cast_expression "(undefined4 *)(iVar3 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "local_60 = param_6;" (assignment_expression "local_60 = param_6" identifier = identifier) ;) (expression_statement "local_5c = param_5;" (assignment_expression "local_5c = param_5" identifier = identifier) ;) (if_statement "if ((*(uint *)(param_1 + 0x28) & 0xe000) != 0) {\nLAB_0029679c:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24);\n      return;\n    }" if (parenthesized_expression "((*(uint *)(param_1 + 0x28) & 0xe000) != 0)" ( (binary_expression "(*(uint *)(param_1 + 0x28) & 0xe000) != 0" (parenthesized_expression "(*(uint *)(param_1 + 0x28) & 0xe000)" ( (binary_expression "*(uint *)(param_1 + 0x28) & 0xe000" (pointer_expression "*(uint *)(param_1 + 0x28)" * (cast_expression "(uint *)(param_1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_0029679c:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24);\n      return;\n    }" { (labeled_statement "LAB_0029679c:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24);" statement_identifier : (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24)" (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 + 0x3c24)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5bdc" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0043226c + 0x3c24" identifier + number_literal) ))) ;)) (return_statement "return;" return ;) })) (expression_statement "local_34 = (code *)PTR_operator___00435c08;" (assignment_expression "local_34 = (code *)PTR_operator___00435c08" identifier = (cast_expression "(code *)PTR_operator___00435c08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_2c = (_Map_base<char_const*,std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>,std::allocator<std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>>,std::__detail::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n                *)(this + 0x128);" (assignment_expression "local_2c = (_Map_base<char_const*,std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>,std::allocator<std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>>,std::__detail::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n                *)(this + 0x128)" identifier = (call_expression "(_Map_base<char_const*,std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>,std::allocator<std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>>,std::__detail::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n                *)(this + 0x128)" (parenthesized_expression "(_Map_base<char_const*,std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>,std::allocator<std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>>,std::__detail::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n                *)" ( (ERROR "_Map_base<char_const*,std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>,std::allocator<std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>>,std::__detail::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::" (comma_expression "_Map_base<char_const*,std" (binary_expression "_Map_base<char_const" identifier < identifier) (ERROR "*" *) , identifier) : : (comma_expression "pair<char_const*const,std" (binary_expression "pair<char_const*const" identifier < (binary_expression "char_const*const" identifier * identifier)) , identifier) : : (binary_expression "unordered_set<gold" identifier < identifier) : : (comma_expression "Symbol_location,gold" identifier , identifier) : : (comma_expression "Symbol_location_hash,std" identifier , identifier) : : (binary_expression "equal_to<gold" identifier < identifier) : : (binary_expression "Symbol_location>,std" identifier > (ERROR "," ,) identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Symbol_location>>>,std" identifier >> (ERROR ">," > ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<char_const*const,std" (binary_expression "pair<char_const*const" identifier < (binary_expression "char_const*const" identifier * identifier)) , identifier) : : (binary_expression "unordered_set<gold" identifier < identifier) : : (comma_expression "Symbol_location,gold" identifier , identifier) : : (comma_expression "Symbol_location_hash,std" identifier , identifier) : : (binary_expression "equal_to<gold" identifier < identifier) : : (binary_expression "Symbol_location>,std" identifier > (ERROR "," ,) identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Symbol_location>>>>,std" identifier >> (ERROR ">>," >> ,) identifier) : : identifier : : (comma_expression "_Select1st,std" identifier , identifier) : : (comma_expression "equal_to<char_const*>,std" (binary_expression "equal_to<char_const" identifier < identifier) (ERROR "*>" * >) , identifier) : : (comma_expression "hash<char_const*>,std" (binary_expression "hash<char_const" identifier < identifier) (ERROR "*>" * >) , identifier) : : identifier : : (comma_expression "_Mod_range_hashing,std" identifier , identifier) : : identifier : : (comma_expression "_Default_ranged_hash,std" identifier , identifier) : : identifier : : (comma_expression "_Prime_rehash_policy,std" identifier , identifier) : : identifier : :) (comma_expression "_Hashtable_traits<false,false,true>,true>\n                *" (binary_expression "_Hashtable_traits<false" identifier < false) , (comma_expression "false,true>,true>\n                *" false , (binary_expression "true>,true>\n                *" (binary_expression "true>,true" true > (ERROR "," ,) true) > (pointer_expression "*" * identifier)))) )) (argument_list "(this + 0x128)" ( (binary_expression "this + 0x128" identifier + number_literal) )))) ;) (expression_statement "local_78 = *(undefined4 **)(param_1 + 8);" (assignment_expression "local_78 = *(undefined4 **)(param_1 + 8)" identifier = (pointer_expression "*(undefined4 **)(param_1 + 8)" * (cast_expression "(undefined4 **)(param_1 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "local_30 = &local_44;" (assignment_expression "local_30 = &local_44" identifier = (pointer_expression "&local_44" & identifier)) ;) (expression_statement "local_6c = *(undefined4 *)(param_1 + 0x34);" (assignment_expression "local_6c = *(undefined4 *)(param_1 + 0x34)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x34)" * (cast_expression "(undefined4 *)(param_1 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "local_70 = *(undefined4 *)(param_1 + 0x30);" (assignment_expression "local_70 = *(undefined4 *)(param_1 + 0x30)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x30)" * (cast_expression "(undefined4 *)(param_1 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "local_40 = &local_78;" (assignment_expression "local_40 = &local_78" identifier = (pointer_expression "&local_78" & identifier)) ;) (expression_statement "local_74 = uVar13;" (assignment_expression "local_74 = uVar13" identifier = identifier) ;) (expression_statement "local_44 = pcVar4;" (assignment_expression "local_44 = pcVar4" identifier = identifier) ;) (ERROR "local_48 = std::__detail::\n               _Map_base<char_const*,std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>,std::allocator<std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>>,std::" (assignment_expression "local_48 = std" identifier = identifier) : : (comma_expression "__detail::\n               _Map_base<char_const*,std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std" identifier (ERROR "::\n               _Map_base<char_const*,std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>" : : (comma_expression "_Map_base<char_const*,std" (binary_expression "_Map_base<char_const" identifier < identifier) (ERROR "*" *) , identifier) : : (comma_expression "pair<char_const*const,std" (binary_expression "pair<char_const*const" identifier < (binary_expression "char_const*const" identifier * identifier)) , identifier) : : (binary_expression "unordered_set<gold" identifier < identifier) : : (comma_expression "Symbol_location,gold" identifier , identifier) : : (comma_expression "Symbol_location_hash,std" identifier , identifier) : : (binary_expression "equal_to<gold" identifier < identifier) : : identifier >) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Symbol_location>>>,std" identifier >> (ERROR ">," > ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<char_const*const,std" (binary_expression "pair<char_const*const" identifier < (binary_expression "char_const*const" identifier * identifier)) , identifier) : : (binary_expression "unordered_set<gold" identifier < identifier) : : (comma_expression "Symbol_location,gold" identifier , identifier) : : (comma_expression "Symbol_location_hash,std" identifier , identifier) : : (binary_expression "equal_to<gold" identifier < identifier) : : (binary_expression "Symbol_location>,std" identifier > (ERROR "," ,) identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Symbol_location>>>>,std" identifier >> (ERROR ">>," >> ,) identifier) : :) (labeled_statement "__detail::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n               ::operator[](local_2c,local_30);" statement_identifier (ERROR "::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std:" : : (comma_expression "_Select1st,std" identifier , identifier) : : (comma_expression "equal_to<char_const*>,std" (binary_expression "equal_to<char_const" identifier < identifier) (ERROR "*>" * >) , identifier) : : (comma_expression "hash<char_const*>,std" (binary_expression "hash<char_const" identifier < identifier) (ERROR "*>" * >) , identifier) :) : (labeled_statement "__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n               ::operator[](local_2c,local_30);" statement_identifier (ERROR "::_Mod_range_hashing,std:" : : (comma_expression "_Mod_range_hashing,std" identifier , identifier) :) : (labeled_statement "__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n               ::operator[](local_2c,local_30);" statement_identifier (ERROR "::_Default_ranged_hash,std:" : : (comma_expression "_Default_ranged_hash,std" identifier , identifier) :) : (labeled_statement "__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n               ::operator[](local_2c,local_30);" statement_identifier (ERROR "::_Prime_rehash_policy,std:" : : (comma_expression "_Prime_rehash_policy,std" identifier , identifier) :) : (labeled_statement "__detail::_Hashtable_traits<false,false,true>,true>\n               ::operator[](local_2c,local_30);" statement_identifier : (ERROR ":" :) (expression_statement "_Hashtable_traits<false,false,true>,true>\n               ::operator[](local_2c,local_30);" (comma_expression "_Hashtable_traits<false,false,true>,true>\n               ::operator[](local_2c,local_30)" (binary_expression "_Hashtable_traits<false" identifier < false) , (comma_expression "false,true>,true>\n               ::operator[](local_2c,local_30)" false , (binary_expression "true>,true>\n               ::operator[](local_2c,local_30)" (binary_expression "true>,true" true > (ERROR "," ,) true) > (ERROR "::" : :) (call_expression "operator[](local_2c,local_30)" (subscript_expression "operator[]" identifier [ identifier ]) (argument_list "(local_2c,local_30)" ( identifier , identifier )))))) ;)))))) (expression_statement "local_38 = &local_48;" (assignment_expression "local_38 = &local_48" identifier = (pointer_expression "&local_48" & identifier)) ;) (expression_statement "local_3c = auStack_50;" (assignment_expression "local_3c = auStack_50" identifier = identifier) ;) (expression_statement "uVar2 = (uint)in_stack_ffffff70 & 0xffffff;" (assignment_expression "uVar2 = (uint)in_stack_ffffff70 & 0xffffff" identifier = (binary_expression "(uint)in_stack_ffffff70 & 0xffffff" (cast_expression "(uint)in_stack_ffffff70" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (ERROR "std::\n    _Hashtable<gold::Symbol_location,gold::Symbol_location,std::allocator<gold::Symbol_location>,std::__detail::_Identity,std::equal_to<gold::Symbol_location>,gold::Symbol_location_hash,std::" (comma_expression "std::\n    _Hashtable<gold::Symbol_location,gold::Symbol_location,std::allocator<gold::Symbol_location>,std" identifier (ERROR "::\n    _Hashtable<gold::Symbol_location,gold::Symbol_location,std::allocator<gold::Symbol_location>" : : (binary_expression "_Hashtable<gold" identifier < identifier) : : (comma_expression "Symbol_location,gold" identifier , identifier) : : (comma_expression "Symbol_location,std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier >) , identifier) : : identifier : : (comma_expression "_Identity,std" identifier , identifier) : : (binary_expression "equal_to<gold" identifier < identifier) : : (binary_expression "Symbol_location>,gold" identifier > (ERROR "," ,) identifier) : : (comma_expression "Symbol_location_hash,std" identifier , identifier) : :) (labeled_statement "__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&,std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,true>>>>\n              (local_3c,local_48,&local_60,local_38,uVar2,1);" statement_identifier (ERROR "::_Mod_range_hashing,std:" : : (comma_expression "_Mod_range_hashing,std" identifier , identifier) :) : (labeled_statement "__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&,std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,true>>>>\n              (local_3c,local_48,&local_60,local_38,uVar2,1);" statement_identifier (ERROR "::_Default_ranged_hash,std:" : : (comma_expression "_Default_ranged_hash,std" identifier , identifier) :) : (labeled_statement "__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&,std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,true>>>>\n              (local_3c,local_48,&local_60,local_38,uVar2,1);" statement_identifier (ERROR "::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&,std:" : : (comma_expression "_Prime_rehash_policy,std" identifier , identifier) : : (comma_expression "__detail::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&,std" identifier (ERROR "::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&" : : (comma_expression "_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "true,true>>\n    ::\n    _M_insert<gold" true , (binary_expression "true>>\n    ::\n    _M_insert<gold" (binary_expression "true>>\n    ::\n    _M_insert" true >> (ERROR "::" : :) identifier) < identifier))) : : identifier &) , identifier) :) : (labeled_statement "__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,true>>>>\n              (local_3c,local_48,&local_60,local_38,uVar2,1);" statement_identifier (ERROR "::_AllocNode<std::allocator<std:" : : (binary_expression "_AllocNode<std" identifier < identifier) : : (binary_expression "allocator<std" identifier < identifier) :) : (labeled_statement "__detail::_Hash_node<gold::Symbol_location,true>>>>\n              (local_3c,local_48,&local_60,local_38,uVar2,1);" statement_identifier (ERROR "::_Hash_node<gold:" : : (binary_expression "_Hash_node<gold" identifier < identifier) :) : (expression_statement "Symbol_location,true>>>>\n              (local_3c,local_48,&local_60,local_38,uVar2,1);" (comma_expression "Symbol_location,true>>>>\n              (local_3c,local_48,&local_60,local_38,uVar2,1)" identifier , (binary_expression "true>>>>\n              (local_3c,local_48,&local_60,local_38,uVar2,1)" true >> (ERROR ">>" >>) (parenthesized_expression "(local_3c,local_48,&local_60,local_38,uVar2,1)" ( (comma_expression "local_3c,local_48,&local_60,local_38,uVar2,1" identifier , (comma_expression "local_48,&local_60,local_38,uVar2,1" identifier , (comma_expression "&local_60,local_38,uVar2,1" (pointer_expression "&local_60" & identifier) , (comma_expression "local_38,uVar2,1" identifier , (comma_expression "uVar2,1" identifier , number_literal))))) )))) ;)))))) (expression_statement "local_44 = *(char **)param_1;" (assignment_expression "local_44 = *(char **)param_1" identifier = (pointer_expression "*(char **)param_1" * (cast_expression "(char **)param_1" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "local_48 = (*local_34)(local_2c,local_30);" (assignment_expression "local_48 = (*local_34)(local_2c,local_30)" identifier = (call_expression "(*local_34)(local_2c,local_30)" (parenthesized_expression "(*local_34)" ( (pointer_expression "*local_34" * identifier) )) (argument_list "(local_2c,local_30)" ( identifier , identifier )))) ;) (ERROR "std::\n    _Hashtable<gold::Symbol_location,gold::Symbol_location,std::allocator<gold::Symbol_location>,std::__detail::_Identity,std::equal_to<gold::Symbol_location>,gold::Symbol_location_hash,std::" (comma_expression "std::\n    _Hashtable<gold::Symbol_location,gold::Symbol_location,std::allocator<gold::Symbol_location>,std" identifier (ERROR "::\n    _Hashtable<gold::Symbol_location,gold::Symbol_location,std::allocator<gold::Symbol_location>" : : (binary_expression "_Hashtable<gold" identifier < identifier) : : (comma_expression "Symbol_location,gold" identifier , identifier) : : (comma_expression "Symbol_location,std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier >) , identifier) : : identifier : : (comma_expression "_Identity,std" identifier , identifier) : : (binary_expression "equal_to<gold" identifier < identifier) : : (binary_expression "Symbol_location>,gold" identifier > (ERROR "," ,) identifier) : : (comma_expression "Symbol_location_hash,std" identifier , identifier) : :) (labeled_statement "__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&,std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,true>>>>\n              (local_3c,local_48,local_40,local_38,uVar2 & 0xffffff,1);" statement_identifier (ERROR "::_Mod_range_hashing,std:" : : (comma_expression "_Mod_range_hashing,std" identifier , identifier) :) : (labeled_statement "__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&,std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,true>>>>\n              (local_3c,local_48,local_40,local_38,uVar2 & 0xffffff,1);" statement_identifier (ERROR "::_Default_ranged_hash,std:" : : (comma_expression "_Default_ranged_hash,std" identifier , identifier) :) : (labeled_statement "__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&,std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,true>>>>\n              (local_3c,local_48,local_40,local_38,uVar2 & 0xffffff,1);" statement_identifier (ERROR "::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&,std:" : : (comma_expression "_Prime_rehash_policy,std" identifier , identifier) : : (comma_expression "__detail::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&,std" identifier (ERROR "::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&" : : (comma_expression "_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "true,true>>\n    ::\n    _M_insert<gold" true , (binary_expression "true>>\n    ::\n    _M_insert<gold" (binary_expression "true>>\n    ::\n    _M_insert" true >> (ERROR "::" : :) identifier) < identifier))) : : identifier &) , identifier) :) : (labeled_statement "__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,true>>>>\n              (local_3c,local_48,local_40,local_38,uVar2 & 0xffffff,1);" statement_identifier (ERROR "::_AllocNode<std::allocator<std:" : : (binary_expression "_AllocNode<std" identifier < identifier) : : (binary_expression "allocator<std" identifier < identifier) :) : (labeled_statement "__detail::_Hash_node<gold::Symbol_location,true>>>>\n              (local_3c,local_48,local_40,local_38,uVar2 & 0xffffff,1);" statement_identifier (ERROR "::_Hash_node<gold:" : : (binary_expression "_Hash_node<gold" identifier < identifier) :) : (expression_statement "Symbol_location,true>>>>\n              (local_3c,local_48,local_40,local_38,uVar2 & 0xffffff,1);" (comma_expression "Symbol_location,true>>>>\n              (local_3c,local_48,local_40,local_38,uVar2 & 0xffffff,1)" identifier , (binary_expression "true>>>>\n              (local_3c,local_48,local_40,local_38,uVar2 & 0xffffff,1)" true >> (ERROR ">>" >>) (parenthesized_expression "(local_3c,local_48,local_40,local_38,uVar2 & 0xffffff,1)" ( (comma_expression "local_3c,local_48,local_40,local_38,uVar2 & 0xffffff,1" identifier , (comma_expression "local_48,local_40,local_38,uVar2 & 0xffffff,1" identifier , (comma_expression "local_40,local_38,uVar2 & 0xffffff,1" identifier , (comma_expression "local_38,uVar2 & 0xffffff,1" identifier , (comma_expression "uVar2 & 0xffffff,1" (binary_expression "uVar2 & 0xffffff" identifier & number_literal) , number_literal))))) )))) ;)))))) (expression_statement "iVar5 = *(int *)param_6;" (assignment_expression "iVar5 = *(int *)param_6" identifier = (pointer_expression "*(int *)param_6" * (cast_expression "(int *)param_6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) }))) (expression_statement "iVar5 = (**(code **)(iVar5 + 0x14))(param_6);" (assignment_expression "iVar5 = (**(code **)(iVar5 + 0x14))(param_6)" identifier = (call_expression "(**(code **)(iVar5 + 0x14))(param_6)" (parenthesized_expression "(**(code **)(iVar5 + 0x14))" ( (pointer_expression "**(code **)(iVar5 + 0x14)" * (pointer_expression "*(code **)(iVar5 + 0x14)" * (cast_expression "(code **)(iVar5 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) ))))) )) (argument_list "(param_6)" ( identifier )))) ;) (if_statement "if (iVar5 == 0) {\n    uVar2 = (uint)*(byte *)(*(int *)param_2 + 4);\n    uVar13 = uVar2 & 0xf;\n  }\n  else {\n    uVar2 = (uint)*(byte *)(*(int *)param_2 + 4);\n    uVar13 = *(uint *)(param_1 + 0x28) >> 0x1c;\n  }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar2 = (uint)*(byte *)(*(int *)param_2 + 4);\n    uVar13 = uVar2 & 0xf;\n  }" { (expression_statement "uVar2 = (uint)*(byte *)(*(int *)param_2 + 4);" (assignment_expression "uVar2 = (uint)*(byte *)(*(int *)param_2 + 4)" identifier = (binary_expression "(uint)*(byte *)(*(int *)param_2 + 4)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(*(int *)param_2 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)param_2 + 4)" ( (binary_expression "*(int *)param_2 + 4" (pointer_expression "*(int *)param_2" * (cast_expression "(int *)param_2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ;) (expression_statement "uVar13 = uVar2 & 0xf;" (assignment_expression "uVar13 = uVar2 & 0xf" identifier = (binary_expression "uVar2 & 0xf" identifier & number_literal)) ;) }) (else_clause "else {\n    uVar2 = (uint)*(byte *)(*(int *)param_2 + 4);\n    uVar13 = *(uint *)(param_1 + 0x28) >> 0x1c;\n  }" else (compound_statement "{\n    uVar2 = (uint)*(byte *)(*(int *)param_2 + 4);\n    uVar13 = *(uint *)(param_1 + 0x28) >> 0x1c;\n  }" { (expression_statement "uVar2 = (uint)*(byte *)(*(int *)param_2 + 4);" (assignment_expression "uVar2 = (uint)*(byte *)(*(int *)param_2 + 4)" identifier = (binary_expression "(uint)*(byte *)(*(int *)param_2 + 4)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(*(int *)param_2 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)param_2 + 4)" ( (binary_expression "*(int *)param_2 + 4" (pointer_expression "*(int *)param_2" * (cast_expression "(int *)param_2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ;) (expression_statement "uVar13 = *(uint *)(param_1 + 0x28) >> 0x1c;" (assignment_expression "uVar13 = *(uint *)(param_1 + 0x28) >> 0x1c" identifier = (binary_expression "*(uint *)(param_1 + 0x28) >> 0x1c" (pointer_expression "*(uint *)(param_1 + 0x28)" * (cast_expression "(uint *)(param_1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) >> number_literal)) ;) }))) (expression_statement "uVar6 = FUN_00291650(uVar2 >> 4,*(uint *)(param_6 + 0x2c) >> 0x1f,param_3,param_4);" (assignment_expression "uVar6 = FUN_00291650(uVar2 >> 4,*(uint *)(param_6 + 0x2c) >> 0x1f,param_3,param_4)" identifier = (call_expression "FUN_00291650(uVar2 >> 4,*(uint *)(param_6 + 0x2c) >> 0x1f,param_3,param_4)" identifier (argument_list "(uVar2 >> 4,*(uint *)(param_6 + 0x2c) >> 0x1f,param_3,param_4)" ( (binary_expression "uVar2 >> 4" identifier >> number_literal) , (binary_expression "*(uint *)(param_6 + 0x2c) >> 0x1f" (pointer_expression "*(uint *)(param_6 + 0x2c)" * (cast_expression "(uint *)(param_6 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x2c)" ( (binary_expression "param_6 + 0x2c" identifier + number_literal) )))) >> number_literal) , identifier , identifier )))) ;) (expression_statement "local_3c = *(undefined1 **)(param_1 + 0x3c);" (assignment_expression "local_3c = *(undefined1 **)(param_1 + 0x3c)" identifier = (pointer_expression "*(undefined1 **)(param_1 + 0x3c)" * (cast_expression "(undefined1 **)(param_1 + 0x3c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = *(uint *)(param_1 + 0x38);" (assignment_expression "uVar2 = *(uint *)(param_1 + 0x38)" identifier = (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = should_override(param_1,uVar6,uVar13,0,param_6,&local_60,local_40,param_8);" (assignment_expression "iVar5 = should_override(param_1,uVar6,uVar13,0,param_6,&local_60,local_40,param_8)" identifier = (call_expression "should_override(param_1,uVar6,uVar13,0,param_6,&local_60,local_40,param_8)" identifier (argument_list "(param_1,uVar6,uVar13,0,param_6,&local_60,local_40,param_8)" ( identifier , identifier , identifier , number_literal , identifier , (pointer_expression "&local_60" & identifier) , identifier , identifier )))) ;) (if_statement "if (iVar5 == 0) {\n    iVar5 = *(int *)param_2;\n    if (local_60._0_1_ != '\0') {\n      uVar13 = *(uint *)(iVar5 + 0x10);\n      puVar10 = *(undefined1 **)(iVar5 + 0x14);\n      if ((uVar2 < uVar13) || ((uVar13 == uVar2 && (local_3c < puVar10)))) {\n        *(uint *)(param_1 + 0x38) = uVar13;\n        *(undefined1 **)(param_1 + 0x3c) = puVar10;\n      }\n      uVar13 = *(uint *)(iVar5 + 8);\n      uVar11 = *(uint *)(iVar5 + 0xc);\n      if ((*(uint *)(param_1 + 0x30) < uVar13) ||\n         ((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)))) {\n        *(uint *)(param_1 + 0x30) = uVar13;\n        *(uint *)(param_1 + 0x34) = uVar11;\n      }\n    }\n    if ((local_78._0_1_ != '\0') &&\n       ((-1 < *(int *)(param_1 + 0x2c) || (*(int *)(param_1 + 0x2c) << 1 < 0)))) {\n      param_1[0x2c] =\n           (Sized_symbol)\n           ((byte)param_1[0x2c] & 0x3f | ((int)(uint)*(byte *)(iVar5 + 4) >> 4 == 2) << 6 | 0x80);\n    }\n    bVar7 = *(byte *)(iVar5 + 5);\n    uVar13 = *(uint *)(param_1 + 0x28);\n    if (((bVar7 & 3) != 0) && (((uVar13 & 0xc00000) == 0 || ((bVar7 & 3) < (uVar13 << 8) >> 0x1e))))\n    {\n      uVar13 = uVar13 & 0xff3fffff | (bVar7 & 3) << 0x16;\n      *(uint *)(param_1 + 0x28) = uVar13;\n    }\n  }\n  else {\n    iVar5 = *(int *)(param_1 + 0x28);\n    uVar13 = *(uint *)(param_1 + 0x30);\n    uVar11 = *(uint *)(param_1 + 0x34);\n    override<64,true>(this,param_1,param_2,param_3,param_4,param_6,param_7);\n    if (local_60._0_1_ != '\0') {\n      if ((*(uint *)(param_1 + 0x38) < uVar2) ||\n         ((*(uint *)(param_1 + 0x38) == uVar2 && (*(undefined1 **)(param_1 + 0x3c) < local_3c)))) {\n        *(uint *)(param_1 + 0x38) = uVar2;\n        *(undefined1 **)(param_1 + 0x3c) = local_3c;\n      }\n      if ((*(uint *)(param_1 + 0x30) < uVar13) ||\n         ((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)))) {\n        *(uint *)(param_1 + 0x30) = uVar13;\n        *(uint *)(param_1 + 0x34) = uVar11;\n      }\n    }\n    uVar13 = *(uint *)(param_1 + 0x28);\n    if (local_78._0_1_ != '\0') {\n      if (*(int *)(param_1 + 0x2c) < 0) {\n        if (-1 < *(int *)(param_1 + 0x2c) << 1) goto LAB_002962d0;\n        SVar1 = param_1[0x2c];\n      }\n      else {\n        SVar1 = param_1[0x2c];\n      }\n      param_1[0x2c] =\n           (Sized_symbol)((byte)SVar1 & 0x3f | ((uint)(iVar5 << 4) >> 0x1c == 2) << 6 | 0x80);\n    }\n  }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar5 = *(int *)param_2;\n    if (local_60._0_1_ != '\0') {\n      uVar13 = *(uint *)(iVar5 + 0x10);\n      puVar10 = *(undefined1 **)(iVar5 + 0x14);\n      if ((uVar2 < uVar13) || ((uVar13 == uVar2 && (local_3c < puVar10)))) {\n        *(uint *)(param_1 + 0x38) = uVar13;\n        *(undefined1 **)(param_1 + 0x3c) = puVar10;\n      }\n      uVar13 = *(uint *)(iVar5 + 8);\n      uVar11 = *(uint *)(iVar5 + 0xc);\n      if ((*(uint *)(param_1 + 0x30) < uVar13) ||\n         ((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)))) {\n        *(uint *)(param_1 + 0x30) = uVar13;\n        *(uint *)(param_1 + 0x34) = uVar11;\n      }\n    }\n    if ((local_78._0_1_ != '\0') &&\n       ((-1 < *(int *)(param_1 + 0x2c) || (*(int *)(param_1 + 0x2c) << 1 < 0)))) {\n      param_1[0x2c] =\n           (Sized_symbol)\n           ((byte)param_1[0x2c] & 0x3f | ((int)(uint)*(byte *)(iVar5 + 4) >> 4 == 2) << 6 | 0x80);\n    }\n    bVar7 = *(byte *)(iVar5 + 5);\n    uVar13 = *(uint *)(param_1 + 0x28);\n    if (((bVar7 & 3) != 0) && (((uVar13 & 0xc00000) == 0 || ((bVar7 & 3) < (uVar13 << 8) >> 0x1e))))\n    {\n      uVar13 = uVar13 & 0xff3fffff | (bVar7 & 3) << 0x16;\n      *(uint *)(param_1 + 0x28) = uVar13;\n    }\n  }" { (expression_statement "iVar5 = *(int *)param_2;" (assignment_expression "iVar5 = *(int *)param_2" identifier = (pointer_expression "*(int *)param_2" * (cast_expression "(int *)param_2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (local_60._0_1_ != '\0') {\n      uVar13 = *(uint *)(iVar5 + 0x10);\n      puVar10 = *(undefined1 **)(iVar5 + 0x14);\n      if ((uVar2 < uVar13) || ((uVar13 == uVar2 && (local_3c < puVar10)))) {\n        *(uint *)(param_1 + 0x38) = uVar13;\n        *(undefined1 **)(param_1 + 0x3c) = puVar10;\n      }\n      uVar13 = *(uint *)(iVar5 + 8);\n      uVar11 = *(uint *)(iVar5 + 0xc);\n      if ((*(uint *)(param_1 + 0x30) < uVar13) ||\n         ((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)))) {\n        *(uint *)(param_1 + 0x30) = uVar13;\n        *(uint *)(param_1 + 0x34) = uVar11;\n      }\n    }" if (parenthesized_expression "(local_60._0_1_ != '\0')" ( (binary_expression "local_60._0_1_ != '\0'" (field_expression "local_60._0_1_" identifier . field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar13 = *(uint *)(iVar5 + 0x10);\n      puVar10 = *(undefined1 **)(iVar5 + 0x14);\n      if ((uVar2 < uVar13) || ((uVar13 == uVar2 && (local_3c < puVar10)))) {\n        *(uint *)(param_1 + 0x38) = uVar13;\n        *(undefined1 **)(param_1 + 0x3c) = puVar10;\n      }\n      uVar13 = *(uint *)(iVar5 + 8);\n      uVar11 = *(uint *)(iVar5 + 0xc);\n      if ((*(uint *)(param_1 + 0x30) < uVar13) ||\n         ((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)))) {\n        *(uint *)(param_1 + 0x30) = uVar13;\n        *(uint *)(param_1 + 0x34) = uVar11;\n      }\n    }" { (expression_statement "uVar13 = *(uint *)(iVar5 + 0x10);" (assignment_expression "uVar13 = *(uint *)(iVar5 + 0x10)" identifier = (pointer_expression "*(uint *)(iVar5 + 0x10)" * (cast_expression "(uint *)(iVar5 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "puVar10 = *(undefined1 **)(iVar5 + 0x14);" (assignment_expression "puVar10 = *(undefined1 **)(iVar5 + 0x14)" identifier = (pointer_expression "*(undefined1 **)(iVar5 + 0x14)" * (cast_expression "(undefined1 **)(iVar5 + 0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if ((uVar2 < uVar13) || ((uVar13 == uVar2 && (local_3c < puVar10)))) {\n        *(uint *)(param_1 + 0x38) = uVar13;\n        *(undefined1 **)(param_1 + 0x3c) = puVar10;\n      }" if (parenthesized_expression "((uVar2 < uVar13) || ((uVar13 == uVar2 && (local_3c < puVar10))))" ( (binary_expression "(uVar2 < uVar13) || ((uVar13 == uVar2 && (local_3c < puVar10)))" (parenthesized_expression "(uVar2 < uVar13)" ( (binary_expression "uVar2 < uVar13" identifier < identifier) )) || (parenthesized_expression "((uVar13 == uVar2 && (local_3c < puVar10)))" ( (parenthesized_expression "(uVar13 == uVar2 && (local_3c < puVar10))" ( (binary_expression "uVar13 == uVar2 && (local_3c < puVar10)" (binary_expression "uVar13 == uVar2" identifier == identifier) && (parenthesized_expression "(local_3c < puVar10)" ( (binary_expression "local_3c < puVar10" identifier < identifier) ))) )) ))) )) (compound_statement "{\n        *(uint *)(param_1 + 0x38) = uVar13;\n        *(undefined1 **)(param_1 + 0x3c) = puVar10;\n      }" { (expression_statement "*(uint *)(param_1 + 0x38) = uVar13;" (assignment_expression "*(uint *)(param_1 + 0x38) = uVar13" (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(param_1 + 0x3c) = puVar10;" (assignment_expression "*(undefined1 **)(param_1 + 0x3c) = puVar10" (pointer_expression "*(undefined1 **)(param_1 + 0x3c)" * (cast_expression "(undefined1 **)(param_1 + 0x3c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "uVar13 = *(uint *)(iVar5 + 8);" (assignment_expression "uVar13 = *(uint *)(iVar5 + 8)" identifier = (pointer_expression "*(uint *)(iVar5 + 8)" * (cast_expression "(uint *)(iVar5 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 8)" ( (binary_expression "iVar5 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = *(uint *)(iVar5 + 0xc);" (assignment_expression "uVar11 = *(uint *)(iVar5 + 0xc)" identifier = (pointer_expression "*(uint *)(iVar5 + 0xc)" * (cast_expression "(uint *)(iVar5 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if ((*(uint *)(param_1 + 0x30) < uVar13) ||\n         ((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)))) {\n        *(uint *)(param_1 + 0x30) = uVar13;\n        *(uint *)(param_1 + 0x34) = uVar11;\n      }" if (parenthesized_expression "((*(uint *)(param_1 + 0x30) < uVar13) ||\n         ((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11))))" ( (binary_expression "(*(uint *)(param_1 + 0x30) < uVar13) ||\n         ((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)))" (parenthesized_expression "(*(uint *)(param_1 + 0x30) < uVar13)" ( (binary_expression "*(uint *)(param_1 + 0x30) < uVar13" (pointer_expression "*(uint *)(param_1 + 0x30)" * (cast_expression "(uint *)(param_1 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) < identifier) )) || (parenthesized_expression "((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)))" ( (parenthesized_expression "(*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11))" ( (binary_expression "*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)" (binary_expression "*(uint *)(param_1 + 0x30) == uVar13" (pointer_expression "*(uint *)(param_1 + 0x30)" * (cast_expression "(uint *)(param_1 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) == identifier) && (parenthesized_expression "(*(uint *)(param_1 + 0x34) < uVar11)" ( (binary_expression "*(uint *)(param_1 + 0x34) < uVar11" (pointer_expression "*(uint *)(param_1 + 0x34)" * (cast_expression "(uint *)(param_1 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) )))) < identifier) ))) )) ))) )) (compound_statement "{\n        *(uint *)(param_1 + 0x30) = uVar13;\n        *(uint *)(param_1 + 0x34) = uVar11;\n      }" { (expression_statement "*(uint *)(param_1 + 0x30) = uVar13;" (assignment_expression "*(uint *)(param_1 + 0x30) = uVar13" (pointer_expression "*(uint *)(param_1 + 0x30)" * (cast_expression "(uint *)(param_1 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(param_1 + 0x34) = uVar11;" (assignment_expression "*(uint *)(param_1 + 0x34) = uVar11" (pointer_expression "*(uint *)(param_1 + 0x34)" * (cast_expression "(uint *)(param_1 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) )))) = identifier) ;) })) })) (if_statement "if ((local_78._0_1_ != '\0') &&\n       ((-1 < *(int *)(param_1 + 0x2c) || (*(int *)(param_1 + 0x2c) << 1 < 0)))) {\n      param_1[0x2c] =\n           (Sized_symbol)\n           ((byte)param_1[0x2c] & 0x3f | ((int)(uint)*(byte *)(iVar5 + 4) >> 4 == 2) << 6 | 0x80);\n    }" if (parenthesized_expression "((local_78._0_1_ != '\0') &&\n       ((-1 < *(int *)(param_1 + 0x2c) || (*(int *)(param_1 + 0x2c) << 1 < 0))))" ( (binary_expression "(local_78._0_1_ != '\0') &&\n       ((-1 < *(int *)(param_1 + 0x2c) || (*(int *)(param_1 + 0x2c) << 1 < 0)))" (parenthesized_expression "(local_78._0_1_ != '\0')" ( (binary_expression "local_78._0_1_ != '\0'" (field_expression "local_78._0_1_" identifier . field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "((-1 < *(int *)(param_1 + 0x2c) || (*(int *)(param_1 + 0x2c) << 1 < 0)))" ( (parenthesized_expression "(-1 < *(int *)(param_1 + 0x2c) || (*(int *)(param_1 + 0x2c) << 1 < 0))" ( (binary_expression "-1 < *(int *)(param_1 + 0x2c) || (*(int *)(param_1 + 0x2c) << 1 < 0)" (binary_expression "-1 < *(int *)(param_1 + 0x2c)" number_literal < (pointer_expression "*(int *)(param_1 + 0x2c)" * (cast_expression "(int *)(param_1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) ))))) || (parenthesized_expression "(*(int *)(param_1 + 0x2c) << 1 < 0)" ( (binary_expression "*(int *)(param_1 + 0x2c) << 1 < 0" (binary_expression "*(int *)(param_1 + 0x2c) << 1" (pointer_expression "*(int *)(param_1 + 0x2c)" * (cast_expression "(int *)(param_1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) << number_literal) < number_literal) ))) )) ))) )) (compound_statement "{\n      param_1[0x2c] =\n           (Sized_symbol)\n           ((byte)param_1[0x2c] & 0x3f | ((int)(uint)*(byte *)(iVar5 + 4) >> 4 == 2) << 6 | 0x80);\n    }" { (expression_statement "param_1[0x2c] =\n           (Sized_symbol)\n           ((byte)param_1[0x2c] & 0x3f | ((int)(uint)*(byte *)(iVar5 + 4) >> 4 == 2) << 6 | 0x80);" (assignment_expression "param_1[0x2c] =\n           (Sized_symbol)\n           ((byte)param_1[0x2c] & 0x3f | ((int)(uint)*(byte *)(iVar5 + 4) >> 4 == 2) << 6 | 0x80)" (subscript_expression "param_1[0x2c]" identifier [ number_literal ]) = (call_expression "(Sized_symbol)\n           ((byte)param_1[0x2c] & 0x3f | ((int)(uint)*(byte *)(iVar5 + 4) >> 4 == 2) << 6 | 0x80)" (parenthesized_expression "(Sized_symbol)" ( identifier )) (argument_list "((byte)param_1[0x2c] & 0x3f | ((int)(uint)*(byte *)(iVar5 + 4) >> 4 == 2) << 6 | 0x80)" ( (binary_expression "(byte)param_1[0x2c] & 0x3f | ((int)(uint)*(byte *)(iVar5 + 4) >> 4 == 2) << 6 | 0x80" (binary_expression "(byte)param_1[0x2c] & 0x3f | ((int)(uint)*(byte *)(iVar5 + 4) >> 4 == 2) << 6" (binary_expression "(byte)param_1[0x2c] & 0x3f" (cast_expression "(byte)param_1[0x2c]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0x2c]" identifier [ number_literal ])) & number_literal) | (binary_expression "((int)(uint)*(byte *)(iVar5 + 4) >> 4 == 2) << 6" (parenthesized_expression "((int)(uint)*(byte *)(iVar5 + 4) >> 4 == 2)" ( (binary_expression "(int)(uint)*(byte *)(iVar5 + 4) >> 4 == 2" (binary_expression "(int)(uint)*(byte *)(iVar5 + 4) >> 4" (binary_expression "(int)(uint)*(byte *)(iVar5 + 4)" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)(iVar5 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) )))) >> number_literal) == number_literal) )) << number_literal)) | number_literal) )))) ;) })) (expression_statement "bVar7 = *(byte *)(iVar5 + 5);" (assignment_expression "bVar7 = *(byte *)(iVar5 + 5)" identifier = (pointer_expression "*(byte *)(iVar5 + 5)" * (cast_expression "(byte *)(iVar5 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 5)" ( (binary_expression "iVar5 + 5" identifier + number_literal) ))))) ;) (expression_statement "uVar13 = *(uint *)(param_1 + 0x28);" (assignment_expression "uVar13 = *(uint *)(param_1 + 0x28)" identifier = (pointer_expression "*(uint *)(param_1 + 0x28)" * (cast_expression "(uint *)(param_1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (((bVar7 & 3) != 0) && (((uVar13 & 0xc00000) == 0 || ((bVar7 & 3) < (uVar13 << 8) >> 0x1e))))\n    {\n      uVar13 = uVar13 & 0xff3fffff | (bVar7 & 3) << 0x16;\n      *(uint *)(param_1 + 0x28) = uVar13;\n    }" if (parenthesized_expression "(((bVar7 & 3) != 0) && (((uVar13 & 0xc00000) == 0 || ((bVar7 & 3) < (uVar13 << 8) >> 0x1e))))" ( (binary_expression "((bVar7 & 3) != 0) && (((uVar13 & 0xc00000) == 0 || ((bVar7 & 3) < (uVar13 << 8) >> 0x1e)))" (parenthesized_expression "((bVar7 & 3) != 0)" ( (binary_expression "(bVar7 & 3) != 0" (parenthesized_expression "(bVar7 & 3)" ( (binary_expression "bVar7 & 3" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(((uVar13 & 0xc00000) == 0 || ((bVar7 & 3) < (uVar13 << 8) >> 0x1e)))" ( (parenthesized_expression "((uVar13 & 0xc00000) == 0 || ((bVar7 & 3) < (uVar13 << 8) >> 0x1e))" ( (binary_expression "(uVar13 & 0xc00000) == 0 || ((bVar7 & 3) < (uVar13 << 8) >> 0x1e)" (binary_expression "(uVar13 & 0xc00000) == 0" (parenthesized_expression "(uVar13 & 0xc00000)" ( (binary_expression "uVar13 & 0xc00000" identifier & number_literal) )) == number_literal) || (parenthesized_expression "((bVar7 & 3) < (uVar13 << 8) >> 0x1e)" ( (binary_expression "(bVar7 & 3) < (uVar13 << 8) >> 0x1e" (parenthesized_expression "(bVar7 & 3)" ( (binary_expression "bVar7 & 3" identifier & number_literal) )) < (binary_expression "(uVar13 << 8) >> 0x1e" (parenthesized_expression "(uVar13 << 8)" ( (binary_expression "uVar13 << 8" identifier << number_literal) )) >> number_literal)) ))) )) ))) )) (compound_statement "{\n      uVar13 = uVar13 & 0xff3fffff | (bVar7 & 3) << 0x16;\n      *(uint *)(param_1 + 0x28) = uVar13;\n    }" { (expression_statement "uVar13 = uVar13 & 0xff3fffff | (bVar7 & 3) << 0x16;" (assignment_expression "uVar13 = uVar13 & 0xff3fffff | (bVar7 & 3) << 0x16" identifier = (binary_expression "uVar13 & 0xff3fffff | (bVar7 & 3) << 0x16" (binary_expression "uVar13 & 0xff3fffff" identifier & number_literal) | (binary_expression "(bVar7 & 3) << 0x16" (parenthesized_expression "(bVar7 & 3)" ( (binary_expression "bVar7 & 3" identifier & number_literal) )) << number_literal))) ;) (expression_statement "*(uint *)(param_1 + 0x28) = uVar13;" (assignment_expression "*(uint *)(param_1 + 0x28) = uVar13" (pointer_expression "*(uint *)(param_1 + 0x28)" * (cast_expression "(uint *)(param_1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = identifier) ;) })) }) (else_clause "else {\n    iVar5 = *(int *)(param_1 + 0x28);\n    uVar13 = *(uint *)(param_1 + 0x30);\n    uVar11 = *(uint *)(param_1 + 0x34);\n    override<64,true>(this,param_1,param_2,param_3,param_4,param_6,param_7);\n    if (local_60._0_1_ != '\0') {\n      if ((*(uint *)(param_1 + 0x38) < uVar2) ||\n         ((*(uint *)(param_1 + 0x38) == uVar2 && (*(undefined1 **)(param_1 + 0x3c) < local_3c)))) {\n        *(uint *)(param_1 + 0x38) = uVar2;\n        *(undefined1 **)(param_1 + 0x3c) = local_3c;\n      }\n      if ((*(uint *)(param_1 + 0x30) < uVar13) ||\n         ((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)))) {\n        *(uint *)(param_1 + 0x30) = uVar13;\n        *(uint *)(param_1 + 0x34) = uVar11;\n      }\n    }\n    uVar13 = *(uint *)(param_1 + 0x28);\n    if (local_78._0_1_ != '\0') {\n      if (*(int *)(param_1 + 0x2c) < 0) {\n        if (-1 < *(int *)(param_1 + 0x2c) << 1) goto LAB_002962d0;\n        SVar1 = param_1[0x2c];\n      }\n      else {\n        SVar1 = param_1[0x2c];\n      }\n      param_1[0x2c] =\n           (Sized_symbol)((byte)SVar1 & 0x3f | ((uint)(iVar5 << 4) >> 0x1c == 2) << 6 | 0x80);\n    }\n  }" else (compound_statement "{\n    iVar5 = *(int *)(param_1 + 0x28);\n    uVar13 = *(uint *)(param_1 + 0x30);\n    uVar11 = *(uint *)(param_1 + 0x34);\n    override<64,true>(this,param_1,param_2,param_3,param_4,param_6,param_7);\n    if (local_60._0_1_ != '\0') {\n      if ((*(uint *)(param_1 + 0x38) < uVar2) ||\n         ((*(uint *)(param_1 + 0x38) == uVar2 && (*(undefined1 **)(param_1 + 0x3c) < local_3c)))) {\n        *(uint *)(param_1 + 0x38) = uVar2;\n        *(undefined1 **)(param_1 + 0x3c) = local_3c;\n      }\n      if ((*(uint *)(param_1 + 0x30) < uVar13) ||\n         ((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)))) {\n        *(uint *)(param_1 + 0x30) = uVar13;\n        *(uint *)(param_1 + 0x34) = uVar11;\n      }\n    }\n    uVar13 = *(uint *)(param_1 + 0x28);\n    if (local_78._0_1_ != '\0') {\n      if (*(int *)(param_1 + 0x2c) < 0) {\n        if (-1 < *(int *)(param_1 + 0x2c) << 1) goto LAB_002962d0;\n        SVar1 = param_1[0x2c];\n      }\n      else {\n        SVar1 = param_1[0x2c];\n      }\n      param_1[0x2c] =\n           (Sized_symbol)((byte)SVar1 & 0x3f | ((uint)(iVar5 << 4) >> 0x1c == 2) << 6 | 0x80);\n    }\n  }" { (expression_statement "iVar5 = *(int *)(param_1 + 0x28);" (assignment_expression "iVar5 = *(int *)(param_1 + 0x28)" identifier = (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar13 = *(uint *)(param_1 + 0x30);" (assignment_expression "uVar13 = *(uint *)(param_1 + 0x30)" identifier = (pointer_expression "*(uint *)(param_1 + 0x30)" * (cast_expression "(uint *)(param_1 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = *(uint *)(param_1 + 0x34);" (assignment_expression "uVar11 = *(uint *)(param_1 + 0x34)" identifier = (pointer_expression "*(uint *)(param_1 + 0x34)" * (cast_expression "(uint *)(param_1 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "override<64,true>(this,param_1,param_2,param_3,param_4,param_6,param_7);" (comma_expression "override<64,true>(this,param_1,param_2,param_3,param_4,param_6,param_7)" (binary_expression "override<64" identifier < number_literal) , (binary_expression "true>(this,param_1,param_2,param_3,param_4,param_6,param_7)" true > (parenthesized_expression "(this,param_1,param_2,param_3,param_4,param_6,param_7)" ( (comma_expression "this,param_1,param_2,param_3,param_4,param_6,param_7" identifier , (comma_expression "param_1,param_2,param_3,param_4,param_6,param_7" identifier , (comma_expression "param_2,param_3,param_4,param_6,param_7" identifier , (comma_expression "param_3,param_4,param_6,param_7" identifier , (comma_expression "param_4,param_6,param_7" identifier , (comma_expression "param_6,param_7" identifier , identifier)))))) )))) ;) (if_statement "if (local_60._0_1_ != '\0') {\n      if ((*(uint *)(param_1 + 0x38) < uVar2) ||\n         ((*(uint *)(param_1 + 0x38) == uVar2 && (*(undefined1 **)(param_1 + 0x3c) < local_3c)))) {\n        *(uint *)(param_1 + 0x38) = uVar2;\n        *(undefined1 **)(param_1 + 0x3c) = local_3c;\n      }\n      if ((*(uint *)(param_1 + 0x30) < uVar13) ||\n         ((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)))) {\n        *(uint *)(param_1 + 0x30) = uVar13;\n        *(uint *)(param_1 + 0x34) = uVar11;\n      }\n    }" if (parenthesized_expression "(local_60._0_1_ != '\0')" ( (binary_expression "local_60._0_1_ != '\0'" (field_expression "local_60._0_1_" identifier . field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if ((*(uint *)(param_1 + 0x38) < uVar2) ||\n         ((*(uint *)(param_1 + 0x38) == uVar2 && (*(undefined1 **)(param_1 + 0x3c) < local_3c)))) {\n        *(uint *)(param_1 + 0x38) = uVar2;\n        *(undefined1 **)(param_1 + 0x3c) = local_3c;\n      }\n      if ((*(uint *)(param_1 + 0x30) < uVar13) ||\n         ((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)))) {\n        *(uint *)(param_1 + 0x30) = uVar13;\n        *(uint *)(param_1 + 0x34) = uVar11;\n      }\n    }" { (if_statement "if ((*(uint *)(param_1 + 0x38) < uVar2) ||\n         ((*(uint *)(param_1 + 0x38) == uVar2 && (*(undefined1 **)(param_1 + 0x3c) < local_3c)))) {\n        *(uint *)(param_1 + 0x38) = uVar2;\n        *(undefined1 **)(param_1 + 0x3c) = local_3c;\n      }" if (parenthesized_expression "((*(uint *)(param_1 + 0x38) < uVar2) ||\n         ((*(uint *)(param_1 + 0x38) == uVar2 && (*(undefined1 **)(param_1 + 0x3c) < local_3c))))" ( (binary_expression "(*(uint *)(param_1 + 0x38) < uVar2) ||\n         ((*(uint *)(param_1 + 0x38) == uVar2 && (*(undefined1 **)(param_1 + 0x3c) < local_3c)))" (parenthesized_expression "(*(uint *)(param_1 + 0x38) < uVar2)" ( (binary_expression "*(uint *)(param_1 + 0x38) < uVar2" (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) < identifier) )) || (parenthesized_expression "((*(uint *)(param_1 + 0x38) == uVar2 && (*(undefined1 **)(param_1 + 0x3c) < local_3c)))" ( (parenthesized_expression "(*(uint *)(param_1 + 0x38) == uVar2 && (*(undefined1 **)(param_1 + 0x3c) < local_3c))" ( (binary_expression "*(uint *)(param_1 + 0x38) == uVar2 && (*(undefined1 **)(param_1 + 0x3c) < local_3c)" (binary_expression "*(uint *)(param_1 + 0x38) == uVar2" (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) == identifier) && (parenthesized_expression "(*(undefined1 **)(param_1 + 0x3c) < local_3c)" ( (binary_expression "*(undefined1 **)(param_1 + 0x3c) < local_3c" (pointer_expression "*(undefined1 **)(param_1 + 0x3c)" * (cast_expression "(undefined1 **)(param_1 + 0x3c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) )))) < identifier) ))) )) ))) )) (compound_statement "{\n        *(uint *)(param_1 + 0x38) = uVar2;\n        *(undefined1 **)(param_1 + 0x3c) = local_3c;\n      }" { (expression_statement "*(uint *)(param_1 + 0x38) = uVar2;" (assignment_expression "*(uint *)(param_1 + 0x38) = uVar2" (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(param_1 + 0x3c) = local_3c;" (assignment_expression "*(undefined1 **)(param_1 + 0x3c) = local_3c" (pointer_expression "*(undefined1 **)(param_1 + 0x3c)" * (cast_expression "(undefined1 **)(param_1 + 0x3c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if ((*(uint *)(param_1 + 0x30) < uVar13) ||\n         ((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)))) {\n        *(uint *)(param_1 + 0x30) = uVar13;\n        *(uint *)(param_1 + 0x34) = uVar11;\n      }" if (parenthesized_expression "((*(uint *)(param_1 + 0x30) < uVar13) ||\n         ((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11))))" ( (binary_expression "(*(uint *)(param_1 + 0x30) < uVar13) ||\n         ((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)))" (parenthesized_expression "(*(uint *)(param_1 + 0x30) < uVar13)" ( (binary_expression "*(uint *)(param_1 + 0x30) < uVar13" (pointer_expression "*(uint *)(param_1 + 0x30)" * (cast_expression "(uint *)(param_1 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) < identifier) )) || (parenthesized_expression "((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)))" ( (parenthesized_expression "(*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11))" ( (binary_expression "*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)" (binary_expression "*(uint *)(param_1 + 0x30) == uVar13" (pointer_expression "*(uint *)(param_1 + 0x30)" * (cast_expression "(uint *)(param_1 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) == identifier) && (parenthesized_expression "(*(uint *)(param_1 + 0x34) < uVar11)" ( (binary_expression "*(uint *)(param_1 + 0x34) < uVar11" (pointer_expression "*(uint *)(param_1 + 0x34)" * (cast_expression "(uint *)(param_1 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) )))) < identifier) ))) )) ))) )) (compound_statement "{\n        *(uint *)(param_1 + 0x30) = uVar13;\n        *(uint *)(param_1 + 0x34) = uVar11;\n      }" { (expression_statement "*(uint *)(param_1 + 0x30) = uVar13;" (assignment_expression "*(uint *)(param_1 + 0x30) = uVar13" (pointer_expression "*(uint *)(param_1 + 0x30)" * (cast_expression "(uint *)(param_1 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(param_1 + 0x34) = uVar11;" (assignment_expression "*(uint *)(param_1 + 0x34) = uVar11" (pointer_expression "*(uint *)(param_1 + 0x34)" * (cast_expression "(uint *)(param_1 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) )))) = identifier) ;) })) })) (expression_statement "uVar13 = *(uint *)(param_1 + 0x28);" (assignment_expression "uVar13 = *(uint *)(param_1 + 0x28)" identifier = (pointer_expression "*(uint *)(param_1 + 0x28)" * (cast_expression "(uint *)(param_1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (local_78._0_1_ != '\0') {\n      if (*(int *)(param_1 + 0x2c) < 0) {\n        if (-1 < *(int *)(param_1 + 0x2c) << 1) goto LAB_002962d0;\n        SVar1 = param_1[0x2c];\n      }\n      else {\n        SVar1 = param_1[0x2c];\n      }\n      param_1[0x2c] =\n           (Sized_symbol)((byte)SVar1 & 0x3f | ((uint)(iVar5 << 4) >> 0x1c == 2) << 6 | 0x80);\n    }" if (parenthesized_expression "(local_78._0_1_ != '\0')" ( (binary_expression "local_78._0_1_ != '\0'" (field_expression "local_78._0_1_" identifier . field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if (*(int *)(param_1 + 0x2c) < 0) {\n        if (-1 < *(int *)(param_1 + 0x2c) << 1) goto LAB_002962d0;\n        SVar1 = param_1[0x2c];\n      }\n      else {\n        SVar1 = param_1[0x2c];\n      }\n      param_1[0x2c] =\n           (Sized_symbol)((byte)SVar1 & 0x3f | ((uint)(iVar5 << 4) >> 0x1c == 2) << 6 | 0x80);\n    }" { (if_statement "if (*(int *)(param_1 + 0x2c) < 0) {\n        if (-1 < *(int *)(param_1 + 0x2c) << 1) goto LAB_002962d0;\n        SVar1 = param_1[0x2c];\n      }\n      else {\n        SVar1 = param_1[0x2c];\n      }" if (parenthesized_expression "(*(int *)(param_1 + 0x2c) < 0)" ( (binary_expression "*(int *)(param_1 + 0x2c) < 0" (pointer_expression "*(int *)(param_1 + 0x2c)" * (cast_expression "(int *)(param_1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n        if (-1 < *(int *)(param_1 + 0x2c) << 1) goto LAB_002962d0;\n        SVar1 = param_1[0x2c];\n      }" { (if_statement "if (-1 < *(int *)(param_1 + 0x2c) << 1) goto LAB_002962d0;" if (parenthesized_expression "(-1 < *(int *)(param_1 + 0x2c) << 1)" ( (binary_expression "-1 < *(int *)(param_1 + 0x2c) << 1" number_literal < (binary_expression "*(int *)(param_1 + 0x2c) << 1" (pointer_expression "*(int *)(param_1 + 0x2c)" * (cast_expression "(int *)(param_1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) << number_literal)) )) (goto_statement "goto LAB_002962d0;" goto statement_identifier ;)) (expression_statement "SVar1 = param_1[0x2c];" (assignment_expression "SVar1 = param_1[0x2c]" identifier = (subscript_expression "param_1[0x2c]" identifier [ number_literal ])) ;) }) (else_clause "else {\n        SVar1 = param_1[0x2c];\n      }" else (compound_statement "{\n        SVar1 = param_1[0x2c];\n      }" { (expression_statement "SVar1 = param_1[0x2c];" (assignment_expression "SVar1 = param_1[0x2c]" identifier = (subscript_expression "param_1[0x2c]" identifier [ number_literal ])) ;) }))) (expression_statement "param_1[0x2c] =\n           (Sized_symbol)((byte)SVar1 & 0x3f | ((uint)(iVar5 << 4) >> 0x1c == 2) << 6 | 0x80);" (assignment_expression "param_1[0x2c] =\n           (Sized_symbol)((byte)SVar1 & 0x3f | ((uint)(iVar5 << 4) >> 0x1c == 2) << 6 | 0x80)" (subscript_expression "param_1[0x2c]" identifier [ number_literal ]) = (call_expression "(Sized_symbol)((byte)SVar1 & 0x3f | ((uint)(iVar5 << 4) >> 0x1c == 2) << 6 | 0x80)" (parenthesized_expression "(Sized_symbol)" ( identifier )) (argument_list "((byte)SVar1 & 0x3f | ((uint)(iVar5 << 4) >> 0x1c == 2) << 6 | 0x80)" ( (binary_expression "(byte)SVar1 & 0x3f | ((uint)(iVar5 << 4) >> 0x1c == 2) << 6 | 0x80" (binary_expression "(byte)SVar1 & 0x3f | ((uint)(iVar5 << 4) >> 0x1c == 2) << 6" (binary_expression "(byte)SVar1 & 0x3f" (cast_expression "(byte)SVar1" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) | (binary_expression "((uint)(iVar5 << 4) >> 0x1c == 2) << 6" (parenthesized_expression "((uint)(iVar5 << 4) >> 0x1c == 2)" ( (binary_expression "(uint)(iVar5 << 4) >> 0x1c == 2" (binary_expression "(uint)(iVar5 << 4) >> 0x1c" (call_expression "(uint)(iVar5 << 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar5 << 4)" ( (binary_expression "iVar5 << 4" identifier << number_literal) ))) >> number_literal) == number_literal) )) << number_literal)) | number_literal) )))) ;) })) }))) (labeled_statement "LAB_002962d0:\n  if (((((uVar13 & 0xe000) == 0) && (iVar5 = *(int *)(param_1 + 8), *(int *)(iVar5 + 0x2c) < 0)) &&\n      (*(int *)(param_1 + 0x28) << 0x17 < 0)) && (-1 < *(int *)(param_1 + 0x2c) << 1)) {\n    *(byte *)(iVar5 + 0x2c) = *(byte *)(iVar5 + 0x2c) & 0xbf | 0x40;\n  }" statement_identifier : (if_statement "if (((((uVar13 & 0xe000) == 0) && (iVar5 = *(int *)(param_1 + 8), *(int *)(iVar5 + 0x2c) < 0)) &&\n      (*(int *)(param_1 + 0x28) << 0x17 < 0)) && (-1 < *(int *)(param_1 + 0x2c) << 1)) {\n    *(byte *)(iVar5 + 0x2c) = *(byte *)(iVar5 + 0x2c) & 0xbf | 0x40;\n  }" if (parenthesized_expression "(((((uVar13 & 0xe000) == 0) && (iVar5 = *(int *)(param_1 + 8), *(int *)(iVar5 + 0x2c) < 0)) &&\n      (*(int *)(param_1 + 0x28) << 0x17 < 0)) && (-1 < *(int *)(param_1 + 0x2c) << 1))" ( (binary_expression "((((uVar13 & 0xe000) == 0) && (iVar5 = *(int *)(param_1 + 8), *(int *)(iVar5 + 0x2c) < 0)) &&\n      (*(int *)(param_1 + 0x28) << 0x17 < 0)) && (-1 < *(int *)(param_1 + 0x2c) << 1)" (parenthesized_expression "((((uVar13 & 0xe000) == 0) && (iVar5 = *(int *)(param_1 + 8), *(int *)(iVar5 + 0x2c) < 0)) &&\n      (*(int *)(param_1 + 0x28) << 0x17 < 0))" ( (binary_expression "(((uVar13 & 0xe000) == 0) && (iVar5 = *(int *)(param_1 + 8), *(int *)(iVar5 + 0x2c) < 0)) &&\n      (*(int *)(param_1 + 0x28) << 0x17 < 0)" (parenthesized_expression "(((uVar13 & 0xe000) == 0) && (iVar5 = *(int *)(param_1 + 8), *(int *)(iVar5 + 0x2c) < 0))" ( (binary_expression "((uVar13 & 0xe000) == 0) && (iVar5 = *(int *)(param_1 + 8), *(int *)(iVar5 + 0x2c) < 0)" (parenthesized_expression "((uVar13 & 0xe000) == 0)" ( (binary_expression "(uVar13 & 0xe000) == 0" (parenthesized_expression "(uVar13 & 0xe000)" ( (binary_expression "uVar13 & 0xe000" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(iVar5 = *(int *)(param_1 + 8), *(int *)(iVar5 + 0x2c) < 0)" ( (comma_expression "iVar5 = *(int *)(param_1 + 8), *(int *)(iVar5 + 0x2c) < 0" (assignment_expression "iVar5 = *(int *)(param_1 + 8)" identifier = (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) , (binary_expression "*(int *)(iVar5 + 0x2c) < 0" (pointer_expression "*(int *)(iVar5 + 0x2c)" * (cast_expression "(int *)(iVar5 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2c)" ( (binary_expression "iVar5 + 0x2c" identifier + number_literal) )))) < number_literal)) ))) )) && (parenthesized_expression "(*(int *)(param_1 + 0x28) << 0x17 < 0)" ( (binary_expression "*(int *)(param_1 + 0x28) << 0x17 < 0" (binary_expression "*(int *)(param_1 + 0x28) << 0x17" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) << number_literal) < number_literal) ))) )) && (parenthesized_expression "(-1 < *(int *)(param_1 + 0x2c) << 1)" ( (binary_expression "-1 < *(int *)(param_1 + 0x2c) << 1" number_literal < (binary_expression "*(int *)(param_1 + 0x2c) << 1" (pointer_expression "*(int *)(param_1 + 0x2c)" * (cast_expression "(int *)(param_1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) << number_literal)) ))) )) (compound_statement "{\n    *(byte *)(iVar5 + 0x2c) = *(byte *)(iVar5 + 0x2c) & 0xbf | 0x40;\n  }" { (expression_statement "*(byte *)(iVar5 + 0x2c) = *(byte *)(iVar5 + 0x2c) & 0xbf | 0x40;" (assignment_expression "*(byte *)(iVar5 + 0x2c) = *(byte *)(iVar5 + 0x2c) & 0xbf | 0x40" (pointer_expression "*(byte *)(iVar5 + 0x2c)" * (cast_expression "(byte *)(iVar5 + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2c)" ( (binary_expression "iVar5 + 0x2c" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar5 + 0x2c) & 0xbf | 0x40" (binary_expression "*(byte *)(iVar5 + 0x2c) & 0xbf" (pointer_expression "*(byte *)(iVar5 + 0x2c)" * (cast_expression "(byte *)(iVar5 + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2c)" ( (binary_expression "iVar5 + 0x2c" identifier + number_literal) )))) & number_literal) | number_literal)) ;) }))) (if_statement "if (local_60._0_1_ != '\0') {\n    if (*(int *)(*(int *)puVar9 + 8) == 0) {\nLAB_002963c4:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + 0x3c1c);\n      return;\n    }\n    if (*(char *)(*(int *)(*(int *)puVar9 + 8) + 0x43f5) != '\0') {\n      uVar13 = *(uint *)(*(int *)param_2 + 0x10);\n      puVar10 = *(undefined1 **)(*(int *)param_2 + 0x14);\n      if ((uVar13 < uVar2) || ((uVar2 == uVar13 && (puVar10 < local_3c)))) {\n        puVar9 = PTR_DAT_0043226c + 0x3c88;\n      }\n      else if ((uVar2 < uVar13) || ((uVar13 == uVar2 && (local_3c < puVar10)))) {\n        puVar9 = PTR_DAT_0043226c + 0x3cb4;\n      }\n      else {\n        puVar9 = PTR_DAT_0043226c + 0x3ce0;\n      }\n      uVar6 = (*(code *)PTR_gettext_00436818)(puVar9);\n      report_resolve_problem(0,uVar6,param_1,0,param_6);\n      return;\n    }\n  }" if (parenthesized_expression "(local_60._0_1_ != '\0')" ( (binary_expression "local_60._0_1_ != '\0'" (field_expression "local_60._0_1_" identifier . field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    if (*(int *)(*(int *)puVar9 + 8) == 0) {\nLAB_002963c4:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + 0x3c1c);\n      return;\n    }\n    if (*(char *)(*(int *)(*(int *)puVar9 + 8) + 0x43f5) != '\0') {\n      uVar13 = *(uint *)(*(int *)param_2 + 0x10);\n      puVar10 = *(undefined1 **)(*(int *)param_2 + 0x14);\n      if ((uVar13 < uVar2) || ((uVar2 == uVar13 && (puVar10 < local_3c)))) {\n        puVar9 = PTR_DAT_0043226c + 0x3c88;\n      }\n      else if ((uVar2 < uVar13) || ((uVar13 == uVar2 && (local_3c < puVar10)))) {\n        puVar9 = PTR_DAT_0043226c + 0x3cb4;\n      }\n      else {\n        puVar9 = PTR_DAT_0043226c + 0x3ce0;\n      }\n      uVar6 = (*(code *)PTR_gettext_00436818)(puVar9);\n      report_resolve_problem(0,uVar6,param_1,0,param_6);\n      return;\n    }\n  }" { (if_statement "if (*(int *)(*(int *)puVar9 + 8) == 0) {\nLAB_002963c4:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + 0x3c1c);\n      return;\n    }" if (parenthesized_expression "(*(int *)(*(int *)puVar9 + 8) == 0)" ( (binary_expression "*(int *)(*(int *)puVar9 + 8) == 0" (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) )))) == number_literal) )) (compound_statement "{\nLAB_002963c4:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + 0x3c1c);\n      return;\n    }" { (labeled_statement "LAB_002963c4:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + 0x3c1c);" statement_identifier : (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + 0x3c1c);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + 0x3c1c)" (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 + 0x3c1c)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5cec" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0043226c + 0x3c1c" identifier + number_literal) ))) ;)) (return_statement "return;" return ;) })) (if_statement "if (*(char *)(*(int *)(*(int *)puVar9 + 8) + 0x43f5) != '\0') {\n      uVar13 = *(uint *)(*(int *)param_2 + 0x10);\n      puVar10 = *(undefined1 **)(*(int *)param_2 + 0x14);\n      if ((uVar13 < uVar2) || ((uVar2 == uVar13 && (puVar10 < local_3c)))) {\n        puVar9 = PTR_DAT_0043226c + 0x3c88;\n      }\n      else if ((uVar2 < uVar13) || ((uVar13 == uVar2 && (local_3c < puVar10)))) {\n        puVar9 = PTR_DAT_0043226c + 0x3cb4;\n      }\n      else {\n        puVar9 = PTR_DAT_0043226c + 0x3ce0;\n      }\n      uVar6 = (*(code *)PTR_gettext_00436818)(puVar9);\n      report_resolve_problem(0,uVar6,param_1,0,param_6);\n      return;\n    }" if (parenthesized_expression "(*(char *)(*(int *)(*(int *)puVar9 + 8) + 0x43f5) != '\0')" ( (binary_expression "*(char *)(*(int *)(*(int *)puVar9 + 8) + 0x43f5) != '\0'" (pointer_expression "*(char *)(*(int *)(*(int *)puVar9 + 8) + 0x43f5)" * (cast_expression "(char *)(*(int *)(*(int *)puVar9 + 8) + 0x43f5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)puVar9 + 8) + 0x43f5)" ( (binary_expression "*(int *)(*(int *)puVar9 + 8) + 0x43f5" (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) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar13 = *(uint *)(*(int *)param_2 + 0x10);\n      puVar10 = *(undefined1 **)(*(int *)param_2 + 0x14);\n      if ((uVar13 < uVar2) || ((uVar2 == uVar13 && (puVar10 < local_3c)))) {\n        puVar9 = PTR_DAT_0043226c + 0x3c88;\n      }\n      else if ((uVar2 < uVar13) || ((uVar13 == uVar2 && (local_3c < puVar10)))) {\n        puVar9 = PTR_DAT_0043226c + 0x3cb4;\n      }\n      else {\n        puVar9 = PTR_DAT_0043226c + 0x3ce0;\n      }\n      uVar6 = (*(code *)PTR_gettext_00436818)(puVar9);\n      report_resolve_problem(0,uVar6,param_1,0,param_6);\n      return;\n    }" { (expression_statement "uVar13 = *(uint *)(*(int *)param_2 + 0x10);" (assignment_expression "uVar13 = *(uint *)(*(int *)param_2 + 0x10)" identifier = (pointer_expression "*(uint *)(*(int *)param_2 + 0x10)" * (cast_expression "(uint *)(*(int *)param_2 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)param_2 + 0x10)" ( (binary_expression "*(int *)param_2 + 0x10" (pointer_expression "*(int *)param_2" * (cast_expression "(int *)param_2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ;) (expression_statement "puVar10 = *(undefined1 **)(*(int *)param_2 + 0x14);" (assignment_expression "puVar10 = *(undefined1 **)(*(int *)param_2 + 0x14)" identifier = (pointer_expression "*(undefined1 **)(*(int *)param_2 + 0x14)" * (cast_expression "(undefined1 **)(*(int *)param_2 + 0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)param_2 + 0x14)" ( (binary_expression "*(int *)param_2 + 0x14" (pointer_expression "*(int *)param_2" * (cast_expression "(int *)param_2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ;) (if_statement "if ((uVar13 < uVar2) || ((uVar2 == uVar13 && (puVar10 < local_3c)))) {\n        puVar9 = PTR_DAT_0043226c + 0x3c88;\n      }\n      else if ((uVar2 < uVar13) || ((uVar13 == uVar2 && (local_3c < puVar10)))) {\n        puVar9 = PTR_DAT_0043226c + 0x3cb4;\n      }\n      else {\n        puVar9 = PTR_DAT_0043226c + 0x3ce0;\n      }" if (parenthesized_expression "((uVar13 < uVar2) || ((uVar2 == uVar13 && (puVar10 < local_3c))))" ( (binary_expression "(uVar13 < uVar2) || ((uVar2 == uVar13 && (puVar10 < local_3c)))" (parenthesized_expression "(uVar13 < uVar2)" ( (binary_expression "uVar13 < uVar2" identifier < identifier) )) || (parenthesized_expression "((uVar2 == uVar13 && (puVar10 < local_3c)))" ( (parenthesized_expression "(uVar2 == uVar13 && (puVar10 < local_3c))" ( (binary_expression "uVar2 == uVar13 && (puVar10 < local_3c)" (binary_expression "uVar2 == uVar13" identifier == identifier) && (parenthesized_expression "(puVar10 < local_3c)" ( (binary_expression "puVar10 < local_3c" identifier < identifier) ))) )) ))) )) (compound_statement "{\n        puVar9 = PTR_DAT_0043226c + 0x3c88;\n      }" { (expression_statement "puVar9 = PTR_DAT_0043226c + 0x3c88;" (assignment_expression "puVar9 = PTR_DAT_0043226c + 0x3c88" identifier = (binary_expression "PTR_DAT_0043226c + 0x3c88" identifier + number_literal)) ;) }) (else_clause "else if ((uVar2 < uVar13) || ((uVar13 == uVar2 && (local_3c < puVar10)))) {\n        puVar9 = PTR_DAT_0043226c + 0x3cb4;\n      }\n      else {\n        puVar9 = PTR_DAT_0043226c + 0x3ce0;\n      }" else (if_statement "if ((uVar2 < uVar13) || ((uVar13 == uVar2 && (local_3c < puVar10)))) {\n        puVar9 = PTR_DAT_0043226c + 0x3cb4;\n      }\n      else {\n        puVar9 = PTR_DAT_0043226c + 0x3ce0;\n      }" if (parenthesized_expression "((uVar2 < uVar13) || ((uVar13 == uVar2 && (local_3c < puVar10))))" ( (binary_expression "(uVar2 < uVar13) || ((uVar13 == uVar2 && (local_3c < puVar10)))" (parenthesized_expression "(uVar2 < uVar13)" ( (binary_expression "uVar2 < uVar13" identifier < identifier) )) || (parenthesized_expression "((uVar13 == uVar2 && (local_3c < puVar10)))" ( (parenthesized_expression "(uVar13 == uVar2 && (local_3c < puVar10))" ( (binary_expression "uVar13 == uVar2 && (local_3c < puVar10)" (binary_expression "uVar13 == uVar2" identifier == identifier) && (parenthesized_expression "(local_3c < puVar10)" ( (binary_expression "local_3c < puVar10" identifier < identifier) ))) )) ))) )) (compound_statement "{\n        puVar9 = PTR_DAT_0043226c + 0x3cb4;\n      }" { (expression_statement "puVar9 = PTR_DAT_0043226c + 0x3cb4;" (assignment_expression "puVar9 = PTR_DAT_0043226c + 0x3cb4" identifier = (binary_expression "PTR_DAT_0043226c + 0x3cb4" identifier + number_literal)) ;) }) (else_clause "else {\n        puVar9 = PTR_DAT_0043226c + 0x3ce0;\n      }" else (compound_statement "{\n        puVar9 = PTR_DAT_0043226c + 0x3ce0;\n      }" { (expression_statement "puVar9 = PTR_DAT_0043226c + 0x3ce0;" (assignment_expression "puVar9 = PTR_DAT_0043226c + 0x3ce0" identifier = (binary_expression "PTR_DAT_0043226c + 0x3ce0" identifier + number_literal)) ;) }))))) (expression_statement "uVar6 = (*(code *)PTR_gettext_00436818)(puVar9);" (assignment_expression "uVar6 = (*(code *)PTR_gettext_00436818)(puVar9)" identifier = (call_expression "(*(code *)PTR_gettext_00436818)(puVar9)" (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 "(puVar9)" ( identifier )))) ;) (expression_statement "report_resolve_problem(0,uVar6,param_1,0,param_6);" (call_expression "report_resolve_problem(0,uVar6,param_1,0,param_6)" identifier (argument_list "(0,uVar6,param_1,0,param_6)" ( number_literal , identifier , identifier , number_literal , identifier ))) ;) (return_statement "return;" return ;) })) })) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit (declaration TYPE (ms_call_modifier __thiscall) (ERROR IDENT : : IDENT : :) IDENT (ERROR < LIT) , (ERROR (function_declarator IDENT (ERROR >) (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) { IDENT) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (ERROR (binary_expression (binary_expression IDENT < (binary_expression IDENT * (ERROR ,) IDENT)) (ERROR : : IDENT) < (binary_expression IDENT * IDENT)) ,) (labeled_statement statement_identifier (ERROR : : (binary_expression IDENT < IDENT) : : (comma_expression IDENT , IDENT) : : (comma_expression IDENT , IDENT) : : (binary_expression IDENT < IDENT) : : (binary_expression IDENT > (ERROR ,) IDENT) : : (binary_expression IDENT < IDENT) : : (binary_expression IDENT >> (ERROR > ,) IDENT) : : (binary_expression IDENT < IDENT) : : (comma_expression (binary_expression IDENT < (binary_expression IDENT * IDENT)) , IDENT) : : (binary_expression IDENT < IDENT) : : (comma_expression IDENT , IDENT) : : (comma_expression IDENT , IDENT) : : (binary_expression IDENT < IDENT) : : (binary_expression IDENT > (ERROR ,) IDENT) : : (binary_expression IDENT < IDENT) : : (binary_expression IDENT >> (ERROR >> ,) IDENT) :) : (labeled_statement statement_identifier (ERROR : : (comma_expression IDENT , IDENT) : : (comma_expression (binary_expression IDENT < IDENT) (ERROR * >) , IDENT) : : (comma_expression (binary_expression IDENT < IDENT) (ERROR * >) , IDENT) :) : (labeled_statement statement_identifier (ERROR : : (comma_expression IDENT , IDENT) :) : (labeled_statement statement_identifier (ERROR : : (comma_expression IDENT , IDENT) :) : (labeled_statement statement_identifier (ERROR : : (comma_expression IDENT , IDENT) :) : (labeled_statement statement_identifier : (ERROR :) (expression_statement (comma_expression (binary_expression IDENT < BOOL) , (comma_expression BOOL , (binary_expression (binary_expression BOOL > (ERROR ,) BOOL) > (pointer_expression * 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 (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT << LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT << LIT) )) >> LIT) == LIT) )) && (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_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 ^ LIT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) && (parenthesized_expression ( (binary_expression IDENT == IDENT) ))) )) && (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 *)) ) IDENT)) + LIT) )))) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) && (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 *)) ) IDENT)) + LIT) )))) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) (compound_statement { (return_statement return ;) }))) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;))) }))) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) (return_statement return ;) })) (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 (subscript_expression IDENT [ LIT ]) + LIT) )))) != (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT )))) , (binary_expression IDENT != LIT))) ))) )) (compound_statement { (return_statement return ;) })) (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 { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT) ))) >> LIT) )) + LIT) & LIT) )) < LIT) ))) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) )) (argument_list ( IDENT )))) ;) }) (else_clause else (compound_statement { (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) )))) & LIT) )) == LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression IDENT || (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)) ))) )) ))) )) (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) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) , IDENT ))) ;) (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) )) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) (return_statement return ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression & IDENT)) )) (compound_statement { (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) )) (argument_list ( IDENT )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT) )) >> LIT) == LIT) )) (compound_statement { (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) )) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == 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 ;)) (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) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) || (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT) ))) < 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 ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) , (binary_expression IDENT == LIT)) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression IDENT || (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)) ))) )) ))) )) (compound_statement { (expression_statement (comma_expression (binary_expression IDENT < LIT) , (binary_expression BOOL > (parenthesized_expression ( (comma_expression IDENT , (comma_expression IDENT , (comma_expression IDENT , (comma_expression IDENT , (comma_expression IDENT , (comma_expression IDENT , IDENT)))))) )))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (comma_expression (binary_expression IDENT < LIT) , (binary_expression BOOL > (parenthesized_expression ( (comma_expression IDENT , (comma_expression IDENT , (comma_expression IDENT , (comma_expression IDENT , (comma_expression BOOL , (comma_expression IDENT , IDENT)))))) )))) ;) (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) )))) < IDENT) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < IDENT) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) (compound_statement { (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return ;) })) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (return_statement return ;) })) }) (else_clause else (compound_statement { (labeled_statement 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 ;)) }))) (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 : (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) != LIT) )) && (parenthesized_expression ( (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT) ))) >> LIT) != LIT) ))) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression LIT < IDENT) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) && (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) && (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT)) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) == (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 (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) ))))) ))) )) && (parenthesized_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) ))))) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) , (binary_expression (binary_expression (pointer_expression * IDENT) != (char_literal ' character ')) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' character ')) )))) )) ))) )) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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) )) != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;)) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (ERROR (comma_expression (binary_expression IDENT < IDENT) (ERROR *) , IDENT) : : (comma_expression (binary_expression IDENT < (binary_expression IDENT * IDENT)) , IDENT) : : (binary_expression IDENT < IDENT) : : (comma_expression IDENT , IDENT) : : (comma_expression IDENT , IDENT) : : (binary_expression IDENT < IDENT) : : (binary_expression IDENT > (ERROR ,) IDENT) : : (binary_expression IDENT < IDENT) : : (binary_expression IDENT >> (ERROR > ,) IDENT) : : (binary_expression IDENT < IDENT) : : (comma_expression (binary_expression IDENT < (binary_expression IDENT * IDENT)) , IDENT) : : (binary_expression IDENT < IDENT) : : (comma_expression IDENT , IDENT) : : (comma_expression IDENT , IDENT) : : (binary_expression IDENT < IDENT) : : (binary_expression IDENT > (ERROR ,) IDENT) : : (binary_expression IDENT < IDENT) : : (binary_expression IDENT >> (ERROR >> ,) IDENT) : : IDENT : : (comma_expression IDENT , IDENT) : : (comma_expression (binary_expression IDENT < IDENT) (ERROR * >) , IDENT) : : (comma_expression (binary_expression IDENT < IDENT) (ERROR * >) , IDENT) : : IDENT : : (comma_expression IDENT , IDENT) : : IDENT : : (comma_expression IDENT , IDENT) : : IDENT : : (comma_expression IDENT , IDENT) : : IDENT : :) (comma_expression (binary_expression IDENT < BOOL) , (comma_expression BOOL , (binary_expression (binary_expression BOOL > (ERROR ,) BOOL) > (pointer_expression * IDENT)))) )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & 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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (ERROR (assignment_expression IDENT = IDENT) : : (comma_expression IDENT (ERROR : : (comma_expression (binary_expression IDENT < IDENT) (ERROR *) , IDENT) : : (comma_expression (binary_expression IDENT < (binary_expression IDENT * IDENT)) , IDENT) : : (binary_expression IDENT < IDENT) : : (comma_expression IDENT , IDENT) : : (comma_expression IDENT , IDENT) : : (binary_expression IDENT < IDENT) : : IDENT >) , IDENT) : : (binary_expression IDENT < IDENT) : : (binary_expression IDENT >> (ERROR > ,) IDENT) : : (binary_expression IDENT < IDENT) : : (comma_expression (binary_expression IDENT < (binary_expression IDENT * IDENT)) , IDENT) : : (binary_expression IDENT < IDENT) : : (comma_expression IDENT , IDENT) : : (comma_expression IDENT , IDENT) : : (binary_expression IDENT < IDENT) : : (binary_expression IDENT > (ERROR ,) IDENT) : : (binary_expression IDENT < IDENT) : : (binary_expression IDENT >> (ERROR >> ,) IDENT) : :) (labeled_statement statement_identifier (ERROR : : (comma_expression IDENT , IDENT) : : (comma_expression (binary_expression IDENT < IDENT) (ERROR * >) , IDENT) : : (comma_expression (binary_expression IDENT < IDENT) (ERROR * >) , IDENT) :) : (labeled_statement statement_identifier (ERROR : : (comma_expression IDENT , IDENT) :) : (labeled_statement statement_identifier (ERROR : : (comma_expression IDENT , IDENT) :) : (labeled_statement statement_identifier (ERROR : : (comma_expression IDENT , IDENT) :) : (labeled_statement statement_identifier : (ERROR :) (expression_statement (comma_expression (binary_expression IDENT < BOOL) , (comma_expression BOOL , (binary_expression (binary_expression BOOL > (ERROR ,) BOOL) > (ERROR : :) (call_expression (subscript_expression IDENT [ IDENT ]) (argument_list ( IDENT , IDENT )))))) ;)))))) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (ERROR (comma_expression IDENT (ERROR : : (binary_expression IDENT < IDENT) : : (comma_expression IDENT , IDENT) : : (comma_expression IDENT , IDENT) : : (binary_expression IDENT < IDENT) : : IDENT >) , IDENT) : : IDENT : : (comma_expression IDENT , IDENT) : : (binary_expression IDENT < IDENT) : : (binary_expression IDENT > (ERROR ,) IDENT) : : (comma_expression IDENT , IDENT) : :) (labeled_statement statement_identifier (ERROR : : (comma_expression IDENT , IDENT) :) : (labeled_statement statement_identifier (ERROR : : (comma_expression IDENT , IDENT) :) : (labeled_statement statement_identifier (ERROR : : (comma_expression IDENT , IDENT) : : (comma_expression IDENT (ERROR : : (comma_expression (binary_expression IDENT < BOOL) , (comma_expression BOOL , (binary_expression (binary_expression BOOL >> (ERROR : :) IDENT) < IDENT))) : : IDENT &) , IDENT) :) : (labeled_statement statement_identifier (ERROR : : (binary_expression IDENT < IDENT) : : (binary_expression IDENT < IDENT) :) : (labeled_statement statement_identifier (ERROR : : (binary_expression IDENT < IDENT) :) : (expression_statement (comma_expression IDENT , (binary_expression BOOL >> (ERROR >>) (parenthesized_expression ( (comma_expression IDENT , (comma_expression IDENT , (comma_expression (pointer_expression & IDENT) , (comma_expression IDENT , (comma_expression IDENT , LIT))))) )))) ;)))))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT )))) ;) (ERROR (comma_expression IDENT (ERROR : : (binary_expression IDENT < IDENT) : : (comma_expression IDENT , IDENT) : : (comma_expression IDENT , IDENT) : : (binary_expression IDENT < IDENT) : : IDENT >) , IDENT) : : IDENT : : (comma_expression IDENT , IDENT) : : (binary_expression IDENT < IDENT) : : (binary_expression IDENT > (ERROR ,) IDENT) : : (comma_expression IDENT , IDENT) : :) (labeled_statement statement_identifier (ERROR : : (comma_expression IDENT , IDENT) :) : (labeled_statement statement_identifier (ERROR : : (comma_expression IDENT , IDENT) :) : (labeled_statement statement_identifier (ERROR : : (comma_expression IDENT , IDENT) : : (comma_expression IDENT (ERROR : : (comma_expression (binary_expression IDENT < BOOL) , (comma_expression BOOL , (binary_expression (binary_expression BOOL >> (ERROR : :) IDENT) < IDENT))) : : IDENT &) , IDENT) :) : (labeled_statement statement_identifier (ERROR : : (binary_expression IDENT < IDENT) : : (binary_expression IDENT < IDENT) :) : (labeled_statement statement_identifier (ERROR : : (binary_expression IDENT < IDENT) :) : (expression_statement (comma_expression IDENT , (binary_expression BOOL >> (ERROR >>) (parenthesized_expression ( (comma_expression IDENT , (comma_expression IDENT , (comma_expression IDENT , (comma_expression IDENT , (comma_expression (binary_expression IDENT & LIT) , LIT))))) )))) ;)))))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT >> LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT , IDENT , (pointer_expression & IDENT) , IDENT , IDENT )))) ;) (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 *)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == IDENT) && (parenthesized_expression ( (binary_expression IDENT < IDENT) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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) )))) < IDENT) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < IDENT) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) != (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) || (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT) < LIT) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) | (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) == LIT) )) << LIT)) | LIT) )))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 ( (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) < (binary_expression (parenthesized_expression ( (binary_expression IDENT << LIT) )) >> LIT)) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT & LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) }) (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) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (comma_expression (binary_expression IDENT < LIT) , (binary_expression BOOL > (parenthesized_expression ( (comma_expression IDENT , (comma_expression IDENT , (comma_expression IDENT , (comma_expression IDENT , (comma_expression IDENT , (comma_expression IDENT , IDENT)))))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) != (char_literal ' escape_sequence ')) )) (compound_statement { (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) )))) < IDENT) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < IDENT) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (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) )))) < IDENT) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < IDENT) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) != (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) )))) < LIT) )) (compound_statement { (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)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) | (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT << LIT) ))) >> LIT) == LIT) )) << LIT)) | LIT) )))) ;) })) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT)) ))) )) && (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT) < LIT) ))) )) && (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 { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | LIT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) != (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) )))) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;)) (return_statement return ;) })) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) )))) + LIT) )))) != (char_literal ' escape_sequence ')) )) (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) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 (parenthesized_expression ( (binary_expression IDENT < IDENT) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == IDENT) && (parenthesized_expression ( (binary_expression IDENT < IDENT) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == IDENT) && (parenthesized_expression ( (binary_expression IDENT < IDENT) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT , IDENT , LIT , IDENT ))) ;) (return_statement return ;) })) })) (return_statement return ;) (ERROR }))
(declaration "void __thiscall\ngold::Symbol_table::resolve<64,true>\n          (Symbol_table *this,Sized_symbol *param_1,Sym *param_2,uint param_3,bool param_4,\n          uint param_5,Object *param_6,char *param_7,bool param_8)\n\n{\n  Sized_symbol SVar1;" (primitive_type "void") (ms_call_modifier "__thiscall" (__thiscall "__thiscall")) (ERROR "gold::Symbol_table::" (identifier "gold") (: ":") (: ":") (identifier "Symbol_table") (: ":") (: ":")) (identifier "resolve") (ERROR "<64" (< "<") (number_literal "64")) (, ",") (ERROR "true>\n          (Symbol_table *this,Sized_symbol *param_1,Sym *param_2,uint param_3,bool param_4,\n          uint param_5,Object *param_6,char *param_7,bool param_8)\n\n{\n  Sized_symbol" (function_declarator "true>\n          (Symbol_table *this,Sized_symbol *param_1,Sym *param_2,uint param_3,bool param_4,\n          uint param_5,Object *param_6,char *param_7,bool param_8)" (identifier "true") (ERROR ">" (> ">")) (parameter_list "(Symbol_table *this,Sized_symbol *param_1,Sym *param_2,uint param_3,bool param_4,\n          uint param_5,Object *param_6,char *param_7,bool param_8)" (( "(") (parameter_declaration "Symbol_table *this" (type_identifier "Symbol_table") (pointer_declarator "*this" (* "*") (identifier "this"))) (, ",") (parameter_declaration "Sized_symbol *param_1" (type_identifier "Sized_symbol") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "Sym *param_2" (type_identifier "Sym") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "uint param_3" (type_identifier "uint") (identifier "param_3")) (, ",") (parameter_declaration "bool param_4" (primitive_type "bool") (identifier "param_4")) (, ",") (parameter_declaration "uint param_5" (type_identifier "uint") (identifier "param_5")) (, ",") (parameter_declaration "Object *param_6" (type_identifier "Object") (pointer_declarator "*param_6" (* "*") (identifier "param_6"))) (, ",") (parameter_declaration "char *param_7" (primitive_type "char") (pointer_declarator "*param_7" (* "*") (identifier "param_7"))) (, ",") (parameter_declaration "bool param_8" (primitive_type "bool") (identifier "param_8")) () ")"))) ({ "{") (identifier "Sized_symbol")) (identifier "SVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "char *pcVar4;" (primitive_type "char") (pointer_declarator "*pcVar4" (* "*") (identifier "pcVar4")) (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "byte bVar7;" (type_identifier "byte") (identifier "bVar7") (; ";")) (declaration "int *piVar8;" (primitive_type "int") (pointer_declarator "*piVar8" (* "*") (identifier "piVar8")) (; ";")) (declaration "undefined *puVar9;" (type_identifier "undefined") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "undefined1 *puVar10;" (type_identifier "undefined1") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "uint uVar13;" (type_identifier "uint") (identifier "uVar13") (; ";")) (declaration "char *in_stack_ffffff70;" (primitive_type "char") (pointer_declarator "*in_stack_ffffff70" (* "*") (identifier "in_stack_ffffff70")) (; ";")) (declaration "undefined4 *local_78;" (type_identifier "undefined4") (pointer_declarator "*local_78" (* "*") (identifier "local_78")) (; ";")) (declaration "uint local_74;" (type_identifier "uint") (identifier "local_74") (; ";")) (declaration "undefined4 local_70;" (type_identifier "undefined4") (identifier "local_70") (; ";")) (declaration "undefined4 local_6c;" (type_identifier "undefined4") (identifier "local_6c") (; ";")) (declaration "Object *local_60;" (type_identifier "Object") (pointer_declarator "*local_60" (* "*") (identifier "local_60")) (; ";")) (declaration "uint local_5c;" (type_identifier "uint") (identifier "local_5c") (; ";")) (declaration "undefined4 local_58;" (type_identifier "undefined4") (identifier "local_58") (; ";")) (declaration "undefined4 local_54;" (type_identifier "undefined4") (identifier "local_54") (; ";")) (declaration "undefined1 auStack_50 [8];" (type_identifier "undefined1") (array_declarator "auStack_50 [8]" (identifier "auStack_50") ([ "[") (number_literal "8") (] "]")) (; ";")) (declaration "undefined4 local_48;" (type_identifier "undefined4") (identifier "local_48") (; ";")) (declaration "char *local_44;" (primitive_type "char") (pointer_declarator "*local_44" (* "*") (identifier "local_44")) (; ";")) (declaration "undefined4 **local_40;" (type_identifier "undefined4") (pointer_declarator "**local_40" (* "*") (pointer_declarator "*local_40" (* "*") (identifier "local_40"))) (; ";")) (declaration "undefined1 *local_3c;" (type_identifier "undefined1") (pointer_declarator "*local_3c" (* "*") (identifier "local_3c")) (; ";")) (declaration "undefined4 *local_38;" (type_identifier "undefined4") (pointer_declarator "*local_38" (* "*") (identifier "local_38")) (; ";")) (declaration "code *local_34;" (type_identifier "code") (pointer_declarator "*local_34" (* "*") (identifier "local_34")) (; ";")) (declaration "char **local_30;" (primitive_type "char") (pointer_declarator "**local_30" (* "*") (pointer_declarator "*local_30" (* "*") (identifier "local_30"))) (; ";")) (ERROR "_Map_base<char_const*,std::pair<char_const*const," (binary_expression "_Map_base<char_const*,std::pair<char_const*const" (binary_expression "_Map_base<char_const*,std" (identifier "_Map_base") (< "<") (binary_expression "char_const*,std" (identifier "char_const") (* "*") (ERROR "," (, ",")) (identifier "std"))) (ERROR "::pair" (: ":") (: ":") (identifier "pair")) (< "<") (binary_expression "char_const*const" (identifier "char_const") (* "*") (identifier "const"))) (, ",")) (labeled_statement "std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>,std::allocator<std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>>,std::__detail::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n  *local_2c;" (statement_identifier "std") (ERROR "::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>,std::allocator<std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>>,std:" (: ":") (: ":") (binary_expression "unordered_set<gold" (identifier "unordered_set") (< "<") (identifier "gold")) (: ":") (: ":") (comma_expression "Symbol_location,gold" (identifier "Symbol_location") (, ",") (identifier "gold")) (: ":") (: ":") (comma_expression "Symbol_location_hash,std" (identifier "Symbol_location_hash") (, ",") (identifier "std")) (: ":") (: ":") (binary_expression "equal_to<gold" (identifier "equal_to") (< "<") (identifier "gold")) (: ":") (: ":") (binary_expression "Symbol_location>,std" (identifier "Symbol_location") (> ">") (ERROR "," (, ",")) (identifier "std")) (: ":") (: ":") (binary_expression "allocator<gold" (identifier "allocator") (< "<") (identifier "gold")) (: ":") (: ":") (binary_expression "Symbol_location>>>,std" (identifier "Symbol_location") (>> ">>") (ERROR ">," (> ">") (, ",")) (identifier "std")) (: ":") (: ":") (binary_expression "allocator<std" (identifier "allocator") (< "<") (identifier "std")) (: ":") (: ":") (comma_expression "pair<char_const*const,std" (binary_expression "pair<char_const*const" (identifier "pair") (< "<") (binary_expression "char_const*const" (identifier "char_const") (* "*") (identifier "const"))) (, ",") (identifier "std")) (: ":") (: ":") (binary_expression "unordered_set<gold" (identifier "unordered_set") (< "<") (identifier "gold")) (: ":") (: ":") (comma_expression "Symbol_location,gold" (identifier "Symbol_location") (, ",") (identifier "gold")) (: ":") (: ":") (comma_expression "Symbol_location_hash,std" (identifier "Symbol_location_hash") (, ",") (identifier "std")) (: ":") (: ":") (binary_expression "equal_to<gold" (identifier "equal_to") (< "<") (identifier "gold")) (: ":") (: ":") (binary_expression "Symbol_location>,std" (identifier "Symbol_location") (> ">") (ERROR "," (, ",")) (identifier "std")) (: ":") (: ":") (binary_expression "allocator<gold" (identifier "allocator") (< "<") (identifier "gold")) (: ":") (: ":") (binary_expression "Symbol_location>>>>,std" (identifier "Symbol_location") (>> ">>") (ERROR ">>," (>> ">>") (, ",")) (identifier "std")) (: ":")) (: ":") (labeled_statement "__detail::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n  *local_2c;" (statement_identifier "__detail") (ERROR "::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std:" (: ":") (: ":") (comma_expression "_Select1st,std" (identifier "_Select1st") (, ",") (identifier "std")) (: ":") (: ":") (comma_expression "equal_to<char_const*>,std" (binary_expression "equal_to<char_const" (identifier "equal_to") (< "<") (identifier "char_const")) (ERROR "*>" (* "*") (> ">")) (, ",") (identifier "std")) (: ":") (: ":") (comma_expression "hash<char_const*>,std" (binary_expression "hash<char_const" (identifier "hash") (< "<") (identifier "char_const")) (ERROR "*>" (* "*") (> ">")) (, ",") (identifier "std")) (: ":")) (: ":") (labeled_statement "__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n  *local_2c;" (statement_identifier "__detail") (ERROR "::_Mod_range_hashing,std:" (: ":") (: ":") (comma_expression "_Mod_range_hashing,std" (identifier "_Mod_range_hashing") (, ",") (identifier "std")) (: ":")) (: ":") (labeled_statement "__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n  *local_2c;" (statement_identifier "__detail") (ERROR "::_Default_ranged_hash,std:" (: ":") (: ":") (comma_expression "_Default_ranged_hash,std" (identifier "_Default_ranged_hash") (, ",") (identifier "std")) (: ":")) (: ":") (labeled_statement "__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n  *local_2c;" (statement_identifier "__detail") (ERROR "::_Prime_rehash_policy,std:" (: ":") (: ":") (comma_expression "_Prime_rehash_policy,std" (identifier "_Prime_rehash_policy") (, ",") (identifier "std")) (: ":")) (: ":") (labeled_statement "__detail::_Hashtable_traits<false,false,true>,true>\n  *local_2c;" (statement_identifier "__detail") (: ":") (ERROR ":" (: ":")) (expression_statement "_Hashtable_traits<false,false,true>,true>\n  *local_2c;" (comma_expression "_Hashtable_traits<false,false,true>,true>\n  *local_2c" (binary_expression "_Hashtable_traits<false" (identifier "_Hashtable_traits") (< "<") (false "false")) (, ",") (comma_expression "false,true>,true>\n  *local_2c" (false "false") (, ",") (binary_expression "true>,true>\n  *local_2c" (binary_expression "true>,true" (true "true") (> ">") (ERROR "," (, ",")) (true "true")) (> ">") (pointer_expression "*local_2c" (* "*") (identifier "local_2c"))))) (; ";")))))))) (expression_statement "uVar2 = *(uint *)(param_1 + 0x28);" (assignment_expression "uVar2 = *(uint *)(param_1 + 0x28)" (identifier "uVar2") (= "=") (pointer_expression "*(uint *)(param_1 + 0x28)" (* "*") (cast_expression "(uint *)(param_1 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (if_statement "if ((uVar2 & 0xe000) != 0) {\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xaa,PTR_DAT_0043226c + 0x3c38);\n    return;\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    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xaa,PTR_DAT_0043226c + 0x3c38);\n    return;\n  }" ({ "{") (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xaa,PTR_DAT_0043226c + 0x3c38);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xaa,PTR_DAT_0043226c + 0x3c38)" (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,0xaa,PTR_DAT_0043226c + 0x3c38)" (( "(") (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5bdc" (identifier "PTR_s_alize_xindex_004323b4") (+ "+") (number_literal "-0x5bdc")) (, ",") (number_literal "0xaa") (, ",") (binary_expression "PTR_DAT_0043226c + 0x3c38" (identifier "PTR_DAT_0043226c") (+ "+") (number_literal "0x3c38")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar13 = *(uint *)(param_1 + 0xc);" (assignment_expression "uVar13 = *(uint *)(param_1 + 0xc)" (identifier "uVar13") (= "=") (pointer_expression "*(uint *)(param_1 + 0xc)" (* "*") (cast_expression "(uint *)(param_1 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "iVar5 = uVar2 << 0x1d;" (assignment_expression "iVar5 = uVar2 << 0x1d" (identifier "iVar5") (= "=") (binary_expression "uVar2 << 0x1d" (identifier "uVar2") (<< "<<") (number_literal "0x1d"))) (; ";")) (if_statement "if (((uVar2 << 0x10) >> 0x1d == 0) && (param_6 == *(Object **)(param_1 + 8))) {\n    if (iVar5 < 0) {\n      bVar7 = uVar13 != 0;\n    }\n    else {\n      bVar7 = (*(code *)PTR_is_common_shndx_00432fe0)(uVar13);\n      bVar7 = bVar7 ^ 1;\n    }\n    if (bVar7 == 0) goto LAB_00295df8;\n    if (!param_4) goto LAB_0029609c;\njoined_r0x002960a4:\n    if ((((-1 < iVar5) && (uVar13 == param_3)) &&\n        (*(int *)(*(int *)param_2 + 8) == *(int *)(param_1 + 0x30))) &&\n       (*(int *)(*(int *)param_2 + 0xc) == *(int *)(param_1 + 0x34))) {\n      return;\n    }\n  }\n  else {\nLAB_00295df8:\n    if (!param_4) {\nLAB_0029609c:\n      if (param_3 == 0xfff1) goto joined_r0x002960a4;\n    }\n  }" (if "if") (parenthesized_expression "(((uVar2 << 0x10) >> 0x1d == 0) && (param_6 == *(Object **)(param_1 + 8)))" (( "(") (binary_expression "((uVar2 << 0x10) >> 0x1d == 0) && (param_6 == *(Object **)(param_1 + 8))" (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")) () ")")) (&& "&&") (parenthesized_expression "(param_6 == *(Object **)(param_1 + 8))" (( "(") (binary_expression "param_6 == *(Object **)(param_1 + 8)" (identifier "param_6") (== "==") (pointer_expression "*(Object **)(param_1 + 8)" (* "*") (cast_expression "(Object **)(param_1 + 8)" (( "(") (type_descriptor "Object **" (type_identifier "Object") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) () ")"))) () ")")) (compound_statement "{\n    if (iVar5 < 0) {\n      bVar7 = uVar13 != 0;\n    }\n    else {\n      bVar7 = (*(code *)PTR_is_common_shndx_00432fe0)(uVar13);\n      bVar7 = bVar7 ^ 1;\n    }\n    if (bVar7 == 0) goto LAB_00295df8;\n    if (!param_4) goto LAB_0029609c;\njoined_r0x002960a4:\n    if ((((-1 < iVar5) && (uVar13 == param_3)) &&\n        (*(int *)(*(int *)param_2 + 8) == *(int *)(param_1 + 0x30))) &&\n       (*(int *)(*(int *)param_2 + 0xc) == *(int *)(param_1 + 0x34))) {\n      return;\n    }\n  }" ({ "{") (if_statement "if (iVar5 < 0) {\n      bVar7 = uVar13 != 0;\n    }\n    else {\n      bVar7 = (*(code *)PTR_is_common_shndx_00432fe0)(uVar13);\n      bVar7 = bVar7 ^ 1;\n    }" (if "if") (parenthesized_expression "(iVar5 < 0)" (( "(") (binary_expression "iVar5 < 0" (identifier "iVar5") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      bVar7 = uVar13 != 0;\n    }" ({ "{") (expression_statement "bVar7 = uVar13 != 0;" (assignment_expression "bVar7 = uVar13 != 0" (identifier "bVar7") (= "=") (binary_expression "uVar13 != 0" (identifier "uVar13") (!= "!=") (number_literal "0"))) (; ";")) (} "}")) (else_clause "else {\n      bVar7 = (*(code *)PTR_is_common_shndx_00432fe0)(uVar13);\n      bVar7 = bVar7 ^ 1;\n    }" (else "else") (compound_statement "{\n      bVar7 = (*(code *)PTR_is_common_shndx_00432fe0)(uVar13);\n      bVar7 = bVar7 ^ 1;\n    }" ({ "{") (expression_statement "bVar7 = (*(code *)PTR_is_common_shndx_00432fe0)(uVar13);" (assignment_expression "bVar7 = (*(code *)PTR_is_common_shndx_00432fe0)(uVar13)" (identifier "bVar7") (= "=") (call_expression "(*(code *)PTR_is_common_shndx_00432fe0)(uVar13)" (parenthesized_expression "(*(code *)PTR_is_common_shndx_00432fe0)" (( "(") (pointer_expression "*(code *)PTR_is_common_shndx_00432fe0" (* "*") (cast_expression "(code *)PTR_is_common_shndx_00432fe0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_is_common_shndx_00432fe0"))) () ")")) (argument_list "(uVar13)" (( "(") (identifier "uVar13") () ")")))) (; ";")) (expression_statement "bVar7 = bVar7 ^ 1;" (assignment_expression "bVar7 = bVar7 ^ 1" (identifier "bVar7") (= "=") (binary_expression "bVar7 ^ 1" (identifier "bVar7") (^ "^") (number_literal "1"))) (; ";")) (} "}")))) (if_statement "if (bVar7 == 0) goto LAB_00295df8;" (if "if") (parenthesized_expression "(bVar7 == 0)" (( "(") (binary_expression "bVar7 == 0" (identifier "bVar7") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00295df8;" (goto "goto") (statement_identifier "LAB_00295df8") (; ";"))) (if_statement "if (!param_4) goto LAB_0029609c;" (if "if") (parenthesized_expression "(!param_4)" (( "(") (unary_expression "!param_4" (! "!") (identifier "param_4")) () ")")) (goto_statement "goto LAB_0029609c;" (goto "goto") (statement_identifier "LAB_0029609c") (; ";"))) (labeled_statement "joined_r0x002960a4:\n    if ((((-1 < iVar5) && (uVar13 == param_3)) &&\n        (*(int *)(*(int *)param_2 + 8) == *(int *)(param_1 + 0x30))) &&\n       (*(int *)(*(int *)param_2 + 0xc) == *(int *)(param_1 + 0x34))) {\n      return;\n    }" (statement_identifier "joined_r0x002960a4") (: ":") (if_statement "if ((((-1 < iVar5) && (uVar13 == param_3)) &&\n        (*(int *)(*(int *)param_2 + 8) == *(int *)(param_1 + 0x30))) &&\n       (*(int *)(*(int *)param_2 + 0xc) == *(int *)(param_1 + 0x34))) {\n      return;\n    }" (if "if") (parenthesized_expression "((((-1 < iVar5) && (uVar13 == param_3)) &&\n        (*(int *)(*(int *)param_2 + 8) == *(int *)(param_1 + 0x30))) &&\n       (*(int *)(*(int *)param_2 + 0xc) == *(int *)(param_1 + 0x34)))" (( "(") (binary_expression "(((-1 < iVar5) && (uVar13 == param_3)) &&\n        (*(int *)(*(int *)param_2 + 8) == *(int *)(param_1 + 0x30))) &&\n       (*(int *)(*(int *)param_2 + 0xc) == *(int *)(param_1 + 0x34))" (parenthesized_expression "(((-1 < iVar5) && (uVar13 == param_3)) &&\n        (*(int *)(*(int *)param_2 + 8) == *(int *)(param_1 + 0x30)))" (( "(") (binary_expression "((-1 < iVar5) && (uVar13 == param_3)) &&\n        (*(int *)(*(int *)param_2 + 8) == *(int *)(param_1 + 0x30))" (parenthesized_expression "((-1 < iVar5) && (uVar13 == param_3))" (( "(") (binary_expression "(-1 < iVar5) && (uVar13 == param_3)" (parenthesized_expression "(-1 < iVar5)" (( "(") (binary_expression "-1 < iVar5" (number_literal "-1") (< "<") (identifier "iVar5")) () ")")) (&& "&&") (parenthesized_expression "(uVar13 == param_3)" (( "(") (binary_expression "uVar13 == param_3" (identifier "uVar13") (== "==") (identifier "param_3")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(*(int *)param_2 + 8) == *(int *)(param_1 + 0x30))" (( "(") (binary_expression "*(int *)(*(int *)param_2 + 8) == *(int *)(param_1 + 0x30)" (pointer_expression "*(int *)(*(int *)param_2 + 8)" (* "*") (cast_expression "(int *)(*(int *)param_2 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)param_2 + 8)" (( "(") (binary_expression "*(int *)param_2 + 8" (pointer_expression "*(int *)param_2" (* "*") (cast_expression "(int *)param_2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_2"))) (+ "+") (number_literal "8")) () ")")))) (== "==") (pointer_expression "*(int *)(param_1 + 0x30)" (* "*") (cast_expression "(int *)(param_1 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")"))))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(*(int *)param_2 + 0xc) == *(int *)(param_1 + 0x34))" (( "(") (binary_expression "*(int *)(*(int *)param_2 + 0xc) == *(int *)(param_1 + 0x34)" (pointer_expression "*(int *)(*(int *)param_2 + 0xc)" (* "*") (cast_expression "(int *)(*(int *)param_2 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)param_2 + 0xc)" (( "(") (binary_expression "*(int *)param_2 + 0xc" (pointer_expression "*(int *)param_2" (* "*") (cast_expression "(int *)param_2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_2"))) (+ "+") (number_literal "0xc")) () ")")))) (== "==") (pointer_expression "*(int *)(param_1 + 0x34)" (* "*") (cast_expression "(int *)(param_1 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x34)" (( "(") (binary_expression "param_1 + 0x34" (identifier "param_1") (+ "+") (number_literal "0x34")) () ")"))))) () ")"))) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}")))) (} "}")) (else_clause "else {\nLAB_00295df8:\n    if (!param_4) {\nLAB_0029609c:\n      if (param_3 == 0xfff1) goto joined_r0x002960a4;\n    }\n  }" (else "else") (compound_statement "{\nLAB_00295df8:\n    if (!param_4) {\nLAB_0029609c:\n      if (param_3 == 0xfff1) goto joined_r0x002960a4;\n    }\n  }" ({ "{") (labeled_statement "LAB_00295df8:\n    if (!param_4) {\nLAB_0029609c:\n      if (param_3 == 0xfff1) goto joined_r0x002960a4;\n    }" (statement_identifier "LAB_00295df8") (: ":") (if_statement "if (!param_4) {\nLAB_0029609c:\n      if (param_3 == 0xfff1) goto joined_r0x002960a4;\n    }" (if "if") (parenthesized_expression "(!param_4)" (( "(") (unary_expression "!param_4" (! "!") (identifier "param_4")) () ")")) (compound_statement "{\nLAB_0029609c:\n      if (param_3 == 0xfff1) goto joined_r0x002960a4;\n    }" ({ "{") (labeled_statement "LAB_0029609c:\n      if (param_3 == 0xfff1) goto joined_r0x002960a4;" (statement_identifier "LAB_0029609c") (: ":") (if_statement "if (param_3 == 0xfff1) goto joined_r0x002960a4;" (if "if") (parenthesized_expression "(param_3 == 0xfff1)" (( "(") (binary_expression "param_3 == 0xfff1" (identifier "param_3") (== "==") (number_literal "0xfff1")) () ")")) (goto_statement "goto joined_r0x002960a4;" (goto "goto") (statement_identifier "joined_r0x002960a4") (; ";")))) (} "}")))) (} "}")))) (expression_statement "puVar9 = PTR_parameters_00432be0;" (assignment_expression "puVar9 = PTR_parameters_00432be0" (identifier "puVar9") (= "=") (identifier "PTR_parameters_00432be0")) (; ";")) (expression_statement "piVar8 = *(int **)(*(int *)PTR_parameters_00432be0 + 0xc);" (assignment_expression "piVar8 = *(int **)(*(int *)PTR_parameters_00432be0 + 0xc)" (identifier "piVar8") (= "=") (pointer_expression "*(int **)(*(int *)PTR_parameters_00432be0 + 0xc)" (* "*") (cast_expression "(int **)(*(int *)PTR_parameters_00432be0 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)PTR_parameters_00432be0 + 0xc)" (( "(") (binary_expression "*(int *)PTR_parameters_00432be0 + 0xc" (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 "0xc")) () ")"))))) (; ";")) (if_statement "if (piVar8 == (int *)0x0) {\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + 0x3bb8);\n    return;\n  }" (if "if") (parenthesized_expression "(piVar8 == (int *)0x0)" (( "(") (binary_expression "piVar8 == (int *)0x0" (identifier "piVar8") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + 0x3bb8);\n    return;\n  }" ({ "{") (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + 0x3bb8);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + 0x3bb8)" (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,0x69,PTR_DAT_0043226c + 0x3bb8)" (( "(") (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5cec" (identifier "PTR_s_alize_xindex_004323b4") (+ "+") (number_literal "-0x5cec")) (, ",") (number_literal "0x69") (, ",") (binary_expression "PTR_DAT_0043226c + 0x3bb8" (identifier "PTR_DAT_0043226c") (+ "+") (number_literal "0x3bb8")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if ((*(char *)(piVar8[1] + 0xd) != '\0') &&\n     (in_stack_ffffff70 = param_7,\n     iVar3 = (**(code **)(*piVar8 + 0xac))(piVar8,param_1,param_2,param_6,param_7), iVar3 != 0)) {\n    return;\n  }" (if "if") (parenthesized_expression "((*(char *)(piVar8[1] + 0xd) != '\0') &&\n     (in_stack_ffffff70 = param_7,\n     iVar3 = (**(code **)(*piVar8 + 0xac))(piVar8,param_1,param_2,param_6,param_7), iVar3 != 0))" (( "(") (binary_expression "(*(char *)(piVar8[1] + 0xd) != '\0') &&\n     (in_stack_ffffff70 = param_7,\n     iVar3 = (**(code **)(*piVar8 + 0xac))(piVar8,param_1,param_2,param_6,param_7), iVar3 != 0)" (parenthesized_expression "(*(char *)(piVar8[1] + 0xd) != '\0')" (( "(") (binary_expression "*(char *)(piVar8[1] + 0xd) != '\0'" (pointer_expression "*(char *)(piVar8[1] + 0xd)" (* "*") (cast_expression "(char *)(piVar8[1] + 0xd)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar8[1] + 0xd)" (( "(") (binary_expression "piVar8[1] + 0xd" (subscript_expression "piVar8[1]" (identifier "piVar8") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0xd")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(in_stack_ffffff70 = param_7,\n     iVar3 = (**(code **)(*piVar8 + 0xac))(piVar8,param_1,param_2,param_6,param_7), iVar3 != 0)" (( "(") (comma_expression "in_stack_ffffff70 = param_7,\n     iVar3 = (**(code **)(*piVar8 + 0xac))(piVar8,param_1,param_2,param_6,param_7), iVar3 != 0" (assignment_expression "in_stack_ffffff70 = param_7" (identifier "in_stack_ffffff70") (= "=") (identifier "param_7")) (, ",") (comma_expression "iVar3 = (**(code **)(*piVar8 + 0xac))(piVar8,param_1,param_2,param_6,param_7), iVar3 != 0" (assignment_expression "iVar3 = (**(code **)(*piVar8 + 0xac))(piVar8,param_1,param_2,param_6,param_7)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(*piVar8 + 0xac))(piVar8,param_1,param_2,param_6,param_7)" (parenthesized_expression "(**(code **)(*piVar8 + 0xac))" (( "(") (pointer_expression "**(code **)(*piVar8 + 0xac)" (* "*") (pointer_expression "*(code **)(*piVar8 + 0xac)" (* "*") (cast_expression "(code **)(*piVar8 + 0xac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar8 + 0xac)" (( "(") (binary_expression "*piVar8 + 0xac" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (+ "+") (number_literal "0xac")) () ")"))))) () ")")) (argument_list "(piVar8,param_1,param_2,param_6,param_7)" (( "(") (identifier "piVar8") (, ",") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_6") (, ",") (identifier "param_7") () ")")))) (, ",") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")))) () ")"))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (*(int *)(param_6 + 0x2c) < 0) {\n    if ((param_3 == 0) && ((((uint)(*(int *)(param_1 + 0x28) << 8) >> 0x1e) + 3 & 3) < 2)) {\n      return;\n    }\n    *(uint *)(param_1 + 0x28) = *(uint *)(param_1 + 0x28) & 0xffffff7f | 0x80;\n    iVar3 = (**(code **)(*(int *)param_6 + 0x14))(param_6);\n  }\n  else {\n    if (((*(byte *)(*(int *)param_2 + 4) & 0xf) == 5) &&\n       ((param_4 || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar3 == 0)))) {\n      uVar6 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + 0x3c50);\n      (*(code *)PTR_demangled_name_abi_cxx11__00433f24)(&local_78,param_1);\n      if ((*(uint *)(param_1 + 0x28) & 0xe000) != 0) {\n                    \n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24);\n        return;\n      }\n                    \n      (*(code *)PTR_gold_warning_0043245c)\n                (uVar6,local_78,*(undefined4 *)(*(int *)(param_1 + 8) + 4));\n      if (local_78 == &local_70) {\n        return;\n      }\n      operator_delete(local_78);\n      return;\n    }\n    *(uint *)(param_1 + 0x28) = *(uint *)(param_1 + 0x28) & 0xfffffeff | 0x100;\n    iVar3 = (**(code **)(*(int *)param_6 + 0x14))(param_6);\n  }" (if "if") (parenthesized_expression "(*(int *)(param_6 + 0x2c) < 0)" (( "(") (binary_expression "*(int *)(param_6 + 0x2c) < 0" (pointer_expression "*(int *)(param_6 + 0x2c)" (* "*") (cast_expression "(int *)(param_6 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6 + 0x2c)" (( "(") (binary_expression "param_6 + 0x2c" (identifier "param_6") (+ "+") (number_literal "0x2c")) () ")")))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    if ((param_3 == 0) && ((((uint)(*(int *)(param_1 + 0x28) << 8) >> 0x1e) + 3 & 3) < 2)) {\n      return;\n    }\n    *(uint *)(param_1 + 0x28) = *(uint *)(param_1 + 0x28) & 0xffffff7f | 0x80;\n    iVar3 = (**(code **)(*(int *)param_6 + 0x14))(param_6);\n  }" ({ "{") (if_statement "if ((param_3 == 0) && ((((uint)(*(int *)(param_1 + 0x28) << 8) >> 0x1e) + 3 & 3) < 2)) {\n      return;\n    }" (if "if") (parenthesized_expression "((param_3 == 0) && ((((uint)(*(int *)(param_1 + 0x28) << 8) >> 0x1e) + 3 & 3) < 2))" (( "(") (binary_expression "(param_3 == 0) && ((((uint)(*(int *)(param_1 + 0x28) << 8) >> 0x1e) + 3 & 3) < 2)" (parenthesized_expression "(param_3 == 0)" (( "(") (binary_expression "param_3 == 0" (identifier "param_3") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((((uint)(*(int *)(param_1 + 0x28) << 8) >> 0x1e) + 3 & 3) < 2)" (( "(") (binary_expression "(((uint)(*(int *)(param_1 + 0x28) << 8) >> 0x1e) + 3 & 3) < 2" (parenthesized_expression "(((uint)(*(int *)(param_1 + 0x28) << 8) >> 0x1e) + 3 & 3)" (( "(") (binary_expression "((uint)(*(int *)(param_1 + 0x28) << 8) >> 0x1e) + 3 & 3" (binary_expression "((uint)(*(int *)(param_1 + 0x28) << 8) >> 0x1e) + 3" (parenthesized_expression "((uint)(*(int *)(param_1 + 0x28) << 8) >> 0x1e)" (( "(") (binary_expression "(uint)(*(int *)(param_1 + 0x28) << 8) >> 0x1e" (call_expression "(uint)(*(int *)(param_1 + 0x28) << 8)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(int *)(param_1 + 0x28) << 8)" (( "(") (binary_expression "*(int *)(param_1 + 0x28) << 8" (pointer_expression "*(int *)(param_1 + 0x28)" (* "*") (cast_expression "(int *)(param_1 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (<< "<<") (number_literal "8")) () ")"))) (>> ">>") (number_literal "0x1e")) () ")")) (+ "+") (number_literal "3")) (& "&") (number_literal "3")) () ")")) (< "<") (number_literal "2")) () ")"))) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "*(uint *)(param_1 + 0x28) = *(uint *)(param_1 + 0x28) & 0xffffff7f | 0x80;" (assignment_expression "*(uint *)(param_1 + 0x28) = *(uint *)(param_1 + 0x28) & 0xffffff7f | 0x80" (pointer_expression "*(uint *)(param_1 + 0x28)" (* "*") (cast_expression "(uint *)(param_1 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (binary_expression "*(uint *)(param_1 + 0x28) & 0xffffff7f | 0x80" (binary_expression "*(uint *)(param_1 + 0x28) & 0xffffff7f" (pointer_expression "*(uint *)(param_1 + 0x28)" (* "*") (cast_expression "(uint *)(param_1 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (& "&") (number_literal "0xffffff7f")) (| "|") (number_literal "0x80"))) (; ";")) (expression_statement "iVar3 = (**(code **)(*(int *)param_6 + 0x14))(param_6);" (assignment_expression "iVar3 = (**(code **)(*(int *)param_6 + 0x14))(param_6)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(*(int *)param_6 + 0x14))(param_6)" (parenthesized_expression "(**(code **)(*(int *)param_6 + 0x14))" (( "(") (pointer_expression "**(code **)(*(int *)param_6 + 0x14)" (* "*") (pointer_expression "*(code **)(*(int *)param_6 + 0x14)" (* "*") (cast_expression "(code **)(*(int *)param_6 + 0x14)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)param_6 + 0x14)" (( "(") (binary_expression "*(int *)param_6 + 0x14" (pointer_expression "*(int *)param_6" (* "*") (cast_expression "(int *)param_6" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_6"))) (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (argument_list "(param_6)" (( "(") (identifier "param_6") () ")")))) (; ";")) (} "}")) (else_clause "else {\n    if (((*(byte *)(*(int *)param_2 + 4) & 0xf) == 5) &&\n       ((param_4 || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar3 == 0)))) {\n      uVar6 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + 0x3c50);\n      (*(code *)PTR_demangled_name_abi_cxx11__00433f24)(&local_78,param_1);\n      if ((*(uint *)(param_1 + 0x28) & 0xe000) != 0) {\n                    \n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24);\n        return;\n      }\n                    \n      (*(code *)PTR_gold_warning_0043245c)\n                (uVar6,local_78,*(undefined4 *)(*(int *)(param_1 + 8) + 4));\n      if (local_78 == &local_70) {\n        return;\n      }\n      operator_delete(local_78);\n      return;\n    }\n    *(uint *)(param_1 + 0x28) = *(uint *)(param_1 + 0x28) & 0xfffffeff | 0x100;\n    iVar3 = (**(code **)(*(int *)param_6 + 0x14))(param_6);\n  }" (else "else") (compound_statement "{\n    if (((*(byte *)(*(int *)param_2 + 4) & 0xf) == 5) &&\n       ((param_4 || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar3 == 0)))) {\n      uVar6 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + 0x3c50);\n      (*(code *)PTR_demangled_name_abi_cxx11__00433f24)(&local_78,param_1);\n      if ((*(uint *)(param_1 + 0x28) & 0xe000) != 0) {\n                    \n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24);\n        return;\n      }\n                    \n      (*(code *)PTR_gold_warning_0043245c)\n                (uVar6,local_78,*(undefined4 *)(*(int *)(param_1 + 8) + 4));\n      if (local_78 == &local_70) {\n        return;\n      }\n      operator_delete(local_78);\n      return;\n    }\n    *(uint *)(param_1 + 0x28) = *(uint *)(param_1 + 0x28) & 0xfffffeff | 0x100;\n    iVar3 = (**(code **)(*(int *)param_6 + 0x14))(param_6);\n  }" ({ "{") (if_statement "if (((*(byte *)(*(int *)param_2 + 4) & 0xf) == 5) &&\n       ((param_4 || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar3 == 0)))) {\n      uVar6 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + 0x3c50);\n      (*(code *)PTR_demangled_name_abi_cxx11__00433f24)(&local_78,param_1);\n      if ((*(uint *)(param_1 + 0x28) & 0xe000) != 0) {\n                    \n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24);\n        return;\n      }\n                    \n      (*(code *)PTR_gold_warning_0043245c)\n                (uVar6,local_78,*(undefined4 *)(*(int *)(param_1 + 8) + 4));\n      if (local_78 == &local_70) {\n        return;\n      }\n      operator_delete(local_78);\n      return;\n    }" (if "if") (parenthesized_expression "(((*(byte *)(*(int *)param_2 + 4) & 0xf) == 5) &&\n       ((param_4 || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar3 == 0))))" (( "(") (binary_expression "((*(byte *)(*(int *)param_2 + 4) & 0xf) == 5) &&\n       ((param_4 || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar3 == 0)))" (parenthesized_expression "((*(byte *)(*(int *)param_2 + 4) & 0xf) == 5)" (( "(") (binary_expression "(*(byte *)(*(int *)param_2 + 4) & 0xf) == 5" (parenthesized_expression "(*(byte *)(*(int *)param_2 + 4) & 0xf)" (( "(") (binary_expression "*(byte *)(*(int *)param_2 + 4) & 0xf" (pointer_expression "*(byte *)(*(int *)param_2 + 4)" (* "*") (cast_expression "(byte *)(*(int *)param_2 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)param_2 + 4)" (( "(") (binary_expression "*(int *)param_2 + 4" (pointer_expression "*(int *)param_2" (* "*") (cast_expression "(int *)param_2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_2"))) (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "0xf")) () ")")) (== "==") (number_literal "5")) () ")")) (&& "&&") (parenthesized_expression "((param_4 || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar3 == 0)))" (( "(") (parenthesized_expression "(param_4 || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar3 == 0))" (( "(") (binary_expression "param_4 || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar3 == 0)" (identifier "param_4") (|| "||") (parenthesized_expression "(iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar3 == 0)" (( "(") (comma_expression "iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar3 == 0" (assignment_expression "iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_is_common_shndx_00432fe0)(param_3)" (parenthesized_expression "(*(code *)PTR_is_common_shndx_00432fe0)" (( "(") (pointer_expression "*(code *)PTR_is_common_shndx_00432fe0" (* "*") (cast_expression "(code *)PTR_is_common_shndx_00432fe0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_is_common_shndx_00432fe0"))) () ")")) (argument_list "(param_3)" (( "(") (identifier "param_3") () ")")))) (, ",") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n      uVar6 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + 0x3c50);\n      (*(code *)PTR_demangled_name_abi_cxx11__00433f24)(&local_78,param_1);\n      if ((*(uint *)(param_1 + 0x28) & 0xe000) != 0) {\n                    \n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24);\n        return;\n      }\n                    \n      (*(code *)PTR_gold_warning_0043245c)\n                (uVar6,local_78,*(undefined4 *)(*(int *)(param_1 + 8) + 4));\n      if (local_78 == &local_70) {\n        return;\n      }\n      operator_delete(local_78);\n      return;\n    }" ({ "{") (expression_statement "uVar6 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + 0x3c50);" (assignment_expression "uVar6 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + 0x3c50)" (identifier "uVar6") (= "=") (call_expression "(*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + 0x3c50)" (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 + 0x3c50)" (( "(") (binary_expression "PTR_DAT_0043226c + 0x3c50" (identifier "PTR_DAT_0043226c") (+ "+") (number_literal "0x3c50")) () ")")))) (; ";")) (expression_statement "(*(code *)PTR_demangled_name_abi_cxx11__00433f24)(&local_78,param_1);" (call_expression "(*(code *)PTR_demangled_name_abi_cxx11__00433f24)(&local_78,param_1)" (parenthesized_expression "(*(code *)PTR_demangled_name_abi_cxx11__00433f24)" (( "(") (pointer_expression "*(code *)PTR_demangled_name_abi_cxx11__00433f24" (* "*") (cast_expression "(code *)PTR_demangled_name_abi_cxx11__00433f24" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_demangled_name_abi_cxx11__00433f24"))) () ")")) (argument_list "(&local_78,param_1)" (( "(") (pointer_expression "&local_78" (& "&") (identifier "local_78")) (, ",") (identifier "param_1") () ")"))) (; ";")) (if_statement "if ((*(uint *)(param_1 + 0x28) & 0xe000) != 0) {\n                    \n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24);\n        return;\n      }" (if "if") (parenthesized_expression "((*(uint *)(param_1 + 0x28) & 0xe000) != 0)" (( "(") (binary_expression "(*(uint *)(param_1 + 0x28) & 0xe000) != 0" (parenthesized_expression "(*(uint *)(param_1 + 0x28) & 0xe000)" (( "(") (binary_expression "*(uint *)(param_1 + 0x28) & 0xe000" (pointer_expression "*(uint *)(param_1 + 0x28)" (* "*") (cast_expression "(uint *)(param_1 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (& "&") (number_literal "0xe000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    \n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24);\n        return;\n      }" ({ "{") (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24)" (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 + 0x3c24)" (( "(") (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 + 0x3c24" (identifier "PTR_DAT_0043226c") (+ "+") (number_literal "0x3c24")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_gold_warning_0043245c)\n                (uVar6,local_78,*(undefined4 *)(*(int *)(param_1 + 8) + 4));" (call_expression "(*(code *)PTR_gold_warning_0043245c)\n                (uVar6,local_78,*(undefined4 *)(*(int *)(param_1 + 8) + 4))" (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 "(uVar6,local_78,*(undefined4 *)(*(int *)(param_1 + 8) + 4))" (( "(") (identifier "uVar6") (, ",") (identifier "local_78") (, ",") (pointer_expression "*(undefined4 *)(*(int *)(param_1 + 8) + 4)" (* "*") (cast_expression "(undefined4 *)(*(int *)(param_1 + 8) + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 8) + 4)" (( "(") (binary_expression "*(int *)(param_1 + 8) + 4" (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "4")) () ")")))) () ")"))) (; ";")) (if_statement "if (local_78 == &local_70) {\n        return;\n      }" (if "if") (parenthesized_expression "(local_78 == &local_70)" (( "(") (binary_expression "local_78 == &local_70" (identifier "local_78") (== "==") (pointer_expression "&local_70" (& "&") (identifier "local_70"))) () ")")) (compound_statement "{\n        return;\n      }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "operator_delete(local_78);" (call_expression "operator_delete(local_78)" (identifier "operator_delete") (argument_list "(local_78)" (( "(") (identifier "local_78") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "*(uint *)(param_1 + 0x28) = *(uint *)(param_1 + 0x28) & 0xfffffeff | 0x100;" (assignment_expression "*(uint *)(param_1 + 0x28) = *(uint *)(param_1 + 0x28) & 0xfffffeff | 0x100" (pointer_expression "*(uint *)(param_1 + 0x28)" (* "*") (cast_expression "(uint *)(param_1 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (binary_expression "*(uint *)(param_1 + 0x28) & 0xfffffeff | 0x100" (binary_expression "*(uint *)(param_1 + 0x28) & 0xfffffeff" (pointer_expression "*(uint *)(param_1 + 0x28)" (* "*") (cast_expression "(uint *)(param_1 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (& "&") (number_literal "0xfffffeff")) (| "|") (number_literal "0x100"))) (; ";")) (expression_statement "iVar3 = (**(code **)(*(int *)param_6 + 0x14))(param_6);" (assignment_expression "iVar3 = (**(code **)(*(int *)param_6 + 0x14))(param_6)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(*(int *)param_6 + 0x14))(param_6)" (parenthesized_expression "(**(code **)(*(int *)param_6 + 0x14))" (( "(") (pointer_expression "**(code **)(*(int *)param_6 + 0x14)" (* "*") (pointer_expression "*(code **)(*(int *)param_6 + 0x14)" (* "*") (cast_expression "(code **)(*(int *)param_6 + 0x14)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)param_6 + 0x14)" (( "(") (binary_expression "*(int *)param_6 + 0x14" (pointer_expression "*(int *)param_6" (* "*") (cast_expression "(int *)param_6" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_6"))) (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (argument_list "(param_6)" (( "(") (identifier "param_6") () ")")))) (; ";")) (} "}")))) (if_statement "if ((iVar3 == 0) && (-1 < *(int *)(param_6 + 0x2c))) {\n    *(uint *)(param_1 + 0x28) = *(uint *)(param_1 + 0x28) & 0xfffffffd | 2;\n  }" (if "if") (parenthesized_expression "((iVar3 == 0) && (-1 < *(int *)(param_6 + 0x2c)))" (( "(") (binary_expression "(iVar3 == 0) && (-1 < *(int *)(param_6 + 0x2c))" (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(-1 < *(int *)(param_6 + 0x2c))" (( "(") (binary_expression "-1 < *(int *)(param_6 + 0x2c)" (number_literal "-1") (< "<") (pointer_expression "*(int *)(param_6 + 0x2c)" (* "*") (cast_expression "(int *)(param_6 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6 + 0x2c)" (( "(") (binary_expression "param_6 + 0x2c" (identifier "param_6") (+ "+") (number_literal "0x2c")) () ")"))))) () ")"))) () ")")) (compound_statement "{\n    *(uint *)(param_1 + 0x28) = *(uint *)(param_1 + 0x28) & 0xfffffffd | 2;\n  }" ({ "{") (expression_statement "*(uint *)(param_1 + 0x28) = *(uint *)(param_1 + 0x28) & 0xfffffffd | 2;" (assignment_expression "*(uint *)(param_1 + 0x28) = *(uint *)(param_1 + 0x28) & 0xfffffffd | 2" (pointer_expression "*(uint *)(param_1 + 0x28)" (* "*") (cast_expression "(uint *)(param_1 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (binary_expression "*(uint *)(param_1 + 0x28) & 0xfffffffd | 2" (binary_expression "*(uint *)(param_1 + 0x28) & 0xfffffffd" (pointer_expression "*(uint *)(param_1 + 0x28)" (* "*") (cast_expression "(uint *)(param_1 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (& "&") (number_literal "0xfffffffd")) (| "|") (number_literal "2"))) (; ";")) (} "}"))) (if_statement "if ((*(uint *)(param_1 + 0x28) << 0x10) >> 0x1d == 0) {\n    if ((*(uint *)(param_1 + 0x28) & 0xe000) != 0) goto LAB_0029679c;\n    iVar3 = (**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8));\n    if (iVar3 == 0) goto LAB_002963b4;\n    iVar3 = *(int *)(*(int *)puVar9 + 8);\n    if (iVar3 == 0) goto LAB_002963c4;\n    if (*(char *)(*(int *)(iVar3 + 0x594c) + 0x69) != '\0') {\n      if (((((*(uint *)(param_1 + 0x28) & 0xe000) != 0) ||\n           ((int)(*(uint *)(param_1 + 0x28) << 0x1d) < 0)) ||\n          (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(*(undefined4 *)(param_1 + 0xc)),\n          iVar5 == 0)) ||\n         ((param_4 || (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar5 == 0)))) {\n        override<64,true>(this,param_1,param_2,param_3,param_4,param_6,param_7);\n        return;\n      }\n      uVar13 = *(uint *)(param_1 + 0x38);\n      uVar12 = *(uint *)(param_1 + 0x3c);\n      uVar2 = *(uint *)(param_1 + 0x30);\n      uVar11 = *(uint *)(param_1 + 0x34);\n      override<64,true>(this,param_1,param_2,param_3,false,param_6,param_7);\n      if ((*(uint *)(param_1 + 0x38) < uVar13) ||\n         ((*(uint *)(param_1 + 0x38) == uVar13 && (*(uint *)(param_1 + 0x3c) < uVar12)))) {\n        *(uint *)(param_1 + 0x38) = uVar13;\n        *(uint *)(param_1 + 0x3c) = uVar12;\n      }\n      if (uVar2 <= *(uint *)(param_1 + 0x30)) {\n        if (*(uint *)(param_1 + 0x30) != uVar2) {\n          return;\n        }\n        if (uVar11 <= *(uint *)(param_1 + 0x34)) {\n          return;\n        }\n      }\n      *(uint *)(param_1 + 0x30) = uVar2;\n      *(uint *)(param_1 + 0x34) = uVar11;\n      return;\n    }\n  }\n  else {\nLAB_002963b4:\n    iVar3 = *(int *)(*(int *)puVar9 + 8);\n    if (iVar3 == 0) goto LAB_002963c4;\n  }" (if "if") (parenthesized_expression "((*(uint *)(param_1 + 0x28) << 0x10) >> 0x1d == 0)" (( "(") (binary_expression "(*(uint *)(param_1 + 0x28) << 0x10) >> 0x1d == 0" (binary_expression "(*(uint *)(param_1 + 0x28) << 0x10) >> 0x1d" (parenthesized_expression "(*(uint *)(param_1 + 0x28) << 0x10)" (( "(") (binary_expression "*(uint *)(param_1 + 0x28) << 0x10" (pointer_expression "*(uint *)(param_1 + 0x28)" (* "*") (cast_expression "(uint *)(param_1 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (<< "<<") (number_literal "0x10")) () ")")) (>> ">>") (number_literal "0x1d")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if ((*(uint *)(param_1 + 0x28) & 0xe000) != 0) goto LAB_0029679c;\n    iVar3 = (**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8));\n    if (iVar3 == 0) goto LAB_002963b4;\n    iVar3 = *(int *)(*(int *)puVar9 + 8);\n    if (iVar3 == 0) goto LAB_002963c4;\n    if (*(char *)(*(int *)(iVar3 + 0x594c) + 0x69) != '\0') {\n      if (((((*(uint *)(param_1 + 0x28) & 0xe000) != 0) ||\n           ((int)(*(uint *)(param_1 + 0x28) << 0x1d) < 0)) ||\n          (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(*(undefined4 *)(param_1 + 0xc)),\n          iVar5 == 0)) ||\n         ((param_4 || (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar5 == 0)))) {\n        override<64,true>(this,param_1,param_2,param_3,param_4,param_6,param_7);\n        return;\n      }\n      uVar13 = *(uint *)(param_1 + 0x38);\n      uVar12 = *(uint *)(param_1 + 0x3c);\n      uVar2 = *(uint *)(param_1 + 0x30);\n      uVar11 = *(uint *)(param_1 + 0x34);\n      override<64,true>(this,param_1,param_2,param_3,false,param_6,param_7);\n      if ((*(uint *)(param_1 + 0x38) < uVar13) ||\n         ((*(uint *)(param_1 + 0x38) == uVar13 && (*(uint *)(param_1 + 0x3c) < uVar12)))) {\n        *(uint *)(param_1 + 0x38) = uVar13;\n        *(uint *)(param_1 + 0x3c) = uVar12;\n      }\n      if (uVar2 <= *(uint *)(param_1 + 0x30)) {\n        if (*(uint *)(param_1 + 0x30) != uVar2) {\n          return;\n        }\n        if (uVar11 <= *(uint *)(param_1 + 0x34)) {\n          return;\n        }\n      }\n      *(uint *)(param_1 + 0x30) = uVar2;\n      *(uint *)(param_1 + 0x34) = uVar11;\n      return;\n    }\n  }" ({ "{") (if_statement "if ((*(uint *)(param_1 + 0x28) & 0xe000) != 0) goto LAB_0029679c;" (if "if") (parenthesized_expression "((*(uint *)(param_1 + 0x28) & 0xe000) != 0)" (( "(") (binary_expression "(*(uint *)(param_1 + 0x28) & 0xe000) != 0" (parenthesized_expression "(*(uint *)(param_1 + 0x28) & 0xe000)" (( "(") (binary_expression "*(uint *)(param_1 + 0x28) & 0xe000" (pointer_expression "*(uint *)(param_1 + 0x28)" (* "*") (cast_expression "(uint *)(param_1 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (& "&") (number_literal "0xe000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0029679c;" (goto "goto") (statement_identifier "LAB_0029679c") (; ";"))) (expression_statement "iVar3 = (**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8));" (assignment_expression "iVar3 = (**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8))" (identifier "iVar3") (= "=") (call_expression "(**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8))" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 8) + 0x14))" (( "(") (pointer_expression "**(code **)(**(int **)(param_1 + 8) + 0x14)" (* "*") (pointer_expression "*(code **)(**(int **)(param_1 + 8) + 0x14)" (* "*") (cast_expression "(code **)(**(int **)(param_1 + 8) + 0x14)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(param_1 + 8) + 0x14)" (( "(") (binary_expression "**(int **)(param_1 + 8) + 0x14" (pointer_expression "**(int **)(param_1 + 8)" (* "*") (pointer_expression "*(int **)(param_1 + 8)" (* "*") (cast_expression "(int **)(param_1 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (argument_list "(*(int **)(param_1 + 8))" (( "(") (pointer_expression "*(int **)(param_1 + 8)" (* "*") (cast_expression "(int **)(param_1 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) () ")")))) (; ";")) (if_statement "if (iVar3 == 0) goto LAB_002963b4;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_002963b4;" (goto "goto") (statement_identifier "LAB_002963b4") (; ";"))) (expression_statement "iVar3 = *(int *)(*(int *)puVar9 + 8);" (assignment_expression "iVar3 = *(int *)(*(int *)puVar9 + 8)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(*(int *)puVar9 + 8)" (* "*") (cast_expression "(int *)(*(int *)puVar9 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (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 "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar9"))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar3 == 0) goto LAB_002963c4;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_002963c4;" (goto "goto") (statement_identifier "LAB_002963c4") (; ";"))) (if_statement "if (*(char *)(*(int *)(iVar3 + 0x594c) + 0x69) != '\0') {\n      if (((((*(uint *)(param_1 + 0x28) & 0xe000) != 0) ||\n           ((int)(*(uint *)(param_1 + 0x28) << 0x1d) < 0)) ||\n          (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(*(undefined4 *)(param_1 + 0xc)),\n          iVar5 == 0)) ||\n         ((param_4 || (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar5 == 0)))) {\n        override<64,true>(this,param_1,param_2,param_3,param_4,param_6,param_7);\n        return;\n      }\n      uVar13 = *(uint *)(param_1 + 0x38);\n      uVar12 = *(uint *)(param_1 + 0x3c);\n      uVar2 = *(uint *)(param_1 + 0x30);\n      uVar11 = *(uint *)(param_1 + 0x34);\n      override<64,true>(this,param_1,param_2,param_3,false,param_6,param_7);\n      if ((*(uint *)(param_1 + 0x38) < uVar13) ||\n         ((*(uint *)(param_1 + 0x38) == uVar13 && (*(uint *)(param_1 + 0x3c) < uVar12)))) {\n        *(uint *)(param_1 + 0x38) = uVar13;\n        *(uint *)(param_1 + 0x3c) = uVar12;\n      }\n      if (uVar2 <= *(uint *)(param_1 + 0x30)) {\n        if (*(uint *)(param_1 + 0x30) != uVar2) {\n          return;\n        }\n        if (uVar11 <= *(uint *)(param_1 + 0x34)) {\n          return;\n        }\n      }\n      *(uint *)(param_1 + 0x30) = uVar2;\n      *(uint *)(param_1 + 0x34) = uVar11;\n      return;\n    }" (if "if") (parenthesized_expression "(*(char *)(*(int *)(iVar3 + 0x594c) + 0x69) != '\0')" (( "(") (binary_expression "*(char *)(*(int *)(iVar3 + 0x594c) + 0x69) != '\0'" (pointer_expression "*(char *)(*(int *)(iVar3 + 0x594c) + 0x69)" (* "*") (cast_expression "(char *)(*(int *)(iVar3 + 0x594c) + 0x69)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar3 + 0x594c) + 0x69)" (( "(") (binary_expression "*(int *)(iVar3 + 0x594c) + 0x69" (pointer_expression "*(int *)(iVar3 + 0x594c)" (* "*") (cast_expression "(int *)(iVar3 + 0x594c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x594c)" (( "(") (binary_expression "iVar3 + 0x594c" (identifier "iVar3") (+ "+") (number_literal "0x594c")) () ")")))) (+ "+") (number_literal "0x69")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      if (((((*(uint *)(param_1 + 0x28) & 0xe000) != 0) ||\n           ((int)(*(uint *)(param_1 + 0x28) << 0x1d) < 0)) ||\n          (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(*(undefined4 *)(param_1 + 0xc)),\n          iVar5 == 0)) ||\n         ((param_4 || (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar5 == 0)))) {\n        override<64,true>(this,param_1,param_2,param_3,param_4,param_6,param_7);\n        return;\n      }\n      uVar13 = *(uint *)(param_1 + 0x38);\n      uVar12 = *(uint *)(param_1 + 0x3c);\n      uVar2 = *(uint *)(param_1 + 0x30);\n      uVar11 = *(uint *)(param_1 + 0x34);\n      override<64,true>(this,param_1,param_2,param_3,false,param_6,param_7);\n      if ((*(uint *)(param_1 + 0x38) < uVar13) ||\n         ((*(uint *)(param_1 + 0x38) == uVar13 && (*(uint *)(param_1 + 0x3c) < uVar12)))) {\n        *(uint *)(param_1 + 0x38) = uVar13;\n        *(uint *)(param_1 + 0x3c) = uVar12;\n      }\n      if (uVar2 <= *(uint *)(param_1 + 0x30)) {\n        if (*(uint *)(param_1 + 0x30) != uVar2) {\n          return;\n        }\n        if (uVar11 <= *(uint *)(param_1 + 0x34)) {\n          return;\n        }\n      }\n      *(uint *)(param_1 + 0x30) = uVar2;\n      *(uint *)(param_1 + 0x34) = uVar11;\n      return;\n    }" ({ "{") (if_statement "if (((((*(uint *)(param_1 + 0x28) & 0xe000) != 0) ||\n           ((int)(*(uint *)(param_1 + 0x28) << 0x1d) < 0)) ||\n          (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(*(undefined4 *)(param_1 + 0xc)),\n          iVar5 == 0)) ||\n         ((param_4 || (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar5 == 0)))) {\n        override<64,true>(this,param_1,param_2,param_3,param_4,param_6,param_7);\n        return;\n      }" (if "if") (parenthesized_expression "(((((*(uint *)(param_1 + 0x28) & 0xe000) != 0) ||\n           ((int)(*(uint *)(param_1 + 0x28) << 0x1d) < 0)) ||\n          (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(*(undefined4 *)(param_1 + 0xc)),\n          iVar5 == 0)) ||\n         ((param_4 || (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar5 == 0))))" (( "(") (binary_expression "((((*(uint *)(param_1 + 0x28) & 0xe000) != 0) ||\n           ((int)(*(uint *)(param_1 + 0x28) << 0x1d) < 0)) ||\n          (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(*(undefined4 *)(param_1 + 0xc)),\n          iVar5 == 0)) ||\n         ((param_4 || (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar5 == 0)))" (parenthesized_expression "((((*(uint *)(param_1 + 0x28) & 0xe000) != 0) ||\n           ((int)(*(uint *)(param_1 + 0x28) << 0x1d) < 0)) ||\n          (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(*(undefined4 *)(param_1 + 0xc)),\n          iVar5 == 0))" (( "(") (binary_expression "(((*(uint *)(param_1 + 0x28) & 0xe000) != 0) ||\n           ((int)(*(uint *)(param_1 + 0x28) << 0x1d) < 0)) ||\n          (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(*(undefined4 *)(param_1 + 0xc)),\n          iVar5 == 0)" (parenthesized_expression "(((*(uint *)(param_1 + 0x28) & 0xe000) != 0) ||\n           ((int)(*(uint *)(param_1 + 0x28) << 0x1d) < 0))" (( "(") (binary_expression "((*(uint *)(param_1 + 0x28) & 0xe000) != 0) ||\n           ((int)(*(uint *)(param_1 + 0x28) << 0x1d) < 0)" (parenthesized_expression "((*(uint *)(param_1 + 0x28) & 0xe000) != 0)" (( "(") (binary_expression "(*(uint *)(param_1 + 0x28) & 0xe000) != 0" (parenthesized_expression "(*(uint *)(param_1 + 0x28) & 0xe000)" (( "(") (binary_expression "*(uint *)(param_1 + 0x28) & 0xe000" (pointer_expression "*(uint *)(param_1 + 0x28)" (* "*") (cast_expression "(uint *)(param_1 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (& "&") (number_literal "0xe000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((int)(*(uint *)(param_1 + 0x28) << 0x1d) < 0)" (( "(") (binary_expression "(int)(*(uint *)(param_1 + 0x28) << 0x1d) < 0" (cast_expression "(int)(*(uint *)(param_1 + 0x28) << 0x1d)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(*(uint *)(param_1 + 0x28) << 0x1d)" (( "(") (binary_expression "*(uint *)(param_1 + 0x28) << 0x1d" (pointer_expression "*(uint *)(param_1 + 0x28)" (* "*") (cast_expression "(uint *)(param_1 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (<< "<<") (number_literal "0x1d")) () ")"))) (< "<") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(*(undefined4 *)(param_1 + 0xc)),\n          iVar5 == 0)" (( "(") (comma_expression "iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(*(undefined4 *)(param_1 + 0xc)),\n          iVar5 == 0" (assignment_expression "iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(*(undefined4 *)(param_1 + 0xc))" (identifier "iVar5") (= "=") (call_expression "(*(code *)PTR_is_common_shndx_00432fe0)(*(undefined4 *)(param_1 + 0xc))" (parenthesized_expression "(*(code *)PTR_is_common_shndx_00432fe0)" (( "(") (pointer_expression "*(code *)PTR_is_common_shndx_00432fe0" (* "*") (cast_expression "(code *)PTR_is_common_shndx_00432fe0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_is_common_shndx_00432fe0"))) () ")")) (argument_list "(*(undefined4 *)(param_1 + 0xc))" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0xc)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) () ")")))) (, ",") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "((param_4 || (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar5 == 0)))" (( "(") (parenthesized_expression "(param_4 || (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar5 == 0))" (( "(") (binary_expression "param_4 || (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar5 == 0)" (identifier "param_4") (|| "||") (parenthesized_expression "(iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar5 == 0)" (( "(") (comma_expression "iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar5 == 0" (assignment_expression "iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3)" (identifier "iVar5") (= "=") (call_expression "(*(code *)PTR_is_common_shndx_00432fe0)(param_3)" (parenthesized_expression "(*(code *)PTR_is_common_shndx_00432fe0)" (( "(") (pointer_expression "*(code *)PTR_is_common_shndx_00432fe0" (* "*") (cast_expression "(code *)PTR_is_common_shndx_00432fe0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_is_common_shndx_00432fe0"))) () ")")) (argument_list "(param_3)" (( "(") (identifier "param_3") () ")")))) (, ",") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n        override<64,true>(this,param_1,param_2,param_3,param_4,param_6,param_7);\n        return;\n      }" ({ "{") (expression_statement "override<64,true>(this,param_1,param_2,param_3,param_4,param_6,param_7);" (comma_expression "override<64,true>(this,param_1,param_2,param_3,param_4,param_6,param_7)" (binary_expression "override<64" (identifier "override") (< "<") (number_literal "64")) (, ",") (binary_expression "true>(this,param_1,param_2,param_3,param_4,param_6,param_7)" (true "true") (> ">") (parenthesized_expression "(this,param_1,param_2,param_3,param_4,param_6,param_7)" (( "(") (comma_expression "this,param_1,param_2,param_3,param_4,param_6,param_7" (identifier "this") (, ",") (comma_expression "param_1,param_2,param_3,param_4,param_6,param_7" (identifier "param_1") (, ",") (comma_expression "param_2,param_3,param_4,param_6,param_7" (identifier "param_2") (, ",") (comma_expression "param_3,param_4,param_6,param_7" (identifier "param_3") (, ",") (comma_expression "param_4,param_6,param_7" (identifier "param_4") (, ",") (comma_expression "param_6,param_7" (identifier "param_6") (, ",") (identifier "param_7"))))))) () ")")))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar13 = *(uint *)(param_1 + 0x38);" (assignment_expression "uVar13 = *(uint *)(param_1 + 0x38)" (identifier "uVar13") (= "=") (pointer_expression "*(uint *)(param_1 + 0x38)" (* "*") (cast_expression "(uint *)(param_1 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "uVar12 = *(uint *)(param_1 + 0x3c);" (assignment_expression "uVar12 = *(uint *)(param_1 + 0x3c)" (identifier "uVar12") (= "=") (pointer_expression "*(uint *)(param_1 + 0x3c)" (* "*") (cast_expression "(uint *)(param_1 + 0x3c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x3c)" (( "(") (binary_expression "param_1 + 0x3c" (identifier "param_1") (+ "+") (number_literal "0x3c")) () ")"))))) (; ";")) (expression_statement "uVar2 = *(uint *)(param_1 + 0x30);" (assignment_expression "uVar2 = *(uint *)(param_1 + 0x30)" (identifier "uVar2") (= "=") (pointer_expression "*(uint *)(param_1 + 0x30)" (* "*") (cast_expression "(uint *)(param_1 + 0x30)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "uVar11 = *(uint *)(param_1 + 0x34);" (assignment_expression "uVar11 = *(uint *)(param_1 + 0x34)" (identifier "uVar11") (= "=") (pointer_expression "*(uint *)(param_1 + 0x34)" (* "*") (cast_expression "(uint *)(param_1 + 0x34)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x34)" (( "(") (binary_expression "param_1 + 0x34" (identifier "param_1") (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (expression_statement "override<64,true>(this,param_1,param_2,param_3,false,param_6,param_7);" (comma_expression "override<64,true>(this,param_1,param_2,param_3,false,param_6,param_7)" (binary_expression "override<64" (identifier "override") (< "<") (number_literal "64")) (, ",") (binary_expression "true>(this,param_1,param_2,param_3,false,param_6,param_7)" (true "true") (> ">") (parenthesized_expression "(this,param_1,param_2,param_3,false,param_6,param_7)" (( "(") (comma_expression "this,param_1,param_2,param_3,false,param_6,param_7" (identifier "this") (, ",") (comma_expression "param_1,param_2,param_3,false,param_6,param_7" (identifier "param_1") (, ",") (comma_expression "param_2,param_3,false,param_6,param_7" (identifier "param_2") (, ",") (comma_expression "param_3,false,param_6,param_7" (identifier "param_3") (, ",") (comma_expression "false,param_6,param_7" (false "false") (, ",") (comma_expression "param_6,param_7" (identifier "param_6") (, ",") (identifier "param_7"))))))) () ")")))) (; ";")) (if_statement "if ((*(uint *)(param_1 + 0x38) < uVar13) ||\n         ((*(uint *)(param_1 + 0x38) == uVar13 && (*(uint *)(param_1 + 0x3c) < uVar12)))) {\n        *(uint *)(param_1 + 0x38) = uVar13;\n        *(uint *)(param_1 + 0x3c) = uVar12;\n      }" (if "if") (parenthesized_expression "((*(uint *)(param_1 + 0x38) < uVar13) ||\n         ((*(uint *)(param_1 + 0x38) == uVar13 && (*(uint *)(param_1 + 0x3c) < uVar12))))" (( "(") (binary_expression "(*(uint *)(param_1 + 0x38) < uVar13) ||\n         ((*(uint *)(param_1 + 0x38) == uVar13 && (*(uint *)(param_1 + 0x3c) < uVar12)))" (parenthesized_expression "(*(uint *)(param_1 + 0x38) < uVar13)" (( "(") (binary_expression "*(uint *)(param_1 + 0x38) < uVar13" (pointer_expression "*(uint *)(param_1 + 0x38)" (* "*") (cast_expression "(uint *)(param_1 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")")))) (< "<") (identifier "uVar13")) () ")")) (|| "||") (parenthesized_expression "((*(uint *)(param_1 + 0x38) == uVar13 && (*(uint *)(param_1 + 0x3c) < uVar12)))" (( "(") (parenthesized_expression "(*(uint *)(param_1 + 0x38) == uVar13 && (*(uint *)(param_1 + 0x3c) < uVar12))" (( "(") (binary_expression "*(uint *)(param_1 + 0x38) == uVar13 && (*(uint *)(param_1 + 0x3c) < uVar12)" (binary_expression "*(uint *)(param_1 + 0x38) == uVar13" (pointer_expression "*(uint *)(param_1 + 0x38)" (* "*") (cast_expression "(uint *)(param_1 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")")))) (== "==") (identifier "uVar13")) (&& "&&") (parenthesized_expression "(*(uint *)(param_1 + 0x3c) < uVar12)" (( "(") (binary_expression "*(uint *)(param_1 + 0x3c) < uVar12" (pointer_expression "*(uint *)(param_1 + 0x3c)" (* "*") (cast_expression "(uint *)(param_1 + 0x3c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x3c)" (( "(") (binary_expression "param_1 + 0x3c" (identifier "param_1") (+ "+") (number_literal "0x3c")) () ")")))) (< "<") (identifier "uVar12")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n        *(uint *)(param_1 + 0x38) = uVar13;\n        *(uint *)(param_1 + 0x3c) = uVar12;\n      }" ({ "{") (expression_statement "*(uint *)(param_1 + 0x38) = uVar13;" (assignment_expression "*(uint *)(param_1 + 0x38) = uVar13" (pointer_expression "*(uint *)(param_1 + 0x38)" (* "*") (cast_expression "(uint *)(param_1 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "*(uint *)(param_1 + 0x3c) = uVar12;" (assignment_expression "*(uint *)(param_1 + 0x3c) = uVar12" (pointer_expression "*(uint *)(param_1 + 0x3c)" (* "*") (cast_expression "(uint *)(param_1 + 0x3c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x3c)" (( "(") (binary_expression "param_1 + 0x3c" (identifier "param_1") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (identifier "uVar12")) (; ";")) (} "}"))) (if_statement "if (uVar2 <= *(uint *)(param_1 + 0x30)) {\n        if (*(uint *)(param_1 + 0x30) != uVar2) {\n          return;\n        }\n        if (uVar11 <= *(uint *)(param_1 + 0x34)) {\n          return;\n        }\n      }" (if "if") (parenthesized_expression "(uVar2 <= *(uint *)(param_1 + 0x30))" (( "(") (binary_expression "uVar2 <= *(uint *)(param_1 + 0x30)" (identifier "uVar2") (<= "<=") (pointer_expression "*(uint *)(param_1 + 0x30)" (* "*") (cast_expression "(uint *)(param_1 + 0x30)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")"))))) () ")")) (compound_statement "{\n        if (*(uint *)(param_1 + 0x30) != uVar2) {\n          return;\n        }\n        if (uVar11 <= *(uint *)(param_1 + 0x34)) {\n          return;\n        }\n      }" ({ "{") (if_statement "if (*(uint *)(param_1 + 0x30) != uVar2) {\n          return;\n        }" (if "if") (parenthesized_expression "(*(uint *)(param_1 + 0x30) != uVar2)" (( "(") (binary_expression "*(uint *)(param_1 + 0x30) != uVar2" (pointer_expression "*(uint *)(param_1 + 0x30)" (* "*") (cast_expression "(uint *)(param_1 + 0x30)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")")))) (!= "!=") (identifier "uVar2")) () ")")) (compound_statement "{\n          return;\n        }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (uVar11 <= *(uint *)(param_1 + 0x34)) {\n          return;\n        }" (if "if") (parenthesized_expression "(uVar11 <= *(uint *)(param_1 + 0x34))" (( "(") (binary_expression "uVar11 <= *(uint *)(param_1 + 0x34)" (identifier "uVar11") (<= "<=") (pointer_expression "*(uint *)(param_1 + 0x34)" (* "*") (cast_expression "(uint *)(param_1 + 0x34)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x34)" (( "(") (binary_expression "param_1 + 0x34" (identifier "param_1") (+ "+") (number_literal "0x34")) () ")"))))) () ")")) (compound_statement "{\n          return;\n        }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}"))) (expression_statement "*(uint *)(param_1 + 0x30) = uVar2;" (assignment_expression "*(uint *)(param_1 + 0x30) = uVar2" (pointer_expression "*(uint *)(param_1 + 0x30)" (* "*") (cast_expression "(uint *)(param_1 + 0x30)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "*(uint *)(param_1 + 0x34) = uVar11;" (assignment_expression "*(uint *)(param_1 + 0x34) = uVar11" (pointer_expression "*(uint *)(param_1 + 0x34)" (* "*") (cast_expression "(uint *)(param_1 + 0x34)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x34)" (( "(") (binary_expression "param_1 + 0x34" (identifier "param_1") (+ "+") (number_literal "0x34")) () ")")))) (= "=") (identifier "uVar11")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")) (else_clause "else {\nLAB_002963b4:\n    iVar3 = *(int *)(*(int *)puVar9 + 8);\n    if (iVar3 == 0) goto LAB_002963c4;\n  }" (else "else") (compound_statement "{\nLAB_002963b4:\n    iVar3 = *(int *)(*(int *)puVar9 + 8);\n    if (iVar3 == 0) goto LAB_002963c4;\n  }" ({ "{") (labeled_statement "LAB_002963b4:\n    iVar3 = *(int *)(*(int *)puVar9 + 8);" (statement_identifier "LAB_002963b4") (: ":") (expression_statement "iVar3 = *(int *)(*(int *)puVar9 + 8);" (assignment_expression "iVar3 = *(int *)(*(int *)puVar9 + 8)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(*(int *)puVar9 + 8)" (* "*") (cast_expression "(int *)(*(int *)puVar9 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (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 "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar9"))) (+ "+") (number_literal "8")) () ")"))))) (; ";"))) (if_statement "if (iVar3 == 0) goto LAB_002963c4;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_002963c4;" (goto "goto") (statement_identifier "LAB_002963c4") (; ";"))) (} "}")))) (if_statement "if (*(char *)(iVar3 + 0xe11) == '\0') {\nLAB_00296184:\n    local_40 = &local_78;\n    iVar5 = *(int *)param_6;\n  }\n  else {\n    iVar3 = *(int *)param_2;\n    if (((((int)(uint)*(byte *)(iVar3 + 4) >> 4 != 2) &&\n         ((uint)(*(int *)(param_1 + 0x28) << 4) >> 0x1c != 2)) || (param_5 == 0)) ||\n       ((-1 < iVar5 || (uVar13 == 0)))) goto LAB_00296184;\n    if (*(int *)(iVar3 + 0x10) == 0 && *(int *)(iVar3 + 0x14) == 0) goto LAB_00296184;\n    if ((*(int *)(param_1 + 0x38) == 0 && *(int *)(param_1 + 0x3c) == 0) ||\n       ((((*(uint *)(param_1 + 0x28) >> 0x1c == (*(byte *)(iVar3 + 4) & 0xf) &&\n          (*(int *)(param_1 + 0x38) == *(int *)(iVar3 + 0x10))) &&\n         (*(int *)(param_1 + 0x3c) == *(int *)(iVar3 + 0x14))) ||\n        ((pcVar4 = *(char **)param_1, *pcVar4 != '_' || (pcVar4[1] != 'Z')))))) goto LAB_00296184;\n    local_58 = *(undefined4 *)(iVar3 + 8);\n    local_54 = *(undefined4 *)(iVar3 + 0xc);\n    local_60 = param_6;\n    local_5c = param_5;\n    if ((*(uint *)(param_1 + 0x28) & 0xe000) != 0) {\nLAB_0029679c:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24);\n      return;\n    }\n    local_34 = (code *)PTR_operator___00435c08;\n    local_2c = (_Map_base<char_const*,std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>,std::allocator<std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>>,std::__detail::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n                *)(this + 0x128);\n    local_78 = *(undefined4 **)(param_1 + 8);\n    local_30 = &local_44;\n    local_6c = *(undefined4 *)(param_1 + 0x34);\n    local_70 = *(undefined4 *)(param_1 + 0x30);\n    local_40 = &local_78;\n    local_74 = uVar13;\n    local_44 = pcVar4;\n    local_48 = std::__detail::\n               _Map_base<char_const*,std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>,std::allocator<std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>>,std::__detail::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n               ::operator[](local_2c,local_30);\n    local_38 = &local_48;\n    local_3c = auStack_50;\n    uVar2 = (uint)in_stack_ffffff70 & 0xffffff;\n    std::\n    _Hashtable<gold::Symbol_location,gold::Symbol_location,std::allocator<gold::Symbol_location>,std::__detail::_Identity,std::equal_to<gold::Symbol_location>,gold::Symbol_location_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&,std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,true>>>>\n              (local_3c,local_48,&local_60,local_38,uVar2,1);\n    local_44 = *(char **)param_1;\n    local_48 = (*local_34)(local_2c,local_30);\n    std::\n    _Hashtable<gold::Symbol_location,gold::Symbol_location,std::allocator<gold::Symbol_location>,std::__detail::_Identity,std::equal_to<gold::Symbol_location>,gold::Symbol_location_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&,std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,true>>>>\n              (local_3c,local_48,local_40,local_38,uVar2 & 0xffffff,1);\n    iVar5 = *(int *)param_6;\n  }" (if "if") (parenthesized_expression "(*(char *)(iVar3 + 0xe11) == '\0')" (( "(") (binary_expression "*(char *)(iVar3 + 0xe11) == '\0'" (pointer_expression "*(char *)(iVar3 + 0xe11)" (* "*") (cast_expression "(char *)(iVar3 + 0xe11)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0xe11)" (( "(") (binary_expression "iVar3 + 0xe11" (identifier "iVar3") (+ "+") (number_literal "0xe11")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\nLAB_00296184:\n    local_40 = &local_78;\n    iVar5 = *(int *)param_6;\n  }" ({ "{") (labeled_statement "LAB_00296184:\n    local_40 = &local_78;" (statement_identifier "LAB_00296184") (: ":") (expression_statement "local_40 = &local_78;" (assignment_expression "local_40 = &local_78" (identifier "local_40") (= "=") (pointer_expression "&local_78" (& "&") (identifier "local_78"))) (; ";"))) (expression_statement "iVar5 = *(int *)param_6;" (assignment_expression "iVar5 = *(int *)param_6" (identifier "iVar5") (= "=") (pointer_expression "*(int *)param_6" (* "*") (cast_expression "(int *)param_6" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_6")))) (; ";")) (} "}")) (else_clause "else {\n    iVar3 = *(int *)param_2;\n    if (((((int)(uint)*(byte *)(iVar3 + 4) >> 4 != 2) &&\n         ((uint)(*(int *)(param_1 + 0x28) << 4) >> 0x1c != 2)) || (param_5 == 0)) ||\n       ((-1 < iVar5 || (uVar13 == 0)))) goto LAB_00296184;\n    if (*(int *)(iVar3 + 0x10) == 0 && *(int *)(iVar3 + 0x14) == 0) goto LAB_00296184;\n    if ((*(int *)(param_1 + 0x38) == 0 && *(int *)(param_1 + 0x3c) == 0) ||\n       ((((*(uint *)(param_1 + 0x28) >> 0x1c == (*(byte *)(iVar3 + 4) & 0xf) &&\n          (*(int *)(param_1 + 0x38) == *(int *)(iVar3 + 0x10))) &&\n         (*(int *)(param_1 + 0x3c) == *(int *)(iVar3 + 0x14))) ||\n        ((pcVar4 = *(char **)param_1, *pcVar4 != '_' || (pcVar4[1] != 'Z')))))) goto LAB_00296184;\n    local_58 = *(undefined4 *)(iVar3 + 8);\n    local_54 = *(undefined4 *)(iVar3 + 0xc);\n    local_60 = param_6;\n    local_5c = param_5;\n    if ((*(uint *)(param_1 + 0x28) & 0xe000) != 0) {\nLAB_0029679c:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24);\n      return;\n    }\n    local_34 = (code *)PTR_operator___00435c08;\n    local_2c = (_Map_base<char_const*,std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>,std::allocator<std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>>,std::__detail::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n                *)(this + 0x128);\n    local_78 = *(undefined4 **)(param_1 + 8);\n    local_30 = &local_44;\n    local_6c = *(undefined4 *)(param_1 + 0x34);\n    local_70 = *(undefined4 *)(param_1 + 0x30);\n    local_40 = &local_78;\n    local_74 = uVar13;\n    local_44 = pcVar4;\n    local_48 = std::__detail::\n               _Map_base<char_const*,std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>,std::allocator<std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>>,std::__detail::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n               ::operator[](local_2c,local_30);\n    local_38 = &local_48;\n    local_3c = auStack_50;\n    uVar2 = (uint)in_stack_ffffff70 & 0xffffff;\n    std::\n    _Hashtable<gold::Symbol_location,gold::Symbol_location,std::allocator<gold::Symbol_location>,std::__detail::_Identity,std::equal_to<gold::Symbol_location>,gold::Symbol_location_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&,std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,true>>>>\n              (local_3c,local_48,&local_60,local_38,uVar2,1);\n    local_44 = *(char **)param_1;\n    local_48 = (*local_34)(local_2c,local_30);\n    std::\n    _Hashtable<gold::Symbol_location,gold::Symbol_location,std::allocator<gold::Symbol_location>,std::__detail::_Identity,std::equal_to<gold::Symbol_location>,gold::Symbol_location_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&,std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,true>>>>\n              (local_3c,local_48,local_40,local_38,uVar2 & 0xffffff,1);\n    iVar5 = *(int *)param_6;\n  }" (else "else") (compound_statement "{\n    iVar3 = *(int *)param_2;\n    if (((((int)(uint)*(byte *)(iVar3 + 4) >> 4 != 2) &&\n         ((uint)(*(int *)(param_1 + 0x28) << 4) >> 0x1c != 2)) || (param_5 == 0)) ||\n       ((-1 < iVar5 || (uVar13 == 0)))) goto LAB_00296184;\n    if (*(int *)(iVar3 + 0x10) == 0 && *(int *)(iVar3 + 0x14) == 0) goto LAB_00296184;\n    if ((*(int *)(param_1 + 0x38) == 0 && *(int *)(param_1 + 0x3c) == 0) ||\n       ((((*(uint *)(param_1 + 0x28) >> 0x1c == (*(byte *)(iVar3 + 4) & 0xf) &&\n          (*(int *)(param_1 + 0x38) == *(int *)(iVar3 + 0x10))) &&\n         (*(int *)(param_1 + 0x3c) == *(int *)(iVar3 + 0x14))) ||\n        ((pcVar4 = *(char **)param_1, *pcVar4 != '_' || (pcVar4[1] != 'Z')))))) goto LAB_00296184;\n    local_58 = *(undefined4 *)(iVar3 + 8);\n    local_54 = *(undefined4 *)(iVar3 + 0xc);\n    local_60 = param_6;\n    local_5c = param_5;\n    if ((*(uint *)(param_1 + 0x28) & 0xe000) != 0) {\nLAB_0029679c:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24);\n      return;\n    }\n    local_34 = (code *)PTR_operator___00435c08;\n    local_2c = (_Map_base<char_const*,std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>,std::allocator<std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>>,std::__detail::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n                *)(this + 0x128);\n    local_78 = *(undefined4 **)(param_1 + 8);\n    local_30 = &local_44;\n    local_6c = *(undefined4 *)(param_1 + 0x34);\n    local_70 = *(undefined4 *)(param_1 + 0x30);\n    local_40 = &local_78;\n    local_74 = uVar13;\n    local_44 = pcVar4;\n    local_48 = std::__detail::\n               _Map_base<char_const*,std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>,std::allocator<std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>>,std::__detail::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n               ::operator[](local_2c,local_30);\n    local_38 = &local_48;\n    local_3c = auStack_50;\n    uVar2 = (uint)in_stack_ffffff70 & 0xffffff;\n    std::\n    _Hashtable<gold::Symbol_location,gold::Symbol_location,std::allocator<gold::Symbol_location>,std::__detail::_Identity,std::equal_to<gold::Symbol_location>,gold::Symbol_location_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&,std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,true>>>>\n              (local_3c,local_48,&local_60,local_38,uVar2,1);\n    local_44 = *(char **)param_1;\n    local_48 = (*local_34)(local_2c,local_30);\n    std::\n    _Hashtable<gold::Symbol_location,gold::Symbol_location,std::allocator<gold::Symbol_location>,std::__detail::_Identity,std::equal_to<gold::Symbol_location>,gold::Symbol_location_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&,std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,true>>>>\n              (local_3c,local_48,local_40,local_38,uVar2 & 0xffffff,1);\n    iVar5 = *(int *)param_6;\n  }" ({ "{") (expression_statement "iVar3 = *(int *)param_2;" (assignment_expression "iVar3 = *(int *)param_2" (identifier "iVar3") (= "=") (pointer_expression "*(int *)param_2" (* "*") (cast_expression "(int *)param_2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_2")))) (; ";")) (if_statement "if (((((int)(uint)*(byte *)(iVar3 + 4) >> 4 != 2) &&\n         ((uint)(*(int *)(param_1 + 0x28) << 4) >> 0x1c != 2)) || (param_5 == 0)) ||\n       ((-1 < iVar5 || (uVar13 == 0)))) goto LAB_00296184;" (if "if") (parenthesized_expression "(((((int)(uint)*(byte *)(iVar3 + 4) >> 4 != 2) &&\n         ((uint)(*(int *)(param_1 + 0x28) << 4) >> 0x1c != 2)) || (param_5 == 0)) ||\n       ((-1 < iVar5 || (uVar13 == 0))))" (( "(") (binary_expression "((((int)(uint)*(byte *)(iVar3 + 4) >> 4 != 2) &&\n         ((uint)(*(int *)(param_1 + 0x28) << 4) >> 0x1c != 2)) || (param_5 == 0)) ||\n       ((-1 < iVar5 || (uVar13 == 0)))" (parenthesized_expression "((((int)(uint)*(byte *)(iVar3 + 4) >> 4 != 2) &&\n         ((uint)(*(int *)(param_1 + 0x28) << 4) >> 0x1c != 2)) || (param_5 == 0))" (( "(") (binary_expression "(((int)(uint)*(byte *)(iVar3 + 4) >> 4 != 2) &&\n         ((uint)(*(int *)(param_1 + 0x28) << 4) >> 0x1c != 2)) || (param_5 == 0)" (parenthesized_expression "(((int)(uint)*(byte *)(iVar3 + 4) >> 4 != 2) &&\n         ((uint)(*(int *)(param_1 + 0x28) << 4) >> 0x1c != 2))" (( "(") (binary_expression "((int)(uint)*(byte *)(iVar3 + 4) >> 4 != 2) &&\n         ((uint)(*(int *)(param_1 + 0x28) << 4) >> 0x1c != 2)" (parenthesized_expression "((int)(uint)*(byte *)(iVar3 + 4) >> 4 != 2)" (( "(") (binary_expression "(int)(uint)*(byte *)(iVar3 + 4) >> 4 != 2" (binary_expression "(int)(uint)*(byte *)(iVar3 + 4) >> 4" (binary_expression "(int)(uint)*(byte *)(iVar3 + 4)" (cast_expression "(int)(uint)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (cast_expression "(byte *)(iVar3 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 4)" (( "(") (binary_expression "iVar3 + 4" (identifier "iVar3") (+ "+") (number_literal "4")) () ")")))) (>> ">>") (number_literal "4")) (!= "!=") (number_literal "2")) () ")")) (&& "&&") (parenthesized_expression "((uint)(*(int *)(param_1 + 0x28) << 4) >> 0x1c != 2)" (( "(") (binary_expression "(uint)(*(int *)(param_1 + 0x28) << 4) >> 0x1c != 2" (binary_expression "(uint)(*(int *)(param_1 + 0x28) << 4) >> 0x1c" (call_expression "(uint)(*(int *)(param_1 + 0x28) << 4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(int *)(param_1 + 0x28) << 4)" (( "(") (binary_expression "*(int *)(param_1 + 0x28) << 4" (pointer_expression "*(int *)(param_1 + 0x28)" (* "*") (cast_expression "(int *)(param_1 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (<< "<<") (number_literal "4")) () ")"))) (>> ">>") (number_literal "0x1c")) (!= "!=") (number_literal "2")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(param_5 == 0)" (( "(") (binary_expression "param_5 == 0" (identifier "param_5") (== "==") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((-1 < iVar5 || (uVar13 == 0)))" (( "(") (parenthesized_expression "(-1 < iVar5 || (uVar13 == 0))" (( "(") (binary_expression "-1 < iVar5 || (uVar13 == 0)" (binary_expression "-1 < iVar5" (number_literal "-1") (< "<") (identifier "iVar5")) (|| "||") (parenthesized_expression "(uVar13 == 0)" (( "(") (binary_expression "uVar13 == 0" (identifier "uVar13") (== "==") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_00296184;" (goto "goto") (statement_identifier "LAB_00296184") (; ";"))) (if_statement "if (*(int *)(iVar3 + 0x10) == 0 && *(int *)(iVar3 + 0x14) == 0) goto LAB_00296184;" (if "if") (parenthesized_expression "(*(int *)(iVar3 + 0x10) == 0 && *(int *)(iVar3 + 0x14) == 0)" (( "(") (binary_expression "*(int *)(iVar3 + 0x10) == 0 && *(int *)(iVar3 + 0x14) == 0" (binary_expression "*(int *)(iVar3 + 0x10) == 0" (pointer_expression "*(int *)(iVar3 + 0x10)" (* "*") (cast_expression "(int *)(iVar3 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x10)" (( "(") (binary_expression "iVar3 + 0x10" (identifier "iVar3") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (number_literal "0")) (&& "&&") (binary_expression "*(int *)(iVar3 + 0x14) == 0" (pointer_expression "*(int *)(iVar3 + 0x14)" (* "*") (cast_expression "(int *)(iVar3 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x14)" (( "(") (binary_expression "iVar3 + 0x14" (identifier "iVar3") (+ "+") (number_literal "0x14")) () ")")))) (== "==") (number_literal "0"))) () ")")) (goto_statement "goto LAB_00296184;" (goto "goto") (statement_identifier "LAB_00296184") (; ";"))) (if_statement "if ((*(int *)(param_1 + 0x38) == 0 && *(int *)(param_1 + 0x3c) == 0) ||\n       ((((*(uint *)(param_1 + 0x28) >> 0x1c == (*(byte *)(iVar3 + 4) & 0xf) &&\n          (*(int *)(param_1 + 0x38) == *(int *)(iVar3 + 0x10))) &&\n         (*(int *)(param_1 + 0x3c) == *(int *)(iVar3 + 0x14))) ||\n        ((pcVar4 = *(char **)param_1, *pcVar4 != '_' || (pcVar4[1] != 'Z')))))) goto LAB_00296184;" (if "if") (parenthesized_expression "((*(int *)(param_1 + 0x38) == 0 && *(int *)(param_1 + 0x3c) == 0) ||\n       ((((*(uint *)(param_1 + 0x28) >> 0x1c == (*(byte *)(iVar3 + 4) & 0xf) &&\n          (*(int *)(param_1 + 0x38) == *(int *)(iVar3 + 0x10))) &&\n         (*(int *)(param_1 + 0x3c) == *(int *)(iVar3 + 0x14))) ||\n        ((pcVar4 = *(char **)param_1, *pcVar4 != '_' || (pcVar4[1] != 'Z'))))))" (( "(") (binary_expression "(*(int *)(param_1 + 0x38) == 0 && *(int *)(param_1 + 0x3c) == 0) ||\n       ((((*(uint *)(param_1 + 0x28) >> 0x1c == (*(byte *)(iVar3 + 4) & 0xf) &&\n          (*(int *)(param_1 + 0x38) == *(int *)(iVar3 + 0x10))) &&\n         (*(int *)(param_1 + 0x3c) == *(int *)(iVar3 + 0x14))) ||\n        ((pcVar4 = *(char **)param_1, *pcVar4 != '_' || (pcVar4[1] != 'Z')))))" (parenthesized_expression "(*(int *)(param_1 + 0x38) == 0 && *(int *)(param_1 + 0x3c) == 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x38) == 0 && *(int *)(param_1 + 0x3c) == 0" (binary_expression "*(int *)(param_1 + 0x38) == 0" (pointer_expression "*(int *)(param_1 + 0x38)" (* "*") (cast_expression "(int *)(param_1 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")")))) (== "==") (number_literal "0")) (&& "&&") (binary_expression "*(int *)(param_1 + 0x3c) == 0" (pointer_expression "*(int *)(param_1 + 0x3c)" (* "*") (cast_expression "(int *)(param_1 + 0x3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x3c)" (( "(") (binary_expression "param_1 + 0x3c" (identifier "param_1") (+ "+") (number_literal "0x3c")) () ")")))) (== "==") (number_literal "0"))) () ")")) (|| "||") (parenthesized_expression "((((*(uint *)(param_1 + 0x28) >> 0x1c == (*(byte *)(iVar3 + 4) & 0xf) &&\n          (*(int *)(param_1 + 0x38) == *(int *)(iVar3 + 0x10))) &&\n         (*(int *)(param_1 + 0x3c) == *(int *)(iVar3 + 0x14))) ||\n        ((pcVar4 = *(char **)param_1, *pcVar4 != '_' || (pcVar4[1] != 'Z')))))" (( "(") (parenthesized_expression "(((*(uint *)(param_1 + 0x28) >> 0x1c == (*(byte *)(iVar3 + 4) & 0xf) &&\n          (*(int *)(param_1 + 0x38) == *(int *)(iVar3 + 0x10))) &&\n         (*(int *)(param_1 + 0x3c) == *(int *)(iVar3 + 0x14))) ||\n        ((pcVar4 = *(char **)param_1, *pcVar4 != '_' || (pcVar4[1] != 'Z'))))" (( "(") (binary_expression "((*(uint *)(param_1 + 0x28) >> 0x1c == (*(byte *)(iVar3 + 4) & 0xf) &&\n          (*(int *)(param_1 + 0x38) == *(int *)(iVar3 + 0x10))) &&\n         (*(int *)(param_1 + 0x3c) == *(int *)(iVar3 + 0x14))) ||\n        ((pcVar4 = *(char **)param_1, *pcVar4 != '_' || (pcVar4[1] != 'Z')))" (parenthesized_expression "((*(uint *)(param_1 + 0x28) >> 0x1c == (*(byte *)(iVar3 + 4) & 0xf) &&\n          (*(int *)(param_1 + 0x38) == *(int *)(iVar3 + 0x10))) &&\n         (*(int *)(param_1 + 0x3c) == *(int *)(iVar3 + 0x14)))" (( "(") (binary_expression "(*(uint *)(param_1 + 0x28) >> 0x1c == (*(byte *)(iVar3 + 4) & 0xf) &&\n          (*(int *)(param_1 + 0x38) == *(int *)(iVar3 + 0x10))) &&\n         (*(int *)(param_1 + 0x3c) == *(int *)(iVar3 + 0x14))" (parenthesized_expression "(*(uint *)(param_1 + 0x28) >> 0x1c == (*(byte *)(iVar3 + 4) & 0xf) &&\n          (*(int *)(param_1 + 0x38) == *(int *)(iVar3 + 0x10)))" (( "(") (binary_expression "*(uint *)(param_1 + 0x28) >> 0x1c == (*(byte *)(iVar3 + 4) & 0xf) &&\n          (*(int *)(param_1 + 0x38) == *(int *)(iVar3 + 0x10))" (binary_expression "*(uint *)(param_1 + 0x28) >> 0x1c == (*(byte *)(iVar3 + 4) & 0xf)" (binary_expression "*(uint *)(param_1 + 0x28) >> 0x1c" (pointer_expression "*(uint *)(param_1 + 0x28)" (* "*") (cast_expression "(uint *)(param_1 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (>> ">>") (number_literal "0x1c")) (== "==") (parenthesized_expression "(*(byte *)(iVar3 + 4) & 0xf)" (( "(") (binary_expression "*(byte *)(iVar3 + 4) & 0xf" (pointer_expression "*(byte *)(iVar3 + 4)" (* "*") (cast_expression "(byte *)(iVar3 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 4)" (( "(") (binary_expression "iVar3 + 4" (identifier "iVar3") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "0xf")) () ")"))) (&& "&&") (parenthesized_expression "(*(int *)(param_1 + 0x38) == *(int *)(iVar3 + 0x10))" (( "(") (binary_expression "*(int *)(param_1 + 0x38) == *(int *)(iVar3 + 0x10)" (pointer_expression "*(int *)(param_1 + 0x38)" (* "*") (cast_expression "(int *)(param_1 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")")))) (== "==") (pointer_expression "*(int *)(iVar3 + 0x10)" (* "*") (cast_expression "(int *)(iVar3 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x10)" (( "(") (binary_expression "iVar3 + 0x10" (identifier "iVar3") (+ "+") (number_literal "0x10")) () ")"))))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(param_1 + 0x3c) == *(int *)(iVar3 + 0x14))" (( "(") (binary_expression "*(int *)(param_1 + 0x3c) == *(int *)(iVar3 + 0x14)" (pointer_expression "*(int *)(param_1 + 0x3c)" (* "*") (cast_expression "(int *)(param_1 + 0x3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x3c)" (( "(") (binary_expression "param_1 + 0x3c" (identifier "param_1") (+ "+") (number_literal "0x3c")) () ")")))) (== "==") (pointer_expression "*(int *)(iVar3 + 0x14)" (* "*") (cast_expression "(int *)(iVar3 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x14)" (( "(") (binary_expression "iVar3 + 0x14" (identifier "iVar3") (+ "+") (number_literal "0x14")) () ")"))))) () ")"))) () ")")) (|| "||") (parenthesized_expression "((pcVar4 = *(char **)param_1, *pcVar4 != '_' || (pcVar4[1] != 'Z')))" (( "(") (parenthesized_expression "(pcVar4 = *(char **)param_1, *pcVar4 != '_' || (pcVar4[1] != 'Z'))" (( "(") (comma_expression "pcVar4 = *(char **)param_1, *pcVar4 != '_' || (pcVar4[1] != 'Z')" (assignment_expression "pcVar4 = *(char **)param_1" (identifier "pcVar4") (= "=") (pointer_expression "*(char **)param_1" (* "*") (cast_expression "(char **)param_1" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "param_1")))) (, ",") (binary_expression "*pcVar4 != '_' || (pcVar4[1] != 'Z')" (binary_expression "*pcVar4 != '_'" (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) (!= "!=") (char_literal "'_'" (' "'") (character "_") (' "'"))) (|| "||") (parenthesized_expression "(pcVar4[1] != 'Z')" (( "(") (binary_expression "pcVar4[1] != 'Z'" (subscript_expression "pcVar4[1]" (identifier "pcVar4") ([ "[") (number_literal "1") (] "]")) (!= "!=") (char_literal "'Z'" (' "'") (character "Z") (' "'"))) () ")")))) () ")")) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_00296184;" (goto "goto") (statement_identifier "LAB_00296184") (; ";"))) (expression_statement "local_58 = *(undefined4 *)(iVar3 + 8);" (assignment_expression "local_58 = *(undefined4 *)(iVar3 + 8)" (identifier "local_58") (= "=") (pointer_expression "*(undefined4 *)(iVar3 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 8)" (( "(") (binary_expression "iVar3 + 8" (identifier "iVar3") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "local_54 = *(undefined4 *)(iVar3 + 0xc);" (assignment_expression "local_54 = *(undefined4 *)(iVar3 + 0xc)" (identifier "local_54") (= "=") (pointer_expression "*(undefined4 *)(iVar3 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0xc)" (( "(") (binary_expression "iVar3 + 0xc" (identifier "iVar3") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "local_60 = param_6;" (assignment_expression "local_60 = param_6" (identifier "local_60") (= "=") (identifier "param_6")) (; ";")) (expression_statement "local_5c = param_5;" (assignment_expression "local_5c = param_5" (identifier "local_5c") (= "=") (identifier "param_5")) (; ";")) (if_statement "if ((*(uint *)(param_1 + 0x28) & 0xe000) != 0) {\nLAB_0029679c:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24);\n      return;\n    }" (if "if") (parenthesized_expression "((*(uint *)(param_1 + 0x28) & 0xe000) != 0)" (( "(") (binary_expression "(*(uint *)(param_1 + 0x28) & 0xe000) != 0" (parenthesized_expression "(*(uint *)(param_1 + 0x28) & 0xe000)" (( "(") (binary_expression "*(uint *)(param_1 + 0x28) & 0xe000" (pointer_expression "*(uint *)(param_1 + 0x28)" (* "*") (cast_expression "(uint *)(param_1 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (& "&") (number_literal "0xe000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0029679c:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24);\n      return;\n    }" ({ "{") (labeled_statement "LAB_0029679c:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24);" (statement_identifier "LAB_0029679c") (: ":") (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24)" (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 + 0x3c24)" (( "(") (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 + 0x3c24" (identifier "PTR_DAT_0043226c") (+ "+") (number_literal "0x3c24")) () ")"))) (; ";"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "local_34 = (code *)PTR_operator___00435c08;" (assignment_expression "local_34 = (code *)PTR_operator___00435c08" (identifier "local_34") (= "=") (cast_expression "(code *)PTR_operator___00435c08" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator___00435c08"))) (; ";")) (expression_statement "local_2c = (_Map_base<char_const*,std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>,std::allocator<std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>>,std::__detail::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n                *)(this + 0x128);" (assignment_expression "local_2c = (_Map_base<char_const*,std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>,std::allocator<std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>>,std::__detail::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n                *)(this + 0x128)" (identifier "local_2c") (= "=") (call_expression "(_Map_base<char_const*,std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>,std::allocator<std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>>,std::__detail::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n                *)(this + 0x128)" (parenthesized_expression "(_Map_base<char_const*,std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>,std::allocator<std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>>,std::__detail::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n                *)" (( "(") (ERROR "_Map_base<char_const*,std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>,std::allocator<std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>>,std::__detail::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::" (comma_expression "_Map_base<char_const*,std" (binary_expression "_Map_base<char_const" (identifier "_Map_base") (< "<") (identifier "char_const")) (ERROR "*" (* "*")) (, ",") (identifier "std")) (: ":") (: ":") (comma_expression "pair<char_const*const,std" (binary_expression "pair<char_const*const" (identifier "pair") (< "<") (binary_expression "char_const*const" (identifier "char_const") (* "*") (identifier "const"))) (, ",") (identifier "std")) (: ":") (: ":") (binary_expression "unordered_set<gold" (identifier "unordered_set") (< "<") (identifier "gold")) (: ":") (: ":") (comma_expression "Symbol_location,gold" (identifier "Symbol_location") (, ",") (identifier "gold")) (: ":") (: ":") (comma_expression "Symbol_location_hash,std" (identifier "Symbol_location_hash") (, ",") (identifier "std")) (: ":") (: ":") (binary_expression "equal_to<gold" (identifier "equal_to") (< "<") (identifier "gold")) (: ":") (: ":") (binary_expression "Symbol_location>,std" (identifier "Symbol_location") (> ">") (ERROR "," (, ",")) (identifier "std")) (: ":") (: ":") (binary_expression "allocator<gold" (identifier "allocator") (< "<") (identifier "gold")) (: ":") (: ":") (binary_expression "Symbol_location>>>,std" (identifier "Symbol_location") (>> ">>") (ERROR ">," (> ">") (, ",")) (identifier "std")) (: ":") (: ":") (binary_expression "allocator<std" (identifier "allocator") (< "<") (identifier "std")) (: ":") (: ":") (comma_expression "pair<char_const*const,std" (binary_expression "pair<char_const*const" (identifier "pair") (< "<") (binary_expression "char_const*const" (identifier "char_const") (* "*") (identifier "const"))) (, ",") (identifier "std")) (: ":") (: ":") (binary_expression "unordered_set<gold" (identifier "unordered_set") (< "<") (identifier "gold")) (: ":") (: ":") (comma_expression "Symbol_location,gold" (identifier "Symbol_location") (, ",") (identifier "gold")) (: ":") (: ":") (comma_expression "Symbol_location_hash,std" (identifier "Symbol_location_hash") (, ",") (identifier "std")) (: ":") (: ":") (binary_expression "equal_to<gold" (identifier "equal_to") (< "<") (identifier "gold")) (: ":") (: ":") (binary_expression "Symbol_location>,std" (identifier "Symbol_location") (> ">") (ERROR "," (, ",")) (identifier "std")) (: ":") (: ":") (binary_expression "allocator<gold" (identifier "allocator") (< "<") (identifier "gold")) (: ":") (: ":") (binary_expression "Symbol_location>>>>,std" (identifier "Symbol_location") (>> ">>") (ERROR ">>," (>> ">>") (, ",")) (identifier "std")) (: ":") (: ":") (identifier "__detail") (: ":") (: ":") (comma_expression "_Select1st,std" (identifier "_Select1st") (, ",") (identifier "std")) (: ":") (: ":") (comma_expression "equal_to<char_const*>,std" (binary_expression "equal_to<char_const" (identifier "equal_to") (< "<") (identifier "char_const")) (ERROR "*>" (* "*") (> ">")) (, ",") (identifier "std")) (: ":") (: ":") (comma_expression "hash<char_const*>,std" (binary_expression "hash<char_const" (identifier "hash") (< "<") (identifier "char_const")) (ERROR "*>" (* "*") (> ">")) (, ",") (identifier "std")) (: ":") (: ":") (identifier "__detail") (: ":") (: ":") (comma_expression "_Mod_range_hashing,std" (identifier "_Mod_range_hashing") (, ",") (identifier "std")) (: ":") (: ":") (identifier "__detail") (: ":") (: ":") (comma_expression "_Default_ranged_hash,std" (identifier "_Default_ranged_hash") (, ",") (identifier "std")) (: ":") (: ":") (identifier "__detail") (: ":") (: ":") (comma_expression "_Prime_rehash_policy,std" (identifier "_Prime_rehash_policy") (, ",") (identifier "std")) (: ":") (: ":") (identifier "__detail") (: ":") (: ":")) (comma_expression "_Hashtable_traits<false,false,true>,true>\n                *" (binary_expression "_Hashtable_traits<false" (identifier "_Hashtable_traits") (< "<") (false "false")) (, ",") (comma_expression "false,true>,true>\n                *" (false "false") (, ",") (binary_expression "true>,true>\n                *" (binary_expression "true>,true" (true "true") (> ">") (ERROR "," (, ",")) (true "true")) (> ">") (pointer_expression "*" (* "*") (identifier ""))))) () ")")) (argument_list "(this + 0x128)" (( "(") (binary_expression "this + 0x128" (identifier "this") (+ "+") (number_literal "0x128")) () ")")))) (; ";")) (expression_statement "local_78 = *(undefined4 **)(param_1 + 8);" (assignment_expression "local_78 = *(undefined4 **)(param_1 + 8)" (identifier "local_78") (= "=") (pointer_expression "*(undefined4 **)(param_1 + 8)" (* "*") (cast_expression "(undefined4 **)(param_1 + 8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "local_30 = &local_44;" (assignment_expression "local_30 = &local_44" (identifier "local_30") (= "=") (pointer_expression "&local_44" (& "&") (identifier "local_44"))) (; ";")) (expression_statement "local_6c = *(undefined4 *)(param_1 + 0x34);" (assignment_expression "local_6c = *(undefined4 *)(param_1 + 0x34)" (identifier "local_6c") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x34)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x34)" (( "(") (binary_expression "param_1 + 0x34" (identifier "param_1") (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (expression_statement "local_70 = *(undefined4 *)(param_1 + 0x30);" (assignment_expression "local_70 = *(undefined4 *)(param_1 + 0x30)" (identifier "local_70") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x30)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "local_40 = &local_78;" (assignment_expression "local_40 = &local_78" (identifier "local_40") (= "=") (pointer_expression "&local_78" (& "&") (identifier "local_78"))) (; ";")) (expression_statement "local_74 = uVar13;" (assignment_expression "local_74 = uVar13" (identifier "local_74") (= "=") (identifier "uVar13")) (; ";")) (expression_statement "local_44 = pcVar4;" (assignment_expression "local_44 = pcVar4" (identifier "local_44") (= "=") (identifier "pcVar4")) (; ";")) (ERROR "local_48 = std::__detail::\n               _Map_base<char_const*,std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>,std::allocator<std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>>,std::" (assignment_expression "local_48 = std" (identifier "local_48") (= "=") (identifier "std")) (: ":") (: ":") (comma_expression "__detail::\n               _Map_base<char_const*,std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std" (identifier "__detail") (ERROR "::\n               _Map_base<char_const*,std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>" (: ":") (: ":") (comma_expression "_Map_base<char_const*,std" (binary_expression "_Map_base<char_const" (identifier "_Map_base") (< "<") (identifier "char_const")) (ERROR "*" (* "*")) (, ",") (identifier "std")) (: ":") (: ":") (comma_expression "pair<char_const*const,std" (binary_expression "pair<char_const*const" (identifier "pair") (< "<") (binary_expression "char_const*const" (identifier "char_const") (* "*") (identifier "const"))) (, ",") (identifier "std")) (: ":") (: ":") (binary_expression "unordered_set<gold" (identifier "unordered_set") (< "<") (identifier "gold")) (: ":") (: ":") (comma_expression "Symbol_location,gold" (identifier "Symbol_location") (, ",") (identifier "gold")) (: ":") (: ":") (comma_expression "Symbol_location_hash,std" (identifier "Symbol_location_hash") (, ",") (identifier "std")) (: ":") (: ":") (binary_expression "equal_to<gold" (identifier "equal_to") (< "<") (identifier "gold")) (: ":") (: ":") (identifier "Symbol_location") (> ">")) (, ",") (identifier "std")) (: ":") (: ":") (binary_expression "allocator<gold" (identifier "allocator") (< "<") (identifier "gold")) (: ":") (: ":") (binary_expression "Symbol_location>>>,std" (identifier "Symbol_location") (>> ">>") (ERROR ">," (> ">") (, ",")) (identifier "std")) (: ":") (: ":") (binary_expression "allocator<std" (identifier "allocator") (< "<") (identifier "std")) (: ":") (: ":") (comma_expression "pair<char_const*const,std" (binary_expression "pair<char_const*const" (identifier "pair") (< "<") (binary_expression "char_const*const" (identifier "char_const") (* "*") (identifier "const"))) (, ",") (identifier "std")) (: ":") (: ":") (binary_expression "unordered_set<gold" (identifier "unordered_set") (< "<") (identifier "gold")) (: ":") (: ":") (comma_expression "Symbol_location,gold" (identifier "Symbol_location") (, ",") (identifier "gold")) (: ":") (: ":") (comma_expression "Symbol_location_hash,std" (identifier "Symbol_location_hash") (, ",") (identifier "std")) (: ":") (: ":") (binary_expression "equal_to<gold" (identifier "equal_to") (< "<") (identifier "gold")) (: ":") (: ":") (binary_expression "Symbol_location>,std" (identifier "Symbol_location") (> ">") (ERROR "," (, ",")) (identifier "std")) (: ":") (: ":") (binary_expression "allocator<gold" (identifier "allocator") (< "<") (identifier "gold")) (: ":") (: ":") (binary_expression "Symbol_location>>>>,std" (identifier "Symbol_location") (>> ">>") (ERROR ">>," (>> ">>") (, ",")) (identifier "std")) (: ":") (: ":")) (labeled_statement "__detail::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n               ::operator[](local_2c,local_30);" (statement_identifier "__detail") (ERROR "::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std:" (: ":") (: ":") (comma_expression "_Select1st,std" (identifier "_Select1st") (, ",") (identifier "std")) (: ":") (: ":") (comma_expression "equal_to<char_const*>,std" (binary_expression "equal_to<char_const" (identifier "equal_to") (< "<") (identifier "char_const")) (ERROR "*>" (* "*") (> ">")) (, ",") (identifier "std")) (: ":") (: ":") (comma_expression "hash<char_const*>,std" (binary_expression "hash<char_const" (identifier "hash") (< "<") (identifier "char_const")) (ERROR "*>" (* "*") (> ">")) (, ",") (identifier "std")) (: ":")) (: ":") (labeled_statement "__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n               ::operator[](local_2c,local_30);" (statement_identifier "__detail") (ERROR "::_Mod_range_hashing,std:" (: ":") (: ":") (comma_expression "_Mod_range_hashing,std" (identifier "_Mod_range_hashing") (, ",") (identifier "std")) (: ":")) (: ":") (labeled_statement "__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n               ::operator[](local_2c,local_30);" (statement_identifier "__detail") (ERROR "::_Default_ranged_hash,std:" (: ":") (: ":") (comma_expression "_Default_ranged_hash,std" (identifier "_Default_ranged_hash") (, ",") (identifier "std")) (: ":")) (: ":") (labeled_statement "__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>\n               ::operator[](local_2c,local_30);" (statement_identifier "__detail") (ERROR "::_Prime_rehash_policy,std:" (: ":") (: ":") (comma_expression "_Prime_rehash_policy,std" (identifier "_Prime_rehash_policy") (, ",") (identifier "std")) (: ":")) (: ":") (labeled_statement "__detail::_Hashtable_traits<false,false,true>,true>\n               ::operator[](local_2c,local_30);" (statement_identifier "__detail") (: ":") (ERROR ":" (: ":")) (expression_statement "_Hashtable_traits<false,false,true>,true>\n               ::operator[](local_2c,local_30);" (comma_expression "_Hashtable_traits<false,false,true>,true>\n               ::operator[](local_2c,local_30)" (binary_expression "_Hashtable_traits<false" (identifier "_Hashtable_traits") (< "<") (false "false")) (, ",") (comma_expression "false,true>,true>\n               ::operator[](local_2c,local_30)" (false "false") (, ",") (binary_expression "true>,true>\n               ::operator[](local_2c,local_30)" (binary_expression "true>,true" (true "true") (> ">") (ERROR "," (, ",")) (true "true")) (> ">") (ERROR "::" (: ":") (: ":")) (call_expression "operator[](local_2c,local_30)" (subscript_expression "operator[]" (identifier "operator") ([ "[") (identifier "") (] "]")) (argument_list "(local_2c,local_30)" (( "(") (identifier "local_2c") (, ",") (identifier "local_30") () ")")))))) (; ";"))))))) (expression_statement "local_38 = &local_48;" (assignment_expression "local_38 = &local_48" (identifier "local_38") (= "=") (pointer_expression "&local_48" (& "&") (identifier "local_48"))) (; ";")) (expression_statement "local_3c = auStack_50;" (assignment_expression "local_3c = auStack_50" (identifier "local_3c") (= "=") (identifier "auStack_50")) (; ";")) (expression_statement "uVar2 = (uint)in_stack_ffffff70 & 0xffffff;" (assignment_expression "uVar2 = (uint)in_stack_ffffff70 & 0xffffff" (identifier "uVar2") (= "=") (binary_expression "(uint)in_stack_ffffff70 & 0xffffff" (cast_expression "(uint)in_stack_ffffff70" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "in_stack_ffffff70")) (& "&") (number_literal "0xffffff"))) (; ";")) (ERROR "std::\n    _Hashtable<gold::Symbol_location,gold::Symbol_location,std::allocator<gold::Symbol_location>,std::__detail::_Identity,std::equal_to<gold::Symbol_location>,gold::Symbol_location_hash,std::" (comma_expression "std::\n    _Hashtable<gold::Symbol_location,gold::Symbol_location,std::allocator<gold::Symbol_location>,std" (identifier "std") (ERROR "::\n    _Hashtable<gold::Symbol_location,gold::Symbol_location,std::allocator<gold::Symbol_location>" (: ":") (: ":") (binary_expression "_Hashtable<gold" (identifier "_Hashtable") (< "<") (identifier "gold")) (: ":") (: ":") (comma_expression "Symbol_location,gold" (identifier "Symbol_location") (, ",") (identifier "gold")) (: ":") (: ":") (comma_expression "Symbol_location,std" (identifier "Symbol_location") (, ",") (identifier "std")) (: ":") (: ":") (binary_expression "allocator<gold" (identifier "allocator") (< "<") (identifier "gold")) (: ":") (: ":") (identifier "Symbol_location") (> ">")) (, ",") (identifier "std")) (: ":") (: ":") (identifier "__detail") (: ":") (: ":") (comma_expression "_Identity,std" (identifier "_Identity") (, ",") (identifier "std")) (: ":") (: ":") (binary_expression "equal_to<gold" (identifier "equal_to") (< "<") (identifier "gold")) (: ":") (: ":") (binary_expression "Symbol_location>,gold" (identifier "Symbol_location") (> ">") (ERROR "," (, ",")) (identifier "gold")) (: ":") (: ":") (comma_expression "Symbol_location_hash,std" (identifier "Symbol_location_hash") (, ",") (identifier "std")) (: ":") (: ":")) (labeled_statement "__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&,std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,true>>>>\n              (local_3c,local_48,&local_60,local_38,uVar2,1);" (statement_identifier "__detail") (ERROR "::_Mod_range_hashing,std:" (: ":") (: ":") (comma_expression "_Mod_range_hashing,std" (identifier "_Mod_range_hashing") (, ",") (identifier "std")) (: ":")) (: ":") (labeled_statement "__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&,std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,true>>>>\n              (local_3c,local_48,&local_60,local_38,uVar2,1);" (statement_identifier "__detail") (ERROR "::_Default_ranged_hash,std:" (: ":") (: ":") (comma_expression "_Default_ranged_hash,std" (identifier "_Default_ranged_hash") (, ",") (identifier "std")) (: ":")) (: ":") (labeled_statement "__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&,std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,true>>>>\n              (local_3c,local_48,&local_60,local_38,uVar2,1);" (statement_identifier "__detail") (ERROR "::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&,std:" (: ":") (: ":") (comma_expression "_Prime_rehash_policy,std" (identifier "_Prime_rehash_policy") (, ",") (identifier "std")) (: ":") (: ":") (comma_expression "__detail::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&,std" (identifier "__detail") (ERROR "::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&" (: ":") (: ":") (comma_expression "_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold" (binary_expression "_Hashtable_traits<true" (identifier "_Hashtable_traits") (< "<") (true "true")) (, ",") (comma_expression "true,true>>\n    ::\n    _M_insert<gold" (true "true") (, ",") (binary_expression "true>>\n    ::\n    _M_insert<gold" (binary_expression "true>>\n    ::\n    _M_insert" (true "true") (>> ">>") (ERROR "::" (: ":") (: ":")) (identifier "_M_insert")) (< "<") (identifier "gold")))) (: ":") (: ":") (identifier "Symbol_location_const") (& "&")) (, ",") (identifier "std")) (: ":")) (: ":") (labeled_statement "__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,true>>>>\n              (local_3c,local_48,&local_60,local_38,uVar2,1);" (statement_identifier "__detail") (ERROR "::_AllocNode<std::allocator<std:" (: ":") (: ":") (binary_expression "_AllocNode<std" (identifier "_AllocNode") (< "<") (identifier "std")) (: ":") (: ":") (binary_expression "allocator<std" (identifier "allocator") (< "<") (identifier "std")) (: ":")) (: ":") (labeled_statement "__detail::_Hash_node<gold::Symbol_location,true>>>>\n              (local_3c,local_48,&local_60,local_38,uVar2,1);" (statement_identifier "__detail") (ERROR "::_Hash_node<gold:" (: ":") (: ":") (binary_expression "_Hash_node<gold" (identifier "_Hash_node") (< "<") (identifier "gold")) (: ":")) (: ":") (expression_statement "Symbol_location,true>>>>\n              (local_3c,local_48,&local_60,local_38,uVar2,1);" (comma_expression "Symbol_location,true>>>>\n              (local_3c,local_48,&local_60,local_38,uVar2,1)" (identifier "Symbol_location") (, ",") (binary_expression "true>>>>\n              (local_3c,local_48,&local_60,local_38,uVar2,1)" (true "true") (>> ">>") (ERROR ">>" (>> ">>")) (parenthesized_expression "(local_3c,local_48,&local_60,local_38,uVar2,1)" (( "(") (comma_expression "local_3c,local_48,&local_60,local_38,uVar2,1" (identifier "local_3c") (, ",") (comma_expression "local_48,&local_60,local_38,uVar2,1" (identifier "local_48") (, ",") (comma_expression "&local_60,local_38,uVar2,1" (pointer_expression "&local_60" (& "&") (identifier "local_60")) (, ",") (comma_expression "local_38,uVar2,1" (identifier "local_38") (, ",") (comma_expression "uVar2,1" (identifier "uVar2") (, ",") (number_literal "1")))))) () ")")))) (; ";"))))))) (expression_statement "local_44 = *(char **)param_1;" (assignment_expression "local_44 = *(char **)param_1" (identifier "local_44") (= "=") (pointer_expression "*(char **)param_1" (* "*") (cast_expression "(char **)param_1" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "param_1")))) (; ";")) (expression_statement "local_48 = (*local_34)(local_2c,local_30);" (assignment_expression "local_48 = (*local_34)(local_2c,local_30)" (identifier "local_48") (= "=") (call_expression "(*local_34)(local_2c,local_30)" (parenthesized_expression "(*local_34)" (( "(") (pointer_expression "*local_34" (* "*") (identifier "local_34")) () ")")) (argument_list "(local_2c,local_30)" (( "(") (identifier "local_2c") (, ",") (identifier "local_30") () ")")))) (; ";")) (ERROR "std::\n    _Hashtable<gold::Symbol_location,gold::Symbol_location,std::allocator<gold::Symbol_location>,std::__detail::_Identity,std::equal_to<gold::Symbol_location>,gold::Symbol_location_hash,std::" (comma_expression "std::\n    _Hashtable<gold::Symbol_location,gold::Symbol_location,std::allocator<gold::Symbol_location>,std" (identifier "std") (ERROR "::\n    _Hashtable<gold::Symbol_location,gold::Symbol_location,std::allocator<gold::Symbol_location>" (: ":") (: ":") (binary_expression "_Hashtable<gold" (identifier "_Hashtable") (< "<") (identifier "gold")) (: ":") (: ":") (comma_expression "Symbol_location,gold" (identifier "Symbol_location") (, ",") (identifier "gold")) (: ":") (: ":") (comma_expression "Symbol_location,std" (identifier "Symbol_location") (, ",") (identifier "std")) (: ":") (: ":") (binary_expression "allocator<gold" (identifier "allocator") (< "<") (identifier "gold")) (: ":") (: ":") (identifier "Symbol_location") (> ">")) (, ",") (identifier "std")) (: ":") (: ":") (identifier "__detail") (: ":") (: ":") (comma_expression "_Identity,std" (identifier "_Identity") (, ",") (identifier "std")) (: ":") (: ":") (binary_expression "equal_to<gold" (identifier "equal_to") (< "<") (identifier "gold")) (: ":") (: ":") (binary_expression "Symbol_location>,gold" (identifier "Symbol_location") (> ">") (ERROR "," (, ",")) (identifier "gold")) (: ":") (: ":") (comma_expression "Symbol_location_hash,std" (identifier "Symbol_location_hash") (, ",") (identifier "std")) (: ":") (: ":")) (labeled_statement "__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&,std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,true>>>>\n              (local_3c,local_48,local_40,local_38,uVar2 & 0xffffff,1);" (statement_identifier "__detail") (ERROR "::_Mod_range_hashing,std:" (: ":") (: ":") (comma_expression "_Mod_range_hashing,std" (identifier "_Mod_range_hashing") (, ",") (identifier "std")) (: ":")) (: ":") (labeled_statement "__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&,std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,true>>>>\n              (local_3c,local_48,local_40,local_38,uVar2 & 0xffffff,1);" (statement_identifier "__detail") (ERROR "::_Default_ranged_hash,std:" (: ":") (: ":") (comma_expression "_Default_ranged_hash,std" (identifier "_Default_ranged_hash") (, ",") (identifier "std")) (: ":")) (: ":") (labeled_statement "__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&,std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,true>>>>\n              (local_3c,local_48,local_40,local_38,uVar2 & 0xffffff,1);" (statement_identifier "__detail") (ERROR "::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&,std:" (: ":") (: ":") (comma_expression "_Prime_rehash_policy,std" (identifier "_Prime_rehash_policy") (, ",") (identifier "std")) (: ":") (: ":") (comma_expression "__detail::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&,std" (identifier "__detail") (ERROR "::_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold::Symbol_location_const&" (: ":") (: ":") (comma_expression "_Hashtable_traits<true,true,true>>\n    ::\n    _M_insert<gold" (binary_expression "_Hashtable_traits<true" (identifier "_Hashtable_traits") (< "<") (true "true")) (, ",") (comma_expression "true,true>>\n    ::\n    _M_insert<gold" (true "true") (, ",") (binary_expression "true>>\n    ::\n    _M_insert<gold" (binary_expression "true>>\n    ::\n    _M_insert" (true "true") (>> ">>") (ERROR "::" (: ":") (: ":")) (identifier "_M_insert")) (< "<") (identifier "gold")))) (: ":") (: ":") (identifier "Symbol_location_const") (& "&")) (, ",") (identifier "std")) (: ":")) (: ":") (labeled_statement "__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,true>>>>\n              (local_3c,local_48,local_40,local_38,uVar2 & 0xffffff,1);" (statement_identifier "__detail") (ERROR "::_AllocNode<std::allocator<std:" (: ":") (: ":") (binary_expression "_AllocNode<std" (identifier "_AllocNode") (< "<") (identifier "std")) (: ":") (: ":") (binary_expression "allocator<std" (identifier "allocator") (< "<") (identifier "std")) (: ":")) (: ":") (labeled_statement "__detail::_Hash_node<gold::Symbol_location,true>>>>\n              (local_3c,local_48,local_40,local_38,uVar2 & 0xffffff,1);" (statement_identifier "__detail") (ERROR "::_Hash_node<gold:" (: ":") (: ":") (binary_expression "_Hash_node<gold" (identifier "_Hash_node") (< "<") (identifier "gold")) (: ":")) (: ":") (expression_statement "Symbol_location,true>>>>\n              (local_3c,local_48,local_40,local_38,uVar2 & 0xffffff,1);" (comma_expression "Symbol_location,true>>>>\n              (local_3c,local_48,local_40,local_38,uVar2 & 0xffffff,1)" (identifier "Symbol_location") (, ",") (binary_expression "true>>>>\n              (local_3c,local_48,local_40,local_38,uVar2 & 0xffffff,1)" (true "true") (>> ">>") (ERROR ">>" (>> ">>")) (parenthesized_expression "(local_3c,local_48,local_40,local_38,uVar2 & 0xffffff,1)" (( "(") (comma_expression "local_3c,local_48,local_40,local_38,uVar2 & 0xffffff,1" (identifier "local_3c") (, ",") (comma_expression "local_48,local_40,local_38,uVar2 & 0xffffff,1" (identifier "local_48") (, ",") (comma_expression "local_40,local_38,uVar2 & 0xffffff,1" (identifier "local_40") (, ",") (comma_expression "local_38,uVar2 & 0xffffff,1" (identifier "local_38") (, ",") (comma_expression "uVar2 & 0xffffff,1" (binary_expression "uVar2 & 0xffffff" (identifier "uVar2") (& "&") (number_literal "0xffffff")) (, ",") (number_literal "1")))))) () ")")))) (; ";"))))))) (expression_statement "iVar5 = *(int *)param_6;" (assignment_expression "iVar5 = *(int *)param_6" (identifier "iVar5") (= "=") (pointer_expression "*(int *)param_6" (* "*") (cast_expression "(int *)param_6" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_6")))) (; ";")) (} "}")))) (expression_statement "iVar5 = (**(code **)(iVar5 + 0x14))(param_6);" (assignment_expression "iVar5 = (**(code **)(iVar5 + 0x14))(param_6)" (identifier "iVar5") (= "=") (call_expression "(**(code **)(iVar5 + 0x14))(param_6)" (parenthesized_expression "(**(code **)(iVar5 + 0x14))" (( "(") (pointer_expression "**(code **)(iVar5 + 0x14)" (* "*") (pointer_expression "*(code **)(iVar5 + 0x14)" (* "*") (cast_expression "(code **)(iVar5 + 0x14)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + 0x14)" (( "(") (binary_expression "iVar5 + 0x14" (identifier "iVar5") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (argument_list "(param_6)" (( "(") (identifier "param_6") () ")")))) (; ";")) (if_statement "if (iVar5 == 0) {\n    uVar2 = (uint)*(byte *)(*(int *)param_2 + 4);\n    uVar13 = uVar2 & 0xf;\n  }\n  else {\n    uVar2 = (uint)*(byte *)(*(int *)param_2 + 4);\n    uVar13 = *(uint *)(param_1 + 0x28) >> 0x1c;\n  }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar2 = (uint)*(byte *)(*(int *)param_2 + 4);\n    uVar13 = uVar2 & 0xf;\n  }" ({ "{") (expression_statement "uVar2 = (uint)*(byte *)(*(int *)param_2 + 4);" (assignment_expression "uVar2 = (uint)*(byte *)(*(int *)param_2 + 4)" (identifier "uVar2") (= "=") (binary_expression "(uint)*(byte *)(*(int *)param_2 + 4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(*(int *)param_2 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)param_2 + 4)" (( "(") (binary_expression "*(int *)param_2 + 4" (pointer_expression "*(int *)param_2" (* "*") (cast_expression "(int *)param_2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_2"))) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar13 = uVar2 & 0xf;" (assignment_expression "uVar13 = uVar2 & 0xf" (identifier "uVar13") (= "=") (binary_expression "uVar2 & 0xf" (identifier "uVar2") (& "&") (number_literal "0xf"))) (; ";")) (} "}")) (else_clause "else {\n    uVar2 = (uint)*(byte *)(*(int *)param_2 + 4);\n    uVar13 = *(uint *)(param_1 + 0x28) >> 0x1c;\n  }" (else "else") (compound_statement "{\n    uVar2 = (uint)*(byte *)(*(int *)param_2 + 4);\n    uVar13 = *(uint *)(param_1 + 0x28) >> 0x1c;\n  }" ({ "{") (expression_statement "uVar2 = (uint)*(byte *)(*(int *)param_2 + 4);" (assignment_expression "uVar2 = (uint)*(byte *)(*(int *)param_2 + 4)" (identifier "uVar2") (= "=") (binary_expression "(uint)*(byte *)(*(int *)param_2 + 4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(*(int *)param_2 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)param_2 + 4)" (( "(") (binary_expression "*(int *)param_2 + 4" (pointer_expression "*(int *)param_2" (* "*") (cast_expression "(int *)param_2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_2"))) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar13 = *(uint *)(param_1 + 0x28) >> 0x1c;" (assignment_expression "uVar13 = *(uint *)(param_1 + 0x28) >> 0x1c" (identifier "uVar13") (= "=") (binary_expression "*(uint *)(param_1 + 0x28) >> 0x1c" (pointer_expression "*(uint *)(param_1 + 0x28)" (* "*") (cast_expression "(uint *)(param_1 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (>> ">>") (number_literal "0x1c"))) (; ";")) (} "}")))) (expression_statement "uVar6 = FUN_00291650(uVar2 >> 4,*(uint *)(param_6 + 0x2c) >> 0x1f,param_3,param_4);" (assignment_expression "uVar6 = FUN_00291650(uVar2 >> 4,*(uint *)(param_6 + 0x2c) >> 0x1f,param_3,param_4)" (identifier "uVar6") (= "=") (call_expression "FUN_00291650(uVar2 >> 4,*(uint *)(param_6 + 0x2c) >> 0x1f,param_3,param_4)" (identifier "FUN_00291650") (argument_list "(uVar2 >> 4,*(uint *)(param_6 + 0x2c) >> 0x1f,param_3,param_4)" (( "(") (binary_expression "uVar2 >> 4" (identifier "uVar2") (>> ">>") (number_literal "4")) (, ",") (binary_expression "*(uint *)(param_6 + 0x2c) >> 0x1f" (pointer_expression "*(uint *)(param_6 + 0x2c)" (* "*") (cast_expression "(uint *)(param_6 + 0x2c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6 + 0x2c)" (( "(") (binary_expression "param_6 + 0x2c" (identifier "param_6") (+ "+") (number_literal "0x2c")) () ")")))) (>> ">>") (number_literal "0x1f")) (, ",") (identifier "param_3") (, ",") (identifier "param_4") () ")")))) (; ";")) (expression_statement "local_3c = *(undefined1 **)(param_1 + 0x3c);" (assignment_expression "local_3c = *(undefined1 **)(param_1 + 0x3c)" (identifier "local_3c") (= "=") (pointer_expression "*(undefined1 **)(param_1 + 0x3c)" (* "*") (cast_expression "(undefined1 **)(param_1 + 0x3c)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x3c)" (( "(") (binary_expression "param_1 + 0x3c" (identifier "param_1") (+ "+") (number_literal "0x3c")) () ")"))))) (; ";")) (expression_statement "uVar2 = *(uint *)(param_1 + 0x38);" (assignment_expression "uVar2 = *(uint *)(param_1 + 0x38)" (identifier "uVar2") (= "=") (pointer_expression "*(uint *)(param_1 + 0x38)" (* "*") (cast_expression "(uint *)(param_1 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "iVar5 = should_override(param_1,uVar6,uVar13,0,param_6,&local_60,local_40,param_8);" (assignment_expression "iVar5 = should_override(param_1,uVar6,uVar13,0,param_6,&local_60,local_40,param_8)" (identifier "iVar5") (= "=") (call_expression "should_override(param_1,uVar6,uVar13,0,param_6,&local_60,local_40,param_8)" (identifier "should_override") (argument_list "(param_1,uVar6,uVar13,0,param_6,&local_60,local_40,param_8)" (( "(") (identifier "param_1") (, ",") (identifier "uVar6") (, ",") (identifier "uVar13") (, ",") (number_literal "0") (, ",") (identifier "param_6") (, ",") (pointer_expression "&local_60" (& "&") (identifier "local_60")) (, ",") (identifier "local_40") (, ",") (identifier "param_8") () ")")))) (; ";")) (if_statement "if (iVar5 == 0) {\n    iVar5 = *(int *)param_2;\n    if (local_60._0_1_ != '\0') {\n      uVar13 = *(uint *)(iVar5 + 0x10);\n      puVar10 = *(undefined1 **)(iVar5 + 0x14);\n      if ((uVar2 < uVar13) || ((uVar13 == uVar2 && (local_3c < puVar10)))) {\n        *(uint *)(param_1 + 0x38) = uVar13;\n        *(undefined1 **)(param_1 + 0x3c) = puVar10;\n      }\n      uVar13 = *(uint *)(iVar5 + 8);\n      uVar11 = *(uint *)(iVar5 + 0xc);\n      if ((*(uint *)(param_1 + 0x30) < uVar13) ||\n         ((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)))) {\n        *(uint *)(param_1 + 0x30) = uVar13;\n        *(uint *)(param_1 + 0x34) = uVar11;\n      }\n    }\n    if ((local_78._0_1_ != '\0') &&\n       ((-1 < *(int *)(param_1 + 0x2c) || (*(int *)(param_1 + 0x2c) << 1 < 0)))) {\n      param_1[0x2c] =\n           (Sized_symbol)\n           ((byte)param_1[0x2c] & 0x3f | ((int)(uint)*(byte *)(iVar5 + 4) >> 4 == 2) << 6 | 0x80);\n    }\n    bVar7 = *(byte *)(iVar5 + 5);\n    uVar13 = *(uint *)(param_1 + 0x28);\n    if (((bVar7 & 3) != 0) && (((uVar13 & 0xc00000) == 0 || ((bVar7 & 3) < (uVar13 << 8) >> 0x1e))))\n    {\n      uVar13 = uVar13 & 0xff3fffff | (bVar7 & 3) << 0x16;\n      *(uint *)(param_1 + 0x28) = uVar13;\n    }\n  }\n  else {\n    iVar5 = *(int *)(param_1 + 0x28);\n    uVar13 = *(uint *)(param_1 + 0x30);\n    uVar11 = *(uint *)(param_1 + 0x34);\n    override<64,true>(this,param_1,param_2,param_3,param_4,param_6,param_7);\n    if (local_60._0_1_ != '\0') {\n      if ((*(uint *)(param_1 + 0x38) < uVar2) ||\n         ((*(uint *)(param_1 + 0x38) == uVar2 && (*(undefined1 **)(param_1 + 0x3c) < local_3c)))) {\n        *(uint *)(param_1 + 0x38) = uVar2;\n        *(undefined1 **)(param_1 + 0x3c) = local_3c;\n      }\n      if ((*(uint *)(param_1 + 0x30) < uVar13) ||\n         ((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)))) {\n        *(uint *)(param_1 + 0x30) = uVar13;\n        *(uint *)(param_1 + 0x34) = uVar11;\n      }\n    }\n    uVar13 = *(uint *)(param_1 + 0x28);\n    if (local_78._0_1_ != '\0') {\n      if (*(int *)(param_1 + 0x2c) < 0) {\n        if (-1 < *(int *)(param_1 + 0x2c) << 1) goto LAB_002962d0;\n        SVar1 = param_1[0x2c];\n      }\n      else {\n        SVar1 = param_1[0x2c];\n      }\n      param_1[0x2c] =\n           (Sized_symbol)((byte)SVar1 & 0x3f | ((uint)(iVar5 << 4) >> 0x1c == 2) << 6 | 0x80);\n    }\n  }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar5 = *(int *)param_2;\n    if (local_60._0_1_ != '\0') {\n      uVar13 = *(uint *)(iVar5 + 0x10);\n      puVar10 = *(undefined1 **)(iVar5 + 0x14);\n      if ((uVar2 < uVar13) || ((uVar13 == uVar2 && (local_3c < puVar10)))) {\n        *(uint *)(param_1 + 0x38) = uVar13;\n        *(undefined1 **)(param_1 + 0x3c) = puVar10;\n      }\n      uVar13 = *(uint *)(iVar5 + 8);\n      uVar11 = *(uint *)(iVar5 + 0xc);\n      if ((*(uint *)(param_1 + 0x30) < uVar13) ||\n         ((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)))) {\n        *(uint *)(param_1 + 0x30) = uVar13;\n        *(uint *)(param_1 + 0x34) = uVar11;\n      }\n    }\n    if ((local_78._0_1_ != '\0') &&\n       ((-1 < *(int *)(param_1 + 0x2c) || (*(int *)(param_1 + 0x2c) << 1 < 0)))) {\n      param_1[0x2c] =\n           (Sized_symbol)\n           ((byte)param_1[0x2c] & 0x3f | ((int)(uint)*(byte *)(iVar5 + 4) >> 4 == 2) << 6 | 0x80);\n    }\n    bVar7 = *(byte *)(iVar5 + 5);\n    uVar13 = *(uint *)(param_1 + 0x28);\n    if (((bVar7 & 3) != 0) && (((uVar13 & 0xc00000) == 0 || ((bVar7 & 3) < (uVar13 << 8) >> 0x1e))))\n    {\n      uVar13 = uVar13 & 0xff3fffff | (bVar7 & 3) << 0x16;\n      *(uint *)(param_1 + 0x28) = uVar13;\n    }\n  }" ({ "{") (expression_statement "iVar5 = *(int *)param_2;" (assignment_expression "iVar5 = *(int *)param_2" (identifier "iVar5") (= "=") (pointer_expression "*(int *)param_2" (* "*") (cast_expression "(int *)param_2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_2")))) (; ";")) (if_statement "if (local_60._0_1_ != '\0') {\n      uVar13 = *(uint *)(iVar5 + 0x10);\n      puVar10 = *(undefined1 **)(iVar5 + 0x14);\n      if ((uVar2 < uVar13) || ((uVar13 == uVar2 && (local_3c < puVar10)))) {\n        *(uint *)(param_1 + 0x38) = uVar13;\n        *(undefined1 **)(param_1 + 0x3c) = puVar10;\n      }\n      uVar13 = *(uint *)(iVar5 + 8);\n      uVar11 = *(uint *)(iVar5 + 0xc);\n      if ((*(uint *)(param_1 + 0x30) < uVar13) ||\n         ((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)))) {\n        *(uint *)(param_1 + 0x30) = uVar13;\n        *(uint *)(param_1 + 0x34) = uVar11;\n      }\n    }" (if "if") (parenthesized_expression "(local_60._0_1_ != '\0')" (( "(") (binary_expression "local_60._0_1_ != '\0'" (field_expression "local_60._0_1_" (identifier "local_60") (. ".") (field_identifier "_0_1_")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      uVar13 = *(uint *)(iVar5 + 0x10);\n      puVar10 = *(undefined1 **)(iVar5 + 0x14);\n      if ((uVar2 < uVar13) || ((uVar13 == uVar2 && (local_3c < puVar10)))) {\n        *(uint *)(param_1 + 0x38) = uVar13;\n        *(undefined1 **)(param_1 + 0x3c) = puVar10;\n      }\n      uVar13 = *(uint *)(iVar5 + 8);\n      uVar11 = *(uint *)(iVar5 + 0xc);\n      if ((*(uint *)(param_1 + 0x30) < uVar13) ||\n         ((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)))) {\n        *(uint *)(param_1 + 0x30) = uVar13;\n        *(uint *)(param_1 + 0x34) = uVar11;\n      }\n    }" ({ "{") (expression_statement "uVar13 = *(uint *)(iVar5 + 0x10);" (assignment_expression "uVar13 = *(uint *)(iVar5 + 0x10)" (identifier "uVar13") (= "=") (pointer_expression "*(uint *)(iVar5 + 0x10)" (* "*") (cast_expression "(uint *)(iVar5 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x10)" (( "(") (binary_expression "iVar5 + 0x10" (identifier "iVar5") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "puVar10 = *(undefined1 **)(iVar5 + 0x14);" (assignment_expression "puVar10 = *(undefined1 **)(iVar5 + 0x14)" (identifier "puVar10") (= "=") (pointer_expression "*(undefined1 **)(iVar5 + 0x14)" (* "*") (cast_expression "(undefined1 **)(iVar5 + 0x14)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + 0x14)" (( "(") (binary_expression "iVar5 + 0x14" (identifier "iVar5") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if ((uVar2 < uVar13) || ((uVar13 == uVar2 && (local_3c < puVar10)))) {\n        *(uint *)(param_1 + 0x38) = uVar13;\n        *(undefined1 **)(param_1 + 0x3c) = puVar10;\n      }" (if "if") (parenthesized_expression "((uVar2 < uVar13) || ((uVar13 == uVar2 && (local_3c < puVar10))))" (( "(") (binary_expression "(uVar2 < uVar13) || ((uVar13 == uVar2 && (local_3c < puVar10)))" (parenthesized_expression "(uVar2 < uVar13)" (( "(") (binary_expression "uVar2 < uVar13" (identifier "uVar2") (< "<") (identifier "uVar13")) () ")")) (|| "||") (parenthesized_expression "((uVar13 == uVar2 && (local_3c < puVar10)))" (( "(") (parenthesized_expression "(uVar13 == uVar2 && (local_3c < puVar10))" (( "(") (binary_expression "uVar13 == uVar2 && (local_3c < puVar10)" (binary_expression "uVar13 == uVar2" (identifier "uVar13") (== "==") (identifier "uVar2")) (&& "&&") (parenthesized_expression "(local_3c < puVar10)" (( "(") (binary_expression "local_3c < puVar10" (identifier "local_3c") (< "<") (identifier "puVar10")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n        *(uint *)(param_1 + 0x38) = uVar13;\n        *(undefined1 **)(param_1 + 0x3c) = puVar10;\n      }" ({ "{") (expression_statement "*(uint *)(param_1 + 0x38) = uVar13;" (assignment_expression "*(uint *)(param_1 + 0x38) = uVar13" (pointer_expression "*(uint *)(param_1 + 0x38)" (* "*") (cast_expression "(uint *)(param_1 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "*(undefined1 **)(param_1 + 0x3c) = puVar10;" (assignment_expression "*(undefined1 **)(param_1 + 0x3c) = puVar10" (pointer_expression "*(undefined1 **)(param_1 + 0x3c)" (* "*") (cast_expression "(undefined1 **)(param_1 + 0x3c)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x3c)" (( "(") (binary_expression "param_1 + 0x3c" (identifier "param_1") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (identifier "puVar10")) (; ";")) (} "}"))) (expression_statement "uVar13 = *(uint *)(iVar5 + 8);" (assignment_expression "uVar13 = *(uint *)(iVar5 + 8)" (identifier "uVar13") (= "=") (pointer_expression "*(uint *)(iVar5 + 8)" (* "*") (cast_expression "(uint *)(iVar5 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 8)" (( "(") (binary_expression "iVar5 + 8" (identifier "iVar5") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar11 = *(uint *)(iVar5 + 0xc);" (assignment_expression "uVar11 = *(uint *)(iVar5 + 0xc)" (identifier "uVar11") (= "=") (pointer_expression "*(uint *)(iVar5 + 0xc)" (* "*") (cast_expression "(uint *)(iVar5 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0xc)" (( "(") (binary_expression "iVar5 + 0xc" (identifier "iVar5") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if ((*(uint *)(param_1 + 0x30) < uVar13) ||\n         ((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)))) {\n        *(uint *)(param_1 + 0x30) = uVar13;\n        *(uint *)(param_1 + 0x34) = uVar11;\n      }" (if "if") (parenthesized_expression "((*(uint *)(param_1 + 0x30) < uVar13) ||\n         ((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11))))" (( "(") (binary_expression "(*(uint *)(param_1 + 0x30) < uVar13) ||\n         ((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)))" (parenthesized_expression "(*(uint *)(param_1 + 0x30) < uVar13)" (( "(") (binary_expression "*(uint *)(param_1 + 0x30) < uVar13" (pointer_expression "*(uint *)(param_1 + 0x30)" (* "*") (cast_expression "(uint *)(param_1 + 0x30)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")")))) (< "<") (identifier "uVar13")) () ")")) (|| "||") (parenthesized_expression "((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)))" (( "(") (parenthesized_expression "(*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11))" (( "(") (binary_expression "*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)" (binary_expression "*(uint *)(param_1 + 0x30) == uVar13" (pointer_expression "*(uint *)(param_1 + 0x30)" (* "*") (cast_expression "(uint *)(param_1 + 0x30)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")")))) (== "==") (identifier "uVar13")) (&& "&&") (parenthesized_expression "(*(uint *)(param_1 + 0x34) < uVar11)" (( "(") (binary_expression "*(uint *)(param_1 + 0x34) < uVar11" (pointer_expression "*(uint *)(param_1 + 0x34)" (* "*") (cast_expression "(uint *)(param_1 + 0x34)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x34)" (( "(") (binary_expression "param_1 + 0x34" (identifier "param_1") (+ "+") (number_literal "0x34")) () ")")))) (< "<") (identifier "uVar11")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n        *(uint *)(param_1 + 0x30) = uVar13;\n        *(uint *)(param_1 + 0x34) = uVar11;\n      }" ({ "{") (expression_statement "*(uint *)(param_1 + 0x30) = uVar13;" (assignment_expression "*(uint *)(param_1 + 0x30) = uVar13" (pointer_expression "*(uint *)(param_1 + 0x30)" (* "*") (cast_expression "(uint *)(param_1 + 0x30)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "*(uint *)(param_1 + 0x34) = uVar11;" (assignment_expression "*(uint *)(param_1 + 0x34) = uVar11" (pointer_expression "*(uint *)(param_1 + 0x34)" (* "*") (cast_expression "(uint *)(param_1 + 0x34)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x34)" (( "(") (binary_expression "param_1 + 0x34" (identifier "param_1") (+ "+") (number_literal "0x34")) () ")")))) (= "=") (identifier "uVar11")) (; ";")) (} "}"))) (} "}"))) (if_statement "if ((local_78._0_1_ != '\0') &&\n       ((-1 < *(int *)(param_1 + 0x2c) || (*(int *)(param_1 + 0x2c) << 1 < 0)))) {\n      param_1[0x2c] =\n           (Sized_symbol)\n           ((byte)param_1[0x2c] & 0x3f | ((int)(uint)*(byte *)(iVar5 + 4) >> 4 == 2) << 6 | 0x80);\n    }" (if "if") (parenthesized_expression "((local_78._0_1_ != '\0') &&\n       ((-1 < *(int *)(param_1 + 0x2c) || (*(int *)(param_1 + 0x2c) << 1 < 0))))" (( "(") (binary_expression "(local_78._0_1_ != '\0') &&\n       ((-1 < *(int *)(param_1 + 0x2c) || (*(int *)(param_1 + 0x2c) << 1 < 0)))" (parenthesized_expression "(local_78._0_1_ != '\0')" (( "(") (binary_expression "local_78._0_1_ != '\0'" (field_expression "local_78._0_1_" (identifier "local_78") (. ".") (field_identifier "_0_1_")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "((-1 < *(int *)(param_1 + 0x2c) || (*(int *)(param_1 + 0x2c) << 1 < 0)))" (( "(") (parenthesized_expression "(-1 < *(int *)(param_1 + 0x2c) || (*(int *)(param_1 + 0x2c) << 1 < 0))" (( "(") (binary_expression "-1 < *(int *)(param_1 + 0x2c) || (*(int *)(param_1 + 0x2c) << 1 < 0)" (binary_expression "-1 < *(int *)(param_1 + 0x2c)" (number_literal "-1") (< "<") (pointer_expression "*(int *)(param_1 + 0x2c)" (* "*") (cast_expression "(int *)(param_1 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2c)" (( "(") (binary_expression "param_1 + 0x2c" (identifier "param_1") (+ "+") (number_literal "0x2c")) () ")"))))) (|| "||") (parenthesized_expression "(*(int *)(param_1 + 0x2c) << 1 < 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x2c) << 1 < 0" (binary_expression "*(int *)(param_1 + 0x2c) << 1" (pointer_expression "*(int *)(param_1 + 0x2c)" (* "*") (cast_expression "(int *)(param_1 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2c)" (( "(") (binary_expression "param_1 + 0x2c" (identifier "param_1") (+ "+") (number_literal "0x2c")) () ")")))) (<< "<<") (number_literal "1")) (< "<") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n      param_1[0x2c] =\n           (Sized_symbol)\n           ((byte)param_1[0x2c] & 0x3f | ((int)(uint)*(byte *)(iVar5 + 4) >> 4 == 2) << 6 | 0x80);\n    }" ({ "{") (expression_statement "param_1[0x2c] =\n           (Sized_symbol)\n           ((byte)param_1[0x2c] & 0x3f | ((int)(uint)*(byte *)(iVar5 + 4) >> 4 == 2) << 6 | 0x80);" (assignment_expression "param_1[0x2c] =\n           (Sized_symbol)\n           ((byte)param_1[0x2c] & 0x3f | ((int)(uint)*(byte *)(iVar5 + 4) >> 4 == 2) << 6 | 0x80)" (subscript_expression "param_1[0x2c]" (identifier "param_1") ([ "[") (number_literal "0x2c") (] "]")) (= "=") (call_expression "(Sized_symbol)\n           ((byte)param_1[0x2c] & 0x3f | ((int)(uint)*(byte *)(iVar5 + 4) >> 4 == 2) << 6 | 0x80)" (parenthesized_expression "(Sized_symbol)" (( "(") (identifier "Sized_symbol") () ")")) (argument_list "((byte)param_1[0x2c] & 0x3f | ((int)(uint)*(byte *)(iVar5 + 4) >> 4 == 2) << 6 | 0x80)" (( "(") (binary_expression "(byte)param_1[0x2c] & 0x3f | ((int)(uint)*(byte *)(iVar5 + 4) >> 4 == 2) << 6 | 0x80" (binary_expression "(byte)param_1[0x2c] & 0x3f | ((int)(uint)*(byte *)(iVar5 + 4) >> 4 == 2) << 6" (binary_expression "(byte)param_1[0x2c] & 0x3f" (cast_expression "(byte)param_1[0x2c]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_1[0x2c]" (identifier "param_1") ([ "[") (number_literal "0x2c") (] "]"))) (& "&") (number_literal "0x3f")) (| "|") (binary_expression "((int)(uint)*(byte *)(iVar5 + 4) >> 4 == 2) << 6" (parenthesized_expression "((int)(uint)*(byte *)(iVar5 + 4) >> 4 == 2)" (( "(") (binary_expression "(int)(uint)*(byte *)(iVar5 + 4) >> 4 == 2" (binary_expression "(int)(uint)*(byte *)(iVar5 + 4) >> 4" (binary_expression "(int)(uint)*(byte *)(iVar5 + 4)" (cast_expression "(int)(uint)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (cast_expression "(byte *)(iVar5 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 4)" (( "(") (binary_expression "iVar5 + 4" (identifier "iVar5") (+ "+") (number_literal "4")) () ")")))) (>> ">>") (number_literal "4")) (== "==") (number_literal "2")) () ")")) (<< "<<") (number_literal "6"))) (| "|") (number_literal "0x80")) () ")")))) (; ";")) (} "}"))) (expression_statement "bVar7 = *(byte *)(iVar5 + 5);" (assignment_expression "bVar7 = *(byte *)(iVar5 + 5)" (identifier "bVar7") (= "=") (pointer_expression "*(byte *)(iVar5 + 5)" (* "*") (cast_expression "(byte *)(iVar5 + 5)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 5)" (( "(") (binary_expression "iVar5 + 5" (identifier "iVar5") (+ "+") (number_literal "5")) () ")"))))) (; ";")) (expression_statement "uVar13 = *(uint *)(param_1 + 0x28);" (assignment_expression "uVar13 = *(uint *)(param_1 + 0x28)" (identifier "uVar13") (= "=") (pointer_expression "*(uint *)(param_1 + 0x28)" (* "*") (cast_expression "(uint *)(param_1 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (if_statement "if (((bVar7 & 3) != 0) && (((uVar13 & 0xc00000) == 0 || ((bVar7 & 3) < (uVar13 << 8) >> 0x1e))))\n    {\n      uVar13 = uVar13 & 0xff3fffff | (bVar7 & 3) << 0x16;\n      *(uint *)(param_1 + 0x28) = uVar13;\n    }" (if "if") (parenthesized_expression "(((bVar7 & 3) != 0) && (((uVar13 & 0xc00000) == 0 || ((bVar7 & 3) < (uVar13 << 8) >> 0x1e))))" (( "(") (binary_expression "((bVar7 & 3) != 0) && (((uVar13 & 0xc00000) == 0 || ((bVar7 & 3) < (uVar13 << 8) >> 0x1e)))" (parenthesized_expression "((bVar7 & 3) != 0)" (( "(") (binary_expression "(bVar7 & 3) != 0" (parenthesized_expression "(bVar7 & 3)" (( "(") (binary_expression "bVar7 & 3" (identifier "bVar7") (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(((uVar13 & 0xc00000) == 0 || ((bVar7 & 3) < (uVar13 << 8) >> 0x1e)))" (( "(") (parenthesized_expression "((uVar13 & 0xc00000) == 0 || ((bVar7 & 3) < (uVar13 << 8) >> 0x1e))" (( "(") (binary_expression "(uVar13 & 0xc00000) == 0 || ((bVar7 & 3) < (uVar13 << 8) >> 0x1e)" (binary_expression "(uVar13 & 0xc00000) == 0" (parenthesized_expression "(uVar13 & 0xc00000)" (( "(") (binary_expression "uVar13 & 0xc00000" (identifier "uVar13") (& "&") (number_literal "0xc00000")) () ")")) (== "==") (number_literal "0")) (|| "||") (parenthesized_expression "((bVar7 & 3) < (uVar13 << 8) >> 0x1e)" (( "(") (binary_expression "(bVar7 & 3) < (uVar13 << 8) >> 0x1e" (parenthesized_expression "(bVar7 & 3)" (( "(") (binary_expression "bVar7 & 3" (identifier "bVar7") (& "&") (number_literal "3")) () ")")) (< "<") (binary_expression "(uVar13 << 8) >> 0x1e" (parenthesized_expression "(uVar13 << 8)" (( "(") (binary_expression "uVar13 << 8" (identifier "uVar13") (<< "<<") (number_literal "8")) () ")")) (>> ">>") (number_literal "0x1e"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n      uVar13 = uVar13 & 0xff3fffff | (bVar7 & 3) << 0x16;\n      *(uint *)(param_1 + 0x28) = uVar13;\n    }" ({ "{") (expression_statement "uVar13 = uVar13 & 0xff3fffff | (bVar7 & 3) << 0x16;" (assignment_expression "uVar13 = uVar13 & 0xff3fffff | (bVar7 & 3) << 0x16" (identifier "uVar13") (= "=") (binary_expression "uVar13 & 0xff3fffff | (bVar7 & 3) << 0x16" (binary_expression "uVar13 & 0xff3fffff" (identifier "uVar13") (& "&") (number_literal "0xff3fffff")) (| "|") (binary_expression "(bVar7 & 3) << 0x16" (parenthesized_expression "(bVar7 & 3)" (( "(") (binary_expression "bVar7 & 3" (identifier "bVar7") (& "&") (number_literal "3")) () ")")) (<< "<<") (number_literal "0x16")))) (; ";")) (expression_statement "*(uint *)(param_1 + 0x28) = uVar13;" (assignment_expression "*(uint *)(param_1 + 0x28) = uVar13" (pointer_expression "*(uint *)(param_1 + 0x28)" (* "*") (cast_expression "(uint *)(param_1 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (identifier "uVar13")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    iVar5 = *(int *)(param_1 + 0x28);\n    uVar13 = *(uint *)(param_1 + 0x30);\n    uVar11 = *(uint *)(param_1 + 0x34);\n    override<64,true>(this,param_1,param_2,param_3,param_4,param_6,param_7);\n    if (local_60._0_1_ != '\0') {\n      if ((*(uint *)(param_1 + 0x38) < uVar2) ||\n         ((*(uint *)(param_1 + 0x38) == uVar2 && (*(undefined1 **)(param_1 + 0x3c) < local_3c)))) {\n        *(uint *)(param_1 + 0x38) = uVar2;\n        *(undefined1 **)(param_1 + 0x3c) = local_3c;\n      }\n      if ((*(uint *)(param_1 + 0x30) < uVar13) ||\n         ((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)))) {\n        *(uint *)(param_1 + 0x30) = uVar13;\n        *(uint *)(param_1 + 0x34) = uVar11;\n      }\n    }\n    uVar13 = *(uint *)(param_1 + 0x28);\n    if (local_78._0_1_ != '\0') {\n      if (*(int *)(param_1 + 0x2c) < 0) {\n        if (-1 < *(int *)(param_1 + 0x2c) << 1) goto LAB_002962d0;\n        SVar1 = param_1[0x2c];\n      }\n      else {\n        SVar1 = param_1[0x2c];\n      }\n      param_1[0x2c] =\n           (Sized_symbol)((byte)SVar1 & 0x3f | ((uint)(iVar5 << 4) >> 0x1c == 2) << 6 | 0x80);\n    }\n  }" (else "else") (compound_statement "{\n    iVar5 = *(int *)(param_1 + 0x28);\n    uVar13 = *(uint *)(param_1 + 0x30);\n    uVar11 = *(uint *)(param_1 + 0x34);\n    override<64,true>(this,param_1,param_2,param_3,param_4,param_6,param_7);\n    if (local_60._0_1_ != '\0') {\n      if ((*(uint *)(param_1 + 0x38) < uVar2) ||\n         ((*(uint *)(param_1 + 0x38) == uVar2 && (*(undefined1 **)(param_1 + 0x3c) < local_3c)))) {\n        *(uint *)(param_1 + 0x38) = uVar2;\n        *(undefined1 **)(param_1 + 0x3c) = local_3c;\n      }\n      if ((*(uint *)(param_1 + 0x30) < uVar13) ||\n         ((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)))) {\n        *(uint *)(param_1 + 0x30) = uVar13;\n        *(uint *)(param_1 + 0x34) = uVar11;\n      }\n    }\n    uVar13 = *(uint *)(param_1 + 0x28);\n    if (local_78._0_1_ != '\0') {\n      if (*(int *)(param_1 + 0x2c) < 0) {\n        if (-1 < *(int *)(param_1 + 0x2c) << 1) goto LAB_002962d0;\n        SVar1 = param_1[0x2c];\n      }\n      else {\n        SVar1 = param_1[0x2c];\n      }\n      param_1[0x2c] =\n           (Sized_symbol)((byte)SVar1 & 0x3f | ((uint)(iVar5 << 4) >> 0x1c == 2) << 6 | 0x80);\n    }\n  }" ({ "{") (expression_statement "iVar5 = *(int *)(param_1 + 0x28);" (assignment_expression "iVar5 = *(int *)(param_1 + 0x28)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(param_1 + 0x28)" (* "*") (cast_expression "(int *)(param_1 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "uVar13 = *(uint *)(param_1 + 0x30);" (assignment_expression "uVar13 = *(uint *)(param_1 + 0x30)" (identifier "uVar13") (= "=") (pointer_expression "*(uint *)(param_1 + 0x30)" (* "*") (cast_expression "(uint *)(param_1 + 0x30)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "uVar11 = *(uint *)(param_1 + 0x34);" (assignment_expression "uVar11 = *(uint *)(param_1 + 0x34)" (identifier "uVar11") (= "=") (pointer_expression "*(uint *)(param_1 + 0x34)" (* "*") (cast_expression "(uint *)(param_1 + 0x34)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x34)" (( "(") (binary_expression "param_1 + 0x34" (identifier "param_1") (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (expression_statement "override<64,true>(this,param_1,param_2,param_3,param_4,param_6,param_7);" (comma_expression "override<64,true>(this,param_1,param_2,param_3,param_4,param_6,param_7)" (binary_expression "override<64" (identifier "override") (< "<") (number_literal "64")) (, ",") (binary_expression "true>(this,param_1,param_2,param_3,param_4,param_6,param_7)" (true "true") (> ">") (parenthesized_expression "(this,param_1,param_2,param_3,param_4,param_6,param_7)" (( "(") (comma_expression "this,param_1,param_2,param_3,param_4,param_6,param_7" (identifier "this") (, ",") (comma_expression "param_1,param_2,param_3,param_4,param_6,param_7" (identifier "param_1") (, ",") (comma_expression "param_2,param_3,param_4,param_6,param_7" (identifier "param_2") (, ",") (comma_expression "param_3,param_4,param_6,param_7" (identifier "param_3") (, ",") (comma_expression "param_4,param_6,param_7" (identifier "param_4") (, ",") (comma_expression "param_6,param_7" (identifier "param_6") (, ",") (identifier "param_7"))))))) () ")")))) (; ";")) (if_statement "if (local_60._0_1_ != '\0') {\n      if ((*(uint *)(param_1 + 0x38) < uVar2) ||\n         ((*(uint *)(param_1 + 0x38) == uVar2 && (*(undefined1 **)(param_1 + 0x3c) < local_3c)))) {\n        *(uint *)(param_1 + 0x38) = uVar2;\n        *(undefined1 **)(param_1 + 0x3c) = local_3c;\n      }\n      if ((*(uint *)(param_1 + 0x30) < uVar13) ||\n         ((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)))) {\n        *(uint *)(param_1 + 0x30) = uVar13;\n        *(uint *)(param_1 + 0x34) = uVar11;\n      }\n    }" (if "if") (parenthesized_expression "(local_60._0_1_ != '\0')" (( "(") (binary_expression "local_60._0_1_ != '\0'" (field_expression "local_60._0_1_" (identifier "local_60") (. ".") (field_identifier "_0_1_")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      if ((*(uint *)(param_1 + 0x38) < uVar2) ||\n         ((*(uint *)(param_1 + 0x38) == uVar2 && (*(undefined1 **)(param_1 + 0x3c) < local_3c)))) {\n        *(uint *)(param_1 + 0x38) = uVar2;\n        *(undefined1 **)(param_1 + 0x3c) = local_3c;\n      }\n      if ((*(uint *)(param_1 + 0x30) < uVar13) ||\n         ((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)))) {\n        *(uint *)(param_1 + 0x30) = uVar13;\n        *(uint *)(param_1 + 0x34) = uVar11;\n      }\n    }" ({ "{") (if_statement "if ((*(uint *)(param_1 + 0x38) < uVar2) ||\n         ((*(uint *)(param_1 + 0x38) == uVar2 && (*(undefined1 **)(param_1 + 0x3c) < local_3c)))) {\n        *(uint *)(param_1 + 0x38) = uVar2;\n        *(undefined1 **)(param_1 + 0x3c) = local_3c;\n      }" (if "if") (parenthesized_expression "((*(uint *)(param_1 + 0x38) < uVar2) ||\n         ((*(uint *)(param_1 + 0x38) == uVar2 && (*(undefined1 **)(param_1 + 0x3c) < local_3c))))" (( "(") (binary_expression "(*(uint *)(param_1 + 0x38) < uVar2) ||\n         ((*(uint *)(param_1 + 0x38) == uVar2 && (*(undefined1 **)(param_1 + 0x3c) < local_3c)))" (parenthesized_expression "(*(uint *)(param_1 + 0x38) < uVar2)" (( "(") (binary_expression "*(uint *)(param_1 + 0x38) < uVar2" (pointer_expression "*(uint *)(param_1 + 0x38)" (* "*") (cast_expression "(uint *)(param_1 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")")))) (< "<") (identifier "uVar2")) () ")")) (|| "||") (parenthesized_expression "((*(uint *)(param_1 + 0x38) == uVar2 && (*(undefined1 **)(param_1 + 0x3c) < local_3c)))" (( "(") (parenthesized_expression "(*(uint *)(param_1 + 0x38) == uVar2 && (*(undefined1 **)(param_1 + 0x3c) < local_3c))" (( "(") (binary_expression "*(uint *)(param_1 + 0x38) == uVar2 && (*(undefined1 **)(param_1 + 0x3c) < local_3c)" (binary_expression "*(uint *)(param_1 + 0x38) == uVar2" (pointer_expression "*(uint *)(param_1 + 0x38)" (* "*") (cast_expression "(uint *)(param_1 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")")))) (== "==") (identifier "uVar2")) (&& "&&") (parenthesized_expression "(*(undefined1 **)(param_1 + 0x3c) < local_3c)" (( "(") (binary_expression "*(undefined1 **)(param_1 + 0x3c) < local_3c" (pointer_expression "*(undefined1 **)(param_1 + 0x3c)" (* "*") (cast_expression "(undefined1 **)(param_1 + 0x3c)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x3c)" (( "(") (binary_expression "param_1 + 0x3c" (identifier "param_1") (+ "+") (number_literal "0x3c")) () ")")))) (< "<") (identifier "local_3c")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n        *(uint *)(param_1 + 0x38) = uVar2;\n        *(undefined1 **)(param_1 + 0x3c) = local_3c;\n      }" ({ "{") (expression_statement "*(uint *)(param_1 + 0x38) = uVar2;" (assignment_expression "*(uint *)(param_1 + 0x38) = uVar2" (pointer_expression "*(uint *)(param_1 + 0x38)" (* "*") (cast_expression "(uint *)(param_1 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "*(undefined1 **)(param_1 + 0x3c) = local_3c;" (assignment_expression "*(undefined1 **)(param_1 + 0x3c) = local_3c" (pointer_expression "*(undefined1 **)(param_1 + 0x3c)" (* "*") (cast_expression "(undefined1 **)(param_1 + 0x3c)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x3c)" (( "(") (binary_expression "param_1 + 0x3c" (identifier "param_1") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (identifier "local_3c")) (; ";")) (} "}"))) (if_statement "if ((*(uint *)(param_1 + 0x30) < uVar13) ||\n         ((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)))) {\n        *(uint *)(param_1 + 0x30) = uVar13;\n        *(uint *)(param_1 + 0x34) = uVar11;\n      }" (if "if") (parenthesized_expression "((*(uint *)(param_1 + 0x30) < uVar13) ||\n         ((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11))))" (( "(") (binary_expression "(*(uint *)(param_1 + 0x30) < uVar13) ||\n         ((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)))" (parenthesized_expression "(*(uint *)(param_1 + 0x30) < uVar13)" (( "(") (binary_expression "*(uint *)(param_1 + 0x30) < uVar13" (pointer_expression "*(uint *)(param_1 + 0x30)" (* "*") (cast_expression "(uint *)(param_1 + 0x30)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")")))) (< "<") (identifier "uVar13")) () ")")) (|| "||") (parenthesized_expression "((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)))" (( "(") (parenthesized_expression "(*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11))" (( "(") (binary_expression "*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)" (binary_expression "*(uint *)(param_1 + 0x30) == uVar13" (pointer_expression "*(uint *)(param_1 + 0x30)" (* "*") (cast_expression "(uint *)(param_1 + 0x30)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")")))) (== "==") (identifier "uVar13")) (&& "&&") (parenthesized_expression "(*(uint *)(param_1 + 0x34) < uVar11)" (( "(") (binary_expression "*(uint *)(param_1 + 0x34) < uVar11" (pointer_expression "*(uint *)(param_1 + 0x34)" (* "*") (cast_expression "(uint *)(param_1 + 0x34)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x34)" (( "(") (binary_expression "param_1 + 0x34" (identifier "param_1") (+ "+") (number_literal "0x34")) () ")")))) (< "<") (identifier "uVar11")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n        *(uint *)(param_1 + 0x30) = uVar13;\n        *(uint *)(param_1 + 0x34) = uVar11;\n      }" ({ "{") (expression_statement "*(uint *)(param_1 + 0x30) = uVar13;" (assignment_expression "*(uint *)(param_1 + 0x30) = uVar13" (pointer_expression "*(uint *)(param_1 + 0x30)" (* "*") (cast_expression "(uint *)(param_1 + 0x30)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "*(uint *)(param_1 + 0x34) = uVar11;" (assignment_expression "*(uint *)(param_1 + 0x34) = uVar11" (pointer_expression "*(uint *)(param_1 + 0x34)" (* "*") (cast_expression "(uint *)(param_1 + 0x34)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x34)" (( "(") (binary_expression "param_1 + 0x34" (identifier "param_1") (+ "+") (number_literal "0x34")) () ")")))) (= "=") (identifier "uVar11")) (; ";")) (} "}"))) (} "}"))) (expression_statement "uVar13 = *(uint *)(param_1 + 0x28);" (assignment_expression "uVar13 = *(uint *)(param_1 + 0x28)" (identifier "uVar13") (= "=") (pointer_expression "*(uint *)(param_1 + 0x28)" (* "*") (cast_expression "(uint *)(param_1 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (if_statement "if (local_78._0_1_ != '\0') {\n      if (*(int *)(param_1 + 0x2c) < 0) {\n        if (-1 < *(int *)(param_1 + 0x2c) << 1) goto LAB_002962d0;\n        SVar1 = param_1[0x2c];\n      }\n      else {\n        SVar1 = param_1[0x2c];\n      }\n      param_1[0x2c] =\n           (Sized_symbol)((byte)SVar1 & 0x3f | ((uint)(iVar5 << 4) >> 0x1c == 2) << 6 | 0x80);\n    }" (if "if") (parenthesized_expression "(local_78._0_1_ != '\0')" (( "(") (binary_expression "local_78._0_1_ != '\0'" (field_expression "local_78._0_1_" (identifier "local_78") (. ".") (field_identifier "_0_1_")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      if (*(int *)(param_1 + 0x2c) < 0) {\n        if (-1 < *(int *)(param_1 + 0x2c) << 1) goto LAB_002962d0;\n        SVar1 = param_1[0x2c];\n      }\n      else {\n        SVar1 = param_1[0x2c];\n      }\n      param_1[0x2c] =\n           (Sized_symbol)((byte)SVar1 & 0x3f | ((uint)(iVar5 << 4) >> 0x1c == 2) << 6 | 0x80);\n    }" ({ "{") (if_statement "if (*(int *)(param_1 + 0x2c) < 0) {\n        if (-1 < *(int *)(param_1 + 0x2c) << 1) goto LAB_002962d0;\n        SVar1 = param_1[0x2c];\n      }\n      else {\n        SVar1 = param_1[0x2c];\n      }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x2c) < 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x2c) < 0" (pointer_expression "*(int *)(param_1 + 0x2c)" (* "*") (cast_expression "(int *)(param_1 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2c)" (( "(") (binary_expression "param_1 + 0x2c" (identifier "param_1") (+ "+") (number_literal "0x2c")) () ")")))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        if (-1 < *(int *)(param_1 + 0x2c) << 1) goto LAB_002962d0;\n        SVar1 = param_1[0x2c];\n      }" ({ "{") (if_statement "if (-1 < *(int *)(param_1 + 0x2c) << 1) goto LAB_002962d0;" (if "if") (parenthesized_expression "(-1 < *(int *)(param_1 + 0x2c) << 1)" (( "(") (binary_expression "-1 < *(int *)(param_1 + 0x2c) << 1" (number_literal "-1") (< "<") (binary_expression "*(int *)(param_1 + 0x2c) << 1" (pointer_expression "*(int *)(param_1 + 0x2c)" (* "*") (cast_expression "(int *)(param_1 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2c)" (( "(") (binary_expression "param_1 + 0x2c" (identifier "param_1") (+ "+") (number_literal "0x2c")) () ")")))) (<< "<<") (number_literal "1"))) () ")")) (goto_statement "goto LAB_002962d0;" (goto "goto") (statement_identifier "LAB_002962d0") (; ";"))) (expression_statement "SVar1 = param_1[0x2c];" (assignment_expression "SVar1 = param_1[0x2c]" (identifier "SVar1") (= "=") (subscript_expression "param_1[0x2c]" (identifier "param_1") ([ "[") (number_literal "0x2c") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n        SVar1 = param_1[0x2c];\n      }" (else "else") (compound_statement "{\n        SVar1 = param_1[0x2c];\n      }" ({ "{") (expression_statement "SVar1 = param_1[0x2c];" (assignment_expression "SVar1 = param_1[0x2c]" (identifier "SVar1") (= "=") (subscript_expression "param_1[0x2c]" (identifier "param_1") ([ "[") (number_literal "0x2c") (] "]"))) (; ";")) (} "}")))) (expression_statement "param_1[0x2c] =\n           (Sized_symbol)((byte)SVar1 & 0x3f | ((uint)(iVar5 << 4) >> 0x1c == 2) << 6 | 0x80);" (assignment_expression "param_1[0x2c] =\n           (Sized_symbol)((byte)SVar1 & 0x3f | ((uint)(iVar5 << 4) >> 0x1c == 2) << 6 | 0x80)" (subscript_expression "param_1[0x2c]" (identifier "param_1") ([ "[") (number_literal "0x2c") (] "]")) (= "=") (call_expression "(Sized_symbol)((byte)SVar1 & 0x3f | ((uint)(iVar5 << 4) >> 0x1c == 2) << 6 | 0x80)" (parenthesized_expression "(Sized_symbol)" (( "(") (identifier "Sized_symbol") () ")")) (argument_list "((byte)SVar1 & 0x3f | ((uint)(iVar5 << 4) >> 0x1c == 2) << 6 | 0x80)" (( "(") (binary_expression "(byte)SVar1 & 0x3f | ((uint)(iVar5 << 4) >> 0x1c == 2) << 6 | 0x80" (binary_expression "(byte)SVar1 & 0x3f | ((uint)(iVar5 << 4) >> 0x1c == 2) << 6" (binary_expression "(byte)SVar1 & 0x3f" (cast_expression "(byte)SVar1" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "SVar1")) (& "&") (number_literal "0x3f")) (| "|") (binary_expression "((uint)(iVar5 << 4) >> 0x1c == 2) << 6" (parenthesized_expression "((uint)(iVar5 << 4) >> 0x1c == 2)" (( "(") (binary_expression "(uint)(iVar5 << 4) >> 0x1c == 2" (binary_expression "(uint)(iVar5 << 4) >> 0x1c" (call_expression "(uint)(iVar5 << 4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar5 << 4)" (( "(") (binary_expression "iVar5 << 4" (identifier "iVar5") (<< "<<") (number_literal "4")) () ")"))) (>> ">>") (number_literal "0x1c")) (== "==") (number_literal "2")) () ")")) (<< "<<") (number_literal "6"))) (| "|") (number_literal "0x80")) () ")")))) (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_002962d0:\n  if (((((uVar13 & 0xe000) == 0) && (iVar5 = *(int *)(param_1 + 8), *(int *)(iVar5 + 0x2c) < 0)) &&\n      (*(int *)(param_1 + 0x28) << 0x17 < 0)) && (-1 < *(int *)(param_1 + 0x2c) << 1)) {\n    *(byte *)(iVar5 + 0x2c) = *(byte *)(iVar5 + 0x2c) & 0xbf | 0x40;\n  }" (statement_identifier "LAB_002962d0") (: ":") (if_statement "if (((((uVar13 & 0xe000) == 0) && (iVar5 = *(int *)(param_1 + 8), *(int *)(iVar5 + 0x2c) < 0)) &&\n      (*(int *)(param_1 + 0x28) << 0x17 < 0)) && (-1 < *(int *)(param_1 + 0x2c) << 1)) {\n    *(byte *)(iVar5 + 0x2c) = *(byte *)(iVar5 + 0x2c) & 0xbf | 0x40;\n  }" (if "if") (parenthesized_expression "(((((uVar13 & 0xe000) == 0) && (iVar5 = *(int *)(param_1 + 8), *(int *)(iVar5 + 0x2c) < 0)) &&\n      (*(int *)(param_1 + 0x28) << 0x17 < 0)) && (-1 < *(int *)(param_1 + 0x2c) << 1))" (( "(") (binary_expression "((((uVar13 & 0xe000) == 0) && (iVar5 = *(int *)(param_1 + 8), *(int *)(iVar5 + 0x2c) < 0)) &&\n      (*(int *)(param_1 + 0x28) << 0x17 < 0)) && (-1 < *(int *)(param_1 + 0x2c) << 1)" (parenthesized_expression "((((uVar13 & 0xe000) == 0) && (iVar5 = *(int *)(param_1 + 8), *(int *)(iVar5 + 0x2c) < 0)) &&\n      (*(int *)(param_1 + 0x28) << 0x17 < 0))" (( "(") (binary_expression "(((uVar13 & 0xe000) == 0) && (iVar5 = *(int *)(param_1 + 8), *(int *)(iVar5 + 0x2c) < 0)) &&\n      (*(int *)(param_1 + 0x28) << 0x17 < 0)" (parenthesized_expression "(((uVar13 & 0xe000) == 0) && (iVar5 = *(int *)(param_1 + 8), *(int *)(iVar5 + 0x2c) < 0))" (( "(") (binary_expression "((uVar13 & 0xe000) == 0) && (iVar5 = *(int *)(param_1 + 8), *(int *)(iVar5 + 0x2c) < 0)" (parenthesized_expression "((uVar13 & 0xe000) == 0)" (( "(") (binary_expression "(uVar13 & 0xe000) == 0" (parenthesized_expression "(uVar13 & 0xe000)" (( "(") (binary_expression "uVar13 & 0xe000" (identifier "uVar13") (& "&") (number_literal "0xe000")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar5 = *(int *)(param_1 + 8), *(int *)(iVar5 + 0x2c) < 0)" (( "(") (comma_expression "iVar5 = *(int *)(param_1 + 8), *(int *)(iVar5 + 0x2c) < 0" (assignment_expression "iVar5 = *(int *)(param_1 + 8)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (, ",") (binary_expression "*(int *)(iVar5 + 0x2c) < 0" (pointer_expression "*(int *)(iVar5 + 0x2c)" (* "*") (cast_expression "(int *)(iVar5 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x2c)" (( "(") (binary_expression "iVar5 + 0x2c" (identifier "iVar5") (+ "+") (number_literal "0x2c")) () ")")))) (< "<") (number_literal "0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(param_1 + 0x28) << 0x17 < 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x28) << 0x17 < 0" (binary_expression "*(int *)(param_1 + 0x28) << 0x17" (pointer_expression "*(int *)(param_1 + 0x28)" (* "*") (cast_expression "(int *)(param_1 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (<< "<<") (number_literal "0x17")) (< "<") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(-1 < *(int *)(param_1 + 0x2c) << 1)" (( "(") (binary_expression "-1 < *(int *)(param_1 + 0x2c) << 1" (number_literal "-1") (< "<") (binary_expression "*(int *)(param_1 + 0x2c) << 1" (pointer_expression "*(int *)(param_1 + 0x2c)" (* "*") (cast_expression "(int *)(param_1 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2c)" (( "(") (binary_expression "param_1 + 0x2c" (identifier "param_1") (+ "+") (number_literal "0x2c")) () ")")))) (<< "<<") (number_literal "1"))) () ")"))) () ")")) (compound_statement "{\n    *(byte *)(iVar5 + 0x2c) = *(byte *)(iVar5 + 0x2c) & 0xbf | 0x40;\n  }" ({ "{") (expression_statement "*(byte *)(iVar5 + 0x2c) = *(byte *)(iVar5 + 0x2c) & 0xbf | 0x40;" (assignment_expression "*(byte *)(iVar5 + 0x2c) = *(byte *)(iVar5 + 0x2c) & 0xbf | 0x40" (pointer_expression "*(byte *)(iVar5 + 0x2c)" (* "*") (cast_expression "(byte *)(iVar5 + 0x2c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x2c)" (( "(") (binary_expression "iVar5 + 0x2c" (identifier "iVar5") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (binary_expression "*(byte *)(iVar5 + 0x2c) & 0xbf | 0x40" (binary_expression "*(byte *)(iVar5 + 0x2c) & 0xbf" (pointer_expression "*(byte *)(iVar5 + 0x2c)" (* "*") (cast_expression "(byte *)(iVar5 + 0x2c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x2c)" (( "(") (binary_expression "iVar5 + 0x2c" (identifier "iVar5") (+ "+") (number_literal "0x2c")) () ")")))) (& "&") (number_literal "0xbf")) (| "|") (number_literal "0x40"))) (; ";")) (} "}")))) (if_statement "if (local_60._0_1_ != '\0') {\n    if (*(int *)(*(int *)puVar9 + 8) == 0) {\nLAB_002963c4:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + 0x3c1c);\n      return;\n    }\n    if (*(char *)(*(int *)(*(int *)puVar9 + 8) + 0x43f5) != '\0') {\n      uVar13 = *(uint *)(*(int *)param_2 + 0x10);\n      puVar10 = *(undefined1 **)(*(int *)param_2 + 0x14);\n      if ((uVar13 < uVar2) || ((uVar2 == uVar13 && (puVar10 < local_3c)))) {\n        puVar9 = PTR_DAT_0043226c + 0x3c88;\n      }\n      else if ((uVar2 < uVar13) || ((uVar13 == uVar2 && (local_3c < puVar10)))) {\n        puVar9 = PTR_DAT_0043226c + 0x3cb4;\n      }\n      else {\n        puVar9 = PTR_DAT_0043226c + 0x3ce0;\n      }\n      uVar6 = (*(code *)PTR_gettext_00436818)(puVar9);\n      report_resolve_problem(0,uVar6,param_1,0,param_6);\n      return;\n    }\n  }" (if "if") (parenthesized_expression "(local_60._0_1_ != '\0')" (( "(") (binary_expression "local_60._0_1_ != '\0'" (field_expression "local_60._0_1_" (identifier "local_60") (. ".") (field_identifier "_0_1_")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    if (*(int *)(*(int *)puVar9 + 8) == 0) {\nLAB_002963c4:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + 0x3c1c);\n      return;\n    }\n    if (*(char *)(*(int *)(*(int *)puVar9 + 8) + 0x43f5) != '\0') {\n      uVar13 = *(uint *)(*(int *)param_2 + 0x10);\n      puVar10 = *(undefined1 **)(*(int *)param_2 + 0x14);\n      if ((uVar13 < uVar2) || ((uVar2 == uVar13 && (puVar10 < local_3c)))) {\n        puVar9 = PTR_DAT_0043226c + 0x3c88;\n      }\n      else if ((uVar2 < uVar13) || ((uVar13 == uVar2 && (local_3c < puVar10)))) {\n        puVar9 = PTR_DAT_0043226c + 0x3cb4;\n      }\n      else {\n        puVar9 = PTR_DAT_0043226c + 0x3ce0;\n      }\n      uVar6 = (*(code *)PTR_gettext_00436818)(puVar9);\n      report_resolve_problem(0,uVar6,param_1,0,param_6);\n      return;\n    }\n  }" ({ "{") (if_statement "if (*(int *)(*(int *)puVar9 + 8) == 0) {\nLAB_002963c4:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + 0x3c1c);\n      return;\n    }" (if "if") (parenthesized_expression "(*(int *)(*(int *)puVar9 + 8) == 0)" (( "(") (binary_expression "*(int *)(*(int *)puVar9 + 8) == 0" (pointer_expression "*(int *)(*(int *)puVar9 + 8)" (* "*") (cast_expression "(int *)(*(int *)puVar9 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (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 "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar9"))) (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_002963c4:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + 0x3c1c);\n      return;\n    }" ({ "{") (labeled_statement "LAB_002963c4:\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + 0x3c1c);" (statement_identifier "LAB_002963c4") (: ":") (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + 0x3c1c);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + 0x3c1c)" (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 + 0x3c1c)" (( "(") (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 + 0x3c1c" (identifier "PTR_DAT_0043226c") (+ "+") (number_literal "0x3c1c")) () ")"))) (; ";"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (*(char *)(*(int *)(*(int *)puVar9 + 8) + 0x43f5) != '\0') {\n      uVar13 = *(uint *)(*(int *)param_2 + 0x10);\n      puVar10 = *(undefined1 **)(*(int *)param_2 + 0x14);\n      if ((uVar13 < uVar2) || ((uVar2 == uVar13 && (puVar10 < local_3c)))) {\n        puVar9 = PTR_DAT_0043226c + 0x3c88;\n      }\n      else if ((uVar2 < uVar13) || ((uVar13 == uVar2 && (local_3c < puVar10)))) {\n        puVar9 = PTR_DAT_0043226c + 0x3cb4;\n      }\n      else {\n        puVar9 = PTR_DAT_0043226c + 0x3ce0;\n      }\n      uVar6 = (*(code *)PTR_gettext_00436818)(puVar9);\n      report_resolve_problem(0,uVar6,param_1,0,param_6);\n      return;\n    }" (if "if") (parenthesized_expression "(*(char *)(*(int *)(*(int *)puVar9 + 8) + 0x43f5) != '\0')" (( "(") (binary_expression "*(char *)(*(int *)(*(int *)puVar9 + 8) + 0x43f5) != '\0'" (pointer_expression "*(char *)(*(int *)(*(int *)puVar9 + 8) + 0x43f5)" (* "*") (cast_expression "(char *)(*(int *)(*(int *)puVar9 + 8) + 0x43f5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)puVar9 + 8) + 0x43f5)" (( "(") (binary_expression "*(int *)(*(int *)puVar9 + 8) + 0x43f5" (pointer_expression "*(int *)(*(int *)puVar9 + 8)" (* "*") (cast_expression "(int *)(*(int *)puVar9 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (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 "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar9"))) (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x43f5")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      uVar13 = *(uint *)(*(int *)param_2 + 0x10);\n      puVar10 = *(undefined1 **)(*(int *)param_2 + 0x14);\n      if ((uVar13 < uVar2) || ((uVar2 == uVar13 && (puVar10 < local_3c)))) {\n        puVar9 = PTR_DAT_0043226c + 0x3c88;\n      }\n      else if ((uVar2 < uVar13) || ((uVar13 == uVar2 && (local_3c < puVar10)))) {\n        puVar9 = PTR_DAT_0043226c + 0x3cb4;\n      }\n      else {\n        puVar9 = PTR_DAT_0043226c + 0x3ce0;\n      }\n      uVar6 = (*(code *)PTR_gettext_00436818)(puVar9);\n      report_resolve_problem(0,uVar6,param_1,0,param_6);\n      return;\n    }" ({ "{") (expression_statement "uVar13 = *(uint *)(*(int *)param_2 + 0x10);" (assignment_expression "uVar13 = *(uint *)(*(int *)param_2 + 0x10)" (identifier "uVar13") (= "=") (pointer_expression "*(uint *)(*(int *)param_2 + 0x10)" (* "*") (cast_expression "(uint *)(*(int *)param_2 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)param_2 + 0x10)" (( "(") (binary_expression "*(int *)param_2 + 0x10" (pointer_expression "*(int *)param_2" (* "*") (cast_expression "(int *)param_2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_2"))) (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "puVar10 = *(undefined1 **)(*(int *)param_2 + 0x14);" (assignment_expression "puVar10 = *(undefined1 **)(*(int *)param_2 + 0x14)" (identifier "puVar10") (= "=") (pointer_expression "*(undefined1 **)(*(int *)param_2 + 0x14)" (* "*") (cast_expression "(undefined1 **)(*(int *)param_2 + 0x14)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)param_2 + 0x14)" (( "(") (binary_expression "*(int *)param_2 + 0x14" (pointer_expression "*(int *)param_2" (* "*") (cast_expression "(int *)param_2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_2"))) (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if ((uVar13 < uVar2) || ((uVar2 == uVar13 && (puVar10 < local_3c)))) {\n        puVar9 = PTR_DAT_0043226c + 0x3c88;\n      }\n      else if ((uVar2 < uVar13) || ((uVar13 == uVar2 && (local_3c < puVar10)))) {\n        puVar9 = PTR_DAT_0043226c + 0x3cb4;\n      }\n      else {\n        puVar9 = PTR_DAT_0043226c + 0x3ce0;\n      }" (if "if") (parenthesized_expression "((uVar13 < uVar2) || ((uVar2 == uVar13 && (puVar10 < local_3c))))" (( "(") (binary_expression "(uVar13 < uVar2) || ((uVar2 == uVar13 && (puVar10 < local_3c)))" (parenthesized_expression "(uVar13 < uVar2)" (( "(") (binary_expression "uVar13 < uVar2" (identifier "uVar13") (< "<") (identifier "uVar2")) () ")")) (|| "||") (parenthesized_expression "((uVar2 == uVar13 && (puVar10 < local_3c)))" (( "(") (parenthesized_expression "(uVar2 == uVar13 && (puVar10 < local_3c))" (( "(") (binary_expression "uVar2 == uVar13 && (puVar10 < local_3c)" (binary_expression "uVar2 == uVar13" (identifier "uVar2") (== "==") (identifier "uVar13")) (&& "&&") (parenthesized_expression "(puVar10 < local_3c)" (( "(") (binary_expression "puVar10 < local_3c" (identifier "puVar10") (< "<") (identifier "local_3c")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n        puVar9 = PTR_DAT_0043226c + 0x3c88;\n      }" ({ "{") (expression_statement "puVar9 = PTR_DAT_0043226c + 0x3c88;" (assignment_expression "puVar9 = PTR_DAT_0043226c + 0x3c88" (identifier "puVar9") (= "=") (binary_expression "PTR_DAT_0043226c + 0x3c88" (identifier "PTR_DAT_0043226c") (+ "+") (number_literal "0x3c88"))) (; ";")) (} "}")) (else_clause "else if ((uVar2 < uVar13) || ((uVar13 == uVar2 && (local_3c < puVar10)))) {\n        puVar9 = PTR_DAT_0043226c + 0x3cb4;\n      }\n      else {\n        puVar9 = PTR_DAT_0043226c + 0x3ce0;\n      }" (else "else") (if_statement "if ((uVar2 < uVar13) || ((uVar13 == uVar2 && (local_3c < puVar10)))) {\n        puVar9 = PTR_DAT_0043226c + 0x3cb4;\n      }\n      else {\n        puVar9 = PTR_DAT_0043226c + 0x3ce0;\n      }" (if "if") (parenthesized_expression "((uVar2 < uVar13) || ((uVar13 == uVar2 && (local_3c < puVar10))))" (( "(") (binary_expression "(uVar2 < uVar13) || ((uVar13 == uVar2 && (local_3c < puVar10)))" (parenthesized_expression "(uVar2 < uVar13)" (( "(") (binary_expression "uVar2 < uVar13" (identifier "uVar2") (< "<") (identifier "uVar13")) () ")")) (|| "||") (parenthesized_expression "((uVar13 == uVar2 && (local_3c < puVar10)))" (( "(") (parenthesized_expression "(uVar13 == uVar2 && (local_3c < puVar10))" (( "(") (binary_expression "uVar13 == uVar2 && (local_3c < puVar10)" (binary_expression "uVar13 == uVar2" (identifier "uVar13") (== "==") (identifier "uVar2")) (&& "&&") (parenthesized_expression "(local_3c < puVar10)" (( "(") (binary_expression "local_3c < puVar10" (identifier "local_3c") (< "<") (identifier "puVar10")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n        puVar9 = PTR_DAT_0043226c + 0x3cb4;\n      }" ({ "{") (expression_statement "puVar9 = PTR_DAT_0043226c + 0x3cb4;" (assignment_expression "puVar9 = PTR_DAT_0043226c + 0x3cb4" (identifier "puVar9") (= "=") (binary_expression "PTR_DAT_0043226c + 0x3cb4" (identifier "PTR_DAT_0043226c") (+ "+") (number_literal "0x3cb4"))) (; ";")) (} "}")) (else_clause "else {\n        puVar9 = PTR_DAT_0043226c + 0x3ce0;\n      }" (else "else") (compound_statement "{\n        puVar9 = PTR_DAT_0043226c + 0x3ce0;\n      }" ({ "{") (expression_statement "puVar9 = PTR_DAT_0043226c + 0x3ce0;" (assignment_expression "puVar9 = PTR_DAT_0043226c + 0x3ce0" (identifier "puVar9") (= "=") (binary_expression "PTR_DAT_0043226c + 0x3ce0" (identifier "PTR_DAT_0043226c") (+ "+") (number_literal "0x3ce0"))) (; ";")) (} "}")))))) (expression_statement "uVar6 = (*(code *)PTR_gettext_00436818)(puVar9);" (assignment_expression "uVar6 = (*(code *)PTR_gettext_00436818)(puVar9)" (identifier "uVar6") (= "=") (call_expression "(*(code *)PTR_gettext_00436818)(puVar9)" (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 "(puVar9)" (( "(") (identifier "puVar9") () ")")))) (; ";")) (expression_statement "report_resolve_problem(0,uVar6,param_1,0,param_6);" (call_expression "report_resolve_problem(0,uVar6,param_1,0,param_6)" (identifier "report_resolve_problem") (argument_list "(0,uVar6,param_1,0,param_6)" (( "(") (number_literal "0") (, ",") (identifier "uVar6") (, ",") (identifier "param_1") (, ",") (number_literal "0") (, ",") (identifier "param_6") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}"))) (return_statement "return;" (return "return") (; ";")) (ERROR "}" (} "}"))

/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* WARNING: Enum "STB": Some values do not have unique names */
/* WARNING: Enum "STT": Some values do not have unique names */
/* DWARF original name: resolve<64, true>
   DWARF original prototype: void resolve<64,_true>(Symbol_table * this, Sized_symbol<64> * to,
   Sym<64,_true> * sym, uint st_shndx, bool is_ordinary, uint orig_st_shndx, Object * object, char *
   version, bool is_default_version) */

void __thiscall
var_15::Symbol_table::resolve<64,var_3>
          (Symbol_table *this,Sized_symbol<64> *to,Sym<64,var_3> *sym,type_2 var_10,bool var_13
          ,type_2 var_19,type_3 *var_6,char *version,bool is_default_version)

{
  type_9 *puVar1;
  type_1 extraout_var;
  type_2 var_5;
  int var_12;
  type_3 *pOVar4;
  char *pcVar5;
  type_4 **pp_Var6;
  bool bVar9;
  type_5 *pOVar7;
  type_6 uVar8;
  type_7 var_8;
  int *var_11;
  type_8 var_21;
  type_9 *var_27;
  var_1<64> *pSVar14;
  int var_20;
  _Hashtable<var_15::Symbol_location,_gold::Symbol_location,var_33::allocator<var_15::Symbol_location>,var_33::__detail::_Identity,var_33::equal_to<var_15::Symbol_location>,_gold::Symbol_location_hash,var_33::__detail::_Mod_range_hashing,var_33::__detail::_Default_ranged_hash,var_33::__detail::_Prime_rehash_policy,var_33::__detail::var_2<true,var_3,var_3>var_4>
  *var_29;
  type_2 var_35;
  type_8 fromtype;
  type_2 var_7;
  type_2 var_9;
  char *in_stack_ffffff70;
  bool var_30;
  type_2 uStack_74;
  type_10 auStack_70 [16];
  bool adjust_common_sizes;
  type_6 uStack_5c;
  type_6 uStack_58;
  type_11 *pIStack_54;
  _Hashtable<var_15::Symbol_location,_gold::Symbol_location,var_33::allocator<var_15::Symbol_location>,var_33::__detail::_Identity,var_33::equal_to<var_15::Symbol_location>,_gold::Symbol_location_hash,var_33::__detail::_Mod_range_hashing,var_33::__detail::_Default_ranged_hash,var_33::__detail::_Prime_rehash_policy,var_33::__detail::var_2<true,var_3,var_3>var_4>
  a_Stack_50 [8];
  type_12 __node_gen;
  char *pcStack_44;
  type_13 *pXStack_40;
  _Hashtable<var_15::Symbol_location,_gold::Symbol_location,var_33::allocator<var_15::Symbol_location>,var_33::__detail::_Identity,var_33::equal_to<var_15::Symbol_location>,_gold::Symbol_location_hash,var_33::__detail::_Mod_range_hashing,var_33::__detail::_Default_ranged_hash,var_33::__detail::_Prime_rehash_policy,var_33::__detail::var_2<true,var_3,var_3>var_4>
  *var_28;
  type_12 *p_Stack_38;
  type_14 *pcStack_34;
  type_15 *ppcStack_30;
  type_16 *pOStack_2c;
  
  var_5 = *(type_2 *)&(to->super_Symbol).field_0x28;
  if ((var_5 & 0xe000) == 0) {
    var_9 = (to->super_Symbol).u2_.shndx;
    var_7 = -((int)(var_5 << 0x1d) >> 0x1f);
    if (((var_5 << 0x10) >> 0x1d == 0) && (var_6 == (to->super_Symbol).u1_.var_6)) {
      if (var_7 == 0) {
        var_8 = (*(type_14 *)PTR_is_common_shndx_00432fe0)(var_9);
        var_8 = var_8 ^ 1;
      }
      else {
        var_8 = var_9 != 0;
      }
      if (var_8 == 0) goto LAB_00295df8;
      if (!var_13) goto LAB_0029609c;
joined_r0x002960a4:
      if ((((var_7 == 0) && (var_9 == var_10)) &&
          (*(int *)&sym->p_->st_value == *(int *)&to->value_)) &&
         ((int)sym->p_->st_value == (int)to->value_)) {
        return;
      }
    }
    else {
LAB_00295df8:
      if (!var_13) {
LAB_0029609c:
        if (var_10 == 0xfff1) goto joined_r0x002960a4;
      }
    }
    puVar1 = PTR_parameters_00432be0;
    var_11 = *(int **)(*(int *)PTR_parameters_00432be0 + 0xc);
    var_27 = var_14;
    if (var_11 == (int *)0x0) goto LAB_00296780;
    if ((*(char *)(var_11[1] + 0xd) != '\0') &&
       (in_stack_ffffff70 = version,
       var_12 = (**(type_14 **)(*var_11 + 0xac))(var_11,to,sym,var_6,version), var_12 != 0)) {
      return;
    }
    if (*(int *)&var_6->field_0x2c < 0) {
      if ((var_10 == 0) &&
         ((((type_2)(*(int *)&(to->super_Symbol).field_0x28 << 8) >> 0x1e) + 3 & 3) < 2)) {
        return;
      }
      *(type_2 *)&(to->super_Symbol).field_0x28 =
           *(type_2 *)&(to->super_Symbol).field_0x28 & 0xffffff7f | 0x80;
      var_12 = (*var_6->_vptr_Object[5])(var_6);
    }
    else {
      if (((sym->p_->st_info & 0xf) == 5) &&
         ((var_13 || (var_12 = (*(type_14 *)PTR_is_common_shndx_00432fe0)(var_10), var_12 == 0))))
      {
        uVar8 = (*(type_14 *)PTR_gettext_00436818)(var_14 + 0x3c50);
        (*(type_14 *)PTR_demangled_name_00433f24)(&var_30,to);
        if ((*(type_2 *)&(to->super_Symbol).field_0x28 & 0xe000) == 0) {
                    /* try { // try from 002965d8 to 002965df has its CatchHandler @ 002967d0 */
          (*(type_14 *)PTR_gold_warning_0043245c)
                    (uVar8,var_17,
                     ((to->super_Symbol).u1_.output_segment)->output_lists_[0].
                     super__Vector_base<var_15::var_16*,var_33::allocator<var_15::var_16*>var_4>.
                     _M_impl._M_finish);
          if (var_17 == (type_3 *)auStack_70) {
            return;
          }
          var_18(var_17);
          return;
        }
        goto LAB_002967b4;
      }
      *(type_2 *)&(to->super_Symbol).field_0x28 =
           *(type_2 *)&(to->super_Symbol).field_0x28 & 0xfffffeff | 0x100;
      var_12 = (*var_6->_vptr_Object[5])(var_6);
    }
    if ((var_12 == 0) && (-1 < *(int *)&var_6->field_0x2c)) {
      *(type_2 *)&(to->super_Symbol).field_0x28 =
           *(type_2 *)&(to->super_Symbol).field_0x28 & 0xfffffffd | 2;
    }
    var_5 = *(type_2 *)&(to->super_Symbol).field_0x28;
    if ((var_5 << 0x10) >> 0x1d != 0) {
LAB_002963b4:
      var_12 = *(int *)(*(int *)puVar1 + 8);
      if (var_12 == 0) goto LAB_002963c4;
LAB_00295ee8:
      if (*(char *)(var_12 + 0xe11) == '\0') {
LAB_00296184:
        pXStack_40 = (type_13 *)&var_30;
        pp_Var6 = var_6->_vptr_Object;
      }
      else {
        pSVar14 = sym->p_;
        if (((((int)(type_2)pSVar14->st_info >> 4 != 2) &&
             ((type_2)(*(int *)&(to->super_Symbol).field_0x28 << 4) >> 0x1c != 2)) ||
            (var_19 == 0)) || ((var_7 == 0 || (var_9 == 0)))) goto LAB_00296184;
        var_12 = (int)pSVar14->st_size;
        if (*(int *)&pSVar14->st_size == 0 && var_12 == 0) goto LAB_00296184;
        var_20 = (int)to->symsize_;
        if ((*(int *)&to->symsize_ == 0 && var_20 == 0) ||
           ((((var_5 = *(type_2 *)&(to->super_Symbol).field_0x28,
              var_5 >> 0x1c == (pSVar14->st_info & 0xf) &&
              (*(int *)&to->symsize_ == *(int *)&pSVar14->st_size)) && (var_20 == var_12)) ||
            ((pcVar5 = (to->super_Symbol).name_, *pcVar5 != '_' || (pcVar5[1] != 'Z'))))))
        goto LAB_00296184;
        uStack_58 = *(type_6 *)&pSVar14->st_value;
        pIStack_54 = *(type_11 **)((int)&pSVar14->st_value + 4);
        _adjust_common_sizes = var_6;
        uStack_5c = var_19;
        if ((var_5 & 0xe000) != 0) goto LAB_0029679c;
        pcStack_34 = (type_14 *)PTR_operator___00435c08;
        pOStack_2c = &this->candidate_odr_violations_;
        var_17 = (to->super_Symbol).u1_;
        ppcStack_30 = &pcStack_44;
        auStack_70._4_4_ = *(type_6 *)((int)&to->value_ + 4);
        auStack_70._0_4_ = *(type_6 *)&to->value_;
        pXStack_40 = (type_13 *)&var_30;
        uStack_74 = var_9;
        pcStack_44 = pcVar5;
        __node_gen._M_h =
             (type_17 *)
             std::__detail::
             _Map_base<char_const*,var_33::pair<char_const*_const,var_33::unordered_set<var_15::Symbol_location,_gold::Symbol_location_hash,var_33::equal_to<var_15::Symbol_location>,var_33::allocator<var_15::Symbol_location>var_4>var_4>,var_33::allocator<std::pair<char_const*_const,var_33::unordered_set<var_15::Symbol_location,_gold::Symbol_location_hash,var_33::equal_to<var_15::Symbol_location>,var_33::allocator<var_15::Symbol_location>var_4>var_4>var_4>,var_33::__detail::_Select1st,var_33::equal_to<char_const*>,var_33::hash<char_const*>,var_33::__detail::_Mod_range_hashing,var_33::__detail::_Default_ranged_hash,var_33::__detail::_Prime_rehash_policy,var_33::__detail::var_2<false,_false,var_3>,var_3>
             ::operator[]((_Map_base<char_const*,var_33::pair<char_const*_const,var_33::unordered_set<var_15::Symbol_location,_gold::Symbol_location_hash,var_33::equal_to<var_15::Symbol_location>,var_33::allocator<var_15::Symbol_location>var_4>var_4>,var_33::allocator<std::pair<char_const*_const,var_33::unordered_set<var_15::Symbol_location,_gold::Symbol_location_hash,var_33::equal_to<var_15::Symbol_location>,var_33::allocator<var_15::Symbol_location>var_4>var_4>var_4>,var_33::__detail::_Select1st,var_33::equal_to<char_const*>,var_33::hash<char_const*>,var_33::__detail::_Mod_range_hashing,var_33::__detail::_Default_ranged_hash,var_33::__detail::_Prime_rehash_policy,var_33::__detail::var_2<false,_false,var_3>,var_3>
                           *)pOStack_2c,ppcStack_30);
        p_Stack_38 = &__node_gen;
        var_28 = a_Stack_50;
        var_5 = (type_2)in_stack_ffffff70 & 0xffffff;
        std::
        _Hashtable<var_15::Symbol_location,_gold::Symbol_location,var_33::allocator<var_15::Symbol_location>,var_33::__detail::_Identity,var_33::equal_to<var_15::Symbol_location>,_gold::Symbol_location_hash,var_33::__detail::_Mod_range_hashing,var_33::__detail::_Default_ranged_hash,var_33::__detail::_Prime_rehash_policy,var_33::__detail::var_2<true,var_3,var_3>var_4>
        ::
        _M_insert<const_gold::Symbol_location&,var_33::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<var_15::Symbol_location,var_3>var_4>var_4>var_4>
                  (var_28,__node_gen._M_h,&adjust_common_sizes,p_Stack_38,var_5,1);
        pcStack_44 = (to->super_Symbol).name_;
        __node_gen._M_h = (type_17 *)(*pcStack_34)(pOStack_2c,ppcStack_30);
        std::
        _Hashtable<var_15::Symbol_location,_gold::Symbol_location,var_33::allocator<var_15::Symbol_location>,var_33::__detail::_Identity,var_33::equal_to<var_15::Symbol_location>,_gold::Symbol_location_hash,var_33::__detail::_Mod_range_hashing,var_33::__detail::_Default_ranged_hash,var_33::__detail::_Prime_rehash_policy,var_33::__detail::var_2<true,var_3,var_3>var_4>
        ::
        _M_insert<const_gold::Symbol_location&,var_33::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<var_15::Symbol_location,var_3>var_4>var_4>var_4>
                  (var_28,__node_gen._M_h,pXStack_40,p_Stack_38,var_5 & 0xffffff,1);
        pp_Var6 = var_6->_vptr_Object;
      }
      var_12 = (*pp_Var6[5])(var_6);
      if (var_12 == 0) {
        var_21 = (type_8)sym->p_->st_info;
        fromtype = var_21 & var_22;
      }
      else {
        var_21 = (type_8)sym->p_->st_info;
        fromtype = *(type_2 *)&(to->super_Symbol).field_0x28 >> 0x1c;
      }
      var_5 = var_23(var_21 >> 4,var_24((type_2)*(type_6 *)&var_6->field_0x2c >> 0x1f,0),
                             var_10,var_13);
      var_28 = *(_Hashtable<var_15::Symbol_location,_gold::Symbol_location,var_33::allocator<var_15::Symbol_location>,var_33::__detail::_Identity,var_33::equal_to<var_15::Symbol_location>,_gold::Symbol_location_hash,var_33::__detail::_Mod_range_hashing,var_33::__detail::_Default_ranged_hash,var_33::__detail::_Prime_rehash_policy,var_33::__detail::var_2<true,var_3,var_3>var_4>
                     **)((int)&to->symsize_ + 4);
      var_7 = *(type_2 *)&to->symsize_;
      bVar9 = var_25(&to->super_Symbol,var_5,fromtype,OBJECT,var_6,&adjust_common_sizes,
                              (bool *)pXStack_40,is_default_version);
      if (var_26(extraout_var,bVar9) == 0) {
        var_27 = (type_9 *)((type_2)_adjust_common_sizes >> 0x18);
        pSVar14 = sym->p_;
        if (var_27 != (type_9 *)0x0) {
          var_5 = *(type_2 *)&pSVar14->st_size;
          var_29 = *(_Hashtable<var_15::Symbol_location,_gold::Symbol_location,var_33::allocator<var_15::Symbol_location>,var_33::__detail::_Identity,var_33::equal_to<var_15::Symbol_location>,_gold::Symbol_location_hash,var_33::__detail::_Mod_range_hashing,var_33::__detail::_Default_ranged_hash,var_33::__detail::_Prime_rehash_policy,var_33::__detail::var_2<true,var_3,var_3>var_4>
                      **)((int)&pSVar14->st_size + 4);
          if ((var_7 < var_5) || ((var_5 == var_7 && (var_28 < var_29)))) {
            *(type_2 *)&to->symsize_ = var_5;
            *(_Hashtable<var_15::Symbol_location,_gold::Symbol_location,var_33::allocator<var_15::Symbol_location>,var_33::__detail::_Identity,var_33::equal_to<var_15::Symbol_location>,_gold::Symbol_location_hash,var_33::__detail::_Mod_range_hashing,var_33::__detail::_Default_ranged_hash,var_33::__detail::_Prime_rehash_policy,var_33::__detail::var_2<true,var_3,var_3>var_4>
              **)((int)&to->symsize_ + 4) = var_29;
          }
          var_5 = *(type_2 *)&pSVar14->st_value;
          var_9 = (type_2)pSVar14->st_value;
          if ((*(type_2 *)&to->value_ < var_5) ||
             ((*(type_2 *)&to->value_ == var_5 && ((type_2)to->value_ < var_9)))) {
            *(type_2 *)&to->value_ = var_5;
            *(type_2 *)((int)&to->value_ + 4) = var_9;
          }
        }
        if ((var_30 != false) &&
           ((var_12 = *(int *)&(to->super_Symbol).field_0x2c, -1 < var_12 || (var_12 << 1 < 0)))) {
          (to->super_Symbol).field_0x2c =
               (to->super_Symbol).field_0x2c & 0x3f | ((int)(type_2)pSVar14->st_info >> 4 == 2) << 6 |
               0x80;
        }
        var_8 = pSVar14->st_other;
        var_5 = *(type_2 *)&(to->super_Symbol).field_0x28;
        if (((var_8 & 3) != 0) &&
           (((var_5 & 0xc00000) == 0 || ((var_8 & 3) < (var_5 << 8) >> 0x1e)))) {
          var_5 = var_5 & 0xff3fffff | (var_8 & 3) << 0x16;
          *(type_2 *)&(to->super_Symbol).field_0x28 = var_5;
        }
      }
      else {
        var_12 = *(int *)&(to->super_Symbol).field_0x28;
        var_5 = *(type_2 *)&to->value_;
        var_9 = (type_2)to->value_;
        var_31<64,var_3>(this,to,sym,var_10,var_13,var_6,version);
        var_27 = (type_9 *)((type_2)_adjust_common_sizes >> 0x18);
        if (var_27 != (type_9 *)0x0) {
          if ((*(type_2 *)&to->symsize_ < var_7) ||
             ((*(type_2 *)&to->symsize_ == var_7 &&
              (*(_Hashtable<var_15::Symbol_location,_gold::Symbol_location,var_33::allocator<var_15::Symbol_location>,var_33::__detail::_Identity,var_33::equal_to<var_15::Symbol_location>,_gold::Symbol_location_hash,var_33::__detail::_Mod_range_hashing,var_33::__detail::_Default_ranged_hash,var_33::__detail::_Prime_rehash_policy,var_33::__detail::var_2<true,var_3,var_3>var_4>
                 **)((int)&to->symsize_ + 4) < var_28)))) {
            *(type_2 *)&to->symsize_ = var_7;
            *(_Hashtable<var_15::Symbol_location,_gold::Symbol_location,var_33::allocator<var_15::Symbol_location>,var_33::__detail::_Identity,var_33::equal_to<var_15::Symbol_location>,_gold::Symbol_location_hash,var_33::__detail::_Mod_range_hashing,var_33::__detail::_Default_ranged_hash,var_33::__detail::_Prime_rehash_policy,var_33::__detail::var_2<true,var_3,var_3>var_4>
              **)((int)&to->symsize_ + 4) = var_28;
          }
          if ((*(type_2 *)&to->value_ < var_5) ||
             ((*(type_2 *)&to->value_ == var_5 && ((type_2)to->value_ < var_9)))) {
            *(type_2 *)&to->value_ = var_5;
            *(type_2 *)((int)&to->value_ + 4) = var_9;
          }
        }
        var_5 = *(type_2 *)&(to->super_Symbol).field_0x28;
        if (var_30 != false) {
          var_20 = *(int *)&(to->super_Symbol).field_0x2c;
          if (var_20 < 0) {
            if (-1 < var_20 << 1) goto LAB_002962d0;
            var_8 = (to->super_Symbol).field_0x2c;
          }
          else {
            var_8 = (to->super_Symbol).field_0x2c;
          }
          (to->super_Symbol).field_0x2c =
               var_8 & 0x3f | ((type_2)(var_12 << 4) >> 0x1c == 2) << 6 | 0x80;
        }
      }
LAB_002962d0:
      if (((var_5 & 0xe000) == 0) &&
         (pOVar7 = (to->super_Symbol).u1_.output_segment,
         (int)pOVar7->output_lists_[3].
              super__Vector_base<var_15::var_16*,var_33::allocator<var_15::var_16*>var_4>._M_impl.
              _M_end_of_storage < 0)) goto LAB_002963dc;
      while( true ) {
        if (var_27 == (type_9 *)0x0) {
          return;
        }
        if (*(int *)(*(int *)puVar1 + 8) != 0) break;
LAB_002963c4:
        var_27 = var_32 + -0x5cec;
        pOVar7 = (type_5 *)
                 (*(type_14 *)PTR_do_gold_unreachable_004323c4)(var_27,0x5c,var_14 + 0x3c1c);
LAB_002963dc:
        if ((*(int *)&(to->super_Symbol).field_0x28 << 0x17 < 0) &&
           (-1 < *(int *)&(to->super_Symbol).field_0x2c << 1)) {
          *(type_7 *)&pOVar7->output_lists_[3].
                    super__Vector_base<var_15::var_16*,var_33::allocator<var_15::var_16*>var_4>.
                    _M_impl._M_end_of_storage =
               *(type_7 *)&pOVar7->output_lists_[3].
                         super__Vector_base<var_15::var_16*,var_33::allocator<var_15::var_16*>var_4>
                         ._M_impl._M_end_of_storage & 0xbf | 0x40;
        }
      }
      if (*(char *)(*(int *)(*(int *)puVar1 + 8) + 0x43f5) == '\0') {
        return;
      }
      var_5 = *(type_2 *)&sym->p_->st_size;
      var_29 = *(_Hashtable<var_15::Symbol_location,_gold::Symbol_location,var_33::allocator<var_15::Symbol_location>,var_33::__detail::_Identity,var_33::equal_to<var_15::Symbol_location>,_gold::Symbol_location_hash,var_33::__detail::_Mod_range_hashing,var_33::__detail::_Default_ranged_hash,var_33::__detail::_Prime_rehash_policy,var_33::__detail::var_2<true,var_3,var_3>var_4>
                  **)((int)&sym->p_->st_size + 4);
      if ((var_5 < var_7) || ((var_7 == var_5 && (var_29 < var_28)))) {
        var_27 = var_14 + 0x3c88;
      }
      else if ((var_7 < var_5) || ((var_5 == var_7 && (var_28 < var_29)))) {
        var_27 = var_14 + 0x3cb4;
      }
      else {
        var_27 = var_14 + 0x3ce0;
      }
      pcVar5 = (char *)(*(type_14 *)PTR_gettext_00436818)(var_27);
      var_34(false,pcVar5,&to->super_Symbol,OBJECT,var_6);
      return;
    }
    if ((var_5 & 0xe000) == 0) {
      pOVar4 = (to->super_Symbol).u1_.var_6;
      var_12 = (*pOVar4->_vptr_Object[5])(pOVar4);
      if (var_12 == 0) goto LAB_002963b4;
      var_12 = *(int *)(*(int *)puVar1 + 8);
      if (var_12 == 0) goto LAB_002963c4;
      if (*(char *)(*(int *)(var_12 + 0x594c) + 0x69) != '\0') {
        var_5 = *(type_2 *)&(to->super_Symbol).field_0x28;
        if (((((var_5 & 0xe000) != 0) || ((int)(var_5 << 0x1d) < 0)) ||
            (var_12 = (*(type_14 *)PTR_is_common_shndx_00432fe0)((to->super_Symbol).u2_.shndx),
            var_12 == 0)) ||
           ((var_13 || (var_12 = (*(type_14 *)PTR_is_common_shndx_00432fe0)(var_10), var_12 == 0))
           )) {
          var_31<64,var_3>(this,to,sym,var_10,var_13,var_6,version);
          return;
        }
        var_7 = *(type_2 *)&to->symsize_;
        var_35 = (type_2)to->symsize_;
        var_5 = *(type_2 *)&to->value_;
        var_9 = (type_2)to->value_;
        var_31<64,var_3>(this,to,sym,var_10,false,var_6,version);
        if ((*(type_2 *)&to->symsize_ < var_7) ||
           ((*(type_2 *)&to->symsize_ == var_7 && ((type_2)to->symsize_ < var_35)))) {
          *(type_2 *)&to->symsize_ = var_7;
          *(type_2 *)((int)&to->symsize_ + 4) = var_35;
        }
        if (var_5 <= *(type_2 *)&to->value_) {
          if (*(type_2 *)&to->value_ != var_5) {
            return;
          }
          if (var_9 <= (type_2)to->value_) {
            return;
          }
        }
        *(type_2 *)&to->value_ = var_5;
        *(type_2 *)((int)&to->value_ + 4) = var_9;
        return;
      }
      goto LAB_00295ee8;
    }
  }
  else {
    var_27 = var_14 + 0x3c38;
    (*(type_14 *)PTR_do_gold_unreachable_004323c4)(var_32 + -0x5bdc,0xaa,var_27);
LAB_00296780:
    (*(type_14 *)PTR_do_gold_unreachable_004323c4)
              (var_32 + -0x5cec,0x69,var_27 + 0x3bb8);
  }
LAB_0029679c:
  (*(type_14 *)PTR_do_gold_unreachable_004323c4)
            (var_32 + -0x5bdc,0xa1,var_14 + 0x3c24);
LAB_002967b4:
  var_27 = var_32 + -0x5bdc;
  (*(type_14 *)PTR_do_gold_unreachable_004323c4)(var_27,0xa1,var_14 + 0x3c24);
  if (var_17 != (type_3 *)auStack_70) {
    var_18(var_17);
  }
  (*(type_14 *)PTR__Unwind_Resume_00432258)(var_27);
  return;
}


(translation_unit (declaration type: (primitive_type) declarator: (ms_call_modifier) (ERROR (identifier) (identifier)) declarator: (identifier) (ERROR (number_literal)) (ERROR (function_declarator declarator: (identifier) (ERROR) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (identifier)))) (identifier)) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (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: (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: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (ERROR (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) (ERROR) right: (identifier))) (ERROR (identifier)) right: (binary_expression left: (identifier) right: (identifier)))) (labeled_statement label: (statement_identifier) (ERROR (binary_expression left: (identifier) right: (identifier)) (comma_expression left: (identifier) right: (identifier)) (comma_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) (ERROR) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) (ERROR) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (comma_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (comma_expression left: (identifier) right: (identifier)) (comma_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) (ERROR) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) (ERROR) right: (identifier))) (labeled_statement label: (statement_identifier) (ERROR (comma_expression left: (identifier) right: (identifier)) (comma_expression left: (binary_expression left: (identifier) right: (identifier)) (ERROR) right: (identifier)) (comma_expression left: (binary_expression left: (identifier) right: (identifier)) (ERROR) right: (identifier))) (labeled_statement label: (statement_identifier) (ERROR (comma_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (ERROR (comma_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (ERROR (comma_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (ERROR) (expression_statement (comma_expression left: (binary_expression left: (identifier) right: (false)) right: (comma_expression left: (false) right: (binary_expression left: (binary_expression left: (true) (ERROR) right: (true)) right: (pointer_expression argument: (identifier)))))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (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 (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal))))) (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) 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: (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 (unary_expression argument: (identifier))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (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: (number_literal) right: (identifier))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) 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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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: (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: (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))))))))) consequence: (compound_statement (return_statement))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (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))) (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (identifier)))) right: (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (return_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: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) right: (number_literal))) right: (number_literal)) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (return_statement))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))))) arguments: (argument_list (identifier)))))) alternative: (else_clause (compound_statement (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: (type_identifier) 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))))) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (identifier) 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)))) right: (binary_expression left: (identifier) right: (number_literal))))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal))))) (return_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) (identifier) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) 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)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) consequence: (compound_statement (return_statement))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (return_statement))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))))) arguments: (argument_list (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (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 (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (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))) (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: (char_literal (escape_sequence)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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: (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: (number_literal)))) 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 (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)))))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (identifier) 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)))) right: (binary_expression left: (identifier) right: (number_literal))))))))) consequence: (compound_statement (expression_statement (comma_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (true) right: (parenthesized_expression (comma_expression left: (identifier) right: (comma_expression left: (identifier) right: (comma_expression left: (identifier) right: (comma_expression left: (identifier) right: (comma_expression left: (identifier) right: (comma_expression left: (identifier) right: (identifier))))))))))) (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (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: (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: (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 (comma_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (true) right: (parenthesized_expression (comma_expression left: (identifier) right: (comma_expression left: (identifier) right: (comma_expression left: (identifier) right: (comma_expression left: (identifier) right: (comma_expression left: (false) right: (comma_expression left: (identifier) right: (identifier))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (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))))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (return_statement))) (if_statement condition: (parenthesized_expression (binary_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))))))) consequence: (compound_statement (return_statement))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (return_statement)))) alternative: (else_clause (compound_statement (labeled_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)))))) (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) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))))) alternative: (else_clause (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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (number_literal)) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) right: (number_literal)) right: (number_literal))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (number_literal) right: (identifier)) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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)))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) 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: (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: (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: (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: (parenthesized_expression (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 declarator: (abstract_pointer_declarator))) value: (identifier)))) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (character))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (character))))))))))))) consequence: (goto_statement label: (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))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal)))))) (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (ERROR (comma_expression left: (binary_expression left: (identifier) right: (identifier)) (ERROR) right: (identifier)) (comma_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (comma_expression left: (identifier) right: (identifier)) (comma_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) (ERROR) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) (ERROR) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (comma_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (comma_expression left: (identifier) right: (identifier)) (comma_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) (ERROR) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) (ERROR) right: (identifier)) (identifier) (comma_expression left: (identifier) right: (identifier)) (comma_expression left: (binary_expression left: (identifier) right: (identifier)) (ERROR) right: (identifier)) (comma_expression left: (binary_expression left: (identifier) right: (identifier)) (ERROR) right: (identifier)) (identifier) (comma_expression left: (identifier) right: (identifier)) (identifier) (comma_expression left: (identifier) right: (identifier)) (identifier) (comma_expression left: (identifier) right: (identifier)) (identifier)) (comma_expression left: (binary_expression left: (identifier) right: (false)) right: (comma_expression left: (false) right: (binary_expression left: (binary_expression left: (true) (ERROR) right: (true)) right: (pointer_expression argument: (MISSING identifier)))))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (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: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (ERROR (assignment_expression left: (identifier) right: (identifier)) (comma_expression left: (identifier) (ERROR (comma_expression left: (binary_expression left: (identifier) right: (identifier)) (ERROR) right: (identifier)) (comma_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (comma_expression left: (identifier) right: (identifier)) (comma_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (identifier)) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) (ERROR) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (comma_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (comma_expression left: (identifier) right: (identifier)) (comma_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) (ERROR) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) (ERROR) right: (identifier))) (labeled_statement label: (statement_identifier) (ERROR (comma_expression left: (identifier) right: (identifier)) (comma_expression left: (binary_expression left: (identifier) right: (identifier)) (ERROR) right: (identifier)) (comma_expression left: (binary_expression left: (identifier) right: (identifier)) (ERROR) right: (identifier))) (labeled_statement label: (statement_identifier) (ERROR (comma_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (ERROR (comma_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (ERROR (comma_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (ERROR) (expression_statement (comma_expression left: (binary_expression left: (identifier) right: (false)) right: (comma_expression left: (false) right: (binary_expression left: (binary_expression left: (true) (ERROR) right: (true)) (ERROR) right: (call_expression function: (subscript_expression argument: (identifier) index: (MISSING identifier)) arguments: (argument_list (identifier) (identifier)))))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) (ERROR (comma_expression left: (identifier) (ERROR (binary_expression left: (identifier) right: (identifier)) (comma_expression left: (identifier) right: (identifier)) (comma_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (identifier)) right: (identifier)) (identifier) (comma_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) (ERROR) right: (identifier)) (comma_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (ERROR (comma_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (ERROR (comma_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (ERROR (comma_expression left: (identifier) right: (identifier)) (comma_expression left: (identifier) (ERROR (comma_expression left: (binary_expression left: (identifier) right: (true)) right: (comma_expression left: (true) right: (binary_expression left: (binary_expression left: (true) (ERROR) right: (identifier)) right: (identifier)))) (identifier)) right: (identifier))) (labeled_statement label: (statement_identifier) (ERROR (binary_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (ERROR (binary_expression left: (identifier) right: (identifier))) (expression_statement (comma_expression left: (identifier) right: (binary_expression left: (true) (ERROR) right: (parenthesized_expression (comma_expression left: (identifier) right: (comma_expression left: (identifier) right: (comma_expression left: (pointer_expression argument: (identifier)) right: (comma_expression left: (identifier) right: (comma_expression left: (identifier) right: (number_literal))))))))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier))))) (ERROR (comma_expression left: (identifier) (ERROR (binary_expression left: (identifier) right: (identifier)) (comma_expression left: (identifier) right: (identifier)) (comma_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (identifier)) right: (identifier)) (identifier) (comma_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) (ERROR) right: (identifier)) (comma_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (ERROR (comma_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (ERROR (comma_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (ERROR (comma_expression left: (identifier) right: (identifier)) (comma_expression left: (identifier) (ERROR (comma_expression left: (binary_expression left: (identifier) right: (true)) right: (comma_expression left: (true) right: (binary_expression left: (binary_expression left: (true) (ERROR) right: (identifier)) right: (identifier)))) (identifier)) right: (identifier))) (labeled_statement label: (statement_identifier) (ERROR (binary_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (ERROR (binary_expression left: (identifier) right: (identifier))) (expression_statement (comma_expression left: (identifier) right: (binary_expression left: (true) (ERROR) right: (parenthesized_expression (comma_expression left: (identifier) right: (comma_expression left: (identifier) right: (comma_expression left: (identifier) right: (comma_expression left: (identifier) right: (comma_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))))))))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) 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))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (number_literal) (identifier) (pointer_expression argument: (identifier)) (identifier) (identifier))))) (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: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))))) (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: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (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)))))) right: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (number_literal)))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (number_literal)) right: (number_literal))) right: (number_literal))) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (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 (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: (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: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))))) alternative: (else_clause (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))))))) (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: (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 (comma_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (true) right: (parenthesized_expression (comma_expression left: (identifier) right: (comma_expression left: (identifier) right: (comma_expression left: (identifier) right: (comma_expression left: (identifier) right: (comma_expression left: (identifier) right: (comma_expression left: (identifier) right: (identifier))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (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: (field_expression argument: (identifier) field: (field_identifier)) 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: (number_literal))) consequence: (compound_statement (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: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)) right: (number_literal))) right: (number_literal))) right: (number_literal))))))))))) (labeled_statement label: (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: (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: (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: (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))))) right: (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 (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) 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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal)))))) (return_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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (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: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier) (identifier) (number_literal) (identifier)))) (return_statement))))) (return_statement) (ERROR))

/* void gold::Symbol_table::resolve<64, true>(gold::Sized_symbol<64>*, elfcpp::Sym<64, true> const&,
   unsigned int, bool, unsigned int, gold::Object*, char const*, bool) */

void __thiscall
gold::Symbol_table::MASKED
          (Symbol_table *this,Sized_symbol *param_1,Sym *param_2,uint param_3,bool param_4,
          uint param_5,Object *param_6,char *param_7,bool param_8)

{
  Sized_symbol SVar1;
  uint uVar2;
  int iVar3;
  char *pcVar4;
  int iVar5;
  undefined4 uVar6;
  byte bVar7;
  int *piVar8;
  undefined *puVar9;
  undefined1 *puVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  char *in_stack_ffffff70;
  undefined4 *local_78;
  uint local_74;
  undefined4 local_70;
  undefined4 local_6c;
  Object *local_60;
  uint local_5c;
  undefined4 local_58;
  undefined4 local_54;
  undefined1 auStack_50 [8];
  undefined4 local_48;
  char *local_44;
  undefined4 **local_40;
  undefined1 *local_3c;
  undefined4 *local_38;
  code *local_34;
  char **local_30;
  _Map_base<char_const*,std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>,std::allocator<std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>>,std::__detail::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>
  *local_2c;
  
  uVar2 = *(uint *)(param_1 + 0x28);
  if ((uVar2 & 0xe000) != 0) {
    (*(code *)PTR_do_gold_unreachable_004323c4)
              (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xaa,PTR_DAT_0043226c + 0x3c38);
    return;
  }
  uVar13 = *(uint *)(param_1 + 0xc);
  iVar5 = uVar2 << 0x1d;
  if (((uVar2 << 0x10) >> 0x1d == 0) && (param_6 == *(Object **)(param_1 + 8))) {
    if (iVar5 < 0) {
      bVar7 = uVar13 != 0;
    }
    else {
      bVar7 = (*(code *)PTR_is_common_shndx_00432fe0)(uVar13);
      bVar7 = bVar7 ^ 1;
    }
    if (bVar7 == 0) goto LAB_00295df8;
    if (!param_4) goto LAB_0029609c;
joined_r0x002960a4:
    if ((((-1 < iVar5) && (uVar13 == param_3)) &&
        (*(int *)(*(int *)param_2 + 8) == *(int *)(param_1 + 0x30))) &&
       (*(int *)(*(int *)param_2 + 0xc) == *(int *)(param_1 + 0x34))) {
      return;
    }
  }
  else {
LAB_00295df8:
    if (!param_4) {
LAB_0029609c:
      if (param_3 == 0xfff1) goto joined_r0x002960a4;
    }
  }
  puVar9 = PTR_parameters_00432be0;
  piVar8 = *(int **)(*(int *)PTR_parameters_00432be0 + 0xc);
  if (piVar8 == (int *)0x0) {
    (*(code *)PTR_do_gold_unreachable_004323c4)
              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + 0x3bb8);
    return;
  }
  if ((*(char *)(piVar8[1] + 0xd) != '\0') &&
     (in_stack_ffffff70 = param_7,
     iVar3 = (**(code **)(*piVar8 + 0xac))(piVar8,param_1,param_2,param_6,param_7), iVar3 != 0)) {
    return;
  }
  if (*(int *)(param_6 + 0x2c) < 0) {
    if ((param_3 == 0) && ((((uint)(*(int *)(param_1 + 0x28) << 8) >> 0x1e) + 3 & 3) < 2)) {
      return;
    }
    *(uint *)(param_1 + 0x28) = *(uint *)(param_1 + 0x28) & 0xffffff7f | 0x80;
    iVar3 = (**(code **)(*(int *)param_6 + 0x14))(param_6);
  }
  else {
    if (((*(byte *)(*(int *)param_2 + 4) & 0xf) == 5) &&
       ((param_4 || (iVar3 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar3 == 0)))) {
      uVar6 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + 0x3c50);
      (*(code *)PTR_demangled_name_abi_cxx11__00433f24)(&local_78,param_1);
      if ((*(uint *)(param_1 + 0x28) & 0xe000) != 0) {
                    /* try { // try from 002967c8 to 002967cf has its CatchHandler @ 002967d0 */
        (*(code *)PTR_do_gold_unreachable_004323c4)
                  (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24);
        return;
      }
                    /* try { // try from 002965d8 to 002965df has its CatchHandler @ 002967d0 */
      (*(code *)PTR_gold_warning_0043245c)
                (uVar6,local_78,*(undefined4 *)(*(int *)(param_1 + 8) + 4));
      if (local_78 == &local_70) {
        return;
      }
      operator_delete(local_78);
      return;
    }
    *(uint *)(param_1 + 0x28) = *(uint *)(param_1 + 0x28) & 0xfffffeff | 0x100;
    iVar3 = (**(code **)(*(int *)param_6 + 0x14))(param_6);
  }
  if ((iVar3 == 0) && (-1 < *(int *)(param_6 + 0x2c))) {
    *(uint *)(param_1 + 0x28) = *(uint *)(param_1 + 0x28) & 0xfffffffd | 2;
  }
  if ((*(uint *)(param_1 + 0x28) << 0x10) >> 0x1d == 0) {
    if ((*(uint *)(param_1 + 0x28) & 0xe000) != 0) goto LAB_0029679c;
    iVar3 = (**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8));
    if (iVar3 == 0) goto LAB_002963b4;
    iVar3 = *(int *)(*(int *)puVar9 + 8);
    if (iVar3 == 0) goto LAB_002963c4;
    if (*(char *)(*(int *)(iVar3 + 0x594c) + 0x69) != '\0') {
      if (((((*(uint *)(param_1 + 0x28) & 0xe000) != 0) ||
           ((int)(*(uint *)(param_1 + 0x28) << 0x1d) < 0)) ||
          (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(*(undefined4 *)(param_1 + 0xc)),
          iVar5 == 0)) ||
         ((param_4 || (iVar5 = (*(code *)PTR_is_common_shndx_00432fe0)(param_3), iVar5 == 0)))) {
        override<64,true>(this,param_1,param_2,param_3,param_4,param_6,param_7);
        return;
      }
      uVar13 = *(uint *)(param_1 + 0x38);
      uVar12 = *(uint *)(param_1 + 0x3c);
      uVar2 = *(uint *)(param_1 + 0x30);
      uVar11 = *(uint *)(param_1 + 0x34);
      override<64,true>(this,param_1,param_2,param_3,false,param_6,param_7);
      if ((*(uint *)(param_1 + 0x38) < uVar13) ||
         ((*(uint *)(param_1 + 0x38) == uVar13 && (*(uint *)(param_1 + 0x3c) < uVar12)))) {
        *(uint *)(param_1 + 0x38) = uVar13;
        *(uint *)(param_1 + 0x3c) = uVar12;
      }
      if (uVar2 <= *(uint *)(param_1 + 0x30)) {
        if (*(uint *)(param_1 + 0x30) != uVar2) {
          return;
        }
        if (uVar11 <= *(uint *)(param_1 + 0x34)) {
          return;
        }
      }
      *(uint *)(param_1 + 0x30) = uVar2;
      *(uint *)(param_1 + 0x34) = uVar11;
      return;
    }
  }
  else {
LAB_002963b4:
    iVar3 = *(int *)(*(int *)puVar9 + 8);
    if (iVar3 == 0) goto LAB_002963c4;
  }
  if (*(char *)(iVar3 + 0xe11) == '\0') {
LAB_00296184:
    local_40 = &local_78;
    iVar5 = *(int *)param_6;
  }
  else {
    iVar3 = *(int *)param_2;
    if (((((int)(uint)*(byte *)(iVar3 + 4) >> 4 != 2) &&
         ((uint)(*(int *)(param_1 + 0x28) << 4) >> 0x1c != 2)) || (param_5 == 0)) ||
       ((-1 < iVar5 || (uVar13 == 0)))) goto LAB_00296184;
    if (*(int *)(iVar3 + 0x10) == 0 && *(int *)(iVar3 + 0x14) == 0) goto LAB_00296184;
    if ((*(int *)(param_1 + 0x38) == 0 && *(int *)(param_1 + 0x3c) == 0) ||
       ((((*(uint *)(param_1 + 0x28) >> 0x1c == (*(byte *)(iVar3 + 4) & 0xf) &&
          (*(int *)(param_1 + 0x38) == *(int *)(iVar3 + 0x10))) &&
         (*(int *)(param_1 + 0x3c) == *(int *)(iVar3 + 0x14))) ||
        ((pcVar4 = *(char **)param_1, *pcVar4 != '_' || (pcVar4[1] != 'Z')))))) goto LAB_00296184;
    local_58 = *(undefined4 *)(iVar3 + 8);
    local_54 = *(undefined4 *)(iVar3 + 0xc);
    local_60 = param_6;
    local_5c = param_5;
    if ((*(uint *)(param_1 + 0x28) & 0xe000) != 0) {
LAB_0029679c:
      (*(code *)PTR_do_gold_unreachable_004323c4)
                (PTR_s_alize_xindex_004323b4 + -0x5bdc,0xa1,PTR_DAT_0043226c + 0x3c24);
      return;
    }
    local_34 = (code *)PTR_operator___00435c08;
    local_2c = (_Map_base<char_const*,std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>,std::allocator<std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>>,std::__detail::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>
                *)(this + 0x128);
    local_78 = *(undefined4 **)(param_1 + 8);
    local_30 = &local_44;
    local_6c = *(undefined4 *)(param_1 + 0x34);
    local_70 = *(undefined4 *)(param_1 + 0x30);
    local_40 = &local_78;
    local_74 = uVar13;
    local_44 = pcVar4;
    local_48 = std::__detail::
               _Map_base<char_const*,std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>,std::allocator<std::pair<char_const*const,std::unordered_set<gold::Symbol_location,gold::Symbol_location_hash,std::equal_to<gold::Symbol_location>,std::allocator<gold::Symbol_location>>>>,std::__detail::_Select1st,std::equal_to<char_const*>,std::hash<char_const*>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>,true>
               ::operator[](local_2c,local_30);
    local_38 = &local_48;
    local_3c = auStack_50;
    uVar2 = (uint)in_stack_ffffff70 & 0xffffff;
    std::
    _Hashtable<gold::Symbol_location,gold::Symbol_location,std::allocator<gold::Symbol_location>,std::__detail::_Identity,std::equal_to<gold::Symbol_location>,gold::Symbol_location_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,true,true>>
    ::
    _M_insert<gold::Symbol_location_const&,std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,true>>>>
              (local_3c,local_48,&local_60,local_38,uVar2,1);
    local_44 = *(char **)param_1;
    local_48 = (*local_34)(local_2c,local_30);
    std::
    _Hashtable<gold::Symbol_location,gold::Symbol_location,std::allocator<gold::Symbol_location>,std::__detail::_Identity,std::equal_to<gold::Symbol_location>,gold::Symbol_location_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,true,true>>
    ::
    _M_insert<gold::Symbol_location_const&,std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,true>>>>
              (local_3c,local_48,local_40,local_38,uVar2 & 0xffffff,1);
    iVar5 = *(int *)param_6;
  }
  iVar5 = (**(code **)(iVar5 + 0x14))(param_6);
  if (iVar5 == 0) {
    uVar2 = (uint)*(byte *)(*(int *)param_2 + 4);
    uVar13 = uVar2 & 0xf;
  }
  else {
    uVar2 = (uint)*(byte *)(*(int *)param_2 + 4);
    uVar13 = *(uint *)(param_1 + 0x28) >> 0x1c;
  }
  uVar6 = FUN_00291650(uVar2 >> 4,*(uint *)(param_6 + 0x2c) >> 0x1f,param_3,param_4);
  local_3c = *(undefined1 **)(param_1 + 0x3c);
  uVar2 = *(uint *)(param_1 + 0x38);
  iVar5 = should_override(param_1,uVar6,uVar13,0,param_6,&local_60,local_40,param_8);
  if (iVar5 == 0) {
    iVar5 = *(int *)param_2;
    if (local_60._0_1_ != '\0') {
      uVar13 = *(uint *)(iVar5 + 0x10);
      puVar10 = *(undefined1 **)(iVar5 + 0x14);
      if ((uVar2 < uVar13) || ((uVar13 == uVar2 && (local_3c < puVar10)))) {
        *(uint *)(param_1 + 0x38) = uVar13;
        *(undefined1 **)(param_1 + 0x3c) = puVar10;
      }
      uVar13 = *(uint *)(iVar5 + 8);
      uVar11 = *(uint *)(iVar5 + 0xc);
      if ((*(uint *)(param_1 + 0x30) < uVar13) ||
         ((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)))) {
        *(uint *)(param_1 + 0x30) = uVar13;
        *(uint *)(param_1 + 0x34) = uVar11;
      }
    }
    if ((local_78._0_1_ != '\0') &&
       ((-1 < *(int *)(param_1 + 0x2c) || (*(int *)(param_1 + 0x2c) << 1 < 0)))) {
      param_1[0x2c] =
           (Sized_symbol)
           ((byte)param_1[0x2c] & 0x3f | ((int)(uint)*(byte *)(iVar5 + 4) >> 4 == 2) << 6 | 0x80);
    }
    bVar7 = *(byte *)(iVar5 + 5);
    uVar13 = *(uint *)(param_1 + 0x28);
    if (((bVar7 & 3) != 0) && (((uVar13 & 0xc00000) == 0 || ((bVar7 & 3) < (uVar13 << 8) >> 0x1e))))
    {
      uVar13 = uVar13 & 0xff3fffff | (bVar7 & 3) << 0x16;
      *(uint *)(param_1 + 0x28) = uVar13;
    }
  }
  else {
    iVar5 = *(int *)(param_1 + 0x28);
    uVar13 = *(uint *)(param_1 + 0x30);
    uVar11 = *(uint *)(param_1 + 0x34);
    override<64,true>(this,param_1,param_2,param_3,param_4,param_6,param_7);
    if (local_60._0_1_ != '\0') {
      if ((*(uint *)(param_1 + 0x38) < uVar2) ||
         ((*(uint *)(param_1 + 0x38) == uVar2 && (*(undefined1 **)(param_1 + 0x3c) < local_3c)))) {
        *(uint *)(param_1 + 0x38) = uVar2;
        *(undefined1 **)(param_1 + 0x3c) = local_3c;
      }
      if ((*(uint *)(param_1 + 0x30) < uVar13) ||
         ((*(uint *)(param_1 + 0x30) == uVar13 && (*(uint *)(param_1 + 0x34) < uVar11)))) {
        *(uint *)(param_1 + 0x30) = uVar13;
        *(uint *)(param_1 + 0x34) = uVar11;
      }
    }
    uVar13 = *(uint *)(param_1 + 0x28);
    if (local_78._0_1_ != '\0') {
      if (*(int *)(param_1 + 0x2c) < 0) {
        if (-1 < *(int *)(param_1 + 0x2c) << 1) goto LAB_002962d0;
        SVar1 = param_1[0x2c];
      }
      else {
        SVar1 = param_1[0x2c];
      }
      param_1[0x2c] =
           (Sized_symbol)((byte)SVar1 & 0x3f | ((uint)(iVar5 << 4) >> 0x1c == 2) << 6 | 0x80);
    }
  }
LAB_002962d0:
  if (((((uVar13 & 0xe000) == 0) && (iVar5 = *(int *)(param_1 + 8), *(int *)(iVar5 + 0x2c) < 0)) &&
      (*(int *)(param_1 + 0x28) << 0x17 < 0)) && (-1 < *(int *)(param_1 + 0x2c) << 1)) {
    *(byte *)(iVar5 + 0x2c) = *(byte *)(iVar5 + 0x2c) & 0xbf | 0x40;
  }
  if (local_60._0_1_ != '\0') {
    if (*(int *)(*(int *)puVar9 + 8) == 0) {
LAB_002963c4:
      (*(code *)PTR_do_gold_unreachable_004323c4)
                (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + 0x3c1c);
      return;
    }
    if (*(char *)(*(int *)(*(int *)puVar9 + 8) + 0x43f5) != '\0') {
      uVar13 = *(uint *)(*(int *)param_2 + 0x10);
      puVar10 = *(undefined1 **)(*(int *)param_2 + 0x14);
      if ((uVar13 < uVar2) || ((uVar2 == uVar13 && (puVar10 < local_3c)))) {
        puVar9 = PTR_DAT_0043226c + 0x3c88;
      }
      else if ((uVar2 < uVar13) || ((uVar13 == uVar2 && (local_3c < puVar10)))) {
        puVar9 = PTR_DAT_0043226c + 0x3cb4;
      }
      else {
        puVar9 = PTR_DAT_0043226c + 0x3ce0;
      }
      uVar6 = (*(code *)PTR_gettext_00436818)(puVar9);
      report_resolve_problem(0,uVar6,param_1,0,param_6);
      return;
    }
  }
  return;
}

