
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */
/* 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, false>
   DWARF original prototype: void resolve<64,_false>(Symbol_table * this, Sized_symbol<64> * to,
   Sym<64,_false> * 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,_false>
          (Symbol_table *this,Sized_symbol<64> *to,Sym<64,_false> *sym,uint st_shndx,
          bool is_ordinary,uint orig_st_shndx,Object *object,char *version,bool is_default_version)

{
  undefined1 *puVar1;
  byte bVar2;
  Target *pTVar3;
  Sym_data<64> *pSVar4;
  ulong uVar5;
  Output_segment *pOVar6;
  ulong uVar7;
  uint64_t uVar8;
  STT SVar9;
  anon_union_8_3_b0f6f408_for_u1_ aVar10;
  bool bVar11;
  int iVar12;
  uint uVar13;
  long lVar14;
  undefined4 extraout_var_00;
  General_options *pGVar15;
  undefined4 extraout_var_01;
  char *pcVar16;
  undefined4 extraout_var_02;
  STT SVar17;
  byte bVar18;
  bool *local_98;
  char *local_88;
  __node_gen_type __node_gen;
  bool adjust_common_sizes;
  uint local_70;
  Elf_Addr local_68;
  bool adjust_dyndef;
  uint local_50;
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  local_48;
  undefined4 extraout_var;
  
  if (((to->super_Symbol).field_0x3a & 7) != 0) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");
  }
  uVar13 = (to->super_Symbol).u2_.shndx;
  bVar18 = (byte)(to->super_Symbol).field_0x3b >> 5 & 1;
  if (object == (to->super_Symbol).u1_.object) {
    if (bVar18 == 0) {
      bVar11 = Symbol::is_common_shndx(uVar13);
      if ((((bVar11) || (!is_ordinary)) && (st_shndx == 0xfff1)) && (!is_ordinary))
      goto LAB_002c14d0;
    }
    else if (((uVar13 != 0) && (is_ordinary)) && (st_shndx == uVar13)) goto LAB_002c1838;
  }
  else if (((!is_ordinary) && (st_shndx == 0xfff1)) && (bVar18 == 0)) {
LAB_002c14d0:
    if (uVar13 == 0xfff1) {
LAB_002c1838:
      if (sym->p_->st_value == to->value_) {
        return;
      }
    }
  }
  pTVar3 = parameters->target_;
  if (pTVar3 == (Target *)0x0) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/parameters.h",0x69,"target");
  }
  if ((pTVar3->pti_->has_resolve == false) ||
     (iVar12 = (*pTVar3->_vptr_Target[0x2b])(pTVar3,to,sym,object), (char)iVar12 == '\0')) {
    if ((object->field_0x3c & 1) == 0) {
      if (((sym->p_->st_info & 0xf) == 5) &&
         ((is_ordinary || (bVar11 = Symbol::is_common_shndx(st_shndx), !bVar11)))) {
        if (((to->super_Symbol).field_0x3a & 7) == 0) {
          uVar8 = ((to->super_Symbol).u1_.output_data)->address_;
          Symbol::demangled_name((string *)&adjust_dyndef,&to->super_Symbol);
          aVar10 = _adjust_dyndef;
          pcVar16 = (char *)gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");
                    /* try { // try from 002c1a10 to 002c1a14 has its CatchHandler @ 002c1bf1 */
          gold_warning(pcVar16,aVar10.object,uVar8);
          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
               *)_adjust_dyndef == &local_48) {
            return;
          }
          operator_delete(_adjust_dyndef);
          return;
        }
        goto LAB_002c1bd9;
      }
      puVar1 = &(to->super_Symbol).field_0x3a;
      *puVar1 = *puVar1 | 0x80;
      iVar12 = (*object->_vptr_Object[5])(object);
      lVar14 = CONCAT44(extraout_var,iVar12);
    }
    else {
      if ((st_shndx == 0) && (((byte)(to->super_Symbol).field_0x39 & 3) - 1 < 2)) {
        return;
      }
      puVar1 = &(to->super_Symbol).field_0x3b;
      *puVar1 = *puVar1 | 1;
      iVar12 = (*object->_vptr_Object[5])(object);
      lVar14 = CONCAT44(extraout_var_02,iVar12);
    }
    if ((lVar14 == 0) && ((object->field_0x3c & 1) == 0)) {
      puVar1 = &(to->super_Symbol).field_0x3b;
      *puVar1 = *puVar1 | 0x40;
    }
    if ((((to->super_Symbol).field_0x3a & 7) == 0) &&
       (iVar12 = (*((to->super_Symbol).u1_.object)->_vptr_Object[5])(),
       CONCAT44(extraout_var_00,iVar12) != 0)) {
      pGVar15 = parameters->options_;
      if (pGVar15 == (General_options *)0x0) goto LAB_002c17cc;
      if (pGVar15->plugins_->in_replacement_phase_ != false) {
        if ((((((to->super_Symbol).field_0x3a & 7) != 0) ||
             (((to->super_Symbol).field_0x3b & 0x20) != 0)) ||
            (bVar11 = Symbol::is_common_shndx((to->super_Symbol).u2_.shndx), !bVar11)) ||
           ((is_ordinary || (bVar11 = Symbol::is_common_shndx(st_shndx), !bVar11)))) {
          override<64,_false>(this,to,sym,st_shndx,is_ordinary,object,version);
          return;
        }
        uVar5 = to->symsize_;
        uVar7 = to->value_;
        override<64,_false>(this,to,sym,st_shndx,false,object,version);
        if (to->symsize_ < uVar5) {
          to->symsize_ = uVar5;
        }
        if (uVar7 <= to->value_) {
          return;
        }
        to->value_ = uVar7;
        return;
      }
    }
    else {
      pGVar15 = parameters->options_;
      if (pGVar15 == (General_options *)0x0) goto LAB_002c17cc;
    }
    if ((pGVar15->detect_odr_violations_).value != false) {
      pSVar4 = sym->p_;
      if ((((((int)(uint)pSVar4->st_info >> 4 == 2) ||
            ((byte)(to->super_Symbol).field_0x38 >> 4 == 2)) &&
           (((orig_st_shndx != 0 & bVar18) != 0 &&
            ((((uVar13 != 0 && (pSVar4->st_size != 0)) && (to->symsize_ != 0)) &&
             (((pSVar4->st_info & 0xf) != ((to->super_Symbol).field_0x38 & 0xf) ||
              (to->symsize_ != pSVar4->st_size)))))))) &&
          (pcVar16 = (to->super_Symbol).name_, *pcVar16 == '_')) && (pcVar16[1] == 'Z')) {
        local_68 = pSVar4->st_value;
        _adjust_common_sizes = object;
        local_70 = orig_st_shndx;
        if (((to->super_Symbol).field_0x3a & 7) != 0) {
LAB_002c1bd9:
                    /* WARNING: Subroutine does not return */
          do_gold_unreachable("../../gold/symtab.h",0xa1,"object");
        }
        _adjust_dyndef = (to->super_Symbol).u1_;
        local_48._M_allocated_capacity = to->value_;
        local_88 = pcVar16;
        local_50 = uVar13;
        __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>
                           *)&this->candidate_odr_violations_,&local_88);
        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>_>_>_>
                  ((_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>_>
                    *)__node_gen._M_h,&adjust_common_sizes,&__node_gen,1);
        local_88 = (to->super_Symbol).name_;
        __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>
                           *)&this->candidate_odr_violations_,&local_88);
        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>_>_>_>
                  ((_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>_>
                    *)__node_gen._M_h,&adjust_dyndef,&__node_gen,1);
      }
    }
    local_98 = &adjust_common_sizes;
    iVar12 = (*object->_vptr_Object[5])(object);
    if (CONCAT44(extraout_var_01,iVar12) == 0) {
      SVar17 = (STT)sym->p_->st_info;
      SVar9 = SVar17;
    }
    else {
      SVar17 = (STT)sym->p_->st_info;
      SVar9 = (uint)(byte)(to->super_Symbol).field_0x38;
    }
    uVar13 = symbol_to_bits((int)SVar17 >> 4,(bool)(object->field_0x3c & 1),st_shndx,is_ordinary);
    uVar5 = to->symsize_;
    bVar11 = should_override(&to->super_Symbol,uVar13,SVar9 & STT_HIPROC,OBJECT,object,local_98,
                             &adjust_dyndef,is_default_version);
    if (bVar11) {
      bVar18 = (to->super_Symbol).field_0x38;
      uVar7 = to->value_;
      override<64,_false>(this,to,sym,st_shndx,is_ordinary,object,version);
      if (adjust_common_sizes != false) {
        if (to->symsize_ < uVar5) {
          to->symsize_ = uVar5;
        }
        if (to->value_ < uVar7) {
          to->value_ = uVar7;
        }
      }
      if ((adjust_dyndef != false) &&
         ((bVar2 = (to->super_Symbol).field_0x3c, (bVar2 & 1) == 0 || ((bVar2 & 2) != 0)))) {
        (to->super_Symbol).field_0x3c =
             (to->super_Symbol).field_0x3c & 0xfd | (bVar18 >> 4 == 2) * '\x02' | 1;
      }
    }
    else {
      pSVar4 = sym->p_;
      if (adjust_common_sizes != false) {
        if (uVar5 < pSVar4->st_size) {
          to->symsize_ = pSVar4->st_size;
        }
        if (to->value_ < pSVar4->st_value) {
          to->value_ = pSVar4->st_value;
        }
      }
      if (adjust_dyndef != false) {
        bVar18 = (to->super_Symbol).field_0x3c;
        if (((bVar18 & 1) == 0) || ((bVar18 & 2) != 0)) {
          (to->super_Symbol).field_0x3c =
               (to->super_Symbol).field_0x3c & 0xfd |
               ((int)(uint)pSVar4->st_info >> 4 == 2) * '\x02' | 1;
        }
      }
      bVar18 = pSVar4->st_other & 3;
      if ((pSVar4->st_other & 3) != 0) {
        bVar2 = (to->super_Symbol).field_0x39;
        if (((bVar2 & 3) == 0) || (bVar18 < (bVar2 & 3))) {
          (to->super_Symbol).field_0x39 = bVar18 | bVar2 & 0xfc;
        }
      }
    }
    bVar18 = (to->super_Symbol).field_0x3a;
    if ((bVar18 & 7) == 0) {
      pOVar6 = (to->super_Symbol).u1_.output_segment;
      bVar2 = *(byte *)((long)&pOVar6->output_lists_[2].
                               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>
                               ._M_impl._M_finish + 4);
      if ((((bVar2 & 1) != 0) && ((char)bVar18 < '\0')) &&
         (((to->super_Symbol).field_0x3c & 2) == 0)) {
        *(byte *)((long)&pOVar6->output_lists_[2].
                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>
                         ._M_impl._M_finish + 4) = bVar2 | 2;
      }
    }
    if (adjust_common_sizes != false) {
      if (parameters->options_ == (General_options *)0x0) {
LAB_002c17cc:
                    /* WARNING: Subroutine does not return */
        do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
      }
      if ((parameters->options_->warn_common_).value != false) {
        pcVar16 = (char *)gettext();
        report_resolve_problem(false,pcVar16,&to->super_Symbol,OBJECT,object);
      }
    }
  }
  return;
}



ulong FUN_002c1460(long param_1,undefined8 *param_2,ulong *param_3,int param_4,char param_5,
                  int param_6,long *param_7,ulong param_8,undefined1 param_9)

{
  byte bVar1;
  int iVar2;
  long *plVar3;
  ulong uVar4;
  undefined8 *puVar5;
  char cVar6;
  undefined4 uVar7;
  uint uVar8;
  ulong uVar9;
  long lVar10;
  undefined8 uVar11;
  ulong uVar12;
  undefined8 uVar13;
  uint uVar14;
  char *pcVar15;
  byte bVar16;
  long **local_98;
  char *local_88;
  undefined8 local_80;
  long *local_78;
  int local_70;
  undefined8 local_68;
  undefined8 *local_58;
  int local_50;
  undefined8 local_48 [3];
  
  if ((*(byte *)((long)param_2 + 0x3a) & 7) != 0) {
                    /* WARNING: Subroutine does not return */
    FUN_001e9890("../../gold/symtab.h",0xaa,"shndx");
  }
  iVar2 = *(int *)(param_2 + 3);
  bVar16 = *(byte *)((long)param_2 + 0x3b) >> 5 & 1;
  if (param_7 == (long *)param_2[2]) {
    if (bVar16 == 0) {
      cVar6 = FUN_002dd6f0(iVar2);
      if ((((cVar6 == '\x01') || (param_5 == '\0')) && (param_4 == 0xfff1)) && (param_5 != '\x01'))
      goto LAB_002c14d0;
    }
    else if (((iVar2 != 0) && (param_5 != '\0')) && (param_4 == iVar2)) goto LAB_002c1838;
  }
  else if (((param_5 != '\x01') && (param_4 == 0xfff1)) && (bVar16 == 0)) {
LAB_002c14d0:
    if (iVar2 == 0xfff1) {
LAB_002c1838:
      if (*(long *)(*param_3 + 8) == param_2[8]) {
        return *param_3;
      }
    }
  }
  plVar3 = *(long **)(PTR_DAT_004ba7c8 + 0x18);
  if (plVar3 == (long *)0x0) {
                    /* WARNING: Subroutine does not return */
    FUN_001e9890("../../gold/parameters.h",0x69,"target");
  }
  if ((*(char *)(plVar3[1] + 0xd) == '\0') ||
     (uVar9 = (**(code **)(*plVar3 + 0x158))(plVar3,param_2,param_3,param_7,param_8),
     (char)uVar9 == '\0')) {
    if ((*(byte *)((long)param_7 + 0x3c) & 1) == 0) {
      if (((*(byte *)(*param_3 + 4) & 0xf) == 5) &&
         ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))) {
        if ((*(byte *)((long)param_2 + 0x3a) & 7) == 0) {
          uVar11 = *(undefined8 *)(param_2[2] + 8);
          FUN_002de930(&local_58,param_2);
          puVar5 = local_58;
          uVar13 = gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");
                    /* try { // try from 002c1a10 to 002c1a14 has its CatchHandler @ 002c1bf1 */
          uVar9 = FUN_001e15a0(uVar13,puVar5,uVar11);
          if (local_58 == local_48) {
            return uVar9;
          }
          uVar9 = FUN_00338a50();
          return uVar9;
        }
        goto LAB_002c1bd9;
      }
      *(byte *)((long)param_2 + 0x3a) = *(byte *)((long)param_2 + 0x3a) | 0x80;
      lVar10 = (**(code **)(*param_7 + 0x28))(param_7);
    }
    else {
      if ((param_4 == 0) && (uVar8 = (*(byte *)((long)param_2 + 0x39) & 3) - 1, uVar8 < 2)) {
        return (ulong)uVar8;
      }
      *(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 1;
      lVar10 = (**(code **)(*param_7 + 0x28))(param_7);
    }
    if ((lVar10 == 0) && ((*(byte *)((long)param_7 + 0x3c) & 1) == 0)) {
      *(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 0x40;
    }
    if (((*(byte *)((long)param_2 + 0x3a) & 7) == 0) &&
       (lVar10 = (**(code **)(*(long *)param_2[2] + 0x28))(), lVar10 != 0)) {
      lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10);
      if (lVar10 == 0) goto LAB_002c17cc;
      if (*(char *)(*(long *)(lVar10 + 0x9058) + 0xb1) != '\0') {
        if (((((*(byte *)((long)param_2 + 0x3a) & 7) != 0) ||
             ((*(byte *)((long)param_2 + 0x3b) & 0x20) != 0)) ||
            (cVar6 = FUN_002dd6f0(*(undefined4 *)(param_2 + 3)), cVar6 != '\x01')) ||
           ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))) {
          FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7);
          return param_8;
        }
        uVar9 = param_2[9];
        uVar4 = param_2[8];
        uVar12 = FUN_002bffb0(param_1,param_2,param_3,param_4,0,param_7,param_8);
        if ((ulong)param_2[9] < uVar9) {
          param_2[9] = uVar9;
        }
        if (uVar4 <= (ulong)param_2[8]) {
          return uVar12;
        }
        param_2[8] = uVar4;
        return uVar12;
      }
    }
    else {
      lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10);
      if (lVar10 == 0) goto LAB_002c17cc;
    }
    if (*(char *)(lVar10 + 0x16b1) != '\0') {
      uVar9 = *param_3;
      if ((((((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) || (*(byte *)(param_2 + 7) >> 4 == 2)) &&
           (((param_6 != 0 & bVar16) != 0 &&
            (((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0)))))) &&
          (((*(byte *)(uVar9 + 4) & 0xf) != (*(byte *)(param_2 + 7) & 0xf) ||
           (param_2[9] != *(long *)(uVar9 + 0x10))))) &&
         ((pcVar15 = (char *)*param_2, *pcVar15 == '_' && (pcVar15[1] == 'Z')))) {
        local_68 = *(undefined8 *)(uVar9 + 8);
        local_78 = param_7;
        local_70 = param_6;
        if ((*(byte *)((long)param_2 + 0x3a) & 7) != 0) {
LAB_002c1bd9:
                    /* WARNING: Subroutine does not return */
          FUN_001e9890("../../gold/symtab.h",0xa1,"object");
        }
        local_58 = (undefined8 *)param_2[2];
        local_48[0] = param_2[8];
        local_88 = pcVar15;
        local_50 = iVar2;
        local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);
        FUN_001c3360(local_80,&local_78,&local_80,1);
        local_88 = (char *)*param_2;
        local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);
        FUN_001c3360(local_80,&local_58,&local_80,1);
      }
    }
    local_98 = &local_78;
    lVar10 = (**(code **)(*param_7 + 0x28))(param_7);
    if (lVar10 == 0) {
      uVar14 = (uint)*(byte *)(*param_3 + 4);
      uVar8 = uVar14;
    }
    else {
      uVar14 = (uint)*(byte *)(*param_3 + 4);
      uVar8 = (uint)*(byte *)(param_2 + 7);
    }
    uVar7 = FUN_002be580((int)uVar14 >> 4,*(byte *)((long)param_7 + 0x3c) & 1,param_4,param_5);
    uVar4 = param_2[9];
    cVar6 = FUN_002be950(param_2,uVar7,uVar8 & 0xf,0,param_7,local_98,&local_58,param_9);
    if (cVar6 == '\0') {
      uVar9 = *param_3;
      if ((char)local_78 != '\0') {
        if (uVar4 < *(ulong *)(uVar9 + 0x10)) {
          param_2[9] = *(ulong *)(uVar9 + 0x10);
        }
        if ((ulong)param_2[8] < *(ulong *)(uVar9 + 8)) {
          param_2[8] = *(ulong *)(uVar9 + 8);
        }
      }
      if ((char)local_58 != '\0') {
        if (((*(byte *)((long)param_2 + 0x3c) & 1) == 0) ||
           ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)) {
          *(byte *)((long)param_2 + 0x3c) =
               *(byte *)((long)param_2 + 0x3c) & 0xfd |
               ((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) * '\x02' | 1;
        }
      }
      bVar16 = *(byte *)(uVar9 + 5) & 3;
      if ((*(byte *)(uVar9 + 5) & 3) != 0) {
        bVar1 = *(byte *)((long)param_2 + 0x39);
        if (((bVar1 & 3) == 0) || (bVar16 < (bVar1 & 3))) {
          *(byte *)((long)param_2 + 0x39) = bVar16 | bVar1 & 0xfc;
        }
      }
    }
    else {
      bVar16 = *(byte *)(param_2 + 7);
      uVar9 = param_2[8];
      FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7,param_8);
      if ((char)local_78 != '\0') {
        if ((ulong)param_2[9] < uVar4) {
          param_2[9] = uVar4;
        }
        if ((ulong)param_2[8] < uVar9) {
          param_2[8] = uVar9;
        }
      }
      if (((char)local_58 != '\0') &&
         (((*(byte *)((long)param_2 + 0x3c) & 1) == 0 ||
          ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)))) {
        *(byte *)((long)param_2 + 0x3c) =
             *(byte *)((long)param_2 + 0x3c) & 0xfd | (bVar16 >> 4 == 2) * '\x02' | 1;
      }
    }
    bVar16 = *(byte *)((long)param_2 + 0x3a);
    uVar9 = (ulong)bVar16;
    if ((bVar16 & 7) == 0) {
      bVar1 = *(byte *)(param_2[2] + 0x3c);
      if ((((bVar1 & 1) != 0) && ((char)bVar16 < '\0')) &&
         ((*(byte *)((long)param_2 + 0x3c) & 2) == 0)) {
        *(byte *)(param_2[2] + 0x3c) = bVar1 | 2;
      }
    }
    if ((char)local_78 != '\0') {
      uVar9 = *(ulong *)(PTR_DAT_004ba7c8 + 0x10);
      if (uVar9 == 0) {
LAB_002c17cc:
                    /* WARNING: Subroutine does not return */
        FUN_001e9890("../../gold/parameters.h",0x5c,"options");
      }
      if (*(char *)(uVar9 + 0x6de1) != '\0') {
        pcVar15 = "common of \'%s\' overriding smaller common";
        uVar9 = *(ulong *)(*param_3 + 0x10);
        if ((uVar9 > uVar4 || uVar4 == uVar9) &&
           (pcVar15 = "common of \'%s\' overidden by larger common", uVar9 <= uVar4)) {
          pcVar15 = "multiple common of \'%s\'";
        }
        uVar11 = gettext(pcVar15);
        uVar9 = FUN_002be7a0(0,uVar11,param_2,0,param_7);
      }
    }
  }
  return uVar9;
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x78
MOV EAX,dword ptr [RSP + 0xc0]
MOV RBX,qword ptr [RSP + 0xb0]
MOV dword ptr [RSP],ECX
MOV qword ptr [RSP + 0x8],RDI
MOV dword ptr [RSP + 0x10],R9D
MOV dword ptr [RSP + 0x4],EAX
TEST byte ptr [RSI + 0x3a],0x7
JNZ 0x002c1bc1
MOVZX R15D,byte ptr [RSI + 0x3b]
MOV R14,RSI
MOV R12,RDX
MOV EBP,R8D
MOV R13D,dword ptr [RSI + 0x18]
SHR R15B,0x5
AND R15D,0x1
CMP RBX,qword ptr [RSI + 0x10]
JZ 0x002c1810
CMP R8B,0x1
JZ 0x002c14e0
CMP dword ptr [RSP],0xfff1
JNZ 0x002c14e0
TEST R15B,R15B
JNZ 0x002c14e0
CMP R13D,0xfff1
JZ 0x002c1838
NOP dword ptr [RAX]
MOV RAX,qword ptr [0x004ba7c8]
MOV RDI,qword ptr [RAX + 0x18]
TEST RDI,RDI
JZ 0x002c1ba9
MOV RAX,qword ptr [RDI + 0x8]
CMP byte ptr [RAX + 0xd],0x0
JZ 0x002c1520
MOV RAX,qword ptr [RDI]
MOV RCX,RBX
MOV RDX,R12
MOV RSI,R14
MOV R8,qword ptr [RSP + 0xb8]
CALL qword ptr [RAX + 0x158]
TEST AL,AL
JNZ 0x002c1760
TEST byte ptr [RBX + 0x3c],0x1
JNZ 0x002c1770
MOV RAX,qword ptr [R12]
MOVZX EAX,byte ptr [RAX + 0x4]
AND EAX,0xf
CMP AL,0x5
JZ 0x002c19c8
OR byte ptr [R14 + 0x3a],0x80
MOV RAX,qword ptr [RBX]
MOV RDI,RBX
CALL qword ptr [RAX + 0x28]
TEST RAX,RAX
JZ 0x002c179e
TEST byte ptr [R14 + 0x3a],0x7
JNZ 0x002c17b8
MOV RDI,qword ptr [R14 + 0x10]
MOV RAX,qword ptr [RDI]
CALL qword ptr [RAX + 0x28]
TEST RAX,RAX
JZ 0x002c17b8
MOV RAX,qword ptr [0x004ba7c8]
MOV RAX,qword ptr [RAX + 0x10]
TEST RAX,RAX
JZ 0x002c17cc
MOV RDX,qword ptr [RAX + 0x9058]
CMP byte ptr [RDX + 0xb1],0x0
JNZ 0x002c1850
CMP byte ptr [RAX + 0x16b1],0x0
JZ 0x002c15e0
MOV RDX,qword ptr [R12]
MOVZX EAX,byte ptr [RDX + 0x4]
MOV ECX,EAX
SAR EAX,0x4
CMP EAX,0x2
JZ 0x002c15c1
MOVZX EAX,byte ptr [R14 + 0x38]
SHR AL,0x4
CMP AL,0x2
JNZ 0x002c15e0
MOV R9D,dword ptr [RSP + 0x10]
TEST R9D,R9D
SETNZ AL
TEST AL,R15B
JZ 0x002c15e0
TEST R13D,R13D
JNZ 0x002c1a58
NOP word ptr [RAX + RAX*0x1]
LEA RAX,[RSP + 0x30]
LEA R15,[RSP + 0x50]
MOV qword ptr [RSP + 0x10],RAX
MOV RAX,qword ptr [RBX]
MOV RDI,RBX
CALL qword ptr [RAX + 0x28]
TEST RAX,RAX
JZ 0x002c19b0
MOV RAX,qword ptr [R12]
MOVZX R13D,byte ptr [R14 + 0x38]
MOVZX EDI,byte ptr [RAX + 0x4]
AND R13D,0xf
MOVZX ESI,byte ptr [RBX + 0x3c]
MOV EDX,dword ptr [RSP]
MOVZX EBP,BPL
SAR EDI,0x4
MOV ECX,EBP
AND ESI,0x1
CALL 0x002be580
MOV RDX,qword ptr [R14 + 0x48]
MOV R8,RBX
MOV RDI,R14
XOR ECX,ECX
MOV ESI,EAX
MOV qword ptr [RSP + 0x18],RDX
MOVZX EDX,byte ptr [RSP + 0x4]
PUSH RDX
MOV EDX,R13D
PUSH R15
MOV R9,qword ptr [RSP + 0x20]
CALL 0x002be950
POP RDI
POP R8
TEST AL,AL
JNZ 0x002c1920
MOVZX EDX,byte ptr [RSP + 0x30]
MOV RAX,qword ptr [R12]
TEST DL,DL
JZ 0x002c1687
MOV RCX,qword ptr [RAX + 0x10]
CMP qword ptr [RSP + 0x18],RCX
JNC 0x002c1679
MOV qword ptr [R14 + 0x48],RCX
MOV RCX,qword ptr [RAX + 0x8]
CMP qword ptr [R14 + 0x40],RCX
JNC 0x002c1687
MOV qword ptr [R14 + 0x40],RCX
CMP byte ptr [RSP + 0x50],0x0
JZ 0x002c16bf
MOVZX ECX,byte ptr [RAX + 0x4]
MOVZX ESI,byte ptr [R14 + 0x3c]
SAR ECX,0x4
TEST SIL,0x1
JZ 0x002c16a5
AND ESI,0x2
JZ 0x002c16bf
CMP ECX,0x2
SETZ CL
LEA ESI,[RCX + RCX*0x1]
MOVZX ECX,byte ptr [R14 + 0x3c]
AND ECX,0xfffffffd
OR ECX,ESI
OR ECX,0x1
MOV byte ptr [R14 + 0x3c],CL
MOVZX EAX,byte ptr [RAX + 0x5]
AND EAX,0x3
JZ 0x002c16e8
MOVZX ECX,byte ptr [R14 + 0x39]
MOV ESI,ECX
AND ESI,0x3
JZ 0x002c18d8
CMP AL,SIL
JC 0x002c18d8
NOP dword ptr [RAX]
MOVZX EAX,byte ptr [R14 + 0x3a]
TEST AL,0x7
JNZ 0x002c1702
MOV RSI,qword ptr [R14 + 0x10]
MOVZX ECX,byte ptr [RSI + 0x3c]
TEST CL,0x1
JNZ 0x002c17e8
TEST DL,DL
JZ 0x002c1760
MOV RAX,qword ptr [0x004ba7c8]
MOV RAX,qword ptr [RAX + 0x10]
TEST RAX,RAX
JZ 0x002c17cc
CMP byte ptr [RAX + 0x6de1],0x0
JZ 0x002c1760
MOV RAX,qword ptr [R12]
MOV RSI,qword ptr [RSP + 0x18]
LEA RDI,[0x3f33b8]
CMP RSI,qword ptr [RAX + 0x10]
JA 0x002c1749
LEA RDI,[0x3f33e8]
JC 0x002c1749
LEA RDI,[0x3f3412]
CALL 0x00150320
MOV R8,RBX
XOR ECX,ECX
MOV RDX,R14
MOV RSI,RAX
XOR EDI,EDI
CALL 0x002be7a0
ADD RSP,0x78
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV EAX,dword ptr [RSP]
TEST EAX,EAX
JNZ 0x002c1787
MOVZX EAX,byte ptr [R14 + 0x39]
AND EAX,0x3
SUB EAX,0x1
CMP EAX,0x1
JBE 0x002c1760
OR byte ptr [R14 + 0x3b],0x1
MOV RAX,qword ptr [RBX]
MOV RDI,RBX
CALL qword ptr [RAX + 0x28]
TEST RAX,RAX
JNZ 0x002c1554
TEST byte ptr [RBX + 0x3c],0x1
JNZ 0x002c1554
OR byte ptr [R14 + 0x3b],0x40
JMP 0x002c1554
MOV RAX,qword ptr [0x004ba7c8]
MOV RAX,qword ptr [RAX + 0x10]
TEST RAX,RAX
JNZ 0x002c159a
LEA RDX,[0x3f3348]
MOV ESI,0x5c
LEA RDI,[0x3c9279]
CALL 0x001e9890
TEST AL,AL
JNS 0x002c1702
TEST byte ptr [R14 + 0x3c],0x2
JNZ 0x002c1702
OR ECX,0x2
MOV byte ptr [RSI + 0x3c],CL
JMP 0x002c1702
TEST R15B,R15B
JZ 0x002c1b78
TEST R13D,R13D
JZ 0x002c14e0
TEST R8B,R8B
JZ 0x002c14e0
CMP dword ptr [RSP],R13D
JNZ 0x002c14e0
NOP dword ptr [RAX]
MOV RAX,qword ptr [R12]
MOV RDX,qword ptr [R14 + 0x40]
CMP qword ptr [RAX + 0x8],RDX
JNZ 0x002c14e0
JMP 0x002c1760
TEST byte ptr [R14 + 0x3a],0x7
JNZ 0x002c18f0
TEST byte ptr [R14 + 0x3b],0x20
JNZ 0x002c18f0
MOV EDI,dword ptr [R14 + 0x18]
CALL 0x002dd6f0
CMP AL,0x1
JNZ 0x002c18f0
TEST BPL,BPL
JNZ 0x002c18f0
MOV R15D,dword ptr [RSP]
MOV EDI,R15D
CALL 0x002dd6f0
TEST AL,AL
JZ 0x002c18f0
SUB RSP,0x8
MOV R13,qword ptr [R14 + 0x48]
MOV RBP,qword ptr [R14 + 0x40]
MOV R9,RBX
PUSH qword ptr [RSP + 0xc0]
XOR R8D,R8D
MOV ECX,R15D
MOV RDX,R12
MOV RDI,qword ptr [RSP + 0x18]
MOV RSI,R14
CALL 0x002bffb0
POP R10
POP R11
CMP R13,qword ptr [R14 + 0x48]
JBE 0x002c18c2
MOV qword ptr [R14 + 0x48],R13
CMP RBP,qword ptr [R14 + 0x40]
JBE 0x002c1760
MOV qword ptr [R14 + 0x40],RBP
JMP 0x002c1760
AND ECX,0xfffffffc
OR EAX,ECX
MOV byte ptr [R14 + 0x39],AL
JMP 0x002c16e8
SUB RSP,0x8
MOV RDX,R12
MOV R9,RBX
MOVZX R8D,BPL
PUSH qword ptr [RSP + 0xc0]
MOV ECX,dword ptr [RSP + 0x10]
MOV RSI,R14
MOV RDI,qword ptr [RSP + 0x18]
CALL 0x002bffb0
POP RAX
POP RDX
JMP 0x002c1760
SUB RSP,0x8
MOVZX R15D,byte ptr [R14 + 0x38]
MOV R13,qword ptr [R14 + 0x40]
MOV RDX,R12
PUSH qword ptr [RSP + 0xc0]
MOV RSI,R14
MOV R9,RBX
MOV R8D,EBP
MOV ECX,dword ptr [RSP + 0x10]
SHR R15B,0x4
MOV RDI,qword ptr [RSP + 0x18]
CALL 0x002bffb0
MOVZX EDX,byte ptr [RSP + 0x40]
POP RCX
POP RSI
TEST DL,DL
JZ 0x002c1976
MOV RAX,qword ptr [RSP + 0x18]
CMP RAX,qword ptr [R14 + 0x48]
JBE 0x002c196c
MOV qword ptr [R14 + 0x48],RAX
CMP R13,qword ptr [R14 + 0x40]
JA 0x002c1a48
CMP byte ptr [RSP + 0x50],0x0
JZ 0x002c16e8
MOVZX EAX,byte ptr [R14 + 0x3c]
TEST AL,0x1
JNZ 0x002c1a38
CMP R15B,0x2
SETZ AL
LEA ECX,[RAX + RAX*0x1]
MOVZX EAX,byte ptr [R14 + 0x3c]
AND EAX,0xfffffffd
OR EAX,ECX
OR EAX,0x1
MOV byte ptr [R14 + 0x3c],AL
JMP 0x002c16e8
MOV RAX,qword ptr [R12]
MOVZX EDI,byte ptr [RAX + 0x4]
MOV R13D,EDI
AND R13D,0xf
JMP 0x002c1612
TEST BPL,BPL
JZ 0x002c1b60
TEST byte ptr [R14 + 0x3a],0x7
JNZ 0x002c1bd9
MOV RAX,qword ptr [R14 + 0x10]
LEA R15,[RSP + 0x50]
MOV RSI,R14
MOV RDI,R15
MOV RBP,qword ptr [RAX + 0x8]
CALL 0x002de930
MOV RBX,qword ptr [RSP + 0x50]
LEA RDI,[0x3f3380]
CALL 0x00150320
MOV RDX,RBP
MOV RDI,RAX
MOV RSI,RBX
XOR EAX,EAX
CALL 0x001e15a0
MOV RDI,qword ptr [RSP + 0x50]
LEA R14,[R15 + 0x10]
CMP RDI,R14
JZ 0x002c1760
CALL 0x00338a50
JMP 0x002c1760
TEST AL,0x2
JZ 0x002c16e8
JMP 0x002c198e
MOV qword ptr [R14 + 0x40],R13
JMP 0x002c1976
MOV RAX,qword ptr [RDX + 0x10]
TEST RAX,RAX
JZ 0x002c15e0
MOV RSI,qword ptr [R14 + 0x48]
TEST RSI,RSI
JZ 0x002c15e0
MOVZX EDI,byte ptr [R14 + 0x38]
AND ECX,0xf
AND EDI,0xf
CMP CL,DIL
JNZ 0x002c1a8b
CMP RSI,RAX
JZ 0x002c15e0
MOV RAX,qword ptr [R14]
CMP byte ptr [RAX],0x5f
JNZ 0x002c15e0
CMP byte ptr [RAX + 0x1],0x5a
JNZ 0x002c15e0
MOV ESI,dword ptr [RSP + 0x10]
MOV RDX,qword ptr [RDX + 0x8]
MOV qword ptr [RSP + 0x30],RBX
MOV dword ptr [RSP + 0x38],ESI
MOV qword ptr [RSP + 0x40],RDX
TEST byte ptr [R14 + 0x3a],0x7
JNZ 0x002c1bd9
MOV RDX,qword ptr [R14 + 0x10]
MOV qword ptr [RSP + 0x20],RAX
LEA R8,[RSP + 0x20]
MOV RAX,qword ptr [RSP + 0x8]
MOV RSI,R8
MOV qword ptr [RSP + 0x18],R8
MOV qword ptr [RSP + 0x50],RDX
MOV RDX,qword ptr [R14 + 0x40]
LEA R15,[RAX + 0x218]
MOV dword ptr [RSP + 0x58],R13D
LEA R13,[RSP + 0x28]
MOV RDI,R15
MOV qword ptr [RSP + 0x60],RDX
CALL 0x002bf9a0
LEA RDX,[RSP + 0x30]
MOV ECX,0x1
MOV RSI,RDX
MOV qword ptr [RSP + 0x10],RDX
MOV RDI,RAX
MOV RDX,R13
MOV qword ptr [RSP + 0x28],RAX
CALL 0x001c3360
MOV R8,qword ptr [RSP + 0x18]
MOV RAX,qword ptr [R14]
MOV RDI,R15
LEA R15,[RSP + 0x50]
MOV RSI,R8
MOV qword ptr [RSP + 0x20],RAX
CALL 0x002bf9a0
MOV ECX,0x1
MOV RDX,R13
MOV RSI,R15
MOV RDI,RAX
MOV qword ptr [RSP + 0x28],RAX
CALL 0x001c3360
JMP 0x002c15ef
MOV EDI,dword ptr [RSP]
CALL 0x002dd6f0
TEST AL,AL
JZ 0x002c19d1
JMP 0x002c153d
MOV EDI,R13D
CALL 0x002dd6f0
CMP AL,0x1
JZ 0x002c1b8d
TEST BPL,BPL
JNZ 0x002c14e0
CMP dword ptr [RSP],0xfff1
JNZ 0x002c14e0
CMP BPL,0x1
JNZ 0x002c14d0
JMP 0x002c14e0
LEA RDX,[0x3f32d1]
MOV ESI,0x69
LEA RDI,[0x3c9279]
CALL 0x001e9890
LEA RDX,[0x3f3363]
MOV ESI,0xaa
LEA RDI,[0x3de4db]
CALL 0x001e9890
LEA RDX,[0x3f3350]
MOV ESI,0xa1
LEA RDI,[0x3de4db]
CALL 0x001e9890
(translation_unit "ulong FUN_002c1460(long param_1,undefined8 *param_2,ulong *param_3,int param_4,char param_5,\n                  int param_6,long *param_7,ulong param_8,undefined1 param_9)\n\n{\n  byte bVar1;\n  int iVar2;\n  long *plVar3;\n  ulong uVar4;\n  undefined8 *puVar5;\n  char cVar6;\n  undefined4 uVar7;\n  uint uVar8;\n  ulong uVar9;\n  long lVar10;\n  undefined8 uVar11;\n  ulong uVar12;\n  undefined8 uVar13;\n  uint uVar14;\n  char *pcVar15;\n  byte bVar16;\n  long **local_98;\n  char *local_88;\n  undefined8 local_80;\n  long *local_78;\n  int local_70;\n  undefined8 local_68;\n  undefined8 *local_58;\n  int local_50;\n  undefined8 local_48 [3];\n  \n  if ((*(byte *)((long)param_2 + 0x3a) & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_001e9890("../../gold/symtab.h",0xaa,"shndx");\n  }\n  iVar2 = *(int *)(param_2 + 3);\n  bVar16 = *(byte *)((long)param_2 + 0x3b) >> 5 & 1;\n  if (param_7 == (long *)param_2[2]) {\n    if (bVar16 == 0) {\n      cVar6 = FUN_002dd6f0(iVar2);\n      if ((((cVar6 == '\x01') || (param_5 == '\0')) && (param_4 == 0xfff1)) && (param_5 != '\x01'))\n      goto LAB_002c14d0;\n    }\n    else if (((iVar2 != 0) && (param_5 != '\0')) && (param_4 == iVar2)) goto LAB_002c1838;\n  }\n  else if (((param_5 != '\x01') && (param_4 == 0xfff1)) && (bVar16 == 0)) {\nLAB_002c14d0:\n    if (iVar2 == 0xfff1) {\nLAB_002c1838:\n      if (*(long *)(*param_3 + 8) == param_2[8]) {\n        return *param_3;\n      }\n    }\n  }\n  plVar3 = *(long **)(PTR_DAT_004ba7c8 + 0x18);\n  if (plVar3 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_001e9890("../../gold/parameters.h",0x69,"target");\n  }\n  if ((*(char *)(plVar3[1] + 0xd) == '\0') ||\n     (uVar9 = (**(code **)(*plVar3 + 0x158))(plVar3,param_2,param_3,param_7,param_8),\n     (char)uVar9 == '\0')) {\n    if ((*(byte *)((long)param_7 + 0x3c) & 1) == 0) {\n      if (((*(byte *)(*param_3 + 4) & 0xf) == 5) &&\n         ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))) {\n        if ((*(byte *)((long)param_2 + 0x3a) & 7) == 0) {\n          uVar11 = *(undefined8 *)(param_2[2] + 8);\n          FUN_002de930(&local_58,param_2);\n          puVar5 = local_58;\n          uVar13 = gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");\n                    /* try { // try from 002c1a10 to 002c1a14 has its CatchHandler @ 002c1bf1 */\n          uVar9 = FUN_001e15a0(uVar13,puVar5,uVar11);\n          if (local_58 == local_48) {\n            return uVar9;\n          }\n          uVar9 = FUN_00338a50();\n          return uVar9;\n        }\n        goto LAB_002c1bd9;\n      }\n      *(byte *)((long)param_2 + 0x3a) = *(byte *)((long)param_2 + 0x3a) | 0x80;\n      lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    }\n    else {\n      if ((param_4 == 0) && (uVar8 = (*(byte *)((long)param_2 + 0x39) & 3) - 1, uVar8 < 2)) {\n        return (ulong)uVar8;\n      }\n      *(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 1;\n      lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    }\n    if ((lVar10 == 0) && ((*(byte *)((long)param_7 + 0x3c) & 1) == 0)) {\n      *(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 0x40;\n    }\n    if (((*(byte *)((long)param_2 + 0x3a) & 7) == 0) &&\n       (lVar10 = (**(code **)(*(long *)param_2[2] + 0x28))(), lVar10 != 0)) {\n      lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n      if (lVar10 == 0) goto LAB_002c17cc;\n      if (*(char *)(*(long *)(lVar10 + 0x9058) + 0xb1) != '\0') {\n        if (((((*(byte *)((long)param_2 + 0x3a) & 7) != 0) ||\n             ((*(byte *)((long)param_2 + 0x3b) & 0x20) != 0)) ||\n            (cVar6 = FUN_002dd6f0(*(undefined4 *)(param_2 + 3)), cVar6 != '\x01')) ||\n           ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))) {\n          FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7);\n          return param_8;\n        }\n        uVar9 = param_2[9];\n        uVar4 = param_2[8];\n        uVar12 = FUN_002bffb0(param_1,param_2,param_3,param_4,0,param_7,param_8);\n        if ((ulong)param_2[9] < uVar9) {\n          param_2[9] = uVar9;\n        }\n        if (uVar4 <= (ulong)param_2[8]) {\n          return uVar12;\n        }\n        param_2[8] = uVar4;\n        return uVar12;\n      }\n    }\n    else {\n      lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n      if (lVar10 == 0) goto LAB_002c17cc;\n    }\n    if (*(char *)(lVar10 + 0x16b1) != '\0') {\n      uVar9 = *param_3;\n      if ((((((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) || (*(byte *)(param_2 + 7) >> 4 == 2)) &&\n           (((param_6 != 0 & bVar16) != 0 &&\n            (((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0)))))) &&\n          (((*(byte *)(uVar9 + 4) & 0xf) != (*(byte *)(param_2 + 7) & 0xf) ||\n           (param_2[9] != *(long *)(uVar9 + 0x10))))) &&\n         ((pcVar15 = (char *)*param_2, *pcVar15 == '_' && (pcVar15[1] == 'Z')))) {\n        local_68 = *(undefined8 *)(uVar9 + 8);\n        local_78 = param_7;\n        local_70 = param_6;\n        if ((*(byte *)((long)param_2 + 0x3a) & 7) != 0) {\nLAB_002c1bd9:\n                    /* WARNING: Subroutine does not return */\n          FUN_001e9890("../../gold/symtab.h",0xa1,"object");\n        }\n        local_58 = (undefined8 *)param_2[2];\n        local_48[0] = param_2[8];\n        local_88 = pcVar15;\n        local_50 = iVar2;\n        local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);\n        FUN_001c3360(local_80,&local_78,&local_80,1);\n        local_88 = (char *)*param_2;\n        local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);\n        FUN_001c3360(local_80,&local_58,&local_80,1);\n      }\n    }\n    local_98 = &local_78;\n    lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    if (lVar10 == 0) {\n      uVar14 = (uint)*(byte *)(*param_3 + 4);\n      uVar8 = uVar14;\n    }\n    else {\n      uVar14 = (uint)*(byte *)(*param_3 + 4);\n      uVar8 = (uint)*(byte *)(param_2 + 7);\n    }\n    uVar7 = FUN_002be580((int)uVar14 >> 4,*(byte *)((long)param_7 + 0x3c) & 1,param_4,param_5);\n    uVar4 = param_2[9];\n    cVar6 = FUN_002be950(param_2,uVar7,uVar8 & 0xf,0,param_7,local_98,&local_58,param_9);\n    if (cVar6 == '\0') {\n      uVar9 = *param_3;\n      if ((char)local_78 != '\0') {\n        if (uVar4 < *(ulong *)(uVar9 + 0x10)) {\n          param_2[9] = *(ulong *)(uVar9 + 0x10);\n        }\n        if ((ulong)param_2[8] < *(ulong *)(uVar9 + 8)) {\n          param_2[8] = *(ulong *)(uVar9 + 8);\n        }\n      }\n      if ((char)local_58 != '\0') {\n        if (((*(byte *)((long)param_2 + 0x3c) & 1) == 0) ||\n           ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)) {\n          *(byte *)((long)param_2 + 0x3c) =\n               *(byte *)((long)param_2 + 0x3c) & 0xfd |\n               ((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) * '\x02' | 1;\n        }\n      }\n      bVar16 = *(byte *)(uVar9 + 5) & 3;\n      if ((*(byte *)(uVar9 + 5) & 3) != 0) {\n        bVar1 = *(byte *)((long)param_2 + 0x39);\n        if (((bVar1 & 3) == 0) || (bVar16 < (bVar1 & 3))) {\n          *(byte *)((long)param_2 + 0x39) = bVar16 | bVar1 & 0xfc;\n        }\n      }\n    }\n    else {\n      bVar16 = *(byte *)(param_2 + 7);\n      uVar9 = param_2[8];\n      FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7,param_8);\n      if ((char)local_78 != '\0') {\n        if ((ulong)param_2[9] < uVar4) {\n          param_2[9] = uVar4;\n        }\n        if ((ulong)param_2[8] < uVar9) {\n          param_2[8] = uVar9;\n        }\n      }\n      if (((char)local_58 != '\0') &&\n         (((*(byte *)((long)param_2 + 0x3c) & 1) == 0 ||\n          ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)))) {\n        *(byte *)((long)param_2 + 0x3c) =\n             *(byte *)((long)param_2 + 0x3c) & 0xfd | (bVar16 >> 4 == 2) * '\x02' | 1;\n      }\n    }\n    bVar16 = *(byte *)((long)param_2 + 0x3a);\n    uVar9 = (ulong)bVar16;\n    if ((bVar16 & 7) == 0) {\n      bVar1 = *(byte *)(param_2[2] + 0x3c);\n      if ((((bVar1 & 1) != 0) && ((char)bVar16 < '\0')) &&\n         ((*(byte *)((long)param_2 + 0x3c) & 2) == 0)) {\n        *(byte *)(param_2[2] + 0x3c) = bVar1 | 2;\n      }\n    }\n    if ((char)local_78 != '\0') {\n      uVar9 = *(ulong *)(PTR_DAT_004ba7c8 + 0x10);\n      if (uVar9 == 0) {\nLAB_002c17cc:\n                    /* WARNING: Subroutine does not return */\n        FUN_001e9890("../../gold/parameters.h",0x5c,"options");\n      }\n      if (*(char *)(uVar9 + 0x6de1) != '\0') {\n        pcVar15 = "common of \'%s\' overriding smaller common";\n        uVar9 = *(ulong *)(*param_3 + 0x10);\n        if ((uVar9 > uVar4 || uVar4 == uVar9) &&\n           (pcVar15 = "common of \'%s\' overidden by larger common", uVar9 <= uVar4)) {\n          pcVar15 = "multiple common of \'%s\'";\n        }\n        uVar11 = gettext(pcVar15);\n        uVar9 = FUN_002be7a0(0,uVar11,param_2,0,param_7);\n      }\n    }\n  }\n  return uVar9;\n}\n\n" (function_definition "ulong FUN_002c1460(long param_1,undefined8 *param_2,ulong *param_3,int param_4,char param_5,\n                  int param_6,long *param_7,ulong param_8,undefined1 param_9)\n\n{\n  byte bVar1;\n  int iVar2;\n  long *plVar3;\n  ulong uVar4;\n  undefined8 *puVar5;\n  char cVar6;\n  undefined4 uVar7;\n  uint uVar8;\n  ulong uVar9;\n  long lVar10;\n  undefined8 uVar11;\n  ulong uVar12;\n  undefined8 uVar13;\n  uint uVar14;\n  char *pcVar15;\n  byte bVar16;\n  long **local_98;\n  char *local_88;\n  undefined8 local_80;\n  long *local_78;\n  int local_70;\n  undefined8 local_68;\n  undefined8 *local_58;\n  int local_50;\n  undefined8 local_48 [3];\n  \n  if ((*(byte *)((long)param_2 + 0x3a) & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_001e9890("../../gold/symtab.h",0xaa,"shndx");\n  }\n  iVar2 = *(int *)(param_2 + 3);\n  bVar16 = *(byte *)((long)param_2 + 0x3b) >> 5 & 1;\n  if (param_7 == (long *)param_2[2]) {\n    if (bVar16 == 0) {\n      cVar6 = FUN_002dd6f0(iVar2);\n      if ((((cVar6 == '\x01') || (param_5 == '\0')) && (param_4 == 0xfff1)) && (param_5 != '\x01'))\n      goto LAB_002c14d0;\n    }\n    else if (((iVar2 != 0) && (param_5 != '\0')) && (param_4 == iVar2)) goto LAB_002c1838;\n  }\n  else if (((param_5 != '\x01') && (param_4 == 0xfff1)) && (bVar16 == 0)) {\nLAB_002c14d0:\n    if (iVar2 == 0xfff1) {\nLAB_002c1838:\n      if (*(long *)(*param_3 + 8) == param_2[8]) {\n        return *param_3;\n      }\n    }\n  }\n  plVar3 = *(long **)(PTR_DAT_004ba7c8 + 0x18);\n  if (plVar3 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_001e9890("../../gold/parameters.h",0x69,"target");\n  }\n  if ((*(char *)(plVar3[1] + 0xd) == '\0') ||\n     (uVar9 = (**(code **)(*plVar3 + 0x158))(plVar3,param_2,param_3,param_7,param_8),\n     (char)uVar9 == '\0')) {\n    if ((*(byte *)((long)param_7 + 0x3c) & 1) == 0) {\n      if (((*(byte *)(*param_3 + 4) & 0xf) == 5) &&\n         ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))) {\n        if ((*(byte *)((long)param_2 + 0x3a) & 7) == 0) {\n          uVar11 = *(undefined8 *)(param_2[2] + 8);\n          FUN_002de930(&local_58,param_2);\n          puVar5 = local_58;\n          uVar13 = gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");\n                    /* try { // try from 002c1a10 to 002c1a14 has its CatchHandler @ 002c1bf1 */\n          uVar9 = FUN_001e15a0(uVar13,puVar5,uVar11);\n          if (local_58 == local_48) {\n            return uVar9;\n          }\n          uVar9 = FUN_00338a50();\n          return uVar9;\n        }\n        goto LAB_002c1bd9;\n      }\n      *(byte *)((long)param_2 + 0x3a) = *(byte *)((long)param_2 + 0x3a) | 0x80;\n      lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    }\n    else {\n      if ((param_4 == 0) && (uVar8 = (*(byte *)((long)param_2 + 0x39) & 3) - 1, uVar8 < 2)) {\n        return (ulong)uVar8;\n      }\n      *(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 1;\n      lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    }\n    if ((lVar10 == 0) && ((*(byte *)((long)param_7 + 0x3c) & 1) == 0)) {\n      *(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 0x40;\n    }\n    if (((*(byte *)((long)param_2 + 0x3a) & 7) == 0) &&\n       (lVar10 = (**(code **)(*(long *)param_2[2] + 0x28))(), lVar10 != 0)) {\n      lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n      if (lVar10 == 0) goto LAB_002c17cc;\n      if (*(char *)(*(long *)(lVar10 + 0x9058) + 0xb1) != '\0') {\n        if (((((*(byte *)((long)param_2 + 0x3a) & 7) != 0) ||\n             ((*(byte *)((long)param_2 + 0x3b) & 0x20) != 0)) ||\n            (cVar6 = FUN_002dd6f0(*(undefined4 *)(param_2 + 3)), cVar6 != '\x01')) ||\n           ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))) {\n          FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7);\n          return param_8;\n        }\n        uVar9 = param_2[9];\n        uVar4 = param_2[8];\n        uVar12 = FUN_002bffb0(param_1,param_2,param_3,param_4,0,param_7,param_8);\n        if ((ulong)param_2[9] < uVar9) {\n          param_2[9] = uVar9;\n        }\n        if (uVar4 <= (ulong)param_2[8]) {\n          return uVar12;\n        }\n        param_2[8] = uVar4;\n        return uVar12;\n      }\n    }\n    else {\n      lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n      if (lVar10 == 0) goto LAB_002c17cc;\n    }\n    if (*(char *)(lVar10 + 0x16b1) != '\0') {\n      uVar9 = *param_3;\n      if ((((((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) || (*(byte *)(param_2 + 7) >> 4 == 2)) &&\n           (((param_6 != 0 & bVar16) != 0 &&\n            (((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0)))))) &&\n          (((*(byte *)(uVar9 + 4) & 0xf) != (*(byte *)(param_2 + 7) & 0xf) ||\n           (param_2[9] != *(long *)(uVar9 + 0x10))))) &&\n         ((pcVar15 = (char *)*param_2, *pcVar15 == '_' && (pcVar15[1] == 'Z')))) {\n        local_68 = *(undefined8 *)(uVar9 + 8);\n        local_78 = param_7;\n        local_70 = param_6;\n        if ((*(byte *)((long)param_2 + 0x3a) & 7) != 0) {\nLAB_002c1bd9:\n                    /* WARNING: Subroutine does not return */\n          FUN_001e9890("../../gold/symtab.h",0xa1,"object");\n        }\n        local_58 = (undefined8 *)param_2[2];\n        local_48[0] = param_2[8];\n        local_88 = pcVar15;\n        local_50 = iVar2;\n        local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);\n        FUN_001c3360(local_80,&local_78,&local_80,1);\n        local_88 = (char *)*param_2;\n        local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);\n        FUN_001c3360(local_80,&local_58,&local_80,1);\n      }\n    }\n    local_98 = &local_78;\n    lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    if (lVar10 == 0) {\n      uVar14 = (uint)*(byte *)(*param_3 + 4);\n      uVar8 = uVar14;\n    }\n    else {\n      uVar14 = (uint)*(byte *)(*param_3 + 4);\n      uVar8 = (uint)*(byte *)(param_2 + 7);\n    }\n    uVar7 = FUN_002be580((int)uVar14 >> 4,*(byte *)((long)param_7 + 0x3c) & 1,param_4,param_5);\n    uVar4 = param_2[9];\n    cVar6 = FUN_002be950(param_2,uVar7,uVar8 & 0xf,0,param_7,local_98,&local_58,param_9);\n    if (cVar6 == '\0') {\n      uVar9 = *param_3;\n      if ((char)local_78 != '\0') {\n        if (uVar4 < *(ulong *)(uVar9 + 0x10)) {\n          param_2[9] = *(ulong *)(uVar9 + 0x10);\n        }\n        if ((ulong)param_2[8] < *(ulong *)(uVar9 + 8)) {\n          param_2[8] = *(ulong *)(uVar9 + 8);\n        }\n      }\n      if ((char)local_58 != '\0') {\n        if (((*(byte *)((long)param_2 + 0x3c) & 1) == 0) ||\n           ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)) {\n          *(byte *)((long)param_2 + 0x3c) =\n               *(byte *)((long)param_2 + 0x3c) & 0xfd |\n               ((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) * '\x02' | 1;\n        }\n      }\n      bVar16 = *(byte *)(uVar9 + 5) & 3;\n      if ((*(byte *)(uVar9 + 5) & 3) != 0) {\n        bVar1 = *(byte *)((long)param_2 + 0x39);\n        if (((bVar1 & 3) == 0) || (bVar16 < (bVar1 & 3))) {\n          *(byte *)((long)param_2 + 0x39) = bVar16 | bVar1 & 0xfc;\n        }\n      }\n    }\n    else {\n      bVar16 = *(byte *)(param_2 + 7);\n      uVar9 = param_2[8];\n      FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7,param_8);\n      if ((char)local_78 != '\0') {\n        if ((ulong)param_2[9] < uVar4) {\n          param_2[9] = uVar4;\n        }\n        if ((ulong)param_2[8] < uVar9) {\n          param_2[8] = uVar9;\n        }\n      }\n      if (((char)local_58 != '\0') &&\n         (((*(byte *)((long)param_2 + 0x3c) & 1) == 0 ||\n          ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)))) {\n        *(byte *)((long)param_2 + 0x3c) =\n             *(byte *)((long)param_2 + 0x3c) & 0xfd | (bVar16 >> 4 == 2) * '\x02' | 1;\n      }\n    }\n    bVar16 = *(byte *)((long)param_2 + 0x3a);\n    uVar9 = (ulong)bVar16;\n    if ((bVar16 & 7) == 0) {\n      bVar1 = *(byte *)(param_2[2] + 0x3c);\n      if ((((bVar1 & 1) != 0) && ((char)bVar16 < '\0')) &&\n         ((*(byte *)((long)param_2 + 0x3c) & 2) == 0)) {\n        *(byte *)(param_2[2] + 0x3c) = bVar1 | 2;\n      }\n    }\n    if ((char)local_78 != '\0') {\n      uVar9 = *(ulong *)(PTR_DAT_004ba7c8 + 0x10);\n      if (uVar9 == 0) {\nLAB_002c17cc:\n                    /* WARNING: Subroutine does not return */\n        FUN_001e9890("../../gold/parameters.h",0x5c,"options");\n      }\n      if (*(char *)(uVar9 + 0x6de1) != '\0') {\n        pcVar15 = "common of \'%s\' overriding smaller common";\n        uVar9 = *(ulong *)(*param_3 + 0x10);\n        if ((uVar9 > uVar4 || uVar4 == uVar9) &&\n           (pcVar15 = "common of \'%s\' overidden by larger common", uVar9 <= uVar4)) {\n          pcVar15 = "multiple common of \'%s\'";\n        }\n        uVar11 = gettext(pcVar15);\n        uVar9 = FUN_002be7a0(0,uVar11,param_2,0,param_7);\n      }\n    }\n  }\n  return uVar9;\n}" type_identifier (function_declarator "FUN_002c1460(long param_1,undefined8 *param_2,ulong *param_3,int param_4,char param_5,\n                  int param_6,long *param_7,ulong param_8,undefined1 param_9)" identifier (parameter_list "(long param_1,undefined8 *param_2,ulong *param_3,int param_4,char param_5,\n                  int param_6,long *param_7,ulong param_8,undefined1 param_9)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "ulong *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "char param_5" primitive_type identifier) , (parameter_declaration "int param_6" primitive_type identifier) , (parameter_declaration "long *param_7" (sized_type_specifier "long" long) (pointer_declarator "*param_7" * identifier)) , (parameter_declaration "ulong param_8" type_identifier identifier) , (parameter_declaration "undefined1 param_9" type_identifier identifier) ))) (compound_statement "{\n  byte bVar1;\n  int iVar2;\n  long *plVar3;\n  ulong uVar4;\n  undefined8 *puVar5;\n  char cVar6;\n  undefined4 uVar7;\n  uint uVar8;\n  ulong uVar9;\n  long lVar10;\n  undefined8 uVar11;\n  ulong uVar12;\n  undefined8 uVar13;\n  uint uVar14;\n  char *pcVar15;\n  byte bVar16;\n  long **local_98;\n  char *local_88;\n  undefined8 local_80;\n  long *local_78;\n  int local_70;\n  undefined8 local_68;\n  undefined8 *local_58;\n  int local_50;\n  undefined8 local_48 [3];\n  \n  if ((*(byte *)((long)param_2 + 0x3a) & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_001e9890("../../gold/symtab.h",0xaa,"shndx");\n  }\n  iVar2 = *(int *)(param_2 + 3);\n  bVar16 = *(byte *)((long)param_2 + 0x3b) >> 5 & 1;\n  if (param_7 == (long *)param_2[2]) {\n    if (bVar16 == 0) {\n      cVar6 = FUN_002dd6f0(iVar2);\n      if ((((cVar6 == '\x01') || (param_5 == '\0')) && (param_4 == 0xfff1)) && (param_5 != '\x01'))\n      goto LAB_002c14d0;\n    }\n    else if (((iVar2 != 0) && (param_5 != '\0')) && (param_4 == iVar2)) goto LAB_002c1838;\n  }\n  else if (((param_5 != '\x01') && (param_4 == 0xfff1)) && (bVar16 == 0)) {\nLAB_002c14d0:\n    if (iVar2 == 0xfff1) {\nLAB_002c1838:\n      if (*(long *)(*param_3 + 8) == param_2[8]) {\n        return *param_3;\n      }\n    }\n  }\n  plVar3 = *(long **)(PTR_DAT_004ba7c8 + 0x18);\n  if (plVar3 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_001e9890("../../gold/parameters.h",0x69,"target");\n  }\n  if ((*(char *)(plVar3[1] + 0xd) == '\0') ||\n     (uVar9 = (**(code **)(*plVar3 + 0x158))(plVar3,param_2,param_3,param_7,param_8),\n     (char)uVar9 == '\0')) {\n    if ((*(byte *)((long)param_7 + 0x3c) & 1) == 0) {\n      if (((*(byte *)(*param_3 + 4) & 0xf) == 5) &&\n         ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))) {\n        if ((*(byte *)((long)param_2 + 0x3a) & 7) == 0) {\n          uVar11 = *(undefined8 *)(param_2[2] + 8);\n          FUN_002de930(&local_58,param_2);\n          puVar5 = local_58;\n          uVar13 = gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");\n                    /* try { // try from 002c1a10 to 002c1a14 has its CatchHandler @ 002c1bf1 */\n          uVar9 = FUN_001e15a0(uVar13,puVar5,uVar11);\n          if (local_58 == local_48) {\n            return uVar9;\n          }\n          uVar9 = FUN_00338a50();\n          return uVar9;\n        }\n        goto LAB_002c1bd9;\n      }\n      *(byte *)((long)param_2 + 0x3a) = *(byte *)((long)param_2 + 0x3a) | 0x80;\n      lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    }\n    else {\n      if ((param_4 == 0) && (uVar8 = (*(byte *)((long)param_2 + 0x39) & 3) - 1, uVar8 < 2)) {\n        return (ulong)uVar8;\n      }\n      *(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 1;\n      lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    }\n    if ((lVar10 == 0) && ((*(byte *)((long)param_7 + 0x3c) & 1) == 0)) {\n      *(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 0x40;\n    }\n    if (((*(byte *)((long)param_2 + 0x3a) & 7) == 0) &&\n       (lVar10 = (**(code **)(*(long *)param_2[2] + 0x28))(), lVar10 != 0)) {\n      lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n      if (lVar10 == 0) goto LAB_002c17cc;\n      if (*(char *)(*(long *)(lVar10 + 0x9058) + 0xb1) != '\0') {\n        if (((((*(byte *)((long)param_2 + 0x3a) & 7) != 0) ||\n             ((*(byte *)((long)param_2 + 0x3b) & 0x20) != 0)) ||\n            (cVar6 = FUN_002dd6f0(*(undefined4 *)(param_2 + 3)), cVar6 != '\x01')) ||\n           ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))) {\n          FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7);\n          return param_8;\n        }\n        uVar9 = param_2[9];\n        uVar4 = param_2[8];\n        uVar12 = FUN_002bffb0(param_1,param_2,param_3,param_4,0,param_7,param_8);\n        if ((ulong)param_2[9] < uVar9) {\n          param_2[9] = uVar9;\n        }\n        if (uVar4 <= (ulong)param_2[8]) {\n          return uVar12;\n        }\n        param_2[8] = uVar4;\n        return uVar12;\n      }\n    }\n    else {\n      lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n      if (lVar10 == 0) goto LAB_002c17cc;\n    }\n    if (*(char *)(lVar10 + 0x16b1) != '\0') {\n      uVar9 = *param_3;\n      if ((((((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) || (*(byte *)(param_2 + 7) >> 4 == 2)) &&\n           (((param_6 != 0 & bVar16) != 0 &&\n            (((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0)))))) &&\n          (((*(byte *)(uVar9 + 4) & 0xf) != (*(byte *)(param_2 + 7) & 0xf) ||\n           (param_2[9] != *(long *)(uVar9 + 0x10))))) &&\n         ((pcVar15 = (char *)*param_2, *pcVar15 == '_' && (pcVar15[1] == 'Z')))) {\n        local_68 = *(undefined8 *)(uVar9 + 8);\n        local_78 = param_7;\n        local_70 = param_6;\n        if ((*(byte *)((long)param_2 + 0x3a) & 7) != 0) {\nLAB_002c1bd9:\n                    /* WARNING: Subroutine does not return */\n          FUN_001e9890("../../gold/symtab.h",0xa1,"object");\n        }\n        local_58 = (undefined8 *)param_2[2];\n        local_48[0] = param_2[8];\n        local_88 = pcVar15;\n        local_50 = iVar2;\n        local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);\n        FUN_001c3360(local_80,&local_78,&local_80,1);\n        local_88 = (char *)*param_2;\n        local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);\n        FUN_001c3360(local_80,&local_58,&local_80,1);\n      }\n    }\n    local_98 = &local_78;\n    lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    if (lVar10 == 0) {\n      uVar14 = (uint)*(byte *)(*param_3 + 4);\n      uVar8 = uVar14;\n    }\n    else {\n      uVar14 = (uint)*(byte *)(*param_3 + 4);\n      uVar8 = (uint)*(byte *)(param_2 + 7);\n    }\n    uVar7 = FUN_002be580((int)uVar14 >> 4,*(byte *)((long)param_7 + 0x3c) & 1,param_4,param_5);\n    uVar4 = param_2[9];\n    cVar6 = FUN_002be950(param_2,uVar7,uVar8 & 0xf,0,param_7,local_98,&local_58,param_9);\n    if (cVar6 == '\0') {\n      uVar9 = *param_3;\n      if ((char)local_78 != '\0') {\n        if (uVar4 < *(ulong *)(uVar9 + 0x10)) {\n          param_2[9] = *(ulong *)(uVar9 + 0x10);\n        }\n        if ((ulong)param_2[8] < *(ulong *)(uVar9 + 8)) {\n          param_2[8] = *(ulong *)(uVar9 + 8);\n        }\n      }\n      if ((char)local_58 != '\0') {\n        if (((*(byte *)((long)param_2 + 0x3c) & 1) == 0) ||\n           ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)) {\n          *(byte *)((long)param_2 + 0x3c) =\n               *(byte *)((long)param_2 + 0x3c) & 0xfd |\n               ((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) * '\x02' | 1;\n        }\n      }\n      bVar16 = *(byte *)(uVar9 + 5) & 3;\n      if ((*(byte *)(uVar9 + 5) & 3) != 0) {\n        bVar1 = *(byte *)((long)param_2 + 0x39);\n        if (((bVar1 & 3) == 0) || (bVar16 < (bVar1 & 3))) {\n          *(byte *)((long)param_2 + 0x39) = bVar16 | bVar1 & 0xfc;\n        }\n      }\n    }\n    else {\n      bVar16 = *(byte *)(param_2 + 7);\n      uVar9 = param_2[8];\n      FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7,param_8);\n      if ((char)local_78 != '\0') {\n        if ((ulong)param_2[9] < uVar4) {\n          param_2[9] = uVar4;\n        }\n        if ((ulong)param_2[8] < uVar9) {\n          param_2[8] = uVar9;\n        }\n      }\n      if (((char)local_58 != '\0') &&\n         (((*(byte *)((long)param_2 + 0x3c) & 1) == 0 ||\n          ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)))) {\n        *(byte *)((long)param_2 + 0x3c) =\n             *(byte *)((long)param_2 + 0x3c) & 0xfd | (bVar16 >> 4 == 2) * '\x02' | 1;\n      }\n    }\n    bVar16 = *(byte *)((long)param_2 + 0x3a);\n    uVar9 = (ulong)bVar16;\n    if ((bVar16 & 7) == 0) {\n      bVar1 = *(byte *)(param_2[2] + 0x3c);\n      if ((((bVar1 & 1) != 0) && ((char)bVar16 < '\0')) &&\n         ((*(byte *)((long)param_2 + 0x3c) & 2) == 0)) {\n        *(byte *)(param_2[2] + 0x3c) = bVar1 | 2;\n      }\n    }\n    if ((char)local_78 != '\0') {\n      uVar9 = *(ulong *)(PTR_DAT_004ba7c8 + 0x10);\n      if (uVar9 == 0) {\nLAB_002c17cc:\n                    /* WARNING: Subroutine does not return */\n        FUN_001e9890("../../gold/parameters.h",0x5c,"options");\n      }\n      if (*(char *)(uVar9 + 0x6de1) != '\0') {\n        pcVar15 = "common of \'%s\' overriding smaller common";\n        uVar9 = *(ulong *)(*param_3 + 0x10);\n        if ((uVar9 > uVar4 || uVar4 == uVar9) &&\n           (pcVar15 = "common of \'%s\' overidden by larger common", uVar9 <= uVar4)) {\n          pcVar15 = "multiple common of \'%s\'";\n        }\n        uVar11 = gettext(pcVar15);\n        uVar9 = FUN_002be7a0(0,uVar11,param_2,0,param_7);\n      }\n    }\n  }\n  return uVar9;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "long *plVar3;" (sized_type_specifier "long" long) (pointer_declarator "*plVar3" * identifier) ;) (declaration "ulong uVar4;" type_identifier identifier ;) (declaration "undefined8 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "char cVar6;" primitive_type identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "ulong uVar9;" type_identifier identifier ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar11;" type_identifier identifier ;) (declaration "ulong uVar12;" type_identifier identifier ;) (declaration "undefined8 uVar13;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "byte bVar16;" type_identifier identifier ;) (declaration "long **local_98;" (sized_type_specifier "long" long) (pointer_declarator "**local_98" * (pointer_declarator "*local_98" * identifier)) ;) (declaration "char *local_88;" primitive_type (pointer_declarator "*local_88" * identifier) ;) (declaration "undefined8 local_80;" type_identifier identifier ;) (declaration "long *local_78;" (sized_type_specifier "long" long) (pointer_declarator "*local_78" * identifier) ;) (declaration "int local_70;" primitive_type identifier ;) (declaration "undefined8 local_68;" type_identifier identifier ;) (declaration "undefined8 *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (declaration "int local_50;" primitive_type identifier ;) (declaration "undefined8 local_48 [3];" type_identifier (array_declarator "local_48 [3]" identifier [ number_literal ]) ;) (if_statement "if ((*(byte *)((long)param_2 + 0x3a) & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_001e9890("../../gold/symtab.h",0xaa,"shndx");\n  }" if (parenthesized_expression "((*(byte *)((long)param_2 + 0x3a) & 7) != 0)" ( (binary_expression "(*(byte *)((long)param_2 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)((long)param_2 + 0x3a) & 7)" ( (binary_expression "*(byte *)((long)param_2 + 0x3a) & 7" (pointer_expression "*(byte *)((long)param_2 + 0x3a)" * (cast_expression "(byte *)((long)param_2 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + 0x3a)" ( (binary_expression "(long)param_2 + 0x3a" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_001e9890("../../gold/symtab.h",0xaa,"shndx");\n  }" { comment (expression_statement "FUN_001e9890("../../gold/symtab.h",0xaa,"shndx");" (call_expression "FUN_001e9890("../../gold/symtab.h",0xaa,"shndx")" identifier (argument_list "("../../gold/symtab.h",0xaa,"shndx")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""shndx"" " string_content ") ))) ;) })) (expression_statement "iVar2 = *(int *)(param_2 + 3);" (assignment_expression "iVar2 = *(int *)(param_2 + 3)" identifier = (pointer_expression "*(int *)(param_2 + 3)" * (cast_expression "(int *)(param_2 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 3)" ( (binary_expression "param_2 + 3" identifier + number_literal) ))))) ;) (expression_statement "bVar16 = *(byte *)((long)param_2 + 0x3b) >> 5 & 1;" (assignment_expression "bVar16 = *(byte *)((long)param_2 + 0x3b) >> 5 & 1" identifier = (binary_expression "*(byte *)((long)param_2 + 0x3b) >> 5 & 1" (binary_expression "*(byte *)((long)param_2 + 0x3b) >> 5" (pointer_expression "*(byte *)((long)param_2 + 0x3b)" * (cast_expression "(byte *)((long)param_2 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + 0x3b)" ( (binary_expression "(long)param_2 + 0x3b" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) >> number_literal) & number_literal)) ;) (if_statement "if (param_7 == (long *)param_2[2]) {\n    if (bVar16 == 0) {\n      cVar6 = FUN_002dd6f0(iVar2);\n      if ((((cVar6 == '\x01') || (param_5 == '\0')) && (param_4 == 0xfff1)) && (param_5 != '\x01'))\n      goto LAB_002c14d0;\n    }\n    else if (((iVar2 != 0) && (param_5 != '\0')) && (param_4 == iVar2)) goto LAB_002c1838;\n  }\n  else if (((param_5 != '\x01') && (param_4 == 0xfff1)) && (bVar16 == 0)) {\nLAB_002c14d0:\n    if (iVar2 == 0xfff1) {\nLAB_002c1838:\n      if (*(long *)(*param_3 + 8) == param_2[8]) {\n        return *param_3;\n      }\n    }\n  }" if (parenthesized_expression "(param_7 == (long *)param_2[2])" ( (binary_expression "param_7 == (long *)param_2[2]" identifier == (cast_expression "(long *)param_2[2]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[2]" identifier [ number_literal ]))) )) (compound_statement "{\n    if (bVar16 == 0) {\n      cVar6 = FUN_002dd6f0(iVar2);\n      if ((((cVar6 == '\x01') || (param_5 == '\0')) && (param_4 == 0xfff1)) && (param_5 != '\x01'))\n      goto LAB_002c14d0;\n    }\n    else if (((iVar2 != 0) && (param_5 != '\0')) && (param_4 == iVar2)) goto LAB_002c1838;\n  }" { (if_statement "if (bVar16 == 0) {\n      cVar6 = FUN_002dd6f0(iVar2);\n      if ((((cVar6 == '\x01') || (param_5 == '\0')) && (param_4 == 0xfff1)) && (param_5 != '\x01'))\n      goto LAB_002c14d0;\n    }\n    else if (((iVar2 != 0) && (param_5 != '\0')) && (param_4 == iVar2)) goto LAB_002c1838;" if (parenthesized_expression "(bVar16 == 0)" ( (binary_expression "bVar16 == 0" identifier == number_literal) )) (compound_statement "{\n      cVar6 = FUN_002dd6f0(iVar2);\n      if ((((cVar6 == '\x01') || (param_5 == '\0')) && (param_4 == 0xfff1)) && (param_5 != '\x01'))\n      goto LAB_002c14d0;\n    }" { (expression_statement "cVar6 = FUN_002dd6f0(iVar2);" (assignment_expression "cVar6 = FUN_002dd6f0(iVar2)" identifier = (call_expression "FUN_002dd6f0(iVar2)" identifier (argument_list "(iVar2)" ( identifier )))) ;) (if_statement "if ((((cVar6 == '\x01') || (param_5 == '\0')) && (param_4 == 0xfff1)) && (param_5 != '\x01'))\n      goto LAB_002c14d0;" if (parenthesized_expression "((((cVar6 == '\x01') || (param_5 == '\0')) && (param_4 == 0xfff1)) && (param_5 != '\x01'))" ( (binary_expression "(((cVar6 == '\x01') || (param_5 == '\0')) && (param_4 == 0xfff1)) && (param_5 != '\x01')" (parenthesized_expression "(((cVar6 == '\x01') || (param_5 == '\0')) && (param_4 == 0xfff1))" ( (binary_expression "((cVar6 == '\x01') || (param_5 == '\0')) && (param_4 == 0xfff1)" (parenthesized_expression "((cVar6 == '\x01') || (param_5 == '\0'))" ( (binary_expression "(cVar6 == '\x01') || (param_5 == '\0')" (parenthesized_expression "(cVar6 == '\x01')" ( (binary_expression "cVar6 == '\x01'" identifier == (char_literal "'\x01'" ' escape_sequence ')) )) || (parenthesized_expression "(param_5 == '\0')" ( (binary_expression "param_5 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(param_4 == 0xfff1)" ( (binary_expression "param_4 == 0xfff1" identifier == number_literal) ))) )) && (parenthesized_expression "(param_5 != '\x01')" ( (binary_expression "param_5 != '\x01'" identifier != (char_literal "'\x01'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_002c14d0;" goto statement_identifier ;)) }) (else_clause "else if (((iVar2 != 0) && (param_5 != '\0')) && (param_4 == iVar2)) goto LAB_002c1838;" else (if_statement "if (((iVar2 != 0) && (param_5 != '\0')) && (param_4 == iVar2)) goto LAB_002c1838;" if (parenthesized_expression "(((iVar2 != 0) && (param_5 != '\0')) && (param_4 == iVar2))" ( (binary_expression "((iVar2 != 0) && (param_5 != '\0')) && (param_4 == iVar2)" (parenthesized_expression "((iVar2 != 0) && (param_5 != '\0'))" ( (binary_expression "(iVar2 != 0) && (param_5 != '\0')" (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) && (parenthesized_expression "(param_5 != '\0')" ( (binary_expression "param_5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(param_4 == iVar2)" ( (binary_expression "param_4 == iVar2" identifier == identifier) ))) )) (goto_statement "goto LAB_002c1838;" goto statement_identifier ;)))) }) (else_clause "else if (((param_5 != '\x01') && (param_4 == 0xfff1)) && (bVar16 == 0)) {\nLAB_002c14d0:\n    if (iVar2 == 0xfff1) {\nLAB_002c1838:\n      if (*(long *)(*param_3 + 8) == param_2[8]) {\n        return *param_3;\n      }\n    }\n  }" else (if_statement "if (((param_5 != '\x01') && (param_4 == 0xfff1)) && (bVar16 == 0)) {\nLAB_002c14d0:\n    if (iVar2 == 0xfff1) {\nLAB_002c1838:\n      if (*(long *)(*param_3 + 8) == param_2[8]) {\n        return *param_3;\n      }\n    }\n  }" if (parenthesized_expression "(((param_5 != '\x01') && (param_4 == 0xfff1)) && (bVar16 == 0))" ( (binary_expression "((param_5 != '\x01') && (param_4 == 0xfff1)) && (bVar16 == 0)" (parenthesized_expression "((param_5 != '\x01') && (param_4 == 0xfff1))" ( (binary_expression "(param_5 != '\x01') && (param_4 == 0xfff1)" (parenthesized_expression "(param_5 != '\x01')" ( (binary_expression "param_5 != '\x01'" identifier != (char_literal "'\x01'" ' escape_sequence ')) )) && (parenthesized_expression "(param_4 == 0xfff1)" ( (binary_expression "param_4 == 0xfff1" identifier == number_literal) ))) )) && (parenthesized_expression "(bVar16 == 0)" ( (binary_expression "bVar16 == 0" identifier == number_literal) ))) )) (compound_statement "{\nLAB_002c14d0:\n    if (iVar2 == 0xfff1) {\nLAB_002c1838:\n      if (*(long *)(*param_3 + 8) == param_2[8]) {\n        return *param_3;\n      }\n    }\n  }" { (labeled_statement "LAB_002c14d0:\n    if (iVar2 == 0xfff1) {\nLAB_002c1838:\n      if (*(long *)(*param_3 + 8) == param_2[8]) {\n        return *param_3;\n      }\n    }" statement_identifier : (if_statement "if (iVar2 == 0xfff1) {\nLAB_002c1838:\n      if (*(long *)(*param_3 + 8) == param_2[8]) {\n        return *param_3;\n      }\n    }" if (parenthesized_expression "(iVar2 == 0xfff1)" ( (binary_expression "iVar2 == 0xfff1" identifier == number_literal) )) (compound_statement "{\nLAB_002c1838:\n      if (*(long *)(*param_3 + 8) == param_2[8]) {\n        return *param_3;\n      }\n    }" { (labeled_statement "LAB_002c1838:\n      if (*(long *)(*param_3 + 8) == param_2[8]) {\n        return *param_3;\n      }" statement_identifier : (if_statement "if (*(long *)(*param_3 + 8) == param_2[8]) {\n        return *param_3;\n      }" if (parenthesized_expression "(*(long *)(*param_3 + 8) == param_2[8])" ( (binary_expression "*(long *)(*param_3 + 8) == param_2[8]" (pointer_expression "*(long *)(*param_3 + 8)" * (cast_expression "(long *)(*param_3 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_3 + 8)" ( (binary_expression "*param_3 + 8" (pointer_expression "*param_3" * identifier) + number_literal) )))) == (subscript_expression "param_2[8]" identifier [ number_literal ])) )) (compound_statement "{\n        return *param_3;\n      }" { (return_statement "return *param_3;" return (pointer_expression "*param_3" * identifier) ;) }))) }))) })))) (expression_statement "plVar3 = *(long **)(PTR_DAT_004ba7c8 + 0x18);" (assignment_expression "plVar3 = *(long **)(PTR_DAT_004ba7c8 + 0x18)" identifier = (pointer_expression "*(long **)(PTR_DAT_004ba7c8 + 0x18)" * (cast_expression "(long **)(PTR_DAT_004ba7c8 + 0x18)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_004ba7c8 + 0x18)" ( (binary_expression "PTR_DAT_004ba7c8 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (plVar3 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_001e9890("../../gold/parameters.h",0x69,"target");\n  }" if (parenthesized_expression "(plVar3 == (long *)0x0)" ( (binary_expression "plVar3 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_001e9890("../../gold/parameters.h",0x69,"target");\n  }" { comment (expression_statement "FUN_001e9890("../../gold/parameters.h",0x69,"target");" (call_expression "FUN_001e9890("../../gold/parameters.h",0x69,"target")" identifier (argument_list "("../../gold/parameters.h",0x69,"target")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""target"" " string_content ") ))) ;) })) (if_statement "if ((*(char *)(plVar3[1] + 0xd) == '\0') ||\n     (uVar9 = (**(code **)(*plVar3 + 0x158))(plVar3,param_2,param_3,param_7,param_8),\n     (char)uVar9 == '\0')) {\n    if ((*(byte *)((long)param_7 + 0x3c) & 1) == 0) {\n      if (((*(byte *)(*param_3 + 4) & 0xf) == 5) &&\n         ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))) {\n        if ((*(byte *)((long)param_2 + 0x3a) & 7) == 0) {\n          uVar11 = *(undefined8 *)(param_2[2] + 8);\n          FUN_002de930(&local_58,param_2);\n          puVar5 = local_58;\n          uVar13 = gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");\n                    /* try { // try from 002c1a10 to 002c1a14 has its CatchHandler @ 002c1bf1 */\n          uVar9 = FUN_001e15a0(uVar13,puVar5,uVar11);\n          if (local_58 == local_48) {\n            return uVar9;\n          }\n          uVar9 = FUN_00338a50();\n          return uVar9;\n        }\n        goto LAB_002c1bd9;\n      }\n      *(byte *)((long)param_2 + 0x3a) = *(byte *)((long)param_2 + 0x3a) | 0x80;\n      lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    }\n    else {\n      if ((param_4 == 0) && (uVar8 = (*(byte *)((long)param_2 + 0x39) & 3) - 1, uVar8 < 2)) {\n        return (ulong)uVar8;\n      }\n      *(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 1;\n      lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    }\n    if ((lVar10 == 0) && ((*(byte *)((long)param_7 + 0x3c) & 1) == 0)) {\n      *(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 0x40;\n    }\n    if (((*(byte *)((long)param_2 + 0x3a) & 7) == 0) &&\n       (lVar10 = (**(code **)(*(long *)param_2[2] + 0x28))(), lVar10 != 0)) {\n      lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n      if (lVar10 == 0) goto LAB_002c17cc;\n      if (*(char *)(*(long *)(lVar10 + 0x9058) + 0xb1) != '\0') {\n        if (((((*(byte *)((long)param_2 + 0x3a) & 7) != 0) ||\n             ((*(byte *)((long)param_2 + 0x3b) & 0x20) != 0)) ||\n            (cVar6 = FUN_002dd6f0(*(undefined4 *)(param_2 + 3)), cVar6 != '\x01')) ||\n           ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))) {\n          FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7);\n          return param_8;\n        }\n        uVar9 = param_2[9];\n        uVar4 = param_2[8];\n        uVar12 = FUN_002bffb0(param_1,param_2,param_3,param_4,0,param_7,param_8);\n        if ((ulong)param_2[9] < uVar9) {\n          param_2[9] = uVar9;\n        }\n        if (uVar4 <= (ulong)param_2[8]) {\n          return uVar12;\n        }\n        param_2[8] = uVar4;\n        return uVar12;\n      }\n    }\n    else {\n      lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n      if (lVar10 == 0) goto LAB_002c17cc;\n    }\n    if (*(char *)(lVar10 + 0x16b1) != '\0') {\n      uVar9 = *param_3;\n      if ((((((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) || (*(byte *)(param_2 + 7) >> 4 == 2)) &&\n           (((param_6 != 0 & bVar16) != 0 &&\n            (((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0)))))) &&\n          (((*(byte *)(uVar9 + 4) & 0xf) != (*(byte *)(param_2 + 7) & 0xf) ||\n           (param_2[9] != *(long *)(uVar9 + 0x10))))) &&\n         ((pcVar15 = (char *)*param_2, *pcVar15 == '_' && (pcVar15[1] == 'Z')))) {\n        local_68 = *(undefined8 *)(uVar9 + 8);\n        local_78 = param_7;\n        local_70 = param_6;\n        if ((*(byte *)((long)param_2 + 0x3a) & 7) != 0) {\nLAB_002c1bd9:\n                    /* WARNING: Subroutine does not return */\n          FUN_001e9890("../../gold/symtab.h",0xa1,"object");\n        }\n        local_58 = (undefined8 *)param_2[2];\n        local_48[0] = param_2[8];\n        local_88 = pcVar15;\n        local_50 = iVar2;\n        local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);\n        FUN_001c3360(local_80,&local_78,&local_80,1);\n        local_88 = (char *)*param_2;\n        local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);\n        FUN_001c3360(local_80,&local_58,&local_80,1);\n      }\n    }\n    local_98 = &local_78;\n    lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    if (lVar10 == 0) {\n      uVar14 = (uint)*(byte *)(*param_3 + 4);\n      uVar8 = uVar14;\n    }\n    else {\n      uVar14 = (uint)*(byte *)(*param_3 + 4);\n      uVar8 = (uint)*(byte *)(param_2 + 7);\n    }\n    uVar7 = FUN_002be580((int)uVar14 >> 4,*(byte *)((long)param_7 + 0x3c) & 1,param_4,param_5);\n    uVar4 = param_2[9];\n    cVar6 = FUN_002be950(param_2,uVar7,uVar8 & 0xf,0,param_7,local_98,&local_58,param_9);\n    if (cVar6 == '\0') {\n      uVar9 = *param_3;\n      if ((char)local_78 != '\0') {\n        if (uVar4 < *(ulong *)(uVar9 + 0x10)) {\n          param_2[9] = *(ulong *)(uVar9 + 0x10);\n        }\n        if ((ulong)param_2[8] < *(ulong *)(uVar9 + 8)) {\n          param_2[8] = *(ulong *)(uVar9 + 8);\n        }\n      }\n      if ((char)local_58 != '\0') {\n        if (((*(byte *)((long)param_2 + 0x3c) & 1) == 0) ||\n           ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)) {\n          *(byte *)((long)param_2 + 0x3c) =\n               *(byte *)((long)param_2 + 0x3c) & 0xfd |\n               ((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) * '\x02' | 1;\n        }\n      }\n      bVar16 = *(byte *)(uVar9 + 5) & 3;\n      if ((*(byte *)(uVar9 + 5) & 3) != 0) {\n        bVar1 = *(byte *)((long)param_2 + 0x39);\n        if (((bVar1 & 3) == 0) || (bVar16 < (bVar1 & 3))) {\n          *(byte *)((long)param_2 + 0x39) = bVar16 | bVar1 & 0xfc;\n        }\n      }\n    }\n    else {\n      bVar16 = *(byte *)(param_2 + 7);\n      uVar9 = param_2[8];\n      FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7,param_8);\n      if ((char)local_78 != '\0') {\n        if ((ulong)param_2[9] < uVar4) {\n          param_2[9] = uVar4;\n        }\n        if ((ulong)param_2[8] < uVar9) {\n          param_2[8] = uVar9;\n        }\n      }\n      if (((char)local_58 != '\0') &&\n         (((*(byte *)((long)param_2 + 0x3c) & 1) == 0 ||\n          ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)))) {\n        *(byte *)((long)param_2 + 0x3c) =\n             *(byte *)((long)param_2 + 0x3c) & 0xfd | (bVar16 >> 4 == 2) * '\x02' | 1;\n      }\n    }\n    bVar16 = *(byte *)((long)param_2 + 0x3a);\n    uVar9 = (ulong)bVar16;\n    if ((bVar16 & 7) == 0) {\n      bVar1 = *(byte *)(param_2[2] + 0x3c);\n      if ((((bVar1 & 1) != 0) && ((char)bVar16 < '\0')) &&\n         ((*(byte *)((long)param_2 + 0x3c) & 2) == 0)) {\n        *(byte *)(param_2[2] + 0x3c) = bVar1 | 2;\n      }\n    }\n    if ((char)local_78 != '\0') {\n      uVar9 = *(ulong *)(PTR_DAT_004ba7c8 + 0x10);\n      if (uVar9 == 0) {\nLAB_002c17cc:\n                    /* WARNING: Subroutine does not return */\n        FUN_001e9890("../../gold/parameters.h",0x5c,"options");\n      }\n      if (*(char *)(uVar9 + 0x6de1) != '\0') {\n        pcVar15 = "common of \'%s\' overriding smaller common";\n        uVar9 = *(ulong *)(*param_3 + 0x10);\n        if ((uVar9 > uVar4 || uVar4 == uVar9) &&\n           (pcVar15 = "common of \'%s\' overidden by larger common", uVar9 <= uVar4)) {\n          pcVar15 = "multiple common of \'%s\'";\n        }\n        uVar11 = gettext(pcVar15);\n        uVar9 = FUN_002be7a0(0,uVar11,param_2,0,param_7);\n      }\n    }\n  }" if (parenthesized_expression "((*(char *)(plVar3[1] + 0xd) == '\0') ||\n     (uVar9 = (**(code **)(*plVar3 + 0x158))(plVar3,param_2,param_3,param_7,param_8),\n     (char)uVar9 == '\0'))" ( (binary_expression "(*(char *)(plVar3[1] + 0xd) == '\0') ||\n     (uVar9 = (**(code **)(*plVar3 + 0x158))(plVar3,param_2,param_3,param_7,param_8),\n     (char)uVar9 == '\0')" (parenthesized_expression "(*(char *)(plVar3[1] + 0xd) == '\0')" ( (binary_expression "*(char *)(plVar3[1] + 0xd) == '\0'" (pointer_expression "*(char *)(plVar3[1] + 0xd)" * (cast_expression "(char *)(plVar3[1] + 0xd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar3[1] + 0xd)" ( (binary_expression "plVar3[1] + 0xd" (subscript_expression "plVar3[1]" identifier [ number_literal ]) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(uVar9 = (**(code **)(*plVar3 + 0x158))(plVar3,param_2,param_3,param_7,param_8),\n     (char)uVar9 == '\0')" ( (comma_expression "uVar9 = (**(code **)(*plVar3 + 0x158))(plVar3,param_2,param_3,param_7,param_8),\n     (char)uVar9 == '\0'" (assignment_expression "uVar9 = (**(code **)(*plVar3 + 0x158))(plVar3,param_2,param_3,param_7,param_8)" identifier = (call_expression "(**(code **)(*plVar3 + 0x158))(plVar3,param_2,param_3,param_7,param_8)" (parenthesized_expression "(**(code **)(*plVar3 + 0x158))" ( (pointer_expression "**(code **)(*plVar3 + 0x158)" * (pointer_expression "*(code **)(*plVar3 + 0x158)" * (cast_expression "(code **)(*plVar3 + 0x158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar3 + 0x158)" ( (binary_expression "*plVar3 + 0x158" (pointer_expression "*plVar3" * identifier) + number_literal) ))))) )) (argument_list "(plVar3,param_2,param_3,param_7,param_8)" ( identifier , identifier , identifier , identifier , identifier )))) , (binary_expression "(char)uVar9 == '\0'" (cast_expression "(char)uVar9" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n    if ((*(byte *)((long)param_7 + 0x3c) & 1) == 0) {\n      if (((*(byte *)(*param_3 + 4) & 0xf) == 5) &&\n         ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))) {\n        if ((*(byte *)((long)param_2 + 0x3a) & 7) == 0) {\n          uVar11 = *(undefined8 *)(param_2[2] + 8);\n          FUN_002de930(&local_58,param_2);\n          puVar5 = local_58;\n          uVar13 = gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");\n                    /* try { // try from 002c1a10 to 002c1a14 has its CatchHandler @ 002c1bf1 */\n          uVar9 = FUN_001e15a0(uVar13,puVar5,uVar11);\n          if (local_58 == local_48) {\n            return uVar9;\n          }\n          uVar9 = FUN_00338a50();\n          return uVar9;\n        }\n        goto LAB_002c1bd9;\n      }\n      *(byte *)((long)param_2 + 0x3a) = *(byte *)((long)param_2 + 0x3a) | 0x80;\n      lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    }\n    else {\n      if ((param_4 == 0) && (uVar8 = (*(byte *)((long)param_2 + 0x39) & 3) - 1, uVar8 < 2)) {\n        return (ulong)uVar8;\n      }\n      *(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 1;\n      lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    }\n    if ((lVar10 == 0) && ((*(byte *)((long)param_7 + 0x3c) & 1) == 0)) {\n      *(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 0x40;\n    }\n    if (((*(byte *)((long)param_2 + 0x3a) & 7) == 0) &&\n       (lVar10 = (**(code **)(*(long *)param_2[2] + 0x28))(), lVar10 != 0)) {\n      lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n      if (lVar10 == 0) goto LAB_002c17cc;\n      if (*(char *)(*(long *)(lVar10 + 0x9058) + 0xb1) != '\0') {\n        if (((((*(byte *)((long)param_2 + 0x3a) & 7) != 0) ||\n             ((*(byte *)((long)param_2 + 0x3b) & 0x20) != 0)) ||\n            (cVar6 = FUN_002dd6f0(*(undefined4 *)(param_2 + 3)), cVar6 != '\x01')) ||\n           ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))) {\n          FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7);\n          return param_8;\n        }\n        uVar9 = param_2[9];\n        uVar4 = param_2[8];\n        uVar12 = FUN_002bffb0(param_1,param_2,param_3,param_4,0,param_7,param_8);\n        if ((ulong)param_2[9] < uVar9) {\n          param_2[9] = uVar9;\n        }\n        if (uVar4 <= (ulong)param_2[8]) {\n          return uVar12;\n        }\n        param_2[8] = uVar4;\n        return uVar12;\n      }\n    }\n    else {\n      lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n      if (lVar10 == 0) goto LAB_002c17cc;\n    }\n    if (*(char *)(lVar10 + 0x16b1) != '\0') {\n      uVar9 = *param_3;\n      if ((((((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) || (*(byte *)(param_2 + 7) >> 4 == 2)) &&\n           (((param_6 != 0 & bVar16) != 0 &&\n            (((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0)))))) &&\n          (((*(byte *)(uVar9 + 4) & 0xf) != (*(byte *)(param_2 + 7) & 0xf) ||\n           (param_2[9] != *(long *)(uVar9 + 0x10))))) &&\n         ((pcVar15 = (char *)*param_2, *pcVar15 == '_' && (pcVar15[1] == 'Z')))) {\n        local_68 = *(undefined8 *)(uVar9 + 8);\n        local_78 = param_7;\n        local_70 = param_6;\n        if ((*(byte *)((long)param_2 + 0x3a) & 7) != 0) {\nLAB_002c1bd9:\n                    /* WARNING: Subroutine does not return */\n          FUN_001e9890("../../gold/symtab.h",0xa1,"object");\n        }\n        local_58 = (undefined8 *)param_2[2];\n        local_48[0] = param_2[8];\n        local_88 = pcVar15;\n        local_50 = iVar2;\n        local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);\n        FUN_001c3360(local_80,&local_78,&local_80,1);\n        local_88 = (char *)*param_2;\n        local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);\n        FUN_001c3360(local_80,&local_58,&local_80,1);\n      }\n    }\n    local_98 = &local_78;\n    lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    if (lVar10 == 0) {\n      uVar14 = (uint)*(byte *)(*param_3 + 4);\n      uVar8 = uVar14;\n    }\n    else {\n      uVar14 = (uint)*(byte *)(*param_3 + 4);\n      uVar8 = (uint)*(byte *)(param_2 + 7);\n    }\n    uVar7 = FUN_002be580((int)uVar14 >> 4,*(byte *)((long)param_7 + 0x3c) & 1,param_4,param_5);\n    uVar4 = param_2[9];\n    cVar6 = FUN_002be950(param_2,uVar7,uVar8 & 0xf,0,param_7,local_98,&local_58,param_9);\n    if (cVar6 == '\0') {\n      uVar9 = *param_3;\n      if ((char)local_78 != '\0') {\n        if (uVar4 < *(ulong *)(uVar9 + 0x10)) {\n          param_2[9] = *(ulong *)(uVar9 + 0x10);\n        }\n        if ((ulong)param_2[8] < *(ulong *)(uVar9 + 8)) {\n          param_2[8] = *(ulong *)(uVar9 + 8);\n        }\n      }\n      if ((char)local_58 != '\0') {\n        if (((*(byte *)((long)param_2 + 0x3c) & 1) == 0) ||\n           ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)) {\n          *(byte *)((long)param_2 + 0x3c) =\n               *(byte *)((long)param_2 + 0x3c) & 0xfd |\n               ((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) * '\x02' | 1;\n        }\n      }\n      bVar16 = *(byte *)(uVar9 + 5) & 3;\n      if ((*(byte *)(uVar9 + 5) & 3) != 0) {\n        bVar1 = *(byte *)((long)param_2 + 0x39);\n        if (((bVar1 & 3) == 0) || (bVar16 < (bVar1 & 3))) {\n          *(byte *)((long)param_2 + 0x39) = bVar16 | bVar1 & 0xfc;\n        }\n      }\n    }\n    else {\n      bVar16 = *(byte *)(param_2 + 7);\n      uVar9 = param_2[8];\n      FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7,param_8);\n      if ((char)local_78 != '\0') {\n        if ((ulong)param_2[9] < uVar4) {\n          param_2[9] = uVar4;\n        }\n        if ((ulong)param_2[8] < uVar9) {\n          param_2[8] = uVar9;\n        }\n      }\n      if (((char)local_58 != '\0') &&\n         (((*(byte *)((long)param_2 + 0x3c) & 1) == 0 ||\n          ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)))) {\n        *(byte *)((long)param_2 + 0x3c) =\n             *(byte *)((long)param_2 + 0x3c) & 0xfd | (bVar16 >> 4 == 2) * '\x02' | 1;\n      }\n    }\n    bVar16 = *(byte *)((long)param_2 + 0x3a);\n    uVar9 = (ulong)bVar16;\n    if ((bVar16 & 7) == 0) {\n      bVar1 = *(byte *)(param_2[2] + 0x3c);\n      if ((((bVar1 & 1) != 0) && ((char)bVar16 < '\0')) &&\n         ((*(byte *)((long)param_2 + 0x3c) & 2) == 0)) {\n        *(byte *)(param_2[2] + 0x3c) = bVar1 | 2;\n      }\n    }\n    if ((char)local_78 != '\0') {\n      uVar9 = *(ulong *)(PTR_DAT_004ba7c8 + 0x10);\n      if (uVar9 == 0) {\nLAB_002c17cc:\n                    /* WARNING: Subroutine does not return */\n        FUN_001e9890("../../gold/parameters.h",0x5c,"options");\n      }\n      if (*(char *)(uVar9 + 0x6de1) != '\0') {\n        pcVar15 = "common of \'%s\' overriding smaller common";\n        uVar9 = *(ulong *)(*param_3 + 0x10);\n        if ((uVar9 > uVar4 || uVar4 == uVar9) &&\n           (pcVar15 = "common of \'%s\' overidden by larger common", uVar9 <= uVar4)) {\n          pcVar15 = "multiple common of \'%s\'";\n        }\n        uVar11 = gettext(pcVar15);\n        uVar9 = FUN_002be7a0(0,uVar11,param_2,0,param_7);\n      }\n    }\n  }" { (if_statement "if ((*(byte *)((long)param_7 + 0x3c) & 1) == 0) {\n      if (((*(byte *)(*param_3 + 4) & 0xf) == 5) &&\n         ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))) {\n        if ((*(byte *)((long)param_2 + 0x3a) & 7) == 0) {\n          uVar11 = *(undefined8 *)(param_2[2] + 8);\n          FUN_002de930(&local_58,param_2);\n          puVar5 = local_58;\n          uVar13 = gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");\n                    /* try { // try from 002c1a10 to 002c1a14 has its CatchHandler @ 002c1bf1 */\n          uVar9 = FUN_001e15a0(uVar13,puVar5,uVar11);\n          if (local_58 == local_48) {\n            return uVar9;\n          }\n          uVar9 = FUN_00338a50();\n          return uVar9;\n        }\n        goto LAB_002c1bd9;\n      }\n      *(byte *)((long)param_2 + 0x3a) = *(byte *)((long)param_2 + 0x3a) | 0x80;\n      lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    }\n    else {\n      if ((param_4 == 0) && (uVar8 = (*(byte *)((long)param_2 + 0x39) & 3) - 1, uVar8 < 2)) {\n        return (ulong)uVar8;\n      }\n      *(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 1;\n      lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    }" if (parenthesized_expression "((*(byte *)((long)param_7 + 0x3c) & 1) == 0)" ( (binary_expression "(*(byte *)((long)param_7 + 0x3c) & 1) == 0" (parenthesized_expression "(*(byte *)((long)param_7 + 0x3c) & 1)" ( (binary_expression "*(byte *)((long)param_7 + 0x3c) & 1" (pointer_expression "*(byte *)((long)param_7 + 0x3c)" * (cast_expression "(byte *)((long)param_7 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_7 + 0x3c)" ( (binary_expression "(long)param_7 + 0x3c" (cast_expression "(long)param_7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      if (((*(byte *)(*param_3 + 4) & 0xf) == 5) &&\n         ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))) {\n        if ((*(byte *)((long)param_2 + 0x3a) & 7) == 0) {\n          uVar11 = *(undefined8 *)(param_2[2] + 8);\n          FUN_002de930(&local_58,param_2);\n          puVar5 = local_58;\n          uVar13 = gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");\n                    /* try { // try from 002c1a10 to 002c1a14 has its CatchHandler @ 002c1bf1 */\n          uVar9 = FUN_001e15a0(uVar13,puVar5,uVar11);\n          if (local_58 == local_48) {\n            return uVar9;\n          }\n          uVar9 = FUN_00338a50();\n          return uVar9;\n        }\n        goto LAB_002c1bd9;\n      }\n      *(byte *)((long)param_2 + 0x3a) = *(byte *)((long)param_2 + 0x3a) | 0x80;\n      lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    }" { (if_statement "if (((*(byte *)(*param_3 + 4) & 0xf) == 5) &&\n         ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))) {\n        if ((*(byte *)((long)param_2 + 0x3a) & 7) == 0) {\n          uVar11 = *(undefined8 *)(param_2[2] + 8);\n          FUN_002de930(&local_58,param_2);\n          puVar5 = local_58;\n          uVar13 = gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");\n                    /* try { // try from 002c1a10 to 002c1a14 has its CatchHandler @ 002c1bf1 */\n          uVar9 = FUN_001e15a0(uVar13,puVar5,uVar11);\n          if (local_58 == local_48) {\n            return uVar9;\n          }\n          uVar9 = FUN_00338a50();\n          return uVar9;\n        }\n        goto LAB_002c1bd9;\n      }" if (parenthesized_expression "(((*(byte *)(*param_3 + 4) & 0xf) == 5) &&\n         ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0'))))" ( (binary_expression "((*(byte *)(*param_3 + 4) & 0xf) == 5) &&\n         ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))" (parenthesized_expression "((*(byte *)(*param_3 + 4) & 0xf) == 5)" ( (binary_expression "(*(byte *)(*param_3 + 4) & 0xf) == 5" (parenthesized_expression "(*(byte *)(*param_3 + 4) & 0xf)" ( (binary_expression "*(byte *)(*param_3 + 4) & 0xf" (pointer_expression "*(byte *)(*param_3 + 4)" * (cast_expression "(byte *)(*param_3 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_3 + 4)" ( (binary_expression "*param_3 + 4" (pointer_expression "*param_3" * identifier) + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))" ( (parenthesized_expression "(param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0'))" ( (binary_expression "param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')" (binary_expression "param_5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "(cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')" ( (comma_expression "cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0'" (assignment_expression "cVar6 = FUN_002dd6f0(param_4)" identifier = (call_expression "FUN_002dd6f0(param_4)" identifier (argument_list "(param_4)" ( identifier )))) , (binary_expression "cVar6 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ))) )) ))) )) (compound_statement "{\n        if ((*(byte *)((long)param_2 + 0x3a) & 7) == 0) {\n          uVar11 = *(undefined8 *)(param_2[2] + 8);\n          FUN_002de930(&local_58,param_2);\n          puVar5 = local_58;\n          uVar13 = gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");\n                    /* try { // try from 002c1a10 to 002c1a14 has its CatchHandler @ 002c1bf1 */\n          uVar9 = FUN_001e15a0(uVar13,puVar5,uVar11);\n          if (local_58 == local_48) {\n            return uVar9;\n          }\n          uVar9 = FUN_00338a50();\n          return uVar9;\n        }\n        goto LAB_002c1bd9;\n      }" { (if_statement "if ((*(byte *)((long)param_2 + 0x3a) & 7) == 0) {\n          uVar11 = *(undefined8 *)(param_2[2] + 8);\n          FUN_002de930(&local_58,param_2);\n          puVar5 = local_58;\n          uVar13 = gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");\n                    /* try { // try from 002c1a10 to 002c1a14 has its CatchHandler @ 002c1bf1 */\n          uVar9 = FUN_001e15a0(uVar13,puVar5,uVar11);\n          if (local_58 == local_48) {\n            return uVar9;\n          }\n          uVar9 = FUN_00338a50();\n          return uVar9;\n        }" if (parenthesized_expression "((*(byte *)((long)param_2 + 0x3a) & 7) == 0)" ( (binary_expression "(*(byte *)((long)param_2 + 0x3a) & 7) == 0" (parenthesized_expression "(*(byte *)((long)param_2 + 0x3a) & 7)" ( (binary_expression "*(byte *)((long)param_2 + 0x3a) & 7" (pointer_expression "*(byte *)((long)param_2 + 0x3a)" * (cast_expression "(byte *)((long)param_2 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + 0x3a)" ( (binary_expression "(long)param_2 + 0x3a" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n          uVar11 = *(undefined8 *)(param_2[2] + 8);\n          FUN_002de930(&local_58,param_2);\n          puVar5 = local_58;\n          uVar13 = gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");\n                    /* try { // try from 002c1a10 to 002c1a14 has its CatchHandler @ 002c1bf1 */\n          uVar9 = FUN_001e15a0(uVar13,puVar5,uVar11);\n          if (local_58 == local_48) {\n            return uVar9;\n          }\n          uVar9 = FUN_00338a50();\n          return uVar9;\n        }" { (expression_statement "uVar11 = *(undefined8 *)(param_2[2] + 8);" (assignment_expression "uVar11 = *(undefined8 *)(param_2[2] + 8)" identifier = (pointer_expression "*(undefined8 *)(param_2[2] + 8)" * (cast_expression "(undefined8 *)(param_2[2] + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[2] + 8)" ( (binary_expression "param_2[2] + 8" (subscript_expression "param_2[2]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "FUN_002de930(&local_58,param_2);" (call_expression "FUN_002de930(&local_58,param_2)" identifier (argument_list "(&local_58,param_2)" ( (pointer_expression "&local_58" & identifier) , identifier ))) ;) (expression_statement "puVar5 = local_58;" (assignment_expression "puVar5 = local_58" identifier = identifier) ;) (expression_statement "uVar13 = gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");" (assignment_expression "uVar13 = gettext("STT_COMMON symbol \'%s\' in %s is not in a common section")" identifier = (call_expression "gettext("STT_COMMON symbol \'%s\' in %s is not in a common section")" identifier (argument_list "("STT_COMMON symbol \'%s\' in %s is not in a common section")" ( (string_literal ""STT_COMMON symbol \'%s\' in %s is not in a common section"" " string_content escape_sequence string_content escape_sequence string_content ") )))) ;) comment (expression_statement "uVar9 = FUN_001e15a0(uVar13,puVar5,uVar11);" (assignment_expression "uVar9 = FUN_001e15a0(uVar13,puVar5,uVar11)" identifier = (call_expression "FUN_001e15a0(uVar13,puVar5,uVar11)" identifier (argument_list "(uVar13,puVar5,uVar11)" ( identifier , identifier , identifier )))) ;) (if_statement "if (local_58 == local_48) {\n            return uVar9;\n          }" if (parenthesized_expression "(local_58 == local_48)" ( (binary_expression "local_58 == local_48" identifier == identifier) )) (compound_statement "{\n            return uVar9;\n          }" { (return_statement "return uVar9;" return identifier ;) })) (expression_statement "uVar9 = FUN_00338a50();" (assignment_expression "uVar9 = FUN_00338a50()" identifier = (call_expression "FUN_00338a50()" identifier (argument_list "()" ( )))) ;) (return_statement "return uVar9;" return identifier ;) })) (goto_statement "goto LAB_002c1bd9;" goto statement_identifier ;) })) (expression_statement "*(byte *)((long)param_2 + 0x3a) = *(byte *)((long)param_2 + 0x3a) | 0x80;" (assignment_expression "*(byte *)((long)param_2 + 0x3a) = *(byte *)((long)param_2 + 0x3a) | 0x80" (pointer_expression "*(byte *)((long)param_2 + 0x3a)" * (cast_expression "(byte *)((long)param_2 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + 0x3a)" ( (binary_expression "(long)param_2 + 0x3a" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((long)param_2 + 0x3a) | 0x80" (pointer_expression "*(byte *)((long)param_2 + 0x3a)" * (cast_expression "(byte *)((long)param_2 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + 0x3a)" ( (binary_expression "(long)param_2 + 0x3a" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) | number_literal)) ;) (expression_statement "lVar10 = (**(code **)(*param_7 + 0x28))(param_7);" (assignment_expression "lVar10 = (**(code **)(*param_7 + 0x28))(param_7)" identifier = (call_expression "(**(code **)(*param_7 + 0x28))(param_7)" (parenthesized_expression "(**(code **)(*param_7 + 0x28))" ( (pointer_expression "**(code **)(*param_7 + 0x28)" * (pointer_expression "*(code **)(*param_7 + 0x28)" * (cast_expression "(code **)(*param_7 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_7 + 0x28)" ( (binary_expression "*param_7 + 0x28" (pointer_expression "*param_7" * identifier) + number_literal) ))))) )) (argument_list "(param_7)" ( identifier )))) ;) }) (else_clause "else {\n      if ((param_4 == 0) && (uVar8 = (*(byte *)((long)param_2 + 0x39) & 3) - 1, uVar8 < 2)) {\n        return (ulong)uVar8;\n      }\n      *(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 1;\n      lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    }" else (compound_statement "{\n      if ((param_4 == 0) && (uVar8 = (*(byte *)((long)param_2 + 0x39) & 3) - 1, uVar8 < 2)) {\n        return (ulong)uVar8;\n      }\n      *(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 1;\n      lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    }" { (if_statement "if ((param_4 == 0) && (uVar8 = (*(byte *)((long)param_2 + 0x39) & 3) - 1, uVar8 < 2)) {\n        return (ulong)uVar8;\n      }" if (parenthesized_expression "((param_4 == 0) && (uVar8 = (*(byte *)((long)param_2 + 0x39) & 3) - 1, uVar8 < 2))" ( (binary_expression "(param_4 == 0) && (uVar8 = (*(byte *)((long)param_2 + 0x39) & 3) - 1, uVar8 < 2)" (parenthesized_expression "(param_4 == 0)" ( (binary_expression "param_4 == 0" identifier == number_literal) )) && (parenthesized_expression "(uVar8 = (*(byte *)((long)param_2 + 0x39) & 3) - 1, uVar8 < 2)" ( (comma_expression "uVar8 = (*(byte *)((long)param_2 + 0x39) & 3) - 1, uVar8 < 2" (assignment_expression "uVar8 = (*(byte *)((long)param_2 + 0x39) & 3) - 1" identifier = (binary_expression "(*(byte *)((long)param_2 + 0x39) & 3) - 1" (parenthesized_expression "(*(byte *)((long)param_2 + 0x39) & 3)" ( (binary_expression "*(byte *)((long)param_2 + 0x39) & 3" (pointer_expression "*(byte *)((long)param_2 + 0x39)" * (cast_expression "(byte *)((long)param_2 + 0x39)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + 0x39)" ( (binary_expression "(long)param_2 + 0x39" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) - number_literal)) , (binary_expression "uVar8 < 2" identifier < number_literal)) ))) )) (compound_statement "{\n        return (ulong)uVar8;\n      }" { (return_statement "return (ulong)uVar8;" return (cast_expression "(ulong)uVar8" ( (type_descriptor "ulong" type_identifier) ) identifier) ;) })) (expression_statement "*(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 1;" (assignment_expression "*(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 1" (pointer_expression "*(byte *)((long)param_2 + 0x3b)" * (cast_expression "(byte *)((long)param_2 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + 0x3b)" ( (binary_expression "(long)param_2 + 0x3b" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((long)param_2 + 0x3b) | 1" (pointer_expression "*(byte *)((long)param_2 + 0x3b)" * (cast_expression "(byte *)((long)param_2 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + 0x3b)" ( (binary_expression "(long)param_2 + 0x3b" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) | number_literal)) ;) (expression_statement "lVar10 = (**(code **)(*param_7 + 0x28))(param_7);" (assignment_expression "lVar10 = (**(code **)(*param_7 + 0x28))(param_7)" identifier = (call_expression "(**(code **)(*param_7 + 0x28))(param_7)" (parenthesized_expression "(**(code **)(*param_7 + 0x28))" ( (pointer_expression "**(code **)(*param_7 + 0x28)" * (pointer_expression "*(code **)(*param_7 + 0x28)" * (cast_expression "(code **)(*param_7 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_7 + 0x28)" ( (binary_expression "*param_7 + 0x28" (pointer_expression "*param_7" * identifier) + number_literal) ))))) )) (argument_list "(param_7)" ( identifier )))) ;) }))) (if_statement "if ((lVar10 == 0) && ((*(byte *)((long)param_7 + 0x3c) & 1) == 0)) {\n      *(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 0x40;\n    }" if (parenthesized_expression "((lVar10 == 0) && ((*(byte *)((long)param_7 + 0x3c) & 1) == 0))" ( (binary_expression "(lVar10 == 0) && ((*(byte *)((long)param_7 + 0x3c) & 1) == 0)" (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) && (parenthesized_expression "((*(byte *)((long)param_7 + 0x3c) & 1) == 0)" ( (binary_expression "(*(byte *)((long)param_7 + 0x3c) & 1) == 0" (parenthesized_expression "(*(byte *)((long)param_7 + 0x3c) & 1)" ( (binary_expression "*(byte *)((long)param_7 + 0x3c) & 1" (pointer_expression "*(byte *)((long)param_7 + 0x3c)" * (cast_expression "(byte *)((long)param_7 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_7 + 0x3c)" ( (binary_expression "(long)param_7 + 0x3c" (cast_expression "(long)param_7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n      *(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 0x40;\n    }" { (expression_statement "*(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 0x40;" (assignment_expression "*(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 0x40" (pointer_expression "*(byte *)((long)param_2 + 0x3b)" * (cast_expression "(byte *)((long)param_2 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + 0x3b)" ( (binary_expression "(long)param_2 + 0x3b" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((long)param_2 + 0x3b) | 0x40" (pointer_expression "*(byte *)((long)param_2 + 0x3b)" * (cast_expression "(byte *)((long)param_2 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + 0x3b)" ( (binary_expression "(long)param_2 + 0x3b" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) | number_literal)) ;) })) (if_statement "if (((*(byte *)((long)param_2 + 0x3a) & 7) == 0) &&\n       (lVar10 = (**(code **)(*(long *)param_2[2] + 0x28))(), lVar10 != 0)) {\n      lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n      if (lVar10 == 0) goto LAB_002c17cc;\n      if (*(char *)(*(long *)(lVar10 + 0x9058) + 0xb1) != '\0') {\n        if (((((*(byte *)((long)param_2 + 0x3a) & 7) != 0) ||\n             ((*(byte *)((long)param_2 + 0x3b) & 0x20) != 0)) ||\n            (cVar6 = FUN_002dd6f0(*(undefined4 *)(param_2 + 3)), cVar6 != '\x01')) ||\n           ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))) {\n          FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7);\n          return param_8;\n        }\n        uVar9 = param_2[9];\n        uVar4 = param_2[8];\n        uVar12 = FUN_002bffb0(param_1,param_2,param_3,param_4,0,param_7,param_8);\n        if ((ulong)param_2[9] < uVar9) {\n          param_2[9] = uVar9;\n        }\n        if (uVar4 <= (ulong)param_2[8]) {\n          return uVar12;\n        }\n        param_2[8] = uVar4;\n        return uVar12;\n      }\n    }\n    else {\n      lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n      if (lVar10 == 0) goto LAB_002c17cc;\n    }" if (parenthesized_expression "(((*(byte *)((long)param_2 + 0x3a) & 7) == 0) &&\n       (lVar10 = (**(code **)(*(long *)param_2[2] + 0x28))(), lVar10 != 0))" ( (binary_expression "((*(byte *)((long)param_2 + 0x3a) & 7) == 0) &&\n       (lVar10 = (**(code **)(*(long *)param_2[2] + 0x28))(), lVar10 != 0)" (parenthesized_expression "((*(byte *)((long)param_2 + 0x3a) & 7) == 0)" ( (binary_expression "(*(byte *)((long)param_2 + 0x3a) & 7) == 0" (parenthesized_expression "(*(byte *)((long)param_2 + 0x3a) & 7)" ( (binary_expression "*(byte *)((long)param_2 + 0x3a) & 7" (pointer_expression "*(byte *)((long)param_2 + 0x3a)" * (cast_expression "(byte *)((long)param_2 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + 0x3a)" ( (binary_expression "(long)param_2 + 0x3a" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "(lVar10 = (**(code **)(*(long *)param_2[2] + 0x28))(), lVar10 != 0)" ( (comma_expression "lVar10 = (**(code **)(*(long *)param_2[2] + 0x28))(), lVar10 != 0" (assignment_expression "lVar10 = (**(code **)(*(long *)param_2[2] + 0x28))()" identifier = (call_expression "(**(code **)(*(long *)param_2[2] + 0x28))()" (parenthesized_expression "(**(code **)(*(long *)param_2[2] + 0x28))" ( (pointer_expression "**(code **)(*(long *)param_2[2] + 0x28)" * (pointer_expression "*(code **)(*(long *)param_2[2] + 0x28)" * (cast_expression "(code **)(*(long *)param_2[2] + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)param_2[2] + 0x28)" ( (binary_expression "*(long *)param_2[2] + 0x28" (pointer_expression "*(long *)param_2[2]" * (cast_expression "(long *)param_2[2]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[2]" identifier [ number_literal ]))) + number_literal) ))))) )) (argument_list "()" ( )))) , (binary_expression "lVar10 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n      if (lVar10 == 0) goto LAB_002c17cc;\n      if (*(char *)(*(long *)(lVar10 + 0x9058) + 0xb1) != '\0') {\n        if (((((*(byte *)((long)param_2 + 0x3a) & 7) != 0) ||\n             ((*(byte *)((long)param_2 + 0x3b) & 0x20) != 0)) ||\n            (cVar6 = FUN_002dd6f0(*(undefined4 *)(param_2 + 3)), cVar6 != '\x01')) ||\n           ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))) {\n          FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7);\n          return param_8;\n        }\n        uVar9 = param_2[9];\n        uVar4 = param_2[8];\n        uVar12 = FUN_002bffb0(param_1,param_2,param_3,param_4,0,param_7,param_8);\n        if ((ulong)param_2[9] < uVar9) {\n          param_2[9] = uVar9;\n        }\n        if (uVar4 <= (ulong)param_2[8]) {\n          return uVar12;\n        }\n        param_2[8] = uVar4;\n        return uVar12;\n      }\n    }" { (expression_statement "lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10);" (assignment_expression "lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10)" identifier = (pointer_expression "*(long *)(PTR_DAT_004ba7c8 + 0x10)" * (cast_expression "(long *)(PTR_DAT_004ba7c8 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_004ba7c8 + 0x10)" ( (binary_expression "PTR_DAT_004ba7c8 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (lVar10 == 0) goto LAB_002c17cc;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (goto_statement "goto LAB_002c17cc;" goto statement_identifier ;)) (if_statement "if (*(char *)(*(long *)(lVar10 + 0x9058) + 0xb1) != '\0') {\n        if (((((*(byte *)((long)param_2 + 0x3a) & 7) != 0) ||\n             ((*(byte *)((long)param_2 + 0x3b) & 0x20) != 0)) ||\n            (cVar6 = FUN_002dd6f0(*(undefined4 *)(param_2 + 3)), cVar6 != '\x01')) ||\n           ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))) {\n          FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7);\n          return param_8;\n        }\n        uVar9 = param_2[9];\n        uVar4 = param_2[8];\n        uVar12 = FUN_002bffb0(param_1,param_2,param_3,param_4,0,param_7,param_8);\n        if ((ulong)param_2[9] < uVar9) {\n          param_2[9] = uVar9;\n        }\n        if (uVar4 <= (ulong)param_2[8]) {\n          return uVar12;\n        }\n        param_2[8] = uVar4;\n        return uVar12;\n      }" if (parenthesized_expression "(*(char *)(*(long *)(lVar10 + 0x9058) + 0xb1) != '\0')" ( (binary_expression "*(char *)(*(long *)(lVar10 + 0x9058) + 0xb1) != '\0'" (pointer_expression "*(char *)(*(long *)(lVar10 + 0x9058) + 0xb1)" * (cast_expression "(char *)(*(long *)(lVar10 + 0x9058) + 0xb1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(lVar10 + 0x9058) + 0xb1)" ( (binary_expression "*(long *)(lVar10 + 0x9058) + 0xb1" (pointer_expression "*(long *)(lVar10 + 0x9058)" * (cast_expression "(long *)(lVar10 + 0x9058)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x9058)" ( (binary_expression "lVar10 + 0x9058" identifier + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        if (((((*(byte *)((long)param_2 + 0x3a) & 7) != 0) ||\n             ((*(byte *)((long)param_2 + 0x3b) & 0x20) != 0)) ||\n            (cVar6 = FUN_002dd6f0(*(undefined4 *)(param_2 + 3)), cVar6 != '\x01')) ||\n           ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))) {\n          FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7);\n          return param_8;\n        }\n        uVar9 = param_2[9];\n        uVar4 = param_2[8];\n        uVar12 = FUN_002bffb0(param_1,param_2,param_3,param_4,0,param_7,param_8);\n        if ((ulong)param_2[9] < uVar9) {\n          param_2[9] = uVar9;\n        }\n        if (uVar4 <= (ulong)param_2[8]) {\n          return uVar12;\n        }\n        param_2[8] = uVar4;\n        return uVar12;\n      }" { (if_statement "if (((((*(byte *)((long)param_2 + 0x3a) & 7) != 0) ||\n             ((*(byte *)((long)param_2 + 0x3b) & 0x20) != 0)) ||\n            (cVar6 = FUN_002dd6f0(*(undefined4 *)(param_2 + 3)), cVar6 != '\x01')) ||\n           ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))) {\n          FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7);\n          return param_8;\n        }" if (parenthesized_expression "(((((*(byte *)((long)param_2 + 0x3a) & 7) != 0) ||\n             ((*(byte *)((long)param_2 + 0x3b) & 0x20) != 0)) ||\n            (cVar6 = FUN_002dd6f0(*(undefined4 *)(param_2 + 3)), cVar6 != '\x01')) ||\n           ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0'))))" ( (binary_expression "((((*(byte *)((long)param_2 + 0x3a) & 7) != 0) ||\n             ((*(byte *)((long)param_2 + 0x3b) & 0x20) != 0)) ||\n            (cVar6 = FUN_002dd6f0(*(undefined4 *)(param_2 + 3)), cVar6 != '\x01')) ||\n           ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))" (parenthesized_expression "((((*(byte *)((long)param_2 + 0x3a) & 7) != 0) ||\n             ((*(byte *)((long)param_2 + 0x3b) & 0x20) != 0)) ||\n            (cVar6 = FUN_002dd6f0(*(undefined4 *)(param_2 + 3)), cVar6 != '\x01'))" ( (binary_expression "(((*(byte *)((long)param_2 + 0x3a) & 7) != 0) ||\n             ((*(byte *)((long)param_2 + 0x3b) & 0x20) != 0)) ||\n            (cVar6 = FUN_002dd6f0(*(undefined4 *)(param_2 + 3)), cVar6 != '\x01')" (parenthesized_expression "(((*(byte *)((long)param_2 + 0x3a) & 7) != 0) ||\n             ((*(byte *)((long)param_2 + 0x3b) & 0x20) != 0))" ( (binary_expression "((*(byte *)((long)param_2 + 0x3a) & 7) != 0) ||\n             ((*(byte *)((long)param_2 + 0x3b) & 0x20) != 0)" (parenthesized_expression "((*(byte *)((long)param_2 + 0x3a) & 7) != 0)" ( (binary_expression "(*(byte *)((long)param_2 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)((long)param_2 + 0x3a) & 7)" ( (binary_expression "*(byte *)((long)param_2 + 0x3a) & 7" (pointer_expression "*(byte *)((long)param_2 + 0x3a)" * (cast_expression "(byte *)((long)param_2 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + 0x3a)" ( (binary_expression "(long)param_2 + 0x3a" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) || (parenthesized_expression "((*(byte *)((long)param_2 + 0x3b) & 0x20) != 0)" ( (binary_expression "(*(byte *)((long)param_2 + 0x3b) & 0x20) != 0" (parenthesized_expression "(*(byte *)((long)param_2 + 0x3b) & 0x20)" ( (binary_expression "*(byte *)((long)param_2 + 0x3b) & 0x20" (pointer_expression "*(byte *)((long)param_2 + 0x3b)" * (cast_expression "(byte *)((long)param_2 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + 0x3b)" ( (binary_expression "(long)param_2 + 0x3b" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "(cVar6 = FUN_002dd6f0(*(undefined4 *)(param_2 + 3)), cVar6 != '\x01')" ( (comma_expression "cVar6 = FUN_002dd6f0(*(undefined4 *)(param_2 + 3)), cVar6 != '\x01'" (assignment_expression "cVar6 = FUN_002dd6f0(*(undefined4 *)(param_2 + 3))" identifier = (call_expression "FUN_002dd6f0(*(undefined4 *)(param_2 + 3))" identifier (argument_list "(*(undefined4 *)(param_2 + 3))" ( (pointer_expression "*(undefined4 *)(param_2 + 3)" * (cast_expression "(undefined4 *)(param_2 + 3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 3)" ( (binary_expression "param_2 + 3" identifier + number_literal) )))) )))) , (binary_expression "cVar6 != '\x01'" identifier != (char_literal "'\x01'" ' escape_sequence '))) ))) )) || (parenthesized_expression "((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))" ( (parenthesized_expression "(param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0'))" ( (binary_expression "param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')" (binary_expression "param_5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "(cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')" ( (comma_expression "cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0'" (assignment_expression "cVar6 = FUN_002dd6f0(param_4)" identifier = (call_expression "FUN_002dd6f0(param_4)" identifier (argument_list "(param_4)" ( identifier )))) , (binary_expression "cVar6 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ))) )) ))) )) (compound_statement "{\n          FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7);\n          return param_8;\n        }" { (expression_statement "FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7);" (call_expression "FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7)" identifier (argument_list "(param_1,param_2,param_3,param_4,param_5,param_7)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (return_statement "return param_8;" return identifier ;) })) (expression_statement "uVar9 = param_2[9];" (assignment_expression "uVar9 = param_2[9]" identifier = (subscript_expression "param_2[9]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = param_2[8];" (assignment_expression "uVar4 = param_2[8]" identifier = (subscript_expression "param_2[8]" identifier [ number_literal ])) ;) (expression_statement "uVar12 = FUN_002bffb0(param_1,param_2,param_3,param_4,0,param_7,param_8);" (assignment_expression "uVar12 = FUN_002bffb0(param_1,param_2,param_3,param_4,0,param_7,param_8)" identifier = (call_expression "FUN_002bffb0(param_1,param_2,param_3,param_4,0,param_7,param_8)" identifier (argument_list "(param_1,param_2,param_3,param_4,0,param_7,param_8)" ( identifier , identifier , identifier , identifier , number_literal , identifier , identifier )))) ;) (if_statement "if ((ulong)param_2[9] < uVar9) {\n          param_2[9] = uVar9;\n        }" if (parenthesized_expression "((ulong)param_2[9] < uVar9)" ( (binary_expression "(ulong)param_2[9] < uVar9" (cast_expression "(ulong)param_2[9]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "param_2[9]" identifier [ number_literal ])) < identifier) )) (compound_statement "{\n          param_2[9] = uVar9;\n        }" { (expression_statement "param_2[9] = uVar9;" (assignment_expression "param_2[9] = uVar9" (subscript_expression "param_2[9]" identifier [ number_literal ]) = identifier) ;) })) (if_statement "if (uVar4 <= (ulong)param_2[8]) {\n          return uVar12;\n        }" if (parenthesized_expression "(uVar4 <= (ulong)param_2[8])" ( (binary_expression "uVar4 <= (ulong)param_2[8]" identifier <= (cast_expression "(ulong)param_2[8]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "param_2[8]" identifier [ number_literal ]))) )) (compound_statement "{\n          return uVar12;\n        }" { (return_statement "return uVar12;" return identifier ;) })) (expression_statement "param_2[8] = uVar4;" (assignment_expression "param_2[8] = uVar4" (subscript_expression "param_2[8]" identifier [ number_literal ]) = identifier) ;) (return_statement "return uVar12;" return identifier ;) })) }) (else_clause "else {\n      lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n      if (lVar10 == 0) goto LAB_002c17cc;\n    }" else (compound_statement "{\n      lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n      if (lVar10 == 0) goto LAB_002c17cc;\n    }" { (expression_statement "lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10);" (assignment_expression "lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10)" identifier = (pointer_expression "*(long *)(PTR_DAT_004ba7c8 + 0x10)" * (cast_expression "(long *)(PTR_DAT_004ba7c8 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_004ba7c8 + 0x10)" ( (binary_expression "PTR_DAT_004ba7c8 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (lVar10 == 0) goto LAB_002c17cc;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (goto_statement "goto LAB_002c17cc;" goto statement_identifier ;)) }))) (if_statement "if (*(char *)(lVar10 + 0x16b1) != '\0') {\n      uVar9 = *param_3;\n      if ((((((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) || (*(byte *)(param_2 + 7) >> 4 == 2)) &&\n           (((param_6 != 0 & bVar16) != 0 &&\n            (((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0)))))) &&\n          (((*(byte *)(uVar9 + 4) & 0xf) != (*(byte *)(param_2 + 7) & 0xf) ||\n           (param_2[9] != *(long *)(uVar9 + 0x10))))) &&\n         ((pcVar15 = (char *)*param_2, *pcVar15 == '_' && (pcVar15[1] == 'Z')))) {\n        local_68 = *(undefined8 *)(uVar9 + 8);\n        local_78 = param_7;\n        local_70 = param_6;\n        if ((*(byte *)((long)param_2 + 0x3a) & 7) != 0) {\nLAB_002c1bd9:\n                    /* WARNING: Subroutine does not return */\n          FUN_001e9890("../../gold/symtab.h",0xa1,"object");\n        }\n        local_58 = (undefined8 *)param_2[2];\n        local_48[0] = param_2[8];\n        local_88 = pcVar15;\n        local_50 = iVar2;\n        local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);\n        FUN_001c3360(local_80,&local_78,&local_80,1);\n        local_88 = (char *)*param_2;\n        local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);\n        FUN_001c3360(local_80,&local_58,&local_80,1);\n      }\n    }" if (parenthesized_expression "(*(char *)(lVar10 + 0x16b1) != '\0')" ( (binary_expression "*(char *)(lVar10 + 0x16b1) != '\0'" (pointer_expression "*(char *)(lVar10 + 0x16b1)" * (cast_expression "(char *)(lVar10 + 0x16b1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x16b1)" ( (binary_expression "lVar10 + 0x16b1" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar9 = *param_3;\n      if ((((((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) || (*(byte *)(param_2 + 7) >> 4 == 2)) &&\n           (((param_6 != 0 & bVar16) != 0 &&\n            (((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0)))))) &&\n          (((*(byte *)(uVar9 + 4) & 0xf) != (*(byte *)(param_2 + 7) & 0xf) ||\n           (param_2[9] != *(long *)(uVar9 + 0x10))))) &&\n         ((pcVar15 = (char *)*param_2, *pcVar15 == '_' && (pcVar15[1] == 'Z')))) {\n        local_68 = *(undefined8 *)(uVar9 + 8);\n        local_78 = param_7;\n        local_70 = param_6;\n        if ((*(byte *)((long)param_2 + 0x3a) & 7) != 0) {\nLAB_002c1bd9:\n                    /* WARNING: Subroutine does not return */\n          FUN_001e9890("../../gold/symtab.h",0xa1,"object");\n        }\n        local_58 = (undefined8 *)param_2[2];\n        local_48[0] = param_2[8];\n        local_88 = pcVar15;\n        local_50 = iVar2;\n        local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);\n        FUN_001c3360(local_80,&local_78,&local_80,1);\n        local_88 = (char *)*param_2;\n        local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);\n        FUN_001c3360(local_80,&local_58,&local_80,1);\n      }\n    }" { (expression_statement "uVar9 = *param_3;" (assignment_expression "uVar9 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (if_statement "if ((((((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) || (*(byte *)(param_2 + 7) >> 4 == 2)) &&\n           (((param_6 != 0 & bVar16) != 0 &&\n            (((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0)))))) &&\n          (((*(byte *)(uVar9 + 4) & 0xf) != (*(byte *)(param_2 + 7) & 0xf) ||\n           (param_2[9] != *(long *)(uVar9 + 0x10))))) &&\n         ((pcVar15 = (char *)*param_2, *pcVar15 == '_' && (pcVar15[1] == 'Z')))) {\n        local_68 = *(undefined8 *)(uVar9 + 8);\n        local_78 = param_7;\n        local_70 = param_6;\n        if ((*(byte *)((long)param_2 + 0x3a) & 7) != 0) {\nLAB_002c1bd9:\n                    /* WARNING: Subroutine does not return */\n          FUN_001e9890("../../gold/symtab.h",0xa1,"object");\n        }\n        local_58 = (undefined8 *)param_2[2];\n        local_48[0] = param_2[8];\n        local_88 = pcVar15;\n        local_50 = iVar2;\n        local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);\n        FUN_001c3360(local_80,&local_78,&local_80,1);\n        local_88 = (char *)*param_2;\n        local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);\n        FUN_001c3360(local_80,&local_58,&local_80,1);\n      }" if (parenthesized_expression "((((((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) || (*(byte *)(param_2 + 7) >> 4 == 2)) &&\n           (((param_6 != 0 & bVar16) != 0 &&\n            (((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0)))))) &&\n          (((*(byte *)(uVar9 + 4) & 0xf) != (*(byte *)(param_2 + 7) & 0xf) ||\n           (param_2[9] != *(long *)(uVar9 + 0x10))))) &&\n         ((pcVar15 = (char *)*param_2, *pcVar15 == '_' && (pcVar15[1] == 'Z'))))" ( (binary_expression "(((((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) || (*(byte *)(param_2 + 7) >> 4 == 2)) &&\n           (((param_6 != 0 & bVar16) != 0 &&\n            (((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0)))))) &&\n          (((*(byte *)(uVar9 + 4) & 0xf) != (*(byte *)(param_2 + 7) & 0xf) ||\n           (param_2[9] != *(long *)(uVar9 + 0x10))))) &&\n         ((pcVar15 = (char *)*param_2, *pcVar15 == '_' && (pcVar15[1] == 'Z')))" (parenthesized_expression "(((((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) || (*(byte *)(param_2 + 7) >> 4 == 2)) &&\n           (((param_6 != 0 & bVar16) != 0 &&\n            (((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0)))))) &&\n          (((*(byte *)(uVar9 + 4) & 0xf) != (*(byte *)(param_2 + 7) & 0xf) ||\n           (param_2[9] != *(long *)(uVar9 + 0x10)))))" ( (binary_expression "((((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) || (*(byte *)(param_2 + 7) >> 4 == 2)) &&\n           (((param_6 != 0 & bVar16) != 0 &&\n            (((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0)))))) &&\n          (((*(byte *)(uVar9 + 4) & 0xf) != (*(byte *)(param_2 + 7) & 0xf) ||\n           (param_2[9] != *(long *)(uVar9 + 0x10))))" (parenthesized_expression "((((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) || (*(byte *)(param_2 + 7) >> 4 == 2)) &&\n           (((param_6 != 0 & bVar16) != 0 &&\n            (((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0))))))" ( (binary_expression "(((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) || (*(byte *)(param_2 + 7) >> 4 == 2)) &&\n           (((param_6 != 0 & bVar16) != 0 &&\n            (((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0)))))" (parenthesized_expression "(((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) || (*(byte *)(param_2 + 7) >> 4 == 2))" ( (binary_expression "((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) || (*(byte *)(param_2 + 7) >> 4 == 2)" (parenthesized_expression "((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2)" ( (binary_expression "(int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2" (binary_expression "(int)(uint)*(byte *)(uVar9 + 4) >> 4" (binary_expression "(int)(uint)*(byte *)(uVar9 + 4)" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)(uVar9 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 4)" ( (binary_expression "uVar9 + 4" identifier + number_literal) )))) >> number_literal) == number_literal) )) || (parenthesized_expression "(*(byte *)(param_2 + 7) >> 4 == 2)" ( (binary_expression "*(byte *)(param_2 + 7) >> 4 == 2" (binary_expression "*(byte *)(param_2 + 7) >> 4" (pointer_expression "*(byte *)(param_2 + 7)" * (cast_expression "(byte *)(param_2 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 7)" ( (binary_expression "param_2 + 7" identifier + number_literal) )))) >> number_literal) == number_literal) ))) )) && (parenthesized_expression "(((param_6 != 0 & bVar16) != 0 &&\n            (((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0)))))" ( (parenthesized_expression "((param_6 != 0 & bVar16) != 0 &&\n            (((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0))))" ( (binary_expression "(param_6 != 0 & bVar16) != 0 &&\n            (((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0)))" (binary_expression "(param_6 != 0 & bVar16) != 0" (parenthesized_expression "(param_6 != 0 & bVar16)" ( (binary_expression "param_6 != 0 & bVar16" (binary_expression "param_6 != 0" identifier != number_literal) & identifier) )) != number_literal) && (parenthesized_expression "(((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0)))" ( (parenthesized_expression "((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0))" ( (binary_expression "(iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0)" (parenthesized_expression "(iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0))" ( (binary_expression "iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)" (binary_expression "iVar2 != 0" identifier != number_literal) && (parenthesized_expression "(*(long *)(uVar9 + 0x10) != 0)" ( (binary_expression "*(long *)(uVar9 + 0x10) != 0" (pointer_expression "*(long *)(uVar9 + 0x10)" * (cast_expression "(long *)(uVar9 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 0x10)" ( (binary_expression "uVar9 + 0x10" identifier + number_literal) )))) != number_literal) ))) )) && (parenthesized_expression "(param_2[9] != 0)" ( (binary_expression "param_2[9] != 0" (subscript_expression "param_2[9]" identifier [ number_literal ]) != number_literal) ))) )) ))) )) ))) )) && (parenthesized_expression "(((*(byte *)(uVar9 + 4) & 0xf) != (*(byte *)(param_2 + 7) & 0xf) ||\n           (param_2[9] != *(long *)(uVar9 + 0x10))))" ( (parenthesized_expression "((*(byte *)(uVar9 + 4) & 0xf) != (*(byte *)(param_2 + 7) & 0xf) ||\n           (param_2[9] != *(long *)(uVar9 + 0x10)))" ( (binary_expression "(*(byte *)(uVar9 + 4) & 0xf) != (*(byte *)(param_2 + 7) & 0xf) ||\n           (param_2[9] != *(long *)(uVar9 + 0x10))" (binary_expression "(*(byte *)(uVar9 + 4) & 0xf) != (*(byte *)(param_2 + 7) & 0xf)" (parenthesized_expression "(*(byte *)(uVar9 + 4) & 0xf)" ( (binary_expression "*(byte *)(uVar9 + 4) & 0xf" (pointer_expression "*(byte *)(uVar9 + 4)" * (cast_expression "(byte *)(uVar9 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 4)" ( (binary_expression "uVar9 + 4" identifier + number_literal) )))) & number_literal) )) != (parenthesized_expression "(*(byte *)(param_2 + 7) & 0xf)" ( (binary_expression "*(byte *)(param_2 + 7) & 0xf" (pointer_expression "*(byte *)(param_2 + 7)" * (cast_expression "(byte *)(param_2 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 7)" ( (binary_expression "param_2 + 7" identifier + number_literal) )))) & number_literal) ))) || (parenthesized_expression "(param_2[9] != *(long *)(uVar9 + 0x10))" ( (binary_expression "param_2[9] != *(long *)(uVar9 + 0x10)" (subscript_expression "param_2[9]" identifier [ number_literal ]) != (pointer_expression "*(long *)(uVar9 + 0x10)" * (cast_expression "(long *)(uVar9 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 0x10)" ( (binary_expression "uVar9 + 0x10" identifier + number_literal) ))))) ))) )) ))) )) && (parenthesized_expression "((pcVar15 = (char *)*param_2, *pcVar15 == '_' && (pcVar15[1] == 'Z')))" ( (parenthesized_expression "(pcVar15 = (char *)*param_2, *pcVar15 == '_' && (pcVar15[1] == 'Z'))" ( (comma_expression "pcVar15 = (char *)*param_2, *pcVar15 == '_' && (pcVar15[1] == 'Z')" (assignment_expression "pcVar15 = (char *)*param_2" identifier = (cast_expression "(char *)*param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) , (binary_expression "*pcVar15 == '_' && (pcVar15[1] == 'Z')" (binary_expression "*pcVar15 == '_'" (pointer_expression "*pcVar15" * identifier) == (char_literal "'_'" ' character ')) && (parenthesized_expression "(pcVar15[1] == 'Z')" ( (binary_expression "pcVar15[1] == 'Z'" (subscript_expression "pcVar15[1]" identifier [ number_literal ]) == (char_literal "'Z'" ' character ')) )))) )) ))) )) (compound_statement "{\n        local_68 = *(undefined8 *)(uVar9 + 8);\n        local_78 = param_7;\n        local_70 = param_6;\n        if ((*(byte *)((long)param_2 + 0x3a) & 7) != 0) {\nLAB_002c1bd9:\n                    /* WARNING: Subroutine does not return */\n          FUN_001e9890("../../gold/symtab.h",0xa1,"object");\n        }\n        local_58 = (undefined8 *)param_2[2];\n        local_48[0] = param_2[8];\n        local_88 = pcVar15;\n        local_50 = iVar2;\n        local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);\n        FUN_001c3360(local_80,&local_78,&local_80,1);\n        local_88 = (char *)*param_2;\n        local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);\n        FUN_001c3360(local_80,&local_58,&local_80,1);\n      }" { (expression_statement "local_68 = *(undefined8 *)(uVar9 + 8);" (assignment_expression "local_68 = *(undefined8 *)(uVar9 + 8)" identifier = (pointer_expression "*(undefined8 *)(uVar9 + 8)" * (cast_expression "(undefined8 *)(uVar9 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 8)" ( (binary_expression "uVar9 + 8" identifier + number_literal) ))))) ;) (expression_statement "local_78 = param_7;" (assignment_expression "local_78 = param_7" identifier = identifier) ;) (expression_statement "local_70 = param_6;" (assignment_expression "local_70 = param_6" identifier = identifier) ;) (if_statement "if ((*(byte *)((long)param_2 + 0x3a) & 7) != 0) {\nLAB_002c1bd9:\n                    /* WARNING: Subroutine does not return */\n          FUN_001e9890("../../gold/symtab.h",0xa1,"object");\n        }" if (parenthesized_expression "((*(byte *)((long)param_2 + 0x3a) & 7) != 0)" ( (binary_expression "(*(byte *)((long)param_2 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)((long)param_2 + 0x3a) & 7)" ( (binary_expression "*(byte *)((long)param_2 + 0x3a) & 7" (pointer_expression "*(byte *)((long)param_2 + 0x3a)" * (cast_expression "(byte *)((long)param_2 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + 0x3a)" ( (binary_expression "(long)param_2 + 0x3a" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_002c1bd9:\n                    /* WARNING: Subroutine does not return */\n          FUN_001e9890("../../gold/symtab.h",0xa1,"object");\n        }" { (labeled_statement "LAB_002c1bd9:\n                    /* WARNING: Subroutine does not return */\n          FUN_001e9890("../../gold/symtab.h",0xa1,"object");" statement_identifier : comment (expression_statement "FUN_001e9890("../../gold/symtab.h",0xa1,"object");" (call_expression "FUN_001e9890("../../gold/symtab.h",0xa1,"object")" identifier (argument_list "("../../gold/symtab.h",0xa1,"object")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""object"" " string_content ") ))) ;)) })) (expression_statement "local_58 = (undefined8 *)param_2[2];" (assignment_expression "local_58 = (undefined8 *)param_2[2]" identifier = (cast_expression "(undefined8 *)param_2[2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[2]" identifier [ number_literal ]))) ;) (expression_statement "local_48[0] = param_2[8];" (assignment_expression "local_48[0] = param_2[8]" (subscript_expression "local_48[0]" identifier [ number_literal ]) = (subscript_expression "param_2[8]" identifier [ number_literal ])) ;) (expression_statement "local_88 = pcVar15;" (assignment_expression "local_88 = pcVar15" identifier = identifier) ;) (expression_statement "local_50 = iVar2;" (assignment_expression "local_50 = iVar2" identifier = identifier) ;) (expression_statement "local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);" (assignment_expression "local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88)" identifier = (call_expression "FUN_002bf9a0(param_1 + 0x218,&local_88)" identifier (argument_list "(param_1 + 0x218,&local_88)" ( (binary_expression "param_1 + 0x218" identifier + number_literal) , (pointer_expression "&local_88" & identifier) )))) ;) (expression_statement "FUN_001c3360(local_80,&local_78,&local_80,1);" (call_expression "FUN_001c3360(local_80,&local_78,&local_80,1)" identifier (argument_list "(local_80,&local_78,&local_80,1)" ( identifier , (pointer_expression "&local_78" & identifier) , (pointer_expression "&local_80" & identifier) , number_literal ))) ;) (expression_statement "local_88 = (char *)*param_2;" (assignment_expression "local_88 = (char *)*param_2" identifier = (cast_expression "(char *)*param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (expression_statement "local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);" (assignment_expression "local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88)" identifier = (call_expression "FUN_002bf9a0(param_1 + 0x218,&local_88)" identifier (argument_list "(param_1 + 0x218,&local_88)" ( (binary_expression "param_1 + 0x218" identifier + number_literal) , (pointer_expression "&local_88" & identifier) )))) ;) (expression_statement "FUN_001c3360(local_80,&local_58,&local_80,1);" (call_expression "FUN_001c3360(local_80,&local_58,&local_80,1)" identifier (argument_list "(local_80,&local_58,&local_80,1)" ( identifier , (pointer_expression "&local_58" & identifier) , (pointer_expression "&local_80" & identifier) , number_literal ))) ;) })) })) (expression_statement "local_98 = &local_78;" (assignment_expression "local_98 = &local_78" identifier = (pointer_expression "&local_78" & identifier)) ;) (expression_statement "lVar10 = (**(code **)(*param_7 + 0x28))(param_7);" (assignment_expression "lVar10 = (**(code **)(*param_7 + 0x28))(param_7)" identifier = (call_expression "(**(code **)(*param_7 + 0x28))(param_7)" (parenthesized_expression "(**(code **)(*param_7 + 0x28))" ( (pointer_expression "**(code **)(*param_7 + 0x28)" * (pointer_expression "*(code **)(*param_7 + 0x28)" * (cast_expression "(code **)(*param_7 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_7 + 0x28)" ( (binary_expression "*param_7 + 0x28" (pointer_expression "*param_7" * identifier) + number_literal) ))))) )) (argument_list "(param_7)" ( identifier )))) ;) (if_statement "if (lVar10 == 0) {\n      uVar14 = (uint)*(byte *)(*param_3 + 4);\n      uVar8 = uVar14;\n    }\n    else {\n      uVar14 = (uint)*(byte *)(*param_3 + 4);\n      uVar8 = (uint)*(byte *)(param_2 + 7);\n    }" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar14 = (uint)*(byte *)(*param_3 + 4);\n      uVar8 = uVar14;\n    }" { (expression_statement "uVar14 = (uint)*(byte *)(*param_3 + 4);" (assignment_expression "uVar14 = (uint)*(byte *)(*param_3 + 4)" identifier = (binary_expression "(uint)*(byte *)(*param_3 + 4)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(*param_3 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_3 + 4)" ( (binary_expression "*param_3 + 4" (pointer_expression "*param_3" * identifier) + number_literal) ))))) ;) (expression_statement "uVar8 = uVar14;" (assignment_expression "uVar8 = uVar14" identifier = identifier) ;) }) (else_clause "else {\n      uVar14 = (uint)*(byte *)(*param_3 + 4);\n      uVar8 = (uint)*(byte *)(param_2 + 7);\n    }" else (compound_statement "{\n      uVar14 = (uint)*(byte *)(*param_3 + 4);\n      uVar8 = (uint)*(byte *)(param_2 + 7);\n    }" { (expression_statement "uVar14 = (uint)*(byte *)(*param_3 + 4);" (assignment_expression "uVar14 = (uint)*(byte *)(*param_3 + 4)" identifier = (binary_expression "(uint)*(byte *)(*param_3 + 4)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(*param_3 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_3 + 4)" ( (binary_expression "*param_3 + 4" (pointer_expression "*param_3" * identifier) + number_literal) ))))) ;) (expression_statement "uVar8 = (uint)*(byte *)(param_2 + 7);" (assignment_expression "uVar8 = (uint)*(byte *)(param_2 + 7)" identifier = (binary_expression "(uint)*(byte *)(param_2 + 7)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(param_2 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 7)" ( (binary_expression "param_2 + 7" identifier + number_literal) ))))) ;) }))) (expression_statement "uVar7 = FUN_002be580((int)uVar14 >> 4,*(byte *)((long)param_7 + 0x3c) & 1,param_4,param_5);" (assignment_expression "uVar7 = FUN_002be580((int)uVar14 >> 4,*(byte *)((long)param_7 + 0x3c) & 1,param_4,param_5)" identifier = (call_expression "FUN_002be580((int)uVar14 >> 4,*(byte *)((long)param_7 + 0x3c) & 1,param_4,param_5)" identifier (argument_list "((int)uVar14 >> 4,*(byte *)((long)param_7 + 0x3c) & 1,param_4,param_5)" ( (binary_expression "(int)uVar14 >> 4" (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) , (binary_expression "*(byte *)((long)param_7 + 0x3c) & 1" (pointer_expression "*(byte *)((long)param_7 + 0x3c)" * (cast_expression "(byte *)((long)param_7 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_7 + 0x3c)" ( (binary_expression "(long)param_7 + 0x3c" (cast_expression "(long)param_7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) , identifier , identifier )))) ;) (expression_statement "uVar4 = param_2[9];" (assignment_expression "uVar4 = param_2[9]" identifier = (subscript_expression "param_2[9]" identifier [ number_literal ])) ;) (expression_statement "cVar6 = FUN_002be950(param_2,uVar7,uVar8 & 0xf,0,param_7,local_98,&local_58,param_9);" (assignment_expression "cVar6 = FUN_002be950(param_2,uVar7,uVar8 & 0xf,0,param_7,local_98,&local_58,param_9)" identifier = (call_expression "FUN_002be950(param_2,uVar7,uVar8 & 0xf,0,param_7,local_98,&local_58,param_9)" identifier (argument_list "(param_2,uVar7,uVar8 & 0xf,0,param_7,local_98,&local_58,param_9)" ( identifier , identifier , (binary_expression "uVar8 & 0xf" identifier & number_literal) , number_literal , identifier , identifier , (pointer_expression "&local_58" & identifier) , identifier )))) ;) (if_statement "if (cVar6 == '\0') {\n      uVar9 = *param_3;\n      if ((char)local_78 != '\0') {\n        if (uVar4 < *(ulong *)(uVar9 + 0x10)) {\n          param_2[9] = *(ulong *)(uVar9 + 0x10);\n        }\n        if ((ulong)param_2[8] < *(ulong *)(uVar9 + 8)) {\n          param_2[8] = *(ulong *)(uVar9 + 8);\n        }\n      }\n      if ((char)local_58 != '\0') {\n        if (((*(byte *)((long)param_2 + 0x3c) & 1) == 0) ||\n           ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)) {\n          *(byte *)((long)param_2 + 0x3c) =\n               *(byte *)((long)param_2 + 0x3c) & 0xfd |\n               ((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) * '\x02' | 1;\n        }\n      }\n      bVar16 = *(byte *)(uVar9 + 5) & 3;\n      if ((*(byte *)(uVar9 + 5) & 3) != 0) {\n        bVar1 = *(byte *)((long)param_2 + 0x39);\n        if (((bVar1 & 3) == 0) || (bVar16 < (bVar1 & 3))) {\n          *(byte *)((long)param_2 + 0x39) = bVar16 | bVar1 & 0xfc;\n        }\n      }\n    }\n    else {\n      bVar16 = *(byte *)(param_2 + 7);\n      uVar9 = param_2[8];\n      FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7,param_8);\n      if ((char)local_78 != '\0') {\n        if ((ulong)param_2[9] < uVar4) {\n          param_2[9] = uVar4;\n        }\n        if ((ulong)param_2[8] < uVar9) {\n          param_2[8] = uVar9;\n        }\n      }\n      if (((char)local_58 != '\0') &&\n         (((*(byte *)((long)param_2 + 0x3c) & 1) == 0 ||\n          ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)))) {\n        *(byte *)((long)param_2 + 0x3c) =\n             *(byte *)((long)param_2 + 0x3c) & 0xfd | (bVar16 >> 4 == 2) * '\x02' | 1;\n      }\n    }" if (parenthesized_expression "(cVar6 == '\0')" ( (binary_expression "cVar6 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar9 = *param_3;\n      if ((char)local_78 != '\0') {\n        if (uVar4 < *(ulong *)(uVar9 + 0x10)) {\n          param_2[9] = *(ulong *)(uVar9 + 0x10);\n        }\n        if ((ulong)param_2[8] < *(ulong *)(uVar9 + 8)) {\n          param_2[8] = *(ulong *)(uVar9 + 8);\n        }\n      }\n      if ((char)local_58 != '\0') {\n        if (((*(byte *)((long)param_2 + 0x3c) & 1) == 0) ||\n           ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)) {\n          *(byte *)((long)param_2 + 0x3c) =\n               *(byte *)((long)param_2 + 0x3c) & 0xfd |\n               ((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) * '\x02' | 1;\n        }\n      }\n      bVar16 = *(byte *)(uVar9 + 5) & 3;\n      if ((*(byte *)(uVar9 + 5) & 3) != 0) {\n        bVar1 = *(byte *)((long)param_2 + 0x39);\n        if (((bVar1 & 3) == 0) || (bVar16 < (bVar1 & 3))) {\n          *(byte *)((long)param_2 + 0x39) = bVar16 | bVar1 & 0xfc;\n        }\n      }\n    }" { (expression_statement "uVar9 = *param_3;" (assignment_expression "uVar9 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (if_statement "if ((char)local_78 != '\0') {\n        if (uVar4 < *(ulong *)(uVar9 + 0x10)) {\n          param_2[9] = *(ulong *)(uVar9 + 0x10);\n        }\n        if ((ulong)param_2[8] < *(ulong *)(uVar9 + 8)) {\n          param_2[8] = *(ulong *)(uVar9 + 8);\n        }\n      }" if (parenthesized_expression "((char)local_78 != '\0')" ( (binary_expression "(char)local_78 != '\0'" (cast_expression "(char)local_78" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        if (uVar4 < *(ulong *)(uVar9 + 0x10)) {\n          param_2[9] = *(ulong *)(uVar9 + 0x10);\n        }\n        if ((ulong)param_2[8] < *(ulong *)(uVar9 + 8)) {\n          param_2[8] = *(ulong *)(uVar9 + 8);\n        }\n      }" { (if_statement "if (uVar4 < *(ulong *)(uVar9 + 0x10)) {\n          param_2[9] = *(ulong *)(uVar9 + 0x10);\n        }" if (parenthesized_expression "(uVar4 < *(ulong *)(uVar9 + 0x10))" ( (binary_expression "uVar4 < *(ulong *)(uVar9 + 0x10)" identifier < (pointer_expression "*(ulong *)(uVar9 + 0x10)" * (cast_expression "(ulong *)(uVar9 + 0x10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 0x10)" ( (binary_expression "uVar9 + 0x10" identifier + number_literal) ))))) )) (compound_statement "{\n          param_2[9] = *(ulong *)(uVar9 + 0x10);\n        }" { (expression_statement "param_2[9] = *(ulong *)(uVar9 + 0x10);" (assignment_expression "param_2[9] = *(ulong *)(uVar9 + 0x10)" (subscript_expression "param_2[9]" identifier [ number_literal ]) = (pointer_expression "*(ulong *)(uVar9 + 0x10)" * (cast_expression "(ulong *)(uVar9 + 0x10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 0x10)" ( (binary_expression "uVar9 + 0x10" identifier + number_literal) ))))) ;) })) (if_statement "if ((ulong)param_2[8] < *(ulong *)(uVar9 + 8)) {\n          param_2[8] = *(ulong *)(uVar9 + 8);\n        }" if (parenthesized_expression "((ulong)param_2[8] < *(ulong *)(uVar9 + 8))" ( (binary_expression "(ulong)param_2[8] < *(ulong *)(uVar9 + 8)" (cast_expression "(ulong)param_2[8]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "param_2[8]" identifier [ number_literal ])) < (pointer_expression "*(ulong *)(uVar9 + 8)" * (cast_expression "(ulong *)(uVar9 + 8)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 8)" ( (binary_expression "uVar9 + 8" identifier + number_literal) ))))) )) (compound_statement "{\n          param_2[8] = *(ulong *)(uVar9 + 8);\n        }" { (expression_statement "param_2[8] = *(ulong *)(uVar9 + 8);" (assignment_expression "param_2[8] = *(ulong *)(uVar9 + 8)" (subscript_expression "param_2[8]" identifier [ number_literal ]) = (pointer_expression "*(ulong *)(uVar9 + 8)" * (cast_expression "(ulong *)(uVar9 + 8)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 8)" ( (binary_expression "uVar9 + 8" identifier + number_literal) ))))) ;) })) })) (if_statement "if ((char)local_58 != '\0') {\n        if (((*(byte *)((long)param_2 + 0x3c) & 1) == 0) ||\n           ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)) {\n          *(byte *)((long)param_2 + 0x3c) =\n               *(byte *)((long)param_2 + 0x3c) & 0xfd |\n               ((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) * '\x02' | 1;\n        }\n      }" if (parenthesized_expression "((char)local_58 != '\0')" ( (binary_expression "(char)local_58 != '\0'" (cast_expression "(char)local_58" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        if (((*(byte *)((long)param_2 + 0x3c) & 1) == 0) ||\n           ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)) {\n          *(byte *)((long)param_2 + 0x3c) =\n               *(byte *)((long)param_2 + 0x3c) & 0xfd |\n               ((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) * '\x02' | 1;\n        }\n      }" { (if_statement "if (((*(byte *)((long)param_2 + 0x3c) & 1) == 0) ||\n           ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)) {\n          *(byte *)((long)param_2 + 0x3c) =\n               *(byte *)((long)param_2 + 0x3c) & 0xfd |\n               ((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) * '\x02' | 1;\n        }" if (parenthesized_expression "(((*(byte *)((long)param_2 + 0x3c) & 1) == 0) ||\n           ((*(byte *)((long)param_2 + 0x3c) & 2) != 0))" ( (binary_expression "((*(byte *)((long)param_2 + 0x3c) & 1) == 0) ||\n           ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)" (parenthesized_expression "((*(byte *)((long)param_2 + 0x3c) & 1) == 0)" ( (binary_expression "(*(byte *)((long)param_2 + 0x3c) & 1) == 0" (parenthesized_expression "(*(byte *)((long)param_2 + 0x3c) & 1)" ( (binary_expression "*(byte *)((long)param_2 + 0x3c) & 1" (pointer_expression "*(byte *)((long)param_2 + 0x3c)" * (cast_expression "(byte *)((long)param_2 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + 0x3c)" ( (binary_expression "(long)param_2 + 0x3c" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) || (parenthesized_expression "((*(byte *)((long)param_2 + 0x3c) & 2) != 0)" ( (binary_expression "(*(byte *)((long)param_2 + 0x3c) & 2) != 0" (parenthesized_expression "(*(byte *)((long)param_2 + 0x3c) & 2)" ( (binary_expression "*(byte *)((long)param_2 + 0x3c) & 2" (pointer_expression "*(byte *)((long)param_2 + 0x3c)" * (cast_expression "(byte *)((long)param_2 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + 0x3c)" ( (binary_expression "(long)param_2 + 0x3c" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n          *(byte *)((long)param_2 + 0x3c) =\n               *(byte *)((long)param_2 + 0x3c) & 0xfd |\n               ((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) * '\x02' | 1;\n        }" { (expression_statement "*(byte *)((long)param_2 + 0x3c) =\n               *(byte *)((long)param_2 + 0x3c) & 0xfd |\n               ((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) * '\x02' | 1;" (assignment_expression "*(byte *)((long)param_2 + 0x3c) =\n               *(byte *)((long)param_2 + 0x3c) & 0xfd |\n               ((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) * '\x02' | 1" (pointer_expression "*(byte *)((long)param_2 + 0x3c)" * (cast_expression "(byte *)((long)param_2 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + 0x3c)" ( (binary_expression "(long)param_2 + 0x3c" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((long)param_2 + 0x3c) & 0xfd |\n               ((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) * '\x02' | 1" (binary_expression "*(byte *)((long)param_2 + 0x3c) & 0xfd |\n               ((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) * '\x02'" (binary_expression "*(byte *)((long)param_2 + 0x3c) & 0xfd" (pointer_expression "*(byte *)((long)param_2 + 0x3c)" * (cast_expression "(byte *)((long)param_2 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + 0x3c)" ( (binary_expression "(long)param_2 + 0x3c" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) | (binary_expression "((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) * '\x02'" (parenthesized_expression "((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2)" ( (binary_expression "(int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2" (binary_expression "(int)(uint)*(byte *)(uVar9 + 4) >> 4" (binary_expression "(int)(uint)*(byte *)(uVar9 + 4)" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)(uVar9 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 4)" ( (binary_expression "uVar9 + 4" identifier + number_literal) )))) >> number_literal) == number_literal) )) * (char_literal "'\x02'" ' escape_sequence '))) | number_literal)) ;) })) })) (expression_statement "bVar16 = *(byte *)(uVar9 + 5) & 3;" (assignment_expression "bVar16 = *(byte *)(uVar9 + 5) & 3" identifier = (binary_expression "*(byte *)(uVar9 + 5) & 3" (pointer_expression "*(byte *)(uVar9 + 5)" * (cast_expression "(byte *)(uVar9 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 5)" ( (binary_expression "uVar9 + 5" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if ((*(byte *)(uVar9 + 5) & 3) != 0) {\n        bVar1 = *(byte *)((long)param_2 + 0x39);\n        if (((bVar1 & 3) == 0) || (bVar16 < (bVar1 & 3))) {\n          *(byte *)((long)param_2 + 0x39) = bVar16 | bVar1 & 0xfc;\n        }\n      }" if (parenthesized_expression "((*(byte *)(uVar9 + 5) & 3) != 0)" ( (binary_expression "(*(byte *)(uVar9 + 5) & 3) != 0" (parenthesized_expression "(*(byte *)(uVar9 + 5) & 3)" ( (binary_expression "*(byte *)(uVar9 + 5) & 3" (pointer_expression "*(byte *)(uVar9 + 5)" * (cast_expression "(byte *)(uVar9 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 5)" ( (binary_expression "uVar9 + 5" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n        bVar1 = *(byte *)((long)param_2 + 0x39);\n        if (((bVar1 & 3) == 0) || (bVar16 < (bVar1 & 3))) {\n          *(byte *)((long)param_2 + 0x39) = bVar16 | bVar1 & 0xfc;\n        }\n      }" { (expression_statement "bVar1 = *(byte *)((long)param_2 + 0x39);" (assignment_expression "bVar1 = *(byte *)((long)param_2 + 0x39)" identifier = (pointer_expression "*(byte *)((long)param_2 + 0x39)" * (cast_expression "(byte *)((long)param_2 + 0x39)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + 0x39)" ( (binary_expression "(long)param_2 + 0x39" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (if_statement "if (((bVar1 & 3) == 0) || (bVar16 < (bVar1 & 3))) {\n          *(byte *)((long)param_2 + 0x39) = bVar16 | bVar1 & 0xfc;\n        }" if (parenthesized_expression "(((bVar1 & 3) == 0) || (bVar16 < (bVar1 & 3)))" ( (binary_expression "((bVar1 & 3) == 0) || (bVar16 < (bVar1 & 3))" (parenthesized_expression "((bVar1 & 3) == 0)" ( (binary_expression "(bVar1 & 3) == 0" (parenthesized_expression "(bVar1 & 3)" ( (binary_expression "bVar1 & 3" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(bVar16 < (bVar1 & 3))" ( (binary_expression "bVar16 < (bVar1 & 3)" identifier < (parenthesized_expression "(bVar1 & 3)" ( (binary_expression "bVar1 & 3" identifier & number_literal) ))) ))) )) (compound_statement "{\n          *(byte *)((long)param_2 + 0x39) = bVar16 | bVar1 & 0xfc;\n        }" { (expression_statement "*(byte *)((long)param_2 + 0x39) = bVar16 | bVar1 & 0xfc;" (assignment_expression "*(byte *)((long)param_2 + 0x39) = bVar16 | bVar1 & 0xfc" (pointer_expression "*(byte *)((long)param_2 + 0x39)" * (cast_expression "(byte *)((long)param_2 + 0x39)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + 0x39)" ( (binary_expression "(long)param_2 + 0x39" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (binary_expression "bVar16 | bVar1 & 0xfc" identifier | (binary_expression "bVar1 & 0xfc" identifier & number_literal))) ;) })) })) }) (else_clause "else {\n      bVar16 = *(byte *)(param_2 + 7);\n      uVar9 = param_2[8];\n      FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7,param_8);\n      if ((char)local_78 != '\0') {\n        if ((ulong)param_2[9] < uVar4) {\n          param_2[9] = uVar4;\n        }\n        if ((ulong)param_2[8] < uVar9) {\n          param_2[8] = uVar9;\n        }\n      }\n      if (((char)local_58 != '\0') &&\n         (((*(byte *)((long)param_2 + 0x3c) & 1) == 0 ||\n          ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)))) {\n        *(byte *)((long)param_2 + 0x3c) =\n             *(byte *)((long)param_2 + 0x3c) & 0xfd | (bVar16 >> 4 == 2) * '\x02' | 1;\n      }\n    }" else (compound_statement "{\n      bVar16 = *(byte *)(param_2 + 7);\n      uVar9 = param_2[8];\n      FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7,param_8);\n      if ((char)local_78 != '\0') {\n        if ((ulong)param_2[9] < uVar4) {\n          param_2[9] = uVar4;\n        }\n        if ((ulong)param_2[8] < uVar9) {\n          param_2[8] = uVar9;\n        }\n      }\n      if (((char)local_58 != '\0') &&\n         (((*(byte *)((long)param_2 + 0x3c) & 1) == 0 ||\n          ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)))) {\n        *(byte *)((long)param_2 + 0x3c) =\n             *(byte *)((long)param_2 + 0x3c) & 0xfd | (bVar16 >> 4 == 2) * '\x02' | 1;\n      }\n    }" { (expression_statement "bVar16 = *(byte *)(param_2 + 7);" (assignment_expression "bVar16 = *(byte *)(param_2 + 7)" identifier = (pointer_expression "*(byte *)(param_2 + 7)" * (cast_expression "(byte *)(param_2 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 7)" ( (binary_expression "param_2 + 7" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = param_2[8];" (assignment_expression "uVar9 = param_2[8]" identifier = (subscript_expression "param_2[8]" identifier [ number_literal ])) ;) (expression_statement "FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7,param_8);" (call_expression "FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7,param_8)" identifier (argument_list "(param_1,param_2,param_3,param_4,param_5,param_7,param_8)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (if_statement "if ((char)local_78 != '\0') {\n        if ((ulong)param_2[9] < uVar4) {\n          param_2[9] = uVar4;\n        }\n        if ((ulong)param_2[8] < uVar9) {\n          param_2[8] = uVar9;\n        }\n      }" if (parenthesized_expression "((char)local_78 != '\0')" ( (binary_expression "(char)local_78 != '\0'" (cast_expression "(char)local_78" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        if ((ulong)param_2[9] < uVar4) {\n          param_2[9] = uVar4;\n        }\n        if ((ulong)param_2[8] < uVar9) {\n          param_2[8] = uVar9;\n        }\n      }" { (if_statement "if ((ulong)param_2[9] < uVar4) {\n          param_2[9] = uVar4;\n        }" if (parenthesized_expression "((ulong)param_2[9] < uVar4)" ( (binary_expression "(ulong)param_2[9] < uVar4" (cast_expression "(ulong)param_2[9]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "param_2[9]" identifier [ number_literal ])) < identifier) )) (compound_statement "{\n          param_2[9] = uVar4;\n        }" { (expression_statement "param_2[9] = uVar4;" (assignment_expression "param_2[9] = uVar4" (subscript_expression "param_2[9]" identifier [ number_literal ]) = identifier) ;) })) (if_statement "if ((ulong)param_2[8] < uVar9) {\n          param_2[8] = uVar9;\n        }" if (parenthesized_expression "((ulong)param_2[8] < uVar9)" ( (binary_expression "(ulong)param_2[8] < uVar9" (cast_expression "(ulong)param_2[8]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "param_2[8]" identifier [ number_literal ])) < identifier) )) (compound_statement "{\n          param_2[8] = uVar9;\n        }" { (expression_statement "param_2[8] = uVar9;" (assignment_expression "param_2[8] = uVar9" (subscript_expression "param_2[8]" identifier [ number_literal ]) = identifier) ;) })) })) (if_statement "if (((char)local_58 != '\0') &&\n         (((*(byte *)((long)param_2 + 0x3c) & 1) == 0 ||\n          ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)))) {\n        *(byte *)((long)param_2 + 0x3c) =\n             *(byte *)((long)param_2 + 0x3c) & 0xfd | (bVar16 >> 4 == 2) * '\x02' | 1;\n      }" if (parenthesized_expression "(((char)local_58 != '\0') &&\n         (((*(byte *)((long)param_2 + 0x3c) & 1) == 0 ||\n          ((*(byte *)((long)param_2 + 0x3c) & 2) != 0))))" ( (binary_expression "((char)local_58 != '\0') &&\n         (((*(byte *)((long)param_2 + 0x3c) & 1) == 0 ||\n          ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)))" (parenthesized_expression "((char)local_58 != '\0')" ( (binary_expression "(char)local_58 != '\0'" (cast_expression "(char)local_58" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(((*(byte *)((long)param_2 + 0x3c) & 1) == 0 ||\n          ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)))" ( (parenthesized_expression "((*(byte *)((long)param_2 + 0x3c) & 1) == 0 ||\n          ((*(byte *)((long)param_2 + 0x3c) & 2) != 0))" ( (binary_expression "(*(byte *)((long)param_2 + 0x3c) & 1) == 0 ||\n          ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)" (binary_expression "(*(byte *)((long)param_2 + 0x3c) & 1) == 0" (parenthesized_expression "(*(byte *)((long)param_2 + 0x3c) & 1)" ( (binary_expression "*(byte *)((long)param_2 + 0x3c) & 1" (pointer_expression "*(byte *)((long)param_2 + 0x3c)" * (cast_expression "(byte *)((long)param_2 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + 0x3c)" ( (binary_expression "(long)param_2 + 0x3c" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) || (parenthesized_expression "((*(byte *)((long)param_2 + 0x3c) & 2) != 0)" ( (binary_expression "(*(byte *)((long)param_2 + 0x3c) & 2) != 0" (parenthesized_expression "(*(byte *)((long)param_2 + 0x3c) & 2)" ( (binary_expression "*(byte *)((long)param_2 + 0x3c) & 2" (pointer_expression "*(byte *)((long)param_2 + 0x3c)" * (cast_expression "(byte *)((long)param_2 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + 0x3c)" ( (binary_expression "(long)param_2 + 0x3c" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) ))) )) ))) )) (compound_statement "{\n        *(byte *)((long)param_2 + 0x3c) =\n             *(byte *)((long)param_2 + 0x3c) & 0xfd | (bVar16 >> 4 == 2) * '\x02' | 1;\n      }" { (expression_statement "*(byte *)((long)param_2 + 0x3c) =\n             *(byte *)((long)param_2 + 0x3c) & 0xfd | (bVar16 >> 4 == 2) * '\x02' | 1;" (assignment_expression "*(byte *)((long)param_2 + 0x3c) =\n             *(byte *)((long)param_2 + 0x3c) & 0xfd | (bVar16 >> 4 == 2) * '\x02' | 1" (pointer_expression "*(byte *)((long)param_2 + 0x3c)" * (cast_expression "(byte *)((long)param_2 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + 0x3c)" ( (binary_expression "(long)param_2 + 0x3c" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((long)param_2 + 0x3c) & 0xfd | (bVar16 >> 4 == 2) * '\x02' | 1" (binary_expression "*(byte *)((long)param_2 + 0x3c) & 0xfd | (bVar16 >> 4 == 2) * '\x02'" (binary_expression "*(byte *)((long)param_2 + 0x3c) & 0xfd" (pointer_expression "*(byte *)((long)param_2 + 0x3c)" * (cast_expression "(byte *)((long)param_2 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + 0x3c)" ( (binary_expression "(long)param_2 + 0x3c" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) | (binary_expression "(bVar16 >> 4 == 2) * '\x02'" (parenthesized_expression "(bVar16 >> 4 == 2)" ( (binary_expression "bVar16 >> 4 == 2" (binary_expression "bVar16 >> 4" identifier >> number_literal) == number_literal) )) * (char_literal "'\x02'" ' escape_sequence '))) | number_literal)) ;) })) }))) (expression_statement "bVar16 = *(byte *)((long)param_2 + 0x3a);" (assignment_expression "bVar16 = *(byte *)((long)param_2 + 0x3a)" identifier = (pointer_expression "*(byte *)((long)param_2 + 0x3a)" * (cast_expression "(byte *)((long)param_2 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + 0x3a)" ( (binary_expression "(long)param_2 + 0x3a" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar9 = (ulong)bVar16;" (assignment_expression "uVar9 = (ulong)bVar16" identifier = (cast_expression "(ulong)bVar16" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if ((bVar16 & 7) == 0) {\n      bVar1 = *(byte *)(param_2[2] + 0x3c);\n      if ((((bVar1 & 1) != 0) && ((char)bVar16 < '\0')) &&\n         ((*(byte *)((long)param_2 + 0x3c) & 2) == 0)) {\n        *(byte *)(param_2[2] + 0x3c) = bVar1 | 2;\n      }\n    }" if (parenthesized_expression "((bVar16 & 7) == 0)" ( (binary_expression "(bVar16 & 7) == 0" (parenthesized_expression "(bVar16 & 7)" ( (binary_expression "bVar16 & 7" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      bVar1 = *(byte *)(param_2[2] + 0x3c);\n      if ((((bVar1 & 1) != 0) && ((char)bVar16 < '\0')) &&\n         ((*(byte *)((long)param_2 + 0x3c) & 2) == 0)) {\n        *(byte *)(param_2[2] + 0x3c) = bVar1 | 2;\n      }\n    }" { (expression_statement "bVar1 = *(byte *)(param_2[2] + 0x3c);" (assignment_expression "bVar1 = *(byte *)(param_2[2] + 0x3c)" identifier = (pointer_expression "*(byte *)(param_2[2] + 0x3c)" * (cast_expression "(byte *)(param_2[2] + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[2] + 0x3c)" ( (binary_expression "param_2[2] + 0x3c" (subscript_expression "param_2[2]" identifier [ number_literal ]) + number_literal) ))))) ;) (if_statement "if ((((bVar1 & 1) != 0) && ((char)bVar16 < '\0')) &&\n         ((*(byte *)((long)param_2 + 0x3c) & 2) == 0)) {\n        *(byte *)(param_2[2] + 0x3c) = bVar1 | 2;\n      }" if (parenthesized_expression "((((bVar1 & 1) != 0) && ((char)bVar16 < '\0')) &&\n         ((*(byte *)((long)param_2 + 0x3c) & 2) == 0))" ( (binary_expression "(((bVar1 & 1) != 0) && ((char)bVar16 < '\0')) &&\n         ((*(byte *)((long)param_2 + 0x3c) & 2) == 0)" (parenthesized_expression "(((bVar1 & 1) != 0) && ((char)bVar16 < '\0'))" ( (binary_expression "((bVar1 & 1) != 0) && ((char)bVar16 < '\0')" (parenthesized_expression "((bVar1 & 1) != 0)" ( (binary_expression "(bVar1 & 1) != 0" (parenthesized_expression "(bVar1 & 1)" ( (binary_expression "bVar1 & 1" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "((char)bVar16 < '\0')" ( (binary_expression "(char)bVar16 < '\0'" (cast_expression "(char)bVar16" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "((*(byte *)((long)param_2 + 0x3c) & 2) == 0)" ( (binary_expression "(*(byte *)((long)param_2 + 0x3c) & 2) == 0" (parenthesized_expression "(*(byte *)((long)param_2 + 0x3c) & 2)" ( (binary_expression "*(byte *)((long)param_2 + 0x3c) & 2" (pointer_expression "*(byte *)((long)param_2 + 0x3c)" * (cast_expression "(byte *)((long)param_2 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + 0x3c)" ( (binary_expression "(long)param_2 + 0x3c" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n        *(byte *)(param_2[2] + 0x3c) = bVar1 | 2;\n      }" { (expression_statement "*(byte *)(param_2[2] + 0x3c) = bVar1 | 2;" (assignment_expression "*(byte *)(param_2[2] + 0x3c) = bVar1 | 2" (pointer_expression "*(byte *)(param_2[2] + 0x3c)" * (cast_expression "(byte *)(param_2[2] + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[2] + 0x3c)" ( (binary_expression "param_2[2] + 0x3c" (subscript_expression "param_2[2]" identifier [ number_literal ]) + number_literal) )))) = (binary_expression "bVar1 | 2" identifier | number_literal)) ;) })) })) (if_statement "if ((char)local_78 != '\0') {\n      uVar9 = *(ulong *)(PTR_DAT_004ba7c8 + 0x10);\n      if (uVar9 == 0) {\nLAB_002c17cc:\n                    /* WARNING: Subroutine does not return */\n        FUN_001e9890("../../gold/parameters.h",0x5c,"options");\n      }\n      if (*(char *)(uVar9 + 0x6de1) != '\0') {\n        pcVar15 = "common of \'%s\' overriding smaller common";\n        uVar9 = *(ulong *)(*param_3 + 0x10);\n        if ((uVar9 > uVar4 || uVar4 == uVar9) &&\n           (pcVar15 = "common of \'%s\' overidden by larger common", uVar9 <= uVar4)) {\n          pcVar15 = "multiple common of \'%s\'";\n        }\n        uVar11 = gettext(pcVar15);\n        uVar9 = FUN_002be7a0(0,uVar11,param_2,0,param_7);\n      }\n    }" if (parenthesized_expression "((char)local_78 != '\0')" ( (binary_expression "(char)local_78 != '\0'" (cast_expression "(char)local_78" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar9 = *(ulong *)(PTR_DAT_004ba7c8 + 0x10);\n      if (uVar9 == 0) {\nLAB_002c17cc:\n                    /* WARNING: Subroutine does not return */\n        FUN_001e9890("../../gold/parameters.h",0x5c,"options");\n      }\n      if (*(char *)(uVar9 + 0x6de1) != '\0') {\n        pcVar15 = "common of \'%s\' overriding smaller common";\n        uVar9 = *(ulong *)(*param_3 + 0x10);\n        if ((uVar9 > uVar4 || uVar4 == uVar9) &&\n           (pcVar15 = "common of \'%s\' overidden by larger common", uVar9 <= uVar4)) {\n          pcVar15 = "multiple common of \'%s\'";\n        }\n        uVar11 = gettext(pcVar15);\n        uVar9 = FUN_002be7a0(0,uVar11,param_2,0,param_7);\n      }\n    }" { (expression_statement "uVar9 = *(ulong *)(PTR_DAT_004ba7c8 + 0x10);" (assignment_expression "uVar9 = *(ulong *)(PTR_DAT_004ba7c8 + 0x10)" identifier = (pointer_expression "*(ulong *)(PTR_DAT_004ba7c8 + 0x10)" * (cast_expression "(ulong *)(PTR_DAT_004ba7c8 + 0x10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_004ba7c8 + 0x10)" ( (binary_expression "PTR_DAT_004ba7c8 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (uVar9 == 0) {\nLAB_002c17cc:\n                    /* WARNING: Subroutine does not return */\n        FUN_001e9890("../../gold/parameters.h",0x5c,"options");\n      }" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_002c17cc:\n                    /* WARNING: Subroutine does not return */\n        FUN_001e9890("../../gold/parameters.h",0x5c,"options");\n      }" { (labeled_statement "LAB_002c17cc:\n                    /* WARNING: Subroutine does not return */\n        FUN_001e9890("../../gold/parameters.h",0x5c,"options");" statement_identifier : comment (expression_statement "FUN_001e9890("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_001e9890("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;)) })) (if_statement "if (*(char *)(uVar9 + 0x6de1) != '\0') {\n        pcVar15 = "common of \'%s\' overriding smaller common";\n        uVar9 = *(ulong *)(*param_3 + 0x10);\n        if ((uVar9 > uVar4 || uVar4 == uVar9) &&\n           (pcVar15 = "common of \'%s\' overidden by larger common", uVar9 <= uVar4)) {\n          pcVar15 = "multiple common of \'%s\'";\n        }\n        uVar11 = gettext(pcVar15);\n        uVar9 = FUN_002be7a0(0,uVar11,param_2,0,param_7);\n      }" if (parenthesized_expression "(*(char *)(uVar9 + 0x6de1) != '\0')" ( (binary_expression "*(char *)(uVar9 + 0x6de1) != '\0'" (pointer_expression "*(char *)(uVar9 + 0x6de1)" * (cast_expression "(char *)(uVar9 + 0x6de1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 0x6de1)" ( (binary_expression "uVar9 + 0x6de1" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        pcVar15 = "common of \'%s\' overriding smaller common";\n        uVar9 = *(ulong *)(*param_3 + 0x10);\n        if ((uVar9 > uVar4 || uVar4 == uVar9) &&\n           (pcVar15 = "common of \'%s\' overidden by larger common", uVar9 <= uVar4)) {\n          pcVar15 = "multiple common of \'%s\'";\n        }\n        uVar11 = gettext(pcVar15);\n        uVar9 = FUN_002be7a0(0,uVar11,param_2,0,param_7);\n      }" { (expression_statement "pcVar15 = "common of \'%s\' overriding smaller common";" (assignment_expression "pcVar15 = "common of \'%s\' overriding smaller common"" identifier = (string_literal ""common of \'%s\' overriding smaller common"" " string_content escape_sequence string_content escape_sequence string_content ")) ;) (expression_statement "uVar9 = *(ulong *)(*param_3 + 0x10);" (assignment_expression "uVar9 = *(ulong *)(*param_3 + 0x10)" identifier = (pointer_expression "*(ulong *)(*param_3 + 0x10)" * (cast_expression "(ulong *)(*param_3 + 0x10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_3 + 0x10)" ( (binary_expression "*param_3 + 0x10" (pointer_expression "*param_3" * identifier) + number_literal) ))))) ;) (if_statement "if ((uVar9 > uVar4 || uVar4 == uVar9) &&\n           (pcVar15 = "common of \'%s\' overidden by larger common", uVar9 <= uVar4)) {\n          pcVar15 = "multiple common of \'%s\'";\n        }" if (parenthesized_expression "((uVar9 > uVar4 || uVar4 == uVar9) &&\n           (pcVar15 = "common of \'%s\' overidden by larger common", uVar9 <= uVar4))" ( (binary_expression "(uVar9 > uVar4 || uVar4 == uVar9) &&\n           (pcVar15 = "common of \'%s\' overidden by larger common", uVar9 <= uVar4)" (parenthesized_expression "(uVar9 > uVar4 || uVar4 == uVar9)" ( (binary_expression "uVar9 > uVar4 || uVar4 == uVar9" (binary_expression "uVar9 > uVar4" identifier > identifier) || (binary_expression "uVar4 == uVar9" identifier == identifier)) )) && (parenthesized_expression "(pcVar15 = "common of \'%s\' overidden by larger common", uVar9 <= uVar4)" ( (comma_expression "pcVar15 = "common of \'%s\' overidden by larger common", uVar9 <= uVar4" (assignment_expression "pcVar15 = "common of \'%s\' overidden by larger common"" identifier = (string_literal ""common of \'%s\' overidden by larger common"" " string_content escape_sequence string_content escape_sequence string_content ")) , (binary_expression "uVar9 <= uVar4" identifier <= identifier)) ))) )) (compound_statement "{\n          pcVar15 = "multiple common of \'%s\'";\n        }" { (expression_statement "pcVar15 = "multiple common of \'%s\'";" (assignment_expression "pcVar15 = "multiple common of \'%s\'"" identifier = (string_literal ""multiple common of \'%s\'"" " string_content escape_sequence string_content escape_sequence ")) ;) })) (expression_statement "uVar11 = gettext(pcVar15);" (assignment_expression "uVar11 = gettext(pcVar15)" identifier = (call_expression "gettext(pcVar15)" identifier (argument_list "(pcVar15)" ( identifier )))) ;) (expression_statement "uVar9 = FUN_002be7a0(0,uVar11,param_2,0,param_7);" (assignment_expression "uVar9 = FUN_002be7a0(0,uVar11,param_2,0,param_7)" identifier = (call_expression "FUN_002be7a0(0,uVar11,param_2,0,param_7)" identifier (argument_list "(0,uVar11,param_2,0,param_7)" ( number_literal , identifier , identifier , number_literal , identifier )))) ;) })) })) })) (return_statement "return uVar9;" return identifier ;) })))
(translation_unit "/* WARNING: Enum "DT": Some values do not have unique names */\n/* WARNING: Enum "ELFOSABI": Some values do not have unique names */\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, false>\n   DWARF original prototype: void resolve<64,_false>(Symbol_table * this, Sized_symbol<64> * to,\n   Sym<64,_false> * 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,_false>\n          (Symbol_table *this,Sized_symbol<64> *to,Sym<64,_false> *sym,uint st_shndx,\n          bool is_ordinary,uint orig_st_shndx,Object *object,char *version,bool is_default_version)\n\n{\n  undefined1 *puVar1;\n  byte bVar2;\n  Target *pTVar3;\n  Sym_data<64> *pSVar4;\n  ulong uVar5;\n  Output_segment *pOVar6;\n  ulong uVar7;\n  uint64_t uVar8;\n  STT SVar9;\n  anon_union_8_3_b0f6f408_for_u1_ aVar10;\n  bool bVar11;\n  int iVar12;\n  uint uVar13;\n  long lVar14;\n  undefined4 extraout_var_00;\n  General_options *pGVar15;\n  undefined4 extraout_var_01;\n  char *pcVar16;\n  undefined4 extraout_var_02;\n  STT SVar17;\n  byte bVar18;\n  bool *local_98;\n  char *local_88;\n  __node_gen_type __node_gen;\n  bool adjust_common_sizes;\n  uint local_70;\n  Elf_Addr local_68;\n  bool adjust_dyndef;\n  uint local_50;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  local_48;\n  undefined4 extraout_var;\n  \n  if (((to->super_Symbol).field_0x3a & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");\n  }\n  uVar13 = (to->super_Symbol).u2_.shndx;\n  bVar18 = (byte)(to->super_Symbol).field_0x3b >> 5 & 1;\n  if (object == (to->super_Symbol).u1_.object) {\n    if (bVar18 == 0) {\n      bVar11 = Symbol::is_common_shndx(uVar13);\n      if ((((bVar11) || (!is_ordinary)) && (st_shndx == 0xfff1)) && (!is_ordinary))\n      goto LAB_002c14d0;\n    }\n    else if (((uVar13 != 0) && (is_ordinary)) && (st_shndx == uVar13)) goto LAB_002c1838;\n  }\n  else if (((!is_ordinary) && (st_shndx == 0xfff1)) && (bVar18 == 0)) {\nLAB_002c14d0:\n    if (uVar13 == 0xfff1) {\nLAB_002c1838:\n      if (sym->p_->st_value == to->value_) {\n        return;\n      }\n    }\n  }\n  pTVar3 = parameters->target_;\n  if (pTVar3 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n  }\n  if ((pTVar3->pti_->has_resolve == false) ||\n     (iVar12 = (*pTVar3->_vptr_Target[0x2b])(pTVar3,to,sym,object), (char)iVar12 == '\0')) {\n    if ((object->field_0x3c & 1) == 0) {\n      if (((sym->p_->st_info & 0xf) == 5) &&\n         ((is_ordinary || (bVar11 = Symbol::is_common_shndx(st_shndx), !bVar11)))) {\n        if (((to->super_Symbol).field_0x3a & 7) == 0) {\n          uVar8 = ((to->super_Symbol).u1_.output_data)->address_;\n          Symbol::demangled_name((string *)&adjust_dyndef,&to->super_Symbol);\n          aVar10 = _adjust_dyndef;\n          pcVar16 = (char *)gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");\n                    /* try { // try from 002c1a10 to 002c1a14 has its CatchHandler @ 002c1bf1 */\n          gold_warning(pcVar16,aVar10.object,uVar8);\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)_adjust_dyndef == &local_48) {\n            return;\n          }\n          operator_delete(_adjust_dyndef);\n          return;\n        }\n        goto LAB_002c1bd9;\n      }\n      puVar1 = &(to->super_Symbol).field_0x3a;\n      *puVar1 = *puVar1 | 0x80;\n      iVar12 = (*object->_vptr_Object[5])(object);\n      lVar14 = CONCAT44(extraout_var,iVar12);\n    }\n    else {\n      if ((st_shndx == 0) && (((byte)(to->super_Symbol).field_0x39 & 3) - 1 < 2)) {\n        return;\n      }\n      puVar1 = &(to->super_Symbol).field_0x3b;\n      *puVar1 = *puVar1 | 1;\n      iVar12 = (*object->_vptr_Object[5])(object);\n      lVar14 = CONCAT44(extraout_var_02,iVar12);\n    }\n    if ((lVar14 == 0) && ((object->field_0x3c & 1) == 0)) {\n      puVar1 = &(to->super_Symbol).field_0x3b;\n      *puVar1 = *puVar1 | 0x40;\n    }\n    if ((((to->super_Symbol).field_0x3a & 7) == 0) &&\n       (iVar12 = (*((to->super_Symbol).u1_.object)->_vptr_Object[5])(),\n       CONCAT44(extraout_var_00,iVar12) != 0)) {\n      pGVar15 = parameters->options_;\n      if (pGVar15 == (General_options *)0x0) goto LAB_002c17cc;\n      if (pGVar15->plugins_->in_replacement_phase_ != false) {\n        if ((((((to->super_Symbol).field_0x3a & 7) != 0) ||\n             (((to->super_Symbol).field_0x3b & 0x20) != 0)) ||\n            (bVar11 = Symbol::is_common_shndx((to->super_Symbol).u2_.shndx), !bVar11)) ||\n           ((is_ordinary || (bVar11 = Symbol::is_common_shndx(st_shndx), !bVar11)))) {\n          override<64,_false>(this,to,sym,st_shndx,is_ordinary,object,version);\n          return;\n        }\n        uVar5 = to->symsize_;\n        uVar7 = to->value_;\n        override<64,_false>(this,to,sym,st_shndx,false,object,version);\n        if (to->symsize_ < uVar5) {\n          to->symsize_ = uVar5;\n        }\n        if (uVar7 <= to->value_) {\n          return;\n        }\n        to->value_ = uVar7;\n        return;\n      }\n    }\n    else {\n      pGVar15 = parameters->options_;\n      if (pGVar15 == (General_options *)0x0) goto LAB_002c17cc;\n    }\n    if ((pGVar15->detect_odr_violations_).value != false) {\n      pSVar4 = sym->p_;\n      if ((((((int)(uint)pSVar4->st_info >> 4 == 2) ||\n            ((byte)(to->super_Symbol).field_0x38 >> 4 == 2)) &&\n           (((orig_st_shndx != 0 & bVar18) != 0 &&\n            ((((uVar13 != 0 && (pSVar4->st_size != 0)) && (to->symsize_ != 0)) &&\n             (((pSVar4->st_info & 0xf) != ((to->super_Symbol).field_0x38 & 0xf) ||\n              (to->symsize_ != pSVar4->st_size)))))))) &&\n          (pcVar16 = (to->super_Symbol).name_, *pcVar16 == '_')) && (pcVar16[1] == 'Z')) {\n        local_68 = pSVar4->st_value;\n        _adjust_common_sizes = object;\n        local_70 = orig_st_shndx;\n        if (((to->super_Symbol).field_0x3a & 7) != 0) {\nLAB_002c1bd9:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n        }\n        _adjust_dyndef = (to->super_Symbol).u1_;\n        local_48._M_allocated_capacity = to->value_;\n        local_88 = pcVar16;\n        local_50 = uVar13;\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                           *)&this->candidate_odr_violations_,&local_88);\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                  ((_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                    *)__node_gen._M_h,&adjust_common_sizes,&__node_gen,1);\n        local_88 = (to->super_Symbol).name_;\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                           *)&this->candidate_odr_violations_,&local_88);\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                  ((_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                    *)__node_gen._M_h,&adjust_dyndef,&__node_gen,1);\n      }\n    }\n    local_98 = &adjust_common_sizes;\n    iVar12 = (*object->_vptr_Object[5])(object);\n    if (CONCAT44(extraout_var_01,iVar12) == 0) {\n      SVar17 = (STT)sym->p_->st_info;\n      SVar9 = SVar17;\n    }\n    else {\n      SVar17 = (STT)sym->p_->st_info;\n      SVar9 = (uint)(byte)(to->super_Symbol).field_0x38;\n    }\n    uVar13 = symbol_to_bits((int)SVar17 >> 4,(bool)(object->field_0x3c & 1),st_shndx,is_ordinary);\n    uVar5 = to->symsize_;\n    bVar11 = should_override(&to->super_Symbol,uVar13,SVar9 & STT_HIPROC,OBJECT,object,local_98,\n                             &adjust_dyndef,is_default_version);\n    if (bVar11) {\n      bVar18 = (to->super_Symbol).field_0x38;\n      uVar7 = to->value_;\n      override<64,_false>(this,to,sym,st_shndx,is_ordinary,object,version);\n      if (adjust_common_sizes != false) {\n        if (to->symsize_ < uVar5) {\n          to->symsize_ = uVar5;\n        }\n        if (to->value_ < uVar7) {\n          to->value_ = uVar7;\n        }\n      }\n      if ((adjust_dyndef != false) &&\n         ((bVar2 = (to->super_Symbol).field_0x3c, (bVar2 & 1) == 0 || ((bVar2 & 2) != 0)))) {\n        (to->super_Symbol).field_0x3c =\n             (to->super_Symbol).field_0x3c & 0xfd | (bVar18 >> 4 == 2) * '\x02' | 1;\n      }\n    }\n    else {\n      pSVar4 = sym->p_;\n      if (adjust_common_sizes != false) {\n        if (uVar5 < pSVar4->st_size) {\n          to->symsize_ = pSVar4->st_size;\n        }\n        if (to->value_ < pSVar4->st_value) {\n          to->value_ = pSVar4->st_value;\n        }\n      }\n      if (adjust_dyndef != false) {\n        bVar18 = (to->super_Symbol).field_0x3c;\n        if (((bVar18 & 1) == 0) || ((bVar18 & 2) != 0)) {\n          (to->super_Symbol).field_0x3c =\n               (to->super_Symbol).field_0x3c & 0xfd |\n               ((int)(uint)pSVar4->st_info >> 4 == 2) * '\x02' | 1;\n        }\n      }\n      bVar18 = pSVar4->st_other & 3;\n      if ((pSVar4->st_other & 3) != 0) {\n        bVar2 = (to->super_Symbol).field_0x39;\n        if (((bVar2 & 3) == 0) || (bVar18 < (bVar2 & 3))) {\n          (to->super_Symbol).field_0x39 = bVar18 | bVar2 & 0xfc;\n        }\n      }\n    }\n    bVar18 = (to->super_Symbol).field_0x3a;\n    if ((bVar18 & 7) == 0) {\n      pOVar6 = (to->super_Symbol).u1_.output_segment;\n      bVar2 = *(byte *)((long)&pOVar6->output_lists_[2].\n                               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                               ._M_impl._M_finish + 4);\n      if ((((bVar2 & 1) != 0) && ((char)bVar18 < '\0')) &&\n         (((to->super_Symbol).field_0x3c & 2) == 0)) {\n        *(byte *)((long)&pOVar6->output_lists_[2].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_finish + 4) = bVar2 | 2;\n      }\n    }\n    if (adjust_common_sizes != false) {\n      if (parameters->options_ == (General_options *)0x0) {\nLAB_002c17cc:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n      }\n      if ((parameters->options_->warn_common_).value != false) {\n        pcVar16 = (char *)gettext();\n        report_resolve_problem(false,pcVar16,&to->super_Symbol,OBJECT,object);\n      }\n    }\n  }\n  return;\n}\n\n" comment comment comment comment comment (declaration "void __thiscall\ngold::Symbol_table::resolve<64,_false>\n          (Symbol_table *this,Sized_symbol<64> *to,Sym<64,_false> *sym,uint st_shndx,\n          bool is_ordinary,uint orig_st_shndx,Object *object,char *version,bool is_default_version)\n\n{\n  undefined1 *puVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Symbol_table::" identifier : : identifier : :) identifier (ERROR "<64" < number_literal) , (ERROR "_false>\n          (Symbol_table *this,Sized_symbol<64> *to,Sym<64,_false> *sym,uint st_shndx,\n          bool is_ordinary,uint orig_st_shndx,Object *object,char *version,bool is_default_version)\n\n{\n  undefined1" (function_declarator "_false>\n          (Symbol_table *this,Sized_symbol<64> *to,Sym<64,_false> *sym,uint st_shndx,\n          bool is_ordinary,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,_false> *sym,uint st_shndx,\n          bool is_ordinary,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 "_false> *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 "byte bVar2;" type_identifier identifier ;) (declaration "Target *pTVar3;" type_identifier (pointer_declarator "*pTVar3" * identifier) ;) (expression_statement "Sym_data<64> *pSVar4;" (update_expression "Sym_data<64> *pSVar4" (binary_expression "Sym_data<64> *pSVar4" (binary_expression "Sym_data<64" identifier < number_literal) > (pointer_expression "*pSVar4" * identifier)) --) ;) (declaration "ulong uVar5;" type_identifier identifier ;) (declaration "Output_segment *pOVar6;" type_identifier (pointer_declarator "*pOVar6" * identifier) ;) (declaration "ulong uVar7;" type_identifier identifier ;) (declaration "uint64_t uVar8;" primitive_type identifier ;) (declaration "STT SVar9;" type_identifier identifier ;) (declaration "anon_union_8_3_b0f6f408_for_u1_ aVar10;" type_identifier identifier ;) (declaration "bool bVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "long lVar14;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined4 extraout_var_00;" type_identifier identifier ;) (declaration "General_options *pGVar15;" type_identifier (pointer_declarator "*pGVar15" * identifier) ;) (declaration "undefined4 extraout_var_01;" type_identifier identifier ;) (declaration "char *pcVar16;" primitive_type (pointer_declarator "*pcVar16" * identifier) ;) (declaration "undefined4 extraout_var_02;" type_identifier identifier ;) (declaration "STT SVar17;" type_identifier identifier ;) (declaration "byte bVar18;" type_identifier identifier ;) (declaration "bool *local_98;" primitive_type (pointer_declarator "*local_98" * identifier) ;) (declaration "char *local_88;" primitive_type (pointer_declarator "*local_88" * identifier) ;) (declaration "__node_gen_type __node_gen;" type_identifier identifier ;) (declaration "bool adjust_common_sizes;" primitive_type identifier ;) (declaration "uint local_70;" type_identifier identifier ;) (declaration "Elf_Addr local_68;" type_identifier identifier ;) (declaration "bool adjust_dyndef;" primitive_type identifier ;) (declaration "uint local_50;" type_identifier identifier ;) (ERROR "anon_union_16_2_edb7204a_for_basic_string<char," (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) ,) (labeled_statement "_std::char_traits<char>,_std::allocator<char>_>_9\n  local_48;" statement_identifier (ERROR "::char_traits<char>,_std:" : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) :) : (expression_statement "allocator<char>_>_9\n  local_48;" (binary_expression "allocator<char>_>_9\n  local_48" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "_9" identifier) identifier) ;)) (declaration "undefined4 extraout_var;" type_identifier identifier ;) (if_statement "if (((to->super_Symbol).field_0x3a & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");\n  }" if (parenthesized_expression "(((to->super_Symbol).field_0x3a & 7) != 0)" ( (binary_expression "((to->super_Symbol).field_0x3a & 7) != 0" (parenthesized_expression "((to->super_Symbol).field_0x3a & 7)" ( (binary_expression "(to->super_Symbol).field_0x3a & 7" (field_expression "(to->super_Symbol).field_0x3a" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");" (call_expression "do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx")" identifier (argument_list "("../../gold/symtab.h",0xaa,"shndx")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""shndx"" " string_content ") ))) ;) })) (expression_statement "uVar13 = (to->super_Symbol).u2_.shndx;" (assignment_expression "uVar13 = (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 "bVar18 = (byte)(to->super_Symbol).field_0x3b >> 5 & 1;" (assignment_expression "bVar18 = (byte)(to->super_Symbol).field_0x3b >> 5 & 1" identifier = (binary_expression "(byte)(to->super_Symbol).field_0x3b >> 5 & 1" (binary_expression "(byte)(to->super_Symbol).field_0x3b >> 5" (field_expression "(byte)(to->super_Symbol).field_0x3b" (call_expression "(byte)(to->super_Symbol)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) ))) . field_identifier) >> number_literal) & number_literal)) ;) (if_statement "if (object == (to->super_Symbol).u1_.object) {\n    if (bVar18 == 0) {\n      bVar11 = Symbol::is_common_shndx(uVar13);\n      if ((((bVar11) || (!is_ordinary)) && (st_shndx == 0xfff1)) && (!is_ordinary))\n      goto LAB_002c14d0;\n    }\n    else if (((uVar13 != 0) && (is_ordinary)) && (st_shndx == uVar13)) goto LAB_002c1838;\n  }\n  else if (((!is_ordinary) && (st_shndx == 0xfff1)) && (bVar18 == 0)) {\nLAB_002c14d0:\n    if (uVar13 == 0xfff1) {\nLAB_002c1838:\n      if (sym->p_->st_value == to->value_) {\n        return;\n      }\n    }\n  }" if (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 (bVar18 == 0) {\n      bVar11 = Symbol::is_common_shndx(uVar13);\n      if ((((bVar11) || (!is_ordinary)) && (st_shndx == 0xfff1)) && (!is_ordinary))\n      goto LAB_002c14d0;\n    }\n    else if (((uVar13 != 0) && (is_ordinary)) && (st_shndx == uVar13)) goto LAB_002c1838;\n  }" { (if_statement "if (bVar18 == 0) {\n      bVar11 = Symbol::is_common_shndx(uVar13);\n      if ((((bVar11) || (!is_ordinary)) && (st_shndx == 0xfff1)) && (!is_ordinary))\n      goto LAB_002c14d0;\n    }\n    else if (((uVar13 != 0) && (is_ordinary)) && (st_shndx == uVar13)) goto LAB_002c1838;" if (parenthesized_expression "(bVar18 == 0)" ( (binary_expression "bVar18 == 0" identifier == number_literal) )) (compound_statement "{\n      bVar11 = Symbol::is_common_shndx(uVar13);\n      if ((((bVar11) || (!is_ordinary)) && (st_shndx == 0xfff1)) && (!is_ordinary))\n      goto LAB_002c14d0;\n    }" { (ERROR "bVar11 = Symbol::" (assignment_expression "bVar11 = Symbol" identifier = identifier) : :) (expression_statement "is_common_shndx(uVar13);" (call_expression "is_common_shndx(uVar13)" identifier (argument_list "(uVar13)" ( identifier ))) ;) (if_statement "if ((((bVar11) || (!is_ordinary)) && (st_shndx == 0xfff1)) && (!is_ordinary))\n      goto LAB_002c14d0;" if (parenthesized_expression "((((bVar11) || (!is_ordinary)) && (st_shndx == 0xfff1)) && (!is_ordinary))" ( (binary_expression "(((bVar11) || (!is_ordinary)) && (st_shndx == 0xfff1)) && (!is_ordinary)" (parenthesized_expression "(((bVar11) || (!is_ordinary)) && (st_shndx == 0xfff1))" ( (binary_expression "((bVar11) || (!is_ordinary)) && (st_shndx == 0xfff1)" (parenthesized_expression "((bVar11) || (!is_ordinary))" ( (binary_expression "(bVar11) || (!is_ordinary)" (parenthesized_expression "(bVar11)" ( identifier )) || (parenthesized_expression "(!is_ordinary)" ( (unary_expression "!is_ordinary" ! identifier) ))) )) && (parenthesized_expression "(st_shndx == 0xfff1)" ( (binary_expression "st_shndx == 0xfff1" identifier == number_literal) ))) )) && (parenthesized_expression "(!is_ordinary)" ( (unary_expression "!is_ordinary" ! identifier) ))) )) (goto_statement "goto LAB_002c14d0;" goto statement_identifier ;)) }) (else_clause "else if (((uVar13 != 0) && (is_ordinary)) && (st_shndx == uVar13)) goto LAB_002c1838;" else (if_statement "if (((uVar13 != 0) && (is_ordinary)) && (st_shndx == uVar13)) goto LAB_002c1838;" if (parenthesized_expression "(((uVar13 != 0) && (is_ordinary)) && (st_shndx == uVar13))" ( (binary_expression "((uVar13 != 0) && (is_ordinary)) && (st_shndx == uVar13)" (parenthesized_expression "((uVar13 != 0) && (is_ordinary))" ( (binary_expression "(uVar13 != 0) && (is_ordinary)" (parenthesized_expression "(uVar13 != 0)" ( (binary_expression "uVar13 != 0" identifier != number_literal) )) && (parenthesized_expression "(is_ordinary)" ( identifier ))) )) && (parenthesized_expression "(st_shndx == uVar13)" ( (binary_expression "st_shndx == uVar13" identifier == identifier) ))) )) (goto_statement "goto LAB_002c1838;" goto statement_identifier ;)))) }) (else_clause "else if (((!is_ordinary) && (st_shndx == 0xfff1)) && (bVar18 == 0)) {\nLAB_002c14d0:\n    if (uVar13 == 0xfff1) {\nLAB_002c1838:\n      if (sym->p_->st_value == to->value_) {\n        return;\n      }\n    }\n  }" else (if_statement "if (((!is_ordinary) && (st_shndx == 0xfff1)) && (bVar18 == 0)) {\nLAB_002c14d0:\n    if (uVar13 == 0xfff1) {\nLAB_002c1838:\n      if (sym->p_->st_value == to->value_) {\n        return;\n      }\n    }\n  }" if (parenthesized_expression "(((!is_ordinary) && (st_shndx == 0xfff1)) && (bVar18 == 0))" ( (binary_expression "((!is_ordinary) && (st_shndx == 0xfff1)) && (bVar18 == 0)" (parenthesized_expression "((!is_ordinary) && (st_shndx == 0xfff1))" ( (binary_expression "(!is_ordinary) && (st_shndx == 0xfff1)" (parenthesized_expression "(!is_ordinary)" ( (unary_expression "!is_ordinary" ! identifier) )) && (parenthesized_expression "(st_shndx == 0xfff1)" ( (binary_expression "st_shndx == 0xfff1" identifier == number_literal) ))) )) && (parenthesized_expression "(bVar18 == 0)" ( (binary_expression "bVar18 == 0" identifier == number_literal) ))) )) (compound_statement "{\nLAB_002c14d0:\n    if (uVar13 == 0xfff1) {\nLAB_002c1838:\n      if (sym->p_->st_value == to->value_) {\n        return;\n      }\n    }\n  }" { (labeled_statement "LAB_002c14d0:\n    if (uVar13 == 0xfff1) {\nLAB_002c1838:\n      if (sym->p_->st_value == to->value_) {\n        return;\n      }\n    }" statement_identifier : (if_statement "if (uVar13 == 0xfff1) {\nLAB_002c1838:\n      if (sym->p_->st_value == to->value_) {\n        return;\n      }\n    }" if (parenthesized_expression "(uVar13 == 0xfff1)" ( (binary_expression "uVar13 == 0xfff1" identifier == number_literal) )) (compound_statement "{\nLAB_002c1838:\n      if (sym->p_->st_value == to->value_) {\n        return;\n      }\n    }" { (labeled_statement "LAB_002c1838:\n      if (sym->p_->st_value == to->value_) {\n        return;\n      }" statement_identifier : (if_statement "if (sym->p_->st_value == to->value_) {\n        return;\n      }" if (parenthesized_expression "(sym->p_->st_value == to->value_)" ( (binary_expression "sym->p_->st_value == to->value_" (field_expression "sym->p_->st_value" (field_expression "sym->p_" identifier -> field_identifier) -> field_identifier) == (field_expression "to->value_" identifier -> field_identifier)) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) }))) }))) })))) (expression_statement "pTVar3 = parameters->target_;" (assignment_expression "pTVar3 = parameters->target_" identifier = (field_expression "parameters->target_" identifier -> field_identifier)) ;) (if_statement "if (pTVar3 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n  }" if (parenthesized_expression "(pTVar3 == (Target *)0x0)" ( (binary_expression "pTVar3 == (Target *)0x0" identifier == (cast_expression "(Target *)0x0" ( (type_descriptor "Target *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x69,"target");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x69,"target")" identifier (argument_list "("../../gold/parameters.h",0x69,"target")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""target"" " string_content ") ))) ;) })) (if_statement "if ((pTVar3->pti_->has_resolve == false) ||\n     (iVar12 = (*pTVar3->_vptr_Target[0x2b])(pTVar3,to,sym,object), (char)iVar12 == '\0')) {\n    if ((object->field_0x3c & 1) == 0) {\n      if (((sym->p_->st_info & 0xf) == 5) &&\n         ((is_ordinary || (bVar11 = Symbol::is_common_shndx(st_shndx), !bVar11)))) {\n        if (((to->super_Symbol).field_0x3a & 7) == 0) {\n          uVar8 = ((to->super_Symbol).u1_.output_data)->address_;\n          Symbol::demangled_name((string *)&adjust_dyndef,&to->super_Symbol);\n          aVar10 = _adjust_dyndef;\n          pcVar16 = (char *)gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");\n                    /* try { // try from 002c1a10 to 002c1a14 has its CatchHandler @ 002c1bf1 */\n          gold_warning(pcVar16,aVar10.object,uVar8);\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)_adjust_dyndef == &local_48) {\n            return;\n          }\n          operator_delete(_adjust_dyndef);\n          return;\n        }\n        goto LAB_002c1bd9;\n      }\n      puVar1 = &(to->super_Symbol).field_0x3a;\n      *puVar1 = *puVar1 | 0x80;\n      iVar12 = (*object->_vptr_Object[5])(object);\n      lVar14 = CONCAT44(extraout_var,iVar12);\n    }\n    else {\n      if ((st_shndx == 0) && (((byte)(to->super_Symbol).field_0x39 & 3) - 1 < 2)) {\n        return;\n      }\n      puVar1 = &(to->super_Symbol).field_0x3b;\n      *puVar1 = *puVar1 | 1;\n      iVar12 = (*object->_vptr_Object[5])(object);\n      lVar14 = CONCAT44(extraout_var_02,iVar12);\n    }\n    if ((lVar14 == 0) && ((object->field_0x3c & 1) == 0)) {\n      puVar1 = &(to->super_Symbol).field_0x3b;\n      *puVar1 = *puVar1 | 0x40;\n    }\n    if ((((to->super_Symbol).field_0x3a & 7) == 0) &&\n       (iVar12 = (*((to->super_Symbol).u1_.object)->_vptr_Object[5])(),\n       CONCAT44(extraout_var_00,iVar12) != 0)) {\n      pGVar15 = parameters->options_;\n      if (pGVar15 == (General_options *)0x0) goto LAB_002c17cc;\n      if (pGVar15->plugins_->in_replacement_phase_ != false) {\n        if ((((((to->super_Symbol).field_0x3a & 7) != 0) ||\n             (((to->super_Symbol).field_0x3b & 0x20) != 0)) ||\n            (bVar11 = Symbol::is_common_shndx((to->super_Symbol).u2_.shndx), !bVar11)) ||\n           ((is_ordinary || (bVar11 = Symbol::is_common_shndx(st_shndx), !bVar11)))) {\n          override<64,_false>(this,to,sym,st_shndx,is_ordinary,object,version);\n          return;\n        }\n        uVar5 = to->symsize_;\n        uVar7 = to->value_;\n        override<64,_false>(this,to,sym,st_shndx,false,object,version);\n        if (to->symsize_ < uVar5) {\n          to->symsize_ = uVar5;\n        }\n        if (uVar7 <= to->value_) {\n          return;\n        }\n        to->value_ = uVar7;\n        return;\n      }\n    }\n    else {\n      pGVar15 = parameters->options_;\n      if (pGVar15 == (General_options *)0x0) goto LAB_002c17cc;\n    }\n    if ((pGVar15->detect_odr_violations_).value != false) {\n      pSVar4 = sym->p_;\n      if ((((((int)(uint)pSVar4->st_info >> 4 == 2) ||\n            ((byte)(to->super_Symbol).field_0x38 >> 4 == 2)) &&\n           (((orig_st_shndx != 0 & bVar18) != 0 &&\n            ((((uVar13 != 0 && (pSVar4->st_size != 0)) && (to->symsize_ != 0)) &&\n             (((pSVar4->st_info & 0xf) != ((to->super_Symbol).field_0x38 & 0xf) ||\n              (to->symsize_ != pSVar4->st_size)))))))) &&\n          (pcVar16 = (to->super_Symbol).name_, *pcVar16 == '_')) && (pcVar16[1] == 'Z')) {\n        local_68 = pSVar4->st_value;\n        _adjust_common_sizes = object;\n        local_70 = orig_st_shndx;\n        if (((to->super_Symbol).field_0x3a & 7) != 0) {\nLAB_002c1bd9:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n        }\n        _adjust_dyndef = (to->super_Symbol).u1_;\n        local_48._M_allocated_capacity = to->value_;\n        local_88 = pcVar16;\n        local_50 = uVar13;\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                           *)&this->candidate_odr_violations_,&local_88);\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                  ((_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                    *)__node_gen._M_h,&adjust_common_sizes,&__node_gen,1);\n        local_88 = (to->super_Symbol).name_;\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                           *)&this->candidate_odr_violations_,&local_88);\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                  ((_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                    *)__node_gen._M_h,&adjust_dyndef,&__node_gen,1);\n      }\n    }\n    local_98 = &adjust_common_sizes;\n    iVar12 = (*object->_vptr_Object[5])(object);\n    if (CONCAT44(extraout_var_01,iVar12) == 0) {\n      SVar17 = (STT)sym->p_->st_info;\n      SVar9 = SVar17;\n    }\n    else {\n      SVar17 = (STT)sym->p_->st_info;\n      SVar9 = (uint)(byte)(to->super_Symbol).field_0x38;\n    }\n    uVar13 = symbol_to_bits((int)SVar17 >> 4,(bool)(object->field_0x3c & 1),st_shndx,is_ordinary);\n    uVar5 = to->symsize_;\n    bVar11 = should_override(&to->super_Symbol,uVar13,SVar9 & STT_HIPROC,OBJECT,object,local_98,\n                             &adjust_dyndef,is_default_version);\n    if (bVar11) {\n      bVar18 = (to->super_Symbol).field_0x38;\n      uVar7 = to->value_;\n      override<64,_false>(this,to,sym,st_shndx,is_ordinary,object,version);\n      if (adjust_common_sizes != false) {\n        if (to->symsize_ < uVar5) {\n          to->symsize_ = uVar5;\n        }\n        if (to->value_ < uVar7) {\n          to->value_ = uVar7;\n        }\n      }\n      if ((adjust_dyndef != false) &&\n         ((bVar2 = (to->super_Symbol).field_0x3c, (bVar2 & 1) == 0 || ((bVar2 & 2) != 0)))) {\n        (to->super_Symbol).field_0x3c =\n             (to->super_Symbol).field_0x3c & 0xfd | (bVar18 >> 4 == 2) * '\x02' | 1;\n      }\n    }\n    else {\n      pSVar4 = sym->p_;\n      if (adjust_common_sizes != false) {\n        if (uVar5 < pSVar4->st_size) {\n          to->symsize_ = pSVar4->st_size;\n        }\n        if (to->value_ < pSVar4->st_value) {\n          to->value_ = pSVar4->st_value;\n        }\n      }\n      if (adjust_dyndef != false) {\n        bVar18 = (to->super_Symbol).field_0x3c;\n        if (((bVar18 & 1) == 0) || ((bVar18 & 2) != 0)) {\n          (to->super_Symbol).field_0x3c =\n               (to->super_Symbol).field_0x3c & 0xfd |\n               ((int)(uint)pSVar4->st_info >> 4 == 2) * '\x02' | 1;\n        }\n      }\n      bVar18 = pSVar4->st_other & 3;\n      if ((pSVar4->st_other & 3) != 0) {\n        bVar2 = (to->super_Symbol).field_0x39;\n        if (((bVar2 & 3) == 0) || (bVar18 < (bVar2 & 3))) {\n          (to->super_Symbol).field_0x39 = bVar18 | bVar2 & 0xfc;\n        }\n      }\n    }\n    bVar18 = (to->super_Symbol).field_0x3a;\n    if ((bVar18 & 7) == 0) {\n      pOVar6 = (to->super_Symbol).u1_.output_segment;\n      bVar2 = *(byte *)((long)&pOVar6->output_lists_[2].\n                               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                               ._M_impl._M_finish + 4);\n      if ((((bVar2 & 1) != 0) && ((char)bVar18 < '\0')) &&\n         (((to->super_Symbol).field_0x3c & 2) == 0)) {\n        *(byte *)((long)&pOVar6->output_lists_[2].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_finish + 4) = bVar2 | 2;\n      }\n    }\n    if (adjust_common_sizes != false) {\n      if (parameters->options_ == (General_options *)0x0) {\nLAB_002c17cc:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n      }\n      if ((parameters->options_->warn_common_).value != false) {\n        pcVar16 = (char *)gettext();\n        report_resolve_problem(false,pcVar16,&to->super_Symbol,OBJECT,object);\n      }\n    }\n  }" if (parenthesized_expression "((pTVar3->pti_->has_resolve == false) ||\n     (iVar12 = (*pTVar3->_vptr_Target[0x2b])(pTVar3,to,sym,object), (char)iVar12 == '\0'))" ( (binary_expression "(pTVar3->pti_->has_resolve == false) ||\n     (iVar12 = (*pTVar3->_vptr_Target[0x2b])(pTVar3,to,sym,object), (char)iVar12 == '\0')" (parenthesized_expression "(pTVar3->pti_->has_resolve == false)" ( (binary_expression "pTVar3->pti_->has_resolve == false" (field_expression "pTVar3->pti_->has_resolve" (field_expression "pTVar3->pti_" identifier -> field_identifier) -> field_identifier) == false) )) || (parenthesized_expression "(iVar12 = (*pTVar3->_vptr_Target[0x2b])(pTVar3,to,sym,object), (char)iVar12 == '\0')" ( (comma_expression "iVar12 = (*pTVar3->_vptr_Target[0x2b])(pTVar3,to,sym,object), (char)iVar12 == '\0'" (assignment_expression "iVar12 = (*pTVar3->_vptr_Target[0x2b])(pTVar3,to,sym,object)" identifier = (call_expression "(*pTVar3->_vptr_Target[0x2b])(pTVar3,to,sym,object)" (parenthesized_expression "(*pTVar3->_vptr_Target[0x2b])" ( (pointer_expression "*pTVar3->_vptr_Target[0x2b]" * (subscript_expression "pTVar3->_vptr_Target[0x2b]" (field_expression "pTVar3->_vptr_Target" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(pTVar3,to,sym,object)" ( identifier , identifier , identifier , identifier )))) , (binary_expression "(char)iVar12 == '\0'" (cast_expression "(char)iVar12" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n    if ((object->field_0x3c & 1) == 0) {\n      if (((sym->p_->st_info & 0xf) == 5) &&\n         ((is_ordinary || (bVar11 = Symbol::is_common_shndx(st_shndx), !bVar11)))) {\n        if (((to->super_Symbol).field_0x3a & 7) == 0) {\n          uVar8 = ((to->super_Symbol).u1_.output_data)->address_;\n          Symbol::demangled_name((string *)&adjust_dyndef,&to->super_Symbol);\n          aVar10 = _adjust_dyndef;\n          pcVar16 = (char *)gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");\n                    /* try { // try from 002c1a10 to 002c1a14 has its CatchHandler @ 002c1bf1 */\n          gold_warning(pcVar16,aVar10.object,uVar8);\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)_adjust_dyndef == &local_48) {\n            return;\n          }\n          operator_delete(_adjust_dyndef);\n          return;\n        }\n        goto LAB_002c1bd9;\n      }\n      puVar1 = &(to->super_Symbol).field_0x3a;\n      *puVar1 = *puVar1 | 0x80;\n      iVar12 = (*object->_vptr_Object[5])(object);\n      lVar14 = CONCAT44(extraout_var,iVar12);\n    }\n    else {\n      if ((st_shndx == 0) && (((byte)(to->super_Symbol).field_0x39 & 3) - 1 < 2)) {\n        return;\n      }\n      puVar1 = &(to->super_Symbol).field_0x3b;\n      *puVar1 = *puVar1 | 1;\n      iVar12 = (*object->_vptr_Object[5])(object);\n      lVar14 = CONCAT44(extraout_var_02,iVar12);\n    }\n    if ((lVar14 == 0) && ((object->field_0x3c & 1) == 0)) {\n      puVar1 = &(to->super_Symbol).field_0x3b;\n      *puVar1 = *puVar1 | 0x40;\n    }\n    if ((((to->super_Symbol).field_0x3a & 7) == 0) &&\n       (iVar12 = (*((to->super_Symbol).u1_.object)->_vptr_Object[5])(),\n       CONCAT44(extraout_var_00,iVar12) != 0)) {\n      pGVar15 = parameters->options_;\n      if (pGVar15 == (General_options *)0x0) goto LAB_002c17cc;\n      if (pGVar15->plugins_->in_replacement_phase_ != false) {\n        if ((((((to->super_Symbol).field_0x3a & 7) != 0) ||\n             (((to->super_Symbol).field_0x3b & 0x20) != 0)) ||\n            (bVar11 = Symbol::is_common_shndx((to->super_Symbol).u2_.shndx), !bVar11)) ||\n           ((is_ordinary || (bVar11 = Symbol::is_common_shndx(st_shndx), !bVar11)))) {\n          override<64,_false>(this,to,sym,st_shndx,is_ordinary,object,version);\n          return;\n        }\n        uVar5 = to->symsize_;\n        uVar7 = to->value_;\n        override<64,_false>(this,to,sym,st_shndx,false,object,version);\n        if (to->symsize_ < uVar5) {\n          to->symsize_ = uVar5;\n        }\n        if (uVar7 <= to->value_) {\n          return;\n        }\n        to->value_ = uVar7;\n        return;\n      }\n    }\n    else {\n      pGVar15 = parameters->options_;\n      if (pGVar15 == (General_options *)0x0) goto LAB_002c17cc;\n    }\n    if ((pGVar15->detect_odr_violations_).value != false) {\n      pSVar4 = sym->p_;\n      if ((((((int)(uint)pSVar4->st_info >> 4 == 2) ||\n            ((byte)(to->super_Symbol).field_0x38 >> 4 == 2)) &&\n           (((orig_st_shndx != 0 & bVar18) != 0 &&\n            ((((uVar13 != 0 && (pSVar4->st_size != 0)) && (to->symsize_ != 0)) &&\n             (((pSVar4->st_info & 0xf) != ((to->super_Symbol).field_0x38 & 0xf) ||\n              (to->symsize_ != pSVar4->st_size)))))))) &&\n          (pcVar16 = (to->super_Symbol).name_, *pcVar16 == '_')) && (pcVar16[1] == 'Z')) {\n        local_68 = pSVar4->st_value;\n        _adjust_common_sizes = object;\n        local_70 = orig_st_shndx;\n        if (((to->super_Symbol).field_0x3a & 7) != 0) {\nLAB_002c1bd9:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n        }\n        _adjust_dyndef = (to->super_Symbol).u1_;\n        local_48._M_allocated_capacity = to->value_;\n        local_88 = pcVar16;\n        local_50 = uVar13;\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                           *)&this->candidate_odr_violations_,&local_88);\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                  ((_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                    *)__node_gen._M_h,&adjust_common_sizes,&__node_gen,1);\n        local_88 = (to->super_Symbol).name_;\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                           *)&this->candidate_odr_violations_,&local_88);\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                  ((_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                    *)__node_gen._M_h,&adjust_dyndef,&__node_gen,1);\n      }\n    }\n    local_98 = &adjust_common_sizes;\n    iVar12 = (*object->_vptr_Object[5])(object);\n    if (CONCAT44(extraout_var_01,iVar12) == 0) {\n      SVar17 = (STT)sym->p_->st_info;\n      SVar9 = SVar17;\n    }\n    else {\n      SVar17 = (STT)sym->p_->st_info;\n      SVar9 = (uint)(byte)(to->super_Symbol).field_0x38;\n    }\n    uVar13 = symbol_to_bits((int)SVar17 >> 4,(bool)(object->field_0x3c & 1),st_shndx,is_ordinary);\n    uVar5 = to->symsize_;\n    bVar11 = should_override(&to->super_Symbol,uVar13,SVar9 & STT_HIPROC,OBJECT,object,local_98,\n                             &adjust_dyndef,is_default_version);\n    if (bVar11) {\n      bVar18 = (to->super_Symbol).field_0x38;\n      uVar7 = to->value_;\n      override<64,_false>(this,to,sym,st_shndx,is_ordinary,object,version);\n      if (adjust_common_sizes != false) {\n        if (to->symsize_ < uVar5) {\n          to->symsize_ = uVar5;\n        }\n        if (to->value_ < uVar7) {\n          to->value_ = uVar7;\n        }\n      }\n      if ((adjust_dyndef != false) &&\n         ((bVar2 = (to->super_Symbol).field_0x3c, (bVar2 & 1) == 0 || ((bVar2 & 2) != 0)))) {\n        (to->super_Symbol).field_0x3c =\n             (to->super_Symbol).field_0x3c & 0xfd | (bVar18 >> 4 == 2) * '\x02' | 1;\n      }\n    }\n    else {\n      pSVar4 = sym->p_;\n      if (adjust_common_sizes != false) {\n        if (uVar5 < pSVar4->st_size) {\n          to->symsize_ = pSVar4->st_size;\n        }\n        if (to->value_ < pSVar4->st_value) {\n          to->value_ = pSVar4->st_value;\n        }\n      }\n      if (adjust_dyndef != false) {\n        bVar18 = (to->super_Symbol).field_0x3c;\n        if (((bVar18 & 1) == 0) || ((bVar18 & 2) != 0)) {\n          (to->super_Symbol).field_0x3c =\n               (to->super_Symbol).field_0x3c & 0xfd |\n               ((int)(uint)pSVar4->st_info >> 4 == 2) * '\x02' | 1;\n        }\n      }\n      bVar18 = pSVar4->st_other & 3;\n      if ((pSVar4->st_other & 3) != 0) {\n        bVar2 = (to->super_Symbol).field_0x39;\n        if (((bVar2 & 3) == 0) || (bVar18 < (bVar2 & 3))) {\n          (to->super_Symbol).field_0x39 = bVar18 | bVar2 & 0xfc;\n        }\n      }\n    }\n    bVar18 = (to->super_Symbol).field_0x3a;\n    if ((bVar18 & 7) == 0) {\n      pOVar6 = (to->super_Symbol).u1_.output_segment;\n      bVar2 = *(byte *)((long)&pOVar6->output_lists_[2].\n                               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                               ._M_impl._M_finish + 4);\n      if ((((bVar2 & 1) != 0) && ((char)bVar18 < '\0')) &&\n         (((to->super_Symbol).field_0x3c & 2) == 0)) {\n        *(byte *)((long)&pOVar6->output_lists_[2].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_finish + 4) = bVar2 | 2;\n      }\n    }\n    if (adjust_common_sizes != false) {\n      if (parameters->options_ == (General_options *)0x0) {\nLAB_002c17cc:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n      }\n      if ((parameters->options_->warn_common_).value != false) {\n        pcVar16 = (char *)gettext();\n        report_resolve_problem(false,pcVar16,&to->super_Symbol,OBJECT,object);\n      }\n    }\n  }" { (if_statement "if ((object->field_0x3c & 1) == 0) {\n      if (((sym->p_->st_info & 0xf) == 5) &&\n         ((is_ordinary || (bVar11 = Symbol::is_common_shndx(st_shndx), !bVar11)))) {\n        if (((to->super_Symbol).field_0x3a & 7) == 0) {\n          uVar8 = ((to->super_Symbol).u1_.output_data)->address_;\n          Symbol::demangled_name((string *)&adjust_dyndef,&to->super_Symbol);\n          aVar10 = _adjust_dyndef;\n          pcVar16 = (char *)gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");\n                    /* try { // try from 002c1a10 to 002c1a14 has its CatchHandler @ 002c1bf1 */\n          gold_warning(pcVar16,aVar10.object,uVar8);\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)_adjust_dyndef == &local_48) {\n            return;\n          }\n          operator_delete(_adjust_dyndef);\n          return;\n        }\n        goto LAB_002c1bd9;\n      }\n      puVar1 = &(to->super_Symbol).field_0x3a;\n      *puVar1 = *puVar1 | 0x80;\n      iVar12 = (*object->_vptr_Object[5])(object);\n      lVar14 = CONCAT44(extraout_var,iVar12);\n    }\n    else {\n      if ((st_shndx == 0) && (((byte)(to->super_Symbol).field_0x39 & 3) - 1 < 2)) {\n        return;\n      }\n      puVar1 = &(to->super_Symbol).field_0x3b;\n      *puVar1 = *puVar1 | 1;\n      iVar12 = (*object->_vptr_Object[5])(object);\n      lVar14 = CONCAT44(extraout_var_02,iVar12);\n    }" if (parenthesized_expression "((object->field_0x3c & 1) == 0)" ( (binary_expression "(object->field_0x3c & 1) == 0" (parenthesized_expression "(object->field_0x3c & 1)" ( (binary_expression "object->field_0x3c & 1" (field_expression "object->field_0x3c" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      if (((sym->p_->st_info & 0xf) == 5) &&\n         ((is_ordinary || (bVar11 = Symbol::is_common_shndx(st_shndx), !bVar11)))) {\n        if (((to->super_Symbol).field_0x3a & 7) == 0) {\n          uVar8 = ((to->super_Symbol).u1_.output_data)->address_;\n          Symbol::demangled_name((string *)&adjust_dyndef,&to->super_Symbol);\n          aVar10 = _adjust_dyndef;\n          pcVar16 = (char *)gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");\n                    /* try { // try from 002c1a10 to 002c1a14 has its CatchHandler @ 002c1bf1 */\n          gold_warning(pcVar16,aVar10.object,uVar8);\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)_adjust_dyndef == &local_48) {\n            return;\n          }\n          operator_delete(_adjust_dyndef);\n          return;\n        }\n        goto LAB_002c1bd9;\n      }\n      puVar1 = &(to->super_Symbol).field_0x3a;\n      *puVar1 = *puVar1 | 0x80;\n      iVar12 = (*object->_vptr_Object[5])(object);\n      lVar14 = CONCAT44(extraout_var,iVar12);\n    }" { (if_statement "if (((sym->p_->st_info & 0xf) == 5) &&\n         ((is_ordinary || (bVar11 = Symbol::is_common_shndx(st_shndx), !bVar11)))) {\n        if (((to->super_Symbol).field_0x3a & 7) == 0) {\n          uVar8 = ((to->super_Symbol).u1_.output_data)->address_;\n          Symbol::demangled_name((string *)&adjust_dyndef,&to->super_Symbol);\n          aVar10 = _adjust_dyndef;\n          pcVar16 = (char *)gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");\n                    /* try { // try from 002c1a10 to 002c1a14 has its CatchHandler @ 002c1bf1 */\n          gold_warning(pcVar16,aVar10.object,uVar8);\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)_adjust_dyndef == &local_48) {\n            return;\n          }\n          operator_delete(_adjust_dyndef);\n          return;\n        }\n        goto LAB_002c1bd9;\n      }" if (parenthesized_expression "(((sym->p_->st_info & 0xf) == 5) &&\n         ((is_ordinary || (bVar11 = Symbol::is_common_shndx(st_shndx), !bVar11))))" ( (binary_expression "((sym->p_->st_info & 0xf) == 5) &&\n         ((is_ordinary || (bVar11 = Symbol::is_common_shndx(st_shndx), !bVar11)))" (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 || (bVar11 = Symbol::is_common_shndx(st_shndx), !bVar11)))" ( (parenthesized_expression "(is_ordinary || (bVar11 = Symbol::is_common_shndx(st_shndx), !bVar11))" ( (binary_expression "is_ordinary || (bVar11 = Symbol::is_common_shndx(st_shndx), !bVar11)" identifier || (parenthesized_expression "(bVar11 = Symbol::is_common_shndx(st_shndx), !bVar11)" ( (ERROR "bVar11 = Symbol::" (assignment_expression "bVar11 = Symbol" identifier = identifier) : :) (comma_expression "is_common_shndx(st_shndx), !bVar11" (call_expression "is_common_shndx(st_shndx)" identifier (argument_list "(st_shndx)" ( identifier ))) , (unary_expression "!bVar11" ! identifier)) ))) )) ))) )) (compound_statement "{\n        if (((to->super_Symbol).field_0x3a & 7) == 0) {\n          uVar8 = ((to->super_Symbol).u1_.output_data)->address_;\n          Symbol::demangled_name((string *)&adjust_dyndef,&to->super_Symbol);\n          aVar10 = _adjust_dyndef;\n          pcVar16 = (char *)gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");\n                    /* try { // try from 002c1a10 to 002c1a14 has its CatchHandler @ 002c1bf1 */\n          gold_warning(pcVar16,aVar10.object,uVar8);\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)_adjust_dyndef == &local_48) {\n            return;\n          }\n          operator_delete(_adjust_dyndef);\n          return;\n        }\n        goto LAB_002c1bd9;\n      }" { (if_statement "if (((to->super_Symbol).field_0x3a & 7) == 0) {\n          uVar8 = ((to->super_Symbol).u1_.output_data)->address_;\n          Symbol::demangled_name((string *)&adjust_dyndef,&to->super_Symbol);\n          aVar10 = _adjust_dyndef;\n          pcVar16 = (char *)gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");\n                    /* try { // try from 002c1a10 to 002c1a14 has its CatchHandler @ 002c1bf1 */\n          gold_warning(pcVar16,aVar10.object,uVar8);\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)_adjust_dyndef == &local_48) {\n            return;\n          }\n          operator_delete(_adjust_dyndef);\n          return;\n        }" if (parenthesized_expression "(((to->super_Symbol).field_0x3a & 7) == 0)" ( (binary_expression "((to->super_Symbol).field_0x3a & 7) == 0" (parenthesized_expression "((to->super_Symbol).field_0x3a & 7)" ( (binary_expression "(to->super_Symbol).field_0x3a & 7" (field_expression "(to->super_Symbol).field_0x3a" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n          uVar8 = ((to->super_Symbol).u1_.output_data)->address_;\n          Symbol::demangled_name((string *)&adjust_dyndef,&to->super_Symbol);\n          aVar10 = _adjust_dyndef;\n          pcVar16 = (char *)gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");\n                    /* try { // try from 002c1a10 to 002c1a14 has its CatchHandler @ 002c1bf1 */\n          gold_warning(pcVar16,aVar10.object,uVar8);\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)_adjust_dyndef == &local_48) {\n            return;\n          }\n          operator_delete(_adjust_dyndef);\n          return;\n        }" { (expression_statement "uVar8 = ((to->super_Symbol).u1_.output_data)->address_;" (assignment_expression "uVar8 = ((to->super_Symbol).u1_.output_data)->address_" identifier = (field_expression "((to->super_Symbol).u1_.output_data)->address_" (parenthesized_expression "((to->super_Symbol).u1_.output_data)" ( (field_expression "(to->super_Symbol).u1_.output_data" (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)) ;) (labeled_statement "Symbol::demangled_name((string *)&adjust_dyndef,&to->super_Symbol);" statement_identifier : (ERROR ":" :) (expression_statement "demangled_name((string *)&adjust_dyndef,&to->super_Symbol);" (call_expression "demangled_name((string *)&adjust_dyndef,&to->super_Symbol)" identifier (argument_list "((string *)&adjust_dyndef,&to->super_Symbol)" ( (cast_expression "(string *)&adjust_dyndef" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&adjust_dyndef" & identifier)) , (pointer_expression "&to->super_Symbol" & (field_expression "to->super_Symbol" identifier -> field_identifier)) ))) ;)) (expression_statement "aVar10 = _adjust_dyndef;" (assignment_expression "aVar10 = _adjust_dyndef" identifier = identifier) ;) (expression_statement "pcVar16 = (char *)gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");" (assignment_expression "pcVar16 = (char *)gettext("STT_COMMON symbol \'%s\' in %s is not in a common section")" identifier = (cast_expression "(char *)gettext("STT_COMMON symbol \'%s\' in %s is not in a common section")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("STT_COMMON symbol \'%s\' in %s is not in a common section")" identifier (argument_list "("STT_COMMON symbol \'%s\' in %s is not in a common section")" ( (string_literal ""STT_COMMON symbol \'%s\' in %s is not in a common section"" " string_content escape_sequence string_content escape_sequence string_content ") ))))) ;) comment (expression_statement "gold_warning(pcVar16,aVar10.object,uVar8);" (call_expression "gold_warning(pcVar16,aVar10.object,uVar8)" identifier (argument_list "(pcVar16,aVar10.object,uVar8)" ( identifier , (field_expression "aVar10.object" identifier . field_identifier) , identifier ))) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)_adjust_dyndef == &local_48) {\n            return;\n          }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)_adjust_dyndef == &local_48)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)_adjust_dyndef == &local_48)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n               *)_adjust_dyndef == &local_48" (binary_expression "allocator<char>_>_9\n               *)_adjust_dyndef" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n               *)_adjust_dyndef" identifier * (ERROR ")" )) identifier)) == (pointer_expression "&local_48" & 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_002c1bd9;" goto statement_identifier ;) })) (expression_statement "puVar1 = &(to->super_Symbol).field_0x3a;" (assignment_expression "puVar1 = &(to->super_Symbol).field_0x3a" identifier = (pointer_expression "&(to->super_Symbol).field_0x3a" & (field_expression "(to->super_Symbol).field_0x3a" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "*puVar1 = *puVar1 | 0x80;" (assignment_expression "*puVar1 = *puVar1 | 0x80" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 | 0x80" (pointer_expression "*puVar1" * identifier) | number_literal)) ;) (expression_statement "iVar12 = (*object->_vptr_Object[5])(object);" (assignment_expression "iVar12 = (*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 )))) ;) (expression_statement "lVar14 = CONCAT44(extraout_var,iVar12);" (assignment_expression "lVar14 = CONCAT44(extraout_var,iVar12)" identifier = (call_expression "CONCAT44(extraout_var,iVar12)" identifier (argument_list "(extraout_var,iVar12)" ( identifier , identifier )))) ;) }) (else_clause "else {\n      if ((st_shndx == 0) && (((byte)(to->super_Symbol).field_0x39 & 3) - 1 < 2)) {\n        return;\n      }\n      puVar1 = &(to->super_Symbol).field_0x3b;\n      *puVar1 = *puVar1 | 1;\n      iVar12 = (*object->_vptr_Object[5])(object);\n      lVar14 = CONCAT44(extraout_var_02,iVar12);\n    }" else (compound_statement "{\n      if ((st_shndx == 0) && (((byte)(to->super_Symbol).field_0x39 & 3) - 1 < 2)) {\n        return;\n      }\n      puVar1 = &(to->super_Symbol).field_0x3b;\n      *puVar1 = *puVar1 | 1;\n      iVar12 = (*object->_vptr_Object[5])(object);\n      lVar14 = CONCAT44(extraout_var_02,iVar12);\n    }" { (if_statement "if ((st_shndx == 0) && (((byte)(to->super_Symbol).field_0x39 & 3) - 1 < 2)) {\n        return;\n      }" if (parenthesized_expression "((st_shndx == 0) && (((byte)(to->super_Symbol).field_0x39 & 3) - 1 < 2))" ( (binary_expression "(st_shndx == 0) && (((byte)(to->super_Symbol).field_0x39 & 3) - 1 < 2)" (parenthesized_expression "(st_shndx == 0)" ( (binary_expression "st_shndx == 0" identifier == number_literal) )) && (parenthesized_expression "(((byte)(to->super_Symbol).field_0x39 & 3) - 1 < 2)" ( (binary_expression "((byte)(to->super_Symbol).field_0x39 & 3) - 1 < 2" (binary_expression "((byte)(to->super_Symbol).field_0x39 & 3) - 1" (parenthesized_expression "((byte)(to->super_Symbol).field_0x39 & 3)" ( (binary_expression "(byte)(to->super_Symbol).field_0x39 & 3" (field_expression "(byte)(to->super_Symbol).field_0x39" (call_expression "(byte)(to->super_Symbol)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) ))) . field_identifier) & number_literal) )) - number_literal) < number_literal) ))) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "puVar1 = &(to->super_Symbol).field_0x3b;" (assignment_expression "puVar1 = &(to->super_Symbol).field_0x3b" identifier = (pointer_expression "&(to->super_Symbol).field_0x3b" & (field_expression "(to->super_Symbol).field_0x3b" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "*puVar1 = *puVar1 | 1;" (assignment_expression "*puVar1 = *puVar1 | 1" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 | 1" (pointer_expression "*puVar1" * identifier) | number_literal)) ;) (expression_statement "iVar12 = (*object->_vptr_Object[5])(object);" (assignment_expression "iVar12 = (*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 )))) ;) (expression_statement "lVar14 = CONCAT44(extraout_var_02,iVar12);" (assignment_expression "lVar14 = CONCAT44(extraout_var_02,iVar12)" identifier = (call_expression "CONCAT44(extraout_var_02,iVar12)" identifier (argument_list "(extraout_var_02,iVar12)" ( identifier , identifier )))) ;) }))) (if_statement "if ((lVar14 == 0) && ((object->field_0x3c & 1) == 0)) {\n      puVar1 = &(to->super_Symbol).field_0x3b;\n      *puVar1 = *puVar1 | 0x40;\n    }" if (parenthesized_expression "((lVar14 == 0) && ((object->field_0x3c & 1) == 0))" ( (binary_expression "(lVar14 == 0) && ((object->field_0x3c & 1) == 0)" (parenthesized_expression "(lVar14 == 0)" ( (binary_expression "lVar14 == 0" identifier == number_literal) )) && (parenthesized_expression "((object->field_0x3c & 1) == 0)" ( (binary_expression "(object->field_0x3c & 1) == 0" (parenthesized_expression "(object->field_0x3c & 1)" ( (binary_expression "object->field_0x3c & 1" (field_expression "object->field_0x3c" identifier -> field_identifier) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n      puVar1 = &(to->super_Symbol).field_0x3b;\n      *puVar1 = *puVar1 | 0x40;\n    }" { (expression_statement "puVar1 = &(to->super_Symbol).field_0x3b;" (assignment_expression "puVar1 = &(to->super_Symbol).field_0x3b" identifier = (pointer_expression "&(to->super_Symbol).field_0x3b" & (field_expression "(to->super_Symbol).field_0x3b" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "*puVar1 = *puVar1 | 0x40;" (assignment_expression "*puVar1 = *puVar1 | 0x40" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 | 0x40" (pointer_expression "*puVar1" * identifier) | number_literal)) ;) })) (if_statement "if ((((to->super_Symbol).field_0x3a & 7) == 0) &&\n       (iVar12 = (*((to->super_Symbol).u1_.object)->_vptr_Object[5])(),\n       CONCAT44(extraout_var_00,iVar12) != 0)) {\n      pGVar15 = parameters->options_;\n      if (pGVar15 == (General_options *)0x0) goto LAB_002c17cc;\n      if (pGVar15->plugins_->in_replacement_phase_ != false) {\n        if ((((((to->super_Symbol).field_0x3a & 7) != 0) ||\n             (((to->super_Symbol).field_0x3b & 0x20) != 0)) ||\n            (bVar11 = Symbol::is_common_shndx((to->super_Symbol).u2_.shndx), !bVar11)) ||\n           ((is_ordinary || (bVar11 = Symbol::is_common_shndx(st_shndx), !bVar11)))) {\n          override<64,_false>(this,to,sym,st_shndx,is_ordinary,object,version);\n          return;\n        }\n        uVar5 = to->symsize_;\n        uVar7 = to->value_;\n        override<64,_false>(this,to,sym,st_shndx,false,object,version);\n        if (to->symsize_ < uVar5) {\n          to->symsize_ = uVar5;\n        }\n        if (uVar7 <= to->value_) {\n          return;\n        }\n        to->value_ = uVar7;\n        return;\n      }\n    }\n    else {\n      pGVar15 = parameters->options_;\n      if (pGVar15 == (General_options *)0x0) goto LAB_002c17cc;\n    }" if (parenthesized_expression "((((to->super_Symbol).field_0x3a & 7) == 0) &&\n       (iVar12 = (*((to->super_Symbol).u1_.object)->_vptr_Object[5])(),\n       CONCAT44(extraout_var_00,iVar12) != 0))" ( (binary_expression "(((to->super_Symbol).field_0x3a & 7) == 0) &&\n       (iVar12 = (*((to->super_Symbol).u1_.object)->_vptr_Object[5])(),\n       CONCAT44(extraout_var_00,iVar12) != 0)" (parenthesized_expression "(((to->super_Symbol).field_0x3a & 7) == 0)" ( (binary_expression "((to->super_Symbol).field_0x3a & 7) == 0" (parenthesized_expression "((to->super_Symbol).field_0x3a & 7)" ( (binary_expression "(to->super_Symbol).field_0x3a & 7" (field_expression "(to->super_Symbol).field_0x3a" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal) )) && (parenthesized_expression "(iVar12 = (*((to->super_Symbol).u1_.object)->_vptr_Object[5])(),\n       CONCAT44(extraout_var_00,iVar12) != 0)" ( (comma_expression "iVar12 = (*((to->super_Symbol).u1_.object)->_vptr_Object[5])(),\n       CONCAT44(extraout_var_00,iVar12) != 0" (assignment_expression "iVar12 = (*((to->super_Symbol).u1_.object)->_vptr_Object[5])()" identifier = (call_expression "(*((to->super_Symbol).u1_.object)->_vptr_Object[5])()" (parenthesized_expression "(*((to->super_Symbol).u1_.object)->_vptr_Object[5])" ( (pointer_expression "*((to->super_Symbol).u1_.object)->_vptr_Object[5]" * (subscript_expression "((to->super_Symbol).u1_.object)->_vptr_Object[5]" (field_expression "((to->super_Symbol).u1_.object)->_vptr_Object" (parenthesized_expression "((to->super_Symbol).u1_.object)" ( (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) )) -> field_identifier) [ number_literal ])) )) (argument_list "()" ( )))) , (binary_expression "CONCAT44(extraout_var_00,iVar12) != 0" (call_expression "CONCAT44(extraout_var_00,iVar12)" identifier (argument_list "(extraout_var_00,iVar12)" ( identifier , identifier ))) != number_literal)) ))) )) (compound_statement "{\n      pGVar15 = parameters->options_;\n      if (pGVar15 == (General_options *)0x0) goto LAB_002c17cc;\n      if (pGVar15->plugins_->in_replacement_phase_ != false) {\n        if ((((((to->super_Symbol).field_0x3a & 7) != 0) ||\n             (((to->super_Symbol).field_0x3b & 0x20) != 0)) ||\n            (bVar11 = Symbol::is_common_shndx((to->super_Symbol).u2_.shndx), !bVar11)) ||\n           ((is_ordinary || (bVar11 = Symbol::is_common_shndx(st_shndx), !bVar11)))) {\n          override<64,_false>(this,to,sym,st_shndx,is_ordinary,object,version);\n          return;\n        }\n        uVar5 = to->symsize_;\n        uVar7 = to->value_;\n        override<64,_false>(this,to,sym,st_shndx,false,object,version);\n        if (to->symsize_ < uVar5) {\n          to->symsize_ = uVar5;\n        }\n        if (uVar7 <= to->value_) {\n          return;\n        }\n        to->value_ = uVar7;\n        return;\n      }\n    }" { (expression_statement "pGVar15 = parameters->options_;" (assignment_expression "pGVar15 = parameters->options_" identifier = (field_expression "parameters->options_" identifier -> field_identifier)) ;) (if_statement "if (pGVar15 == (General_options *)0x0) goto LAB_002c17cc;" if (parenthesized_expression "(pGVar15 == (General_options *)0x0)" ( (binary_expression "pGVar15 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_002c17cc;" goto statement_identifier ;)) (if_statement "if (pGVar15->plugins_->in_replacement_phase_ != false) {\n        if ((((((to->super_Symbol).field_0x3a & 7) != 0) ||\n             (((to->super_Symbol).field_0x3b & 0x20) != 0)) ||\n            (bVar11 = Symbol::is_common_shndx((to->super_Symbol).u2_.shndx), !bVar11)) ||\n           ((is_ordinary || (bVar11 = Symbol::is_common_shndx(st_shndx), !bVar11)))) {\n          override<64,_false>(this,to,sym,st_shndx,is_ordinary,object,version);\n          return;\n        }\n        uVar5 = to->symsize_;\n        uVar7 = to->value_;\n        override<64,_false>(this,to,sym,st_shndx,false,object,version);\n        if (to->symsize_ < uVar5) {\n          to->symsize_ = uVar5;\n        }\n        if (uVar7 <= to->value_) {\n          return;\n        }\n        to->value_ = uVar7;\n        return;\n      }" if (parenthesized_expression "(pGVar15->plugins_->in_replacement_phase_ != false)" ( (binary_expression "pGVar15->plugins_->in_replacement_phase_ != false" (field_expression "pGVar15->plugins_->in_replacement_phase_" (field_expression "pGVar15->plugins_" identifier -> field_identifier) -> field_identifier) != false) )) (compound_statement "{\n        if ((((((to->super_Symbol).field_0x3a & 7) != 0) ||\n             (((to->super_Symbol).field_0x3b & 0x20) != 0)) ||\n            (bVar11 = Symbol::is_common_shndx((to->super_Symbol).u2_.shndx), !bVar11)) ||\n           ((is_ordinary || (bVar11 = Symbol::is_common_shndx(st_shndx), !bVar11)))) {\n          override<64,_false>(this,to,sym,st_shndx,is_ordinary,object,version);\n          return;\n        }\n        uVar5 = to->symsize_;\n        uVar7 = to->value_;\n        override<64,_false>(this,to,sym,st_shndx,false,object,version);\n        if (to->symsize_ < uVar5) {\n          to->symsize_ = uVar5;\n        }\n        if (uVar7 <= to->value_) {\n          return;\n        }\n        to->value_ = uVar7;\n        return;\n      }" { (if_statement "if ((((((to->super_Symbol).field_0x3a & 7) != 0) ||\n             (((to->super_Symbol).field_0x3b & 0x20) != 0)) ||\n            (bVar11 = Symbol::is_common_shndx((to->super_Symbol).u2_.shndx), !bVar11)) ||\n           ((is_ordinary || (bVar11 = Symbol::is_common_shndx(st_shndx), !bVar11)))) {\n          override<64,_false>(this,to,sym,st_shndx,is_ordinary,object,version);\n          return;\n        }" if (parenthesized_expression "((((((to->super_Symbol).field_0x3a & 7) != 0) ||\n             (((to->super_Symbol).field_0x3b & 0x20) != 0)) ||\n            (bVar11 = Symbol::is_common_shndx((to->super_Symbol).u2_.shndx), !bVar11)) ||\n           ((is_ordinary || (bVar11 = Symbol::is_common_shndx(st_shndx), !bVar11))))" ( (binary_expression "(((((to->super_Symbol).field_0x3a & 7) != 0) ||\n             (((to->super_Symbol).field_0x3b & 0x20) != 0)) ||\n            (bVar11 = Symbol::is_common_shndx((to->super_Symbol).u2_.shndx), !bVar11)) ||\n           ((is_ordinary || (bVar11 = Symbol::is_common_shndx(st_shndx), !bVar11)))" (parenthesized_expression "(((((to->super_Symbol).field_0x3a & 7) != 0) ||\n             (((to->super_Symbol).field_0x3b & 0x20) != 0)) ||\n            (bVar11 = Symbol::is_common_shndx((to->super_Symbol).u2_.shndx), !bVar11))" ( (binary_expression "((((to->super_Symbol).field_0x3a & 7) != 0) ||\n             (((to->super_Symbol).field_0x3b & 0x20) != 0)) ||\n            (bVar11 = Symbol::is_common_shndx((to->super_Symbol).u2_.shndx), !bVar11)" (parenthesized_expression "((((to->super_Symbol).field_0x3a & 7) != 0) ||\n             (((to->super_Symbol).field_0x3b & 0x20) != 0))" ( (binary_expression "(((to->super_Symbol).field_0x3a & 7) != 0) ||\n             (((to->super_Symbol).field_0x3b & 0x20) != 0)" (parenthesized_expression "(((to->super_Symbol).field_0x3a & 7) != 0)" ( (binary_expression "((to->super_Symbol).field_0x3a & 7) != 0" (parenthesized_expression "((to->super_Symbol).field_0x3a & 7)" ( (binary_expression "(to->super_Symbol).field_0x3a & 7" (field_expression "(to->super_Symbol).field_0x3a" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal) )) != number_literal) )) || (parenthesized_expression "(((to->super_Symbol).field_0x3b & 0x20) != 0)" ( (binary_expression "((to->super_Symbol).field_0x3b & 0x20) != 0" (parenthesized_expression "((to->super_Symbol).field_0x3b & 0x20)" ( (binary_expression "(to->super_Symbol).field_0x3b & 0x20" (field_expression "(to->super_Symbol).field_0x3b" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "(bVar11 = Symbol::is_common_shndx((to->super_Symbol).u2_.shndx), !bVar11)" ( (ERROR "bVar11 = Symbol::" (assignment_expression "bVar11 = Symbol" identifier = identifier) : :) (comma_expression "is_common_shndx((to->super_Symbol).u2_.shndx), !bVar11" (call_expression "is_common_shndx((to->super_Symbol).u2_.shndx)" 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) ))) , (unary_expression "!bVar11" ! identifier)) ))) )) || (parenthesized_expression "((is_ordinary || (bVar11 = Symbol::is_common_shndx(st_shndx), !bVar11)))" ( (parenthesized_expression "(is_ordinary || (bVar11 = Symbol::is_common_shndx(st_shndx), !bVar11))" ( (binary_expression "is_ordinary || (bVar11 = Symbol::is_common_shndx(st_shndx), !bVar11)" identifier || (parenthesized_expression "(bVar11 = Symbol::is_common_shndx(st_shndx), !bVar11)" ( (ERROR "bVar11 = Symbol::" (assignment_expression "bVar11 = Symbol" identifier = identifier) : :) (comma_expression "is_common_shndx(st_shndx), !bVar11" (call_expression "is_common_shndx(st_shndx)" identifier (argument_list "(st_shndx)" ( identifier ))) , (unary_expression "!bVar11" ! identifier)) ))) )) ))) )) (compound_statement "{\n          override<64,_false>(this,to,sym,st_shndx,is_ordinary,object,version);\n          return;\n        }" { (expression_statement "override<64,_false>(this,to,sym,st_shndx,is_ordinary,object,version);" (comma_expression "override<64,_false>(this,to,sym,st_shndx,is_ordinary,object,version)" (binary_expression "override<64" identifier < number_literal) , (binary_expression "_false>(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 "uVar5 = to->symsize_;" (assignment_expression "uVar5 = to->symsize_" identifier = (field_expression "to->symsize_" identifier -> field_identifier)) ;) (expression_statement "uVar7 = to->value_;" (assignment_expression "uVar7 = to->value_" identifier = (field_expression "to->value_" identifier -> field_identifier)) ;) (expression_statement "override<64,_false>(this,to,sym,st_shndx,false,object,version);" (comma_expression "override<64,_false>(this,to,sym,st_shndx,false,object,version)" (binary_expression "override<64" identifier < number_literal) , (binary_expression "_false>(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 (to->symsize_ < uVar5) {\n          to->symsize_ = uVar5;\n        }" if (parenthesized_expression "(to->symsize_ < uVar5)" ( (binary_expression "to->symsize_ < uVar5" (field_expression "to->symsize_" identifier -> field_identifier) < identifier) )) (compound_statement "{\n          to->symsize_ = uVar5;\n        }" { (expression_statement "to->symsize_ = uVar5;" (assignment_expression "to->symsize_ = uVar5" (field_expression "to->symsize_" identifier -> field_identifier) = identifier) ;) })) (if_statement "if (uVar7 <= to->value_) {\n          return;\n        }" if (parenthesized_expression "(uVar7 <= to->value_)" ( (binary_expression "uVar7 <= to->value_" identifier <= (field_expression "to->value_" identifier -> field_identifier)) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (expression_statement "to->value_ = uVar7;" (assignment_expression "to->value_ = uVar7" (field_expression "to->value_" identifier -> field_identifier) = identifier) ;) (return_statement "return;" return ;) })) }) (else_clause "else {\n      pGVar15 = parameters->options_;\n      if (pGVar15 == (General_options *)0x0) goto LAB_002c17cc;\n    }" else (compound_statement "{\n      pGVar15 = parameters->options_;\n      if (pGVar15 == (General_options *)0x0) goto LAB_002c17cc;\n    }" { (expression_statement "pGVar15 = parameters->options_;" (assignment_expression "pGVar15 = parameters->options_" identifier = (field_expression "parameters->options_" identifier -> field_identifier)) ;) (if_statement "if (pGVar15 == (General_options *)0x0) goto LAB_002c17cc;" if (parenthesized_expression "(pGVar15 == (General_options *)0x0)" ( (binary_expression "pGVar15 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_002c17cc;" goto statement_identifier ;)) }))) (if_statement "if ((pGVar15->detect_odr_violations_).value != false) {\n      pSVar4 = sym->p_;\n      if ((((((int)(uint)pSVar4->st_info >> 4 == 2) ||\n            ((byte)(to->super_Symbol).field_0x38 >> 4 == 2)) &&\n           (((orig_st_shndx != 0 & bVar18) != 0 &&\n            ((((uVar13 != 0 && (pSVar4->st_size != 0)) && (to->symsize_ != 0)) &&\n             (((pSVar4->st_info & 0xf) != ((to->super_Symbol).field_0x38 & 0xf) ||\n              (to->symsize_ != pSVar4->st_size)))))))) &&\n          (pcVar16 = (to->super_Symbol).name_, *pcVar16 == '_')) && (pcVar16[1] == 'Z')) {\n        local_68 = pSVar4->st_value;\n        _adjust_common_sizes = object;\n        local_70 = orig_st_shndx;\n        if (((to->super_Symbol).field_0x3a & 7) != 0) {\nLAB_002c1bd9:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n        }\n        _adjust_dyndef = (to->super_Symbol).u1_;\n        local_48._M_allocated_capacity = to->value_;\n        local_88 = pcVar16;\n        local_50 = uVar13;\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                           *)&this->candidate_odr_violations_,&local_88);\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                  ((_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                    *)__node_gen._M_h,&adjust_common_sizes,&__node_gen,1);\n        local_88 = (to->super_Symbol).name_;\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                           *)&this->candidate_odr_violations_,&local_88);\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                  ((_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                    *)__node_gen._M_h,&adjust_dyndef,&__node_gen,1);\n      }\n    }" if (parenthesized_expression "((pGVar15->detect_odr_violations_).value != false)" ( (binary_expression "(pGVar15->detect_odr_violations_).value != false" (field_expression "(pGVar15->detect_odr_violations_).value" (parenthesized_expression "(pGVar15->detect_odr_violations_)" ( (field_expression "pGVar15->detect_odr_violations_" identifier -> field_identifier) )) . field_identifier) != false) )) (compound_statement "{\n      pSVar4 = sym->p_;\n      if ((((((int)(uint)pSVar4->st_info >> 4 == 2) ||\n            ((byte)(to->super_Symbol).field_0x38 >> 4 == 2)) &&\n           (((orig_st_shndx != 0 & bVar18) != 0 &&\n            ((((uVar13 != 0 && (pSVar4->st_size != 0)) && (to->symsize_ != 0)) &&\n             (((pSVar4->st_info & 0xf) != ((to->super_Symbol).field_0x38 & 0xf) ||\n              (to->symsize_ != pSVar4->st_size)))))))) &&\n          (pcVar16 = (to->super_Symbol).name_, *pcVar16 == '_')) && (pcVar16[1] == 'Z')) {\n        local_68 = pSVar4->st_value;\n        _adjust_common_sizes = object;\n        local_70 = orig_st_shndx;\n        if (((to->super_Symbol).field_0x3a & 7) != 0) {\nLAB_002c1bd9:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n        }\n        _adjust_dyndef = (to->super_Symbol).u1_;\n        local_48._M_allocated_capacity = to->value_;\n        local_88 = pcVar16;\n        local_50 = uVar13;\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                           *)&this->candidate_odr_violations_,&local_88);\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                  ((_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                    *)__node_gen._M_h,&adjust_common_sizes,&__node_gen,1);\n        local_88 = (to->super_Symbol).name_;\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                           *)&this->candidate_odr_violations_,&local_88);\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                  ((_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                    *)__node_gen._M_h,&adjust_dyndef,&__node_gen,1);\n      }\n    }" { (expression_statement "pSVar4 = sym->p_;" (assignment_expression "pSVar4 = sym->p_" identifier = (field_expression "sym->p_" identifier -> field_identifier)) ;) (if_statement "if ((((((int)(uint)pSVar4->st_info >> 4 == 2) ||\n            ((byte)(to->super_Symbol).field_0x38 >> 4 == 2)) &&\n           (((orig_st_shndx != 0 & bVar18) != 0 &&\n            ((((uVar13 != 0 && (pSVar4->st_size != 0)) && (to->symsize_ != 0)) &&\n             (((pSVar4->st_info & 0xf) != ((to->super_Symbol).field_0x38 & 0xf) ||\n              (to->symsize_ != pSVar4->st_size)))))))) &&\n          (pcVar16 = (to->super_Symbol).name_, *pcVar16 == '_')) && (pcVar16[1] == 'Z')) {\n        local_68 = pSVar4->st_value;\n        _adjust_common_sizes = object;\n        local_70 = orig_st_shndx;\n        if (((to->super_Symbol).field_0x3a & 7) != 0) {\nLAB_002c1bd9:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n        }\n        _adjust_dyndef = (to->super_Symbol).u1_;\n        local_48._M_allocated_capacity = to->value_;\n        local_88 = pcVar16;\n        local_50 = uVar13;\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                           *)&this->candidate_odr_violations_,&local_88);\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                  ((_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                    *)__node_gen._M_h,&adjust_common_sizes,&__node_gen,1);\n        local_88 = (to->super_Symbol).name_;\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                           *)&this->candidate_odr_violations_,&local_88);\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                  ((_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                    *)__node_gen._M_h,&adjust_dyndef,&__node_gen,1);\n      }" if (parenthesized_expression "((((((int)(uint)pSVar4->st_info >> 4 == 2) ||\n            ((byte)(to->super_Symbol).field_0x38 >> 4 == 2)) &&\n           (((orig_st_shndx != 0 & bVar18) != 0 &&\n            ((((uVar13 != 0 && (pSVar4->st_size != 0)) && (to->symsize_ != 0)) &&\n             (((pSVar4->st_info & 0xf) != ((to->super_Symbol).field_0x38 & 0xf) ||\n              (to->symsize_ != pSVar4->st_size)))))))) &&\n          (pcVar16 = (to->super_Symbol).name_, *pcVar16 == '_')) && (pcVar16[1] == 'Z'))" ( (binary_expression "(((((int)(uint)pSVar4->st_info >> 4 == 2) ||\n            ((byte)(to->super_Symbol).field_0x38 >> 4 == 2)) &&\n           (((orig_st_shndx != 0 & bVar18) != 0 &&\n            ((((uVar13 != 0 && (pSVar4->st_size != 0)) && (to->symsize_ != 0)) &&\n             (((pSVar4->st_info & 0xf) != ((to->super_Symbol).field_0x38 & 0xf) ||\n              (to->symsize_ != pSVar4->st_size)))))))) &&\n          (pcVar16 = (to->super_Symbol).name_, *pcVar16 == '_')) && (pcVar16[1] == 'Z')" (parenthesized_expression "(((((int)(uint)pSVar4->st_info >> 4 == 2) ||\n            ((byte)(to->super_Symbol).field_0x38 >> 4 == 2)) &&\n           (((orig_st_shndx != 0 & bVar18) != 0 &&\n            ((((uVar13 != 0 && (pSVar4->st_size != 0)) && (to->symsize_ != 0)) &&\n             (((pSVar4->st_info & 0xf) != ((to->super_Symbol).field_0x38 & 0xf) ||\n              (to->symsize_ != pSVar4->st_size)))))))) &&\n          (pcVar16 = (to->super_Symbol).name_, *pcVar16 == '_'))" ( (binary_expression "((((int)(uint)pSVar4->st_info >> 4 == 2) ||\n            ((byte)(to->super_Symbol).field_0x38 >> 4 == 2)) &&\n           (((orig_st_shndx != 0 & bVar18) != 0 &&\n            ((((uVar13 != 0 && (pSVar4->st_size != 0)) && (to->symsize_ != 0)) &&\n             (((pSVar4->st_info & 0xf) != ((to->super_Symbol).field_0x38 & 0xf) ||\n              (to->symsize_ != pSVar4->st_size)))))))) &&\n          (pcVar16 = (to->super_Symbol).name_, *pcVar16 == '_')" (parenthesized_expression "((((int)(uint)pSVar4->st_info >> 4 == 2) ||\n            ((byte)(to->super_Symbol).field_0x38 >> 4 == 2)) &&\n           (((orig_st_shndx != 0 & bVar18) != 0 &&\n            ((((uVar13 != 0 && (pSVar4->st_size != 0)) && (to->symsize_ != 0)) &&\n             (((pSVar4->st_info & 0xf) != ((to->super_Symbol).field_0x38 & 0xf) ||\n              (to->symsize_ != pSVar4->st_size))))))))" ( (binary_expression "(((int)(uint)pSVar4->st_info >> 4 == 2) ||\n            ((byte)(to->super_Symbol).field_0x38 >> 4 == 2)) &&\n           (((orig_st_shndx != 0 & bVar18) != 0 &&\n            ((((uVar13 != 0 && (pSVar4->st_size != 0)) && (to->symsize_ != 0)) &&\n             (((pSVar4->st_info & 0xf) != ((to->super_Symbol).field_0x38 & 0xf) ||\n              (to->symsize_ != pSVar4->st_size)))))))" (parenthesized_expression "(((int)(uint)pSVar4->st_info >> 4 == 2) ||\n            ((byte)(to->super_Symbol).field_0x38 >> 4 == 2))" ( (binary_expression "((int)(uint)pSVar4->st_info >> 4 == 2) ||\n            ((byte)(to->super_Symbol).field_0x38 >> 4 == 2)" (parenthesized_expression "((int)(uint)pSVar4->st_info >> 4 == 2)" ( (binary_expression "(int)(uint)pSVar4->st_info >> 4 == 2" (binary_expression "(int)(uint)pSVar4->st_info >> 4" (cast_expression "(int)(uint)pSVar4->st_info" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)pSVar4->st_info" ( (type_descriptor "uint" type_identifier) ) (field_expression "pSVar4->st_info" identifier -> field_identifier))) >> number_literal) == number_literal) )) || (parenthesized_expression "((byte)(to->super_Symbol).field_0x38 >> 4 == 2)" ( (binary_expression "(byte)(to->super_Symbol).field_0x38 >> 4 == 2" (binary_expression "(byte)(to->super_Symbol).field_0x38 >> 4" (field_expression "(byte)(to->super_Symbol).field_0x38" (call_expression "(byte)(to->super_Symbol)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) ))) . field_identifier) >> number_literal) == number_literal) ))) )) && (parenthesized_expression "(((orig_st_shndx != 0 & bVar18) != 0 &&\n            ((((uVar13 != 0 && (pSVar4->st_size != 0)) && (to->symsize_ != 0)) &&\n             (((pSVar4->st_info & 0xf) != ((to->super_Symbol).field_0x38 & 0xf) ||\n              (to->symsize_ != pSVar4->st_size)))))))" ( (parenthesized_expression "((orig_st_shndx != 0 & bVar18) != 0 &&\n            ((((uVar13 != 0 && (pSVar4->st_size != 0)) && (to->symsize_ != 0)) &&\n             (((pSVar4->st_info & 0xf) != ((to->super_Symbol).field_0x38 & 0xf) ||\n              (to->symsize_ != pSVar4->st_size))))))" ( (binary_expression "(orig_st_shndx != 0 & bVar18) != 0 &&\n            ((((uVar13 != 0 && (pSVar4->st_size != 0)) && (to->symsize_ != 0)) &&\n             (((pSVar4->st_info & 0xf) != ((to->super_Symbol).field_0x38 & 0xf) ||\n              (to->symsize_ != pSVar4->st_size)))))" (binary_expression "(orig_st_shndx != 0 & bVar18) != 0" (parenthesized_expression "(orig_st_shndx != 0 & bVar18)" ( (binary_expression "orig_st_shndx != 0 & bVar18" (binary_expression "orig_st_shndx != 0" identifier != number_literal) & identifier) )) != number_literal) && (parenthesized_expression "((((uVar13 != 0 && (pSVar4->st_size != 0)) && (to->symsize_ != 0)) &&\n             (((pSVar4->st_info & 0xf) != ((to->super_Symbol).field_0x38 & 0xf) ||\n              (to->symsize_ != pSVar4->st_size)))))" ( (parenthesized_expression "(((uVar13 != 0 && (pSVar4->st_size != 0)) && (to->symsize_ != 0)) &&\n             (((pSVar4->st_info & 0xf) != ((to->super_Symbol).field_0x38 & 0xf) ||\n              (to->symsize_ != pSVar4->st_size))))" ( (binary_expression "((uVar13 != 0 && (pSVar4->st_size != 0)) && (to->symsize_ != 0)) &&\n             (((pSVar4->st_info & 0xf) != ((to->super_Symbol).field_0x38 & 0xf) ||\n              (to->symsize_ != pSVar4->st_size)))" (parenthesized_expression "((uVar13 != 0 && (pSVar4->st_size != 0)) && (to->symsize_ != 0))" ( (binary_expression "(uVar13 != 0 && (pSVar4->st_size != 0)) && (to->symsize_ != 0)" (parenthesized_expression "(uVar13 != 0 && (pSVar4->st_size != 0))" ( (binary_expression "uVar13 != 0 && (pSVar4->st_size != 0)" (binary_expression "uVar13 != 0" identifier != number_literal) && (parenthesized_expression "(pSVar4->st_size != 0)" ( (binary_expression "pSVar4->st_size != 0" (field_expression "pSVar4->st_size" identifier -> field_identifier) != number_literal) ))) )) && (parenthesized_expression "(to->symsize_ != 0)" ( (binary_expression "to->symsize_ != 0" (field_expression "to->symsize_" identifier -> field_identifier) != number_literal) ))) )) && (parenthesized_expression "(((pSVar4->st_info & 0xf) != ((to->super_Symbol).field_0x38 & 0xf) ||\n              (to->symsize_ != pSVar4->st_size)))" ( (parenthesized_expression "((pSVar4->st_info & 0xf) != ((to->super_Symbol).field_0x38 & 0xf) ||\n              (to->symsize_ != pSVar4->st_size))" ( (binary_expression "(pSVar4->st_info & 0xf) != ((to->super_Symbol).field_0x38 & 0xf) ||\n              (to->symsize_ != pSVar4->st_size)" (binary_expression "(pSVar4->st_info & 0xf) != ((to->super_Symbol).field_0x38 & 0xf)" (parenthesized_expression "(pSVar4->st_info & 0xf)" ( (binary_expression "pSVar4->st_info & 0xf" (field_expression "pSVar4->st_info" identifier -> field_identifier) & number_literal) )) != (parenthesized_expression "((to->super_Symbol).field_0x38 & 0xf)" ( (binary_expression "(to->super_Symbol).field_0x38 & 0xf" (field_expression "(to->super_Symbol).field_0x38" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal) ))) || (parenthesized_expression "(to->symsize_ != pSVar4->st_size)" ( (binary_expression "to->symsize_ != pSVar4->st_size" (field_expression "to->symsize_" identifier -> field_identifier) != (field_expression "pSVar4->st_size" identifier -> field_identifier)) ))) )) ))) )) ))) )) ))) )) && (parenthesized_expression "(pcVar16 = (to->super_Symbol).name_, *pcVar16 == '_')" ( (comma_expression "pcVar16 = (to->super_Symbol).name_, *pcVar16 == '_'" (assignment_expression "pcVar16 = (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 "*pcVar16 == '_'" (pointer_expression "*pcVar16" * identifier) == (char_literal "'_'" ' character '))) ))) )) && (parenthesized_expression "(pcVar16[1] == 'Z')" ( (binary_expression "pcVar16[1] == 'Z'" (subscript_expression "pcVar16[1]" identifier [ number_literal ]) == (char_literal "'Z'" ' character ')) ))) )) (compound_statement "{\n        local_68 = pSVar4->st_value;\n        _adjust_common_sizes = object;\n        local_70 = orig_st_shndx;\n        if (((to->super_Symbol).field_0x3a & 7) != 0) {\nLAB_002c1bd9:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n        }\n        _adjust_dyndef = (to->super_Symbol).u1_;\n        local_48._M_allocated_capacity = to->value_;\n        local_88 = pcVar16;\n        local_50 = uVar13;\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                           *)&this->candidate_odr_violations_,&local_88);\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                  ((_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                    *)__node_gen._M_h,&adjust_common_sizes,&__node_gen,1);\n        local_88 = (to->super_Symbol).name_;\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                           *)&this->candidate_odr_violations_,&local_88);\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                  ((_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                    *)__node_gen._M_h,&adjust_dyndef,&__node_gen,1);\n      }" { (expression_statement "local_68 = pSVar4->st_value;" (assignment_expression "local_68 = pSVar4->st_value" identifier = (field_expression "pSVar4->st_value" identifier -> field_identifier)) ;) (expression_statement "_adjust_common_sizes = object;" (assignment_expression "_adjust_common_sizes = object" identifier = identifier) ;) (expression_statement "local_70 = orig_st_shndx;" (assignment_expression "local_70 = orig_st_shndx" identifier = identifier) ;) (if_statement "if (((to->super_Symbol).field_0x3a & 7) != 0) {\nLAB_002c1bd9:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n        }" if (parenthesized_expression "(((to->super_Symbol).field_0x3a & 7) != 0)" ( (binary_expression "((to->super_Symbol).field_0x3a & 7) != 0" (parenthesized_expression "((to->super_Symbol).field_0x3a & 7)" ( (binary_expression "(to->super_Symbol).field_0x3a & 7" (field_expression "(to->super_Symbol).field_0x3a" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_002c1bd9:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n        }" { (labeled_statement "LAB_002c1bd9:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/symtab.h",0xa1,"object");" statement_identifier : comment (expression_statement "do_gold_unreachable("../../gold/symtab.h",0xa1,"object");" (call_expression "do_gold_unreachable("../../gold/symtab.h",0xa1,"object")" identifier (argument_list "("../../gold/symtab.h",0xa1,"object")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""object"" " string_content ") ))) ;)) })) (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 "local_48._M_allocated_capacity = to->value_;" (assignment_expression "local_48._M_allocated_capacity = to->value_" (field_expression "local_48._M_allocated_capacity" identifier . field_identifier) = (field_expression "to->value_" identifier -> field_identifier)) ;) (expression_statement "local_88 = pcVar16;" (assignment_expression "local_88 = pcVar16" identifier = identifier) ;) (expression_statement "local_50 = uVar13;" (assignment_expression "local_50 = uVar13" 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                           *)&this->candidate_odr_violations_,&local_88);" 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                           *)&this->candidate_odr_violations_,&local_88);" 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                           *)&this->candidate_odr_violations_,&local_88);" 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                           *)&this->candidate_odr_violations_,&local_88);" 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                           *)&this->candidate_odr_violations_,&local_88);" 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                           *)&this->candidate_odr_violations_,&local_88);" (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                           *)&this->candidate_odr_violations_,&local_88)" (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                           *)&this->candidate_odr_violations_,&local_88)" 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                           *)&this->candidate_odr_violations_,&local_88)" (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                           *)&this->candidate_odr_violations_,&local_88)" (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                           *)&this->candidate_odr_violations_,&local_88)" ( (binary_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->candidate_odr_violations_" (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" (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                           *" (binary_expression "_Hashtable_traits<false" identifier < false) , (comma_expression "_false,_true>,_true>\n                           *" identifier , (binary_expression "_true>,_true>\n                           *" (binary_expression "_true>,_true" identifier > (ERROR "," ,) identifier) > (pointer_expression "*" * identifier)))) )) & (field_expression "this->candidate_odr_violations_" identifier -> field_identifier)) , (pointer_expression "&local_88" & 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                  ((_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                    *)__node_gen._M_h,&adjust_common_sizes,&__node_gen,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                  ((_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                    *)__node_gen._M_h,&adjust_common_sizes,&__node_gen,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                  ((_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                    *)__node_gen._M_h,&adjust_common_sizes,&__node_gen,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                  ((_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                    *)__node_gen._M_h,&adjust_common_sizes,&__node_gen,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                  ((_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                    *)__node_gen._M_h,&adjust_common_sizes,&__node_gen,1);" statement_identifier (ERROR "::_Hash_node<gold:" : : (binary_expression "_Hash_node<gold" identifier < identifier) :) : (expression_statement "Symbol_location,_true>_>_>_>\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                    *)__node_gen._M_h,&adjust_common_sizes,&__node_gen,1);" (comma_expression "Symbol_location,_true>_>_>_>\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                    *)__node_gen._M_h,&adjust_common_sizes,&__node_gen,1)" identifier , (binary_expression "_true>_>_>_>\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                    *)__node_gen._M_h,&adjust_common_sizes,&__node_gen,1)" (binary_expression "_true>_>_>_" (binary_expression "_true>_>_" (binary_expression "_true>_" identifier > identifier) > 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                    *)__node_gen._M_h,&adjust_common_sizes,&__node_gen,1)" ( (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                    *)__node_gen._M_h,&adjust_common_sizes,&__node_gen,1)" ( (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                    *)__node_gen._M_h,&adjust_common_sizes,&__node_gen,1" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n                    *)__node_gen._M_h,&adjust_common_sizes,&__node_gen,1" identifier , (comma_expression "_true>_>\n                    *)__node_gen._M_h,&adjust_common_sizes,&__node_gen,1" (binary_expression "_true>_>\n                    *)__node_gen._M_h" (binary_expression "_true>_" identifier > identifier) > (pointer_expression "*)__node_gen._M_h" * (ERROR ")" )) (field_expression "__node_gen._M_h" identifier . field_identifier))) , (comma_expression "&adjust_common_sizes,&__node_gen,1" (pointer_expression "&adjust_common_sizes" & identifier) , (comma_expression "&__node_gen,1" (pointer_expression "&__node_gen" & identifier) , number_literal))))) )) )))) ;)))))) (expression_statement "local_88 = (to->super_Symbol).name_;" (assignment_expression "local_88 = (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)) ;) (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                           *)&this->candidate_odr_violations_,&local_88);" 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                           *)&this->candidate_odr_violations_,&local_88);" 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                           *)&this->candidate_odr_violations_,&local_88);" 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                           *)&this->candidate_odr_violations_,&local_88);" 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                           *)&this->candidate_odr_violations_,&local_88);" 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                           *)&this->candidate_odr_violations_,&local_88);" (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                           *)&this->candidate_odr_violations_,&local_88)" (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                           *)&this->candidate_odr_violations_,&local_88)" 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                           *)&this->candidate_odr_violations_,&local_88)" (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                           *)&this->candidate_odr_violations_,&local_88)" (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                           *)&this->candidate_odr_violations_,&local_88)" ( (binary_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->candidate_odr_violations_" (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" (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                           *" (binary_expression "_Hashtable_traits<false" identifier < false) , (comma_expression "_false,_true>,_true>\n                           *" identifier , (binary_expression "_true>,_true>\n                           *" (binary_expression "_true>,_true" identifier > (ERROR "," ,) identifier) > (pointer_expression "*" * identifier)))) )) & (field_expression "this->candidate_odr_violations_" identifier -> field_identifier)) , (pointer_expression "&local_88" & 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                  ((_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                    *)__node_gen._M_h,&adjust_dyndef,&__node_gen,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                  ((_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                    *)__node_gen._M_h,&adjust_dyndef,&__node_gen,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                  ((_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                    *)__node_gen._M_h,&adjust_dyndef,&__node_gen,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                  ((_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                    *)__node_gen._M_h,&adjust_dyndef,&__node_gen,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                  ((_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                    *)__node_gen._M_h,&adjust_dyndef,&__node_gen,1);" statement_identifier (ERROR "::_Hash_node<gold:" : : (binary_expression "_Hash_node<gold" identifier < identifier) :) : (expression_statement "Symbol_location,_true>_>_>_>\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                    *)__node_gen._M_h,&adjust_dyndef,&__node_gen,1);" (comma_expression "Symbol_location,_true>_>_>_>\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                    *)__node_gen._M_h,&adjust_dyndef,&__node_gen,1)" identifier , (binary_expression "_true>_>_>_>\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                    *)__node_gen._M_h,&adjust_dyndef,&__node_gen,1)" (binary_expression "_true>_>_>_" (binary_expression "_true>_>_" (binary_expression "_true>_" identifier > identifier) > 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                    *)__node_gen._M_h,&adjust_dyndef,&__node_gen,1)" ( (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                    *)__node_gen._M_h,&adjust_dyndef,&__node_gen,1)" ( (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                    *)__node_gen._M_h,&adjust_dyndef,&__node_gen,1" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n                    *)__node_gen._M_h,&adjust_dyndef,&__node_gen,1" identifier , (comma_expression "_true>_>\n                    *)__node_gen._M_h,&adjust_dyndef,&__node_gen,1" (binary_expression "_true>_>\n                    *)__node_gen._M_h" (binary_expression "_true>_" identifier > identifier) > (pointer_expression "*)__node_gen._M_h" * (ERROR ")" )) (field_expression "__node_gen._M_h" identifier . field_identifier))) , (comma_expression "&adjust_dyndef,&__node_gen,1" (pointer_expression "&adjust_dyndef" & identifier) , (comma_expression "&__node_gen,1" (pointer_expression "&__node_gen" & identifier) , number_literal))))) )) )))) ;)))))) })) })) (expression_statement "local_98 = &adjust_common_sizes;" (assignment_expression "local_98 = &adjust_common_sizes" identifier = (pointer_expression "&adjust_common_sizes" & identifier)) ;) (expression_statement "iVar12 = (*object->_vptr_Object[5])(object);" (assignment_expression "iVar12 = (*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 (CONCAT44(extraout_var_01,iVar12) == 0) {\n      SVar17 = (STT)sym->p_->st_info;\n      SVar9 = SVar17;\n    }\n    else {\n      SVar17 = (STT)sym->p_->st_info;\n      SVar9 = (uint)(byte)(to->super_Symbol).field_0x38;\n    }" if (parenthesized_expression "(CONCAT44(extraout_var_01,iVar12) == 0)" ( (binary_expression "CONCAT44(extraout_var_01,iVar12) == 0" (call_expression "CONCAT44(extraout_var_01,iVar12)" identifier (argument_list "(extraout_var_01,iVar12)" ( identifier , identifier ))) == number_literal) )) (compound_statement "{\n      SVar17 = (STT)sym->p_->st_info;\n      SVar9 = SVar17;\n    }" { (expression_statement "SVar17 = (STT)sym->p_->st_info;" (assignment_expression "SVar17 = (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 "SVar9 = SVar17;" (assignment_expression "SVar9 = SVar17" identifier = identifier) ;) }) (else_clause "else {\n      SVar17 = (STT)sym->p_->st_info;\n      SVar9 = (uint)(byte)(to->super_Symbol).field_0x38;\n    }" else (compound_statement "{\n      SVar17 = (STT)sym->p_->st_info;\n      SVar9 = (uint)(byte)(to->super_Symbol).field_0x38;\n    }" { (expression_statement "SVar17 = (STT)sym->p_->st_info;" (assignment_expression "SVar17 = (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 "SVar9 = (uint)(byte)(to->super_Symbol).field_0x38;" (assignment_expression "SVar9 = (uint)(byte)(to->super_Symbol).field_0x38" identifier = (field_expression "(uint)(byte)(to->super_Symbol).field_0x38" (call_expression "(uint)(byte)(to->super_Symbol)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) ))) . field_identifier)) ;) }))) (expression_statement "uVar13 = symbol_to_bits((int)SVar17 >> 4,(bool)(object->field_0x3c & 1),st_shndx,is_ordinary);" (assignment_expression "uVar13 = symbol_to_bits((int)SVar17 >> 4,(bool)(object->field_0x3c & 1),st_shndx,is_ordinary)" identifier = (call_expression "symbol_to_bits((int)SVar17 >> 4,(bool)(object->field_0x3c & 1),st_shndx,is_ordinary)" identifier (argument_list "((int)SVar17 >> 4,(bool)(object->field_0x3c & 1),st_shndx,is_ordinary)" ( (binary_expression "(int)SVar17 >> 4" (cast_expression "(int)SVar17" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) , (cast_expression "(bool)(object->field_0x3c & 1)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "(object->field_0x3c & 1)" ( (binary_expression "object->field_0x3c & 1" (field_expression "object->field_0x3c" identifier -> field_identifier) & number_literal) ))) , identifier , identifier )))) ;) (expression_statement "uVar5 = to->symsize_;" (assignment_expression "uVar5 = to->symsize_" identifier = (field_expression "to->symsize_" identifier -> field_identifier)) ;) (expression_statement "bVar11 = should_override(&to->super_Symbol,uVar13,SVar9 & STT_HIPROC,OBJECT,object,local_98,\n                             &adjust_dyndef,is_default_version);" (assignment_expression "bVar11 = should_override(&to->super_Symbol,uVar13,SVar9 & STT_HIPROC,OBJECT,object,local_98,\n                             &adjust_dyndef,is_default_version)" identifier = (call_expression "should_override(&to->super_Symbol,uVar13,SVar9 & STT_HIPROC,OBJECT,object,local_98,\n                             &adjust_dyndef,is_default_version)" identifier (argument_list "(&to->super_Symbol,uVar13,SVar9 & STT_HIPROC,OBJECT,object,local_98,\n                             &adjust_dyndef,is_default_version)" ( (pointer_expression "&to->super_Symbol" & (field_expression "to->super_Symbol" identifier -> field_identifier)) , identifier , (binary_expression "SVar9 & STT_HIPROC" identifier & identifier) , identifier , identifier , identifier , (pointer_expression "&adjust_dyndef" & identifier) , identifier )))) ;) (if_statement "if (bVar11) {\n      bVar18 = (to->super_Symbol).field_0x38;\n      uVar7 = to->value_;\n      override<64,_false>(this,to,sym,st_shndx,is_ordinary,object,version);\n      if (adjust_common_sizes != false) {\n        if (to->symsize_ < uVar5) {\n          to->symsize_ = uVar5;\n        }\n        if (to->value_ < uVar7) {\n          to->value_ = uVar7;\n        }\n      }\n      if ((adjust_dyndef != false) &&\n         ((bVar2 = (to->super_Symbol).field_0x3c, (bVar2 & 1) == 0 || ((bVar2 & 2) != 0)))) {\n        (to->super_Symbol).field_0x3c =\n             (to->super_Symbol).field_0x3c & 0xfd | (bVar18 >> 4 == 2) * '\x02' | 1;\n      }\n    }\n    else {\n      pSVar4 = sym->p_;\n      if (adjust_common_sizes != false) {\n        if (uVar5 < pSVar4->st_size) {\n          to->symsize_ = pSVar4->st_size;\n        }\n        if (to->value_ < pSVar4->st_value) {\n          to->value_ = pSVar4->st_value;\n        }\n      }\n      if (adjust_dyndef != false) {\n        bVar18 = (to->super_Symbol).field_0x3c;\n        if (((bVar18 & 1) == 0) || ((bVar18 & 2) != 0)) {\n          (to->super_Symbol).field_0x3c =\n               (to->super_Symbol).field_0x3c & 0xfd |\n               ((int)(uint)pSVar4->st_info >> 4 == 2) * '\x02' | 1;\n        }\n      }\n      bVar18 = pSVar4->st_other & 3;\n      if ((pSVar4->st_other & 3) != 0) {\n        bVar2 = (to->super_Symbol).field_0x39;\n        if (((bVar2 & 3) == 0) || (bVar18 < (bVar2 & 3))) {\n          (to->super_Symbol).field_0x39 = bVar18 | bVar2 & 0xfc;\n        }\n      }\n    }" if (parenthesized_expression "(bVar11)" ( identifier )) (compound_statement "{\n      bVar18 = (to->super_Symbol).field_0x38;\n      uVar7 = to->value_;\n      override<64,_false>(this,to,sym,st_shndx,is_ordinary,object,version);\n      if (adjust_common_sizes != false) {\n        if (to->symsize_ < uVar5) {\n          to->symsize_ = uVar5;\n        }\n        if (to->value_ < uVar7) {\n          to->value_ = uVar7;\n        }\n      }\n      if ((adjust_dyndef != false) &&\n         ((bVar2 = (to->super_Symbol).field_0x3c, (bVar2 & 1) == 0 || ((bVar2 & 2) != 0)))) {\n        (to->super_Symbol).field_0x3c =\n             (to->super_Symbol).field_0x3c & 0xfd | (bVar18 >> 4 == 2) * '\x02' | 1;\n      }\n    }" { (expression_statement "bVar18 = (to->super_Symbol).field_0x38;" (assignment_expression "bVar18 = (to->super_Symbol).field_0x38" identifier = (field_expression "(to->super_Symbol).field_0x38" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar7 = to->value_;" (assignment_expression "uVar7 = to->value_" identifier = (field_expression "to->value_" identifier -> field_identifier)) ;) (expression_statement "override<64,_false>(this,to,sym,st_shndx,is_ordinary,object,version);" (comma_expression "override<64,_false>(this,to,sym,st_shndx,is_ordinary,object,version)" (binary_expression "override<64" identifier < number_literal) , (binary_expression "_false>(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)))))) )))) ;) (if_statement "if (adjust_common_sizes != false) {\n        if (to->symsize_ < uVar5) {\n          to->symsize_ = uVar5;\n        }\n        if (to->value_ < uVar7) {\n          to->value_ = uVar7;\n        }\n      }" if (parenthesized_expression "(adjust_common_sizes != false)" ( (binary_expression "adjust_common_sizes != false" identifier != false) )) (compound_statement "{\n        if (to->symsize_ < uVar5) {\n          to->symsize_ = uVar5;\n        }\n        if (to->value_ < uVar7) {\n          to->value_ = uVar7;\n        }\n      }" { (if_statement "if (to->symsize_ < uVar5) {\n          to->symsize_ = uVar5;\n        }" if (parenthesized_expression "(to->symsize_ < uVar5)" ( (binary_expression "to->symsize_ < uVar5" (field_expression "to->symsize_" identifier -> field_identifier) < identifier) )) (compound_statement "{\n          to->symsize_ = uVar5;\n        }" { (expression_statement "to->symsize_ = uVar5;" (assignment_expression "to->symsize_ = uVar5" (field_expression "to->symsize_" identifier -> field_identifier) = identifier) ;) })) (if_statement "if (to->value_ < uVar7) {\n          to->value_ = uVar7;\n        }" if (parenthesized_expression "(to->value_ < uVar7)" ( (binary_expression "to->value_ < uVar7" (field_expression "to->value_" identifier -> field_identifier) < identifier) )) (compound_statement "{\n          to->value_ = uVar7;\n        }" { (expression_statement "to->value_ = uVar7;" (assignment_expression "to->value_ = uVar7" (field_expression "to->value_" identifier -> field_identifier) = identifier) ;) })) })) (if_statement "if ((adjust_dyndef != false) &&\n         ((bVar2 = (to->super_Symbol).field_0x3c, (bVar2 & 1) == 0 || ((bVar2 & 2) != 0)))) {\n        (to->super_Symbol).field_0x3c =\n             (to->super_Symbol).field_0x3c & 0xfd | (bVar18 >> 4 == 2) * '\x02' | 1;\n      }" if (parenthesized_expression "((adjust_dyndef != false) &&\n         ((bVar2 = (to->super_Symbol).field_0x3c, (bVar2 & 1) == 0 || ((bVar2 & 2) != 0))))" ( (binary_expression "(adjust_dyndef != false) &&\n         ((bVar2 = (to->super_Symbol).field_0x3c, (bVar2 & 1) == 0 || ((bVar2 & 2) != 0)))" (parenthesized_expression "(adjust_dyndef != false)" ( (binary_expression "adjust_dyndef != false" identifier != false) )) && (parenthesized_expression "((bVar2 = (to->super_Symbol).field_0x3c, (bVar2 & 1) == 0 || ((bVar2 & 2) != 0)))" ( (parenthesized_expression "(bVar2 = (to->super_Symbol).field_0x3c, (bVar2 & 1) == 0 || ((bVar2 & 2) != 0))" ( (comma_expression "bVar2 = (to->super_Symbol).field_0x3c, (bVar2 & 1) == 0 || ((bVar2 & 2) != 0)" (assignment_expression "bVar2 = (to->super_Symbol).field_0x3c" identifier = (field_expression "(to->super_Symbol).field_0x3c" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier)) , (binary_expression "(bVar2 & 1) == 0 || ((bVar2 & 2) != 0)" (binary_expression "(bVar2 & 1) == 0" (parenthesized_expression "(bVar2 & 1)" ( (binary_expression "bVar2 & 1" identifier & number_literal) )) == number_literal) || (parenthesized_expression "((bVar2 & 2) != 0)" ( (binary_expression "(bVar2 & 2) != 0" (parenthesized_expression "(bVar2 & 2)" ( (binary_expression "bVar2 & 2" identifier & number_literal) )) != number_literal) )))) )) ))) )) (compound_statement "{\n        (to->super_Symbol).field_0x3c =\n             (to->super_Symbol).field_0x3c & 0xfd | (bVar18 >> 4 == 2) * '\x02' | 1;\n      }" { (expression_statement "(to->super_Symbol).field_0x3c =\n             (to->super_Symbol).field_0x3c & 0xfd | (bVar18 >> 4 == 2) * '\x02' | 1;" (assignment_expression "(to->super_Symbol).field_0x3c =\n             (to->super_Symbol).field_0x3c & 0xfd | (bVar18 >> 4 == 2) * '\x02' | 1" (field_expression "(to->super_Symbol).field_0x3c" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier) = (binary_expression "(to->super_Symbol).field_0x3c & 0xfd | (bVar18 >> 4 == 2) * '\x02' | 1" (binary_expression "(to->super_Symbol).field_0x3c & 0xfd | (bVar18 >> 4 == 2) * '\x02'" (binary_expression "(to->super_Symbol).field_0x3c & 0xfd" (field_expression "(to->super_Symbol).field_0x3c" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal) | (binary_expression "(bVar18 >> 4 == 2) * '\x02'" (parenthesized_expression "(bVar18 >> 4 == 2)" ( (binary_expression "bVar18 >> 4 == 2" (binary_expression "bVar18 >> 4" identifier >> number_literal) == number_literal) )) * (char_literal "'\x02'" ' escape_sequence '))) | number_literal)) ;) })) }) (else_clause "else {\n      pSVar4 = sym->p_;\n      if (adjust_common_sizes != false) {\n        if (uVar5 < pSVar4->st_size) {\n          to->symsize_ = pSVar4->st_size;\n        }\n        if (to->value_ < pSVar4->st_value) {\n          to->value_ = pSVar4->st_value;\n        }\n      }\n      if (adjust_dyndef != false) {\n        bVar18 = (to->super_Symbol).field_0x3c;\n        if (((bVar18 & 1) == 0) || ((bVar18 & 2) != 0)) {\n          (to->super_Symbol).field_0x3c =\n               (to->super_Symbol).field_0x3c & 0xfd |\n               ((int)(uint)pSVar4->st_info >> 4 == 2) * '\x02' | 1;\n        }\n      }\n      bVar18 = pSVar4->st_other & 3;\n      if ((pSVar4->st_other & 3) != 0) {\n        bVar2 = (to->super_Symbol).field_0x39;\n        if (((bVar2 & 3) == 0) || (bVar18 < (bVar2 & 3))) {\n          (to->super_Symbol).field_0x39 = bVar18 | bVar2 & 0xfc;\n        }\n      }\n    }" else (compound_statement "{\n      pSVar4 = sym->p_;\n      if (adjust_common_sizes != false) {\n        if (uVar5 < pSVar4->st_size) {\n          to->symsize_ = pSVar4->st_size;\n        }\n        if (to->value_ < pSVar4->st_value) {\n          to->value_ = pSVar4->st_value;\n        }\n      }\n      if (adjust_dyndef != false) {\n        bVar18 = (to->super_Symbol).field_0x3c;\n        if (((bVar18 & 1) == 0) || ((bVar18 & 2) != 0)) {\n          (to->super_Symbol).field_0x3c =\n               (to->super_Symbol).field_0x3c & 0xfd |\n               ((int)(uint)pSVar4->st_info >> 4 == 2) * '\x02' | 1;\n        }\n      }\n      bVar18 = pSVar4->st_other & 3;\n      if ((pSVar4->st_other & 3) != 0) {\n        bVar2 = (to->super_Symbol).field_0x39;\n        if (((bVar2 & 3) == 0) || (bVar18 < (bVar2 & 3))) {\n          (to->super_Symbol).field_0x39 = bVar18 | bVar2 & 0xfc;\n        }\n      }\n    }" { (expression_statement "pSVar4 = sym->p_;" (assignment_expression "pSVar4 = sym->p_" identifier = (field_expression "sym->p_" identifier -> field_identifier)) ;) (if_statement "if (adjust_common_sizes != false) {\n        if (uVar5 < pSVar4->st_size) {\n          to->symsize_ = pSVar4->st_size;\n        }\n        if (to->value_ < pSVar4->st_value) {\n          to->value_ = pSVar4->st_value;\n        }\n      }" if (parenthesized_expression "(adjust_common_sizes != false)" ( (binary_expression "adjust_common_sizes != false" identifier != false) )) (compound_statement "{\n        if (uVar5 < pSVar4->st_size) {\n          to->symsize_ = pSVar4->st_size;\n        }\n        if (to->value_ < pSVar4->st_value) {\n          to->value_ = pSVar4->st_value;\n        }\n      }" { (if_statement "if (uVar5 < pSVar4->st_size) {\n          to->symsize_ = pSVar4->st_size;\n        }" if (parenthesized_expression "(uVar5 < pSVar4->st_size)" ( (binary_expression "uVar5 < pSVar4->st_size" identifier < (field_expression "pSVar4->st_size" identifier -> field_identifier)) )) (compound_statement "{\n          to->symsize_ = pSVar4->st_size;\n        }" { (expression_statement "to->symsize_ = pSVar4->st_size;" (assignment_expression "to->symsize_ = pSVar4->st_size" (field_expression "to->symsize_" identifier -> field_identifier) = (field_expression "pSVar4->st_size" identifier -> field_identifier)) ;) })) (if_statement "if (to->value_ < pSVar4->st_value) {\n          to->value_ = pSVar4->st_value;\n        }" if (parenthesized_expression "(to->value_ < pSVar4->st_value)" ( (binary_expression "to->value_ < pSVar4->st_value" (field_expression "to->value_" identifier -> field_identifier) < (field_expression "pSVar4->st_value" identifier -> field_identifier)) )) (compound_statement "{\n          to->value_ = pSVar4->st_value;\n        }" { (expression_statement "to->value_ = pSVar4->st_value;" (assignment_expression "to->value_ = pSVar4->st_value" (field_expression "to->value_" identifier -> field_identifier) = (field_expression "pSVar4->st_value" identifier -> field_identifier)) ;) })) })) (if_statement "if (adjust_dyndef != false) {\n        bVar18 = (to->super_Symbol).field_0x3c;\n        if (((bVar18 & 1) == 0) || ((bVar18 & 2) != 0)) {\n          (to->super_Symbol).field_0x3c =\n               (to->super_Symbol).field_0x3c & 0xfd |\n               ((int)(uint)pSVar4->st_info >> 4 == 2) * '\x02' | 1;\n        }\n      }" if (parenthesized_expression "(adjust_dyndef != false)" ( (binary_expression "adjust_dyndef != false" identifier != false) )) (compound_statement "{\n        bVar18 = (to->super_Symbol).field_0x3c;\n        if (((bVar18 & 1) == 0) || ((bVar18 & 2) != 0)) {\n          (to->super_Symbol).field_0x3c =\n               (to->super_Symbol).field_0x3c & 0xfd |\n               ((int)(uint)pSVar4->st_info >> 4 == 2) * '\x02' | 1;\n        }\n      }" { (expression_statement "bVar18 = (to->super_Symbol).field_0x3c;" (assignment_expression "bVar18 = (to->super_Symbol).field_0x3c" identifier = (field_expression "(to->super_Symbol).field_0x3c" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (((bVar18 & 1) == 0) || ((bVar18 & 2) != 0)) {\n          (to->super_Symbol).field_0x3c =\n               (to->super_Symbol).field_0x3c & 0xfd |\n               ((int)(uint)pSVar4->st_info >> 4 == 2) * '\x02' | 1;\n        }" if (parenthesized_expression "(((bVar18 & 1) == 0) || ((bVar18 & 2) != 0))" ( (binary_expression "((bVar18 & 1) == 0) || ((bVar18 & 2) != 0)" (parenthesized_expression "((bVar18 & 1) == 0)" ( (binary_expression "(bVar18 & 1) == 0" (parenthesized_expression "(bVar18 & 1)" ( (binary_expression "bVar18 & 1" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "((bVar18 & 2) != 0)" ( (binary_expression "(bVar18 & 2) != 0" (parenthesized_expression "(bVar18 & 2)" ( (binary_expression "bVar18 & 2" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n          (to->super_Symbol).field_0x3c =\n               (to->super_Symbol).field_0x3c & 0xfd |\n               ((int)(uint)pSVar4->st_info >> 4 == 2) * '\x02' | 1;\n        }" { (expression_statement "(to->super_Symbol).field_0x3c =\n               (to->super_Symbol).field_0x3c & 0xfd |\n               ((int)(uint)pSVar4->st_info >> 4 == 2) * '\x02' | 1;" (assignment_expression "(to->super_Symbol).field_0x3c =\n               (to->super_Symbol).field_0x3c & 0xfd |\n               ((int)(uint)pSVar4->st_info >> 4 == 2) * '\x02' | 1" (field_expression "(to->super_Symbol).field_0x3c" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier) = (binary_expression "(to->super_Symbol).field_0x3c & 0xfd |\n               ((int)(uint)pSVar4->st_info >> 4 == 2) * '\x02' | 1" (binary_expression "(to->super_Symbol).field_0x3c & 0xfd |\n               ((int)(uint)pSVar4->st_info >> 4 == 2) * '\x02'" (binary_expression "(to->super_Symbol).field_0x3c & 0xfd" (field_expression "(to->super_Symbol).field_0x3c" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal) | (binary_expression "((int)(uint)pSVar4->st_info >> 4 == 2) * '\x02'" (parenthesized_expression "((int)(uint)pSVar4->st_info >> 4 == 2)" ( (binary_expression "(int)(uint)pSVar4->st_info >> 4 == 2" (binary_expression "(int)(uint)pSVar4->st_info >> 4" (cast_expression "(int)(uint)pSVar4->st_info" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)pSVar4->st_info" ( (type_descriptor "uint" type_identifier) ) (field_expression "pSVar4->st_info" identifier -> field_identifier))) >> number_literal) == number_literal) )) * (char_literal "'\x02'" ' escape_sequence '))) | number_literal)) ;) })) })) (expression_statement "bVar18 = pSVar4->st_other & 3;" (assignment_expression "bVar18 = pSVar4->st_other & 3" identifier = (binary_expression "pSVar4->st_other & 3" (field_expression "pSVar4->st_other" identifier -> field_identifier) & number_literal)) ;) (if_statement "if ((pSVar4->st_other & 3) != 0) {\n        bVar2 = (to->super_Symbol).field_0x39;\n        if (((bVar2 & 3) == 0) || (bVar18 < (bVar2 & 3))) {\n          (to->super_Symbol).field_0x39 = bVar18 | bVar2 & 0xfc;\n        }\n      }" if (parenthesized_expression "((pSVar4->st_other & 3) != 0)" ( (binary_expression "(pSVar4->st_other & 3) != 0" (parenthesized_expression "(pSVar4->st_other & 3)" ( (binary_expression "pSVar4->st_other & 3" (field_expression "pSVar4->st_other" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n        bVar2 = (to->super_Symbol).field_0x39;\n        if (((bVar2 & 3) == 0) || (bVar18 < (bVar2 & 3))) {\n          (to->super_Symbol).field_0x39 = bVar18 | bVar2 & 0xfc;\n        }\n      }" { (expression_statement "bVar2 = (to->super_Symbol).field_0x39;" (assignment_expression "bVar2 = (to->super_Symbol).field_0x39" identifier = (field_expression "(to->super_Symbol).field_0x39" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (((bVar2 & 3) == 0) || (bVar18 < (bVar2 & 3))) {\n          (to->super_Symbol).field_0x39 = bVar18 | bVar2 & 0xfc;\n        }" if (parenthesized_expression "(((bVar2 & 3) == 0) || (bVar18 < (bVar2 & 3)))" ( (binary_expression "((bVar2 & 3) == 0) || (bVar18 < (bVar2 & 3))" (parenthesized_expression "((bVar2 & 3) == 0)" ( (binary_expression "(bVar2 & 3) == 0" (parenthesized_expression "(bVar2 & 3)" ( (binary_expression "bVar2 & 3" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(bVar18 < (bVar2 & 3))" ( (binary_expression "bVar18 < (bVar2 & 3)" identifier < (parenthesized_expression "(bVar2 & 3)" ( (binary_expression "bVar2 & 3" identifier & number_literal) ))) ))) )) (compound_statement "{\n          (to->super_Symbol).field_0x39 = bVar18 | bVar2 & 0xfc;\n        }" { (expression_statement "(to->super_Symbol).field_0x39 = bVar18 | bVar2 & 0xfc;" (assignment_expression "(to->super_Symbol).field_0x39 = bVar18 | bVar2 & 0xfc" (field_expression "(to->super_Symbol).field_0x39" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier) = (binary_expression "bVar18 | bVar2 & 0xfc" identifier | (binary_expression "bVar2 & 0xfc" identifier & number_literal))) ;) })) })) }))) (expression_statement "bVar18 = (to->super_Symbol).field_0x3a;" (assignment_expression "bVar18 = (to->super_Symbol).field_0x3a" identifier = (field_expression "(to->super_Symbol).field_0x3a" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((bVar18 & 7) == 0) {\n      pOVar6 = (to->super_Symbol).u1_.output_segment;\n      bVar2 = *(byte *)((long)&pOVar6->output_lists_[2].\n                               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                               ._M_impl._M_finish + 4);\n      if ((((bVar2 & 1) != 0) && ((char)bVar18 < '\0')) &&\n         (((to->super_Symbol).field_0x3c & 2) == 0)) {\n        *(byte *)((long)&pOVar6->output_lists_[2].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_finish + 4) = bVar2 | 2;\n      }\n    }" if (parenthesized_expression "((bVar18 & 7) == 0)" ( (binary_expression "(bVar18 & 7) == 0" (parenthesized_expression "(bVar18 & 7)" ( (binary_expression "bVar18 & 7" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      pOVar6 = (to->super_Symbol).u1_.output_segment;\n      bVar2 = *(byte *)((long)&pOVar6->output_lists_[2].\n                               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                               ._M_impl._M_finish + 4);\n      if ((((bVar2 & 1) != 0) && ((char)bVar18 < '\0')) &&\n         (((to->super_Symbol).field_0x3c & 2) == 0)) {\n        *(byte *)((long)&pOVar6->output_lists_[2].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_finish + 4) = bVar2 | 2;\n      }\n    }" { (expression_statement "pOVar6 = (to->super_Symbol).u1_.output_segment;" (assignment_expression "pOVar6 = (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)) ;) (expression_statement "bVar2 = *(byte *)((long)&pOVar6->output_lists_[2].\n                               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                               ._M_impl._M_finish + 4);" (assignment_expression "bVar2 = *(byte *)((long)&pOVar6->output_lists_[2].\n                               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                               ._M_impl._M_finish + 4)" identifier = (pointer_expression "*(byte *)((long)&pOVar6->output_lists_[2].\n                               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                               ._M_impl._M_finish + 4)" * (cast_expression "(byte *)((long)&pOVar6->output_lists_[2].\n                               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                               ._M_impl._M_finish + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&pOVar6->output_lists_[2].\n                               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                               ._M_impl._M_finish + 4)" ( (binary_expression "(long)&pOVar6->output_lists_[2].\n                               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                               ._M_impl._M_finish + 4" (field_expression "(long)&pOVar6->output_lists_[2].\n                               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                               ._M_impl._M_finish" (field_expression "(long)&pOVar6->output_lists_[2].\n                               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                               ._M_impl" (binary_expression "(long)&pOVar6->output_lists_[2].\n                               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "(long)&pOVar6->output_lists_[2].\n                               super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "(long)&pOVar6->output_lists_[2].\n                               super__Vector_base<gold::Output_data*,_std" (binary_expression "(long)&pOVar6->output_lists_[2].\n                               super__Vector_base<gold" (cast_expression "(long)&pOVar6->output_lists_[2].\n                               super__Vector_base" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&pOVar6->output_lists_[2].\n                               super__Vector_base" & (field_expression "pOVar6->output_lists_[2].\n                               super__Vector_base" (subscript_expression "pOVar6->output_lists_[2]" (field_expression "pOVar6->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) ))))) ;) (if_statement "if ((((bVar2 & 1) != 0) && ((char)bVar18 < '\0')) &&\n         (((to->super_Symbol).field_0x3c & 2) == 0)) {\n        *(byte *)((long)&pOVar6->output_lists_[2].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_finish + 4) = bVar2 | 2;\n      }" if (parenthesized_expression "((((bVar2 & 1) != 0) && ((char)bVar18 < '\0')) &&\n         (((to->super_Symbol).field_0x3c & 2) == 0))" ( (binary_expression "(((bVar2 & 1) != 0) && ((char)bVar18 < '\0')) &&\n         (((to->super_Symbol).field_0x3c & 2) == 0)" (parenthesized_expression "(((bVar2 & 1) != 0) && ((char)bVar18 < '\0'))" ( (binary_expression "((bVar2 & 1) != 0) && ((char)bVar18 < '\0')" (parenthesized_expression "((bVar2 & 1) != 0)" ( (binary_expression "(bVar2 & 1) != 0" (parenthesized_expression "(bVar2 & 1)" ( (binary_expression "bVar2 & 1" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "((char)bVar18 < '\0')" ( (binary_expression "(char)bVar18 < '\0'" (cast_expression "(char)bVar18" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(((to->super_Symbol).field_0x3c & 2) == 0)" ( (binary_expression "((to->super_Symbol).field_0x3c & 2) == 0" (parenthesized_expression "((to->super_Symbol).field_0x3c & 2)" ( (binary_expression "(to->super_Symbol).field_0x3c & 2" (field_expression "(to->super_Symbol).field_0x3c" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n        *(byte *)((long)&pOVar6->output_lists_[2].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_finish + 4) = bVar2 | 2;\n      }" { (expression_statement "*(byte *)((long)&pOVar6->output_lists_[2].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_finish + 4) = bVar2 | 2;" (assignment_expression "*(byte *)((long)&pOVar6->output_lists_[2].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_finish + 4) = bVar2 | 2" (pointer_expression "*(byte *)((long)&pOVar6->output_lists_[2].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_finish + 4)" * (cast_expression "(byte *)((long)&pOVar6->output_lists_[2].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_finish + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&pOVar6->output_lists_[2].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_finish + 4)" ( (binary_expression "(long)&pOVar6->output_lists_[2].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_finish + 4" (field_expression "(long)&pOVar6->output_lists_[2].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_finish" (field_expression "(long)&pOVar6->output_lists_[2].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl" (binary_expression "(long)&pOVar6->output_lists_[2].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "(long)&pOVar6->output_lists_[2].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "(long)&pOVar6->output_lists_[2].\n                         super__Vector_base<gold::Output_data*,_std" (binary_expression "(long)&pOVar6->output_lists_[2].\n                         super__Vector_base<gold" (cast_expression "(long)&pOVar6->output_lists_[2].\n                         super__Vector_base" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&pOVar6->output_lists_[2].\n                         super__Vector_base" & (field_expression "pOVar6->output_lists_[2].\n                         super__Vector_base" (subscript_expression "pOVar6->output_lists_[2]" (field_expression "pOVar6->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) )))) = (binary_expression "bVar2 | 2" identifier | number_literal)) ;) })) })) (if_statement "if (adjust_common_sizes != false) {\n      if (parameters->options_ == (General_options *)0x0) {\nLAB_002c17cc:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n      }\n      if ((parameters->options_->warn_common_).value != false) {\n        pcVar16 = (char *)gettext();\n        report_resolve_problem(false,pcVar16,&to->super_Symbol,OBJECT,object);\n      }\n    }" if (parenthesized_expression "(adjust_common_sizes != false)" ( (binary_expression "adjust_common_sizes != false" identifier != false) )) (compound_statement "{\n      if (parameters->options_ == (General_options *)0x0) {\nLAB_002c17cc:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n      }\n      if ((parameters->options_->warn_common_).value != false) {\n        pcVar16 = (char *)gettext();\n        report_resolve_problem(false,pcVar16,&to->super_Symbol,OBJECT,object);\n      }\n    }" { (if_statement "if (parameters->options_ == (General_options *)0x0) {\nLAB_002c17cc:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n      }" if (parenthesized_expression "(parameters->options_ == (General_options *)0x0)" ( (binary_expression "parameters->options_ == (General_options *)0x0" (field_expression "parameters->options_" identifier -> field_identifier) == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_002c17cc:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n      }" { (labeled_statement "LAB_002c17cc:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" statement_identifier : comment (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;)) })) (if_statement "if ((parameters->options_->warn_common_).value != false) {\n        pcVar16 = (char *)gettext();\n        report_resolve_problem(false,pcVar16,&to->super_Symbol,OBJECT,object);\n      }" if (parenthesized_expression "((parameters->options_->warn_common_).value != false)" ( (binary_expression "(parameters->options_->warn_common_).value != false" (field_expression "(parameters->options_->warn_common_).value" (parenthesized_expression "(parameters->options_->warn_common_)" ( (field_expression "parameters->options_->warn_common_" (field_expression "parameters->options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) != false) )) (compound_statement "{\n        pcVar16 = (char *)gettext();\n        report_resolve_problem(false,pcVar16,&to->super_Symbol,OBJECT,object);\n      }" { (expression_statement "pcVar16 = (char *)gettext();" (assignment_expression "pcVar16 = (char *)gettext()" identifier = (cast_expression "(char *)gettext()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext()" identifier (argument_list "()" ( ))))) ;) (expression_statement "report_resolve_problem(false,pcVar16,&to->super_Symbol,OBJECT,object);" (call_expression "report_resolve_problem(false,pcVar16,&to->super_Symbol,OBJECT,object)" identifier (argument_list "(false,pcVar16,&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 ;) (ERROR "}" }))
(translation_unit "ulong FUN_002c1460(long param_1,undefined8 *param_2,ulong *param_3,int param_4,char param_5,\n                  int param_6,long *param_7,ulong param_8,undefined1 param_9)\n\n{\n  byte bVar1;\n  int iVar2;\n  long *plVar3;\n  ulong uVar4;\n  undefined8 *puVar5;\n  char cVar6;\n  undefined4 uVar7;\n  uint uVar8;\n  ulong uVar9;\n  long lVar10;\n  undefined8 uVar11;\n  ulong uVar12;\n  undefined8 uVar13;\n  uint uVar14;\n  char *pcVar15;\n  byte bVar16;\n  long **local_98;\n  char *local_88;\n  undefined8 local_80;\n  long *local_78;\n  int local_70;\n  undefined8 local_68;\n  undefined8 *local_58;\n  int local_50;\n  undefined8 local_48 [3];\n  \n  if ((*(byte *)((long)param_2 + 0x3a) & 7) != 0) {\n                    \n    FUN_001e9890("../../gold/symtab.h",0xaa,"shndx");\n  }\n  iVar2 = *(int *)(param_2 + 3);\n  bVar16 = *(byte *)((long)param_2 + 0x3b) >> 5 & 1;\n  if (param_7 == (long *)param_2[2]) {\n    if (bVar16 == 0) {\n      cVar6 = FUN_002dd6f0(iVar2);\n      if ((((cVar6 == '\x01') || (param_5 == '\0')) && (param_4 == 0xfff1)) && (param_5 != '\x01'))\n      goto LAB_002c14d0;\n    }\n    else if (((iVar2 != 0) && (param_5 != '\0')) && (param_4 == iVar2)) goto LAB_002c1838;\n  }\n  else if (((param_5 != '\x01') && (param_4 == 0xfff1)) && (bVar16 == 0)) {\nLAB_002c14d0:\n    if (iVar2 == 0xfff1) {\nLAB_002c1838:\n      if (*(long *)(*param_3 + 8) == param_2[8]) {\n        return *param_3;\n      }\n    }\n  }\n  plVar3 = *(long **)(PTR_DAT_004ba7c8 + 0x18);\n  if (plVar3 == (long *)0x0) {\n                    \n    FUN_001e9890("../../gold/parameters.h",0x69,"target");\n  }\n  if ((*(char *)(plVar3[1] + 0xd) == '\0') ||\n     (uVar9 = (**(code **)(*plVar3 + 0x158))(plVar3,param_2,param_3,param_7,param_8),\n     (char)uVar9 == '\0')) {\n    if ((*(byte *)((long)param_7 + 0x3c) & 1) == 0) {\n      if (((*(byte *)(*param_3 + 4) & 0xf) == 5) &&\n         ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))) {\n        if ((*(byte *)((long)param_2 + 0x3a) & 7) == 0) {\n          uVar11 = *(undefined8 *)(param_2[2] + 8);\n          FUN_002de930(&local_58,param_2);\n          puVar5 = local_58;\n          uVar13 = gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");\n                    \n          uVar9 = FUN_001e15a0(uVar13,puVar5,uVar11);\n          if (local_58 == local_48) {\n            return uVar9;\n          }\n          uVar9 = FUN_00338a50();\n          return uVar9;\n        }\n        goto LAB_002c1bd9;\n      }\n      *(byte *)((long)param_2 + 0x3a) = *(byte *)((long)param_2 + 0x3a) | 0x80;\n      lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    }\n    else {\n      if ((param_4 == 0) && (uVar8 = (*(byte *)((long)param_2 + 0x39) & 3) - 1, uVar8 < 2)) {\n        return (ulong)uVar8;\n      }\n      *(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 1;\n      lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    }\n    if ((lVar10 == 0) && ((*(byte *)((long)param_7 + 0x3c) & 1) == 0)) {\n      *(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 0x40;\n    }\n    if (((*(byte *)((long)param_2 + 0x3a) & 7) == 0) &&\n       (lVar10 = (**(code **)(*(long *)param_2[2] + 0x28))(), lVar10 != 0)) {\n      lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n      if (lVar10 == 0) goto LAB_002c17cc;\n      if (*(char *)(*(long *)(lVar10 + 0x9058) + 0xb1) != '\0') {\n        if (((((*(byte *)((long)param_2 + 0x3a) & 7) != 0) ||\n             ((*(byte *)((long)param_2 + 0x3b) & 0x20) != 0)) ||\n            (cVar6 = FUN_002dd6f0(*(undefined4 *)(param_2 + 3)), cVar6 != '\x01')) ||\n           ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))) {\n          FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7);\n          return param_8;\n        }\n        uVar9 = param_2[9];\n        uVar4 = param_2[8];\n        uVar12 = FUN_002bffb0(param_1,param_2,param_3,param_4,0,param_7,param_8);\n        if ((ulong)param_2[9] < uVar9) {\n          param_2[9] = uVar9;\n        }\n        if (uVar4 <= (ulong)param_2[8]) {\n          return uVar12;\n        }\n        param_2[8] = uVar4;\n        return uVar12;\n      }\n    }\n    else {\n      lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n      if (lVar10 == 0) goto LAB_002c17cc;\n    }\n    if (*(char *)(lVar10 + 0x16b1) != '\0') {\n      uVar9 = *param_3;\n      if ((((((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) || (*(byte *)(param_2 + 7) >> 4 == 2)) &&\n           (((param_6 != 0 & bVar16) != 0 &&\n            (((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0)))))) &&\n          (((*(byte *)(uVar9 + 4) & 0xf) != (*(byte *)(param_2 + 7) & 0xf) ||\n           (param_2[9] != *(long *)(uVar9 + 0x10))))) &&\n         ((pcVar15 = (char *)*param_2, *pcVar15 == '_' && (pcVar15[1] == 'Z')))) {\n        local_68 = *(undefined8 *)(uVar9 + 8);\n        local_78 = param_7;\n        local_70 = param_6;\n        if ((*(byte *)((long)param_2 + 0x3a) & 7) != 0) {\nLAB_002c1bd9:\n                    \n          FUN_001e9890("../../gold/symtab.h",0xa1,"object");\n        }\n        local_58 = (undefined8 *)param_2[2];\n        local_48[0] = param_2[8];\n        local_88 = pcVar15;\n        local_50 = iVar2;\n        local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);\n        FUN_001c3360(local_80,&local_78,&local_80,1);\n        local_88 = (char *)*param_2;\n        local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);\n        FUN_001c3360(local_80,&local_58,&local_80,1);\n      }\n    }\n    local_98 = &local_78;\n    lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    if (lVar10 == 0) {\n      uVar14 = (uint)*(byte *)(*param_3 + 4);\n      uVar8 = uVar14;\n    }\n    else {\n      uVar14 = (uint)*(byte *)(*param_3 + 4);\n      uVar8 = (uint)*(byte *)(param_2 + 7);\n    }\n    uVar7 = FUN_002be580((int)uVar14 >> 4,*(byte *)((long)param_7 + 0x3c) & 1,param_4,param_5);\n    uVar4 = param_2[9];\n    cVar6 = FUN_002be950(param_2,uVar7,uVar8 & 0xf,0,param_7,local_98,&local_58,param_9);\n    if (cVar6 == '\0') {\n      uVar9 = *param_3;\n      if ((char)local_78 != '\0') {\n        if (uVar4 < *(ulong *)(uVar9 + 0x10)) {\n          param_2[9] = *(ulong *)(uVar9 + 0x10);\n        }\n        if ((ulong)param_2[8] < *(ulong *)(uVar9 + 8)) {\n          param_2[8] = *(ulong *)(uVar9 + 8);\n        }\n      }\n      if ((char)local_58 != '\0') {\n        if (((*(byte *)((long)param_2 + 0x3c) & 1) == 0) ||\n           ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)) {\n          *(byte *)((long)param_2 + 0x3c) =\n               *(byte *)((long)param_2 + 0x3c) & 0xfd |\n               ((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) * '\x02' | 1;\n        }\n      }\n      bVar16 = *(byte *)(uVar9 + 5) & 3;\n      if ((*(byte *)(uVar9 + 5) & 3) != 0) {\n        bVar1 = *(byte *)((long)param_2 + 0x39);\n        if (((bVar1 & 3) == 0) || (bVar16 < (bVar1 & 3))) {\n          *(byte *)((long)param_2 + 0x39) = bVar16 | bVar1 & 0xfc;\n        }\n      }\n    }\n    else {\n      bVar16 = *(byte *)(param_2 + 7);\n      uVar9 = param_2[8];\n      FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7,param_8);\n      if ((char)local_78 != '\0') {\n        if ((ulong)param_2[9] < uVar4) {\n          param_2[9] = uVar4;\n        }\n        if ((ulong)param_2[8] < uVar9) {\n          param_2[8] = uVar9;\n        }\n      }\n      if (((char)local_58 != '\0') &&\n         (((*(byte *)((long)param_2 + 0x3c) & 1) == 0 ||\n          ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)))) {\n        *(byte *)((long)param_2 + 0x3c) =\n             *(byte *)((long)param_2 + 0x3c) & 0xfd | (bVar16 >> 4 == 2) * '\x02' | 1;\n      }\n    }\n    bVar16 = *(byte *)((long)param_2 + 0x3a);\n    uVar9 = (ulong)bVar16;\n    if ((bVar16 & 7) == 0) {\n      bVar1 = *(byte *)(param_2[2] + 0x3c);\n      if ((((bVar1 & 1) != 0) && ((char)bVar16 < '\0')) &&\n         ((*(byte *)((long)param_2 + 0x3c) & 2) == 0)) {\n        *(byte *)(param_2[2] + 0x3c) = bVar1 | 2;\n      }\n    }\n    if ((char)local_78 != '\0') {\n      uVar9 = *(ulong *)(PTR_DAT_004ba7c8 + 0x10);\n      if (uVar9 == 0) {\nLAB_002c17cc:\n                    \n        FUN_001e9890("../../gold/parameters.h",0x5c,"options");\n      }\n      if (*(char *)(uVar9 + 0x6de1) != '\0') {\n        pcVar15 = "common of \'%s\' overriding smaller common";\n        uVar9 = *(ulong *)(*param_3 + 0x10);\n        if ((uVar9 > uVar4 || uVar4 == uVar9) &&\n           (pcVar15 = "common of \'%s\' overidden by larger common", uVar9 <= uVar4)) {\n          pcVar15 = "multiple common of \'%s\'";\n        }\n        uVar11 = gettext(pcVar15);\n        uVar9 = FUN_002be7a0(0,uVar11,param_2,0,param_7);\n      }\n    }\n  }\n  return uVar9;\n}\n\n" (function_definition "ulong FUN_002c1460(long param_1,undefined8 *param_2,ulong *param_3,int param_4,char param_5,\n                  int param_6,long *param_7,ulong param_8,undefined1 param_9)\n\n{\n  byte bVar1;\n  int iVar2;\n  long *plVar3;\n  ulong uVar4;\n  undefined8 *puVar5;\n  char cVar6;\n  undefined4 uVar7;\n  uint uVar8;\n  ulong uVar9;\n  long lVar10;\n  undefined8 uVar11;\n  ulong uVar12;\n  undefined8 uVar13;\n  uint uVar14;\n  char *pcVar15;\n  byte bVar16;\n  long **local_98;\n  char *local_88;\n  undefined8 local_80;\n  long *local_78;\n  int local_70;\n  undefined8 local_68;\n  undefined8 *local_58;\n  int local_50;\n  undefined8 local_48 [3];\n  \n  if ((*(byte *)((long)param_2 + 0x3a) & 7) != 0) {\n                    \n    FUN_001e9890("../../gold/symtab.h",0xaa,"shndx");\n  }\n  iVar2 = *(int *)(param_2 + 3);\n  bVar16 = *(byte *)((long)param_2 + 0x3b) >> 5 & 1;\n  if (param_7 == (long *)param_2[2]) {\n    if (bVar16 == 0) {\n      cVar6 = FUN_002dd6f0(iVar2);\n      if ((((cVar6 == '\x01') || (param_5 == '\0')) && (param_4 == 0xfff1)) && (param_5 != '\x01'))\n      goto LAB_002c14d0;\n    }\n    else if (((iVar2 != 0) && (param_5 != '\0')) && (param_4 == iVar2)) goto LAB_002c1838;\n  }\n  else if (((param_5 != '\x01') && (param_4 == 0xfff1)) && (bVar16 == 0)) {\nLAB_002c14d0:\n    if (iVar2 == 0xfff1) {\nLAB_002c1838:\n      if (*(long *)(*param_3 + 8) == param_2[8]) {\n        return *param_3;\n      }\n    }\n  }\n  plVar3 = *(long **)(PTR_DAT_004ba7c8 + 0x18);\n  if (plVar3 == (long *)0x0) {\n                    \n    FUN_001e9890("../../gold/parameters.h",0x69,"target");\n  }\n  if ((*(char *)(plVar3[1] + 0xd) == '\0') ||\n     (uVar9 = (**(code **)(*plVar3 + 0x158))(plVar3,param_2,param_3,param_7,param_8),\n     (char)uVar9 == '\0')) {\n    if ((*(byte *)((long)param_7 + 0x3c) & 1) == 0) {\n      if (((*(byte *)(*param_3 + 4) & 0xf) == 5) &&\n         ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))) {\n        if ((*(byte *)((long)param_2 + 0x3a) & 7) == 0) {\n          uVar11 = *(undefined8 *)(param_2[2] + 8);\n          FUN_002de930(&local_58,param_2);\n          puVar5 = local_58;\n          uVar13 = gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");\n                    \n          uVar9 = FUN_001e15a0(uVar13,puVar5,uVar11);\n          if (local_58 == local_48) {\n            return uVar9;\n          }\n          uVar9 = FUN_00338a50();\n          return uVar9;\n        }\n        goto LAB_002c1bd9;\n      }\n      *(byte *)((long)param_2 + 0x3a) = *(byte *)((long)param_2 + 0x3a) | 0x80;\n      lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    }\n    else {\n      if ((param_4 == 0) && (uVar8 = (*(byte *)((long)param_2 + 0x39) & 3) - 1, uVar8 < 2)) {\n        return (ulong)uVar8;\n      }\n      *(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 1;\n      lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    }\n    if ((lVar10 == 0) && ((*(byte *)((long)param_7 + 0x3c) & 1) == 0)) {\n      *(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 0x40;\n    }\n    if (((*(byte *)((long)param_2 + 0x3a) & 7) == 0) &&\n       (lVar10 = (**(code **)(*(long *)param_2[2] + 0x28))(), lVar10 != 0)) {\n      lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n      if (lVar10 == 0) goto LAB_002c17cc;\n      if (*(char *)(*(long *)(lVar10 + 0x9058) + 0xb1) != '\0') {\n        if (((((*(byte *)((long)param_2 + 0x3a) & 7) != 0) ||\n             ((*(byte *)((long)param_2 + 0x3b) & 0x20) != 0)) ||\n            (cVar6 = FUN_002dd6f0(*(undefined4 *)(param_2 + 3)), cVar6 != '\x01')) ||\n           ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))) {\n          FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7);\n          return param_8;\n        }\n        uVar9 = param_2[9];\n        uVar4 = param_2[8];\n        uVar12 = FUN_002bffb0(param_1,param_2,param_3,param_4,0,param_7,param_8);\n        if ((ulong)param_2[9] < uVar9) {\n          param_2[9] = uVar9;\n        }\n        if (uVar4 <= (ulong)param_2[8]) {\n          return uVar12;\n        }\n        param_2[8] = uVar4;\n        return uVar12;\n      }\n    }\n    else {\n      lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n      if (lVar10 == 0) goto LAB_002c17cc;\n    }\n    if (*(char *)(lVar10 + 0x16b1) != '\0') {\n      uVar9 = *param_3;\n      if ((((((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) || (*(byte *)(param_2 + 7) >> 4 == 2)) &&\n           (((param_6 != 0 & bVar16) != 0 &&\n            (((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0)))))) &&\n          (((*(byte *)(uVar9 + 4) & 0xf) != (*(byte *)(param_2 + 7) & 0xf) ||\n           (param_2[9] != *(long *)(uVar9 + 0x10))))) &&\n         ((pcVar15 = (char *)*param_2, *pcVar15 == '_' && (pcVar15[1] == 'Z')))) {\n        local_68 = *(undefined8 *)(uVar9 + 8);\n        local_78 = param_7;\n        local_70 = param_6;\n        if ((*(byte *)((long)param_2 + 0x3a) & 7) != 0) {\nLAB_002c1bd9:\n                    \n          FUN_001e9890("../../gold/symtab.h",0xa1,"object");\n        }\n        local_58 = (undefined8 *)param_2[2];\n        local_48[0] = param_2[8];\n        local_88 = pcVar15;\n        local_50 = iVar2;\n        local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);\n        FUN_001c3360(local_80,&local_78,&local_80,1);\n        local_88 = (char *)*param_2;\n        local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);\n        FUN_001c3360(local_80,&local_58,&local_80,1);\n      }\n    }\n    local_98 = &local_78;\n    lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    if (lVar10 == 0) {\n      uVar14 = (uint)*(byte *)(*param_3 + 4);\n      uVar8 = uVar14;\n    }\n    else {\n      uVar14 = (uint)*(byte *)(*param_3 + 4);\n      uVar8 = (uint)*(byte *)(param_2 + 7);\n    }\n    uVar7 = FUN_002be580((int)uVar14 >> 4,*(byte *)((long)param_7 + 0x3c) & 1,param_4,param_5);\n    uVar4 = param_2[9];\n    cVar6 = FUN_002be950(param_2,uVar7,uVar8 & 0xf,0,param_7,local_98,&local_58,param_9);\n    if (cVar6 == '\0') {\n      uVar9 = *param_3;\n      if ((char)local_78 != '\0') {\n        if (uVar4 < *(ulong *)(uVar9 + 0x10)) {\n          param_2[9] = *(ulong *)(uVar9 + 0x10);\n        }\n        if ((ulong)param_2[8] < *(ulong *)(uVar9 + 8)) {\n          param_2[8] = *(ulong *)(uVar9 + 8);\n        }\n      }\n      if ((char)local_58 != '\0') {\n        if (((*(byte *)((long)param_2 + 0x3c) & 1) == 0) ||\n           ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)) {\n          *(byte *)((long)param_2 + 0x3c) =\n               *(byte *)((long)param_2 + 0x3c) & 0xfd |\n               ((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) * '\x02' | 1;\n        }\n      }\n      bVar16 = *(byte *)(uVar9 + 5) & 3;\n      if ((*(byte *)(uVar9 + 5) & 3) != 0) {\n        bVar1 = *(byte *)((long)param_2 + 0x39);\n        if (((bVar1 & 3) == 0) || (bVar16 < (bVar1 & 3))) {\n          *(byte *)((long)param_2 + 0x39) = bVar16 | bVar1 & 0xfc;\n        }\n      }\n    }\n    else {\n      bVar16 = *(byte *)(param_2 + 7);\n      uVar9 = param_2[8];\n      FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7,param_8);\n      if ((char)local_78 != '\0') {\n        if ((ulong)param_2[9] < uVar4) {\n          param_2[9] = uVar4;\n        }\n        if ((ulong)param_2[8] < uVar9) {\n          param_2[8] = uVar9;\n        }\n      }\n      if (((char)local_58 != '\0') &&\n         (((*(byte *)((long)param_2 + 0x3c) & 1) == 0 ||\n          ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)))) {\n        *(byte *)((long)param_2 + 0x3c) =\n             *(byte *)((long)param_2 + 0x3c) & 0xfd | (bVar16 >> 4 == 2) * '\x02' | 1;\n      }\n    }\n    bVar16 = *(byte *)((long)param_2 + 0x3a);\n    uVar9 = (ulong)bVar16;\n    if ((bVar16 & 7) == 0) {\n      bVar1 = *(byte *)(param_2[2] + 0x3c);\n      if ((((bVar1 & 1) != 0) && ((char)bVar16 < '\0')) &&\n         ((*(byte *)((long)param_2 + 0x3c) & 2) == 0)) {\n        *(byte *)(param_2[2] + 0x3c) = bVar1 | 2;\n      }\n    }\n    if ((char)local_78 != '\0') {\n      uVar9 = *(ulong *)(PTR_DAT_004ba7c8 + 0x10);\n      if (uVar9 == 0) {\nLAB_002c17cc:\n                    \n        FUN_001e9890("../../gold/parameters.h",0x5c,"options");\n      }\n      if (*(char *)(uVar9 + 0x6de1) != '\0') {\n        pcVar15 = "common of \'%s\' overriding smaller common";\n        uVar9 = *(ulong *)(*param_3 + 0x10);\n        if ((uVar9 > uVar4 || uVar4 == uVar9) &&\n           (pcVar15 = "common of \'%s\' overidden by larger common", uVar9 <= uVar4)) {\n          pcVar15 = "multiple common of \'%s\'";\n        }\n        uVar11 = gettext(pcVar15);\n        uVar9 = FUN_002be7a0(0,uVar11,param_2,0,param_7);\n      }\n    }\n  }\n  return uVar9;\n}" type_identifier (function_declarator "FUN_002c1460(long param_1,undefined8 *param_2,ulong *param_3,int param_4,char param_5,\n                  int param_6,long *param_7,ulong param_8,undefined1 param_9)" identifier (parameter_list "(long param_1,undefined8 *param_2,ulong *param_3,int param_4,char param_5,\n                  int param_6,long *param_7,ulong param_8,undefined1 param_9)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "ulong *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "char param_5" primitive_type identifier) , (parameter_declaration "int param_6" primitive_type identifier) , (parameter_declaration "long *param_7" (sized_type_specifier "long" long) (pointer_declarator "*param_7" * identifier)) , (parameter_declaration "ulong param_8" type_identifier identifier) , (parameter_declaration "undefined1 param_9" type_identifier identifier) ))) (compound_statement "{\n  byte bVar1;\n  int iVar2;\n  long *plVar3;\n  ulong uVar4;\n  undefined8 *puVar5;\n  char cVar6;\n  undefined4 uVar7;\n  uint uVar8;\n  ulong uVar9;\n  long lVar10;\n  undefined8 uVar11;\n  ulong uVar12;\n  undefined8 uVar13;\n  uint uVar14;\n  char *pcVar15;\n  byte bVar16;\n  long **local_98;\n  char *local_88;\n  undefined8 local_80;\n  long *local_78;\n  int local_70;\n  undefined8 local_68;\n  undefined8 *local_58;\n  int local_50;\n  undefined8 local_48 [3];\n  \n  if ((*(byte *)((long)param_2 + 0x3a) & 7) != 0) {\n                    \n    FUN_001e9890("../../gold/symtab.h",0xaa,"shndx");\n  }\n  iVar2 = *(int *)(param_2 + 3);\n  bVar16 = *(byte *)((long)param_2 + 0x3b) >> 5 & 1;\n  if (param_7 == (long *)param_2[2]) {\n    if (bVar16 == 0) {\n      cVar6 = FUN_002dd6f0(iVar2);\n      if ((((cVar6 == '\x01') || (param_5 == '\0')) && (param_4 == 0xfff1)) && (param_5 != '\x01'))\n      goto LAB_002c14d0;\n    }\n    else if (((iVar2 != 0) && (param_5 != '\0')) && (param_4 == iVar2)) goto LAB_002c1838;\n  }\n  else if (((param_5 != '\x01') && (param_4 == 0xfff1)) && (bVar16 == 0)) {\nLAB_002c14d0:\n    if (iVar2 == 0xfff1) {\nLAB_002c1838:\n      if (*(long *)(*param_3 + 8) == param_2[8]) {\n        return *param_3;\n      }\n    }\n  }\n  plVar3 = *(long **)(PTR_DAT_004ba7c8 + 0x18);\n  if (plVar3 == (long *)0x0) {\n                    \n    FUN_001e9890("../../gold/parameters.h",0x69,"target");\n  }\n  if ((*(char *)(plVar3[1] + 0xd) == '\0') ||\n     (uVar9 = (**(code **)(*plVar3 + 0x158))(plVar3,param_2,param_3,param_7,param_8),\n     (char)uVar9 == '\0')) {\n    if ((*(byte *)((long)param_7 + 0x3c) & 1) == 0) {\n      if (((*(byte *)(*param_3 + 4) & 0xf) == 5) &&\n         ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))) {\n        if ((*(byte *)((long)param_2 + 0x3a) & 7) == 0) {\n          uVar11 = *(undefined8 *)(param_2[2] + 8);\n          FUN_002de930(&local_58,param_2);\n          puVar5 = local_58;\n          uVar13 = gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");\n                    \n          uVar9 = FUN_001e15a0(uVar13,puVar5,uVar11);\n          if (local_58 == local_48) {\n            return uVar9;\n          }\n          uVar9 = FUN_00338a50();\n          return uVar9;\n        }\n        goto LAB_002c1bd9;\n      }\n      *(byte *)((long)param_2 + 0x3a) = *(byte *)((long)param_2 + 0x3a) | 0x80;\n      lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    }\n    else {\n      if ((param_4 == 0) && (uVar8 = (*(byte *)((long)param_2 + 0x39) & 3) - 1, uVar8 < 2)) {\n        return (ulong)uVar8;\n      }\n      *(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 1;\n      lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    }\n    if ((lVar10 == 0) && ((*(byte *)((long)param_7 + 0x3c) & 1) == 0)) {\n      *(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 0x40;\n    }\n    if (((*(byte *)((long)param_2 + 0x3a) & 7) == 0) &&\n       (lVar10 = (**(code **)(*(long *)param_2[2] + 0x28))(), lVar10 != 0)) {\n      lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n      if (lVar10 == 0) goto LAB_002c17cc;\n      if (*(char *)(*(long *)(lVar10 + 0x9058) + 0xb1) != '\0') {\n        if (((((*(byte *)((long)param_2 + 0x3a) & 7) != 0) ||\n             ((*(byte *)((long)param_2 + 0x3b) & 0x20) != 0)) ||\n            (cVar6 = FUN_002dd6f0(*(undefined4 *)(param_2 + 3)), cVar6 != '\x01')) ||\n           ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))) {\n          FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7);\n          return param_8;\n        }\n        uVar9 = param_2[9];\n        uVar4 = param_2[8];\n        uVar12 = FUN_002bffb0(param_1,param_2,param_3,param_4,0,param_7,param_8);\n        if ((ulong)param_2[9] < uVar9) {\n          param_2[9] = uVar9;\n        }\n        if (uVar4 <= (ulong)param_2[8]) {\n          return uVar12;\n        }\n        param_2[8] = uVar4;\n        return uVar12;\n      }\n    }\n    else {\n      lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n      if (lVar10 == 0) goto LAB_002c17cc;\n    }\n    if (*(char *)(lVar10 + 0x16b1) != '\0') {\n      uVar9 = *param_3;\n      if ((((((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) || (*(byte *)(param_2 + 7) >> 4 == 2)) &&\n           (((param_6 != 0 & bVar16) != 0 &&\n            (((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0)))))) &&\n          (((*(byte *)(uVar9 + 4) & 0xf) != (*(byte *)(param_2 + 7) & 0xf) ||\n           (param_2[9] != *(long *)(uVar9 + 0x10))))) &&\n         ((pcVar15 = (char *)*param_2, *pcVar15 == '_' && (pcVar15[1] == 'Z')))) {\n        local_68 = *(undefined8 *)(uVar9 + 8);\n        local_78 = param_7;\n        local_70 = param_6;\n        if ((*(byte *)((long)param_2 + 0x3a) & 7) != 0) {\nLAB_002c1bd9:\n                    \n          FUN_001e9890("../../gold/symtab.h",0xa1,"object");\n        }\n        local_58 = (undefined8 *)param_2[2];\n        local_48[0] = param_2[8];\n        local_88 = pcVar15;\n        local_50 = iVar2;\n        local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);\n        FUN_001c3360(local_80,&local_78,&local_80,1);\n        local_88 = (char *)*param_2;\n        local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);\n        FUN_001c3360(local_80,&local_58,&local_80,1);\n      }\n    }\n    local_98 = &local_78;\n    lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    if (lVar10 == 0) {\n      uVar14 = (uint)*(byte *)(*param_3 + 4);\n      uVar8 = uVar14;\n    }\n    else {\n      uVar14 = (uint)*(byte *)(*param_3 + 4);\n      uVar8 = (uint)*(byte *)(param_2 + 7);\n    }\n    uVar7 = FUN_002be580((int)uVar14 >> 4,*(byte *)((long)param_7 + 0x3c) & 1,param_4,param_5);\n    uVar4 = param_2[9];\n    cVar6 = FUN_002be950(param_2,uVar7,uVar8 & 0xf,0,param_7,local_98,&local_58,param_9);\n    if (cVar6 == '\0') {\n      uVar9 = *param_3;\n      if ((char)local_78 != '\0') {\n        if (uVar4 < *(ulong *)(uVar9 + 0x10)) {\n          param_2[9] = *(ulong *)(uVar9 + 0x10);\n        }\n        if ((ulong)param_2[8] < *(ulong *)(uVar9 + 8)) {\n          param_2[8] = *(ulong *)(uVar9 + 8);\n        }\n      }\n      if ((char)local_58 != '\0') {\n        if (((*(byte *)((long)param_2 + 0x3c) & 1) == 0) ||\n           ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)) {\n          *(byte *)((long)param_2 + 0x3c) =\n               *(byte *)((long)param_2 + 0x3c) & 0xfd |\n               ((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) * '\x02' | 1;\n        }\n      }\n      bVar16 = *(byte *)(uVar9 + 5) & 3;\n      if ((*(byte *)(uVar9 + 5) & 3) != 0) {\n        bVar1 = *(byte *)((long)param_2 + 0x39);\n        if (((bVar1 & 3) == 0) || (bVar16 < (bVar1 & 3))) {\n          *(byte *)((long)param_2 + 0x39) = bVar16 | bVar1 & 0xfc;\n        }\n      }\n    }\n    else {\n      bVar16 = *(byte *)(param_2 + 7);\n      uVar9 = param_2[8];\n      FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7,param_8);\n      if ((char)local_78 != '\0') {\n        if ((ulong)param_2[9] < uVar4) {\n          param_2[9] = uVar4;\n        }\n        if ((ulong)param_2[8] < uVar9) {\n          param_2[8] = uVar9;\n        }\n      }\n      if (((char)local_58 != '\0') &&\n         (((*(byte *)((long)param_2 + 0x3c) & 1) == 0 ||\n          ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)))) {\n        *(byte *)((long)param_2 + 0x3c) =\n             *(byte *)((long)param_2 + 0x3c) & 0xfd | (bVar16 >> 4 == 2) * '\x02' | 1;\n      }\n    }\n    bVar16 = *(byte *)((long)param_2 + 0x3a);\n    uVar9 = (ulong)bVar16;\n    if ((bVar16 & 7) == 0) {\n      bVar1 = *(byte *)(param_2[2] + 0x3c);\n      if ((((bVar1 & 1) != 0) && ((char)bVar16 < '\0')) &&\n         ((*(byte *)((long)param_2 + 0x3c) & 2) == 0)) {\n        *(byte *)(param_2[2] + 0x3c) = bVar1 | 2;\n      }\n    }\n    if ((char)local_78 != '\0') {\n      uVar9 = *(ulong *)(PTR_DAT_004ba7c8 + 0x10);\n      if (uVar9 == 0) {\nLAB_002c17cc:\n                    \n        FUN_001e9890("../../gold/parameters.h",0x5c,"options");\n      }\n      if (*(char *)(uVar9 + 0x6de1) != '\0') {\n        pcVar15 = "common of \'%s\' overriding smaller common";\n        uVar9 = *(ulong *)(*param_3 + 0x10);\n        if ((uVar9 > uVar4 || uVar4 == uVar9) &&\n           (pcVar15 = "common of \'%s\' overidden by larger common", uVar9 <= uVar4)) {\n          pcVar15 = "multiple common of \'%s\'";\n        }\n        uVar11 = gettext(pcVar15);\n        uVar9 = FUN_002be7a0(0,uVar11,param_2,0,param_7);\n      }\n    }\n  }\n  return uVar9;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "long *plVar3;" (sized_type_specifier "long" long) (pointer_declarator "*plVar3" * identifier) ;) (declaration "ulong uVar4;" type_identifier identifier ;) (declaration "undefined8 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "char cVar6;" primitive_type identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "ulong uVar9;" type_identifier identifier ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar11;" type_identifier identifier ;) (declaration "ulong uVar12;" type_identifier identifier ;) (declaration "undefined8 uVar13;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "byte bVar16;" type_identifier identifier ;) (declaration "long **local_98;" (sized_type_specifier "long" long) (pointer_declarator "**local_98" * (pointer_declarator "*local_98" * identifier)) ;) (declaration "char *local_88;" primitive_type (pointer_declarator "*local_88" * identifier) ;) (declaration "undefined8 local_80;" type_identifier identifier ;) (declaration "long *local_78;" (sized_type_specifier "long" long) (pointer_declarator "*local_78" * identifier) ;) (declaration "int local_70;" primitive_type identifier ;) (declaration "undefined8 local_68;" type_identifier identifier ;) (declaration "undefined8 *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (declaration "int local_50;" primitive_type identifier ;) (declaration "undefined8 local_48 [3];" type_identifier (array_declarator "local_48 [3]" identifier [ number_literal ]) ;) (if_statement "if ((*(byte *)((long)param_2 + 0x3a) & 7) != 0) {\n                    \n    FUN_001e9890("../../gold/symtab.h",0xaa,"shndx");\n  }" if (parenthesized_expression "((*(byte *)((long)param_2 + 0x3a) & 7) != 0)" ( (binary_expression "(*(byte *)((long)param_2 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)((long)param_2 + 0x3a) & 7)" ( (binary_expression "*(byte *)((long)param_2 + 0x3a) & 7" (pointer_expression "*(byte *)((long)param_2 + 0x3a)" * (cast_expression "(byte *)((long)param_2 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + 0x3a)" ( (binary_expression "(long)param_2 + 0x3a" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                    \n    FUN_001e9890("../../gold/symtab.h",0xaa,"shndx");\n  }" { (expression_statement "FUN_001e9890("../../gold/symtab.h",0xaa,"shndx");" (call_expression "FUN_001e9890("../../gold/symtab.h",0xaa,"shndx")" identifier (argument_list "("../../gold/symtab.h",0xaa,"shndx")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""shndx"" " string_content ") ))) ;) })) (expression_statement "iVar2 = *(int *)(param_2 + 3);" (assignment_expression "iVar2 = *(int *)(param_2 + 3)" identifier = (pointer_expression "*(int *)(param_2 + 3)" * (cast_expression "(int *)(param_2 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 3)" ( (binary_expression "param_2 + 3" identifier + number_literal) ))))) ;) (expression_statement "bVar16 = *(byte *)((long)param_2 + 0x3b) >> 5 & 1;" (assignment_expression "bVar16 = *(byte *)((long)param_2 + 0x3b) >> 5 & 1" identifier = (binary_expression "*(byte *)((long)param_2 + 0x3b) >> 5 & 1" (binary_expression "*(byte *)((long)param_2 + 0x3b) >> 5" (pointer_expression "*(byte *)((long)param_2 + 0x3b)" * (cast_expression "(byte *)((long)param_2 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + 0x3b)" ( (binary_expression "(long)param_2 + 0x3b" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) >> number_literal) & number_literal)) ;) (if_statement "if (param_7 == (long *)param_2[2]) {\n    if (bVar16 == 0) {\n      cVar6 = FUN_002dd6f0(iVar2);\n      if ((((cVar6 == '\x01') || (param_5 == '\0')) && (param_4 == 0xfff1)) && (param_5 != '\x01'))\n      goto LAB_002c14d0;\n    }\n    else if (((iVar2 != 0) && (param_5 != '\0')) && (param_4 == iVar2)) goto LAB_002c1838;\n  }\n  else if (((param_5 != '\x01') && (param_4 == 0xfff1)) && (bVar16 == 0)) {\nLAB_002c14d0:\n    if (iVar2 == 0xfff1) {\nLAB_002c1838:\n      if (*(long *)(*param_3 + 8) == param_2[8]) {\n        return *param_3;\n      }\n    }\n  }" if (parenthesized_expression "(param_7 == (long *)param_2[2])" ( (binary_expression "param_7 == (long *)param_2[2]" identifier == (cast_expression "(long *)param_2[2]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[2]" identifier [ number_literal ]))) )) (compound_statement "{\n    if (bVar16 == 0) {\n      cVar6 = FUN_002dd6f0(iVar2);\n      if ((((cVar6 == '\x01') || (param_5 == '\0')) && (param_4 == 0xfff1)) && (param_5 != '\x01'))\n      goto LAB_002c14d0;\n    }\n    else if (((iVar2 != 0) && (param_5 != '\0')) && (param_4 == iVar2)) goto LAB_002c1838;\n  }" { (if_statement "if (bVar16 == 0) {\n      cVar6 = FUN_002dd6f0(iVar2);\n      if ((((cVar6 == '\x01') || (param_5 == '\0')) && (param_4 == 0xfff1)) && (param_5 != '\x01'))\n      goto LAB_002c14d0;\n    }\n    else if (((iVar2 != 0) && (param_5 != '\0')) && (param_4 == iVar2)) goto LAB_002c1838;" if (parenthesized_expression "(bVar16 == 0)" ( (binary_expression "bVar16 == 0" identifier == number_literal) )) (compound_statement "{\n      cVar6 = FUN_002dd6f0(iVar2);\n      if ((((cVar6 == '\x01') || (param_5 == '\0')) && (param_4 == 0xfff1)) && (param_5 != '\x01'))\n      goto LAB_002c14d0;\n    }" { (expression_statement "cVar6 = FUN_002dd6f0(iVar2);" (assignment_expression "cVar6 = FUN_002dd6f0(iVar2)" identifier = (call_expression "FUN_002dd6f0(iVar2)" identifier (argument_list "(iVar2)" ( identifier )))) ;) (if_statement "if ((((cVar6 == '\x01') || (param_5 == '\0')) && (param_4 == 0xfff1)) && (param_5 != '\x01'))\n      goto LAB_002c14d0;" if (parenthesized_expression "((((cVar6 == '\x01') || (param_5 == '\0')) && (param_4 == 0xfff1)) && (param_5 != '\x01'))" ( (binary_expression "(((cVar6 == '\x01') || (param_5 == '\0')) && (param_4 == 0xfff1)) && (param_5 != '\x01')" (parenthesized_expression "(((cVar6 == '\x01') || (param_5 == '\0')) && (param_4 == 0xfff1))" ( (binary_expression "((cVar6 == '\x01') || (param_5 == '\0')) && (param_4 == 0xfff1)" (parenthesized_expression "((cVar6 == '\x01') || (param_5 == '\0'))" ( (binary_expression "(cVar6 == '\x01') || (param_5 == '\0')" (parenthesized_expression "(cVar6 == '\x01')" ( (binary_expression "cVar6 == '\x01'" identifier == (char_literal "'\x01'" ' escape_sequence ')) )) || (parenthesized_expression "(param_5 == '\0')" ( (binary_expression "param_5 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(param_4 == 0xfff1)" ( (binary_expression "param_4 == 0xfff1" identifier == number_literal) ))) )) && (parenthesized_expression "(param_5 != '\x01')" ( (binary_expression "param_5 != '\x01'" identifier != (char_literal "'\x01'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_002c14d0;" goto statement_identifier ;)) }) (else_clause "else if (((iVar2 != 0) && (param_5 != '\0')) && (param_4 == iVar2)) goto LAB_002c1838;" else (if_statement "if (((iVar2 != 0) && (param_5 != '\0')) && (param_4 == iVar2)) goto LAB_002c1838;" if (parenthesized_expression "(((iVar2 != 0) && (param_5 != '\0')) && (param_4 == iVar2))" ( (binary_expression "((iVar2 != 0) && (param_5 != '\0')) && (param_4 == iVar2)" (parenthesized_expression "((iVar2 != 0) && (param_5 != '\0'))" ( (binary_expression "(iVar2 != 0) && (param_5 != '\0')" (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) && (parenthesized_expression "(param_5 != '\0')" ( (binary_expression "param_5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(param_4 == iVar2)" ( (binary_expression "param_4 == iVar2" identifier == identifier) ))) )) (goto_statement "goto LAB_002c1838;" goto statement_identifier ;)))) }) (else_clause "else if (((param_5 != '\x01') && (param_4 == 0xfff1)) && (bVar16 == 0)) {\nLAB_002c14d0:\n    if (iVar2 == 0xfff1) {\nLAB_002c1838:\n      if (*(long *)(*param_3 + 8) == param_2[8]) {\n        return *param_3;\n      }\n    }\n  }" else (if_statement "if (((param_5 != '\x01') && (param_4 == 0xfff1)) && (bVar16 == 0)) {\nLAB_002c14d0:\n    if (iVar2 == 0xfff1) {\nLAB_002c1838:\n      if (*(long *)(*param_3 + 8) == param_2[8]) {\n        return *param_3;\n      }\n    }\n  }" if (parenthesized_expression "(((param_5 != '\x01') && (param_4 == 0xfff1)) && (bVar16 == 0))" ( (binary_expression "((param_5 != '\x01') && (param_4 == 0xfff1)) && (bVar16 == 0)" (parenthesized_expression "((param_5 != '\x01') && (param_4 == 0xfff1))" ( (binary_expression "(param_5 != '\x01') && (param_4 == 0xfff1)" (parenthesized_expression "(param_5 != '\x01')" ( (binary_expression "param_5 != '\x01'" identifier != (char_literal "'\x01'" ' escape_sequence ')) )) && (parenthesized_expression "(param_4 == 0xfff1)" ( (binary_expression "param_4 == 0xfff1" identifier == number_literal) ))) )) && (parenthesized_expression "(bVar16 == 0)" ( (binary_expression "bVar16 == 0" identifier == number_literal) ))) )) (compound_statement "{\nLAB_002c14d0:\n    if (iVar2 == 0xfff1) {\nLAB_002c1838:\n      if (*(long *)(*param_3 + 8) == param_2[8]) {\n        return *param_3;\n      }\n    }\n  }" { (labeled_statement "LAB_002c14d0:\n    if (iVar2 == 0xfff1) {\nLAB_002c1838:\n      if (*(long *)(*param_3 + 8) == param_2[8]) {\n        return *param_3;\n      }\n    }" statement_identifier : (if_statement "if (iVar2 == 0xfff1) {\nLAB_002c1838:\n      if (*(long *)(*param_3 + 8) == param_2[8]) {\n        return *param_3;\n      }\n    }" if (parenthesized_expression "(iVar2 == 0xfff1)" ( (binary_expression "iVar2 == 0xfff1" identifier == number_literal) )) (compound_statement "{\nLAB_002c1838:\n      if (*(long *)(*param_3 + 8) == param_2[8]) {\n        return *param_3;\n      }\n    }" { (labeled_statement "LAB_002c1838:\n      if (*(long *)(*param_3 + 8) == param_2[8]) {\n        return *param_3;\n      }" statement_identifier : (if_statement "if (*(long *)(*param_3 + 8) == param_2[8]) {\n        return *param_3;\n      }" if (parenthesized_expression "(*(long *)(*param_3 + 8) == param_2[8])" ( (binary_expression "*(long *)(*param_3 + 8) == param_2[8]" (pointer_expression "*(long *)(*param_3 + 8)" * (cast_expression "(long *)(*param_3 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_3 + 8)" ( (binary_expression "*param_3 + 8" (pointer_expression "*param_3" * identifier) + number_literal) )))) == (subscript_expression "param_2[8]" identifier [ number_literal ])) )) (compound_statement "{\n        return *param_3;\n      }" { (return_statement "return *param_3;" return (pointer_expression "*param_3" * identifier) ;) }))) }))) })))) (expression_statement "plVar3 = *(long **)(PTR_DAT_004ba7c8 + 0x18);" (assignment_expression "plVar3 = *(long **)(PTR_DAT_004ba7c8 + 0x18)" identifier = (pointer_expression "*(long **)(PTR_DAT_004ba7c8 + 0x18)" * (cast_expression "(long **)(PTR_DAT_004ba7c8 + 0x18)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_004ba7c8 + 0x18)" ( (binary_expression "PTR_DAT_004ba7c8 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (plVar3 == (long *)0x0) {\n                    \n    FUN_001e9890("../../gold/parameters.h",0x69,"target");\n  }" if (parenthesized_expression "(plVar3 == (long *)0x0)" ( (binary_expression "plVar3 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n    FUN_001e9890("../../gold/parameters.h",0x69,"target");\n  }" { (expression_statement "FUN_001e9890("../../gold/parameters.h",0x69,"target");" (call_expression "FUN_001e9890("../../gold/parameters.h",0x69,"target")" identifier (argument_list "("../../gold/parameters.h",0x69,"target")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""target"" " string_content ") ))) ;) })) (if_statement "if ((*(char *)(plVar3[1] + 0xd) == '\0') ||\n     (uVar9 = (**(code **)(*plVar3 + 0x158))(plVar3,param_2,param_3,param_7,param_8),\n     (char)uVar9 == '\0')) {\n    if ((*(byte *)((long)param_7 + 0x3c) & 1) == 0) {\n      if (((*(byte *)(*param_3 + 4) & 0xf) == 5) &&\n         ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))) {\n        if ((*(byte *)((long)param_2 + 0x3a) & 7) == 0) {\n          uVar11 = *(undefined8 *)(param_2[2] + 8);\n          FUN_002de930(&local_58,param_2);\n          puVar5 = local_58;\n          uVar13 = gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");\n                    \n          uVar9 = FUN_001e15a0(uVar13,puVar5,uVar11);\n          if (local_58 == local_48) {\n            return uVar9;\n          }\n          uVar9 = FUN_00338a50();\n          return uVar9;\n        }\n        goto LAB_002c1bd9;\n      }\n      *(byte *)((long)param_2 + 0x3a) = *(byte *)((long)param_2 + 0x3a) | 0x80;\n      lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    }\n    else {\n      if ((param_4 == 0) && (uVar8 = (*(byte *)((long)param_2 + 0x39) & 3) - 1, uVar8 < 2)) {\n        return (ulong)uVar8;\n      }\n      *(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 1;\n      lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    }\n    if ((lVar10 == 0) && ((*(byte *)((long)param_7 + 0x3c) & 1) == 0)) {\n      *(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 0x40;\n    }\n    if (((*(byte *)((long)param_2 + 0x3a) & 7) == 0) &&\n       (lVar10 = (**(code **)(*(long *)param_2[2] + 0x28))(), lVar10 != 0)) {\n      lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n      if (lVar10 == 0) goto LAB_002c17cc;\n      if (*(char *)(*(long *)(lVar10 + 0x9058) + 0xb1) != '\0') {\n        if (((((*(byte *)((long)param_2 + 0x3a) & 7) != 0) ||\n             ((*(byte *)((long)param_2 + 0x3b) & 0x20) != 0)) ||\n            (cVar6 = FUN_002dd6f0(*(undefined4 *)(param_2 + 3)), cVar6 != '\x01')) ||\n           ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))) {\n          FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7);\n          return param_8;\n        }\n        uVar9 = param_2[9];\n        uVar4 = param_2[8];\n        uVar12 = FUN_002bffb0(param_1,param_2,param_3,param_4,0,param_7,param_8);\n        if ((ulong)param_2[9] < uVar9) {\n          param_2[9] = uVar9;\n        }\n        if (uVar4 <= (ulong)param_2[8]) {\n          return uVar12;\n        }\n        param_2[8] = uVar4;\n        return uVar12;\n      }\n    }\n    else {\n      lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n      if (lVar10 == 0) goto LAB_002c17cc;\n    }\n    if (*(char *)(lVar10 + 0x16b1) != '\0') {\n      uVar9 = *param_3;\n      if ((((((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) || (*(byte *)(param_2 + 7) >> 4 == 2)) &&\n           (((param_6 != 0 & bVar16) != 0 &&\n            (((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0)))))) &&\n          (((*(byte *)(uVar9 + 4) & 0xf) != (*(byte *)(param_2 + 7) & 0xf) ||\n           (param_2[9] != *(long *)(uVar9 + 0x10))))) &&\n         ((pcVar15 = (char *)*param_2, *pcVar15 == '_' && (pcVar15[1] == 'Z')))) {\n        local_68 = *(undefined8 *)(uVar9 + 8);\n        local_78 = param_7;\n        local_70 = param_6;\n        if ((*(byte *)((long)param_2 + 0x3a) & 7) != 0) {\nLAB_002c1bd9:\n                    \n          FUN_001e9890("../../gold/symtab.h",0xa1,"object");\n        }\n        local_58 = (undefined8 *)param_2[2];\n        local_48[0] = param_2[8];\n        local_88 = pcVar15;\n        local_50 = iVar2;\n        local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);\n        FUN_001c3360(local_80,&local_78,&local_80,1);\n        local_88 = (char *)*param_2;\n        local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);\n        FUN_001c3360(local_80,&local_58,&local_80,1);\n      }\n    }\n    local_98 = &local_78;\n    lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    if (lVar10 == 0) {\n      uVar14 = (uint)*(byte *)(*param_3 + 4);\n      uVar8 = uVar14;\n    }\n    else {\n      uVar14 = (uint)*(byte *)(*param_3 + 4);\n      uVar8 = (uint)*(byte *)(param_2 + 7);\n    }\n    uVar7 = FUN_002be580((int)uVar14 >> 4,*(byte *)((long)param_7 + 0x3c) & 1,param_4,param_5);\n    uVar4 = param_2[9];\n    cVar6 = FUN_002be950(param_2,uVar7,uVar8 & 0xf,0,param_7,local_98,&local_58,param_9);\n    if (cVar6 == '\0') {\n      uVar9 = *param_3;\n      if ((char)local_78 != '\0') {\n        if (uVar4 < *(ulong *)(uVar9 + 0x10)) {\n          param_2[9] = *(ulong *)(uVar9 + 0x10);\n        }\n        if ((ulong)param_2[8] < *(ulong *)(uVar9 + 8)) {\n          param_2[8] = *(ulong *)(uVar9 + 8);\n        }\n      }\n      if ((char)local_58 != '\0') {\n        if (((*(byte *)((long)param_2 + 0x3c) & 1) == 0) ||\n           ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)) {\n          *(byte *)((long)param_2 + 0x3c) =\n               *(byte *)((long)param_2 + 0x3c) & 0xfd |\n               ((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) * '\x02' | 1;\n        }\n      }\n      bVar16 = *(byte *)(uVar9 + 5) & 3;\n      if ((*(byte *)(uVar9 + 5) & 3) != 0) {\n        bVar1 = *(byte *)((long)param_2 + 0x39);\n        if (((bVar1 & 3) == 0) || (bVar16 < (bVar1 & 3))) {\n          *(byte *)((long)param_2 + 0x39) = bVar16 | bVar1 & 0xfc;\n        }\n      }\n    }\n    else {\n      bVar16 = *(byte *)(param_2 + 7);\n      uVar9 = param_2[8];\n      FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7,param_8);\n      if ((char)local_78 != '\0') {\n        if ((ulong)param_2[9] < uVar4) {\n          param_2[9] = uVar4;\n        }\n        if ((ulong)param_2[8] < uVar9) {\n          param_2[8] = uVar9;\n        }\n      }\n      if (((char)local_58 != '\0') &&\n         (((*(byte *)((long)param_2 + 0x3c) & 1) == 0 ||\n          ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)))) {\n        *(byte *)((long)param_2 + 0x3c) =\n             *(byte *)((long)param_2 + 0x3c) & 0xfd | (bVar16 >> 4 == 2) * '\x02' | 1;\n      }\n    }\n    bVar16 = *(byte *)((long)param_2 + 0x3a);\n    uVar9 = (ulong)bVar16;\n    if ((bVar16 & 7) == 0) {\n      bVar1 = *(byte *)(param_2[2] + 0x3c);\n      if ((((bVar1 & 1) != 0) && ((char)bVar16 < '\0')) &&\n         ((*(byte *)((long)param_2 + 0x3c) & 2) == 0)) {\n        *(byte *)(param_2[2] + 0x3c) = bVar1 | 2;\n      }\n    }\n    if ((char)local_78 != '\0') {\n      uVar9 = *(ulong *)(PTR_DAT_004ba7c8 + 0x10);\n      if (uVar9 == 0) {\nLAB_002c17cc:\n                    \n        FUN_001e9890("../../gold/parameters.h",0x5c,"options");\n      }\n      if (*(char *)(uVar9 + 0x6de1) != '\0') {\n        pcVar15 = "common of \'%s\' overriding smaller common";\n        uVar9 = *(ulong *)(*param_3 + 0x10);\n        if ((uVar9 > uVar4 || uVar4 == uVar9) &&\n           (pcVar15 = "common of \'%s\' overidden by larger common", uVar9 <= uVar4)) {\n          pcVar15 = "multiple common of \'%s\'";\n        }\n        uVar11 = gettext(pcVar15);\n        uVar9 = FUN_002be7a0(0,uVar11,param_2,0,param_7);\n      }\n    }\n  }" if (parenthesized_expression "((*(char *)(plVar3[1] + 0xd) == '\0') ||\n     (uVar9 = (**(code **)(*plVar3 + 0x158))(plVar3,param_2,param_3,param_7,param_8),\n     (char)uVar9 == '\0'))" ( (binary_expression "(*(char *)(plVar3[1] + 0xd) == '\0') ||\n     (uVar9 = (**(code **)(*plVar3 + 0x158))(plVar3,param_2,param_3,param_7,param_8),\n     (char)uVar9 == '\0')" (parenthesized_expression "(*(char *)(plVar3[1] + 0xd) == '\0')" ( (binary_expression "*(char *)(plVar3[1] + 0xd) == '\0'" (pointer_expression "*(char *)(plVar3[1] + 0xd)" * (cast_expression "(char *)(plVar3[1] + 0xd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar3[1] + 0xd)" ( (binary_expression "plVar3[1] + 0xd" (subscript_expression "plVar3[1]" identifier [ number_literal ]) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(uVar9 = (**(code **)(*plVar3 + 0x158))(plVar3,param_2,param_3,param_7,param_8),\n     (char)uVar9 == '\0')" ( (comma_expression "uVar9 = (**(code **)(*plVar3 + 0x158))(plVar3,param_2,param_3,param_7,param_8),\n     (char)uVar9 == '\0'" (assignment_expression "uVar9 = (**(code **)(*plVar3 + 0x158))(plVar3,param_2,param_3,param_7,param_8)" identifier = (call_expression "(**(code **)(*plVar3 + 0x158))(plVar3,param_2,param_3,param_7,param_8)" (parenthesized_expression "(**(code **)(*plVar3 + 0x158))" ( (pointer_expression "**(code **)(*plVar3 + 0x158)" * (pointer_expression "*(code **)(*plVar3 + 0x158)" * (cast_expression "(code **)(*plVar3 + 0x158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar3 + 0x158)" ( (binary_expression "*plVar3 + 0x158" (pointer_expression "*plVar3" * identifier) + number_literal) ))))) )) (argument_list "(plVar3,param_2,param_3,param_7,param_8)" ( identifier , identifier , identifier , identifier , identifier )))) , (binary_expression "(char)uVar9 == '\0'" (cast_expression "(char)uVar9" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n    if ((*(byte *)((long)param_7 + 0x3c) & 1) == 0) {\n      if (((*(byte *)(*param_3 + 4) & 0xf) == 5) &&\n         ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))) {\n        if ((*(byte *)((long)param_2 + 0x3a) & 7) == 0) {\n          uVar11 = *(undefined8 *)(param_2[2] + 8);\n          FUN_002de930(&local_58,param_2);\n          puVar5 = local_58;\n          uVar13 = gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");\n                    \n          uVar9 = FUN_001e15a0(uVar13,puVar5,uVar11);\n          if (local_58 == local_48) {\n            return uVar9;\n          }\n          uVar9 = FUN_00338a50();\n          return uVar9;\n        }\n        goto LAB_002c1bd9;\n      }\n      *(byte *)((long)param_2 + 0x3a) = *(byte *)((long)param_2 + 0x3a) | 0x80;\n      lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    }\n    else {\n      if ((param_4 == 0) && (uVar8 = (*(byte *)((long)param_2 + 0x39) & 3) - 1, uVar8 < 2)) {\n        return (ulong)uVar8;\n      }\n      *(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 1;\n      lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    }\n    if ((lVar10 == 0) && ((*(byte *)((long)param_7 + 0x3c) & 1) == 0)) {\n      *(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 0x40;\n    }\n    if (((*(byte *)((long)param_2 + 0x3a) & 7) == 0) &&\n       (lVar10 = (**(code **)(*(long *)param_2[2] + 0x28))(), lVar10 != 0)) {\n      lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n      if (lVar10 == 0) goto LAB_002c17cc;\n      if (*(char *)(*(long *)(lVar10 + 0x9058) + 0xb1) != '\0') {\n        if (((((*(byte *)((long)param_2 + 0x3a) & 7) != 0) ||\n             ((*(byte *)((long)param_2 + 0x3b) & 0x20) != 0)) ||\n            (cVar6 = FUN_002dd6f0(*(undefined4 *)(param_2 + 3)), cVar6 != '\x01')) ||\n           ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))) {\n          FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7);\n          return param_8;\n        }\n        uVar9 = param_2[9];\n        uVar4 = param_2[8];\n        uVar12 = FUN_002bffb0(param_1,param_2,param_3,param_4,0,param_7,param_8);\n        if ((ulong)param_2[9] < uVar9) {\n          param_2[9] = uVar9;\n        }\n        if (uVar4 <= (ulong)param_2[8]) {\n          return uVar12;\n        }\n        param_2[8] = uVar4;\n        return uVar12;\n      }\n    }\n    else {\n      lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n      if (lVar10 == 0) goto LAB_002c17cc;\n    }\n    if (*(char *)(lVar10 + 0x16b1) != '\0') {\n      uVar9 = *param_3;\n      if ((((((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) || (*(byte *)(param_2 + 7) >> 4 == 2)) &&\n           (((param_6 != 0 & bVar16) != 0 &&\n            (((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0)))))) &&\n          (((*(byte *)(uVar9 + 4) & 0xf) != (*(byte *)(param_2 + 7) & 0xf) ||\n           (param_2[9] != *(long *)(uVar9 + 0x10))))) &&\n         ((pcVar15 = (char *)*param_2, *pcVar15 == '_' && (pcVar15[1] == 'Z')))) {\n        local_68 = *(undefined8 *)(uVar9 + 8);\n        local_78 = param_7;\n        local_70 = param_6;\n        if ((*(byte *)((long)param_2 + 0x3a) & 7) != 0) {\nLAB_002c1bd9:\n                    \n          FUN_001e9890("../../gold/symtab.h",0xa1,"object");\n        }\n        local_58 = (undefined8 *)param_2[2];\n        local_48[0] = param_2[8];\n        local_88 = pcVar15;\n        local_50 = iVar2;\n        local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);\n        FUN_001c3360(local_80,&local_78,&local_80,1);\n        local_88 = (char *)*param_2;\n        local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);\n        FUN_001c3360(local_80,&local_58,&local_80,1);\n      }\n    }\n    local_98 = &local_78;\n    lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    if (lVar10 == 0) {\n      uVar14 = (uint)*(byte *)(*param_3 + 4);\n      uVar8 = uVar14;\n    }\n    else {\n      uVar14 = (uint)*(byte *)(*param_3 + 4);\n      uVar8 = (uint)*(byte *)(param_2 + 7);\n    }\n    uVar7 = FUN_002be580((int)uVar14 >> 4,*(byte *)((long)param_7 + 0x3c) & 1,param_4,param_5);\n    uVar4 = param_2[9];\n    cVar6 = FUN_002be950(param_2,uVar7,uVar8 & 0xf,0,param_7,local_98,&local_58,param_9);\n    if (cVar6 == '\0') {\n      uVar9 = *param_3;\n      if ((char)local_78 != '\0') {\n        if (uVar4 < *(ulong *)(uVar9 + 0x10)) {\n          param_2[9] = *(ulong *)(uVar9 + 0x10);\n        }\n        if ((ulong)param_2[8] < *(ulong *)(uVar9 + 8)) {\n          param_2[8] = *(ulong *)(uVar9 + 8);\n        }\n      }\n      if ((char)local_58 != '\0') {\n        if (((*(byte *)((long)param_2 + 0x3c) & 1) == 0) ||\n           ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)) {\n          *(byte *)((long)param_2 + 0x3c) =\n               *(byte *)((long)param_2 + 0x3c) & 0xfd |\n               ((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) * '\x02' | 1;\n        }\n      }\n      bVar16 = *(byte *)(uVar9 + 5) & 3;\n      if ((*(byte *)(uVar9 + 5) & 3) != 0) {\n        bVar1 = *(byte *)((long)param_2 + 0x39);\n        if (((bVar1 & 3) == 0) || (bVar16 < (bVar1 & 3))) {\n          *(byte *)((long)param_2 + 0x39) = bVar16 | bVar1 & 0xfc;\n        }\n      }\n    }\n    else {\n      bVar16 = *(byte *)(param_2 + 7);\n      uVar9 = param_2[8];\n      FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7,param_8);\n      if ((char)local_78 != '\0') {\n        if ((ulong)param_2[9] < uVar4) {\n          param_2[9] = uVar4;\n        }\n        if ((ulong)param_2[8] < uVar9) {\n          param_2[8] = uVar9;\n        }\n      }\n      if (((char)local_58 != '\0') &&\n         (((*(byte *)((long)param_2 + 0x3c) & 1) == 0 ||\n          ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)))) {\n        *(byte *)((long)param_2 + 0x3c) =\n             *(byte *)((long)param_2 + 0x3c) & 0xfd | (bVar16 >> 4 == 2) * '\x02' | 1;\n      }\n    }\n    bVar16 = *(byte *)((long)param_2 + 0x3a);\n    uVar9 = (ulong)bVar16;\n    if ((bVar16 & 7) == 0) {\n      bVar1 = *(byte *)(param_2[2] + 0x3c);\n      if ((((bVar1 & 1) != 0) && ((char)bVar16 < '\0')) &&\n         ((*(byte *)((long)param_2 + 0x3c) & 2) == 0)) {\n        *(byte *)(param_2[2] + 0x3c) = bVar1 | 2;\n      }\n    }\n    if ((char)local_78 != '\0') {\n      uVar9 = *(ulong *)(PTR_DAT_004ba7c8 + 0x10);\n      if (uVar9 == 0) {\nLAB_002c17cc:\n                    \n        FUN_001e9890("../../gold/parameters.h",0x5c,"options");\n      }\n      if (*(char *)(uVar9 + 0x6de1) != '\0') {\n        pcVar15 = "common of \'%s\' overriding smaller common";\n        uVar9 = *(ulong *)(*param_3 + 0x10);\n        if ((uVar9 > uVar4 || uVar4 == uVar9) &&\n           (pcVar15 = "common of \'%s\' overidden by larger common", uVar9 <= uVar4)) {\n          pcVar15 = "multiple common of \'%s\'";\n        }\n        uVar11 = gettext(pcVar15);\n        uVar9 = FUN_002be7a0(0,uVar11,param_2,0,param_7);\n      }\n    }\n  }" { (if_statement "if ((*(byte *)((long)param_7 + 0x3c) & 1) == 0) {\n      if (((*(byte *)(*param_3 + 4) & 0xf) == 5) &&\n         ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))) {\n        if ((*(byte *)((long)param_2 + 0x3a) & 7) == 0) {\n          uVar11 = *(undefined8 *)(param_2[2] + 8);\n          FUN_002de930(&local_58,param_2);\n          puVar5 = local_58;\n          uVar13 = gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");\n                    \n          uVar9 = FUN_001e15a0(uVar13,puVar5,uVar11);\n          if (local_58 == local_48) {\n            return uVar9;\n          }\n          uVar9 = FUN_00338a50();\n          return uVar9;\n        }\n        goto LAB_002c1bd9;\n      }\n      *(byte *)((long)param_2 + 0x3a) = *(byte *)((long)param_2 + 0x3a) | 0x80;\n      lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    }\n    else {\n      if ((param_4 == 0) && (uVar8 = (*(byte *)((long)param_2 + 0x39) & 3) - 1, uVar8 < 2)) {\n        return (ulong)uVar8;\n      }\n      *(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 1;\n      lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    }" if (parenthesized_expression "((*(byte *)((long)param_7 + 0x3c) & 1) == 0)" ( (binary_expression "(*(byte *)((long)param_7 + 0x3c) & 1) == 0" (parenthesized_expression "(*(byte *)((long)param_7 + 0x3c) & 1)" ( (binary_expression "*(byte *)((long)param_7 + 0x3c) & 1" (pointer_expression "*(byte *)((long)param_7 + 0x3c)" * (cast_expression "(byte *)((long)param_7 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_7 + 0x3c)" ( (binary_expression "(long)param_7 + 0x3c" (cast_expression "(long)param_7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      if (((*(byte *)(*param_3 + 4) & 0xf) == 5) &&\n         ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))) {\n        if ((*(byte *)((long)param_2 + 0x3a) & 7) == 0) {\n          uVar11 = *(undefined8 *)(param_2[2] + 8);\n          FUN_002de930(&local_58,param_2);\n          puVar5 = local_58;\n          uVar13 = gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");\n                    \n          uVar9 = FUN_001e15a0(uVar13,puVar5,uVar11);\n          if (local_58 == local_48) {\n            return uVar9;\n          }\n          uVar9 = FUN_00338a50();\n          return uVar9;\n        }\n        goto LAB_002c1bd9;\n      }\n      *(byte *)((long)param_2 + 0x3a) = *(byte *)((long)param_2 + 0x3a) | 0x80;\n      lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    }" { (if_statement "if (((*(byte *)(*param_3 + 4) & 0xf) == 5) &&\n         ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))) {\n        if ((*(byte *)((long)param_2 + 0x3a) & 7) == 0) {\n          uVar11 = *(undefined8 *)(param_2[2] + 8);\n          FUN_002de930(&local_58,param_2);\n          puVar5 = local_58;\n          uVar13 = gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");\n                    \n          uVar9 = FUN_001e15a0(uVar13,puVar5,uVar11);\n          if (local_58 == local_48) {\n            return uVar9;\n          }\n          uVar9 = FUN_00338a50();\n          return uVar9;\n        }\n        goto LAB_002c1bd9;\n      }" if (parenthesized_expression "(((*(byte *)(*param_3 + 4) & 0xf) == 5) &&\n         ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0'))))" ( (binary_expression "((*(byte *)(*param_3 + 4) & 0xf) == 5) &&\n         ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))" (parenthesized_expression "((*(byte *)(*param_3 + 4) & 0xf) == 5)" ( (binary_expression "(*(byte *)(*param_3 + 4) & 0xf) == 5" (parenthesized_expression "(*(byte *)(*param_3 + 4) & 0xf)" ( (binary_expression "*(byte *)(*param_3 + 4) & 0xf" (pointer_expression "*(byte *)(*param_3 + 4)" * (cast_expression "(byte *)(*param_3 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_3 + 4)" ( (binary_expression "*param_3 + 4" (pointer_expression "*param_3" * identifier) + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))" ( (parenthesized_expression "(param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0'))" ( (binary_expression "param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')" (binary_expression "param_5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "(cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')" ( (comma_expression "cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0'" (assignment_expression "cVar6 = FUN_002dd6f0(param_4)" identifier = (call_expression "FUN_002dd6f0(param_4)" identifier (argument_list "(param_4)" ( identifier )))) , (binary_expression "cVar6 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ))) )) ))) )) (compound_statement "{\n        if ((*(byte *)((long)param_2 + 0x3a) & 7) == 0) {\n          uVar11 = *(undefined8 *)(param_2[2] + 8);\n          FUN_002de930(&local_58,param_2);\n          puVar5 = local_58;\n          uVar13 = gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");\n                    \n          uVar9 = FUN_001e15a0(uVar13,puVar5,uVar11);\n          if (local_58 == local_48) {\n            return uVar9;\n          }\n          uVar9 = FUN_00338a50();\n          return uVar9;\n        }\n        goto LAB_002c1bd9;\n      }" { (if_statement "if ((*(byte *)((long)param_2 + 0x3a) & 7) == 0) {\n          uVar11 = *(undefined8 *)(param_2[2] + 8);\n          FUN_002de930(&local_58,param_2);\n          puVar5 = local_58;\n          uVar13 = gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");\n                    \n          uVar9 = FUN_001e15a0(uVar13,puVar5,uVar11);\n          if (local_58 == local_48) {\n            return uVar9;\n          }\n          uVar9 = FUN_00338a50();\n          return uVar9;\n        }" if (parenthesized_expression "((*(byte *)((long)param_2 + 0x3a) & 7) == 0)" ( (binary_expression "(*(byte *)((long)param_2 + 0x3a) & 7) == 0" (parenthesized_expression "(*(byte *)((long)param_2 + 0x3a) & 7)" ( (binary_expression "*(byte *)((long)param_2 + 0x3a) & 7" (pointer_expression "*(byte *)((long)param_2 + 0x3a)" * (cast_expression "(byte *)((long)param_2 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + 0x3a)" ( (binary_expression "(long)param_2 + 0x3a" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n          uVar11 = *(undefined8 *)(param_2[2] + 8);\n          FUN_002de930(&local_58,param_2);\n          puVar5 = local_58;\n          uVar13 = gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");\n                    \n          uVar9 = FUN_001e15a0(uVar13,puVar5,uVar11);\n          if (local_58 == local_48) {\n            return uVar9;\n          }\n          uVar9 = FUN_00338a50();\n          return uVar9;\n        }" { (expression_statement "uVar11 = *(undefined8 *)(param_2[2] + 8);" (assignment_expression "uVar11 = *(undefined8 *)(param_2[2] + 8)" identifier = (pointer_expression "*(undefined8 *)(param_2[2] + 8)" * (cast_expression "(undefined8 *)(param_2[2] + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[2] + 8)" ( (binary_expression "param_2[2] + 8" (subscript_expression "param_2[2]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "FUN_002de930(&local_58,param_2);" (call_expression "FUN_002de930(&local_58,param_2)" identifier (argument_list "(&local_58,param_2)" ( (pointer_expression "&local_58" & identifier) , identifier ))) ;) (expression_statement "puVar5 = local_58;" (assignment_expression "puVar5 = local_58" identifier = identifier) ;) (expression_statement "uVar13 = gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");" (assignment_expression "uVar13 = gettext("STT_COMMON symbol \'%s\' in %s is not in a common section")" identifier = (call_expression "gettext("STT_COMMON symbol \'%s\' in %s is not in a common section")" identifier (argument_list "("STT_COMMON symbol \'%s\' in %s is not in a common section")" ( (string_literal ""STT_COMMON symbol \'%s\' in %s is not in a common section"" " string_content escape_sequence string_content escape_sequence string_content ") )))) ;) (expression_statement "uVar9 = FUN_001e15a0(uVar13,puVar5,uVar11);" (assignment_expression "uVar9 = FUN_001e15a0(uVar13,puVar5,uVar11)" identifier = (call_expression "FUN_001e15a0(uVar13,puVar5,uVar11)" identifier (argument_list "(uVar13,puVar5,uVar11)" ( identifier , identifier , identifier )))) ;) (if_statement "if (local_58 == local_48) {\n            return uVar9;\n          }" if (parenthesized_expression "(local_58 == local_48)" ( (binary_expression "local_58 == local_48" identifier == identifier) )) (compound_statement "{\n            return uVar9;\n          }" { (return_statement "return uVar9;" return identifier ;) })) (expression_statement "uVar9 = FUN_00338a50();" (assignment_expression "uVar9 = FUN_00338a50()" identifier = (call_expression "FUN_00338a50()" identifier (argument_list "()" ( )))) ;) (return_statement "return uVar9;" return identifier ;) })) (goto_statement "goto LAB_002c1bd9;" goto statement_identifier ;) })) (expression_statement "*(byte *)((long)param_2 + 0x3a) = *(byte *)((long)param_2 + 0x3a) | 0x80;" (assignment_expression "*(byte *)((long)param_2 + 0x3a) = *(byte *)((long)param_2 + 0x3a) | 0x80" (pointer_expression "*(byte *)((long)param_2 + 0x3a)" * (cast_expression "(byte *)((long)param_2 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + 0x3a)" ( (binary_expression "(long)param_2 + 0x3a" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((long)param_2 + 0x3a) | 0x80" (pointer_expression "*(byte *)((long)param_2 + 0x3a)" * (cast_expression "(byte *)((long)param_2 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + 0x3a)" ( (binary_expression "(long)param_2 + 0x3a" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) | number_literal)) ;) (expression_statement "lVar10 = (**(code **)(*param_7 + 0x28))(param_7);" (assignment_expression "lVar10 = (**(code **)(*param_7 + 0x28))(param_7)" identifier = (call_expression "(**(code **)(*param_7 + 0x28))(param_7)" (parenthesized_expression "(**(code **)(*param_7 + 0x28))" ( (pointer_expression "**(code **)(*param_7 + 0x28)" * (pointer_expression "*(code **)(*param_7 + 0x28)" * (cast_expression "(code **)(*param_7 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_7 + 0x28)" ( (binary_expression "*param_7 + 0x28" (pointer_expression "*param_7" * identifier) + number_literal) ))))) )) (argument_list "(param_7)" ( identifier )))) ;) }) (else_clause "else {\n      if ((param_4 == 0) && (uVar8 = (*(byte *)((long)param_2 + 0x39) & 3) - 1, uVar8 < 2)) {\n        return (ulong)uVar8;\n      }\n      *(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 1;\n      lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    }" else (compound_statement "{\n      if ((param_4 == 0) && (uVar8 = (*(byte *)((long)param_2 + 0x39) & 3) - 1, uVar8 < 2)) {\n        return (ulong)uVar8;\n      }\n      *(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 1;\n      lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    }" { (if_statement "if ((param_4 == 0) && (uVar8 = (*(byte *)((long)param_2 + 0x39) & 3) - 1, uVar8 < 2)) {\n        return (ulong)uVar8;\n      }" if (parenthesized_expression "((param_4 == 0) && (uVar8 = (*(byte *)((long)param_2 + 0x39) & 3) - 1, uVar8 < 2))" ( (binary_expression "(param_4 == 0) && (uVar8 = (*(byte *)((long)param_2 + 0x39) & 3) - 1, uVar8 < 2)" (parenthesized_expression "(param_4 == 0)" ( (binary_expression "param_4 == 0" identifier == number_literal) )) && (parenthesized_expression "(uVar8 = (*(byte *)((long)param_2 + 0x39) & 3) - 1, uVar8 < 2)" ( (comma_expression "uVar8 = (*(byte *)((long)param_2 + 0x39) & 3) - 1, uVar8 < 2" (assignment_expression "uVar8 = (*(byte *)((long)param_2 + 0x39) & 3) - 1" identifier = (binary_expression "(*(byte *)((long)param_2 + 0x39) & 3) - 1" (parenthesized_expression "(*(byte *)((long)param_2 + 0x39) & 3)" ( (binary_expression "*(byte *)((long)param_2 + 0x39) & 3" (pointer_expression "*(byte *)((long)param_2 + 0x39)" * (cast_expression "(byte *)((long)param_2 + 0x39)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + 0x39)" ( (binary_expression "(long)param_2 + 0x39" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) - number_literal)) , (binary_expression "uVar8 < 2" identifier < number_literal)) ))) )) (compound_statement "{\n        return (ulong)uVar8;\n      }" { (return_statement "return (ulong)uVar8;" return (cast_expression "(ulong)uVar8" ( (type_descriptor "ulong" type_identifier) ) identifier) ;) })) (expression_statement "*(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 1;" (assignment_expression "*(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 1" (pointer_expression "*(byte *)((long)param_2 + 0x3b)" * (cast_expression "(byte *)((long)param_2 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + 0x3b)" ( (binary_expression "(long)param_2 + 0x3b" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((long)param_2 + 0x3b) | 1" (pointer_expression "*(byte *)((long)param_2 + 0x3b)" * (cast_expression "(byte *)((long)param_2 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + 0x3b)" ( (binary_expression "(long)param_2 + 0x3b" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) | number_literal)) ;) (expression_statement "lVar10 = (**(code **)(*param_7 + 0x28))(param_7);" (assignment_expression "lVar10 = (**(code **)(*param_7 + 0x28))(param_7)" identifier = (call_expression "(**(code **)(*param_7 + 0x28))(param_7)" (parenthesized_expression "(**(code **)(*param_7 + 0x28))" ( (pointer_expression "**(code **)(*param_7 + 0x28)" * (pointer_expression "*(code **)(*param_7 + 0x28)" * (cast_expression "(code **)(*param_7 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_7 + 0x28)" ( (binary_expression "*param_7 + 0x28" (pointer_expression "*param_7" * identifier) + number_literal) ))))) )) (argument_list "(param_7)" ( identifier )))) ;) }))) (if_statement "if ((lVar10 == 0) && ((*(byte *)((long)param_7 + 0x3c) & 1) == 0)) {\n      *(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 0x40;\n    }" if (parenthesized_expression "((lVar10 == 0) && ((*(byte *)((long)param_7 + 0x3c) & 1) == 0))" ( (binary_expression "(lVar10 == 0) && ((*(byte *)((long)param_7 + 0x3c) & 1) == 0)" (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) && (parenthesized_expression "((*(byte *)((long)param_7 + 0x3c) & 1) == 0)" ( (binary_expression "(*(byte *)((long)param_7 + 0x3c) & 1) == 0" (parenthesized_expression "(*(byte *)((long)param_7 + 0x3c) & 1)" ( (binary_expression "*(byte *)((long)param_7 + 0x3c) & 1" (pointer_expression "*(byte *)((long)param_7 + 0x3c)" * (cast_expression "(byte *)((long)param_7 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_7 + 0x3c)" ( (binary_expression "(long)param_7 + 0x3c" (cast_expression "(long)param_7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n      *(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 0x40;\n    }" { (expression_statement "*(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 0x40;" (assignment_expression "*(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 0x40" (pointer_expression "*(byte *)((long)param_2 + 0x3b)" * (cast_expression "(byte *)((long)param_2 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + 0x3b)" ( (binary_expression "(long)param_2 + 0x3b" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((long)param_2 + 0x3b) | 0x40" (pointer_expression "*(byte *)((long)param_2 + 0x3b)" * (cast_expression "(byte *)((long)param_2 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + 0x3b)" ( (binary_expression "(long)param_2 + 0x3b" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) | number_literal)) ;) })) (if_statement "if (((*(byte *)((long)param_2 + 0x3a) & 7) == 0) &&\n       (lVar10 = (**(code **)(*(long *)param_2[2] + 0x28))(), lVar10 != 0)) {\n      lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n      if (lVar10 == 0) goto LAB_002c17cc;\n      if (*(char *)(*(long *)(lVar10 + 0x9058) + 0xb1) != '\0') {\n        if (((((*(byte *)((long)param_2 + 0x3a) & 7) != 0) ||\n             ((*(byte *)((long)param_2 + 0x3b) & 0x20) != 0)) ||\n            (cVar6 = FUN_002dd6f0(*(undefined4 *)(param_2 + 3)), cVar6 != '\x01')) ||\n           ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))) {\n          FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7);\n          return param_8;\n        }\n        uVar9 = param_2[9];\n        uVar4 = param_2[8];\n        uVar12 = FUN_002bffb0(param_1,param_2,param_3,param_4,0,param_7,param_8);\n        if ((ulong)param_2[9] < uVar9) {\n          param_2[9] = uVar9;\n        }\n        if (uVar4 <= (ulong)param_2[8]) {\n          return uVar12;\n        }\n        param_2[8] = uVar4;\n        return uVar12;\n      }\n    }\n    else {\n      lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n      if (lVar10 == 0) goto LAB_002c17cc;\n    }" if (parenthesized_expression "(((*(byte *)((long)param_2 + 0x3a) & 7) == 0) &&\n       (lVar10 = (**(code **)(*(long *)param_2[2] + 0x28))(), lVar10 != 0))" ( (binary_expression "((*(byte *)((long)param_2 + 0x3a) & 7) == 0) &&\n       (lVar10 = (**(code **)(*(long *)param_2[2] + 0x28))(), lVar10 != 0)" (parenthesized_expression "((*(byte *)((long)param_2 + 0x3a) & 7) == 0)" ( (binary_expression "(*(byte *)((long)param_2 + 0x3a) & 7) == 0" (parenthesized_expression "(*(byte *)((long)param_2 + 0x3a) & 7)" ( (binary_expression "*(byte *)((long)param_2 + 0x3a) & 7" (pointer_expression "*(byte *)((long)param_2 + 0x3a)" * (cast_expression "(byte *)((long)param_2 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + 0x3a)" ( (binary_expression "(long)param_2 + 0x3a" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "(lVar10 = (**(code **)(*(long *)param_2[2] + 0x28))(), lVar10 != 0)" ( (comma_expression "lVar10 = (**(code **)(*(long *)param_2[2] + 0x28))(), lVar10 != 0" (assignment_expression "lVar10 = (**(code **)(*(long *)param_2[2] + 0x28))()" identifier = (call_expression "(**(code **)(*(long *)param_2[2] + 0x28))()" (parenthesized_expression "(**(code **)(*(long *)param_2[2] + 0x28))" ( (pointer_expression "**(code **)(*(long *)param_2[2] + 0x28)" * (pointer_expression "*(code **)(*(long *)param_2[2] + 0x28)" * (cast_expression "(code **)(*(long *)param_2[2] + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)param_2[2] + 0x28)" ( (binary_expression "*(long *)param_2[2] + 0x28" (pointer_expression "*(long *)param_2[2]" * (cast_expression "(long *)param_2[2]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[2]" identifier [ number_literal ]))) + number_literal) ))))) )) (argument_list "()" ( )))) , (binary_expression "lVar10 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n      if (lVar10 == 0) goto LAB_002c17cc;\n      if (*(char *)(*(long *)(lVar10 + 0x9058) + 0xb1) != '\0') {\n        if (((((*(byte *)((long)param_2 + 0x3a) & 7) != 0) ||\n             ((*(byte *)((long)param_2 + 0x3b) & 0x20) != 0)) ||\n            (cVar6 = FUN_002dd6f0(*(undefined4 *)(param_2 + 3)), cVar6 != '\x01')) ||\n           ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))) {\n          FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7);\n          return param_8;\n        }\n        uVar9 = param_2[9];\n        uVar4 = param_2[8];\n        uVar12 = FUN_002bffb0(param_1,param_2,param_3,param_4,0,param_7,param_8);\n        if ((ulong)param_2[9] < uVar9) {\n          param_2[9] = uVar9;\n        }\n        if (uVar4 <= (ulong)param_2[8]) {\n          return uVar12;\n        }\n        param_2[8] = uVar4;\n        return uVar12;\n      }\n    }" { (expression_statement "lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10);" (assignment_expression "lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10)" identifier = (pointer_expression "*(long *)(PTR_DAT_004ba7c8 + 0x10)" * (cast_expression "(long *)(PTR_DAT_004ba7c8 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_004ba7c8 + 0x10)" ( (binary_expression "PTR_DAT_004ba7c8 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (lVar10 == 0) goto LAB_002c17cc;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (goto_statement "goto LAB_002c17cc;" goto statement_identifier ;)) (if_statement "if (*(char *)(*(long *)(lVar10 + 0x9058) + 0xb1) != '\0') {\n        if (((((*(byte *)((long)param_2 + 0x3a) & 7) != 0) ||\n             ((*(byte *)((long)param_2 + 0x3b) & 0x20) != 0)) ||\n            (cVar6 = FUN_002dd6f0(*(undefined4 *)(param_2 + 3)), cVar6 != '\x01')) ||\n           ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))) {\n          FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7);\n          return param_8;\n        }\n        uVar9 = param_2[9];\n        uVar4 = param_2[8];\n        uVar12 = FUN_002bffb0(param_1,param_2,param_3,param_4,0,param_7,param_8);\n        if ((ulong)param_2[9] < uVar9) {\n          param_2[9] = uVar9;\n        }\n        if (uVar4 <= (ulong)param_2[8]) {\n          return uVar12;\n        }\n        param_2[8] = uVar4;\n        return uVar12;\n      }" if (parenthesized_expression "(*(char *)(*(long *)(lVar10 + 0x9058) + 0xb1) != '\0')" ( (binary_expression "*(char *)(*(long *)(lVar10 + 0x9058) + 0xb1) != '\0'" (pointer_expression "*(char *)(*(long *)(lVar10 + 0x9058) + 0xb1)" * (cast_expression "(char *)(*(long *)(lVar10 + 0x9058) + 0xb1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(lVar10 + 0x9058) + 0xb1)" ( (binary_expression "*(long *)(lVar10 + 0x9058) + 0xb1" (pointer_expression "*(long *)(lVar10 + 0x9058)" * (cast_expression "(long *)(lVar10 + 0x9058)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x9058)" ( (binary_expression "lVar10 + 0x9058" identifier + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        if (((((*(byte *)((long)param_2 + 0x3a) & 7) != 0) ||\n             ((*(byte *)((long)param_2 + 0x3b) & 0x20) != 0)) ||\n            (cVar6 = FUN_002dd6f0(*(undefined4 *)(param_2 + 3)), cVar6 != '\x01')) ||\n           ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))) {\n          FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7);\n          return param_8;\n        }\n        uVar9 = param_2[9];\n        uVar4 = param_2[8];\n        uVar12 = FUN_002bffb0(param_1,param_2,param_3,param_4,0,param_7,param_8);\n        if ((ulong)param_2[9] < uVar9) {\n          param_2[9] = uVar9;\n        }\n        if (uVar4 <= (ulong)param_2[8]) {\n          return uVar12;\n        }\n        param_2[8] = uVar4;\n        return uVar12;\n      }" { (if_statement "if (((((*(byte *)((long)param_2 + 0x3a) & 7) != 0) ||\n             ((*(byte *)((long)param_2 + 0x3b) & 0x20) != 0)) ||\n            (cVar6 = FUN_002dd6f0(*(undefined4 *)(param_2 + 3)), cVar6 != '\x01')) ||\n           ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))) {\n          FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7);\n          return param_8;\n        }" if (parenthesized_expression "(((((*(byte *)((long)param_2 + 0x3a) & 7) != 0) ||\n             ((*(byte *)((long)param_2 + 0x3b) & 0x20) != 0)) ||\n            (cVar6 = FUN_002dd6f0(*(undefined4 *)(param_2 + 3)), cVar6 != '\x01')) ||\n           ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0'))))" ( (binary_expression "((((*(byte *)((long)param_2 + 0x3a) & 7) != 0) ||\n             ((*(byte *)((long)param_2 + 0x3b) & 0x20) != 0)) ||\n            (cVar6 = FUN_002dd6f0(*(undefined4 *)(param_2 + 3)), cVar6 != '\x01')) ||\n           ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))" (parenthesized_expression "((((*(byte *)((long)param_2 + 0x3a) & 7) != 0) ||\n             ((*(byte *)((long)param_2 + 0x3b) & 0x20) != 0)) ||\n            (cVar6 = FUN_002dd6f0(*(undefined4 *)(param_2 + 3)), cVar6 != '\x01'))" ( (binary_expression "(((*(byte *)((long)param_2 + 0x3a) & 7) != 0) ||\n             ((*(byte *)((long)param_2 + 0x3b) & 0x20) != 0)) ||\n            (cVar6 = FUN_002dd6f0(*(undefined4 *)(param_2 + 3)), cVar6 != '\x01')" (parenthesized_expression "(((*(byte *)((long)param_2 + 0x3a) & 7) != 0) ||\n             ((*(byte *)((long)param_2 + 0x3b) & 0x20) != 0))" ( (binary_expression "((*(byte *)((long)param_2 + 0x3a) & 7) != 0) ||\n             ((*(byte *)((long)param_2 + 0x3b) & 0x20) != 0)" (parenthesized_expression "((*(byte *)((long)param_2 + 0x3a) & 7) != 0)" ( (binary_expression "(*(byte *)((long)param_2 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)((long)param_2 + 0x3a) & 7)" ( (binary_expression "*(byte *)((long)param_2 + 0x3a) & 7" (pointer_expression "*(byte *)((long)param_2 + 0x3a)" * (cast_expression "(byte *)((long)param_2 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + 0x3a)" ( (binary_expression "(long)param_2 + 0x3a" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) || (parenthesized_expression "((*(byte *)((long)param_2 + 0x3b) & 0x20) != 0)" ( (binary_expression "(*(byte *)((long)param_2 + 0x3b) & 0x20) != 0" (parenthesized_expression "(*(byte *)((long)param_2 + 0x3b) & 0x20)" ( (binary_expression "*(byte *)((long)param_2 + 0x3b) & 0x20" (pointer_expression "*(byte *)((long)param_2 + 0x3b)" * (cast_expression "(byte *)((long)param_2 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + 0x3b)" ( (binary_expression "(long)param_2 + 0x3b" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "(cVar6 = FUN_002dd6f0(*(undefined4 *)(param_2 + 3)), cVar6 != '\x01')" ( (comma_expression "cVar6 = FUN_002dd6f0(*(undefined4 *)(param_2 + 3)), cVar6 != '\x01'" (assignment_expression "cVar6 = FUN_002dd6f0(*(undefined4 *)(param_2 + 3))" identifier = (call_expression "FUN_002dd6f0(*(undefined4 *)(param_2 + 3))" identifier (argument_list "(*(undefined4 *)(param_2 + 3))" ( (pointer_expression "*(undefined4 *)(param_2 + 3)" * (cast_expression "(undefined4 *)(param_2 + 3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 3)" ( (binary_expression "param_2 + 3" identifier + number_literal) )))) )))) , (binary_expression "cVar6 != '\x01'" identifier != (char_literal "'\x01'" ' escape_sequence '))) ))) )) || (parenthesized_expression "((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))" ( (parenthesized_expression "(param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0'))" ( (binary_expression "param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')" (binary_expression "param_5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "(cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')" ( (comma_expression "cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0'" (assignment_expression "cVar6 = FUN_002dd6f0(param_4)" identifier = (call_expression "FUN_002dd6f0(param_4)" identifier (argument_list "(param_4)" ( identifier )))) , (binary_expression "cVar6 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ))) )) ))) )) (compound_statement "{\n          FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7);\n          return param_8;\n        }" { (expression_statement "FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7);" (call_expression "FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7)" identifier (argument_list "(param_1,param_2,param_3,param_4,param_5,param_7)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (return_statement "return param_8;" return identifier ;) })) (expression_statement "uVar9 = param_2[9];" (assignment_expression "uVar9 = param_2[9]" identifier = (subscript_expression "param_2[9]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = param_2[8];" (assignment_expression "uVar4 = param_2[8]" identifier = (subscript_expression "param_2[8]" identifier [ number_literal ])) ;) (expression_statement "uVar12 = FUN_002bffb0(param_1,param_2,param_3,param_4,0,param_7,param_8);" (assignment_expression "uVar12 = FUN_002bffb0(param_1,param_2,param_3,param_4,0,param_7,param_8)" identifier = (call_expression "FUN_002bffb0(param_1,param_2,param_3,param_4,0,param_7,param_8)" identifier (argument_list "(param_1,param_2,param_3,param_4,0,param_7,param_8)" ( identifier , identifier , identifier , identifier , number_literal , identifier , identifier )))) ;) (if_statement "if ((ulong)param_2[9] < uVar9) {\n          param_2[9] = uVar9;\n        }" if (parenthesized_expression "((ulong)param_2[9] < uVar9)" ( (binary_expression "(ulong)param_2[9] < uVar9" (cast_expression "(ulong)param_2[9]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "param_2[9]" identifier [ number_literal ])) < identifier) )) (compound_statement "{\n          param_2[9] = uVar9;\n        }" { (expression_statement "param_2[9] = uVar9;" (assignment_expression "param_2[9] = uVar9" (subscript_expression "param_2[9]" identifier [ number_literal ]) = identifier) ;) })) (if_statement "if (uVar4 <= (ulong)param_2[8]) {\n          return uVar12;\n        }" if (parenthesized_expression "(uVar4 <= (ulong)param_2[8])" ( (binary_expression "uVar4 <= (ulong)param_2[8]" identifier <= (cast_expression "(ulong)param_2[8]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "param_2[8]" identifier [ number_literal ]))) )) (compound_statement "{\n          return uVar12;\n        }" { (return_statement "return uVar12;" return identifier ;) })) (expression_statement "param_2[8] = uVar4;" (assignment_expression "param_2[8] = uVar4" (subscript_expression "param_2[8]" identifier [ number_literal ]) = identifier) ;) (return_statement "return uVar12;" return identifier ;) })) }) (else_clause "else {\n      lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n      if (lVar10 == 0) goto LAB_002c17cc;\n    }" else (compound_statement "{\n      lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n      if (lVar10 == 0) goto LAB_002c17cc;\n    }" { (expression_statement "lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10);" (assignment_expression "lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10)" identifier = (pointer_expression "*(long *)(PTR_DAT_004ba7c8 + 0x10)" * (cast_expression "(long *)(PTR_DAT_004ba7c8 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_004ba7c8 + 0x10)" ( (binary_expression "PTR_DAT_004ba7c8 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (lVar10 == 0) goto LAB_002c17cc;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (goto_statement "goto LAB_002c17cc;" goto statement_identifier ;)) }))) (if_statement "if (*(char *)(lVar10 + 0x16b1) != '\0') {\n      uVar9 = *param_3;\n      if ((((((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) || (*(byte *)(param_2 + 7) >> 4 == 2)) &&\n           (((param_6 != 0 & bVar16) != 0 &&\n            (((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0)))))) &&\n          (((*(byte *)(uVar9 + 4) & 0xf) != (*(byte *)(param_2 + 7) & 0xf) ||\n           (param_2[9] != *(long *)(uVar9 + 0x10))))) &&\n         ((pcVar15 = (char *)*param_2, *pcVar15 == '_' && (pcVar15[1] == 'Z')))) {\n        local_68 = *(undefined8 *)(uVar9 + 8);\n        local_78 = param_7;\n        local_70 = param_6;\n        if ((*(byte *)((long)param_2 + 0x3a) & 7) != 0) {\nLAB_002c1bd9:\n                    \n          FUN_001e9890("../../gold/symtab.h",0xa1,"object");\n        }\n        local_58 = (undefined8 *)param_2[2];\n        local_48[0] = param_2[8];\n        local_88 = pcVar15;\n        local_50 = iVar2;\n        local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);\n        FUN_001c3360(local_80,&local_78,&local_80,1);\n        local_88 = (char *)*param_2;\n        local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);\n        FUN_001c3360(local_80,&local_58,&local_80,1);\n      }\n    }" if (parenthesized_expression "(*(char *)(lVar10 + 0x16b1) != '\0')" ( (binary_expression "*(char *)(lVar10 + 0x16b1) != '\0'" (pointer_expression "*(char *)(lVar10 + 0x16b1)" * (cast_expression "(char *)(lVar10 + 0x16b1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x16b1)" ( (binary_expression "lVar10 + 0x16b1" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar9 = *param_3;\n      if ((((((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) || (*(byte *)(param_2 + 7) >> 4 == 2)) &&\n           (((param_6 != 0 & bVar16) != 0 &&\n            (((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0)))))) &&\n          (((*(byte *)(uVar9 + 4) & 0xf) != (*(byte *)(param_2 + 7) & 0xf) ||\n           (param_2[9] != *(long *)(uVar9 + 0x10))))) &&\n         ((pcVar15 = (char *)*param_2, *pcVar15 == '_' && (pcVar15[1] == 'Z')))) {\n        local_68 = *(undefined8 *)(uVar9 + 8);\n        local_78 = param_7;\n        local_70 = param_6;\n        if ((*(byte *)((long)param_2 + 0x3a) & 7) != 0) {\nLAB_002c1bd9:\n                    \n          FUN_001e9890("../../gold/symtab.h",0xa1,"object");\n        }\n        local_58 = (undefined8 *)param_2[2];\n        local_48[0] = param_2[8];\n        local_88 = pcVar15;\n        local_50 = iVar2;\n        local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);\n        FUN_001c3360(local_80,&local_78,&local_80,1);\n        local_88 = (char *)*param_2;\n        local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);\n        FUN_001c3360(local_80,&local_58,&local_80,1);\n      }\n    }" { (expression_statement "uVar9 = *param_3;" (assignment_expression "uVar9 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (if_statement "if ((((((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) || (*(byte *)(param_2 + 7) >> 4 == 2)) &&\n           (((param_6 != 0 & bVar16) != 0 &&\n            (((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0)))))) &&\n          (((*(byte *)(uVar9 + 4) & 0xf) != (*(byte *)(param_2 + 7) & 0xf) ||\n           (param_2[9] != *(long *)(uVar9 + 0x10))))) &&\n         ((pcVar15 = (char *)*param_2, *pcVar15 == '_' && (pcVar15[1] == 'Z')))) {\n        local_68 = *(undefined8 *)(uVar9 + 8);\n        local_78 = param_7;\n        local_70 = param_6;\n        if ((*(byte *)((long)param_2 + 0x3a) & 7) != 0) {\nLAB_002c1bd9:\n                    \n          FUN_001e9890("../../gold/symtab.h",0xa1,"object");\n        }\n        local_58 = (undefined8 *)param_2[2];\n        local_48[0] = param_2[8];\n        local_88 = pcVar15;\n        local_50 = iVar2;\n        local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);\n        FUN_001c3360(local_80,&local_78,&local_80,1);\n        local_88 = (char *)*param_2;\n        local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);\n        FUN_001c3360(local_80,&local_58,&local_80,1);\n      }" if (parenthesized_expression "((((((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) || (*(byte *)(param_2 + 7) >> 4 == 2)) &&\n           (((param_6 != 0 & bVar16) != 0 &&\n            (((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0)))))) &&\n          (((*(byte *)(uVar9 + 4) & 0xf) != (*(byte *)(param_2 + 7) & 0xf) ||\n           (param_2[9] != *(long *)(uVar9 + 0x10))))) &&\n         ((pcVar15 = (char *)*param_2, *pcVar15 == '_' && (pcVar15[1] == 'Z'))))" ( (binary_expression "(((((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) || (*(byte *)(param_2 + 7) >> 4 == 2)) &&\n           (((param_6 != 0 & bVar16) != 0 &&\n            (((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0)))))) &&\n          (((*(byte *)(uVar9 + 4) & 0xf) != (*(byte *)(param_2 + 7) & 0xf) ||\n           (param_2[9] != *(long *)(uVar9 + 0x10))))) &&\n         ((pcVar15 = (char *)*param_2, *pcVar15 == '_' && (pcVar15[1] == 'Z')))" (parenthesized_expression "(((((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) || (*(byte *)(param_2 + 7) >> 4 == 2)) &&\n           (((param_6 != 0 & bVar16) != 0 &&\n            (((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0)))))) &&\n          (((*(byte *)(uVar9 + 4) & 0xf) != (*(byte *)(param_2 + 7) & 0xf) ||\n           (param_2[9] != *(long *)(uVar9 + 0x10)))))" ( (binary_expression "((((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) || (*(byte *)(param_2 + 7) >> 4 == 2)) &&\n           (((param_6 != 0 & bVar16) != 0 &&\n            (((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0)))))) &&\n          (((*(byte *)(uVar9 + 4) & 0xf) != (*(byte *)(param_2 + 7) & 0xf) ||\n           (param_2[9] != *(long *)(uVar9 + 0x10))))" (parenthesized_expression "((((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) || (*(byte *)(param_2 + 7) >> 4 == 2)) &&\n           (((param_6 != 0 & bVar16) != 0 &&\n            (((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0))))))" ( (binary_expression "(((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) || (*(byte *)(param_2 + 7) >> 4 == 2)) &&\n           (((param_6 != 0 & bVar16) != 0 &&\n            (((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0)))))" (parenthesized_expression "(((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) || (*(byte *)(param_2 + 7) >> 4 == 2))" ( (binary_expression "((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) || (*(byte *)(param_2 + 7) >> 4 == 2)" (parenthesized_expression "((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2)" ( (binary_expression "(int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2" (binary_expression "(int)(uint)*(byte *)(uVar9 + 4) >> 4" (binary_expression "(int)(uint)*(byte *)(uVar9 + 4)" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)(uVar9 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 4)" ( (binary_expression "uVar9 + 4" identifier + number_literal) )))) >> number_literal) == number_literal) )) || (parenthesized_expression "(*(byte *)(param_2 + 7) >> 4 == 2)" ( (binary_expression "*(byte *)(param_2 + 7) >> 4 == 2" (binary_expression "*(byte *)(param_2 + 7) >> 4" (pointer_expression "*(byte *)(param_2 + 7)" * (cast_expression "(byte *)(param_2 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 7)" ( (binary_expression "param_2 + 7" identifier + number_literal) )))) >> number_literal) == number_literal) ))) )) && (parenthesized_expression "(((param_6 != 0 & bVar16) != 0 &&\n            (((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0)))))" ( (parenthesized_expression "((param_6 != 0 & bVar16) != 0 &&\n            (((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0))))" ( (binary_expression "(param_6 != 0 & bVar16) != 0 &&\n            (((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0)))" (binary_expression "(param_6 != 0 & bVar16) != 0" (parenthesized_expression "(param_6 != 0 & bVar16)" ( (binary_expression "param_6 != 0 & bVar16" (binary_expression "param_6 != 0" identifier != number_literal) & identifier) )) != number_literal) && (parenthesized_expression "(((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0)))" ( (parenthesized_expression "((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0))" ( (binary_expression "(iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0)" (parenthesized_expression "(iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0))" ( (binary_expression "iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)" (binary_expression "iVar2 != 0" identifier != number_literal) && (parenthesized_expression "(*(long *)(uVar9 + 0x10) != 0)" ( (binary_expression "*(long *)(uVar9 + 0x10) != 0" (pointer_expression "*(long *)(uVar9 + 0x10)" * (cast_expression "(long *)(uVar9 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 0x10)" ( (binary_expression "uVar9 + 0x10" identifier + number_literal) )))) != number_literal) ))) )) && (parenthesized_expression "(param_2[9] != 0)" ( (binary_expression "param_2[9] != 0" (subscript_expression "param_2[9]" identifier [ number_literal ]) != number_literal) ))) )) ))) )) ))) )) && (parenthesized_expression "(((*(byte *)(uVar9 + 4) & 0xf) != (*(byte *)(param_2 + 7) & 0xf) ||\n           (param_2[9] != *(long *)(uVar9 + 0x10))))" ( (parenthesized_expression "((*(byte *)(uVar9 + 4) & 0xf) != (*(byte *)(param_2 + 7) & 0xf) ||\n           (param_2[9] != *(long *)(uVar9 + 0x10)))" ( (binary_expression "(*(byte *)(uVar9 + 4) & 0xf) != (*(byte *)(param_2 + 7) & 0xf) ||\n           (param_2[9] != *(long *)(uVar9 + 0x10))" (binary_expression "(*(byte *)(uVar9 + 4) & 0xf) != (*(byte *)(param_2 + 7) & 0xf)" (parenthesized_expression "(*(byte *)(uVar9 + 4) & 0xf)" ( (binary_expression "*(byte *)(uVar9 + 4) & 0xf" (pointer_expression "*(byte *)(uVar9 + 4)" * (cast_expression "(byte *)(uVar9 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 4)" ( (binary_expression "uVar9 + 4" identifier + number_literal) )))) & number_literal) )) != (parenthesized_expression "(*(byte *)(param_2 + 7) & 0xf)" ( (binary_expression "*(byte *)(param_2 + 7) & 0xf" (pointer_expression "*(byte *)(param_2 + 7)" * (cast_expression "(byte *)(param_2 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 7)" ( (binary_expression "param_2 + 7" identifier + number_literal) )))) & number_literal) ))) || (parenthesized_expression "(param_2[9] != *(long *)(uVar9 + 0x10))" ( (binary_expression "param_2[9] != *(long *)(uVar9 + 0x10)" (subscript_expression "param_2[9]" identifier [ number_literal ]) != (pointer_expression "*(long *)(uVar9 + 0x10)" * (cast_expression "(long *)(uVar9 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 0x10)" ( (binary_expression "uVar9 + 0x10" identifier + number_literal) ))))) ))) )) ))) )) && (parenthesized_expression "((pcVar15 = (char *)*param_2, *pcVar15 == '_' && (pcVar15[1] == 'Z')))" ( (parenthesized_expression "(pcVar15 = (char *)*param_2, *pcVar15 == '_' && (pcVar15[1] == 'Z'))" ( (comma_expression "pcVar15 = (char *)*param_2, *pcVar15 == '_' && (pcVar15[1] == 'Z')" (assignment_expression "pcVar15 = (char *)*param_2" identifier = (cast_expression "(char *)*param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) , (binary_expression "*pcVar15 == '_' && (pcVar15[1] == 'Z')" (binary_expression "*pcVar15 == '_'" (pointer_expression "*pcVar15" * identifier) == (char_literal "'_'" ' character ')) && (parenthesized_expression "(pcVar15[1] == 'Z')" ( (binary_expression "pcVar15[1] == 'Z'" (subscript_expression "pcVar15[1]" identifier [ number_literal ]) == (char_literal "'Z'" ' character ')) )))) )) ))) )) (compound_statement "{\n        local_68 = *(undefined8 *)(uVar9 + 8);\n        local_78 = param_7;\n        local_70 = param_6;\n        if ((*(byte *)((long)param_2 + 0x3a) & 7) != 0) {\nLAB_002c1bd9:\n                    \n          FUN_001e9890("../../gold/symtab.h",0xa1,"object");\n        }\n        local_58 = (undefined8 *)param_2[2];\n        local_48[0] = param_2[8];\n        local_88 = pcVar15;\n        local_50 = iVar2;\n        local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);\n        FUN_001c3360(local_80,&local_78,&local_80,1);\n        local_88 = (char *)*param_2;\n        local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);\n        FUN_001c3360(local_80,&local_58,&local_80,1);\n      }" { (expression_statement "local_68 = *(undefined8 *)(uVar9 + 8);" (assignment_expression "local_68 = *(undefined8 *)(uVar9 + 8)" identifier = (pointer_expression "*(undefined8 *)(uVar9 + 8)" * (cast_expression "(undefined8 *)(uVar9 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 8)" ( (binary_expression "uVar9 + 8" identifier + number_literal) ))))) ;) (expression_statement "local_78 = param_7;" (assignment_expression "local_78 = param_7" identifier = identifier) ;) (expression_statement "local_70 = param_6;" (assignment_expression "local_70 = param_6" identifier = identifier) ;) (if_statement "if ((*(byte *)((long)param_2 + 0x3a) & 7) != 0) {\nLAB_002c1bd9:\n                    \n          FUN_001e9890("../../gold/symtab.h",0xa1,"object");\n        }" if (parenthesized_expression "((*(byte *)((long)param_2 + 0x3a) & 7) != 0)" ( (binary_expression "(*(byte *)((long)param_2 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)((long)param_2 + 0x3a) & 7)" ( (binary_expression "*(byte *)((long)param_2 + 0x3a) & 7" (pointer_expression "*(byte *)((long)param_2 + 0x3a)" * (cast_expression "(byte *)((long)param_2 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + 0x3a)" ( (binary_expression "(long)param_2 + 0x3a" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_002c1bd9:\n                    \n          FUN_001e9890("../../gold/symtab.h",0xa1,"object");\n        }" { (labeled_statement "LAB_002c1bd9:\n                    \n          FUN_001e9890("../../gold/symtab.h",0xa1,"object");" statement_identifier : (expression_statement "FUN_001e9890("../../gold/symtab.h",0xa1,"object");" (call_expression "FUN_001e9890("../../gold/symtab.h",0xa1,"object")" identifier (argument_list "("../../gold/symtab.h",0xa1,"object")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""object"" " string_content ") ))) ;)) })) (expression_statement "local_58 = (undefined8 *)param_2[2];" (assignment_expression "local_58 = (undefined8 *)param_2[2]" identifier = (cast_expression "(undefined8 *)param_2[2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[2]" identifier [ number_literal ]))) ;) (expression_statement "local_48[0] = param_2[8];" (assignment_expression "local_48[0] = param_2[8]" (subscript_expression "local_48[0]" identifier [ number_literal ]) = (subscript_expression "param_2[8]" identifier [ number_literal ])) ;) (expression_statement "local_88 = pcVar15;" (assignment_expression "local_88 = pcVar15" identifier = identifier) ;) (expression_statement "local_50 = iVar2;" (assignment_expression "local_50 = iVar2" identifier = identifier) ;) (expression_statement "local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);" (assignment_expression "local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88)" identifier = (call_expression "FUN_002bf9a0(param_1 + 0x218,&local_88)" identifier (argument_list "(param_1 + 0x218,&local_88)" ( (binary_expression "param_1 + 0x218" identifier + number_literal) , (pointer_expression "&local_88" & identifier) )))) ;) (expression_statement "FUN_001c3360(local_80,&local_78,&local_80,1);" (call_expression "FUN_001c3360(local_80,&local_78,&local_80,1)" identifier (argument_list "(local_80,&local_78,&local_80,1)" ( identifier , (pointer_expression "&local_78" & identifier) , (pointer_expression "&local_80" & identifier) , number_literal ))) ;) (expression_statement "local_88 = (char *)*param_2;" (assignment_expression "local_88 = (char *)*param_2" identifier = (cast_expression "(char *)*param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (expression_statement "local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);" (assignment_expression "local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88)" identifier = (call_expression "FUN_002bf9a0(param_1 + 0x218,&local_88)" identifier (argument_list "(param_1 + 0x218,&local_88)" ( (binary_expression "param_1 + 0x218" identifier + number_literal) , (pointer_expression "&local_88" & identifier) )))) ;) (expression_statement "FUN_001c3360(local_80,&local_58,&local_80,1);" (call_expression "FUN_001c3360(local_80,&local_58,&local_80,1)" identifier (argument_list "(local_80,&local_58,&local_80,1)" ( identifier , (pointer_expression "&local_58" & identifier) , (pointer_expression "&local_80" & identifier) , number_literal ))) ;) })) })) (expression_statement "local_98 = &local_78;" (assignment_expression "local_98 = &local_78" identifier = (pointer_expression "&local_78" & identifier)) ;) (expression_statement "lVar10 = (**(code **)(*param_7 + 0x28))(param_7);" (assignment_expression "lVar10 = (**(code **)(*param_7 + 0x28))(param_7)" identifier = (call_expression "(**(code **)(*param_7 + 0x28))(param_7)" (parenthesized_expression "(**(code **)(*param_7 + 0x28))" ( (pointer_expression "**(code **)(*param_7 + 0x28)" * (pointer_expression "*(code **)(*param_7 + 0x28)" * (cast_expression "(code **)(*param_7 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_7 + 0x28)" ( (binary_expression "*param_7 + 0x28" (pointer_expression "*param_7" * identifier) + number_literal) ))))) )) (argument_list "(param_7)" ( identifier )))) ;) (if_statement "if (lVar10 == 0) {\n      uVar14 = (uint)*(byte *)(*param_3 + 4);\n      uVar8 = uVar14;\n    }\n    else {\n      uVar14 = (uint)*(byte *)(*param_3 + 4);\n      uVar8 = (uint)*(byte *)(param_2 + 7);\n    }" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar14 = (uint)*(byte *)(*param_3 + 4);\n      uVar8 = uVar14;\n    }" { (expression_statement "uVar14 = (uint)*(byte *)(*param_3 + 4);" (assignment_expression "uVar14 = (uint)*(byte *)(*param_3 + 4)" identifier = (binary_expression "(uint)*(byte *)(*param_3 + 4)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(*param_3 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_3 + 4)" ( (binary_expression "*param_3 + 4" (pointer_expression "*param_3" * identifier) + number_literal) ))))) ;) (expression_statement "uVar8 = uVar14;" (assignment_expression "uVar8 = uVar14" identifier = identifier) ;) }) (else_clause "else {\n      uVar14 = (uint)*(byte *)(*param_3 + 4);\n      uVar8 = (uint)*(byte *)(param_2 + 7);\n    }" else (compound_statement "{\n      uVar14 = (uint)*(byte *)(*param_3 + 4);\n      uVar8 = (uint)*(byte *)(param_2 + 7);\n    }" { (expression_statement "uVar14 = (uint)*(byte *)(*param_3 + 4);" (assignment_expression "uVar14 = (uint)*(byte *)(*param_3 + 4)" identifier = (binary_expression "(uint)*(byte *)(*param_3 + 4)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(*param_3 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_3 + 4)" ( (binary_expression "*param_3 + 4" (pointer_expression "*param_3" * identifier) + number_literal) ))))) ;) (expression_statement "uVar8 = (uint)*(byte *)(param_2 + 7);" (assignment_expression "uVar8 = (uint)*(byte *)(param_2 + 7)" identifier = (binary_expression "(uint)*(byte *)(param_2 + 7)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(param_2 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 7)" ( (binary_expression "param_2 + 7" identifier + number_literal) ))))) ;) }))) (expression_statement "uVar7 = FUN_002be580((int)uVar14 >> 4,*(byte *)((long)param_7 + 0x3c) & 1,param_4,param_5);" (assignment_expression "uVar7 = FUN_002be580((int)uVar14 >> 4,*(byte *)((long)param_7 + 0x3c) & 1,param_4,param_5)" identifier = (call_expression "FUN_002be580((int)uVar14 >> 4,*(byte *)((long)param_7 + 0x3c) & 1,param_4,param_5)" identifier (argument_list "((int)uVar14 >> 4,*(byte *)((long)param_7 + 0x3c) & 1,param_4,param_5)" ( (binary_expression "(int)uVar14 >> 4" (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) , (binary_expression "*(byte *)((long)param_7 + 0x3c) & 1" (pointer_expression "*(byte *)((long)param_7 + 0x3c)" * (cast_expression "(byte *)((long)param_7 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_7 + 0x3c)" ( (binary_expression "(long)param_7 + 0x3c" (cast_expression "(long)param_7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) , identifier , identifier )))) ;) (expression_statement "uVar4 = param_2[9];" (assignment_expression "uVar4 = param_2[9]" identifier = (subscript_expression "param_2[9]" identifier [ number_literal ])) ;) (expression_statement "cVar6 = FUN_002be950(param_2,uVar7,uVar8 & 0xf,0,param_7,local_98,&local_58,param_9);" (assignment_expression "cVar6 = FUN_002be950(param_2,uVar7,uVar8 & 0xf,0,param_7,local_98,&local_58,param_9)" identifier = (call_expression "FUN_002be950(param_2,uVar7,uVar8 & 0xf,0,param_7,local_98,&local_58,param_9)" identifier (argument_list "(param_2,uVar7,uVar8 & 0xf,0,param_7,local_98,&local_58,param_9)" ( identifier , identifier , (binary_expression "uVar8 & 0xf" identifier & number_literal) , number_literal , identifier , identifier , (pointer_expression "&local_58" & identifier) , identifier )))) ;) (if_statement "if (cVar6 == '\0') {\n      uVar9 = *param_3;\n      if ((char)local_78 != '\0') {\n        if (uVar4 < *(ulong *)(uVar9 + 0x10)) {\n          param_2[9] = *(ulong *)(uVar9 + 0x10);\n        }\n        if ((ulong)param_2[8] < *(ulong *)(uVar9 + 8)) {\n          param_2[8] = *(ulong *)(uVar9 + 8);\n        }\n      }\n      if ((char)local_58 != '\0') {\n        if (((*(byte *)((long)param_2 + 0x3c) & 1) == 0) ||\n           ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)) {\n          *(byte *)((long)param_2 + 0x3c) =\n               *(byte *)((long)param_2 + 0x3c) & 0xfd |\n               ((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) * '\x02' | 1;\n        }\n      }\n      bVar16 = *(byte *)(uVar9 + 5) & 3;\n      if ((*(byte *)(uVar9 + 5) & 3) != 0) {\n        bVar1 = *(byte *)((long)param_2 + 0x39);\n        if (((bVar1 & 3) == 0) || (bVar16 < (bVar1 & 3))) {\n          *(byte *)((long)param_2 + 0x39) = bVar16 | bVar1 & 0xfc;\n        }\n      }\n    }\n    else {\n      bVar16 = *(byte *)(param_2 + 7);\n      uVar9 = param_2[8];\n      FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7,param_8);\n      if ((char)local_78 != '\0') {\n        if ((ulong)param_2[9] < uVar4) {\n          param_2[9] = uVar4;\n        }\n        if ((ulong)param_2[8] < uVar9) {\n          param_2[8] = uVar9;\n        }\n      }\n      if (((char)local_58 != '\0') &&\n         (((*(byte *)((long)param_2 + 0x3c) & 1) == 0 ||\n          ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)))) {\n        *(byte *)((long)param_2 + 0x3c) =\n             *(byte *)((long)param_2 + 0x3c) & 0xfd | (bVar16 >> 4 == 2) * '\x02' | 1;\n      }\n    }" if (parenthesized_expression "(cVar6 == '\0')" ( (binary_expression "cVar6 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar9 = *param_3;\n      if ((char)local_78 != '\0') {\n        if (uVar4 < *(ulong *)(uVar9 + 0x10)) {\n          param_2[9] = *(ulong *)(uVar9 + 0x10);\n        }\n        if ((ulong)param_2[8] < *(ulong *)(uVar9 + 8)) {\n          param_2[8] = *(ulong *)(uVar9 + 8);\n        }\n      }\n      if ((char)local_58 != '\0') {\n        if (((*(byte *)((long)param_2 + 0x3c) & 1) == 0) ||\n           ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)) {\n          *(byte *)((long)param_2 + 0x3c) =\n               *(byte *)((long)param_2 + 0x3c) & 0xfd |\n               ((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) * '\x02' | 1;\n        }\n      }\n      bVar16 = *(byte *)(uVar9 + 5) & 3;\n      if ((*(byte *)(uVar9 + 5) & 3) != 0) {\n        bVar1 = *(byte *)((long)param_2 + 0x39);\n        if (((bVar1 & 3) == 0) || (bVar16 < (bVar1 & 3))) {\n          *(byte *)((long)param_2 + 0x39) = bVar16 | bVar1 & 0xfc;\n        }\n      }\n    }" { (expression_statement "uVar9 = *param_3;" (assignment_expression "uVar9 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (if_statement "if ((char)local_78 != '\0') {\n        if (uVar4 < *(ulong *)(uVar9 + 0x10)) {\n          param_2[9] = *(ulong *)(uVar9 + 0x10);\n        }\n        if ((ulong)param_2[8] < *(ulong *)(uVar9 + 8)) {\n          param_2[8] = *(ulong *)(uVar9 + 8);\n        }\n      }" if (parenthesized_expression "((char)local_78 != '\0')" ( (binary_expression "(char)local_78 != '\0'" (cast_expression "(char)local_78" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        if (uVar4 < *(ulong *)(uVar9 + 0x10)) {\n          param_2[9] = *(ulong *)(uVar9 + 0x10);\n        }\n        if ((ulong)param_2[8] < *(ulong *)(uVar9 + 8)) {\n          param_2[8] = *(ulong *)(uVar9 + 8);\n        }\n      }" { (if_statement "if (uVar4 < *(ulong *)(uVar9 + 0x10)) {\n          param_2[9] = *(ulong *)(uVar9 + 0x10);\n        }" if (parenthesized_expression "(uVar4 < *(ulong *)(uVar9 + 0x10))" ( (binary_expression "uVar4 < *(ulong *)(uVar9 + 0x10)" identifier < (pointer_expression "*(ulong *)(uVar9 + 0x10)" * (cast_expression "(ulong *)(uVar9 + 0x10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 0x10)" ( (binary_expression "uVar9 + 0x10" identifier + number_literal) ))))) )) (compound_statement "{\n          param_2[9] = *(ulong *)(uVar9 + 0x10);\n        }" { (expression_statement "param_2[9] = *(ulong *)(uVar9 + 0x10);" (assignment_expression "param_2[9] = *(ulong *)(uVar9 + 0x10)" (subscript_expression "param_2[9]" identifier [ number_literal ]) = (pointer_expression "*(ulong *)(uVar9 + 0x10)" * (cast_expression "(ulong *)(uVar9 + 0x10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 0x10)" ( (binary_expression "uVar9 + 0x10" identifier + number_literal) ))))) ;) })) (if_statement "if ((ulong)param_2[8] < *(ulong *)(uVar9 + 8)) {\n          param_2[8] = *(ulong *)(uVar9 + 8);\n        }" if (parenthesized_expression "((ulong)param_2[8] < *(ulong *)(uVar9 + 8))" ( (binary_expression "(ulong)param_2[8] < *(ulong *)(uVar9 + 8)" (cast_expression "(ulong)param_2[8]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "param_2[8]" identifier [ number_literal ])) < (pointer_expression "*(ulong *)(uVar9 + 8)" * (cast_expression "(ulong *)(uVar9 + 8)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 8)" ( (binary_expression "uVar9 + 8" identifier + number_literal) ))))) )) (compound_statement "{\n          param_2[8] = *(ulong *)(uVar9 + 8);\n        }" { (expression_statement "param_2[8] = *(ulong *)(uVar9 + 8);" (assignment_expression "param_2[8] = *(ulong *)(uVar9 + 8)" (subscript_expression "param_2[8]" identifier [ number_literal ]) = (pointer_expression "*(ulong *)(uVar9 + 8)" * (cast_expression "(ulong *)(uVar9 + 8)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 8)" ( (binary_expression "uVar9 + 8" identifier + number_literal) ))))) ;) })) })) (if_statement "if ((char)local_58 != '\0') {\n        if (((*(byte *)((long)param_2 + 0x3c) & 1) == 0) ||\n           ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)) {\n          *(byte *)((long)param_2 + 0x3c) =\n               *(byte *)((long)param_2 + 0x3c) & 0xfd |\n               ((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) * '\x02' | 1;\n        }\n      }" if (parenthesized_expression "((char)local_58 != '\0')" ( (binary_expression "(char)local_58 != '\0'" (cast_expression "(char)local_58" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        if (((*(byte *)((long)param_2 + 0x3c) & 1) == 0) ||\n           ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)) {\n          *(byte *)((long)param_2 + 0x3c) =\n               *(byte *)((long)param_2 + 0x3c) & 0xfd |\n               ((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) * '\x02' | 1;\n        }\n      }" { (if_statement "if (((*(byte *)((long)param_2 + 0x3c) & 1) == 0) ||\n           ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)) {\n          *(byte *)((long)param_2 + 0x3c) =\n               *(byte *)((long)param_2 + 0x3c) & 0xfd |\n               ((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) * '\x02' | 1;\n        }" if (parenthesized_expression "(((*(byte *)((long)param_2 + 0x3c) & 1) == 0) ||\n           ((*(byte *)((long)param_2 + 0x3c) & 2) != 0))" ( (binary_expression "((*(byte *)((long)param_2 + 0x3c) & 1) == 0) ||\n           ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)" (parenthesized_expression "((*(byte *)((long)param_2 + 0x3c) & 1) == 0)" ( (binary_expression "(*(byte *)((long)param_2 + 0x3c) & 1) == 0" (parenthesized_expression "(*(byte *)((long)param_2 + 0x3c) & 1)" ( (binary_expression "*(byte *)((long)param_2 + 0x3c) & 1" (pointer_expression "*(byte *)((long)param_2 + 0x3c)" * (cast_expression "(byte *)((long)param_2 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + 0x3c)" ( (binary_expression "(long)param_2 + 0x3c" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) || (parenthesized_expression "((*(byte *)((long)param_2 + 0x3c) & 2) != 0)" ( (binary_expression "(*(byte *)((long)param_2 + 0x3c) & 2) != 0" (parenthesized_expression "(*(byte *)((long)param_2 + 0x3c) & 2)" ( (binary_expression "*(byte *)((long)param_2 + 0x3c) & 2" (pointer_expression "*(byte *)((long)param_2 + 0x3c)" * (cast_expression "(byte *)((long)param_2 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + 0x3c)" ( (binary_expression "(long)param_2 + 0x3c" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n          *(byte *)((long)param_2 + 0x3c) =\n               *(byte *)((long)param_2 + 0x3c) & 0xfd |\n               ((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) * '\x02' | 1;\n        }" { (expression_statement "*(byte *)((long)param_2 + 0x3c) =\n               *(byte *)((long)param_2 + 0x3c) & 0xfd |\n               ((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) * '\x02' | 1;" (assignment_expression "*(byte *)((long)param_2 + 0x3c) =\n               *(byte *)((long)param_2 + 0x3c) & 0xfd |\n               ((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) * '\x02' | 1" (pointer_expression "*(byte *)((long)param_2 + 0x3c)" * (cast_expression "(byte *)((long)param_2 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + 0x3c)" ( (binary_expression "(long)param_2 + 0x3c" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((long)param_2 + 0x3c) & 0xfd |\n               ((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) * '\x02' | 1" (binary_expression "*(byte *)((long)param_2 + 0x3c) & 0xfd |\n               ((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) * '\x02'" (binary_expression "*(byte *)((long)param_2 + 0x3c) & 0xfd" (pointer_expression "*(byte *)((long)param_2 + 0x3c)" * (cast_expression "(byte *)((long)param_2 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + 0x3c)" ( (binary_expression "(long)param_2 + 0x3c" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) | (binary_expression "((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) * '\x02'" (parenthesized_expression "((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2)" ( (binary_expression "(int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2" (binary_expression "(int)(uint)*(byte *)(uVar9 + 4) >> 4" (binary_expression "(int)(uint)*(byte *)(uVar9 + 4)" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)(uVar9 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 4)" ( (binary_expression "uVar9 + 4" identifier + number_literal) )))) >> number_literal) == number_literal) )) * (char_literal "'\x02'" ' escape_sequence '))) | number_literal)) ;) })) })) (expression_statement "bVar16 = *(byte *)(uVar9 + 5) & 3;" (assignment_expression "bVar16 = *(byte *)(uVar9 + 5) & 3" identifier = (binary_expression "*(byte *)(uVar9 + 5) & 3" (pointer_expression "*(byte *)(uVar9 + 5)" * (cast_expression "(byte *)(uVar9 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 5)" ( (binary_expression "uVar9 + 5" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if ((*(byte *)(uVar9 + 5) & 3) != 0) {\n        bVar1 = *(byte *)((long)param_2 + 0x39);\n        if (((bVar1 & 3) == 0) || (bVar16 < (bVar1 & 3))) {\n          *(byte *)((long)param_2 + 0x39) = bVar16 | bVar1 & 0xfc;\n        }\n      }" if (parenthesized_expression "((*(byte *)(uVar9 + 5) & 3) != 0)" ( (binary_expression "(*(byte *)(uVar9 + 5) & 3) != 0" (parenthesized_expression "(*(byte *)(uVar9 + 5) & 3)" ( (binary_expression "*(byte *)(uVar9 + 5) & 3" (pointer_expression "*(byte *)(uVar9 + 5)" * (cast_expression "(byte *)(uVar9 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 5)" ( (binary_expression "uVar9 + 5" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n        bVar1 = *(byte *)((long)param_2 + 0x39);\n        if (((bVar1 & 3) == 0) || (bVar16 < (bVar1 & 3))) {\n          *(byte *)((long)param_2 + 0x39) = bVar16 | bVar1 & 0xfc;\n        }\n      }" { (expression_statement "bVar1 = *(byte *)((long)param_2 + 0x39);" (assignment_expression "bVar1 = *(byte *)((long)param_2 + 0x39)" identifier = (pointer_expression "*(byte *)((long)param_2 + 0x39)" * (cast_expression "(byte *)((long)param_2 + 0x39)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + 0x39)" ( (binary_expression "(long)param_2 + 0x39" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (if_statement "if (((bVar1 & 3) == 0) || (bVar16 < (bVar1 & 3))) {\n          *(byte *)((long)param_2 + 0x39) = bVar16 | bVar1 & 0xfc;\n        }" if (parenthesized_expression "(((bVar1 & 3) == 0) || (bVar16 < (bVar1 & 3)))" ( (binary_expression "((bVar1 & 3) == 0) || (bVar16 < (bVar1 & 3))" (parenthesized_expression "((bVar1 & 3) == 0)" ( (binary_expression "(bVar1 & 3) == 0" (parenthesized_expression "(bVar1 & 3)" ( (binary_expression "bVar1 & 3" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(bVar16 < (bVar1 & 3))" ( (binary_expression "bVar16 < (bVar1 & 3)" identifier < (parenthesized_expression "(bVar1 & 3)" ( (binary_expression "bVar1 & 3" identifier & number_literal) ))) ))) )) (compound_statement "{\n          *(byte *)((long)param_2 + 0x39) = bVar16 | bVar1 & 0xfc;\n        }" { (expression_statement "*(byte *)((long)param_2 + 0x39) = bVar16 | bVar1 & 0xfc;" (assignment_expression "*(byte *)((long)param_2 + 0x39) = bVar16 | bVar1 & 0xfc" (pointer_expression "*(byte *)((long)param_2 + 0x39)" * (cast_expression "(byte *)((long)param_2 + 0x39)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + 0x39)" ( (binary_expression "(long)param_2 + 0x39" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (binary_expression "bVar16 | bVar1 & 0xfc" identifier | (binary_expression "bVar1 & 0xfc" identifier & number_literal))) ;) })) })) }) (else_clause "else {\n      bVar16 = *(byte *)(param_2 + 7);\n      uVar9 = param_2[8];\n      FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7,param_8);\n      if ((char)local_78 != '\0') {\n        if ((ulong)param_2[9] < uVar4) {\n          param_2[9] = uVar4;\n        }\n        if ((ulong)param_2[8] < uVar9) {\n          param_2[8] = uVar9;\n        }\n      }\n      if (((char)local_58 != '\0') &&\n         (((*(byte *)((long)param_2 + 0x3c) & 1) == 0 ||\n          ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)))) {\n        *(byte *)((long)param_2 + 0x3c) =\n             *(byte *)((long)param_2 + 0x3c) & 0xfd | (bVar16 >> 4 == 2) * '\x02' | 1;\n      }\n    }" else (compound_statement "{\n      bVar16 = *(byte *)(param_2 + 7);\n      uVar9 = param_2[8];\n      FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7,param_8);\n      if ((char)local_78 != '\0') {\n        if ((ulong)param_2[9] < uVar4) {\n          param_2[9] = uVar4;\n        }\n        if ((ulong)param_2[8] < uVar9) {\n          param_2[8] = uVar9;\n        }\n      }\n      if (((char)local_58 != '\0') &&\n         (((*(byte *)((long)param_2 + 0x3c) & 1) == 0 ||\n          ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)))) {\n        *(byte *)((long)param_2 + 0x3c) =\n             *(byte *)((long)param_2 + 0x3c) & 0xfd | (bVar16 >> 4 == 2) * '\x02' | 1;\n      }\n    }" { (expression_statement "bVar16 = *(byte *)(param_2 + 7);" (assignment_expression "bVar16 = *(byte *)(param_2 + 7)" identifier = (pointer_expression "*(byte *)(param_2 + 7)" * (cast_expression "(byte *)(param_2 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 7)" ( (binary_expression "param_2 + 7" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = param_2[8];" (assignment_expression "uVar9 = param_2[8]" identifier = (subscript_expression "param_2[8]" identifier [ number_literal ])) ;) (expression_statement "FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7,param_8);" (call_expression "FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7,param_8)" identifier (argument_list "(param_1,param_2,param_3,param_4,param_5,param_7,param_8)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (if_statement "if ((char)local_78 != '\0') {\n        if ((ulong)param_2[9] < uVar4) {\n          param_2[9] = uVar4;\n        }\n        if ((ulong)param_2[8] < uVar9) {\n          param_2[8] = uVar9;\n        }\n      }" if (parenthesized_expression "((char)local_78 != '\0')" ( (binary_expression "(char)local_78 != '\0'" (cast_expression "(char)local_78" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        if ((ulong)param_2[9] < uVar4) {\n          param_2[9] = uVar4;\n        }\n        if ((ulong)param_2[8] < uVar9) {\n          param_2[8] = uVar9;\n        }\n      }" { (if_statement "if ((ulong)param_2[9] < uVar4) {\n          param_2[9] = uVar4;\n        }" if (parenthesized_expression "((ulong)param_2[9] < uVar4)" ( (binary_expression "(ulong)param_2[9] < uVar4" (cast_expression "(ulong)param_2[9]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "param_2[9]" identifier [ number_literal ])) < identifier) )) (compound_statement "{\n          param_2[9] = uVar4;\n        }" { (expression_statement "param_2[9] = uVar4;" (assignment_expression "param_2[9] = uVar4" (subscript_expression "param_2[9]" identifier [ number_literal ]) = identifier) ;) })) (if_statement "if ((ulong)param_2[8] < uVar9) {\n          param_2[8] = uVar9;\n        }" if (parenthesized_expression "((ulong)param_2[8] < uVar9)" ( (binary_expression "(ulong)param_2[8] < uVar9" (cast_expression "(ulong)param_2[8]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "param_2[8]" identifier [ number_literal ])) < identifier) )) (compound_statement "{\n          param_2[8] = uVar9;\n        }" { (expression_statement "param_2[8] = uVar9;" (assignment_expression "param_2[8] = uVar9" (subscript_expression "param_2[8]" identifier [ number_literal ]) = identifier) ;) })) })) (if_statement "if (((char)local_58 != '\0') &&\n         (((*(byte *)((long)param_2 + 0x3c) & 1) == 0 ||\n          ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)))) {\n        *(byte *)((long)param_2 + 0x3c) =\n             *(byte *)((long)param_2 + 0x3c) & 0xfd | (bVar16 >> 4 == 2) * '\x02' | 1;\n      }" if (parenthesized_expression "(((char)local_58 != '\0') &&\n         (((*(byte *)((long)param_2 + 0x3c) & 1) == 0 ||\n          ((*(byte *)((long)param_2 + 0x3c) & 2) != 0))))" ( (binary_expression "((char)local_58 != '\0') &&\n         (((*(byte *)((long)param_2 + 0x3c) & 1) == 0 ||\n          ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)))" (parenthesized_expression "((char)local_58 != '\0')" ( (binary_expression "(char)local_58 != '\0'" (cast_expression "(char)local_58" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(((*(byte *)((long)param_2 + 0x3c) & 1) == 0 ||\n          ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)))" ( (parenthesized_expression "((*(byte *)((long)param_2 + 0x3c) & 1) == 0 ||\n          ((*(byte *)((long)param_2 + 0x3c) & 2) != 0))" ( (binary_expression "(*(byte *)((long)param_2 + 0x3c) & 1) == 0 ||\n          ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)" (binary_expression "(*(byte *)((long)param_2 + 0x3c) & 1) == 0" (parenthesized_expression "(*(byte *)((long)param_2 + 0x3c) & 1)" ( (binary_expression "*(byte *)((long)param_2 + 0x3c) & 1" (pointer_expression "*(byte *)((long)param_2 + 0x3c)" * (cast_expression "(byte *)((long)param_2 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + 0x3c)" ( (binary_expression "(long)param_2 + 0x3c" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) || (parenthesized_expression "((*(byte *)((long)param_2 + 0x3c) & 2) != 0)" ( (binary_expression "(*(byte *)((long)param_2 + 0x3c) & 2) != 0" (parenthesized_expression "(*(byte *)((long)param_2 + 0x3c) & 2)" ( (binary_expression "*(byte *)((long)param_2 + 0x3c) & 2" (pointer_expression "*(byte *)((long)param_2 + 0x3c)" * (cast_expression "(byte *)((long)param_2 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + 0x3c)" ( (binary_expression "(long)param_2 + 0x3c" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) ))) )) ))) )) (compound_statement "{\n        *(byte *)((long)param_2 + 0x3c) =\n             *(byte *)((long)param_2 + 0x3c) & 0xfd | (bVar16 >> 4 == 2) * '\x02' | 1;\n      }" { (expression_statement "*(byte *)((long)param_2 + 0x3c) =\n             *(byte *)((long)param_2 + 0x3c) & 0xfd | (bVar16 >> 4 == 2) * '\x02' | 1;" (assignment_expression "*(byte *)((long)param_2 + 0x3c) =\n             *(byte *)((long)param_2 + 0x3c) & 0xfd | (bVar16 >> 4 == 2) * '\x02' | 1" (pointer_expression "*(byte *)((long)param_2 + 0x3c)" * (cast_expression "(byte *)((long)param_2 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + 0x3c)" ( (binary_expression "(long)param_2 + 0x3c" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((long)param_2 + 0x3c) & 0xfd | (bVar16 >> 4 == 2) * '\x02' | 1" (binary_expression "*(byte *)((long)param_2 + 0x3c) & 0xfd | (bVar16 >> 4 == 2) * '\x02'" (binary_expression "*(byte *)((long)param_2 + 0x3c) & 0xfd" (pointer_expression "*(byte *)((long)param_2 + 0x3c)" * (cast_expression "(byte *)((long)param_2 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + 0x3c)" ( (binary_expression "(long)param_2 + 0x3c" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) | (binary_expression "(bVar16 >> 4 == 2) * '\x02'" (parenthesized_expression "(bVar16 >> 4 == 2)" ( (binary_expression "bVar16 >> 4 == 2" (binary_expression "bVar16 >> 4" identifier >> number_literal) == number_literal) )) * (char_literal "'\x02'" ' escape_sequence '))) | number_literal)) ;) })) }))) (expression_statement "bVar16 = *(byte *)((long)param_2 + 0x3a);" (assignment_expression "bVar16 = *(byte *)((long)param_2 + 0x3a)" identifier = (pointer_expression "*(byte *)((long)param_2 + 0x3a)" * (cast_expression "(byte *)((long)param_2 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + 0x3a)" ( (binary_expression "(long)param_2 + 0x3a" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar9 = (ulong)bVar16;" (assignment_expression "uVar9 = (ulong)bVar16" identifier = (cast_expression "(ulong)bVar16" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if ((bVar16 & 7) == 0) {\n      bVar1 = *(byte *)(param_2[2] + 0x3c);\n      if ((((bVar1 & 1) != 0) && ((char)bVar16 < '\0')) &&\n         ((*(byte *)((long)param_2 + 0x3c) & 2) == 0)) {\n        *(byte *)(param_2[2] + 0x3c) = bVar1 | 2;\n      }\n    }" if (parenthesized_expression "((bVar16 & 7) == 0)" ( (binary_expression "(bVar16 & 7) == 0" (parenthesized_expression "(bVar16 & 7)" ( (binary_expression "bVar16 & 7" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      bVar1 = *(byte *)(param_2[2] + 0x3c);\n      if ((((bVar1 & 1) != 0) && ((char)bVar16 < '\0')) &&\n         ((*(byte *)((long)param_2 + 0x3c) & 2) == 0)) {\n        *(byte *)(param_2[2] + 0x3c) = bVar1 | 2;\n      }\n    }" { (expression_statement "bVar1 = *(byte *)(param_2[2] + 0x3c);" (assignment_expression "bVar1 = *(byte *)(param_2[2] + 0x3c)" identifier = (pointer_expression "*(byte *)(param_2[2] + 0x3c)" * (cast_expression "(byte *)(param_2[2] + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[2] + 0x3c)" ( (binary_expression "param_2[2] + 0x3c" (subscript_expression "param_2[2]" identifier [ number_literal ]) + number_literal) ))))) ;) (if_statement "if ((((bVar1 & 1) != 0) && ((char)bVar16 < '\0')) &&\n         ((*(byte *)((long)param_2 + 0x3c) & 2) == 0)) {\n        *(byte *)(param_2[2] + 0x3c) = bVar1 | 2;\n      }" if (parenthesized_expression "((((bVar1 & 1) != 0) && ((char)bVar16 < '\0')) &&\n         ((*(byte *)((long)param_2 + 0x3c) & 2) == 0))" ( (binary_expression "(((bVar1 & 1) != 0) && ((char)bVar16 < '\0')) &&\n         ((*(byte *)((long)param_2 + 0x3c) & 2) == 0)" (parenthesized_expression "(((bVar1 & 1) != 0) && ((char)bVar16 < '\0'))" ( (binary_expression "((bVar1 & 1) != 0) && ((char)bVar16 < '\0')" (parenthesized_expression "((bVar1 & 1) != 0)" ( (binary_expression "(bVar1 & 1) != 0" (parenthesized_expression "(bVar1 & 1)" ( (binary_expression "bVar1 & 1" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "((char)bVar16 < '\0')" ( (binary_expression "(char)bVar16 < '\0'" (cast_expression "(char)bVar16" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "((*(byte *)((long)param_2 + 0x3c) & 2) == 0)" ( (binary_expression "(*(byte *)((long)param_2 + 0x3c) & 2) == 0" (parenthesized_expression "(*(byte *)((long)param_2 + 0x3c) & 2)" ( (binary_expression "*(byte *)((long)param_2 + 0x3c) & 2" (pointer_expression "*(byte *)((long)param_2 + 0x3c)" * (cast_expression "(byte *)((long)param_2 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + 0x3c)" ( (binary_expression "(long)param_2 + 0x3c" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n        *(byte *)(param_2[2] + 0x3c) = bVar1 | 2;\n      }" { (expression_statement "*(byte *)(param_2[2] + 0x3c) = bVar1 | 2;" (assignment_expression "*(byte *)(param_2[2] + 0x3c) = bVar1 | 2" (pointer_expression "*(byte *)(param_2[2] + 0x3c)" * (cast_expression "(byte *)(param_2[2] + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[2] + 0x3c)" ( (binary_expression "param_2[2] + 0x3c" (subscript_expression "param_2[2]" identifier [ number_literal ]) + number_literal) )))) = (binary_expression "bVar1 | 2" identifier | number_literal)) ;) })) })) (if_statement "if ((char)local_78 != '\0') {\n      uVar9 = *(ulong *)(PTR_DAT_004ba7c8 + 0x10);\n      if (uVar9 == 0) {\nLAB_002c17cc:\n                    \n        FUN_001e9890("../../gold/parameters.h",0x5c,"options");\n      }\n      if (*(char *)(uVar9 + 0x6de1) != '\0') {\n        pcVar15 = "common of \'%s\' overriding smaller common";\n        uVar9 = *(ulong *)(*param_3 + 0x10);\n        if ((uVar9 > uVar4 || uVar4 == uVar9) &&\n           (pcVar15 = "common of \'%s\' overidden by larger common", uVar9 <= uVar4)) {\n          pcVar15 = "multiple common of \'%s\'";\n        }\n        uVar11 = gettext(pcVar15);\n        uVar9 = FUN_002be7a0(0,uVar11,param_2,0,param_7);\n      }\n    }" if (parenthesized_expression "((char)local_78 != '\0')" ( (binary_expression "(char)local_78 != '\0'" (cast_expression "(char)local_78" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar9 = *(ulong *)(PTR_DAT_004ba7c8 + 0x10);\n      if (uVar9 == 0) {\nLAB_002c17cc:\n                    \n        FUN_001e9890("../../gold/parameters.h",0x5c,"options");\n      }\n      if (*(char *)(uVar9 + 0x6de1) != '\0') {\n        pcVar15 = "common of \'%s\' overriding smaller common";\n        uVar9 = *(ulong *)(*param_3 + 0x10);\n        if ((uVar9 > uVar4 || uVar4 == uVar9) &&\n           (pcVar15 = "common of \'%s\' overidden by larger common", uVar9 <= uVar4)) {\n          pcVar15 = "multiple common of \'%s\'";\n        }\n        uVar11 = gettext(pcVar15);\n        uVar9 = FUN_002be7a0(0,uVar11,param_2,0,param_7);\n      }\n    }" { (expression_statement "uVar9 = *(ulong *)(PTR_DAT_004ba7c8 + 0x10);" (assignment_expression "uVar9 = *(ulong *)(PTR_DAT_004ba7c8 + 0x10)" identifier = (pointer_expression "*(ulong *)(PTR_DAT_004ba7c8 + 0x10)" * (cast_expression "(ulong *)(PTR_DAT_004ba7c8 + 0x10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_004ba7c8 + 0x10)" ( (binary_expression "PTR_DAT_004ba7c8 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (uVar9 == 0) {\nLAB_002c17cc:\n                    \n        FUN_001e9890("../../gold/parameters.h",0x5c,"options");\n      }" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_002c17cc:\n                    \n        FUN_001e9890("../../gold/parameters.h",0x5c,"options");\n      }" { (labeled_statement "LAB_002c17cc:\n                    \n        FUN_001e9890("../../gold/parameters.h",0x5c,"options");" statement_identifier : (expression_statement "FUN_001e9890("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_001e9890("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;)) })) (if_statement "if (*(char *)(uVar9 + 0x6de1) != '\0') {\n        pcVar15 = "common of \'%s\' overriding smaller common";\n        uVar9 = *(ulong *)(*param_3 + 0x10);\n        if ((uVar9 > uVar4 || uVar4 == uVar9) &&\n           (pcVar15 = "common of \'%s\' overidden by larger common", uVar9 <= uVar4)) {\n          pcVar15 = "multiple common of \'%s\'";\n        }\n        uVar11 = gettext(pcVar15);\n        uVar9 = FUN_002be7a0(0,uVar11,param_2,0,param_7);\n      }" if (parenthesized_expression "(*(char *)(uVar9 + 0x6de1) != '\0')" ( (binary_expression "*(char *)(uVar9 + 0x6de1) != '\0'" (pointer_expression "*(char *)(uVar9 + 0x6de1)" * (cast_expression "(char *)(uVar9 + 0x6de1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 0x6de1)" ( (binary_expression "uVar9 + 0x6de1" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        pcVar15 = "common of \'%s\' overriding smaller common";\n        uVar9 = *(ulong *)(*param_3 + 0x10);\n        if ((uVar9 > uVar4 || uVar4 == uVar9) &&\n           (pcVar15 = "common of \'%s\' overidden by larger common", uVar9 <= uVar4)) {\n          pcVar15 = "multiple common of \'%s\'";\n        }\n        uVar11 = gettext(pcVar15);\n        uVar9 = FUN_002be7a0(0,uVar11,param_2,0,param_7);\n      }" { (expression_statement "pcVar15 = "common of \'%s\' overriding smaller common";" (assignment_expression "pcVar15 = "common of \'%s\' overriding smaller common"" identifier = (string_literal ""common of \'%s\' overriding smaller common"" " string_content escape_sequence string_content escape_sequence string_content ")) ;) (expression_statement "uVar9 = *(ulong *)(*param_3 + 0x10);" (assignment_expression "uVar9 = *(ulong *)(*param_3 + 0x10)" identifier = (pointer_expression "*(ulong *)(*param_3 + 0x10)" * (cast_expression "(ulong *)(*param_3 + 0x10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_3 + 0x10)" ( (binary_expression "*param_3 + 0x10" (pointer_expression "*param_3" * identifier) + number_literal) ))))) ;) (if_statement "if ((uVar9 > uVar4 || uVar4 == uVar9) &&\n           (pcVar15 = "common of \'%s\' overidden by larger common", uVar9 <= uVar4)) {\n          pcVar15 = "multiple common of \'%s\'";\n        }" if (parenthesized_expression "((uVar9 > uVar4 || uVar4 == uVar9) &&\n           (pcVar15 = "common of \'%s\' overidden by larger common", uVar9 <= uVar4))" ( (binary_expression "(uVar9 > uVar4 || uVar4 == uVar9) &&\n           (pcVar15 = "common of \'%s\' overidden by larger common", uVar9 <= uVar4)" (parenthesized_expression "(uVar9 > uVar4 || uVar4 == uVar9)" ( (binary_expression "uVar9 > uVar4 || uVar4 == uVar9" (binary_expression "uVar9 > uVar4" identifier > identifier) || (binary_expression "uVar4 == uVar9" identifier == identifier)) )) && (parenthesized_expression "(pcVar15 = "common of \'%s\' overidden by larger common", uVar9 <= uVar4)" ( (comma_expression "pcVar15 = "common of \'%s\' overidden by larger common", uVar9 <= uVar4" (assignment_expression "pcVar15 = "common of \'%s\' overidden by larger common"" identifier = (string_literal ""common of \'%s\' overidden by larger common"" " string_content escape_sequence string_content escape_sequence string_content ")) , (binary_expression "uVar9 <= uVar4" identifier <= identifier)) ))) )) (compound_statement "{\n          pcVar15 = "multiple common of \'%s\'";\n        }" { (expression_statement "pcVar15 = "multiple common of \'%s\'";" (assignment_expression "pcVar15 = "multiple common of \'%s\'"" identifier = (string_literal ""multiple common of \'%s\'"" " string_content escape_sequence string_content escape_sequence ")) ;) })) (expression_statement "uVar11 = gettext(pcVar15);" (assignment_expression "uVar11 = gettext(pcVar15)" identifier = (call_expression "gettext(pcVar15)" identifier (argument_list "(pcVar15)" ( identifier )))) ;) (expression_statement "uVar9 = FUN_002be7a0(0,uVar11,param_2,0,param_7);" (assignment_expression "uVar9 = FUN_002be7a0(0,uVar11,param_2,0,param_7)" identifier = (call_expression "FUN_002be7a0(0,uVar11,param_2,0,param_7)" identifier (argument_list "(0,uVar11,param_2,0,param_7)" ( number_literal , identifier , identifier , number_literal , identifier )))) ;) })) })) })) (return_statement "return uVar9;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) 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 (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator 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 (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (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 (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) >> LIT) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) ))) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) && (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) ))) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) ))) )) && (parenthesized_expression ( (binary_expression IDENT == IDENT) ))) )) (goto_statement goto statement_identifier ;)))) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) == (subscript_expression IDENT [ LIT ])) )) (compound_statement { (return_statement return (pointer_expression * IDENT) ;) }))) }))) })))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (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 = (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) == (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 (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) & LIT) )) == LIT) )) (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 * IDENT) + LIT) )))) & LIT) )) == LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != (char_literal ' escape_sequence ')) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression IDENT == (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 (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content escape_sequence string_content ") )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (return_statement return IDENT ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + 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 * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) & LIT) )) - LIT)) , (binary_expression IDENT < LIT)) ))) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE) ) IDENT) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + 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 * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) & LIT) )) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) | LIT)) ;) })) (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 (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) & LIT) )) == LIT) )) && (parenthesized_expression ( (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 * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) + LIT) ))))) )) (argument_list ( )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression 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 (sized_type_specifier long) (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 (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) & LIT) )) != LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) & LIT) )) != LIT) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) , (binary_expression IDENT != (char_literal ' escape_sequence '))) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != (char_literal ' escape_sequence ')) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression IDENT == (char_literal ' escape_sequence '))) ))) )) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , LIT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < IDENT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (return_statement return IDENT ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression 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 { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) == LIT) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) & IDENT) )) != LIT) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) ))) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) ))) )) ))) )) && (parenthesized_expression ( (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) )) != (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 (subscript_expression IDENT [ LIT ]) != (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) , (binary_expression (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' character ')) )))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;)) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression & IDENT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , (pointer_expression & IDENT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression & IDENT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , (pointer_expression & IDENT) , LIT ))) ;) })) })) (expression_statement (assignment_expression IDENT = (pointer_expression & 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 (pointer_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 * IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (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 * IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) & LIT) , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT & LIT) , LIT , IDENT , IDENT , (pointer_expression & IDENT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != (char_literal ' escape_sequence ')) )) (compound_statement { (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 { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != (char_literal ' escape_sequence ')) )) (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 (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) & LIT) )) == LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = (binary_expression (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) 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) )) * (char_literal ' escape_sequence '))) | 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)) ;) (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 (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) || (parenthesized_expression ( (binary_expression IDENT < (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 (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = (binary_expression IDENT | (binary_expression IDENT & LIT))) ;) })) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < IDENT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < IDENT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) & LIT) )) == LIT) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) & LIT) )) != LIT) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = (binary_expression (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) & LIT) | (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT >> LIT) == LIT) )) * (char_literal ' escape_sequence '))) | LIT)) ;) })) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) && (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (char_literal ' escape_sequence ')) ))) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) & LIT) )) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) = (binary_expression IDENT | LIT)) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != (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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence string_content escape_sequence string_content ")) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT > IDENT) || (binary_expression IDENT == IDENT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (string_literal " string_content escape_sequence string_content escape_sequence string_content ")) , (binary_expression IDENT <= IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence string_content escape_sequence ")) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , IDENT , LIT , IDENT )))) ;) })) })) })) (return_statement return IDENT ;) })))
(function_definition "ulong FUN_002c1460(long param_1,undefined8 *param_2,ulong *param_3,int param_4,char param_5,\n                  int param_6,long *param_7,ulong param_8,undefined1 param_9)\n\n{\n  byte bVar1;\n  int iVar2;\n  long *plVar3;\n  ulong uVar4;\n  undefined8 *puVar5;\n  char cVar6;\n  undefined4 uVar7;\n  uint uVar8;\n  ulong uVar9;\n  long lVar10;\n  undefined8 uVar11;\n  ulong uVar12;\n  undefined8 uVar13;\n  uint uVar14;\n  char *pcVar15;\n  byte bVar16;\n  long **local_98;\n  char *local_88;\n  undefined8 local_80;\n  long *local_78;\n  int local_70;\n  undefined8 local_68;\n  undefined8 *local_58;\n  int local_50;\n  undefined8 local_48 [3];\n  \n  if ((*(byte *)((long)param_2 + 0x3a) & 7) != 0) {\n                    \n    FUN_001e9890("../../gold/symtab.h",0xaa,"shndx");\n  }\n  iVar2 = *(int *)(param_2 + 3);\n  bVar16 = *(byte *)((long)param_2 + 0x3b) >> 5 & 1;\n  if (param_7 == (long *)param_2[2]) {\n    if (bVar16 == 0) {\n      cVar6 = FUN_002dd6f0(iVar2);\n      if ((((cVar6 == '\x01') || (param_5 == '\0')) && (param_4 == 0xfff1)) && (param_5 != '\x01'))\n      goto LAB_002c14d0;\n    }\n    else if (((iVar2 != 0) && (param_5 != '\0')) && (param_4 == iVar2)) goto LAB_002c1838;\n  }\n  else if (((param_5 != '\x01') && (param_4 == 0xfff1)) && (bVar16 == 0)) {\nLAB_002c14d0:\n    if (iVar2 == 0xfff1) {\nLAB_002c1838:\n      if (*(long *)(*param_3 + 8) == param_2[8]) {\n        return *param_3;\n      }\n    }\n  }\n  plVar3 = *(long **)(PTR_DAT_004ba7c8 + 0x18);\n  if (plVar3 == (long *)0x0) {\n                    \n    FUN_001e9890("../../gold/parameters.h",0x69,"target");\n  }\n  if ((*(char *)(plVar3[1] + 0xd) == '\0') ||\n     (uVar9 = (**(code **)(*plVar3 + 0x158))(plVar3,param_2,param_3,param_7,param_8),\n     (char)uVar9 == '\0')) {\n    if ((*(byte *)((long)param_7 + 0x3c) & 1) == 0) {\n      if (((*(byte *)(*param_3 + 4) & 0xf) == 5) &&\n         ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))) {\n        if ((*(byte *)((long)param_2 + 0x3a) & 7) == 0) {\n          uVar11 = *(undefined8 *)(param_2[2] + 8);\n          FUN_002de930(&local_58,param_2);\n          puVar5 = local_58;\n          uVar13 = gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");\n                    \n          uVar9 = FUN_001e15a0(uVar13,puVar5,uVar11);\n          if (local_58 == local_48) {\n            return uVar9;\n          }\n          uVar9 = FUN_00338a50();\n          return uVar9;\n        }\n        goto LAB_002c1bd9;\n      }\n      *(byte *)((long)param_2 + 0x3a) = *(byte *)((long)param_2 + 0x3a) | 0x80;\n      lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    }\n    else {\n      if ((param_4 == 0) && (uVar8 = (*(byte *)((long)param_2 + 0x39) & 3) - 1, uVar8 < 2)) {\n        return (ulong)uVar8;\n      }\n      *(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 1;\n      lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    }\n    if ((lVar10 == 0) && ((*(byte *)((long)param_7 + 0x3c) & 1) == 0)) {\n      *(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 0x40;\n    }\n    if (((*(byte *)((long)param_2 + 0x3a) & 7) == 0) &&\n       (lVar10 = (**(code **)(*(long *)param_2[2] + 0x28))(), lVar10 != 0)) {\n      lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n      if (lVar10 == 0) goto LAB_002c17cc;\n      if (*(char *)(*(long *)(lVar10 + 0x9058) + 0xb1) != '\0') {\n        if (((((*(byte *)((long)param_2 + 0x3a) & 7) != 0) ||\n             ((*(byte *)((long)param_2 + 0x3b) & 0x20) != 0)) ||\n            (cVar6 = FUN_002dd6f0(*(undefined4 *)(param_2 + 3)), cVar6 != '\x01')) ||\n           ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))) {\n          FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7);\n          return param_8;\n        }\n        uVar9 = param_2[9];\n        uVar4 = param_2[8];\n        uVar12 = FUN_002bffb0(param_1,param_2,param_3,param_4,0,param_7,param_8);\n        if ((ulong)param_2[9] < uVar9) {\n          param_2[9] = uVar9;\n        }\n        if (uVar4 <= (ulong)param_2[8]) {\n          return uVar12;\n        }\n        param_2[8] = uVar4;\n        return uVar12;\n      }\n    }\n    else {\n      lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n      if (lVar10 == 0) goto LAB_002c17cc;\n    }\n    if (*(char *)(lVar10 + 0x16b1) != '\0') {\n      uVar9 = *param_3;\n      if ((((((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) || (*(byte *)(param_2 + 7) >> 4 == 2)) &&\n           (((param_6 != 0 & bVar16) != 0 &&\n            (((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0)))))) &&\n          (((*(byte *)(uVar9 + 4) & 0xf) != (*(byte *)(param_2 + 7) & 0xf) ||\n           (param_2[9] != *(long *)(uVar9 + 0x10))))) &&\n         ((pcVar15 = (char *)*param_2, *pcVar15 == '_' && (pcVar15[1] == 'Z')))) {\n        local_68 = *(undefined8 *)(uVar9 + 8);\n        local_78 = param_7;\n        local_70 = param_6;\n        if ((*(byte *)((long)param_2 + 0x3a) & 7) != 0) {\nLAB_002c1bd9:\n                    \n          FUN_001e9890("../../gold/symtab.h",0xa1,"object");\n        }\n        local_58 = (undefined8 *)param_2[2];\n        local_48[0] = param_2[8];\n        local_88 = pcVar15;\n        local_50 = iVar2;\n        local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);\n        FUN_001c3360(local_80,&local_78,&local_80,1);\n        local_88 = (char *)*param_2;\n        local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);\n        FUN_001c3360(local_80,&local_58,&local_80,1);\n      }\n    }\n    local_98 = &local_78;\n    lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    if (lVar10 == 0) {\n      uVar14 = (uint)*(byte *)(*param_3 + 4);\n      uVar8 = uVar14;\n    }\n    else {\n      uVar14 = (uint)*(byte *)(*param_3 + 4);\n      uVar8 = (uint)*(byte *)(param_2 + 7);\n    }\n    uVar7 = FUN_002be580((int)uVar14 >> 4,*(byte *)((long)param_7 + 0x3c) & 1,param_4,param_5);\n    uVar4 = param_2[9];\n    cVar6 = FUN_002be950(param_2,uVar7,uVar8 & 0xf,0,param_7,local_98,&local_58,param_9);\n    if (cVar6 == '\0') {\n      uVar9 = *param_3;\n      if ((char)local_78 != '\0') {\n        if (uVar4 < *(ulong *)(uVar9 + 0x10)) {\n          param_2[9] = *(ulong *)(uVar9 + 0x10);\n        }\n        if ((ulong)param_2[8] < *(ulong *)(uVar9 + 8)) {\n          param_2[8] = *(ulong *)(uVar9 + 8);\n        }\n      }\n      if ((char)local_58 != '\0') {\n        if (((*(byte *)((long)param_2 + 0x3c) & 1) == 0) ||\n           ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)) {\n          *(byte *)((long)param_2 + 0x3c) =\n               *(byte *)((long)param_2 + 0x3c) & 0xfd |\n               ((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) * '\x02' | 1;\n        }\n      }\n      bVar16 = *(byte *)(uVar9 + 5) & 3;\n      if ((*(byte *)(uVar9 + 5) & 3) != 0) {\n        bVar1 = *(byte *)((long)param_2 + 0x39);\n        if (((bVar1 & 3) == 0) || (bVar16 < (bVar1 & 3))) {\n          *(byte *)((long)param_2 + 0x39) = bVar16 | bVar1 & 0xfc;\n        }\n      }\n    }\n    else {\n      bVar16 = *(byte *)(param_2 + 7);\n      uVar9 = param_2[8];\n      FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7,param_8);\n      if ((char)local_78 != '\0') {\n        if ((ulong)param_2[9] < uVar4) {\n          param_2[9] = uVar4;\n        }\n        if ((ulong)param_2[8] < uVar9) {\n          param_2[8] = uVar9;\n        }\n      }\n      if (((char)local_58 != '\0') &&\n         (((*(byte *)((long)param_2 + 0x3c) & 1) == 0 ||\n          ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)))) {\n        *(byte *)((long)param_2 + 0x3c) =\n             *(byte *)((long)param_2 + 0x3c) & 0xfd | (bVar16 >> 4 == 2) * '\x02' | 1;\n      }\n    }\n    bVar16 = *(byte *)((long)param_2 + 0x3a);\n    uVar9 = (ulong)bVar16;\n    if ((bVar16 & 7) == 0) {\n      bVar1 = *(byte *)(param_2[2] + 0x3c);\n      if ((((bVar1 & 1) != 0) && ((char)bVar16 < '\0')) &&\n         ((*(byte *)((long)param_2 + 0x3c) & 2) == 0)) {\n        *(byte *)(param_2[2] + 0x3c) = bVar1 | 2;\n      }\n    }\n    if ((char)local_78 != '\0') {\n      uVar9 = *(ulong *)(PTR_DAT_004ba7c8 + 0x10);\n      if (uVar9 == 0) {\nLAB_002c17cc:\n                    \n        FUN_001e9890("../../gold/parameters.h",0x5c,"options");\n      }\n      if (*(char *)(uVar9 + 0x6de1) != '\0') {\n        pcVar15 = "common of \'%s\' overriding smaller common";\n        uVar9 = *(ulong *)(*param_3 + 0x10);\n        if ((uVar9 > uVar4 || uVar4 == uVar9) &&\n           (pcVar15 = "common of \'%s\' overidden by larger common", uVar9 <= uVar4)) {\n          pcVar15 = "multiple common of \'%s\'";\n        }\n        uVar11 = gettext(pcVar15);\n        uVar9 = FUN_002be7a0(0,uVar11,param_2,0,param_7);\n      }\n    }\n  }\n  return uVar9;\n}" (type_identifier "ulong") (function_declarator "FUN_002c1460(long param_1,undefined8 *param_2,ulong *param_3,int param_4,char param_5,\n                  int param_6,long *param_7,ulong param_8,undefined1 param_9)" (identifier "FUN_002c1460") (parameter_list "(long param_1,undefined8 *param_2,ulong *param_3,int param_4,char param_5,\n                  int param_6,long *param_7,ulong param_8,undefined1 param_9)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "undefined8 *param_2" (type_identifier "undefined8") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "ulong *param_3" (type_identifier "ulong") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) (, ",") (parameter_declaration "char param_5" (primitive_type "char") (identifier "param_5")) (, ",") (parameter_declaration "int param_6" (primitive_type "int") (identifier "param_6")) (, ",") (parameter_declaration "long *param_7" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_7" (* "*") (identifier "param_7"))) (, ",") (parameter_declaration "ulong param_8" (type_identifier "ulong") (identifier "param_8")) (, ",") (parameter_declaration "undefined1 param_9" (type_identifier "undefined1") (identifier "param_9")) () ")"))) (compound_statement "{\n  byte bVar1;\n  int iVar2;\n  long *plVar3;\n  ulong uVar4;\n  undefined8 *puVar5;\n  char cVar6;\n  undefined4 uVar7;\n  uint uVar8;\n  ulong uVar9;\n  long lVar10;\n  undefined8 uVar11;\n  ulong uVar12;\n  undefined8 uVar13;\n  uint uVar14;\n  char *pcVar15;\n  byte bVar16;\n  long **local_98;\n  char *local_88;\n  undefined8 local_80;\n  long *local_78;\n  int local_70;\n  undefined8 local_68;\n  undefined8 *local_58;\n  int local_50;\n  undefined8 local_48 [3];\n  \n  if ((*(byte *)((long)param_2 + 0x3a) & 7) != 0) {\n                    \n    FUN_001e9890("../../gold/symtab.h",0xaa,"shndx");\n  }\n  iVar2 = *(int *)(param_2 + 3);\n  bVar16 = *(byte *)((long)param_2 + 0x3b) >> 5 & 1;\n  if (param_7 == (long *)param_2[2]) {\n    if (bVar16 == 0) {\n      cVar6 = FUN_002dd6f0(iVar2);\n      if ((((cVar6 == '\x01') || (param_5 == '\0')) && (param_4 == 0xfff1)) && (param_5 != '\x01'))\n      goto LAB_002c14d0;\n    }\n    else if (((iVar2 != 0) && (param_5 != '\0')) && (param_4 == iVar2)) goto LAB_002c1838;\n  }\n  else if (((param_5 != '\x01') && (param_4 == 0xfff1)) && (bVar16 == 0)) {\nLAB_002c14d0:\n    if (iVar2 == 0xfff1) {\nLAB_002c1838:\n      if (*(long *)(*param_3 + 8) == param_2[8]) {\n        return *param_3;\n      }\n    }\n  }\n  plVar3 = *(long **)(PTR_DAT_004ba7c8 + 0x18);\n  if (plVar3 == (long *)0x0) {\n                    \n    FUN_001e9890("../../gold/parameters.h",0x69,"target");\n  }\n  if ((*(char *)(plVar3[1] + 0xd) == '\0') ||\n     (uVar9 = (**(code **)(*plVar3 + 0x158))(plVar3,param_2,param_3,param_7,param_8),\n     (char)uVar9 == '\0')) {\n    if ((*(byte *)((long)param_7 + 0x3c) & 1) == 0) {\n      if (((*(byte *)(*param_3 + 4) & 0xf) == 5) &&\n         ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))) {\n        if ((*(byte *)((long)param_2 + 0x3a) & 7) == 0) {\n          uVar11 = *(undefined8 *)(param_2[2] + 8);\n          FUN_002de930(&local_58,param_2);\n          puVar5 = local_58;\n          uVar13 = gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");\n                    \n          uVar9 = FUN_001e15a0(uVar13,puVar5,uVar11);\n          if (local_58 == local_48) {\n            return uVar9;\n          }\n          uVar9 = FUN_00338a50();\n          return uVar9;\n        }\n        goto LAB_002c1bd9;\n      }\n      *(byte *)((long)param_2 + 0x3a) = *(byte *)((long)param_2 + 0x3a) | 0x80;\n      lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    }\n    else {\n      if ((param_4 == 0) && (uVar8 = (*(byte *)((long)param_2 + 0x39) & 3) - 1, uVar8 < 2)) {\n        return (ulong)uVar8;\n      }\n      *(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 1;\n      lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    }\n    if ((lVar10 == 0) && ((*(byte *)((long)param_7 + 0x3c) & 1) == 0)) {\n      *(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 0x40;\n    }\n    if (((*(byte *)((long)param_2 + 0x3a) & 7) == 0) &&\n       (lVar10 = (**(code **)(*(long *)param_2[2] + 0x28))(), lVar10 != 0)) {\n      lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n      if (lVar10 == 0) goto LAB_002c17cc;\n      if (*(char *)(*(long *)(lVar10 + 0x9058) + 0xb1) != '\0') {\n        if (((((*(byte *)((long)param_2 + 0x3a) & 7) != 0) ||\n             ((*(byte *)((long)param_2 + 0x3b) & 0x20) != 0)) ||\n            (cVar6 = FUN_002dd6f0(*(undefined4 *)(param_2 + 3)), cVar6 != '\x01')) ||\n           ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))) {\n          FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7);\n          return param_8;\n        }\n        uVar9 = param_2[9];\n        uVar4 = param_2[8];\n        uVar12 = FUN_002bffb0(param_1,param_2,param_3,param_4,0,param_7,param_8);\n        if ((ulong)param_2[9] < uVar9) {\n          param_2[9] = uVar9;\n        }\n        if (uVar4 <= (ulong)param_2[8]) {\n          return uVar12;\n        }\n        param_2[8] = uVar4;\n        return uVar12;\n      }\n    }\n    else {\n      lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n      if (lVar10 == 0) goto LAB_002c17cc;\n    }\n    if (*(char *)(lVar10 + 0x16b1) != '\0') {\n      uVar9 = *param_3;\n      if ((((((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) || (*(byte *)(param_2 + 7) >> 4 == 2)) &&\n           (((param_6 != 0 & bVar16) != 0 &&\n            (((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0)))))) &&\n          (((*(byte *)(uVar9 + 4) & 0xf) != (*(byte *)(param_2 + 7) & 0xf) ||\n           (param_2[9] != *(long *)(uVar9 + 0x10))))) &&\n         ((pcVar15 = (char *)*param_2, *pcVar15 == '_' && (pcVar15[1] == 'Z')))) {\n        local_68 = *(undefined8 *)(uVar9 + 8);\n        local_78 = param_7;\n        local_70 = param_6;\n        if ((*(byte *)((long)param_2 + 0x3a) & 7) != 0) {\nLAB_002c1bd9:\n                    \n          FUN_001e9890("../../gold/symtab.h",0xa1,"object");\n        }\n        local_58 = (undefined8 *)param_2[2];\n        local_48[0] = param_2[8];\n        local_88 = pcVar15;\n        local_50 = iVar2;\n        local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);\n        FUN_001c3360(local_80,&local_78,&local_80,1);\n        local_88 = (char *)*param_2;\n        local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);\n        FUN_001c3360(local_80,&local_58,&local_80,1);\n      }\n    }\n    local_98 = &local_78;\n    lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    if (lVar10 == 0) {\n      uVar14 = (uint)*(byte *)(*param_3 + 4);\n      uVar8 = uVar14;\n    }\n    else {\n      uVar14 = (uint)*(byte *)(*param_3 + 4);\n      uVar8 = (uint)*(byte *)(param_2 + 7);\n    }\n    uVar7 = FUN_002be580((int)uVar14 >> 4,*(byte *)((long)param_7 + 0x3c) & 1,param_4,param_5);\n    uVar4 = param_2[9];\n    cVar6 = FUN_002be950(param_2,uVar7,uVar8 & 0xf,0,param_7,local_98,&local_58,param_9);\n    if (cVar6 == '\0') {\n      uVar9 = *param_3;\n      if ((char)local_78 != '\0') {\n        if (uVar4 < *(ulong *)(uVar9 + 0x10)) {\n          param_2[9] = *(ulong *)(uVar9 + 0x10);\n        }\n        if ((ulong)param_2[8] < *(ulong *)(uVar9 + 8)) {\n          param_2[8] = *(ulong *)(uVar9 + 8);\n        }\n      }\n      if ((char)local_58 != '\0') {\n        if (((*(byte *)((long)param_2 + 0x3c) & 1) == 0) ||\n           ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)) {\n          *(byte *)((long)param_2 + 0x3c) =\n               *(byte *)((long)param_2 + 0x3c) & 0xfd |\n               ((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) * '\x02' | 1;\n        }\n      }\n      bVar16 = *(byte *)(uVar9 + 5) & 3;\n      if ((*(byte *)(uVar9 + 5) & 3) != 0) {\n        bVar1 = *(byte *)((long)param_2 + 0x39);\n        if (((bVar1 & 3) == 0) || (bVar16 < (bVar1 & 3))) {\n          *(byte *)((long)param_2 + 0x39) = bVar16 | bVar1 & 0xfc;\n        }\n      }\n    }\n    else {\n      bVar16 = *(byte *)(param_2 + 7);\n      uVar9 = param_2[8];\n      FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7,param_8);\n      if ((char)local_78 != '\0') {\n        if ((ulong)param_2[9] < uVar4) {\n          param_2[9] = uVar4;\n        }\n        if ((ulong)param_2[8] < uVar9) {\n          param_2[8] = uVar9;\n        }\n      }\n      if (((char)local_58 != '\0') &&\n         (((*(byte *)((long)param_2 + 0x3c) & 1) == 0 ||\n          ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)))) {\n        *(byte *)((long)param_2 + 0x3c) =\n             *(byte *)((long)param_2 + 0x3c) & 0xfd | (bVar16 >> 4 == 2) * '\x02' | 1;\n      }\n    }\n    bVar16 = *(byte *)((long)param_2 + 0x3a);\n    uVar9 = (ulong)bVar16;\n    if ((bVar16 & 7) == 0) {\n      bVar1 = *(byte *)(param_2[2] + 0x3c);\n      if ((((bVar1 & 1) != 0) && ((char)bVar16 < '\0')) &&\n         ((*(byte *)((long)param_2 + 0x3c) & 2) == 0)) {\n        *(byte *)(param_2[2] + 0x3c) = bVar1 | 2;\n      }\n    }\n    if ((char)local_78 != '\0') {\n      uVar9 = *(ulong *)(PTR_DAT_004ba7c8 + 0x10);\n      if (uVar9 == 0) {\nLAB_002c17cc:\n                    \n        FUN_001e9890("../../gold/parameters.h",0x5c,"options");\n      }\n      if (*(char *)(uVar9 + 0x6de1) != '\0') {\n        pcVar15 = "common of \'%s\' overriding smaller common";\n        uVar9 = *(ulong *)(*param_3 + 0x10);\n        if ((uVar9 > uVar4 || uVar4 == uVar9) &&\n           (pcVar15 = "common of \'%s\' overidden by larger common", uVar9 <= uVar4)) {\n          pcVar15 = "multiple common of \'%s\'";\n        }\n        uVar11 = gettext(pcVar15);\n        uVar9 = FUN_002be7a0(0,uVar11,param_2,0,param_7);\n      }\n    }\n  }\n  return uVar9;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "long *plVar3;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar3" (* "*") (identifier "plVar3")) (; ";")) (declaration "ulong uVar4;" (type_identifier "ulong") (identifier "uVar4") (; ";")) (declaration "undefined8 *puVar5;" (type_identifier "undefined8") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "char cVar6;" (primitive_type "char") (identifier "cVar6") (; ";")) (declaration "undefined4 uVar7;" (type_identifier "undefined4") (identifier "uVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "ulong uVar9;" (type_identifier "ulong") (identifier "uVar9") (; ";")) (declaration "long lVar10;" (sized_type_specifier "long" (long "long")) (identifier "lVar10") (; ";")) (declaration "undefined8 uVar11;" (type_identifier "undefined8") (identifier "uVar11") (; ";")) (declaration "ulong uVar12;" (type_identifier "ulong") (identifier "uVar12") (; ";")) (declaration "undefined8 uVar13;" (type_identifier "undefined8") (identifier "uVar13") (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "char *pcVar15;" (primitive_type "char") (pointer_declarator "*pcVar15" (* "*") (identifier "pcVar15")) (; ";")) (declaration "byte bVar16;" (type_identifier "byte") (identifier "bVar16") (; ";")) (declaration "long **local_98;" (sized_type_specifier "long" (long "long")) (pointer_declarator "**local_98" (* "*") (pointer_declarator "*local_98" (* "*") (identifier "local_98"))) (; ";")) (declaration "char *local_88;" (primitive_type "char") (pointer_declarator "*local_88" (* "*") (identifier "local_88")) (; ";")) (declaration "undefined8 local_80;" (type_identifier "undefined8") (identifier "local_80") (; ";")) (declaration "long *local_78;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*local_78" (* "*") (identifier "local_78")) (; ";")) (declaration "int local_70;" (primitive_type "int") (identifier "local_70") (; ";")) (declaration "undefined8 local_68;" (type_identifier "undefined8") (identifier "local_68") (; ";")) (declaration "undefined8 *local_58;" (type_identifier "undefined8") (pointer_declarator "*local_58" (* "*") (identifier "local_58")) (; ";")) (declaration "int local_50;" (primitive_type "int") (identifier "local_50") (; ";")) (declaration "undefined8 local_48 [3];" (type_identifier "undefined8") (array_declarator "local_48 [3]" (identifier "local_48") ([ "[") (number_literal "3") (] "]")) (; ";")) (if_statement "if ((*(byte *)((long)param_2 + 0x3a) & 7) != 0) {\n                    \n    FUN_001e9890("../../gold/symtab.h",0xaa,"shndx");\n  }" (if "if") (parenthesized_expression "((*(byte *)((long)param_2 + 0x3a) & 7) != 0)" (( "(") (binary_expression "(*(byte *)((long)param_2 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)((long)param_2 + 0x3a) & 7)" (( "(") (binary_expression "*(byte *)((long)param_2 + 0x3a) & 7" (pointer_expression "*(byte *)((long)param_2 + 0x3a)" (* "*") (cast_expression "(byte *)((long)param_2 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_2 + 0x3a)" (( "(") (binary_expression "(long)param_2 + 0x3a" (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")) (+ "+") (number_literal "0x3a")) () ")")))) (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_001e9890("../../gold/symtab.h",0xaa,"shndx");\n  }" ({ "{") (expression_statement "FUN_001e9890("../../gold/symtab.h",0xaa,"shndx");" (call_expression "FUN_001e9890("../../gold/symtab.h",0xaa,"shndx")" (identifier "FUN_001e9890") (argument_list "("../../gold/symtab.h",0xaa,"shndx")" (( "(") (string_literal ""../../gold/symtab.h"" (" """) (string_content "../../gold/symtab.h") (" """)) (, ",") (number_literal "0xaa") (, ",") (string_literal ""shndx"" (" """) (string_content "shndx") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar2 = *(int *)(param_2 + 3);" (assignment_expression "iVar2 = *(int *)(param_2 + 3)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(param_2 + 3)" (* "*") (cast_expression "(int *)(param_2 + 3)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 3)" (( "(") (binary_expression "param_2 + 3" (identifier "param_2") (+ "+") (number_literal "3")) () ")"))))) (; ";")) (expression_statement "bVar16 = *(byte *)((long)param_2 + 0x3b) >> 5 & 1;" (assignment_expression "bVar16 = *(byte *)((long)param_2 + 0x3b) >> 5 & 1" (identifier "bVar16") (= "=") (binary_expression "*(byte *)((long)param_2 + 0x3b) >> 5 & 1" (binary_expression "*(byte *)((long)param_2 + 0x3b) >> 5" (pointer_expression "*(byte *)((long)param_2 + 0x3b)" (* "*") (cast_expression "(byte *)((long)param_2 + 0x3b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_2 + 0x3b)" (( "(") (binary_expression "(long)param_2 + 0x3b" (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")) (+ "+") (number_literal "0x3b")) () ")")))) (>> ">>") (number_literal "5")) (& "&") (number_literal "1"))) (; ";")) (if_statement "if (param_7 == (long *)param_2[2]) {\n    if (bVar16 == 0) {\n      cVar6 = FUN_002dd6f0(iVar2);\n      if ((((cVar6 == '\x01') || (param_5 == '\0')) && (param_4 == 0xfff1)) && (param_5 != '\x01'))\n      goto LAB_002c14d0;\n    }\n    else if (((iVar2 != 0) && (param_5 != '\0')) && (param_4 == iVar2)) goto LAB_002c1838;\n  }\n  else if (((param_5 != '\x01') && (param_4 == 0xfff1)) && (bVar16 == 0)) {\nLAB_002c14d0:\n    if (iVar2 == 0xfff1) {\nLAB_002c1838:\n      if (*(long *)(*param_3 + 8) == param_2[8]) {\n        return *param_3;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(param_7 == (long *)param_2[2])" (( "(") (binary_expression "param_7 == (long *)param_2[2]" (identifier "param_7") (== "==") (cast_expression "(long *)param_2[2]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")))) () ")")) (compound_statement "{\n    if (bVar16 == 0) {\n      cVar6 = FUN_002dd6f0(iVar2);\n      if ((((cVar6 == '\x01') || (param_5 == '\0')) && (param_4 == 0xfff1)) && (param_5 != '\x01'))\n      goto LAB_002c14d0;\n    }\n    else if (((iVar2 != 0) && (param_5 != '\0')) && (param_4 == iVar2)) goto LAB_002c1838;\n  }" ({ "{") (if_statement "if (bVar16 == 0) {\n      cVar6 = FUN_002dd6f0(iVar2);\n      if ((((cVar6 == '\x01') || (param_5 == '\0')) && (param_4 == 0xfff1)) && (param_5 != '\x01'))\n      goto LAB_002c14d0;\n    }\n    else if (((iVar2 != 0) && (param_5 != '\0')) && (param_4 == iVar2)) goto LAB_002c1838;" (if "if") (parenthesized_expression "(bVar16 == 0)" (( "(") (binary_expression "bVar16 == 0" (identifier "bVar16") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      cVar6 = FUN_002dd6f0(iVar2);\n      if ((((cVar6 == '\x01') || (param_5 == '\0')) && (param_4 == 0xfff1)) && (param_5 != '\x01'))\n      goto LAB_002c14d0;\n    }" ({ "{") (expression_statement "cVar6 = FUN_002dd6f0(iVar2);" (assignment_expression "cVar6 = FUN_002dd6f0(iVar2)" (identifier "cVar6") (= "=") (call_expression "FUN_002dd6f0(iVar2)" (identifier "FUN_002dd6f0") (argument_list "(iVar2)" (( "(") (identifier "iVar2") () ")")))) (; ";")) (if_statement "if ((((cVar6 == '\x01') || (param_5 == '\0')) && (param_4 == 0xfff1)) && (param_5 != '\x01'))\n      goto LAB_002c14d0;" (if "if") (parenthesized_expression "((((cVar6 == '\x01') || (param_5 == '\0')) && (param_4 == 0xfff1)) && (param_5 != '\x01'))" (( "(") (binary_expression "(((cVar6 == '\x01') || (param_5 == '\0')) && (param_4 == 0xfff1)) && (param_5 != '\x01')" (parenthesized_expression "(((cVar6 == '\x01') || (param_5 == '\0')) && (param_4 == 0xfff1))" (( "(") (binary_expression "((cVar6 == '\x01') || (param_5 == '\0')) && (param_4 == 0xfff1)" (parenthesized_expression "((cVar6 == '\x01') || (param_5 == '\0'))" (( "(") (binary_expression "(cVar6 == '\x01') || (param_5 == '\0')" (parenthesized_expression "(cVar6 == '\x01')" (( "(") (binary_expression "cVar6 == '\x01'" (identifier "cVar6") (== "==") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(param_5 == '\0')" (( "(") (binary_expression "param_5 == '\0'" (identifier "param_5") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(param_4 == 0xfff1)" (( "(") (binary_expression "param_4 == 0xfff1" (identifier "param_4") (== "==") (number_literal "0xfff1")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(param_5 != '\x01')" (( "(") (binary_expression "param_5 != '\x01'" (identifier "param_5") (!= "!=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")"))) () ")")) (goto_statement "goto LAB_002c14d0;" (goto "goto") (statement_identifier "LAB_002c14d0") (; ";"))) (} "}")) (else_clause "else if (((iVar2 != 0) && (param_5 != '\0')) && (param_4 == iVar2)) goto LAB_002c1838;" (else "else") (if_statement "if (((iVar2 != 0) && (param_5 != '\0')) && (param_4 == iVar2)) goto LAB_002c1838;" (if "if") (parenthesized_expression "(((iVar2 != 0) && (param_5 != '\0')) && (param_4 == iVar2))" (( "(") (binary_expression "((iVar2 != 0) && (param_5 != '\0')) && (param_4 == iVar2)" (parenthesized_expression "((iVar2 != 0) && (param_5 != '\0'))" (( "(") (binary_expression "(iVar2 != 0) && (param_5 != '\0')" (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(param_5 != '\0')" (( "(") (binary_expression "param_5 != '\0'" (identifier "param_5") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(param_4 == iVar2)" (( "(") (binary_expression "param_4 == iVar2" (identifier "param_4") (== "==") (identifier "iVar2")) () ")"))) () ")")) (goto_statement "goto LAB_002c1838;" (goto "goto") (statement_identifier "LAB_002c1838") (; ";"))))) (} "}")) (else_clause "else if (((param_5 != '\x01') && (param_4 == 0xfff1)) && (bVar16 == 0)) {\nLAB_002c14d0:\n    if (iVar2 == 0xfff1) {\nLAB_002c1838:\n      if (*(long *)(*param_3 + 8) == param_2[8]) {\n        return *param_3;\n      }\n    }\n  }" (else "else") (if_statement "if (((param_5 != '\x01') && (param_4 == 0xfff1)) && (bVar16 == 0)) {\nLAB_002c14d0:\n    if (iVar2 == 0xfff1) {\nLAB_002c1838:\n      if (*(long *)(*param_3 + 8) == param_2[8]) {\n        return *param_3;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(((param_5 != '\x01') && (param_4 == 0xfff1)) && (bVar16 == 0))" (( "(") (binary_expression "((param_5 != '\x01') && (param_4 == 0xfff1)) && (bVar16 == 0)" (parenthesized_expression "((param_5 != '\x01') && (param_4 == 0xfff1))" (( "(") (binary_expression "(param_5 != '\x01') && (param_4 == 0xfff1)" (parenthesized_expression "(param_5 != '\x01')" (( "(") (binary_expression "param_5 != '\x01'" (identifier "param_5") (!= "!=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(param_4 == 0xfff1)" (( "(") (binary_expression "param_4 == 0xfff1" (identifier "param_4") (== "==") (number_literal "0xfff1")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(bVar16 == 0)" (( "(") (binary_expression "bVar16 == 0" (identifier "bVar16") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\nLAB_002c14d0:\n    if (iVar2 == 0xfff1) {\nLAB_002c1838:\n      if (*(long *)(*param_3 + 8) == param_2[8]) {\n        return *param_3;\n      }\n    }\n  }" ({ "{") (labeled_statement "LAB_002c14d0:\n    if (iVar2 == 0xfff1) {\nLAB_002c1838:\n      if (*(long *)(*param_3 + 8) == param_2[8]) {\n        return *param_3;\n      }\n    }" (statement_identifier "LAB_002c14d0") (: ":") (if_statement "if (iVar2 == 0xfff1) {\nLAB_002c1838:\n      if (*(long *)(*param_3 + 8) == param_2[8]) {\n        return *param_3;\n      }\n    }" (if "if") (parenthesized_expression "(iVar2 == 0xfff1)" (( "(") (binary_expression "iVar2 == 0xfff1" (identifier "iVar2") (== "==") (number_literal "0xfff1")) () ")")) (compound_statement "{\nLAB_002c1838:\n      if (*(long *)(*param_3 + 8) == param_2[8]) {\n        return *param_3;\n      }\n    }" ({ "{") (labeled_statement "LAB_002c1838:\n      if (*(long *)(*param_3 + 8) == param_2[8]) {\n        return *param_3;\n      }" (statement_identifier "LAB_002c1838") (: ":") (if_statement "if (*(long *)(*param_3 + 8) == param_2[8]) {\n        return *param_3;\n      }" (if "if") (parenthesized_expression "(*(long *)(*param_3 + 8) == param_2[8])" (( "(") (binary_expression "*(long *)(*param_3 + 8) == param_2[8]" (pointer_expression "*(long *)(*param_3 + 8)" (* "*") (cast_expression "(long *)(*param_3 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_3 + 8)" (( "(") (binary_expression "*param_3 + 8" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (+ "+") (number_literal "8")) () ")")))) (== "==") (subscript_expression "param_2[8]" (identifier "param_2") ([ "[") (number_literal "8") (] "]"))) () ")")) (compound_statement "{\n        return *param_3;\n      }" ({ "{") (return_statement "return *param_3;" (return "return") (pointer_expression "*param_3" (* "*") (identifier "param_3")) (; ";")) (} "}")))) (} "}")))) (} "}"))))) (expression_statement "plVar3 = *(long **)(PTR_DAT_004ba7c8 + 0x18);" (assignment_expression "plVar3 = *(long **)(PTR_DAT_004ba7c8 + 0x18)" (identifier "plVar3") (= "=") (pointer_expression "*(long **)(PTR_DAT_004ba7c8 + 0x18)" (* "*") (cast_expression "(long **)(PTR_DAT_004ba7c8 + 0x18)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_DAT_004ba7c8 + 0x18)" (( "(") (binary_expression "PTR_DAT_004ba7c8 + 0x18" (identifier "PTR_DAT_004ba7c8") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (plVar3 == (long *)0x0) {\n                    \n    FUN_001e9890("../../gold/parameters.h",0x69,"target");\n  }" (if "if") (parenthesized_expression "(plVar3 == (long *)0x0)" (( "(") (binary_expression "plVar3 == (long *)0x0" (identifier "plVar3") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n    FUN_001e9890("../../gold/parameters.h",0x69,"target");\n  }" ({ "{") (expression_statement "FUN_001e9890("../../gold/parameters.h",0x69,"target");" (call_expression "FUN_001e9890("../../gold/parameters.h",0x69,"target")" (identifier "FUN_001e9890") (argument_list "("../../gold/parameters.h",0x69,"target")" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x69") (, ",") (string_literal ""target"" (" """) (string_content "target") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if ((*(char *)(plVar3[1] + 0xd) == '\0') ||\n     (uVar9 = (**(code **)(*plVar3 + 0x158))(plVar3,param_2,param_3,param_7,param_8),\n     (char)uVar9 == '\0')) {\n    if ((*(byte *)((long)param_7 + 0x3c) & 1) == 0) {\n      if (((*(byte *)(*param_3 + 4) & 0xf) == 5) &&\n         ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))) {\n        if ((*(byte *)((long)param_2 + 0x3a) & 7) == 0) {\n          uVar11 = *(undefined8 *)(param_2[2] + 8);\n          FUN_002de930(&local_58,param_2);\n          puVar5 = local_58;\n          uVar13 = gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");\n                    \n          uVar9 = FUN_001e15a0(uVar13,puVar5,uVar11);\n          if (local_58 == local_48) {\n            return uVar9;\n          }\n          uVar9 = FUN_00338a50();\n          return uVar9;\n        }\n        goto LAB_002c1bd9;\n      }\n      *(byte *)((long)param_2 + 0x3a) = *(byte *)((long)param_2 + 0x3a) | 0x80;\n      lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    }\n    else {\n      if ((param_4 == 0) && (uVar8 = (*(byte *)((long)param_2 + 0x39) & 3) - 1, uVar8 < 2)) {\n        return (ulong)uVar8;\n      }\n      *(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 1;\n      lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    }\n    if ((lVar10 == 0) && ((*(byte *)((long)param_7 + 0x3c) & 1) == 0)) {\n      *(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 0x40;\n    }\n    if (((*(byte *)((long)param_2 + 0x3a) & 7) == 0) &&\n       (lVar10 = (**(code **)(*(long *)param_2[2] + 0x28))(), lVar10 != 0)) {\n      lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n      if (lVar10 == 0) goto LAB_002c17cc;\n      if (*(char *)(*(long *)(lVar10 + 0x9058) + 0xb1) != '\0') {\n        if (((((*(byte *)((long)param_2 + 0x3a) & 7) != 0) ||\n             ((*(byte *)((long)param_2 + 0x3b) & 0x20) != 0)) ||\n            (cVar6 = FUN_002dd6f0(*(undefined4 *)(param_2 + 3)), cVar6 != '\x01')) ||\n           ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))) {\n          FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7);\n          return param_8;\n        }\n        uVar9 = param_2[9];\n        uVar4 = param_2[8];\n        uVar12 = FUN_002bffb0(param_1,param_2,param_3,param_4,0,param_7,param_8);\n        if ((ulong)param_2[9] < uVar9) {\n          param_2[9] = uVar9;\n        }\n        if (uVar4 <= (ulong)param_2[8]) {\n          return uVar12;\n        }\n        param_2[8] = uVar4;\n        return uVar12;\n      }\n    }\n    else {\n      lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n      if (lVar10 == 0) goto LAB_002c17cc;\n    }\n    if (*(char *)(lVar10 + 0x16b1) != '\0') {\n      uVar9 = *param_3;\n      if ((((((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) || (*(byte *)(param_2 + 7) >> 4 == 2)) &&\n           (((param_6 != 0 & bVar16) != 0 &&\n            (((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0)))))) &&\n          (((*(byte *)(uVar9 + 4) & 0xf) != (*(byte *)(param_2 + 7) & 0xf) ||\n           (param_2[9] != *(long *)(uVar9 + 0x10))))) &&\n         ((pcVar15 = (char *)*param_2, *pcVar15 == '_' && (pcVar15[1] == 'Z')))) {\n        local_68 = *(undefined8 *)(uVar9 + 8);\n        local_78 = param_7;\n        local_70 = param_6;\n        if ((*(byte *)((long)param_2 + 0x3a) & 7) != 0) {\nLAB_002c1bd9:\n                    \n          FUN_001e9890("../../gold/symtab.h",0xa1,"object");\n        }\n        local_58 = (undefined8 *)param_2[2];\n        local_48[0] = param_2[8];\n        local_88 = pcVar15;\n        local_50 = iVar2;\n        local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);\n        FUN_001c3360(local_80,&local_78,&local_80,1);\n        local_88 = (char *)*param_2;\n        local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);\n        FUN_001c3360(local_80,&local_58,&local_80,1);\n      }\n    }\n    local_98 = &local_78;\n    lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    if (lVar10 == 0) {\n      uVar14 = (uint)*(byte *)(*param_3 + 4);\n      uVar8 = uVar14;\n    }\n    else {\n      uVar14 = (uint)*(byte *)(*param_3 + 4);\n      uVar8 = (uint)*(byte *)(param_2 + 7);\n    }\n    uVar7 = FUN_002be580((int)uVar14 >> 4,*(byte *)((long)param_7 + 0x3c) & 1,param_4,param_5);\n    uVar4 = param_2[9];\n    cVar6 = FUN_002be950(param_2,uVar7,uVar8 & 0xf,0,param_7,local_98,&local_58,param_9);\n    if (cVar6 == '\0') {\n      uVar9 = *param_3;\n      if ((char)local_78 != '\0') {\n        if (uVar4 < *(ulong *)(uVar9 + 0x10)) {\n          param_2[9] = *(ulong *)(uVar9 + 0x10);\n        }\n        if ((ulong)param_2[8] < *(ulong *)(uVar9 + 8)) {\n          param_2[8] = *(ulong *)(uVar9 + 8);\n        }\n      }\n      if ((char)local_58 != '\0') {\n        if (((*(byte *)((long)param_2 + 0x3c) & 1) == 0) ||\n           ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)) {\n          *(byte *)((long)param_2 + 0x3c) =\n               *(byte *)((long)param_2 + 0x3c) & 0xfd |\n               ((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) * '\x02' | 1;\n        }\n      }\n      bVar16 = *(byte *)(uVar9 + 5) & 3;\n      if ((*(byte *)(uVar9 + 5) & 3) != 0) {\n        bVar1 = *(byte *)((long)param_2 + 0x39);\n        if (((bVar1 & 3) == 0) || (bVar16 < (bVar1 & 3))) {\n          *(byte *)((long)param_2 + 0x39) = bVar16 | bVar1 & 0xfc;\n        }\n      }\n    }\n    else {\n      bVar16 = *(byte *)(param_2 + 7);\n      uVar9 = param_2[8];\n      FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7,param_8);\n      if ((char)local_78 != '\0') {\n        if ((ulong)param_2[9] < uVar4) {\n          param_2[9] = uVar4;\n        }\n        if ((ulong)param_2[8] < uVar9) {\n          param_2[8] = uVar9;\n        }\n      }\n      if (((char)local_58 != '\0') &&\n         (((*(byte *)((long)param_2 + 0x3c) & 1) == 0 ||\n          ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)))) {\n        *(byte *)((long)param_2 + 0x3c) =\n             *(byte *)((long)param_2 + 0x3c) & 0xfd | (bVar16 >> 4 == 2) * '\x02' | 1;\n      }\n    }\n    bVar16 = *(byte *)((long)param_2 + 0x3a);\n    uVar9 = (ulong)bVar16;\n    if ((bVar16 & 7) == 0) {\n      bVar1 = *(byte *)(param_2[2] + 0x3c);\n      if ((((bVar1 & 1) != 0) && ((char)bVar16 < '\0')) &&\n         ((*(byte *)((long)param_2 + 0x3c) & 2) == 0)) {\n        *(byte *)(param_2[2] + 0x3c) = bVar1 | 2;\n      }\n    }\n    if ((char)local_78 != '\0') {\n      uVar9 = *(ulong *)(PTR_DAT_004ba7c8 + 0x10);\n      if (uVar9 == 0) {\nLAB_002c17cc:\n                    \n        FUN_001e9890("../../gold/parameters.h",0x5c,"options");\n      }\n      if (*(char *)(uVar9 + 0x6de1) != '\0') {\n        pcVar15 = "common of \'%s\' overriding smaller common";\n        uVar9 = *(ulong *)(*param_3 + 0x10);\n        if ((uVar9 > uVar4 || uVar4 == uVar9) &&\n           (pcVar15 = "common of \'%s\' overidden by larger common", uVar9 <= uVar4)) {\n          pcVar15 = "multiple common of \'%s\'";\n        }\n        uVar11 = gettext(pcVar15);\n        uVar9 = FUN_002be7a0(0,uVar11,param_2,0,param_7);\n      }\n    }\n  }" (if "if") (parenthesized_expression "((*(char *)(plVar3[1] + 0xd) == '\0') ||\n     (uVar9 = (**(code **)(*plVar3 + 0x158))(plVar3,param_2,param_3,param_7,param_8),\n     (char)uVar9 == '\0'))" (( "(") (binary_expression "(*(char *)(plVar3[1] + 0xd) == '\0') ||\n     (uVar9 = (**(code **)(*plVar3 + 0x158))(plVar3,param_2,param_3,param_7,param_8),\n     (char)uVar9 == '\0')" (parenthesized_expression "(*(char *)(plVar3[1] + 0xd) == '\0')" (( "(") (binary_expression "*(char *)(plVar3[1] + 0xd) == '\0'" (pointer_expression "*(char *)(plVar3[1] + 0xd)" (* "*") (cast_expression "(char *)(plVar3[1] + 0xd)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar3[1] + 0xd)" (( "(") (binary_expression "plVar3[1] + 0xd" (subscript_expression "plVar3[1]" (identifier "plVar3") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0xd")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(uVar9 = (**(code **)(*plVar3 + 0x158))(plVar3,param_2,param_3,param_7,param_8),\n     (char)uVar9 == '\0')" (( "(") (comma_expression "uVar9 = (**(code **)(*plVar3 + 0x158))(plVar3,param_2,param_3,param_7,param_8),\n     (char)uVar9 == '\0'" (assignment_expression "uVar9 = (**(code **)(*plVar3 + 0x158))(plVar3,param_2,param_3,param_7,param_8)" (identifier "uVar9") (= "=") (call_expression "(**(code **)(*plVar3 + 0x158))(plVar3,param_2,param_3,param_7,param_8)" (parenthesized_expression "(**(code **)(*plVar3 + 0x158))" (( "(") (pointer_expression "**(code **)(*plVar3 + 0x158)" (* "*") (pointer_expression "*(code **)(*plVar3 + 0x158)" (* "*") (cast_expression "(code **)(*plVar3 + 0x158)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar3 + 0x158)" (( "(") (binary_expression "*plVar3 + 0x158" (pointer_expression "*plVar3" (* "*") (identifier "plVar3")) (+ "+") (number_literal "0x158")) () ")"))))) () ")")) (argument_list "(plVar3,param_2,param_3,param_7,param_8)" (( "(") (identifier "plVar3") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "param_7") (, ",") (identifier "param_8") () ")")))) (, ",") (binary_expression "(char)uVar9 == '\0'" (cast_expression "(char)uVar9" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar9")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) (compound_statement "{\n    if ((*(byte *)((long)param_7 + 0x3c) & 1) == 0) {\n      if (((*(byte *)(*param_3 + 4) & 0xf) == 5) &&\n         ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))) {\n        if ((*(byte *)((long)param_2 + 0x3a) & 7) == 0) {\n          uVar11 = *(undefined8 *)(param_2[2] + 8);\n          FUN_002de930(&local_58,param_2);\n          puVar5 = local_58;\n          uVar13 = gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");\n                    \n          uVar9 = FUN_001e15a0(uVar13,puVar5,uVar11);\n          if (local_58 == local_48) {\n            return uVar9;\n          }\n          uVar9 = FUN_00338a50();\n          return uVar9;\n        }\n        goto LAB_002c1bd9;\n      }\n      *(byte *)((long)param_2 + 0x3a) = *(byte *)((long)param_2 + 0x3a) | 0x80;\n      lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    }\n    else {\n      if ((param_4 == 0) && (uVar8 = (*(byte *)((long)param_2 + 0x39) & 3) - 1, uVar8 < 2)) {\n        return (ulong)uVar8;\n      }\n      *(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 1;\n      lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    }\n    if ((lVar10 == 0) && ((*(byte *)((long)param_7 + 0x3c) & 1) == 0)) {\n      *(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 0x40;\n    }\n    if (((*(byte *)((long)param_2 + 0x3a) & 7) == 0) &&\n       (lVar10 = (**(code **)(*(long *)param_2[2] + 0x28))(), lVar10 != 0)) {\n      lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n      if (lVar10 == 0) goto LAB_002c17cc;\n      if (*(char *)(*(long *)(lVar10 + 0x9058) + 0xb1) != '\0') {\n        if (((((*(byte *)((long)param_2 + 0x3a) & 7) != 0) ||\n             ((*(byte *)((long)param_2 + 0x3b) & 0x20) != 0)) ||\n            (cVar6 = FUN_002dd6f0(*(undefined4 *)(param_2 + 3)), cVar6 != '\x01')) ||\n           ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))) {\n          FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7);\n          return param_8;\n        }\n        uVar9 = param_2[9];\n        uVar4 = param_2[8];\n        uVar12 = FUN_002bffb0(param_1,param_2,param_3,param_4,0,param_7,param_8);\n        if ((ulong)param_2[9] < uVar9) {\n          param_2[9] = uVar9;\n        }\n        if (uVar4 <= (ulong)param_2[8]) {\n          return uVar12;\n        }\n        param_2[8] = uVar4;\n        return uVar12;\n      }\n    }\n    else {\n      lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n      if (lVar10 == 0) goto LAB_002c17cc;\n    }\n    if (*(char *)(lVar10 + 0x16b1) != '\0') {\n      uVar9 = *param_3;\n      if ((((((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) || (*(byte *)(param_2 + 7) >> 4 == 2)) &&\n           (((param_6 != 0 & bVar16) != 0 &&\n            (((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0)))))) &&\n          (((*(byte *)(uVar9 + 4) & 0xf) != (*(byte *)(param_2 + 7) & 0xf) ||\n           (param_2[9] != *(long *)(uVar9 + 0x10))))) &&\n         ((pcVar15 = (char *)*param_2, *pcVar15 == '_' && (pcVar15[1] == 'Z')))) {\n        local_68 = *(undefined8 *)(uVar9 + 8);\n        local_78 = param_7;\n        local_70 = param_6;\n        if ((*(byte *)((long)param_2 + 0x3a) & 7) != 0) {\nLAB_002c1bd9:\n                    \n          FUN_001e9890("../../gold/symtab.h",0xa1,"object");\n        }\n        local_58 = (undefined8 *)param_2[2];\n        local_48[0] = param_2[8];\n        local_88 = pcVar15;\n        local_50 = iVar2;\n        local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);\n        FUN_001c3360(local_80,&local_78,&local_80,1);\n        local_88 = (char *)*param_2;\n        local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);\n        FUN_001c3360(local_80,&local_58,&local_80,1);\n      }\n    }\n    local_98 = &local_78;\n    lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    if (lVar10 == 0) {\n      uVar14 = (uint)*(byte *)(*param_3 + 4);\n      uVar8 = uVar14;\n    }\n    else {\n      uVar14 = (uint)*(byte *)(*param_3 + 4);\n      uVar8 = (uint)*(byte *)(param_2 + 7);\n    }\n    uVar7 = FUN_002be580((int)uVar14 >> 4,*(byte *)((long)param_7 + 0x3c) & 1,param_4,param_5);\n    uVar4 = param_2[9];\n    cVar6 = FUN_002be950(param_2,uVar7,uVar8 & 0xf,0,param_7,local_98,&local_58,param_9);\n    if (cVar6 == '\0') {\n      uVar9 = *param_3;\n      if ((char)local_78 != '\0') {\n        if (uVar4 < *(ulong *)(uVar9 + 0x10)) {\n          param_2[9] = *(ulong *)(uVar9 + 0x10);\n        }\n        if ((ulong)param_2[8] < *(ulong *)(uVar9 + 8)) {\n          param_2[8] = *(ulong *)(uVar9 + 8);\n        }\n      }\n      if ((char)local_58 != '\0') {\n        if (((*(byte *)((long)param_2 + 0x3c) & 1) == 0) ||\n           ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)) {\n          *(byte *)((long)param_2 + 0x3c) =\n               *(byte *)((long)param_2 + 0x3c) & 0xfd |\n               ((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) * '\x02' | 1;\n        }\n      }\n      bVar16 = *(byte *)(uVar9 + 5) & 3;\n      if ((*(byte *)(uVar9 + 5) & 3) != 0) {\n        bVar1 = *(byte *)((long)param_2 + 0x39);\n        if (((bVar1 & 3) == 0) || (bVar16 < (bVar1 & 3))) {\n          *(byte *)((long)param_2 + 0x39) = bVar16 | bVar1 & 0xfc;\n        }\n      }\n    }\n    else {\n      bVar16 = *(byte *)(param_2 + 7);\n      uVar9 = param_2[8];\n      FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7,param_8);\n      if ((char)local_78 != '\0') {\n        if ((ulong)param_2[9] < uVar4) {\n          param_2[9] = uVar4;\n        }\n        if ((ulong)param_2[8] < uVar9) {\n          param_2[8] = uVar9;\n        }\n      }\n      if (((char)local_58 != '\0') &&\n         (((*(byte *)((long)param_2 + 0x3c) & 1) == 0 ||\n          ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)))) {\n        *(byte *)((long)param_2 + 0x3c) =\n             *(byte *)((long)param_2 + 0x3c) & 0xfd | (bVar16 >> 4 == 2) * '\x02' | 1;\n      }\n    }\n    bVar16 = *(byte *)((long)param_2 + 0x3a);\n    uVar9 = (ulong)bVar16;\n    if ((bVar16 & 7) == 0) {\n      bVar1 = *(byte *)(param_2[2] + 0x3c);\n      if ((((bVar1 & 1) != 0) && ((char)bVar16 < '\0')) &&\n         ((*(byte *)((long)param_2 + 0x3c) & 2) == 0)) {\n        *(byte *)(param_2[2] + 0x3c) = bVar1 | 2;\n      }\n    }\n    if ((char)local_78 != '\0') {\n      uVar9 = *(ulong *)(PTR_DAT_004ba7c8 + 0x10);\n      if (uVar9 == 0) {\nLAB_002c17cc:\n                    \n        FUN_001e9890("../../gold/parameters.h",0x5c,"options");\n      }\n      if (*(char *)(uVar9 + 0x6de1) != '\0') {\n        pcVar15 = "common of \'%s\' overriding smaller common";\n        uVar9 = *(ulong *)(*param_3 + 0x10);\n        if ((uVar9 > uVar4 || uVar4 == uVar9) &&\n           (pcVar15 = "common of \'%s\' overidden by larger common", uVar9 <= uVar4)) {\n          pcVar15 = "multiple common of \'%s\'";\n        }\n        uVar11 = gettext(pcVar15);\n        uVar9 = FUN_002be7a0(0,uVar11,param_2,0,param_7);\n      }\n    }\n  }" ({ "{") (if_statement "if ((*(byte *)((long)param_7 + 0x3c) & 1) == 0) {\n      if (((*(byte *)(*param_3 + 4) & 0xf) == 5) &&\n         ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))) {\n        if ((*(byte *)((long)param_2 + 0x3a) & 7) == 0) {\n          uVar11 = *(undefined8 *)(param_2[2] + 8);\n          FUN_002de930(&local_58,param_2);\n          puVar5 = local_58;\n          uVar13 = gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");\n                    \n          uVar9 = FUN_001e15a0(uVar13,puVar5,uVar11);\n          if (local_58 == local_48) {\n            return uVar9;\n          }\n          uVar9 = FUN_00338a50();\n          return uVar9;\n        }\n        goto LAB_002c1bd9;\n      }\n      *(byte *)((long)param_2 + 0x3a) = *(byte *)((long)param_2 + 0x3a) | 0x80;\n      lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    }\n    else {\n      if ((param_4 == 0) && (uVar8 = (*(byte *)((long)param_2 + 0x39) & 3) - 1, uVar8 < 2)) {\n        return (ulong)uVar8;\n      }\n      *(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 1;\n      lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    }" (if "if") (parenthesized_expression "((*(byte *)((long)param_7 + 0x3c) & 1) == 0)" (( "(") (binary_expression "(*(byte *)((long)param_7 + 0x3c) & 1) == 0" (parenthesized_expression "(*(byte *)((long)param_7 + 0x3c) & 1)" (( "(") (binary_expression "*(byte *)((long)param_7 + 0x3c) & 1" (pointer_expression "*(byte *)((long)param_7 + 0x3c)" (* "*") (cast_expression "(byte *)((long)param_7 + 0x3c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_7 + 0x3c)" (( "(") (binary_expression "(long)param_7 + 0x3c" (cast_expression "(long)param_7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_7")) (+ "+") (number_literal "0x3c")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (((*(byte *)(*param_3 + 4) & 0xf) == 5) &&\n         ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))) {\n        if ((*(byte *)((long)param_2 + 0x3a) & 7) == 0) {\n          uVar11 = *(undefined8 *)(param_2[2] + 8);\n          FUN_002de930(&local_58,param_2);\n          puVar5 = local_58;\n          uVar13 = gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");\n                    \n          uVar9 = FUN_001e15a0(uVar13,puVar5,uVar11);\n          if (local_58 == local_48) {\n            return uVar9;\n          }\n          uVar9 = FUN_00338a50();\n          return uVar9;\n        }\n        goto LAB_002c1bd9;\n      }\n      *(byte *)((long)param_2 + 0x3a) = *(byte *)((long)param_2 + 0x3a) | 0x80;\n      lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    }" ({ "{") (if_statement "if (((*(byte *)(*param_3 + 4) & 0xf) == 5) &&\n         ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))) {\n        if ((*(byte *)((long)param_2 + 0x3a) & 7) == 0) {\n          uVar11 = *(undefined8 *)(param_2[2] + 8);\n          FUN_002de930(&local_58,param_2);\n          puVar5 = local_58;\n          uVar13 = gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");\n                    \n          uVar9 = FUN_001e15a0(uVar13,puVar5,uVar11);\n          if (local_58 == local_48) {\n            return uVar9;\n          }\n          uVar9 = FUN_00338a50();\n          return uVar9;\n        }\n        goto LAB_002c1bd9;\n      }" (if "if") (parenthesized_expression "(((*(byte *)(*param_3 + 4) & 0xf) == 5) &&\n         ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0'))))" (( "(") (binary_expression "((*(byte *)(*param_3 + 4) & 0xf) == 5) &&\n         ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))" (parenthesized_expression "((*(byte *)(*param_3 + 4) & 0xf) == 5)" (( "(") (binary_expression "(*(byte *)(*param_3 + 4) & 0xf) == 5" (parenthesized_expression "(*(byte *)(*param_3 + 4) & 0xf)" (( "(") (binary_expression "*(byte *)(*param_3 + 4) & 0xf" (pointer_expression "*(byte *)(*param_3 + 4)" (* "*") (cast_expression "(byte *)(*param_3 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_3 + 4)" (( "(") (binary_expression "*param_3 + 4" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "0xf")) () ")")) (== "==") (number_literal "5")) () ")")) (&& "&&") (parenthesized_expression "((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))" (( "(") (parenthesized_expression "(param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0'))" (( "(") (binary_expression "param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')" (binary_expression "param_5 != '\0'" (identifier "param_5") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (|| "||") (parenthesized_expression "(cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')" (( "(") (comma_expression "cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0'" (assignment_expression "cVar6 = FUN_002dd6f0(param_4)" (identifier "cVar6") (= "=") (call_expression "FUN_002dd6f0(param_4)" (identifier "FUN_002dd6f0") (argument_list "(param_4)" (( "(") (identifier "param_4") () ")")))) (, ",") (binary_expression "cVar6 == '\0'" (identifier "cVar6") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n        if ((*(byte *)((long)param_2 + 0x3a) & 7) == 0) {\n          uVar11 = *(undefined8 *)(param_2[2] + 8);\n          FUN_002de930(&local_58,param_2);\n          puVar5 = local_58;\n          uVar13 = gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");\n                    \n          uVar9 = FUN_001e15a0(uVar13,puVar5,uVar11);\n          if (local_58 == local_48) {\n            return uVar9;\n          }\n          uVar9 = FUN_00338a50();\n          return uVar9;\n        }\n        goto LAB_002c1bd9;\n      }" ({ "{") (if_statement "if ((*(byte *)((long)param_2 + 0x3a) & 7) == 0) {\n          uVar11 = *(undefined8 *)(param_2[2] + 8);\n          FUN_002de930(&local_58,param_2);\n          puVar5 = local_58;\n          uVar13 = gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");\n                    \n          uVar9 = FUN_001e15a0(uVar13,puVar5,uVar11);\n          if (local_58 == local_48) {\n            return uVar9;\n          }\n          uVar9 = FUN_00338a50();\n          return uVar9;\n        }" (if "if") (parenthesized_expression "((*(byte *)((long)param_2 + 0x3a) & 7) == 0)" (( "(") (binary_expression "(*(byte *)((long)param_2 + 0x3a) & 7) == 0" (parenthesized_expression "(*(byte *)((long)param_2 + 0x3a) & 7)" (( "(") (binary_expression "*(byte *)((long)param_2 + 0x3a) & 7" (pointer_expression "*(byte *)((long)param_2 + 0x3a)" (* "*") (cast_expression "(byte *)((long)param_2 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_2 + 0x3a)" (( "(") (binary_expression "(long)param_2 + 0x3a" (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")) (+ "+") (number_literal "0x3a")) () ")")))) (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          uVar11 = *(undefined8 *)(param_2[2] + 8);\n          FUN_002de930(&local_58,param_2);\n          puVar5 = local_58;\n          uVar13 = gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");\n                    \n          uVar9 = FUN_001e15a0(uVar13,puVar5,uVar11);\n          if (local_58 == local_48) {\n            return uVar9;\n          }\n          uVar9 = FUN_00338a50();\n          return uVar9;\n        }" ({ "{") (expression_statement "uVar11 = *(undefined8 *)(param_2[2] + 8);" (assignment_expression "uVar11 = *(undefined8 *)(param_2[2] + 8)" (identifier "uVar11") (= "=") (pointer_expression "*(undefined8 *)(param_2[2] + 8)" (* "*") (cast_expression "(undefined8 *)(param_2[2] + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2[2] + 8)" (( "(") (binary_expression "param_2[2] + 8" (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "FUN_002de930(&local_58,param_2);" (call_expression "FUN_002de930(&local_58,param_2)" (identifier "FUN_002de930") (argument_list "(&local_58,param_2)" (( "(") (pointer_expression "&local_58" (& "&") (identifier "local_58")) (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "puVar5 = local_58;" (assignment_expression "puVar5 = local_58" (identifier "puVar5") (= "=") (identifier "local_58")) (; ";")) (expression_statement "uVar13 = gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");" (assignment_expression "uVar13 = gettext("STT_COMMON symbol \'%s\' in %s is not in a common section")" (identifier "uVar13") (= "=") (call_expression "gettext("STT_COMMON symbol \'%s\' in %s is not in a common section")" (identifier "gettext") (argument_list "("STT_COMMON symbol \'%s\' in %s is not in a common section")" (( "(") (string_literal ""STT_COMMON symbol \'%s\' in %s is not in a common section"" (" """) (string_content "STT_COMMON symbol ") (escape_sequence "\'") (string_content "%s") (escape_sequence "\'") (string_content " in %s is not in a common section") (" """)) () ")")))) (; ";")) (expression_statement "uVar9 = FUN_001e15a0(uVar13,puVar5,uVar11);" (assignment_expression "uVar9 = FUN_001e15a0(uVar13,puVar5,uVar11)" (identifier "uVar9") (= "=") (call_expression "FUN_001e15a0(uVar13,puVar5,uVar11)" (identifier "FUN_001e15a0") (argument_list "(uVar13,puVar5,uVar11)" (( "(") (identifier "uVar13") (, ",") (identifier "puVar5") (, ",") (identifier "uVar11") () ")")))) (; ";")) (if_statement "if (local_58 == local_48) {\n            return uVar9;\n          }" (if "if") (parenthesized_expression "(local_58 == local_48)" (( "(") (binary_expression "local_58 == local_48" (identifier "local_58") (== "==") (identifier "local_48")) () ")")) (compound_statement "{\n            return uVar9;\n          }" ({ "{") (return_statement "return uVar9;" (return "return") (identifier "uVar9") (; ";")) (} "}"))) (expression_statement "uVar9 = FUN_00338a50();" (assignment_expression "uVar9 = FUN_00338a50()" (identifier "uVar9") (= "=") (call_expression "FUN_00338a50()" (identifier "FUN_00338a50") (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return uVar9;" (return "return") (identifier "uVar9") (; ";")) (} "}"))) (goto_statement "goto LAB_002c1bd9;" (goto "goto") (statement_identifier "LAB_002c1bd9") (; ";")) (} "}"))) (expression_statement "*(byte *)((long)param_2 + 0x3a) = *(byte *)((long)param_2 + 0x3a) | 0x80;" (assignment_expression "*(byte *)((long)param_2 + 0x3a) = *(byte *)((long)param_2 + 0x3a) | 0x80" (pointer_expression "*(byte *)((long)param_2 + 0x3a)" (* "*") (cast_expression "(byte *)((long)param_2 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_2 + 0x3a)" (( "(") (binary_expression "(long)param_2 + 0x3a" (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")) (+ "+") (number_literal "0x3a")) () ")")))) (= "=") (binary_expression "*(byte *)((long)param_2 + 0x3a) | 0x80" (pointer_expression "*(byte *)((long)param_2 + 0x3a)" (* "*") (cast_expression "(byte *)((long)param_2 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_2 + 0x3a)" (( "(") (binary_expression "(long)param_2 + 0x3a" (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")) (+ "+") (number_literal "0x3a")) () ")")))) (| "|") (number_literal "0x80"))) (; ";")) (expression_statement "lVar10 = (**(code **)(*param_7 + 0x28))(param_7);" (assignment_expression "lVar10 = (**(code **)(*param_7 + 0x28))(param_7)" (identifier "lVar10") (= "=") (call_expression "(**(code **)(*param_7 + 0x28))(param_7)" (parenthesized_expression "(**(code **)(*param_7 + 0x28))" (( "(") (pointer_expression "**(code **)(*param_7 + 0x28)" (* "*") (pointer_expression "*(code **)(*param_7 + 0x28)" (* "*") (cast_expression "(code **)(*param_7 + 0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_7 + 0x28)" (( "(") (binary_expression "*param_7 + 0x28" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (argument_list "(param_7)" (( "(") (identifier "param_7") () ")")))) (; ";")) (} "}")) (else_clause "else {\n      if ((param_4 == 0) && (uVar8 = (*(byte *)((long)param_2 + 0x39) & 3) - 1, uVar8 < 2)) {\n        return (ulong)uVar8;\n      }\n      *(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 1;\n      lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    }" (else "else") (compound_statement "{\n      if ((param_4 == 0) && (uVar8 = (*(byte *)((long)param_2 + 0x39) & 3) - 1, uVar8 < 2)) {\n        return (ulong)uVar8;\n      }\n      *(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 1;\n      lVar10 = (**(code **)(*param_7 + 0x28))(param_7);\n    }" ({ "{") (if_statement "if ((param_4 == 0) && (uVar8 = (*(byte *)((long)param_2 + 0x39) & 3) - 1, uVar8 < 2)) {\n        return (ulong)uVar8;\n      }" (if "if") (parenthesized_expression "((param_4 == 0) && (uVar8 = (*(byte *)((long)param_2 + 0x39) & 3) - 1, uVar8 < 2))" (( "(") (binary_expression "(param_4 == 0) && (uVar8 = (*(byte *)((long)param_2 + 0x39) & 3) - 1, uVar8 < 2)" (parenthesized_expression "(param_4 == 0)" (( "(") (binary_expression "param_4 == 0" (identifier "param_4") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(uVar8 = (*(byte *)((long)param_2 + 0x39) & 3) - 1, uVar8 < 2)" (( "(") (comma_expression "uVar8 = (*(byte *)((long)param_2 + 0x39) & 3) - 1, uVar8 < 2" (assignment_expression "uVar8 = (*(byte *)((long)param_2 + 0x39) & 3) - 1" (identifier "uVar8") (= "=") (binary_expression "(*(byte *)((long)param_2 + 0x39) & 3) - 1" (parenthesized_expression "(*(byte *)((long)param_2 + 0x39) & 3)" (( "(") (binary_expression "*(byte *)((long)param_2 + 0x39) & 3" (pointer_expression "*(byte *)((long)param_2 + 0x39)" (* "*") (cast_expression "(byte *)((long)param_2 + 0x39)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_2 + 0x39)" (( "(") (binary_expression "(long)param_2 + 0x39" (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")) (+ "+") (number_literal "0x39")) () ")")))) (& "&") (number_literal "3")) () ")")) (- "-") (number_literal "1"))) (, ",") (binary_expression "uVar8 < 2" (identifier "uVar8") (< "<") (number_literal "2"))) () ")"))) () ")")) (compound_statement "{\n        return (ulong)uVar8;\n      }" ({ "{") (return_statement "return (ulong)uVar8;" (return "return") (cast_expression "(ulong)uVar8" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar8")) (; ";")) (} "}"))) (expression_statement "*(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 1;" (assignment_expression "*(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 1" (pointer_expression "*(byte *)((long)param_2 + 0x3b)" (* "*") (cast_expression "(byte *)((long)param_2 + 0x3b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_2 + 0x3b)" (( "(") (binary_expression "(long)param_2 + 0x3b" (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")) (+ "+") (number_literal "0x3b")) () ")")))) (= "=") (binary_expression "*(byte *)((long)param_2 + 0x3b) | 1" (pointer_expression "*(byte *)((long)param_2 + 0x3b)" (* "*") (cast_expression "(byte *)((long)param_2 + 0x3b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_2 + 0x3b)" (( "(") (binary_expression "(long)param_2 + 0x3b" (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")) (+ "+") (number_literal "0x3b")) () ")")))) (| "|") (number_literal "1"))) (; ";")) (expression_statement "lVar10 = (**(code **)(*param_7 + 0x28))(param_7);" (assignment_expression "lVar10 = (**(code **)(*param_7 + 0x28))(param_7)" (identifier "lVar10") (= "=") (call_expression "(**(code **)(*param_7 + 0x28))(param_7)" (parenthesized_expression "(**(code **)(*param_7 + 0x28))" (( "(") (pointer_expression "**(code **)(*param_7 + 0x28)" (* "*") (pointer_expression "*(code **)(*param_7 + 0x28)" (* "*") (cast_expression "(code **)(*param_7 + 0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_7 + 0x28)" (( "(") (binary_expression "*param_7 + 0x28" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (argument_list "(param_7)" (( "(") (identifier "param_7") () ")")))) (; ";")) (} "}")))) (if_statement "if ((lVar10 == 0) && ((*(byte *)((long)param_7 + 0x3c) & 1) == 0)) {\n      *(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 0x40;\n    }" (if "if") (parenthesized_expression "((lVar10 == 0) && ((*(byte *)((long)param_7 + 0x3c) & 1) == 0))" (( "(") (binary_expression "(lVar10 == 0) && ((*(byte *)((long)param_7 + 0x3c) & 1) == 0)" (parenthesized_expression "(lVar10 == 0)" (( "(") (binary_expression "lVar10 == 0" (identifier "lVar10") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)((long)param_7 + 0x3c) & 1) == 0)" (( "(") (binary_expression "(*(byte *)((long)param_7 + 0x3c) & 1) == 0" (parenthesized_expression "(*(byte *)((long)param_7 + 0x3c) & 1)" (( "(") (binary_expression "*(byte *)((long)param_7 + 0x3c) & 1" (pointer_expression "*(byte *)((long)param_7 + 0x3c)" (* "*") (cast_expression "(byte *)((long)param_7 + 0x3c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_7 + 0x3c)" (( "(") (binary_expression "(long)param_7 + 0x3c" (cast_expression "(long)param_7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_7")) (+ "+") (number_literal "0x3c")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      *(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 0x40;\n    }" ({ "{") (expression_statement "*(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 0x40;" (assignment_expression "*(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 0x40" (pointer_expression "*(byte *)((long)param_2 + 0x3b)" (* "*") (cast_expression "(byte *)((long)param_2 + 0x3b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_2 + 0x3b)" (( "(") (binary_expression "(long)param_2 + 0x3b" (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")) (+ "+") (number_literal "0x3b")) () ")")))) (= "=") (binary_expression "*(byte *)((long)param_2 + 0x3b) | 0x40" (pointer_expression "*(byte *)((long)param_2 + 0x3b)" (* "*") (cast_expression "(byte *)((long)param_2 + 0x3b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_2 + 0x3b)" (( "(") (binary_expression "(long)param_2 + 0x3b" (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")) (+ "+") (number_literal "0x3b")) () ")")))) (| "|") (number_literal "0x40"))) (; ";")) (} "}"))) (if_statement "if (((*(byte *)((long)param_2 + 0x3a) & 7) == 0) &&\n       (lVar10 = (**(code **)(*(long *)param_2[2] + 0x28))(), lVar10 != 0)) {\n      lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n      if (lVar10 == 0) goto LAB_002c17cc;\n      if (*(char *)(*(long *)(lVar10 + 0x9058) + 0xb1) != '\0') {\n        if (((((*(byte *)((long)param_2 + 0x3a) & 7) != 0) ||\n             ((*(byte *)((long)param_2 + 0x3b) & 0x20) != 0)) ||\n            (cVar6 = FUN_002dd6f0(*(undefined4 *)(param_2 + 3)), cVar6 != '\x01')) ||\n           ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))) {\n          FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7);\n          return param_8;\n        }\n        uVar9 = param_2[9];\n        uVar4 = param_2[8];\n        uVar12 = FUN_002bffb0(param_1,param_2,param_3,param_4,0,param_7,param_8);\n        if ((ulong)param_2[9] < uVar9) {\n          param_2[9] = uVar9;\n        }\n        if (uVar4 <= (ulong)param_2[8]) {\n          return uVar12;\n        }\n        param_2[8] = uVar4;\n        return uVar12;\n      }\n    }\n    else {\n      lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n      if (lVar10 == 0) goto LAB_002c17cc;\n    }" (if "if") (parenthesized_expression "(((*(byte *)((long)param_2 + 0x3a) & 7) == 0) &&\n       (lVar10 = (**(code **)(*(long *)param_2[2] + 0x28))(), lVar10 != 0))" (( "(") (binary_expression "((*(byte *)((long)param_2 + 0x3a) & 7) == 0) &&\n       (lVar10 = (**(code **)(*(long *)param_2[2] + 0x28))(), lVar10 != 0)" (parenthesized_expression "((*(byte *)((long)param_2 + 0x3a) & 7) == 0)" (( "(") (binary_expression "(*(byte *)((long)param_2 + 0x3a) & 7) == 0" (parenthesized_expression "(*(byte *)((long)param_2 + 0x3a) & 7)" (( "(") (binary_expression "*(byte *)((long)param_2 + 0x3a) & 7" (pointer_expression "*(byte *)((long)param_2 + 0x3a)" (* "*") (cast_expression "(byte *)((long)param_2 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_2 + 0x3a)" (( "(") (binary_expression "(long)param_2 + 0x3a" (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")) (+ "+") (number_literal "0x3a")) () ")")))) (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(lVar10 = (**(code **)(*(long *)param_2[2] + 0x28))(), lVar10 != 0)" (( "(") (comma_expression "lVar10 = (**(code **)(*(long *)param_2[2] + 0x28))(), lVar10 != 0" (assignment_expression "lVar10 = (**(code **)(*(long *)param_2[2] + 0x28))()" (identifier "lVar10") (= "=") (call_expression "(**(code **)(*(long *)param_2[2] + 0x28))()" (parenthesized_expression "(**(code **)(*(long *)param_2[2] + 0x28))" (( "(") (pointer_expression "**(code **)(*(long *)param_2[2] + 0x28)" (* "*") (pointer_expression "*(code **)(*(long *)param_2[2] + 0x28)" (* "*") (cast_expression "(code **)(*(long *)param_2[2] + 0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)param_2[2] + 0x28)" (( "(") (binary_expression "*(long *)param_2[2] + 0x28" (pointer_expression "*(long *)param_2[2]" (* "*") (cast_expression "(long *)param_2[2]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")))) (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "lVar10 != 0" (identifier "lVar10") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n      lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n      if (lVar10 == 0) goto LAB_002c17cc;\n      if (*(char *)(*(long *)(lVar10 + 0x9058) + 0xb1) != '\0') {\n        if (((((*(byte *)((long)param_2 + 0x3a) & 7) != 0) ||\n             ((*(byte *)((long)param_2 + 0x3b) & 0x20) != 0)) ||\n            (cVar6 = FUN_002dd6f0(*(undefined4 *)(param_2 + 3)), cVar6 != '\x01')) ||\n           ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))) {\n          FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7);\n          return param_8;\n        }\n        uVar9 = param_2[9];\n        uVar4 = param_2[8];\n        uVar12 = FUN_002bffb0(param_1,param_2,param_3,param_4,0,param_7,param_8);\n        if ((ulong)param_2[9] < uVar9) {\n          param_2[9] = uVar9;\n        }\n        if (uVar4 <= (ulong)param_2[8]) {\n          return uVar12;\n        }\n        param_2[8] = uVar4;\n        return uVar12;\n      }\n    }" ({ "{") (expression_statement "lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10);" (assignment_expression "lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10)" (identifier "lVar10") (= "=") (pointer_expression "*(long *)(PTR_DAT_004ba7c8 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_004ba7c8 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_004ba7c8 + 0x10)" (( "(") (binary_expression "PTR_DAT_004ba7c8 + 0x10" (identifier "PTR_DAT_004ba7c8") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if (lVar10 == 0) goto LAB_002c17cc;" (if "if") (parenthesized_expression "(lVar10 == 0)" (( "(") (binary_expression "lVar10 == 0" (identifier "lVar10") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_002c17cc;" (goto "goto") (statement_identifier "LAB_002c17cc") (; ";"))) (if_statement "if (*(char *)(*(long *)(lVar10 + 0x9058) + 0xb1) != '\0') {\n        if (((((*(byte *)((long)param_2 + 0x3a) & 7) != 0) ||\n             ((*(byte *)((long)param_2 + 0x3b) & 0x20) != 0)) ||\n            (cVar6 = FUN_002dd6f0(*(undefined4 *)(param_2 + 3)), cVar6 != '\x01')) ||\n           ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))) {\n          FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7);\n          return param_8;\n        }\n        uVar9 = param_2[9];\n        uVar4 = param_2[8];\n        uVar12 = FUN_002bffb0(param_1,param_2,param_3,param_4,0,param_7,param_8);\n        if ((ulong)param_2[9] < uVar9) {\n          param_2[9] = uVar9;\n        }\n        if (uVar4 <= (ulong)param_2[8]) {\n          return uVar12;\n        }\n        param_2[8] = uVar4;\n        return uVar12;\n      }" (if "if") (parenthesized_expression "(*(char *)(*(long *)(lVar10 + 0x9058) + 0xb1) != '\0')" (( "(") (binary_expression "*(char *)(*(long *)(lVar10 + 0x9058) + 0xb1) != '\0'" (pointer_expression "*(char *)(*(long *)(lVar10 + 0x9058) + 0xb1)" (* "*") (cast_expression "(char *)(*(long *)(lVar10 + 0x9058) + 0xb1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(lVar10 + 0x9058) + 0xb1)" (( "(") (binary_expression "*(long *)(lVar10 + 0x9058) + 0xb1" (pointer_expression "*(long *)(lVar10 + 0x9058)" (* "*") (cast_expression "(long *)(lVar10 + 0x9058)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + 0x9058)" (( "(") (binary_expression "lVar10 + 0x9058" (identifier "lVar10") (+ "+") (number_literal "0x9058")) () ")")))) (+ "+") (number_literal "0xb1")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        if (((((*(byte *)((long)param_2 + 0x3a) & 7) != 0) ||\n             ((*(byte *)((long)param_2 + 0x3b) & 0x20) != 0)) ||\n            (cVar6 = FUN_002dd6f0(*(undefined4 *)(param_2 + 3)), cVar6 != '\x01')) ||\n           ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))) {\n          FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7);\n          return param_8;\n        }\n        uVar9 = param_2[9];\n        uVar4 = param_2[8];\n        uVar12 = FUN_002bffb0(param_1,param_2,param_3,param_4,0,param_7,param_8);\n        if ((ulong)param_2[9] < uVar9) {\n          param_2[9] = uVar9;\n        }\n        if (uVar4 <= (ulong)param_2[8]) {\n          return uVar12;\n        }\n        param_2[8] = uVar4;\n        return uVar12;\n      }" ({ "{") (if_statement "if (((((*(byte *)((long)param_2 + 0x3a) & 7) != 0) ||\n             ((*(byte *)((long)param_2 + 0x3b) & 0x20) != 0)) ||\n            (cVar6 = FUN_002dd6f0(*(undefined4 *)(param_2 + 3)), cVar6 != '\x01')) ||\n           ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))) {\n          FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7);\n          return param_8;\n        }" (if "if") (parenthesized_expression "(((((*(byte *)((long)param_2 + 0x3a) & 7) != 0) ||\n             ((*(byte *)((long)param_2 + 0x3b) & 0x20) != 0)) ||\n            (cVar6 = FUN_002dd6f0(*(undefined4 *)(param_2 + 3)), cVar6 != '\x01')) ||\n           ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0'))))" (( "(") (binary_expression "((((*(byte *)((long)param_2 + 0x3a) & 7) != 0) ||\n             ((*(byte *)((long)param_2 + 0x3b) & 0x20) != 0)) ||\n            (cVar6 = FUN_002dd6f0(*(undefined4 *)(param_2 + 3)), cVar6 != '\x01')) ||\n           ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))" (parenthesized_expression "((((*(byte *)((long)param_2 + 0x3a) & 7) != 0) ||\n             ((*(byte *)((long)param_2 + 0x3b) & 0x20) != 0)) ||\n            (cVar6 = FUN_002dd6f0(*(undefined4 *)(param_2 + 3)), cVar6 != '\x01'))" (( "(") (binary_expression "(((*(byte *)((long)param_2 + 0x3a) & 7) != 0) ||\n             ((*(byte *)((long)param_2 + 0x3b) & 0x20) != 0)) ||\n            (cVar6 = FUN_002dd6f0(*(undefined4 *)(param_2 + 3)), cVar6 != '\x01')" (parenthesized_expression "(((*(byte *)((long)param_2 + 0x3a) & 7) != 0) ||\n             ((*(byte *)((long)param_2 + 0x3b) & 0x20) != 0))" (( "(") (binary_expression "((*(byte *)((long)param_2 + 0x3a) & 7) != 0) ||\n             ((*(byte *)((long)param_2 + 0x3b) & 0x20) != 0)" (parenthesized_expression "((*(byte *)((long)param_2 + 0x3a) & 7) != 0)" (( "(") (binary_expression "(*(byte *)((long)param_2 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)((long)param_2 + 0x3a) & 7)" (( "(") (binary_expression "*(byte *)((long)param_2 + 0x3a) & 7" (pointer_expression "*(byte *)((long)param_2 + 0x3a)" (* "*") (cast_expression "(byte *)((long)param_2 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_2 + 0x3a)" (( "(") (binary_expression "(long)param_2 + 0x3a" (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")) (+ "+") (number_literal "0x3a")) () ")")))) (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((*(byte *)((long)param_2 + 0x3b) & 0x20) != 0)" (( "(") (binary_expression "(*(byte *)((long)param_2 + 0x3b) & 0x20) != 0" (parenthesized_expression "(*(byte *)((long)param_2 + 0x3b) & 0x20)" (( "(") (binary_expression "*(byte *)((long)param_2 + 0x3b) & 0x20" (pointer_expression "*(byte *)((long)param_2 + 0x3b)" (* "*") (cast_expression "(byte *)((long)param_2 + 0x3b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_2 + 0x3b)" (( "(") (binary_expression "(long)param_2 + 0x3b" (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")) (+ "+") (number_literal "0x3b")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(cVar6 = FUN_002dd6f0(*(undefined4 *)(param_2 + 3)), cVar6 != '\x01')" (( "(") (comma_expression "cVar6 = FUN_002dd6f0(*(undefined4 *)(param_2 + 3)), cVar6 != '\x01'" (assignment_expression "cVar6 = FUN_002dd6f0(*(undefined4 *)(param_2 + 3))" (identifier "cVar6") (= "=") (call_expression "FUN_002dd6f0(*(undefined4 *)(param_2 + 3))" (identifier "FUN_002dd6f0") (argument_list "(*(undefined4 *)(param_2 + 3))" (( "(") (pointer_expression "*(undefined4 *)(param_2 + 3)" (* "*") (cast_expression "(undefined4 *)(param_2 + 3)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 3)" (( "(") (binary_expression "param_2 + 3" (identifier "param_2") (+ "+") (number_literal "3")) () ")")))) () ")")))) (, ",") (binary_expression "cVar6 != '\x01'" (identifier "cVar6") (!= "!=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'")))) () ")"))) () ")")) (|| "||") (parenthesized_expression "((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))" (( "(") (parenthesized_expression "(param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0'))" (( "(") (binary_expression "param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')" (binary_expression "param_5 != '\0'" (identifier "param_5") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (|| "||") (parenthesized_expression "(cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')" (( "(") (comma_expression "cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0'" (assignment_expression "cVar6 = FUN_002dd6f0(param_4)" (identifier "cVar6") (= "=") (call_expression "FUN_002dd6f0(param_4)" (identifier "FUN_002dd6f0") (argument_list "(param_4)" (( "(") (identifier "param_4") () ")")))) (, ",") (binary_expression "cVar6 == '\0'" (identifier "cVar6") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n          FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7);\n          return param_8;\n        }" ({ "{") (expression_statement "FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7);" (call_expression "FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7)" (identifier "FUN_002bffb0") (argument_list "(param_1,param_2,param_3,param_4,param_5,param_7)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "param_4") (, ",") (identifier "param_5") (, ",") (identifier "param_7") () ")"))) (; ";")) (return_statement "return param_8;" (return "return") (identifier "param_8") (; ";")) (} "}"))) (expression_statement "uVar9 = param_2[9];" (assignment_expression "uVar9 = param_2[9]" (identifier "uVar9") (= "=") (subscript_expression "param_2[9]" (identifier "param_2") ([ "[") (number_literal "9") (] "]"))) (; ";")) (expression_statement "uVar4 = param_2[8];" (assignment_expression "uVar4 = param_2[8]" (identifier "uVar4") (= "=") (subscript_expression "param_2[8]" (identifier "param_2") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "uVar12 = FUN_002bffb0(param_1,param_2,param_3,param_4,0,param_7,param_8);" (assignment_expression "uVar12 = FUN_002bffb0(param_1,param_2,param_3,param_4,0,param_7,param_8)" (identifier "uVar12") (= "=") (call_expression "FUN_002bffb0(param_1,param_2,param_3,param_4,0,param_7,param_8)" (identifier "FUN_002bffb0") (argument_list "(param_1,param_2,param_3,param_4,0,param_7,param_8)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "param_4") (, ",") (number_literal "0") (, ",") (identifier "param_7") (, ",") (identifier "param_8") () ")")))) (; ";")) (if_statement "if ((ulong)param_2[9] < uVar9) {\n          param_2[9] = uVar9;\n        }" (if "if") (parenthesized_expression "((ulong)param_2[9] < uVar9)" (( "(") (binary_expression "(ulong)param_2[9] < uVar9" (cast_expression "(ulong)param_2[9]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "param_2[9]" (identifier "param_2") ([ "[") (number_literal "9") (] "]"))) (< "<") (identifier "uVar9")) () ")")) (compound_statement "{\n          param_2[9] = uVar9;\n        }" ({ "{") (expression_statement "param_2[9] = uVar9;" (assignment_expression "param_2[9] = uVar9" (subscript_expression "param_2[9]" (identifier "param_2") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "uVar9")) (; ";")) (} "}"))) (if_statement "if (uVar4 <= (ulong)param_2[8]) {\n          return uVar12;\n        }" (if "if") (parenthesized_expression "(uVar4 <= (ulong)param_2[8])" (( "(") (binary_expression "uVar4 <= (ulong)param_2[8]" (identifier "uVar4") (<= "<=") (cast_expression "(ulong)param_2[8]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "param_2[8]" (identifier "param_2") ([ "[") (number_literal "8") (] "]")))) () ")")) (compound_statement "{\n          return uVar12;\n        }" ({ "{") (return_statement "return uVar12;" (return "return") (identifier "uVar12") (; ";")) (} "}"))) (expression_statement "param_2[8] = uVar4;" (assignment_expression "param_2[8] = uVar4" (subscript_expression "param_2[8]" (identifier "param_2") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (return_statement "return uVar12;" (return "return") (identifier "uVar12") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n      if (lVar10 == 0) goto LAB_002c17cc;\n    }" (else "else") (compound_statement "{\n      lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n      if (lVar10 == 0) goto LAB_002c17cc;\n    }" ({ "{") (expression_statement "lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10);" (assignment_expression "lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10)" (identifier "lVar10") (= "=") (pointer_expression "*(long *)(PTR_DAT_004ba7c8 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_004ba7c8 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_004ba7c8 + 0x10)" (( "(") (binary_expression "PTR_DAT_004ba7c8 + 0x10" (identifier "PTR_DAT_004ba7c8") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if (lVar10 == 0) goto LAB_002c17cc;" (if "if") (parenthesized_expression "(lVar10 == 0)" (( "(") (binary_expression "lVar10 == 0" (identifier "lVar10") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_002c17cc;" (goto "goto") (statement_identifier "LAB_002c17cc") (; ";"))) (} "}")))) (if_statement "if (*(char *)(lVar10 + 0x16b1) != '\0') {\n      uVar9 = *param_3;\n      if ((((((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) || (*(byte *)(param_2 + 7) >> 4 == 2)) &&\n           (((param_6 != 0 & bVar16) != 0 &&\n            (((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0)))))) &&\n          (((*(byte *)(uVar9 + 4) & 0xf) != (*(byte *)(param_2 + 7) & 0xf) ||\n           (param_2[9] != *(long *)(uVar9 + 0x10))))) &&\n         ((pcVar15 = (char *)*param_2, *pcVar15 == '_' && (pcVar15[1] == 'Z')))) {\n        local_68 = *(undefined8 *)(uVar9 + 8);\n        local_78 = param_7;\n        local_70 = param_6;\n        if ((*(byte *)((long)param_2 + 0x3a) & 7) != 0) {\nLAB_002c1bd9:\n                    \n          FUN_001e9890("../../gold/symtab.h",0xa1,"object");\n        }\n        local_58 = (undefined8 *)param_2[2];\n        local_48[0] = param_2[8];\n        local_88 = pcVar15;\n        local_50 = iVar2;\n        local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);\n        FUN_001c3360(local_80,&local_78,&local_80,1);\n        local_88 = (char *)*param_2;\n        local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);\n        FUN_001c3360(local_80,&local_58,&local_80,1);\n      }\n    }" (if "if") (parenthesized_expression "(*(char *)(lVar10 + 0x16b1) != '\0')" (( "(") (binary_expression "*(char *)(lVar10 + 0x16b1) != '\0'" (pointer_expression "*(char *)(lVar10 + 0x16b1)" (* "*") (cast_expression "(char *)(lVar10 + 0x16b1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + 0x16b1)" (( "(") (binary_expression "lVar10 + 0x16b1" (identifier "lVar10") (+ "+") (number_literal "0x16b1")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      uVar9 = *param_3;\n      if ((((((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) || (*(byte *)(param_2 + 7) >> 4 == 2)) &&\n           (((param_6 != 0 & bVar16) != 0 &&\n            (((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0)))))) &&\n          (((*(byte *)(uVar9 + 4) & 0xf) != (*(byte *)(param_2 + 7) & 0xf) ||\n           (param_2[9] != *(long *)(uVar9 + 0x10))))) &&\n         ((pcVar15 = (char *)*param_2, *pcVar15 == '_' && (pcVar15[1] == 'Z')))) {\n        local_68 = *(undefined8 *)(uVar9 + 8);\n        local_78 = param_7;\n        local_70 = param_6;\n        if ((*(byte *)((long)param_2 + 0x3a) & 7) != 0) {\nLAB_002c1bd9:\n                    \n          FUN_001e9890("../../gold/symtab.h",0xa1,"object");\n        }\n        local_58 = (undefined8 *)param_2[2];\n        local_48[0] = param_2[8];\n        local_88 = pcVar15;\n        local_50 = iVar2;\n        local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);\n        FUN_001c3360(local_80,&local_78,&local_80,1);\n        local_88 = (char *)*param_2;\n        local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);\n        FUN_001c3360(local_80,&local_58,&local_80,1);\n      }\n    }" ({ "{") (expression_statement "uVar9 = *param_3;" (assignment_expression "uVar9 = *param_3" (identifier "uVar9") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (if_statement "if ((((((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) || (*(byte *)(param_2 + 7) >> 4 == 2)) &&\n           (((param_6 != 0 & bVar16) != 0 &&\n            (((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0)))))) &&\n          (((*(byte *)(uVar9 + 4) & 0xf) != (*(byte *)(param_2 + 7) & 0xf) ||\n           (param_2[9] != *(long *)(uVar9 + 0x10))))) &&\n         ((pcVar15 = (char *)*param_2, *pcVar15 == '_' && (pcVar15[1] == 'Z')))) {\n        local_68 = *(undefined8 *)(uVar9 + 8);\n        local_78 = param_7;\n        local_70 = param_6;\n        if ((*(byte *)((long)param_2 + 0x3a) & 7) != 0) {\nLAB_002c1bd9:\n                    \n          FUN_001e9890("../../gold/symtab.h",0xa1,"object");\n        }\n        local_58 = (undefined8 *)param_2[2];\n        local_48[0] = param_2[8];\n        local_88 = pcVar15;\n        local_50 = iVar2;\n        local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);\n        FUN_001c3360(local_80,&local_78,&local_80,1);\n        local_88 = (char *)*param_2;\n        local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);\n        FUN_001c3360(local_80,&local_58,&local_80,1);\n      }" (if "if") (parenthesized_expression "((((((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) || (*(byte *)(param_2 + 7) >> 4 == 2)) &&\n           (((param_6 != 0 & bVar16) != 0 &&\n            (((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0)))))) &&\n          (((*(byte *)(uVar9 + 4) & 0xf) != (*(byte *)(param_2 + 7) & 0xf) ||\n           (param_2[9] != *(long *)(uVar9 + 0x10))))) &&\n         ((pcVar15 = (char *)*param_2, *pcVar15 == '_' && (pcVar15[1] == 'Z'))))" (( "(") (binary_expression "(((((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) || (*(byte *)(param_2 + 7) >> 4 == 2)) &&\n           (((param_6 != 0 & bVar16) != 0 &&\n            (((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0)))))) &&\n          (((*(byte *)(uVar9 + 4) & 0xf) != (*(byte *)(param_2 + 7) & 0xf) ||\n           (param_2[9] != *(long *)(uVar9 + 0x10))))) &&\n         ((pcVar15 = (char *)*param_2, *pcVar15 == '_' && (pcVar15[1] == 'Z')))" (parenthesized_expression "(((((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) || (*(byte *)(param_2 + 7) >> 4 == 2)) &&\n           (((param_6 != 0 & bVar16) != 0 &&\n            (((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0)))))) &&\n          (((*(byte *)(uVar9 + 4) & 0xf) != (*(byte *)(param_2 + 7) & 0xf) ||\n           (param_2[9] != *(long *)(uVar9 + 0x10)))))" (( "(") (binary_expression "((((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) || (*(byte *)(param_2 + 7) >> 4 == 2)) &&\n           (((param_6 != 0 & bVar16) != 0 &&\n            (((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0)))))) &&\n          (((*(byte *)(uVar9 + 4) & 0xf) != (*(byte *)(param_2 + 7) & 0xf) ||\n           (param_2[9] != *(long *)(uVar9 + 0x10))))" (parenthesized_expression "((((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) || (*(byte *)(param_2 + 7) >> 4 == 2)) &&\n           (((param_6 != 0 & bVar16) != 0 &&\n            (((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0))))))" (( "(") (binary_expression "(((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) || (*(byte *)(param_2 + 7) >> 4 == 2)) &&\n           (((param_6 != 0 & bVar16) != 0 &&\n            (((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0)))))" (parenthesized_expression "(((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) || (*(byte *)(param_2 + 7) >> 4 == 2))" (( "(") (binary_expression "((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) || (*(byte *)(param_2 + 7) >> 4 == 2)" (parenthesized_expression "((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2)" (( "(") (binary_expression "(int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2" (binary_expression "(int)(uint)*(byte *)(uVar9 + 4) >> 4" (binary_expression "(int)(uint)*(byte *)(uVar9 + 4)" (cast_expression "(int)(uint)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (cast_expression "(byte *)(uVar9 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar9 + 4)" (( "(") (binary_expression "uVar9 + 4" (identifier "uVar9") (+ "+") (number_literal "4")) () ")")))) (>> ">>") (number_literal "4")) (== "==") (number_literal "2")) () ")")) (|| "||") (parenthesized_expression "(*(byte *)(param_2 + 7) >> 4 == 2)" (( "(") (binary_expression "*(byte *)(param_2 + 7) >> 4 == 2" (binary_expression "*(byte *)(param_2 + 7) >> 4" (pointer_expression "*(byte *)(param_2 + 7)" (* "*") (cast_expression "(byte *)(param_2 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 7)" (( "(") (binary_expression "param_2 + 7" (identifier "param_2") (+ "+") (number_literal "7")) () ")")))) (>> ">>") (number_literal "4")) (== "==") (number_literal "2")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(((param_6 != 0 & bVar16) != 0 &&\n            (((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0)))))" (( "(") (parenthesized_expression "((param_6 != 0 & bVar16) != 0 &&\n            (((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0))))" (( "(") (binary_expression "(param_6 != 0 & bVar16) != 0 &&\n            (((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0)))" (binary_expression "(param_6 != 0 & bVar16) != 0" (parenthesized_expression "(param_6 != 0 & bVar16)" (( "(") (binary_expression "param_6 != 0 & bVar16" (binary_expression "param_6 != 0" (identifier "param_6") (!= "!=") (number_literal "0")) (& "&") (identifier "bVar16")) () ")")) (!= "!=") (number_literal "0")) (&& "&&") (parenthesized_expression "(((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0)))" (( "(") (parenthesized_expression "((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0))" (( "(") (binary_expression "(iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0)" (parenthesized_expression "(iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0))" (( "(") (binary_expression "iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)" (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) (&& "&&") (parenthesized_expression "(*(long *)(uVar9 + 0x10) != 0)" (( "(") (binary_expression "*(long *)(uVar9 + 0x10) != 0" (pointer_expression "*(long *)(uVar9 + 0x10)" (* "*") (cast_expression "(long *)(uVar9 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar9 + 0x10)" (( "(") (binary_expression "uVar9 + 0x10" (identifier "uVar9") (+ "+") (number_literal "0x10")) () ")")))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(param_2[9] != 0)" (( "(") (binary_expression "param_2[9] != 0" (subscript_expression "param_2[9]" (identifier "param_2") ([ "[") (number_literal "9") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(((*(byte *)(uVar9 + 4) & 0xf) != (*(byte *)(param_2 + 7) & 0xf) ||\n           (param_2[9] != *(long *)(uVar9 + 0x10))))" (( "(") (parenthesized_expression "((*(byte *)(uVar9 + 4) & 0xf) != (*(byte *)(param_2 + 7) & 0xf) ||\n           (param_2[9] != *(long *)(uVar9 + 0x10)))" (( "(") (binary_expression "(*(byte *)(uVar9 + 4) & 0xf) != (*(byte *)(param_2 + 7) & 0xf) ||\n           (param_2[9] != *(long *)(uVar9 + 0x10))" (binary_expression "(*(byte *)(uVar9 + 4) & 0xf) != (*(byte *)(param_2 + 7) & 0xf)" (parenthesized_expression "(*(byte *)(uVar9 + 4) & 0xf)" (( "(") (binary_expression "*(byte *)(uVar9 + 4) & 0xf" (pointer_expression "*(byte *)(uVar9 + 4)" (* "*") (cast_expression "(byte *)(uVar9 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar9 + 4)" (( "(") (binary_expression "uVar9 + 4" (identifier "uVar9") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "0xf")) () ")")) (!= "!=") (parenthesized_expression "(*(byte *)(param_2 + 7) & 0xf)" (( "(") (binary_expression "*(byte *)(param_2 + 7) & 0xf" (pointer_expression "*(byte *)(param_2 + 7)" (* "*") (cast_expression "(byte *)(param_2 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 7)" (( "(") (binary_expression "param_2 + 7" (identifier "param_2") (+ "+") (number_literal "7")) () ")")))) (& "&") (number_literal "0xf")) () ")"))) (|| "||") (parenthesized_expression "(param_2[9] != *(long *)(uVar9 + 0x10))" (( "(") (binary_expression "param_2[9] != *(long *)(uVar9 + 0x10)" (subscript_expression "param_2[9]" (identifier "param_2") ([ "[") (number_literal "9") (] "]")) (!= "!=") (pointer_expression "*(long *)(uVar9 + 0x10)" (* "*") (cast_expression "(long *)(uVar9 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar9 + 0x10)" (( "(") (binary_expression "uVar9 + 0x10" (identifier "uVar9") (+ "+") (number_literal "0x10")) () ")"))))) () ")"))) () ")")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((pcVar15 = (char *)*param_2, *pcVar15 == '_' && (pcVar15[1] == 'Z')))" (( "(") (parenthesized_expression "(pcVar15 = (char *)*param_2, *pcVar15 == '_' && (pcVar15[1] == 'Z'))" (( "(") (comma_expression "pcVar15 = (char *)*param_2, *pcVar15 == '_' && (pcVar15[1] == 'Z')" (assignment_expression "pcVar15 = (char *)*param_2" (identifier "pcVar15") (= "=") (cast_expression "(char *)*param_2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2")))) (, ",") (binary_expression "*pcVar15 == '_' && (pcVar15[1] == 'Z')" (binary_expression "*pcVar15 == '_'" (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) (== "==") (char_literal "'_'" (' "'") (character "_") (' "'"))) (&& "&&") (parenthesized_expression "(pcVar15[1] == 'Z')" (( "(") (binary_expression "pcVar15[1] == 'Z'" (subscript_expression "pcVar15[1]" (identifier "pcVar15") ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "'Z'" (' "'") (character "Z") (' "'"))) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n        local_68 = *(undefined8 *)(uVar9 + 8);\n        local_78 = param_7;\n        local_70 = param_6;\n        if ((*(byte *)((long)param_2 + 0x3a) & 7) != 0) {\nLAB_002c1bd9:\n                    \n          FUN_001e9890("../../gold/symtab.h",0xa1,"object");\n        }\n        local_58 = (undefined8 *)param_2[2];\n        local_48[0] = param_2[8];\n        local_88 = pcVar15;\n        local_50 = iVar2;\n        local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);\n        FUN_001c3360(local_80,&local_78,&local_80,1);\n        local_88 = (char *)*param_2;\n        local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);\n        FUN_001c3360(local_80,&local_58,&local_80,1);\n      }" ({ "{") (expression_statement "local_68 = *(undefined8 *)(uVar9 + 8);" (assignment_expression "local_68 = *(undefined8 *)(uVar9 + 8)" (identifier "local_68") (= "=") (pointer_expression "*(undefined8 *)(uVar9 + 8)" (* "*") (cast_expression "(undefined8 *)(uVar9 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar9 + 8)" (( "(") (binary_expression "uVar9 + 8" (identifier "uVar9") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "local_78 = param_7;" (assignment_expression "local_78 = param_7" (identifier "local_78") (= "=") (identifier "param_7")) (; ";")) (expression_statement "local_70 = param_6;" (assignment_expression "local_70 = param_6" (identifier "local_70") (= "=") (identifier "param_6")) (; ";")) (if_statement "if ((*(byte *)((long)param_2 + 0x3a) & 7) != 0) {\nLAB_002c1bd9:\n                    \n          FUN_001e9890("../../gold/symtab.h",0xa1,"object");\n        }" (if "if") (parenthesized_expression "((*(byte *)((long)param_2 + 0x3a) & 7) != 0)" (( "(") (binary_expression "(*(byte *)((long)param_2 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)((long)param_2 + 0x3a) & 7)" (( "(") (binary_expression "*(byte *)((long)param_2 + 0x3a) & 7" (pointer_expression "*(byte *)((long)param_2 + 0x3a)" (* "*") (cast_expression "(byte *)((long)param_2 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_2 + 0x3a)" (( "(") (binary_expression "(long)param_2 + 0x3a" (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")) (+ "+") (number_literal "0x3a")) () ")")))) (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_002c1bd9:\n                    \n          FUN_001e9890("../../gold/symtab.h",0xa1,"object");\n        }" ({ "{") (labeled_statement "LAB_002c1bd9:\n                    \n          FUN_001e9890("../../gold/symtab.h",0xa1,"object");" (statement_identifier "LAB_002c1bd9") (: ":") (expression_statement "FUN_001e9890("../../gold/symtab.h",0xa1,"object");" (call_expression "FUN_001e9890("../../gold/symtab.h",0xa1,"object")" (identifier "FUN_001e9890") (argument_list "("../../gold/symtab.h",0xa1,"object")" (( "(") (string_literal ""../../gold/symtab.h"" (" """) (string_content "../../gold/symtab.h") (" """)) (, ",") (number_literal "0xa1") (, ",") (string_literal ""object"" (" """) (string_content "object") (" """)) () ")"))) (; ";"))) (} "}"))) (expression_statement "local_58 = (undefined8 *)param_2[2];" (assignment_expression "local_58 = (undefined8 *)param_2[2]" (identifier "local_58") (= "=") (cast_expression "(undefined8 *)param_2[2]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "local_48[0] = param_2[8];" (assignment_expression "local_48[0] = param_2[8]" (subscript_expression "local_48[0]" (identifier "local_48") ([ "[") (number_literal "0") (] "]")) (= "=") (subscript_expression "param_2[8]" (identifier "param_2") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "local_88 = pcVar15;" (assignment_expression "local_88 = pcVar15" (identifier "local_88") (= "=") (identifier "pcVar15")) (; ";")) (expression_statement "local_50 = iVar2;" (assignment_expression "local_50 = iVar2" (identifier "local_50") (= "=") (identifier "iVar2")) (; ";")) (expression_statement "local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);" (assignment_expression "local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88)" (identifier "local_80") (= "=") (call_expression "FUN_002bf9a0(param_1 + 0x218,&local_88)" (identifier "FUN_002bf9a0") (argument_list "(param_1 + 0x218,&local_88)" (( "(") (binary_expression "param_1 + 0x218" (identifier "param_1") (+ "+") (number_literal "0x218")) (, ",") (pointer_expression "&local_88" (& "&") (identifier "local_88")) () ")")))) (; ";")) (expression_statement "FUN_001c3360(local_80,&local_78,&local_80,1);" (call_expression "FUN_001c3360(local_80,&local_78,&local_80,1)" (identifier "FUN_001c3360") (argument_list "(local_80,&local_78,&local_80,1)" (( "(") (identifier "local_80") (, ",") (pointer_expression "&local_78" (& "&") (identifier "local_78")) (, ",") (pointer_expression "&local_80" (& "&") (identifier "local_80")) (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "local_88 = (char *)*param_2;" (assignment_expression "local_88 = (char *)*param_2" (identifier "local_88") (= "=") (cast_expression "(char *)*param_2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2")))) (; ";")) (expression_statement "local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);" (assignment_expression "local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88)" (identifier "local_80") (= "=") (call_expression "FUN_002bf9a0(param_1 + 0x218,&local_88)" (identifier "FUN_002bf9a0") (argument_list "(param_1 + 0x218,&local_88)" (( "(") (binary_expression "param_1 + 0x218" (identifier "param_1") (+ "+") (number_literal "0x218")) (, ",") (pointer_expression "&local_88" (& "&") (identifier "local_88")) () ")")))) (; ";")) (expression_statement "FUN_001c3360(local_80,&local_58,&local_80,1);" (call_expression "FUN_001c3360(local_80,&local_58,&local_80,1)" (identifier "FUN_001c3360") (argument_list "(local_80,&local_58,&local_80,1)" (( "(") (identifier "local_80") (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) (, ",") (pointer_expression "&local_80" (& "&") (identifier "local_80")) (, ",") (number_literal "1") () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "local_98 = &local_78;" (assignment_expression "local_98 = &local_78" (identifier "local_98") (= "=") (pointer_expression "&local_78" (& "&") (identifier "local_78"))) (; ";")) (expression_statement "lVar10 = (**(code **)(*param_7 + 0x28))(param_7);" (assignment_expression "lVar10 = (**(code **)(*param_7 + 0x28))(param_7)" (identifier "lVar10") (= "=") (call_expression "(**(code **)(*param_7 + 0x28))(param_7)" (parenthesized_expression "(**(code **)(*param_7 + 0x28))" (( "(") (pointer_expression "**(code **)(*param_7 + 0x28)" (* "*") (pointer_expression "*(code **)(*param_7 + 0x28)" (* "*") (cast_expression "(code **)(*param_7 + 0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_7 + 0x28)" (( "(") (binary_expression "*param_7 + 0x28" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (argument_list "(param_7)" (( "(") (identifier "param_7") () ")")))) (; ";")) (if_statement "if (lVar10 == 0) {\n      uVar14 = (uint)*(byte *)(*param_3 + 4);\n      uVar8 = uVar14;\n    }\n    else {\n      uVar14 = (uint)*(byte *)(*param_3 + 4);\n      uVar8 = (uint)*(byte *)(param_2 + 7);\n    }" (if "if") (parenthesized_expression "(lVar10 == 0)" (( "(") (binary_expression "lVar10 == 0" (identifier "lVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar14 = (uint)*(byte *)(*param_3 + 4);\n      uVar8 = uVar14;\n    }" ({ "{") (expression_statement "uVar14 = (uint)*(byte *)(*param_3 + 4);" (assignment_expression "uVar14 = (uint)*(byte *)(*param_3 + 4)" (identifier "uVar14") (= "=") (binary_expression "(uint)*(byte *)(*param_3 + 4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(*param_3 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_3 + 4)" (( "(") (binary_expression "*param_3 + 4" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar8 = uVar14;" (assignment_expression "uVar8 = uVar14" (identifier "uVar8") (= "=") (identifier "uVar14")) (; ";")) (} "}")) (else_clause "else {\n      uVar14 = (uint)*(byte *)(*param_3 + 4);\n      uVar8 = (uint)*(byte *)(param_2 + 7);\n    }" (else "else") (compound_statement "{\n      uVar14 = (uint)*(byte *)(*param_3 + 4);\n      uVar8 = (uint)*(byte *)(param_2 + 7);\n    }" ({ "{") (expression_statement "uVar14 = (uint)*(byte *)(*param_3 + 4);" (assignment_expression "uVar14 = (uint)*(byte *)(*param_3 + 4)" (identifier "uVar14") (= "=") (binary_expression "(uint)*(byte *)(*param_3 + 4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(*param_3 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_3 + 4)" (( "(") (binary_expression "*param_3 + 4" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar8 = (uint)*(byte *)(param_2 + 7);" (assignment_expression "uVar8 = (uint)*(byte *)(param_2 + 7)" (identifier "uVar8") (= "=") (binary_expression "(uint)*(byte *)(param_2 + 7)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(param_2 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 7)" (( "(") (binary_expression "param_2 + 7" (identifier "param_2") (+ "+") (number_literal "7")) () ")"))))) (; ";")) (} "}")))) (expression_statement "uVar7 = FUN_002be580((int)uVar14 >> 4,*(byte *)((long)param_7 + 0x3c) & 1,param_4,param_5);" (assignment_expression "uVar7 = FUN_002be580((int)uVar14 >> 4,*(byte *)((long)param_7 + 0x3c) & 1,param_4,param_5)" (identifier "uVar7") (= "=") (call_expression "FUN_002be580((int)uVar14 >> 4,*(byte *)((long)param_7 + 0x3c) & 1,param_4,param_5)" (identifier "FUN_002be580") (argument_list "((int)uVar14 >> 4,*(byte *)((long)param_7 + 0x3c) & 1,param_4,param_5)" (( "(") (binary_expression "(int)uVar14 >> 4" (cast_expression "(int)uVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar14")) (>> ">>") (number_literal "4")) (, ",") (binary_expression "*(byte *)((long)param_7 + 0x3c) & 1" (pointer_expression "*(byte *)((long)param_7 + 0x3c)" (* "*") (cast_expression "(byte *)((long)param_7 + 0x3c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_7 + 0x3c)" (( "(") (binary_expression "(long)param_7 + 0x3c" (cast_expression "(long)param_7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_7")) (+ "+") (number_literal "0x3c")) () ")")))) (& "&") (number_literal "1")) (, ",") (identifier "param_4") (, ",") (identifier "param_5") () ")")))) (; ";")) (expression_statement "uVar4 = param_2[9];" (assignment_expression "uVar4 = param_2[9]" (identifier "uVar4") (= "=") (subscript_expression "param_2[9]" (identifier "param_2") ([ "[") (number_literal "9") (] "]"))) (; ";")) (expression_statement "cVar6 = FUN_002be950(param_2,uVar7,uVar8 & 0xf,0,param_7,local_98,&local_58,param_9);" (assignment_expression "cVar6 = FUN_002be950(param_2,uVar7,uVar8 & 0xf,0,param_7,local_98,&local_58,param_9)" (identifier "cVar6") (= "=") (call_expression "FUN_002be950(param_2,uVar7,uVar8 & 0xf,0,param_7,local_98,&local_58,param_9)" (identifier "FUN_002be950") (argument_list "(param_2,uVar7,uVar8 & 0xf,0,param_7,local_98,&local_58,param_9)" (( "(") (identifier "param_2") (, ",") (identifier "uVar7") (, ",") (binary_expression "uVar8 & 0xf" (identifier "uVar8") (& "&") (number_literal "0xf")) (, ",") (number_literal "0") (, ",") (identifier "param_7") (, ",") (identifier "local_98") (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) (, ",") (identifier "param_9") () ")")))) (; ";")) (if_statement "if (cVar6 == '\0') {\n      uVar9 = *param_3;\n      if ((char)local_78 != '\0') {\n        if (uVar4 < *(ulong *)(uVar9 + 0x10)) {\n          param_2[9] = *(ulong *)(uVar9 + 0x10);\n        }\n        if ((ulong)param_2[8] < *(ulong *)(uVar9 + 8)) {\n          param_2[8] = *(ulong *)(uVar9 + 8);\n        }\n      }\n      if ((char)local_58 != '\0') {\n        if (((*(byte *)((long)param_2 + 0x3c) & 1) == 0) ||\n           ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)) {\n          *(byte *)((long)param_2 + 0x3c) =\n               *(byte *)((long)param_2 + 0x3c) & 0xfd |\n               ((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) * '\x02' | 1;\n        }\n      }\n      bVar16 = *(byte *)(uVar9 + 5) & 3;\n      if ((*(byte *)(uVar9 + 5) & 3) != 0) {\n        bVar1 = *(byte *)((long)param_2 + 0x39);\n        if (((bVar1 & 3) == 0) || (bVar16 < (bVar1 & 3))) {\n          *(byte *)((long)param_2 + 0x39) = bVar16 | bVar1 & 0xfc;\n        }\n      }\n    }\n    else {\n      bVar16 = *(byte *)(param_2 + 7);\n      uVar9 = param_2[8];\n      FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7,param_8);\n      if ((char)local_78 != '\0') {\n        if ((ulong)param_2[9] < uVar4) {\n          param_2[9] = uVar4;\n        }\n        if ((ulong)param_2[8] < uVar9) {\n          param_2[8] = uVar9;\n        }\n      }\n      if (((char)local_58 != '\0') &&\n         (((*(byte *)((long)param_2 + 0x3c) & 1) == 0 ||\n          ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)))) {\n        *(byte *)((long)param_2 + 0x3c) =\n             *(byte *)((long)param_2 + 0x3c) & 0xfd | (bVar16 >> 4 == 2) * '\x02' | 1;\n      }\n    }" (if "if") (parenthesized_expression "(cVar6 == '\0')" (( "(") (binary_expression "cVar6 == '\0'" (identifier "cVar6") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      uVar9 = *param_3;\n      if ((char)local_78 != '\0') {\n        if (uVar4 < *(ulong *)(uVar9 + 0x10)) {\n          param_2[9] = *(ulong *)(uVar9 + 0x10);\n        }\n        if ((ulong)param_2[8] < *(ulong *)(uVar9 + 8)) {\n          param_2[8] = *(ulong *)(uVar9 + 8);\n        }\n      }\n      if ((char)local_58 != '\0') {\n        if (((*(byte *)((long)param_2 + 0x3c) & 1) == 0) ||\n           ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)) {\n          *(byte *)((long)param_2 + 0x3c) =\n               *(byte *)((long)param_2 + 0x3c) & 0xfd |\n               ((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) * '\x02' | 1;\n        }\n      }\n      bVar16 = *(byte *)(uVar9 + 5) & 3;\n      if ((*(byte *)(uVar9 + 5) & 3) != 0) {\n        bVar1 = *(byte *)((long)param_2 + 0x39);\n        if (((bVar1 & 3) == 0) || (bVar16 < (bVar1 & 3))) {\n          *(byte *)((long)param_2 + 0x39) = bVar16 | bVar1 & 0xfc;\n        }\n      }\n    }" ({ "{") (expression_statement "uVar9 = *param_3;" (assignment_expression "uVar9 = *param_3" (identifier "uVar9") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (if_statement "if ((char)local_78 != '\0') {\n        if (uVar4 < *(ulong *)(uVar9 + 0x10)) {\n          param_2[9] = *(ulong *)(uVar9 + 0x10);\n        }\n        if ((ulong)param_2[8] < *(ulong *)(uVar9 + 8)) {\n          param_2[8] = *(ulong *)(uVar9 + 8);\n        }\n      }" (if "if") (parenthesized_expression "((char)local_78 != '\0')" (( "(") (binary_expression "(char)local_78 != '\0'" (cast_expression "(char)local_78" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_78")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        if (uVar4 < *(ulong *)(uVar9 + 0x10)) {\n          param_2[9] = *(ulong *)(uVar9 + 0x10);\n        }\n        if ((ulong)param_2[8] < *(ulong *)(uVar9 + 8)) {\n          param_2[8] = *(ulong *)(uVar9 + 8);\n        }\n      }" ({ "{") (if_statement "if (uVar4 < *(ulong *)(uVar9 + 0x10)) {\n          param_2[9] = *(ulong *)(uVar9 + 0x10);\n        }" (if "if") (parenthesized_expression "(uVar4 < *(ulong *)(uVar9 + 0x10))" (( "(") (binary_expression "uVar4 < *(ulong *)(uVar9 + 0x10)" (identifier "uVar4") (< "<") (pointer_expression "*(ulong *)(uVar9 + 0x10)" (* "*") (cast_expression "(ulong *)(uVar9 + 0x10)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar9 + 0x10)" (( "(") (binary_expression "uVar9 + 0x10" (identifier "uVar9") (+ "+") (number_literal "0x10")) () ")"))))) () ")")) (compound_statement "{\n          param_2[9] = *(ulong *)(uVar9 + 0x10);\n        }" ({ "{") (expression_statement "param_2[9] = *(ulong *)(uVar9 + 0x10);" (assignment_expression "param_2[9] = *(ulong *)(uVar9 + 0x10)" (subscript_expression "param_2[9]" (identifier "param_2") ([ "[") (number_literal "9") (] "]")) (= "=") (pointer_expression "*(ulong *)(uVar9 + 0x10)" (* "*") (cast_expression "(ulong *)(uVar9 + 0x10)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar9 + 0x10)" (( "(") (binary_expression "uVar9 + 0x10" (identifier "uVar9") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (} "}"))) (if_statement "if ((ulong)param_2[8] < *(ulong *)(uVar9 + 8)) {\n          param_2[8] = *(ulong *)(uVar9 + 8);\n        }" (if "if") (parenthesized_expression "((ulong)param_2[8] < *(ulong *)(uVar9 + 8))" (( "(") (binary_expression "(ulong)param_2[8] < *(ulong *)(uVar9 + 8)" (cast_expression "(ulong)param_2[8]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "param_2[8]" (identifier "param_2") ([ "[") (number_literal "8") (] "]"))) (< "<") (pointer_expression "*(ulong *)(uVar9 + 8)" (* "*") (cast_expression "(ulong *)(uVar9 + 8)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar9 + 8)" (( "(") (binary_expression "uVar9 + 8" (identifier "uVar9") (+ "+") (number_literal "8")) () ")"))))) () ")")) (compound_statement "{\n          param_2[8] = *(ulong *)(uVar9 + 8);\n        }" ({ "{") (expression_statement "param_2[8] = *(ulong *)(uVar9 + 8);" (assignment_expression "param_2[8] = *(ulong *)(uVar9 + 8)" (subscript_expression "param_2[8]" (identifier "param_2") ([ "[") (number_literal "8") (] "]")) (= "=") (pointer_expression "*(ulong *)(uVar9 + 8)" (* "*") (cast_expression "(ulong *)(uVar9 + 8)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar9 + 8)" (( "(") (binary_expression "uVar9 + 8" (identifier "uVar9") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (} "}"))) (} "}"))) (if_statement "if ((char)local_58 != '\0') {\n        if (((*(byte *)((long)param_2 + 0x3c) & 1) == 0) ||\n           ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)) {\n          *(byte *)((long)param_2 + 0x3c) =\n               *(byte *)((long)param_2 + 0x3c) & 0xfd |\n               ((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) * '\x02' | 1;\n        }\n      }" (if "if") (parenthesized_expression "((char)local_58 != '\0')" (( "(") (binary_expression "(char)local_58 != '\0'" (cast_expression "(char)local_58" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_58")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        if (((*(byte *)((long)param_2 + 0x3c) & 1) == 0) ||\n           ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)) {\n          *(byte *)((long)param_2 + 0x3c) =\n               *(byte *)((long)param_2 + 0x3c) & 0xfd |\n               ((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) * '\x02' | 1;\n        }\n      }" ({ "{") (if_statement "if (((*(byte *)((long)param_2 + 0x3c) & 1) == 0) ||\n           ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)) {\n          *(byte *)((long)param_2 + 0x3c) =\n               *(byte *)((long)param_2 + 0x3c) & 0xfd |\n               ((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) * '\x02' | 1;\n        }" (if "if") (parenthesized_expression "(((*(byte *)((long)param_2 + 0x3c) & 1) == 0) ||\n           ((*(byte *)((long)param_2 + 0x3c) & 2) != 0))" (( "(") (binary_expression "((*(byte *)((long)param_2 + 0x3c) & 1) == 0) ||\n           ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)" (parenthesized_expression "((*(byte *)((long)param_2 + 0x3c) & 1) == 0)" (( "(") (binary_expression "(*(byte *)((long)param_2 + 0x3c) & 1) == 0" (parenthesized_expression "(*(byte *)((long)param_2 + 0x3c) & 1)" (( "(") (binary_expression "*(byte *)((long)param_2 + 0x3c) & 1" (pointer_expression "*(byte *)((long)param_2 + 0x3c)" (* "*") (cast_expression "(byte *)((long)param_2 + 0x3c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_2 + 0x3c)" (( "(") (binary_expression "(long)param_2 + 0x3c" (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")) (+ "+") (number_literal "0x3c")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((*(byte *)((long)param_2 + 0x3c) & 2) != 0)" (( "(") (binary_expression "(*(byte *)((long)param_2 + 0x3c) & 2) != 0" (parenthesized_expression "(*(byte *)((long)param_2 + 0x3c) & 2)" (( "(") (binary_expression "*(byte *)((long)param_2 + 0x3c) & 2" (pointer_expression "*(byte *)((long)param_2 + 0x3c)" (* "*") (cast_expression "(byte *)((long)param_2 + 0x3c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_2 + 0x3c)" (( "(") (binary_expression "(long)param_2 + 0x3c" (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")) (+ "+") (number_literal "0x3c")) () ")")))) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          *(byte *)((long)param_2 + 0x3c) =\n               *(byte *)((long)param_2 + 0x3c) & 0xfd |\n               ((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) * '\x02' | 1;\n        }" ({ "{") (expression_statement "*(byte *)((long)param_2 + 0x3c) =\n               *(byte *)((long)param_2 + 0x3c) & 0xfd |\n               ((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) * '\x02' | 1;" (assignment_expression "*(byte *)((long)param_2 + 0x3c) =\n               *(byte *)((long)param_2 + 0x3c) & 0xfd |\n               ((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) * '\x02' | 1" (pointer_expression "*(byte *)((long)param_2 + 0x3c)" (* "*") (cast_expression "(byte *)((long)param_2 + 0x3c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_2 + 0x3c)" (( "(") (binary_expression "(long)param_2 + 0x3c" (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")) (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (binary_expression "*(byte *)((long)param_2 + 0x3c) & 0xfd |\n               ((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) * '\x02' | 1" (binary_expression "*(byte *)((long)param_2 + 0x3c) & 0xfd |\n               ((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) * '\x02'" (binary_expression "*(byte *)((long)param_2 + 0x3c) & 0xfd" (pointer_expression "*(byte *)((long)param_2 + 0x3c)" (* "*") (cast_expression "(byte *)((long)param_2 + 0x3c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_2 + 0x3c)" (( "(") (binary_expression "(long)param_2 + 0x3c" (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")) (+ "+") (number_literal "0x3c")) () ")")))) (& "&") (number_literal "0xfd")) (| "|") (binary_expression "((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) * '\x02'" (parenthesized_expression "((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2)" (( "(") (binary_expression "(int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2" (binary_expression "(int)(uint)*(byte *)(uVar9 + 4) >> 4" (binary_expression "(int)(uint)*(byte *)(uVar9 + 4)" (cast_expression "(int)(uint)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (cast_expression "(byte *)(uVar9 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar9 + 4)" (( "(") (binary_expression "uVar9 + 4" (identifier "uVar9") (+ "+") (number_literal "4")) () ")")))) (>> ">>") (number_literal "4")) (== "==") (number_literal "2")) () ")")) (* "*") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'")))) (| "|") (number_literal "1"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "bVar16 = *(byte *)(uVar9 + 5) & 3;" (assignment_expression "bVar16 = *(byte *)(uVar9 + 5) & 3" (identifier "bVar16") (= "=") (binary_expression "*(byte *)(uVar9 + 5) & 3" (pointer_expression "*(byte *)(uVar9 + 5)" (* "*") (cast_expression "(byte *)(uVar9 + 5)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar9 + 5)" (( "(") (binary_expression "uVar9 + 5" (identifier "uVar9") (+ "+") (number_literal "5")) () ")")))) (& "&") (number_literal "3"))) (; ";")) (if_statement "if ((*(byte *)(uVar9 + 5) & 3) != 0) {\n        bVar1 = *(byte *)((long)param_2 + 0x39);\n        if (((bVar1 & 3) == 0) || (bVar16 < (bVar1 & 3))) {\n          *(byte *)((long)param_2 + 0x39) = bVar16 | bVar1 & 0xfc;\n        }\n      }" (if "if") (parenthesized_expression "((*(byte *)(uVar9 + 5) & 3) != 0)" (( "(") (binary_expression "(*(byte *)(uVar9 + 5) & 3) != 0" (parenthesized_expression "(*(byte *)(uVar9 + 5) & 3)" (( "(") (binary_expression "*(byte *)(uVar9 + 5) & 3" (pointer_expression "*(byte *)(uVar9 + 5)" (* "*") (cast_expression "(byte *)(uVar9 + 5)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar9 + 5)" (( "(") (binary_expression "uVar9 + 5" (identifier "uVar9") (+ "+") (number_literal "5")) () ")")))) (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        bVar1 = *(byte *)((long)param_2 + 0x39);\n        if (((bVar1 & 3) == 0) || (bVar16 < (bVar1 & 3))) {\n          *(byte *)((long)param_2 + 0x39) = bVar16 | bVar1 & 0xfc;\n        }\n      }" ({ "{") (expression_statement "bVar1 = *(byte *)((long)param_2 + 0x39);" (assignment_expression "bVar1 = *(byte *)((long)param_2 + 0x39)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)((long)param_2 + 0x39)" (* "*") (cast_expression "(byte *)((long)param_2 + 0x39)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_2 + 0x39)" (( "(") (binary_expression "(long)param_2 + 0x39" (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")) (+ "+") (number_literal "0x39")) () ")"))))) (; ";")) (if_statement "if (((bVar1 & 3) == 0) || (bVar16 < (bVar1 & 3))) {\n          *(byte *)((long)param_2 + 0x39) = bVar16 | bVar1 & 0xfc;\n        }" (if "if") (parenthesized_expression "(((bVar1 & 3) == 0) || (bVar16 < (bVar1 & 3)))" (( "(") (binary_expression "((bVar1 & 3) == 0) || (bVar16 < (bVar1 & 3))" (parenthesized_expression "((bVar1 & 3) == 0)" (( "(") (binary_expression "(bVar1 & 3) == 0" (parenthesized_expression "(bVar1 & 3)" (( "(") (binary_expression "bVar1 & 3" (identifier "bVar1") (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(bVar16 < (bVar1 & 3))" (( "(") (binary_expression "bVar16 < (bVar1 & 3)" (identifier "bVar16") (< "<") (parenthesized_expression "(bVar1 & 3)" (( "(") (binary_expression "bVar1 & 3" (identifier "bVar1") (& "&") (number_literal "3")) () ")"))) () ")"))) () ")")) (compound_statement "{\n          *(byte *)((long)param_2 + 0x39) = bVar16 | bVar1 & 0xfc;\n        }" ({ "{") (expression_statement "*(byte *)((long)param_2 + 0x39) = bVar16 | bVar1 & 0xfc;" (assignment_expression "*(byte *)((long)param_2 + 0x39) = bVar16 | bVar1 & 0xfc" (pointer_expression "*(byte *)((long)param_2 + 0x39)" (* "*") (cast_expression "(byte *)((long)param_2 + 0x39)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_2 + 0x39)" (( "(") (binary_expression "(long)param_2 + 0x39" (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")) (+ "+") (number_literal "0x39")) () ")")))) (= "=") (binary_expression "bVar16 | bVar1 & 0xfc" (identifier "bVar16") (| "|") (binary_expression "bVar1 & 0xfc" (identifier "bVar1") (& "&") (number_literal "0xfc")))) (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n      bVar16 = *(byte *)(param_2 + 7);\n      uVar9 = param_2[8];\n      FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7,param_8);\n      if ((char)local_78 != '\0') {\n        if ((ulong)param_2[9] < uVar4) {\n          param_2[9] = uVar4;\n        }\n        if ((ulong)param_2[8] < uVar9) {\n          param_2[8] = uVar9;\n        }\n      }\n      if (((char)local_58 != '\0') &&\n         (((*(byte *)((long)param_2 + 0x3c) & 1) == 0 ||\n          ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)))) {\n        *(byte *)((long)param_2 + 0x3c) =\n             *(byte *)((long)param_2 + 0x3c) & 0xfd | (bVar16 >> 4 == 2) * '\x02' | 1;\n      }\n    }" (else "else") (compound_statement "{\n      bVar16 = *(byte *)(param_2 + 7);\n      uVar9 = param_2[8];\n      FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7,param_8);\n      if ((char)local_78 != '\0') {\n        if ((ulong)param_2[9] < uVar4) {\n          param_2[9] = uVar4;\n        }\n        if ((ulong)param_2[8] < uVar9) {\n          param_2[8] = uVar9;\n        }\n      }\n      if (((char)local_58 != '\0') &&\n         (((*(byte *)((long)param_2 + 0x3c) & 1) == 0 ||\n          ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)))) {\n        *(byte *)((long)param_2 + 0x3c) =\n             *(byte *)((long)param_2 + 0x3c) & 0xfd | (bVar16 >> 4 == 2) * '\x02' | 1;\n      }\n    }" ({ "{") (expression_statement "bVar16 = *(byte *)(param_2 + 7);" (assignment_expression "bVar16 = *(byte *)(param_2 + 7)" (identifier "bVar16") (= "=") (pointer_expression "*(byte *)(param_2 + 7)" (* "*") (cast_expression "(byte *)(param_2 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 7)" (( "(") (binary_expression "param_2 + 7" (identifier "param_2") (+ "+") (number_literal "7")) () ")"))))) (; ";")) (expression_statement "uVar9 = param_2[8];" (assignment_expression "uVar9 = param_2[8]" (identifier "uVar9") (= "=") (subscript_expression "param_2[8]" (identifier "param_2") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7,param_8);" (call_expression "FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7,param_8)" (identifier "FUN_002bffb0") (argument_list "(param_1,param_2,param_3,param_4,param_5,param_7,param_8)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "param_4") (, ",") (identifier "param_5") (, ",") (identifier "param_7") (, ",") (identifier "param_8") () ")"))) (; ";")) (if_statement "if ((char)local_78 != '\0') {\n        if ((ulong)param_2[9] < uVar4) {\n          param_2[9] = uVar4;\n        }\n        if ((ulong)param_2[8] < uVar9) {\n          param_2[8] = uVar9;\n        }\n      }" (if "if") (parenthesized_expression "((char)local_78 != '\0')" (( "(") (binary_expression "(char)local_78 != '\0'" (cast_expression "(char)local_78" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_78")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        if ((ulong)param_2[9] < uVar4) {\n          param_2[9] = uVar4;\n        }\n        if ((ulong)param_2[8] < uVar9) {\n          param_2[8] = uVar9;\n        }\n      }" ({ "{") (if_statement "if ((ulong)param_2[9] < uVar4) {\n          param_2[9] = uVar4;\n        }" (if "if") (parenthesized_expression "((ulong)param_2[9] < uVar4)" (( "(") (binary_expression "(ulong)param_2[9] < uVar4" (cast_expression "(ulong)param_2[9]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "param_2[9]" (identifier "param_2") ([ "[") (number_literal "9") (] "]"))) (< "<") (identifier "uVar4")) () ")")) (compound_statement "{\n          param_2[9] = uVar4;\n        }" ({ "{") (expression_statement "param_2[9] = uVar4;" (assignment_expression "param_2[9] = uVar4" (subscript_expression "param_2[9]" (identifier "param_2") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (} "}"))) (if_statement "if ((ulong)param_2[8] < uVar9) {\n          param_2[8] = uVar9;\n        }" (if "if") (parenthesized_expression "((ulong)param_2[8] < uVar9)" (( "(") (binary_expression "(ulong)param_2[8] < uVar9" (cast_expression "(ulong)param_2[8]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "param_2[8]" (identifier "param_2") ([ "[") (number_literal "8") (] "]"))) (< "<") (identifier "uVar9")) () ")")) (compound_statement "{\n          param_2[8] = uVar9;\n        }" ({ "{") (expression_statement "param_2[8] = uVar9;" (assignment_expression "param_2[8] = uVar9" (subscript_expression "param_2[8]" (identifier "param_2") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "uVar9")) (; ";")) (} "}"))) (} "}"))) (if_statement "if (((char)local_58 != '\0') &&\n         (((*(byte *)((long)param_2 + 0x3c) & 1) == 0 ||\n          ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)))) {\n        *(byte *)((long)param_2 + 0x3c) =\n             *(byte *)((long)param_2 + 0x3c) & 0xfd | (bVar16 >> 4 == 2) * '\x02' | 1;\n      }" (if "if") (parenthesized_expression "(((char)local_58 != '\0') &&\n         (((*(byte *)((long)param_2 + 0x3c) & 1) == 0 ||\n          ((*(byte *)((long)param_2 + 0x3c) & 2) != 0))))" (( "(") (binary_expression "((char)local_58 != '\0') &&\n         (((*(byte *)((long)param_2 + 0x3c) & 1) == 0 ||\n          ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)))" (parenthesized_expression "((char)local_58 != '\0')" (( "(") (binary_expression "(char)local_58 != '\0'" (cast_expression "(char)local_58" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_58")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(((*(byte *)((long)param_2 + 0x3c) & 1) == 0 ||\n          ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)))" (( "(") (parenthesized_expression "((*(byte *)((long)param_2 + 0x3c) & 1) == 0 ||\n          ((*(byte *)((long)param_2 + 0x3c) & 2) != 0))" (( "(") (binary_expression "(*(byte *)((long)param_2 + 0x3c) & 1) == 0 ||\n          ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)" (binary_expression "(*(byte *)((long)param_2 + 0x3c) & 1) == 0" (parenthesized_expression "(*(byte *)((long)param_2 + 0x3c) & 1)" (( "(") (binary_expression "*(byte *)((long)param_2 + 0x3c) & 1" (pointer_expression "*(byte *)((long)param_2 + 0x3c)" (* "*") (cast_expression "(byte *)((long)param_2 + 0x3c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_2 + 0x3c)" (( "(") (binary_expression "(long)param_2 + 0x3c" (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")) (+ "+") (number_literal "0x3c")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) (|| "||") (parenthesized_expression "((*(byte *)((long)param_2 + 0x3c) & 2) != 0)" (( "(") (binary_expression "(*(byte *)((long)param_2 + 0x3c) & 2) != 0" (parenthesized_expression "(*(byte *)((long)param_2 + 0x3c) & 2)" (( "(") (binary_expression "*(byte *)((long)param_2 + 0x3c) & 2" (pointer_expression "*(byte *)((long)param_2 + 0x3c)" (* "*") (cast_expression "(byte *)((long)param_2 + 0x3c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_2 + 0x3c)" (( "(") (binary_expression "(long)param_2 + 0x3c" (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")) (+ "+") (number_literal "0x3c")) () ")")))) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n        *(byte *)((long)param_2 + 0x3c) =\n             *(byte *)((long)param_2 + 0x3c) & 0xfd | (bVar16 >> 4 == 2) * '\x02' | 1;\n      }" ({ "{") (expression_statement "*(byte *)((long)param_2 + 0x3c) =\n             *(byte *)((long)param_2 + 0x3c) & 0xfd | (bVar16 >> 4 == 2) * '\x02' | 1;" (assignment_expression "*(byte *)((long)param_2 + 0x3c) =\n             *(byte *)((long)param_2 + 0x3c) & 0xfd | (bVar16 >> 4 == 2) * '\x02' | 1" (pointer_expression "*(byte *)((long)param_2 + 0x3c)" (* "*") (cast_expression "(byte *)((long)param_2 + 0x3c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_2 + 0x3c)" (( "(") (binary_expression "(long)param_2 + 0x3c" (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")) (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (binary_expression "*(byte *)((long)param_2 + 0x3c) & 0xfd | (bVar16 >> 4 == 2) * '\x02' | 1" (binary_expression "*(byte *)((long)param_2 + 0x3c) & 0xfd | (bVar16 >> 4 == 2) * '\x02'" (binary_expression "*(byte *)((long)param_2 + 0x3c) & 0xfd" (pointer_expression "*(byte *)((long)param_2 + 0x3c)" (* "*") (cast_expression "(byte *)((long)param_2 + 0x3c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_2 + 0x3c)" (( "(") (binary_expression "(long)param_2 + 0x3c" (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")) (+ "+") (number_literal "0x3c")) () ")")))) (& "&") (number_literal "0xfd")) (| "|") (binary_expression "(bVar16 >> 4 == 2) * '\x02'" (parenthesized_expression "(bVar16 >> 4 == 2)" (( "(") (binary_expression "bVar16 >> 4 == 2" (binary_expression "bVar16 >> 4" (identifier "bVar16") (>> ">>") (number_literal "4")) (== "==") (number_literal "2")) () ")")) (* "*") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'")))) (| "|") (number_literal "1"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "bVar16 = *(byte *)((long)param_2 + 0x3a);" (assignment_expression "bVar16 = *(byte *)((long)param_2 + 0x3a)" (identifier "bVar16") (= "=") (pointer_expression "*(byte *)((long)param_2 + 0x3a)" (* "*") (cast_expression "(byte *)((long)param_2 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_2 + 0x3a)" (( "(") (binary_expression "(long)param_2 + 0x3a" (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")) (+ "+") (number_literal "0x3a")) () ")"))))) (; ";")) (expression_statement "uVar9 = (ulong)bVar16;" (assignment_expression "uVar9 = (ulong)bVar16" (identifier "uVar9") (= "=") (cast_expression "(ulong)bVar16" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar16"))) (; ";")) (if_statement "if ((bVar16 & 7) == 0) {\n      bVar1 = *(byte *)(param_2[2] + 0x3c);\n      if ((((bVar1 & 1) != 0) && ((char)bVar16 < '\0')) &&\n         ((*(byte *)((long)param_2 + 0x3c) & 2) == 0)) {\n        *(byte *)(param_2[2] + 0x3c) = bVar1 | 2;\n      }\n    }" (if "if") (parenthesized_expression "((bVar16 & 7) == 0)" (( "(") (binary_expression "(bVar16 & 7) == 0" (parenthesized_expression "(bVar16 & 7)" (( "(") (binary_expression "bVar16 & 7" (identifier "bVar16") (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      bVar1 = *(byte *)(param_2[2] + 0x3c);\n      if ((((bVar1 & 1) != 0) && ((char)bVar16 < '\0')) &&\n         ((*(byte *)((long)param_2 + 0x3c) & 2) == 0)) {\n        *(byte *)(param_2[2] + 0x3c) = bVar1 | 2;\n      }\n    }" ({ "{") (expression_statement "bVar1 = *(byte *)(param_2[2] + 0x3c);" (assignment_expression "bVar1 = *(byte *)(param_2[2] + 0x3c)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)(param_2[2] + 0x3c)" (* "*") (cast_expression "(byte *)(param_2[2] + 0x3c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2[2] + 0x3c)" (( "(") (binary_expression "param_2[2] + 0x3c" (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "0x3c")) () ")"))))) (; ";")) (if_statement "if ((((bVar1 & 1) != 0) && ((char)bVar16 < '\0')) &&\n         ((*(byte *)((long)param_2 + 0x3c) & 2) == 0)) {\n        *(byte *)(param_2[2] + 0x3c) = bVar1 | 2;\n      }" (if "if") (parenthesized_expression "((((bVar1 & 1) != 0) && ((char)bVar16 < '\0')) &&\n         ((*(byte *)((long)param_2 + 0x3c) & 2) == 0))" (( "(") (binary_expression "(((bVar1 & 1) != 0) && ((char)bVar16 < '\0')) &&\n         ((*(byte *)((long)param_2 + 0x3c) & 2) == 0)" (parenthesized_expression "(((bVar1 & 1) != 0) && ((char)bVar16 < '\0'))" (( "(") (binary_expression "((bVar1 & 1) != 0) && ((char)bVar16 < '\0')" (parenthesized_expression "((bVar1 & 1) != 0)" (( "(") (binary_expression "(bVar1 & 1) != 0" (parenthesized_expression "(bVar1 & 1)" (( "(") (binary_expression "bVar1 & 1" (identifier "bVar1") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((char)bVar16 < '\0')" (( "(") (binary_expression "(char)bVar16 < '\0'" (cast_expression "(char)bVar16" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar16")) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)((long)param_2 + 0x3c) & 2) == 0)" (( "(") (binary_expression "(*(byte *)((long)param_2 + 0x3c) & 2) == 0" (parenthesized_expression "(*(byte *)((long)param_2 + 0x3c) & 2)" (( "(") (binary_expression "*(byte *)((long)param_2 + 0x3c) & 2" (pointer_expression "*(byte *)((long)param_2 + 0x3c)" (* "*") (cast_expression "(byte *)((long)param_2 + 0x3c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_2 + 0x3c)" (( "(") (binary_expression "(long)param_2 + 0x3c" (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")) (+ "+") (number_literal "0x3c")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n        *(byte *)(param_2[2] + 0x3c) = bVar1 | 2;\n      }" ({ "{") (expression_statement "*(byte *)(param_2[2] + 0x3c) = bVar1 | 2;" (assignment_expression "*(byte *)(param_2[2] + 0x3c) = bVar1 | 2" (pointer_expression "*(byte *)(param_2[2] + 0x3c)" (* "*") (cast_expression "(byte *)(param_2[2] + 0x3c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2[2] + 0x3c)" (( "(") (binary_expression "param_2[2] + 0x3c" (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (binary_expression "bVar1 | 2" (identifier "bVar1") (| "|") (number_literal "2"))) (; ";")) (} "}"))) (} "}"))) (if_statement "if ((char)local_78 != '\0') {\n      uVar9 = *(ulong *)(PTR_DAT_004ba7c8 + 0x10);\n      if (uVar9 == 0) {\nLAB_002c17cc:\n                    \n        FUN_001e9890("../../gold/parameters.h",0x5c,"options");\n      }\n      if (*(char *)(uVar9 + 0x6de1) != '\0') {\n        pcVar15 = "common of \'%s\' overriding smaller common";\n        uVar9 = *(ulong *)(*param_3 + 0x10);\n        if ((uVar9 > uVar4 || uVar4 == uVar9) &&\n           (pcVar15 = "common of \'%s\' overidden by larger common", uVar9 <= uVar4)) {\n          pcVar15 = "multiple common of \'%s\'";\n        }\n        uVar11 = gettext(pcVar15);\n        uVar9 = FUN_002be7a0(0,uVar11,param_2,0,param_7);\n      }\n    }" (if "if") (parenthesized_expression "((char)local_78 != '\0')" (( "(") (binary_expression "(char)local_78 != '\0'" (cast_expression "(char)local_78" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_78")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      uVar9 = *(ulong *)(PTR_DAT_004ba7c8 + 0x10);\n      if (uVar9 == 0) {\nLAB_002c17cc:\n                    \n        FUN_001e9890("../../gold/parameters.h",0x5c,"options");\n      }\n      if (*(char *)(uVar9 + 0x6de1) != '\0') {\n        pcVar15 = "common of \'%s\' overriding smaller common";\n        uVar9 = *(ulong *)(*param_3 + 0x10);\n        if ((uVar9 > uVar4 || uVar4 == uVar9) &&\n           (pcVar15 = "common of \'%s\' overidden by larger common", uVar9 <= uVar4)) {\n          pcVar15 = "multiple common of \'%s\'";\n        }\n        uVar11 = gettext(pcVar15);\n        uVar9 = FUN_002be7a0(0,uVar11,param_2,0,param_7);\n      }\n    }" ({ "{") (expression_statement "uVar9 = *(ulong *)(PTR_DAT_004ba7c8 + 0x10);" (assignment_expression "uVar9 = *(ulong *)(PTR_DAT_004ba7c8 + 0x10)" (identifier "uVar9") (= "=") (pointer_expression "*(ulong *)(PTR_DAT_004ba7c8 + 0x10)" (* "*") (cast_expression "(ulong *)(PTR_DAT_004ba7c8 + 0x10)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_004ba7c8 + 0x10)" (( "(") (binary_expression "PTR_DAT_004ba7c8 + 0x10" (identifier "PTR_DAT_004ba7c8") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if (uVar9 == 0) {\nLAB_002c17cc:\n                    \n        FUN_001e9890("../../gold/parameters.h",0x5c,"options");\n      }" (if "if") (parenthesized_expression "(uVar9 == 0)" (( "(") (binary_expression "uVar9 == 0" (identifier "uVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_002c17cc:\n                    \n        FUN_001e9890("../../gold/parameters.h",0x5c,"options");\n      }" ({ "{") (labeled_statement "LAB_002c17cc:\n                    \n        FUN_001e9890("../../gold/parameters.h",0x5c,"options");" (statement_identifier "LAB_002c17cc") (: ":") (expression_statement "FUN_001e9890("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_001e9890("../../gold/parameters.h",0x5c,"options")" (identifier "FUN_001e9890") (argument_list "("../../gold/parameters.h",0x5c,"options")" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x5c") (, ",") (string_literal ""options"" (" """) (string_content "options") (" """)) () ")"))) (; ";"))) (} "}"))) (if_statement "if (*(char *)(uVar9 + 0x6de1) != '\0') {\n        pcVar15 = "common of \'%s\' overriding smaller common";\n        uVar9 = *(ulong *)(*param_3 + 0x10);\n        if ((uVar9 > uVar4 || uVar4 == uVar9) &&\n           (pcVar15 = "common of \'%s\' overidden by larger common", uVar9 <= uVar4)) {\n          pcVar15 = "multiple common of \'%s\'";\n        }\n        uVar11 = gettext(pcVar15);\n        uVar9 = FUN_002be7a0(0,uVar11,param_2,0,param_7);\n      }" (if "if") (parenthesized_expression "(*(char *)(uVar9 + 0x6de1) != '\0')" (( "(") (binary_expression "*(char *)(uVar9 + 0x6de1) != '\0'" (pointer_expression "*(char *)(uVar9 + 0x6de1)" (* "*") (cast_expression "(char *)(uVar9 + 0x6de1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar9 + 0x6de1)" (( "(") (binary_expression "uVar9 + 0x6de1" (identifier "uVar9") (+ "+") (number_literal "0x6de1")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        pcVar15 = "common of \'%s\' overriding smaller common";\n        uVar9 = *(ulong *)(*param_3 + 0x10);\n        if ((uVar9 > uVar4 || uVar4 == uVar9) &&\n           (pcVar15 = "common of \'%s\' overidden by larger common", uVar9 <= uVar4)) {\n          pcVar15 = "multiple common of \'%s\'";\n        }\n        uVar11 = gettext(pcVar15);\n        uVar9 = FUN_002be7a0(0,uVar11,param_2,0,param_7);\n      }" ({ "{") (expression_statement "pcVar15 = "common of \'%s\' overriding smaller common";" (assignment_expression "pcVar15 = "common of \'%s\' overriding smaller common"" (identifier "pcVar15") (= "=") (string_literal ""common of \'%s\' overriding smaller common"" (" """) (string_content "common of ") (escape_sequence "\'") (string_content "%s") (escape_sequence "\'") (string_content " overriding smaller common") (" """))) (; ";")) (expression_statement "uVar9 = *(ulong *)(*param_3 + 0x10);" (assignment_expression "uVar9 = *(ulong *)(*param_3 + 0x10)" (identifier "uVar9") (= "=") (pointer_expression "*(ulong *)(*param_3 + 0x10)" (* "*") (cast_expression "(ulong *)(*param_3 + 0x10)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_3 + 0x10)" (( "(") (binary_expression "*param_3 + 0x10" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if ((uVar9 > uVar4 || uVar4 == uVar9) &&\n           (pcVar15 = "common of \'%s\' overidden by larger common", uVar9 <= uVar4)) {\n          pcVar15 = "multiple common of \'%s\'";\n        }" (if "if") (parenthesized_expression "((uVar9 > uVar4 || uVar4 == uVar9) &&\n           (pcVar15 = "common of \'%s\' overidden by larger common", uVar9 <= uVar4))" (( "(") (binary_expression "(uVar9 > uVar4 || uVar4 == uVar9) &&\n           (pcVar15 = "common of \'%s\' overidden by larger common", uVar9 <= uVar4)" (parenthesized_expression "(uVar9 > uVar4 || uVar4 == uVar9)" (( "(") (binary_expression "uVar9 > uVar4 || uVar4 == uVar9" (binary_expression "uVar9 > uVar4" (identifier "uVar9") (> ">") (identifier "uVar4")) (|| "||") (binary_expression "uVar4 == uVar9" (identifier "uVar4") (== "==") (identifier "uVar9"))) () ")")) (&& "&&") (parenthesized_expression "(pcVar15 = "common of \'%s\' overidden by larger common", uVar9 <= uVar4)" (( "(") (comma_expression "pcVar15 = "common of \'%s\' overidden by larger common", uVar9 <= uVar4" (assignment_expression "pcVar15 = "common of \'%s\' overidden by larger common"" (identifier "pcVar15") (= "=") (string_literal ""common of \'%s\' overidden by larger common"" (" """) (string_content "common of ") (escape_sequence "\'") (string_content "%s") (escape_sequence "\'") (string_content " overidden by larger common") (" """))) (, ",") (binary_expression "uVar9 <= uVar4" (identifier "uVar9") (<= "<=") (identifier "uVar4"))) () ")"))) () ")")) (compound_statement "{\n          pcVar15 = "multiple common of \'%s\'";\n        }" ({ "{") (expression_statement "pcVar15 = "multiple common of \'%s\'";" (assignment_expression "pcVar15 = "multiple common of \'%s\'"" (identifier "pcVar15") (= "=") (string_literal ""multiple common of \'%s\'"" (" """) (string_content "multiple common of ") (escape_sequence "\'") (string_content "%s") (escape_sequence "\'") (" """))) (; ";")) (} "}"))) (expression_statement "uVar11 = gettext(pcVar15);" (assignment_expression "uVar11 = gettext(pcVar15)" (identifier "uVar11") (= "=") (call_expression "gettext(pcVar15)" (identifier "gettext") (argument_list "(pcVar15)" (( "(") (identifier "pcVar15") () ")")))) (; ";")) (expression_statement "uVar9 = FUN_002be7a0(0,uVar11,param_2,0,param_7);" (assignment_expression "uVar9 = FUN_002be7a0(0,uVar11,param_2,0,param_7)" (identifier "uVar9") (= "=") (call_expression "FUN_002be7a0(0,uVar11,param_2,0,param_7)" (identifier "FUN_002be7a0") (argument_list "(0,uVar11,param_2,0,param_7)" (( "(") (number_literal "0") (, ",") (identifier "uVar11") (, ",") (identifier "param_2") (, ",") (number_literal "0") (, ",") (identifier "param_7") () ")")))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (return_statement "return uVar9;" (return "return") (identifier "uVar9") (; ";")) (} "}")))

/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */
/* 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, false>
   DWARF original prototype: void resolve<64,_false>(Symbol_table * this, Sized_symbol<64> * to,
   Sym<64,_false> * sym, uint st_shndx, bool is_ordinary, uint orig_st_shndx, Object * object, char
   * version, bool is_default_version) */

void __thiscall
var_37::Symbol_table::resolve<64,var_24>
          (Symbol_table *this,Sized_symbol<64> *to,Sym<64,var_24> *sym,type_7 var_10,
          bool var_13,type_7 var_27,Object *var_7,char *version,bool is_default_version)

{
  undefined1 *puVar1;
  type_1 var_36;
  type_2 *var_12;
  var_1<64> *pSVar4;
  type_3 var_25;
  type_4 *pOVar6;
  type_3 var_26;
  uint64_t uVar8;
  type_5 var_32;
  type_6 aVar10;
  bool bVar11;
  int iVar12;
  type_7 var_11;
  long var_21;
  type_8 extraout_var_00;
  type_9 *var_22;
  type_8 extraout_var_01;
  char *pcVar16;
  type_8 extraout_var_02;
  type_5 SVar17;
  type_1 var_8;
  bool *local_98;
  char *local_88;
  type_10 __node_gen;
  bool var_34;
  type_7 local_70;
  type_11 local_68;
  bool var_35;
  type_7 local_50;
  anon_union_16_2_edb7204a_for_basic_string<var_3,_std::char_traits<var_3>,var_38::var_2<var_3>var_4>var_17
  var_5;
  type_8 extraout_var;
  
  if (((to->super_Symbol).field_0x3a & 7) != 0) {
                    /* WARNING: Subroutine does not return */
    var_6("../../gold/symtab.h",0xaa,"shndx");
  }
  var_11 = (to->super_Symbol).u2_.shndx;
  var_8 = (type_1)(to->super_Symbol).field_0x3b >> 5 & 1;
  if (var_7 == (to->super_Symbol).u1_.var_7) {
    if (var_8 == 0) {
      bVar11 = Symbol::var_9(var_11);
      if ((((bVar11) || (!var_13)) && (var_10 == 0xfff1)) && (!var_13))
      goto LAB_002c14d0;
    }
    else if (((var_11 != 0) && (var_13)) && (var_10 == var_11)) goto LAB_002c1838;
  }
  else if (((!var_13) && (var_10 == 0xfff1)) && (var_8 == 0)) {
LAB_002c14d0:
    if (var_11 == 0xfff1) {
LAB_002c1838:
      if (sym->p_->st_value == to->value_) {
        return;
      }
    }
  }
  var_12 = parameters->target_;
  if (var_12 == (type_2 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_6("../../gold/parameters.h",0x69,"target");
  }
  if ((var_12->pti_->has_resolve == false) ||
     (iVar12 = (*var_12->_vptr_Target[0x2b])(var_12,to,sym,var_7), (char)iVar12 == '\0')) {
    if ((var_7->field_0x3c & 1) == 0) {
      if (((sym->p_->st_info & 0xf) == 5) &&
         ((var_13 || (bVar11 = Symbol::var_9(var_10), !bVar11)))) {
        if (((to->super_Symbol).field_0x3a & 7) == 0) {
          uVar8 = ((to->super_Symbol).u1_.output_data)->address_;
          Symbol::var_14((type_12 *)&var_35,&to->super_Symbol);
          aVar10 = var_18;
          pcVar16 = (char *)var_15("STT_COMMON symbol \'%s\' in %s is not in a common section");
                    /* try { // try from 002c1a10 to 002c1a14 has its CatchHandler @ 002c1bf1 */
          var_16(pcVar16,aVar10.var_7,uVar8);
          if ((anon_union_16_2_edb7204a_for_basic_string<var_3,var_38::char_traits<var_3>,var_38::var_2<var_3>var_4>var_17
               *)var_18 == &var_5) {
            return;
          }
          var_19(var_18);
          return;
        }
        goto LAB_002c1bd9;
      }
      puVar1 = &(to->super_Symbol).field_0x3a;
      *puVar1 = *puVar1 | 0x80;
      iVar12 = (*var_7->_vptr_Object[5])(var_7);
      var_21 = var_20(extraout_var,iVar12);
    }
    else {
      if ((var_10 == 0) && (((type_1)(to->super_Symbol).field_0x39 & 3) - 1 < 2)) {
        return;
      }
      puVar1 = &(to->super_Symbol).field_0x3b;
      *puVar1 = *puVar1 | 1;
      iVar12 = (*var_7->_vptr_Object[5])(var_7);
      var_21 = var_20(extraout_var_02,iVar12);
    }
    if ((var_21 == 0) && ((var_7->field_0x3c & 1) == 0)) {
      puVar1 = &(to->super_Symbol).field_0x3b;
      *puVar1 = *puVar1 | 0x40;
    }
    if ((((to->super_Symbol).field_0x3a & 7) == 0) &&
       (iVar12 = (*((to->super_Symbol).u1_.var_7)->_vptr_Object[5])(),
       var_20(extraout_var_00,iVar12) != 0)) {
      var_22 = parameters->options_;
      if (var_22 == (type_9 *)0x0) goto LAB_002c17cc;
      if (var_22->plugins_->in_replacement_phase_ != false) {
        if ((((((to->super_Symbol).field_0x3a & 7) != 0) ||
             (((to->super_Symbol).field_0x3b & 0x20) != 0)) ||
            (bVar11 = Symbol::var_9((to->super_Symbol).u2_.shndx), !bVar11)) ||
           ((var_13 || (bVar11 = Symbol::var_9(var_10), !bVar11)))) {
          var_23<64,var_24>(this,to,sym,var_10,var_13,var_7,version);
          return;
        }
        var_25 = to->symsize_;
        var_26 = to->value_;
        var_23<64,var_24>(this,to,sym,var_10,false,var_7,version);
        if (to->symsize_ < var_25) {
          to->symsize_ = var_25;
        }
        if (var_26 <= to->value_) {
          return;
        }
        to->value_ = var_26;
        return;
      }
    }
    else {
      var_22 = parameters->options_;
      if (var_22 == (type_9 *)0x0) goto LAB_002c17cc;
    }
    if ((var_22->detect_odr_violations_).value != false) {
      pSVar4 = sym->p_;
      if ((((((int)(type_7)pSVar4->st_info >> 4 == 2) ||
            ((type_1)(to->super_Symbol).field_0x38 >> 4 == 2)) &&
           (((var_27 != 0 & var_8) != 0 &&
            ((((var_11 != 0 && (pSVar4->st_size != 0)) && (to->symsize_ != 0)) &&
             (((pSVar4->st_info & 0xf) != ((to->super_Symbol).field_0x38 & 0xf) ||
              (to->symsize_ != pSVar4->st_size)))))))) &&
          (pcVar16 = (to->super_Symbol).name_, *pcVar16 == '_')) && (pcVar16[1] == 'Z')) {
        local_68 = pSVar4->st_value;
        _adjust_common_sizes = var_7;
        local_70 = var_27;
        if (((to->super_Symbol).field_0x3a & 7) != 0) {
LAB_002c1bd9:
                    /* WARNING: Subroutine does not return */
          var_6("../../gold/symtab.h",0xa1,"object");
        }
        var_18 = (to->super_Symbol).u1_;
        var_5._M_allocated_capacity = to->value_;
        local_88 = pcVar16;
        local_50 = var_11;
        __node_gen._M_h =
             (__hashtable_alloc *)
             std::__detail::
             _Map_base<char_const*,var_38::pair<char_const*_const,var_38::unordered_set<var_37::Symbol_location,_gold::Symbol_location_hash,var_38::equal_to<var_37::Symbol_location>,var_38::var_2<var_37::Symbol_location>var_4>var_4>,var_38::var_2<std::pair<char_const*_const,var_38::unordered_set<var_37::Symbol_location,_gold::Symbol_location_hash,var_38::equal_to<var_37::Symbol_location>,var_38::var_2<var_37::Symbol_location>var_4>var_4>var_4>,var_38::__detail::_Select1st,var_38::equal_to<char_const*>,var_38::hash<char_const*>,var_38::__detail::_Mod_range_hashing,var_38::__detail::_Default_ranged_hash,var_38::__detail::_Prime_rehash_policy,var_38::__detail::var_28<false,var_24,var_29>,var_29>
             ::operator[]((_Map_base<char_const*,var_38::pair<char_const*_const,var_38::unordered_set<var_37::Symbol_location,_gold::Symbol_location_hash,var_38::equal_to<var_37::Symbol_location>,var_38::var_2<var_37::Symbol_location>var_4>var_4>,var_38::var_2<std::pair<char_const*_const,var_38::unordered_set<var_37::Symbol_location,_gold::Symbol_location_hash,var_38::equal_to<var_37::Symbol_location>,var_38::var_2<var_37::Symbol_location>var_4>var_4>var_4>,var_38::__detail::_Select1st,var_38::equal_to<char_const*>,var_38::hash<char_const*>,var_38::__detail::_Mod_range_hashing,var_38::__detail::_Default_ranged_hash,var_38::__detail::_Prime_rehash_policy,var_38::__detail::var_28<false,var_24,var_29>,var_29>
                           *)&this->candidate_odr_violations_,&local_88);
        std::
        _Hashtable<var_37::Symbol_location,_gold::Symbol_location,var_38::var_2<var_37::Symbol_location>,var_38::__detail::_Identity,var_38::equal_to<var_37::Symbol_location>,_gold::Symbol_location_hash,var_38::__detail::_Mod_range_hashing,var_38::__detail::_Default_ranged_hash,var_38::__detail::_Prime_rehash_policy,var_38::__detail::var_28<true,var_29,var_29>var_4>
        ::
        _M_insert<const_gold::Symbol_location&,var_38::__detail::_AllocNode<std::var_2<std::__detail::_Hash_node<var_37::Symbol_location,var_29>var_4>var_4>var_4>
                  ((_Hashtable<var_37::Symbol_location,_gold::Symbol_location,var_38::var_2<var_37::Symbol_location>,var_38::__detail::_Identity,var_38::equal_to<var_37::Symbol_location>,_gold::Symbol_location_hash,var_38::__detail::_Mod_range_hashing,var_38::__detail::_Default_ranged_hash,var_38::__detail::_Prime_rehash_policy,var_38::__detail::var_28<true,var_29,var_29>var_4>
                    *)__node_gen._M_h,&var_34,&__node_gen,1);
        local_88 = (to->super_Symbol).name_;
        __node_gen._M_h =
             (__hashtable_alloc *)
             std::__detail::
             _Map_base<char_const*,var_38::pair<char_const*_const,var_38::unordered_set<var_37::Symbol_location,_gold::Symbol_location_hash,var_38::equal_to<var_37::Symbol_location>,var_38::var_2<var_37::Symbol_location>var_4>var_4>,var_38::var_2<std::pair<char_const*_const,var_38::unordered_set<var_37::Symbol_location,_gold::Symbol_location_hash,var_38::equal_to<var_37::Symbol_location>,var_38::var_2<var_37::Symbol_location>var_4>var_4>var_4>,var_38::__detail::_Select1st,var_38::equal_to<char_const*>,var_38::hash<char_const*>,var_38::__detail::_Mod_range_hashing,var_38::__detail::_Default_ranged_hash,var_38::__detail::_Prime_rehash_policy,var_38::__detail::var_28<false,var_24,var_29>,var_29>
             ::operator[]((_Map_base<char_const*,var_38::pair<char_const*_const,var_38::unordered_set<var_37::Symbol_location,_gold::Symbol_location_hash,var_38::equal_to<var_37::Symbol_location>,var_38::var_2<var_37::Symbol_location>var_4>var_4>,var_38::var_2<std::pair<char_const*_const,var_38::unordered_set<var_37::Symbol_location,_gold::Symbol_location_hash,var_38::equal_to<var_37::Symbol_location>,var_38::var_2<var_37::Symbol_location>var_4>var_4>var_4>,var_38::__detail::_Select1st,var_38::equal_to<char_const*>,var_38::hash<char_const*>,var_38::__detail::_Mod_range_hashing,var_38::__detail::_Default_ranged_hash,var_38::__detail::_Prime_rehash_policy,var_38::__detail::var_28<false,var_24,var_29>,var_29>
                           *)&this->candidate_odr_violations_,&local_88);
        std::
        _Hashtable<var_37::Symbol_location,_gold::Symbol_location,var_38::var_2<var_37::Symbol_location>,var_38::__detail::_Identity,var_38::equal_to<var_37::Symbol_location>,_gold::Symbol_location_hash,var_38::__detail::_Mod_range_hashing,var_38::__detail::_Default_ranged_hash,var_38::__detail::_Prime_rehash_policy,var_38::__detail::var_28<true,var_29,var_29>var_4>
        ::
        _M_insert<const_gold::Symbol_location&,var_38::__detail::_AllocNode<std::var_2<std::__detail::_Hash_node<var_37::Symbol_location,var_29>var_4>var_4>var_4>
                  ((_Hashtable<var_37::Symbol_location,_gold::Symbol_location,var_38::var_2<var_37::Symbol_location>,var_38::__detail::_Identity,var_38::equal_to<var_37::Symbol_location>,_gold::Symbol_location_hash,var_38::__detail::_Mod_range_hashing,var_38::__detail::_Default_ranged_hash,var_38::__detail::_Prime_rehash_policy,var_38::__detail::var_28<true,var_29,var_29>var_4>
                    *)__node_gen._M_h,&var_35,&__node_gen,1);
      }
    }
    local_98 = &var_34;
    iVar12 = (*var_7->_vptr_Object[5])(var_7);
    if (var_20(extraout_var_01,iVar12) == 0) {
      SVar17 = (type_5)sym->p_->st_info;
      var_32 = SVar17;
    }
    else {
      SVar17 = (type_5)sym->p_->st_info;
      var_32 = (type_7)(type_1)(to->super_Symbol).field_0x38;
    }
    var_11 = var_30((int)SVar17 >> 4,(bool)(var_7->field_0x3c & 1),var_10,var_13);
    var_25 = to->symsize_;
    bVar11 = var_31(&to->super_Symbol,var_11,var_32 & var_33,OBJECT,var_7,local_98,
                             &var_35,is_default_version);
    if (bVar11) {
      var_8 = (to->super_Symbol).field_0x38;
      var_26 = to->value_;
      var_23<64,var_24>(this,to,sym,var_10,var_13,var_7,version);
      if (var_34 != false) {
        if (to->symsize_ < var_25) {
          to->symsize_ = var_25;
        }
        if (to->value_ < var_26) {
          to->value_ = var_26;
        }
      }
      if ((var_35 != false) &&
         ((var_36 = (to->super_Symbol).field_0x3c, (var_36 & 1) == 0 || ((var_36 & 2) != 0)))) {
        (to->super_Symbol).field_0x3c =
             (to->super_Symbol).field_0x3c & 0xfd | (var_8 >> 4 == 2) * '\x02' | 1;
      }
    }
    else {
      pSVar4 = sym->p_;
      if (var_34 != false) {
        if (var_25 < pSVar4->st_size) {
          to->symsize_ = pSVar4->st_size;
        }
        if (to->value_ < pSVar4->st_value) {
          to->value_ = pSVar4->st_value;
        }
      }
      if (var_35 != false) {
        var_8 = (to->super_Symbol).field_0x3c;
        if (((var_8 & 1) == 0) || ((var_8 & 2) != 0)) {
          (to->super_Symbol).field_0x3c =
               (to->super_Symbol).field_0x3c & 0xfd |
               ((int)(type_7)pSVar4->st_info >> 4 == 2) * '\x02' | 1;
        }
      }
      var_8 = pSVar4->st_other & 3;
      if ((pSVar4->st_other & 3) != 0) {
        var_36 = (to->super_Symbol).field_0x39;
        if (((var_36 & 3) == 0) || (var_8 < (var_36 & 3))) {
          (to->super_Symbol).field_0x39 = var_8 | var_36 & 0xfc;
        }
      }
    }
    var_8 = (to->super_Symbol).field_0x3a;
    if ((var_8 & 7) == 0) {
      pOVar6 = (to->super_Symbol).u1_.output_segment;
      var_36 = *(type_1 *)((long)&pOVar6->output_lists_[2].
                               super__Vector_base<var_37::Output_data*,var_38::var_2<var_37::Output_data*>var_4>
                               ._M_impl._M_finish + 4);
      if ((((var_36 & 1) != 0) && ((char)var_8 < '\0')) &&
         (((to->super_Symbol).field_0x3c & 2) == 0)) {
        *(type_1 *)((long)&pOVar6->output_lists_[2].
                         super__Vector_base<var_37::Output_data*,var_38::var_2<var_37::Output_data*>var_4>
                         ._M_impl._M_finish + 4) = var_36 | 2;
      }
    }
    if (var_34 != false) {
      if (parameters->options_ == (type_9 *)0x0) {
LAB_002c17cc:
                    /* WARNING: Subroutine does not return */
        var_6("../../gold/parameters.h",0x5c,"options");
      }
      if ((parameters->options_->warn_common_).value != false) {
        pcVar16 = (char *)var_15();
        var_39(false,pcVar16,&to->super_Symbol,OBJECT,var_7);
      }
    }
  }
  return;
}


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

ulong MASKED(long param_1,undefined8 *param_2,ulong *param_3,int param_4,char param_5,
                  int param_6,long *param_7,ulong param_8,undefined1 param_9)

{
  byte bVar1;
  int iVar2;
  long *plVar3;
  ulong uVar4;
  undefined8 *puVar5;
  char cVar6;
  undefined4 uVar7;
  uint uVar8;
  ulong uVar9;
  long lVar10;
  undefined8 uVar11;
  ulong uVar12;
  undefined8 uVar13;
  uint uVar14;
  char *pcVar15;
  byte bVar16;
  long **local_98;
  char *local_88;
  undefined8 local_80;
  long *local_78;
  int local_70;
  undefined8 local_68;
  undefined8 *local_58;
  int local_50;
  undefined8 local_48 [3];
  
  if ((*(byte *)((long)param_2 + 0x3a) & 7) != 0) {
                    /* WARNING: Subroutine does not return */
    FUN_001e9890("../../gold/symtab.h",0xaa,"shndx");
  }
  iVar2 = *(int *)(param_2 + 3);
  bVar16 = *(byte *)((long)param_2 + 0x3b) >> 5 & 1;
  if (param_7 == (long *)param_2[2]) {
    if (bVar16 == 0) {
      cVar6 = FUN_002dd6f0(iVar2);
      if ((((cVar6 == '\x01') || (param_5 == '\0')) && (param_4 == 0xfff1)) && (param_5 != '\x01'))
      goto LAB_002c14d0;
    }
    else if (((iVar2 != 0) && (param_5 != '\0')) && (param_4 == iVar2)) goto LAB_002c1838;
  }
  else if (((param_5 != '\x01') && (param_4 == 0xfff1)) && (bVar16 == 0)) {
LAB_002c14d0:
    if (iVar2 == 0xfff1) {
LAB_002c1838:
      if (*(long *)(*param_3 + 8) == param_2[8]) {
        return *param_3;
      }
    }
  }
  plVar3 = *(long **)(PTR_DAT_004ba7c8 + 0x18);
  if (plVar3 == (long *)0x0) {
                    /* WARNING: Subroutine does not return */
    FUN_001e9890("../../gold/parameters.h",0x69,"target");
  }
  if ((*(char *)(plVar3[1] + 0xd) == '\0') ||
     (uVar9 = (**(code **)(*plVar3 + 0x158))(plVar3,param_2,param_3,param_7,param_8),
     (char)uVar9 == '\0')) {
    if ((*(byte *)((long)param_7 + 0x3c) & 1) == 0) {
      if (((*(byte *)(*param_3 + 4) & 0xf) == 5) &&
         ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))) {
        if ((*(byte *)((long)param_2 + 0x3a) & 7) == 0) {
          uVar11 = *(undefined8 *)(param_2[2] + 8);
          FUN_002de930(&local_58,param_2);
          puVar5 = local_58;
          uVar13 = gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");
                    /* try { // try from 002c1a10 to 002c1a14 has its CatchHandler @ 002c1bf1 */
          uVar9 = FUN_001e15a0(uVar13,puVar5,uVar11);
          if (local_58 == local_48) {
            return uVar9;
          }
          uVar9 = FUN_00338a50();
          return uVar9;
        }
        goto LAB_002c1bd9;
      }
      *(byte *)((long)param_2 + 0x3a) = *(byte *)((long)param_2 + 0x3a) | 0x80;
      lVar10 = (**(code **)(*param_7 + 0x28))(param_7);
    }
    else {
      if ((param_4 == 0) && (uVar8 = (*(byte *)((long)param_2 + 0x39) & 3) - 1, uVar8 < 2)) {
        return (ulong)uVar8;
      }
      *(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 1;
      lVar10 = (**(code **)(*param_7 + 0x28))(param_7);
    }
    if ((lVar10 == 0) && ((*(byte *)((long)param_7 + 0x3c) & 1) == 0)) {
      *(byte *)((long)param_2 + 0x3b) = *(byte *)((long)param_2 + 0x3b) | 0x40;
    }
    if (((*(byte *)((long)param_2 + 0x3a) & 7) == 0) &&
       (lVar10 = (**(code **)(*(long *)param_2[2] + 0x28))(), lVar10 != 0)) {
      lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10);
      if (lVar10 == 0) goto LAB_002c17cc;
      if (*(char *)(*(long *)(lVar10 + 0x9058) + 0xb1) != '\0') {
        if (((((*(byte *)((long)param_2 + 0x3a) & 7) != 0) ||
             ((*(byte *)((long)param_2 + 0x3b) & 0x20) != 0)) ||
            (cVar6 = FUN_002dd6f0(*(undefined4 *)(param_2 + 3)), cVar6 != '\x01')) ||
           ((param_5 != '\0' || (cVar6 = FUN_002dd6f0(param_4), cVar6 == '\0')))) {
          FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7);
          return param_8;
        }
        uVar9 = param_2[9];
        uVar4 = param_2[8];
        uVar12 = FUN_002bffb0(param_1,param_2,param_3,param_4,0,param_7,param_8);
        if ((ulong)param_2[9] < uVar9) {
          param_2[9] = uVar9;
        }
        if (uVar4 <= (ulong)param_2[8]) {
          return uVar12;
        }
        param_2[8] = uVar4;
        return uVar12;
      }
    }
    else {
      lVar10 = *(long *)(PTR_DAT_004ba7c8 + 0x10);
      if (lVar10 == 0) goto LAB_002c17cc;
    }
    if (*(char *)(lVar10 + 0x16b1) != '\0') {
      uVar9 = *param_3;
      if ((((((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) || (*(byte *)(param_2 + 7) >> 4 == 2)) &&
           (((param_6 != 0 & bVar16) != 0 &&
            (((iVar2 != 0 && (*(long *)(uVar9 + 0x10) != 0)) && (param_2[9] != 0)))))) &&
          (((*(byte *)(uVar9 + 4) & 0xf) != (*(byte *)(param_2 + 7) & 0xf) ||
           (param_2[9] != *(long *)(uVar9 + 0x10))))) &&
         ((pcVar15 = (char *)*param_2, *pcVar15 == '_' && (pcVar15[1] == 'Z')))) {
        local_68 = *(undefined8 *)(uVar9 + 8);
        local_78 = param_7;
        local_70 = param_6;
        if ((*(byte *)((long)param_2 + 0x3a) & 7) != 0) {
LAB_002c1bd9:
                    /* WARNING: Subroutine does not return */
          FUN_001e9890("../../gold/symtab.h",0xa1,"object");
        }
        local_58 = (undefined8 *)param_2[2];
        local_48[0] = param_2[8];
        local_88 = pcVar15;
        local_50 = iVar2;
        local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);
        FUN_001c3360(local_80,&local_78,&local_80,1);
        local_88 = (char *)*param_2;
        local_80 = FUN_002bf9a0(param_1 + 0x218,&local_88);
        FUN_001c3360(local_80,&local_58,&local_80,1);
      }
    }
    local_98 = &local_78;
    lVar10 = (**(code **)(*param_7 + 0x28))(param_7);
    if (lVar10 == 0) {
      uVar14 = (uint)*(byte *)(*param_3 + 4);
      uVar8 = uVar14;
    }
    else {
      uVar14 = (uint)*(byte *)(*param_3 + 4);
      uVar8 = (uint)*(byte *)(param_2 + 7);
    }
    uVar7 = FUN_002be580((int)uVar14 >> 4,*(byte *)((long)param_7 + 0x3c) & 1,param_4,param_5);
    uVar4 = param_2[9];
    cVar6 = FUN_002be950(param_2,uVar7,uVar8 & 0xf,0,param_7,local_98,&local_58,param_9);
    if (cVar6 == '\0') {
      uVar9 = *param_3;
      if ((char)local_78 != '\0') {
        if (uVar4 < *(ulong *)(uVar9 + 0x10)) {
          param_2[9] = *(ulong *)(uVar9 + 0x10);
        }
        if ((ulong)param_2[8] < *(ulong *)(uVar9 + 8)) {
          param_2[8] = *(ulong *)(uVar9 + 8);
        }
      }
      if ((char)local_58 != '\0') {
        if (((*(byte *)((long)param_2 + 0x3c) & 1) == 0) ||
           ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)) {
          *(byte *)((long)param_2 + 0x3c) =
               *(byte *)((long)param_2 + 0x3c) & 0xfd |
               ((int)(uint)*(byte *)(uVar9 + 4) >> 4 == 2) * '\x02' | 1;
        }
      }
      bVar16 = *(byte *)(uVar9 + 5) & 3;
      if ((*(byte *)(uVar9 + 5) & 3) != 0) {
        bVar1 = *(byte *)((long)param_2 + 0x39);
        if (((bVar1 & 3) == 0) || (bVar16 < (bVar1 & 3))) {
          *(byte *)((long)param_2 + 0x39) = bVar16 | bVar1 & 0xfc;
        }
      }
    }
    else {
      bVar16 = *(byte *)(param_2 + 7);
      uVar9 = param_2[8];
      FUN_002bffb0(param_1,param_2,param_3,param_4,param_5,param_7,param_8);
      if ((char)local_78 != '\0') {
        if ((ulong)param_2[9] < uVar4) {
          param_2[9] = uVar4;
        }
        if ((ulong)param_2[8] < uVar9) {
          param_2[8] = uVar9;
        }
      }
      if (((char)local_58 != '\0') &&
         (((*(byte *)((long)param_2 + 0x3c) & 1) == 0 ||
          ((*(byte *)((long)param_2 + 0x3c) & 2) != 0)))) {
        *(byte *)((long)param_2 + 0x3c) =
             *(byte *)((long)param_2 + 0x3c) & 0xfd | (bVar16 >> 4 == 2) * '\x02' | 1;
      }
    }
    bVar16 = *(byte *)((long)param_2 + 0x3a);
    uVar9 = (ulong)bVar16;
    if ((bVar16 & 7) == 0) {
      bVar1 = *(byte *)(param_2[2] + 0x3c);
      if ((((bVar1 & 1) != 0) && ((char)bVar16 < '\0')) &&
         ((*(byte *)((long)param_2 + 0x3c) & 2) == 0)) {
        *(byte *)(param_2[2] + 0x3c) = bVar1 | 2;
      }
    }
    if ((char)local_78 != '\0') {
      uVar9 = *(ulong *)(PTR_DAT_004ba7c8 + 0x10);
      if (uVar9 == 0) {
LAB_002c17cc:
                    /* WARNING: Subroutine does not return */
        FUN_001e9890("../../gold/parameters.h",0x5c,"options");
      }
      if (*(char *)(uVar9 + 0x6de1) != '\0') {
        pcVar15 = "common of \'%s\' overriding smaller common";
        uVar9 = *(ulong *)(*param_3 + 0x10);
        if ((uVar9 > uVar4 || uVar4 == uVar9) &&
           (pcVar15 = "common of \'%s\' overidden by larger common", uVar9 <= uVar4)) {
          pcVar15 = "multiple common of \'%s\'";
        }
        uVar11 = gettext(pcVar15);
        uVar9 = FUN_002be7a0(0,uVar11,param_2,0,param_7);
      }
    }
  }
  return uVar9;
}

