
/* WARNING: Restarted to delay deadcode elimination for space: stack */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original name: add_from_dynobj<64, false>
   DWARF original prototype: void add_from_dynobj<64,_false>(Symbol_table * this,
   Sized_dynobj<64,_false> * dynobj, uchar * syms, size_t count, char * sym_names, size_t
   sym_name_size, uchar * versym, size_t versym_size,
   vector<char_const*,_std::allocator<char_const*>_> * version_map, Symbols * sympointers, size_t *
   defined) */

void __thiscall
gold::Symbol_table::add_from_dynobj<64,_false>
          (Symbol_table *this,Sized_dynobj<64,_false> *dynobj,uchar *syms,size_t count,
          char *sym_names,size_t sym_name_size,uchar *versym,size_t versym_size,
          vector<char_const*,_std::allocator<char_const*>_> *version_map,Symbols *sympointers,
          size_t *defined)

{
  undefined1 *puVar1;
  Input_file *this_00;
  pointer ppcVar2;
  undefined8 uVar3;
  Sym_data<64> *pSVar4;
  Sym<64,_false> *sym_00;
  bool bVar5;
  int iVar6;
  uint st_shndx;
  char *pcVar7;
  ulong uVar8;
  Xindex *this_01;
  byte bVar9;
  byte bVar10;
  char *pcVar11;
  ushort uVar12;
  uint local_c0;
  ushort local_bc;
  byte local_ba;
  bool local_b9;
  size_t local_b0;
  Sym<64,_false> sym;
  Sym<64,_false> sym2;
  Sized_symbol<64> *res;
  Key name_key_1;
  Key name_key;
  vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_> object_symbols;
  uchar symbuf [24];
  undefined4 extraout_var;
  
  *defined = 0;
  if (parameters->target_ == (Target *)0x0) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/parameters.h",0x69,"target");
  }
  if (**(int **)(parameters->target_ + 8) != 0x40) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/symtab.cc",0x5bd,"add_from_dynobj");
  }
  this_00 = (dynobj->super_Dynobj).super_Object.input_file_;
  if (this_00 == (Input_file *)0x0) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/object.h",0x1ea,"input_file");
  }
  bVar5 = Input_file::just_symbols(this_00);
  if (bVar5) {
    pcVar7 = (char *)gettext("--just-symbols does not make sense with a shared object");
    gold_error(pcVar7);
    return;
  }
  bVar5 = Parameters::incremental_update(parameters);
  if ((versym == (uchar *)0x0) || (bVar5)) {
    versym = (uchar *)0x0;
  }
  else if (versym_size >> 1 < count) {
    pcVar7 = (char *)gettext("too few symbol versions");
    Object::error((Object *)dynobj,pcVar7);
    return;
  }
  object_symbols.
  super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>._M_impl.
  _M_start = (pointer)0x0;
  object_symbols.
  super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>._M_impl.
  _M_finish = (pointer)0x0;
  object_symbols.
  super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>._M_impl.
  _M_end_of_storage = (pointer)0x0;
  local_b0 = 0;
  if (count != 0) {
    do {
      if (sympointers != (Symbols *)0x0) {
        (sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.
        _M_start[local_b0] = (Symbol *)0x0;
      }
      iVar6 = (int)(uint)((Sym_data<64> *)syms)->st_info >> 4;
      sym.p_ = (Sym_data<64> *)syms;
      if (iVar6 != 0) {
        bVar10 = ((Sym_data<64> *)syms)->st_other & 3;
        if (1 < (byte)(bVar10 - 1)) {
          bVar9 = ((Sym_data<64> *)syms)->st_info & 0xf;
          if (bVar10 == 3) {
            uVar3._0_4_ = ((Sym_data<64> *)syms)->st_name;
            uVar3._4_1_ = ((Sym_data<64> *)syms)->st_info;
            uVar3._5_1_ = ((Sym_data<64> *)syms)->st_other;
            uVar3._6_2_ = ((Sym_data<64> *)syms)->st_shndx;
            symbuf._8_8_ = ((Sym_data<64> *)syms)->st_value;
            symbuf._16_8_ = ((Sym_data<64> *)syms)->st_size;
            symbuf._6_2_ = (undefined2)((ulong)uVar3 >> 0x30);
            symbuf._0_5_ = (undefined5)uVar3;
            symbuf._0_8_ = CONCAT26(symbuf._6_2_,
                                    CONCAT15(((Sym_data<64> *)syms)->st_other,symbuf._0_5_)) &
                           0xfffffcffffffffff;
            if (bVar9 == 10) goto LAB_0022ef70;
LAB_0022ef0b:
            uVar8 = symbuf._0_8_ & 0xffffffff;
            pSVar4 = (Sym_data<64> *)symbuf;
            sym_00 = &sym2;
          }
          else {
            if (bVar9 == 10) {
              symbuf._16_8_ = ((Sym_data<64> *)syms)->st_size;
              symbuf._0_8_ = *(undefined8 *)syms;
              symbuf._8_8_ = ((Sym_data<64> *)syms)->st_value;
LAB_0022ef70:
              symbuf[4] = (char)(iVar6 << 4) + '\x02';
              goto LAB_0022ef0b;
            }
            sym_00 = &sym;
            uVar8 = (ulong)((Sym_data<64> *)syms)->st_name;
            pSVar4 = (Sym_data<64> *)syms;
          }
          sym2.p_ = (Sym_data<64> *)symbuf;
          if (uVar8 < sym_name_size) {
            uVar12 = pSVar4->st_shndx;
            st_shndx = (uint)uVar12;
            if (uVar12 < 0xff00) {
              if (uVar12 == 0) goto LAB_0022ed4f;
LAB_0022f012:
              local_b9 = true;
LAB_0022ec44:
              *defined = *defined + 1;
              if (versym != (uchar *)0x0) {
                local_bc = *(ushort *)(versym + local_b0 * 2);
                uVar12 = local_bc & 0x7fff;
                local_c0 = (uint)uVar12;
                if (local_c0 == 0) goto LAB_0022ec88;
                local_ba = 1;
                goto LAB_0022ed91;
              }
LAB_0022ef87:
              pcVar7 = Stringpool_template<char>::add
                                 (&this->namepool_,sym_names + uVar8,true,&name_key);
              res = add_from_object<64,_false>
                              (this,(Object *)dynobj,pcVar7,name_key,(char *)0x0,0,false,sym_00,
                               st_shndx,local_b9,st_shndx);
            }
            else {
              local_b9 = false;
              if (uVar12 != 0xffff) goto LAB_0022ec44;
              this_01 = (dynobj->super_Dynobj).super_Object.xindex_;
              if (this_01 == (Xindex *)0x0) {
                iVar6 = (*(dynobj->super_Dynobj).super_Object._vptr_Object[0x1b])(dynobj);
                this_01 = (Xindex *)CONCAT44(extraout_var,iVar6);
                (dynobj->super_Dynobj).super_Object.xindex_ = this_01;
              }
              st_shndx = Xindex::sym_xindex_to_shndx(this_01,(Object *)dynobj,(uint)local_b0);
              if (st_shndx != 0) goto LAB_0022f012;
LAB_0022ed4f:
              if (versym == (uchar *)0x0) {
                local_b9 = true;
                goto LAB_0022ef87;
              }
              local_ba = 0;
              local_b9 = true;
              local_bc = *(ushort *)(versym + local_b0 * 2);
              uVar12 = local_bc & 0x7fff;
              local_c0 = (uint)uVar12;
LAB_0022ed91:
                    /* try { // try from 0022edb6 to 0022f0c1 has its CatchHandler @ 0022f284 */
              pcVar7 = Stringpool_template<char>::add
                                 (&this->namepool_,sym_names + uVar8,true,&name_key_1);
              if (1 < uVar12) {
                pcVar11 = "versym for symbol %zu out of range: %u";
                ppcVar2 = (version_map->
                          super__Vector_base<char_const*,_std::allocator<char_const*>_>)._M_impl.
                          _M_start;
                if ((ulong)uVar12 <
                    (ulong)((long)(version_map->
                                  super__Vector_base<char_const*,_std::allocator<char_const*>_>).
                                  _M_impl._M_finish - (long)ppcVar2 >> 3)) {
                  pcVar11 = ppcVar2[uVar12];
                  if (pcVar11 != (char *)0x0) {
                    pcVar11 = Stringpool_template<char>::add
                                        (&this->namepool_,pcVar11,true,&name_key);
                    if (((st_shndx == 0xfff1) && (local_b9 == false)) && (name_key == name_key_1)) {
                    /* try { // try from 0022f1bf to 0022f1fd has its CatchHandler @ 0022f284 */
                      res = add_from_object<64,_false>
                                      (this,(Object *)dynobj,pcVar7,name_key,(char *)0x0,0,false,
                                       sym_00,0xfff1,false,0xfff1);
                    }
                    else {
                      res = add_from_object<64,_false>
                                      (this,(Object *)dynobj,pcVar7,name_key_1,pcVar11,name_key,
                                       (bool)((byte)~(byte)(local_bc >> 8) >> 7 & local_ba),sym_00,
                                       st_shndx,local_b9,st_shndx);
                    }
                    goto LAB_0022ee87;
                  }
                  pcVar11 = "versym for symbol %zu has no name: %u";
                }
                pcVar7 = (char *)gettext(pcVar11);
                Object::error((Object *)dynobj,pcVar7,local_b0,(ulong)local_c0);
                goto LAB_0022ec88;
              }
              res = add_from_object<64,_false>
                              (this,(Object *)dynobj,pcVar7,name_key_1,(char *)0x0,0,false,sym_00,
                               st_shndx,local_b9,st_shndx);
            }
LAB_0022ee87:
            if (res != (Sized_symbol<64> *)0x0) {
              bVar10 = (res->super_Symbol).field_0x3a & 7;
              if (((st_shndx == 0) || (local_b9 == false)) || ((sym_00->p_->st_info & 0xf) != 1)) {
LAB_0022eeb4:
                if (bVar10 == 0) {
                  if (((res->super_Symbol).field_0x3a & 7) != 0) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0022f24f to 0022f253 has its CatchHandler @ 0022f284 */
                    do_gold_unreachable("../../gold/symtab.h",0xa1,"object");
                  }
LAB_0022eec2:
                  if ((dynobj == (Sized_dynobj<64,_false> *)(res->super_Symbol).u1_.object) &&
                     (((sym.p_)->st_other & 3) == 3)) {
                    puVar1 = &(res->super_Symbol).field_0x3c;
                    *puVar1 = *puVar1 | 8;
                  }
                }
              }
              else if (bVar10 == 0) {
                if (dynobj == (Sized_dynobj<64,_false> *)(res->super_Symbol).u1_.object) {
                  if (object_symbols.
                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>
                      ._M_impl._M_finish ==
                      object_symbols.
                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>
                      ._M_impl._M_end_of_storage) {
                    std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>::
                    _M_realloc_insert<gold::Sized_symbol<64>*_const&>
                              (&object_symbols,
                               (iterator)
                               object_symbols.
                               super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>
                               ._M_impl._M_finish,&res);
                    bVar10 = (res->super_Symbol).field_0x3a & 7;
                  }
                  else {
                    *object_symbols.
                     super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>
                     ._M_impl._M_finish = res;
                    object_symbols.
                    super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>
                    ._M_impl._M_finish =
                         object_symbols.
                         super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>
                         ._M_impl._M_finish + 1;
                    bVar10 = (res->super_Symbol).field_0x3a & 7;
                  }
                  goto LAB_0022eeb4;
                }
                goto LAB_0022eec2;
              }
              if (sympointers != (Symbols *)0x0) {
                (sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).
                _M_impl._M_start[local_b0] = &res->super_Symbol;
              }
            }
          }
          else {
            pcVar7 = (char *)gettext("bad symbol name offset %u at %zu");
            Object::error((Object *)dynobj,pcVar7,uVar8,local_b0);
          }
        }
      }
LAB_0022ec88:
      local_b0 = local_b0 + 1;
      syms = (uchar *)((long)syms + 0x18);
    } while (count != local_b0);
  }
  record_weak_aliases<64>(this,&object_symbols);
  if (object_symbols.
      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>._M_impl.
      _M_start != (pointer)0x0) {
    operator_delete(object_symbols.
                    super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>
                    ._M_impl._M_start);
  }
  return;
}



/* WARNING: Restarted to delay deadcode elimination for space: stack */

void FUN_0022eaf0(long param_1,long *param_2,ulong *param_3,ulong param_4,long param_5,ulong param_6
                 ,long param_7,ulong param_8,long *param_9,long *param_10,long *param_11)

{
  ulong *puVar1;
  ulong **ppuVar2;
  char cVar3;
  int iVar4;
  uint uVar5;
  undefined8 uVar6;
  ulong uVar7;
  undefined8 uVar8;
  long lVar9;
  byte bVar10;
  byte bVar11;
  char *pcVar12;
  ushort uVar13;
  ushort local_bc;
  byte local_ba;
  char local_b9;
  ulong local_b0;
  ulong *local_a0;
  ulong *local_98;
  long local_90;
  long local_88;
  long local_80;
  long local_78;
  long *local_70;
  long *local_68;
  undefined8 local_58;
  ulong uStack_50;
  ulong local_48;
  
  *param_11 = 0;
  if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_0016cdf0("../../gold/parameters.h",0x69,"target");
  }
  if (**(int **)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8) != 0x40) {
                    /* WARNING: Subroutine does not return */
    FUN_0016cdf0("../../gold/symtab.cc",0x5bd,"add_from_dynobj");
  }
  if (param_2[5] == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_0016cdf0("../../gold/object.h",0x1ea,"input_file");
  }
  cVar3 = FUN_0016aff0();
  if (cVar3 != '\0') {
    uVar6 = gettext("--just-symbols does not make sense with a shared object");
    FUN_001690a0(uVar6);
    return;
  }
  cVar3 = FUN_001ee080(PTR_DAT_003be6b0);
  if ((param_7 == 0) || (cVar3 == '\x01')) {
    param_7 = 0;
  }
  else if (param_8 >> 1 < param_4) {
    uVar6 = gettext("too few symbol versions");
    FUN_0019a740(param_2,uVar6);
    return;
  }
  local_78 = 0;
  local_70 = (long *)0x0;
  local_68 = (long *)0x0;
  local_b0 = 0;
  if (param_4 != 0) {
    do {
      if (param_10 != (long *)0x0) {
        *(undefined8 *)(*param_10 + local_b0 * 8) = 0;
      }
      iVar4 = (int)(uint)*(byte *)((long)param_3 + 4) >> 4;
      local_a0 = param_3;
      if (iVar4 != 0) {
        bVar11 = *(byte *)((long)param_3 + 5) & 3;
        if (1 < (byte)(bVar11 - 1)) {
          bVar10 = *(byte *)((long)param_3 + 4) & 0xf;
          if (bVar11 == 3) {
            uStack_50 = param_3[1];
            local_48 = param_3[2];
            local_58._6_2_ = (undefined2)(*param_3 >> 0x30);
            local_58._0_5_ = (undefined5)*param_3;
            local_58 = CONCAT26(local_58._6_2_,
                                CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58)) &
                       0xfffffcffffffffff;
            if (bVar10 == 10) goto LAB_0022ef70;
LAB_0022ef0b:
            uVar7 = local_58 & 0xffffffff;
            puVar1 = &local_58;
            ppuVar2 = &local_98;
          }
          else {
            if (bVar10 == 10) {
              local_48 = param_3[2];
              local_58 = *param_3;
              uStack_50 = param_3[1];
LAB_0022ef70:
              local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58);
              goto LAB_0022ef0b;
            }
            ppuVar2 = &local_a0;
            uVar7 = (ulong)(uint)*param_3;
            puVar1 = param_3;
          }
          local_98 = &local_58;
          if (uVar7 < param_6) {
            uVar13 = *(ushort *)((long)puVar1 + 6);
            uVar5 = (uint)uVar13;
            if (uVar13 < 0xff00) {
              if (uVar13 == 0) goto LAB_0022ed4f;
LAB_0022f012:
              local_b9 = '\x01';
LAB_0022ec44:
              *param_11 = *param_11 + 1;
              if (param_7 != 0) {
                local_bc = *(ushort *)(param_7 + local_b0 * 2);
                uVar13 = local_bc & 0x7fff;
                if (uVar13 == 0) goto LAB_0022ec88;
                local_ba = 1;
                goto LAB_0022ed91;
              }
LAB_0022ef87:
              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80);
              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,
                                      uVar5);
            }
            else {
              local_b9 = '\0';
              if (uVar13 != 0xffff) goto LAB_0022ec44;
              lVar9 = param_2[8];
              if (lVar9 == 0) {
                lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);
                param_2[8] = lVar9;
              }
              uVar5 = FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff);
              if (uVar5 != 0) goto LAB_0022f012;
LAB_0022ed4f:
              if (param_7 == 0) {
                local_b9 = '\x01';
                goto LAB_0022ef87;
              }
              local_ba = 0;
              local_b9 = '\x01';
              local_bc = *(ushort *)(param_7 + local_b0 * 2);
              uVar13 = local_bc & 0x7fff;
LAB_0022ed91:
                    /* try { // try from 0022edb6 to 0022f0c1 has its CatchHandler @ 0022f284 */
              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88);
              if (1 < uVar13) {
                pcVar12 = "versym for symbol %zu out of range: %u";
                if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {
                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);
                  if (lVar9 != 0) {
                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);
                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {
                    /* try { // try from 0022f1bf to 0022f1fd has its CatchHandler @ 0022f284 */
                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,
                                              0xfff1);
                    }
                    else {
                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,
                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,
                                              uVar5,local_b9,uVar5);
                    }
                    goto LAB_0022ee87;
                  }
                  pcVar12 = "versym for symbol %zu has no name: %u";
                }
                uVar6 = gettext(pcVar12);
                FUN_0019a740(param_2,uVar6,local_b0,uVar13);
                goto LAB_0022ec88;
              }
              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,
                                      uVar5);
            }
LAB_0022ee87:
            if (local_90 != 0) {
              bVar11 = *(byte *)(local_90 + 0x3a) & 7;
              if (((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)
                 ) {
LAB_0022eeb4:
                if (bVar11 == 0) {
                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0022f24f to 0022f253 has its CatchHandler @ 0022f284 */
                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");
                  }
LAB_0022eec2:
                  if ((param_2 == *(long **)(local_90 + 0x10)) &&
                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {
                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;
                  }
                }
              }
              else if (bVar11 == 0) {
                if (param_2 == *(long **)(local_90 + 0x10)) {
                  if (local_70 == local_68) {
                    FUN_00223290(&local_78,local_70,&local_90);
                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;
                  }
                  else {
                    *local_70 = local_90;
                    local_70 = local_70 + 1;
                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;
                  }
                  goto LAB_0022eeb4;
                }
                goto LAB_0022eec2;
              }
              if (param_10 != (long *)0x0) {
                *(long *)(*param_10 + local_b0 * 8) = local_90;
              }
            }
          }
          else {
            uVar6 = gettext("bad symbol name offset %u at %zu");
            FUN_0019a740(param_2,uVar6,uVar7,local_b0);
          }
        }
      }
LAB_0022ec88:
      local_b0 = local_b0 + 1;
      param_3 = param_3 + 3;
    } while (param_4 != local_b0);
  }
  FUN_0022e900(param_1,&local_78);
  if (local_78 != 0) {
    FUN_00276d20();
  }
  return;
}


PUSH RBP
MOV RBP,RSP
PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBX
SUB RSP,0xe8
MOV RAX,qword ptr [RBP + 0x30]
MOV qword ptr [RBP + -0xe0],RDI
MOV qword ptr [RBP + -0xc8],RSI
MOV R15,qword ptr [RBP + 0x28]
MOV qword ptr [RAX],0x0
MOV RAX,qword ptr [0x003be6b0]
MOV qword ptr [RBP + -0xe8],R8
MOV RAX,qword ptr [RAX + 0x18]
MOV qword ptr [RBP + -0xd8],R9
TEST RAX,RAX
JZ 0x0022f224
MOV RAX,qword ptr [RAX + 0x8]
CMP dword ptr [RAX],0x40
JNZ 0x0022f26c
MOV RAX,qword ptr [RBP + -0xc8]
MOV RDI,qword ptr [RAX + 0x28]
TEST RDI,RDI
JZ 0x0022f254
MOV RBX,RDX
MOV R14,RCX
CALL 0x0016aff0
TEST AL,AL
JNZ 0x0022f130
MOV RDI,qword ptr [0x003be6b0]
CALL 0x001ee080
CMP qword ptr [RBP + 0x10],0x0
JZ 0x0022ebc0
CMP AL,0x1
JZ 0x0022ebc0
MOV RAX,qword ptr [RBP + 0x18]
SHR RAX,0x1
CMP RAX,R14
JNC 0x0022ebc8
LEA RDI,[0x31f19e]
CALL 0x0013e320
MOV RDI,qword ptr [RBP + -0xc8]
MOV RSI,RAX
XOR EAX,EAX
CALL 0x0019a740
JMP 0x0022f03e
MOV qword ptr [RBP + 0x10],0x0
MOV qword ptr [RBP + -0x70],0x0
MOV qword ptr [RBP + -0x68],0x0
MOV qword ptr [RBP + -0x60],0x0
MOV qword ptr [RBP + -0xa8],0x0
TEST R14,R14
JZ 0x0022f020
LEA RAX,[RBP + -0x50]
MOV qword ptr [RBP + -0xb0],RAX
LEA RAX,[RBP + -0x90]
MOV qword ptr [RBP + -0xf0],RAX
LEA RAX,[RBP + -0x88]
MOV qword ptr [RBP + -0x108],RAX
LEA RAX,[RBP + -0x70]
MOV qword ptr [RBP + -0x110],RAX
JMP 0x0022eca4
MOV byte ptr [RBP + -0xb1],0x0
CMP R12D,0xffff
JZ 0x0022efe0
MOV RAX,qword ptr [RBP + 0x30]
ADD qword ptr [RAX],0x1
CMP qword ptr [RBP + 0x10],0x0
JZ 0x0022ef87
MOV RCX,qword ptr [RBP + -0xa8]
MOV RAX,qword ptr [RBP + 0x10]
MOVZX EAX,word ptr [RAX + RCX*0x2]
MOV R13D,EAX
AND R13W,0x7fff
MOVZX ECX,R13W
MOV dword ptr [RBP + -0xb8],ECX
TEST ECX,ECX
JNZ 0x0022f211
NOP dword ptr [RAX]
ADD qword ptr [RBP + -0xa8],0x1
MOV RAX,qword ptr [RBP + -0xa8]
ADD RBX,0x18
CMP R14,RAX
JZ 0x0022f020
MOV qword ptr [RBP + -0x98],RBX
TEST R15,R15
JZ 0x0022ecc2
MOV RAX,qword ptr [R15]
MOV RDI,qword ptr [RBP + -0xa8]
MOV qword ptr [RAX + RDI*0x8],0x0
MOVZX EAX,byte ptr [RBX + 0x4]
MOV EDX,EAX
SAR EAX,0x4
JZ 0x0022ec88
MOVZX ECX,byte ptr [RBX + 0x5]
MOV ESI,ECX
AND ESI,0x3
LEA EDI,[RSI + -0x1]
CMP DIL,0x1
JBE 0x0022ec88
MOV RDI,qword ptr [RBP + -0xb0]
AND EDX,0xf
MOV qword ptr [RBP + -0x90],RDI
CMP SIL,0x3
JZ 0x0022eef0
CMP DL,0xa
JZ 0x0022ef60
LEA RAX,[RBP + -0x98]
MOV RCX,RBX
MOV qword ptr [RBP + -0xc0],RAX
MOV EAX,dword ptr [RCX]
MOV R12,RAX
CMP RAX,qword ptr [RBP + -0xd8]
JNC 0x0022ef32
MOVZX R12D,word ptr [RCX + 0x6]
ADD RAX,qword ptr [RBP + -0xe8]
MOV qword ptr [RBP + -0xd0],RAX
CMP R12D,0xfeff
JA 0x0022ec30
TEST R12D,R12D
JNZ 0x0022f012
CMP qword ptr [RBP + 0x10],0x0
JZ 0x0022ef80
MOV RAX,qword ptr [RBP + 0x10]
MOV RCX,qword ptr [RBP + -0xa8]
MOV byte ptr [RBP + -0xb2],0x0
MOV byte ptr [RBP + -0xb1],0x1
MOVZX EAX,word ptr [RAX + RCX*0x2]
MOV R13D,EAX
MOV word ptr [RBP + -0xb4],AX
AND R13W,0x7fff
MOVZX EAX,R13W
MOV dword ptr [RBP + -0xb8],EAX
MOV RAX,qword ptr [RBP + -0xe0]
MOV RSI,qword ptr [RBP + -0xd0]
LEA RCX,[RBP + -0x80]
MOV EDX,0x1
ADD RAX,0x68
MOV RDI,RAX
MOV qword ptr [RBP + -0xf8],RAX
CALL 0x0021bf40
MOV qword ptr [RBP + -0xd0],RAX
CMP R13W,0x1
JBE 0x0022f050
MOV RAX,qword ptr [RBP + 0x20]
MOVZX R13D,R13W
LEA RDI,[0x31f150]
MOV RDX,qword ptr [RAX]
MOV RAX,qword ptr [RAX + 0x8]
MOV qword ptr [RBP + -0x100],RAX
SUB RAX,RDX
SAR RAX,0x3
CMP R13,RAX
JNC 0x0022f09f
MOV RSI,qword ptr [RDX + R13*0x8]
TEST RSI,RSI
JZ 0x0022f098
MOV RDI,qword ptr [RBP + -0xf8]
LEA RCX,[RBP + -0x78]
MOV EDX,0x1
CALL 0x0021bf40
MOV R8,RAX
MOV RCX,qword ptr [RBP + -0x80]
MOV RSI,qword ptr [RBP + -0x78]
CMP R12D,0xfff1
JNZ 0x0022ee3d
CMP byte ptr [RBP + -0xb1],0x0
JZ 0x0022f180
MOVZX EDX,word ptr [RBP + -0xb4]
MOVZX EAX,byte ptr [RBP + -0xb1]
SUB RSP,0x8
MOV R9,RSI
MOV RDI,qword ptr [RBP + -0xe0]
MOV RSI,qword ptr [RBP + -0xc8]
PUSH R12
NOT EDX
PUSH RAX
SHR DX,0xf
AND DL,byte ptr [RBP + -0xb2]
PUSH R12
MOVZX EDX,DL
PUSH qword ptr [RBP + -0xc0]
PUSH RDX
MOV RDX,qword ptr [RBP + -0xd0]
CALL 0x0022ad40
ADD RSP,0x30
MOV qword ptr [RBP + -0x88],RAX
TEST RAX,RAX
JZ 0x0022ec88
MOVZX EDX,byte ptr [RAX + 0x3a]
AND EDX,0x7
TEST R12D,R12D
JZ 0x0022eeb4
CMP byte ptr [RBP + -0xb1],0x0
JNZ 0x0022f0d0
TEST DL,DL
JNZ 0x0022eed3
TEST byte ptr [RAX + 0x3a],0x7
JNZ 0x0022f23c
MOV RCX,qword ptr [RBP + -0xc8]
CMP RCX,qword ptr [RAX + 0x10]
JZ 0x0022f158
TEST R15,R15
JZ 0x0022ec88
MOV RDX,qword ptr [R15]
MOV RSI,qword ptr [RBP + -0xa8]
MOV qword ptr [RDX + RSI*0x8],RAX
JMP 0x0022ec88
MOVDQU XMM0,xmmword ptr [RBX]
MOV RSI,qword ptr [RBX + 0x10]
AND ECX,0xfffffffc
MOVAPS xmmword ptr [RBP + -0x50],XMM0
MOV qword ptr [RBP + -0x40],RSI
MOV byte ptr [RBP + -0x4b],CL
CMP DL,0xa
JZ 0x0022ef70
MOV RAX,qword ptr [RBP + -0xf0]
MOV RCX,qword ptr [RBP + -0xb0]
MOV qword ptr [RBP + -0xc0],RAX
MOV EAX,dword ptr [RCX]
MOV R12,RAX
CMP RAX,qword ptr [RBP + -0xd8]
JC 0x0022ed26
LEA RDI,[0x31f128]
CALL 0x0013e320
MOV RCX,qword ptr [RBP + -0xa8]
MOV RDI,qword ptr [RBP + -0xc8]
MOV EDX,R12D
MOV RSI,RAX
XOR EAX,EAX
CALL 0x0019a740
JMP 0x0022ec88
MOV RDX,qword ptr [RBX + 0x10]
MOVDQU XMM1,xmmword ptr [RBX]
MOV qword ptr [RBP + -0x40],RDX
MOVAPS xmmword ptr [RBP + -0x50],XMM1
SHL EAX,0x4
ADD EAX,0x2
MOV byte ptr [RBP + -0x4c],AL
JMP 0x0022ef0b
MOV byte ptr [RBP + -0xb1],0x1
MOV R13,qword ptr [RBP + -0xe0]
MOV RSI,qword ptr [RBP + -0xd0]
LEA RCX,[RBP + -0x78]
MOV EDX,0x1
LEA RDI,[R13 + 0x68]
CALL 0x0021bf40
MOVZX EDX,byte ptr [RBP + -0xb1]
XOR R9D,R9D
XOR R8D,R8D
MOV RDI,R13
SUB RSP,0x8
MOV RCX,qword ptr [RBP + -0x78]
MOV RSI,qword ptr [RBP + -0xc8]
PUSH R12
PUSH RDX
MOV RDX,RAX
PUSH R12
PUSH qword ptr [RBP + -0xc0]
PUSH 0x0
CALL 0x0022ad40
JMP 0x0022ee87
MOV RAX,qword ptr [RBP + -0xc8]
MOV RDI,qword ptr [RAX + 0x40]
TEST RDI,RDI
JZ 0x0022f1d0
MOV EDX,dword ptr [RBP + -0xa8]
MOV RSI,qword ptr [RBP + -0xc8]
CALL 0x0019a820
MOV R12D,EAX
TEST R12D,R12D
JZ 0x0022ed4f
MOV byte ptr [RBP + -0xb1],0x1
JMP 0x0022ec44
MOV RDI,qword ptr [RBP + -0xe0]
LEA RSI,[RBP + -0x70]
CALL 0x0022e900
MOV RDI,qword ptr [RBP + -0x70]
TEST RDI,RDI
JZ 0x0022f03e
CALL 0x00276d20
LEA RSP,[RBP + -0x28]
POP RBX
POP R12
POP R13
POP R14
POP R15
POP RBP
RET
MOVZX EAX,byte ptr [RBP + -0xb1]
SUB RSP,0x8
MOV RCX,qword ptr [RBP + -0x80]
XOR R9D,R9D
PUSH R12
MOV RDX,qword ptr [RBP + -0xd0]
XOR R8D,R8D
MOV RSI,qword ptr [RBP + -0xc8]
MOV RDI,qword ptr [RBP + -0xe0]
PUSH RAX
PUSH R12
PUSH qword ptr [RBP + -0xc0]
PUSH 0x0
CALL 0x0022ad40
JMP 0x0022ee87
LEA RDI,[0x31f178]
CALL 0x0013e320
MOV ECX,dword ptr [RBP + -0xb8]
MOV RDX,qword ptr [RBP + -0xa8]
MOV RDI,qword ptr [RBP + -0xc8]
MOV RSI,RAX
XOR EAX,EAX
CALL 0x0019a740
JMP 0x0022ec88
MOV RCX,qword ptr [RBP + -0xc0]
MOV RCX,qword ptr [RCX]
MOVZX ECX,byte ptr [RCX + 0x4]
AND ECX,0xf
CMP CL,0x1
JNZ 0x0022eeb4
TEST DL,DL
JNZ 0x0022eed3
MOV RDI,qword ptr [RBP + -0xc8]
CMP RDI,qword ptr [RAX + 0x10]
JNZ 0x0022eec2
MOV RSI,qword ptr [RBP + -0x68]
CMP RSI,qword ptr [RBP + -0x60]
JZ 0x0022f1eb
MOV qword ptr [RSI],RAX
MOV RAX,qword ptr [RBP + -0x88]
ADD RSI,0x8
MOV qword ptr [RBP + -0x68],RSI
MOVZX EDX,byte ptr [RAX + 0x3a]
AND EDX,0x7
JMP 0x0022eeb4
LEA RDI,[0x31f0f0]
CALL 0x0013e320
MOV RDI,RAX
XOR EAX,EAX
CALL 0x001690a0
LEA RSP,[RBP + -0x28]
POP RBX
POP R12
POP R13
POP R14
POP R15
POP RBP
RET
MOV RDX,qword ptr [RBP + -0x98]
MOVZX EDX,byte ptr [RDX + 0x5]
AND EDX,0x3
CMP DL,0x3
JNZ 0x0022eed3
OR byte ptr [RAX + 0x3c],0x8
JMP 0x0022eed3
CMP RSI,RCX
JNZ 0x0022ee3d
SUB RSP,0x8
MOV RCX,RSI
XOR R9D,R9D
XOR R8D,R8D
PUSH 0xfff1
MOV RDX,qword ptr [RBP + -0xd0]
MOV RSI,qword ptr [RBP + -0xc8]
MOV RDI,qword ptr [RBP + -0xe0]
PUSH 0x0
PUSH 0xfff1
PUSH qword ptr [RBP + -0xc0]
PUSH 0x0
CALL 0x0022ad40
JMP 0x0022ee87
MOV R13,RAX
MOV RAX,qword ptr [RAX]
MOV RDI,R13
CALL qword ptr [RAX + 0xd8]
MOV RDI,RAX
MOV qword ptr [R13 + 0x40],RAX
JMP 0x0022eff4
MOV RDX,qword ptr [RBP + -0x108]
MOV RDI,qword ptr [RBP + -0x110]
CALL 0x00223290
MOV RAX,qword ptr [RBP + -0x88]
MOVZX EDX,byte ptr [RAX + 0x3a]
AND EDX,0x7
JMP 0x0022eeb4
MOV word ptr [RBP + -0xb4],AX
MOV byte ptr [RBP + -0xb2],0x1
JMP 0x0022ed91
LEA RDX,[0x31f92b]
MOV ESI,0x69
LEA RDI,[0x30dc70]
CALL 0x0016cdf0
LEA RDX,[0x31f924]
MOV ESI,0xa1
LEA RDI,[0x30dc8d]
CALL 0x0016cdf0
LEA RDX,[0x31f2a0]
MOV ESI,0x1ea
LEA RDI,[0x307016]
CALL 0x0016cdf0
LEA RDX,[0x31f230]
MOV ESI,0x5bd
LEA RDI,[0x31ed51]
CALL 0x0016cdf0
(translation_unit "/* WARNING: Restarted to delay deadcode elimination for space: stack */\n\nvoid FUN_0022eaf0(long param_1,long *param_2,ulong *param_3,ulong param_4,long param_5,ulong param_6\n                 ,long param_7,ulong param_8,long *param_9,long *param_10,long *param_11)\n\n{\n  ulong *puVar1;\n  ulong **ppuVar2;\n  char cVar3;\n  int iVar4;\n  uint uVar5;\n  undefined8 uVar6;\n  ulong uVar7;\n  undefined8 uVar8;\n  long lVar9;\n  byte bVar10;\n  byte bVar11;\n  char *pcVar12;\n  ushort uVar13;\n  ushort local_bc;\n  byte local_ba;\n  char local_b9;\n  ulong local_b0;\n  ulong *local_a0;\n  ulong *local_98;\n  long local_90;\n  long local_88;\n  long local_80;\n  long local_78;\n  long *local_70;\n  long *local_68;\n  undefined8 local_58;\n  ulong uStack_50;\n  ulong local_48;\n  \n  *param_11 = 0;\n  if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n  }\n  if (**(int **)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8) != 0x40) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/symtab.cc",0x5bd,"add_from_dynobj");\n  }\n  if (param_2[5] == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/object.h",0x1ea,"input_file");\n  }\n  cVar3 = FUN_0016aff0();\n  if (cVar3 != '\0') {\n    uVar6 = gettext("--just-symbols does not make sense with a shared object");\n    FUN_001690a0(uVar6);\n    return;\n  }\n  cVar3 = FUN_001ee080(PTR_DAT_003be6b0);\n  if ((param_7 == 0) || (cVar3 == '\x01')) {\n    param_7 = 0;\n  }\n  else if (param_8 >> 1 < param_4) {\n    uVar6 = gettext("too few symbol versions");\n    FUN_0019a740(param_2,uVar6);\n    return;\n  }\n  local_78 = 0;\n  local_70 = (long *)0x0;\n  local_68 = (long *)0x0;\n  local_b0 = 0;\n  if (param_4 != 0) {\n    do {\n      if (param_10 != (long *)0x0) {\n        *(undefined8 *)(*param_10 + local_b0 * 8) = 0;\n      }\n      iVar4 = (int)(uint)*(byte *)((long)param_3 + 4) >> 4;\n      local_a0 = param_3;\n      if (iVar4 != 0) {\n        bVar11 = *(byte *)((long)param_3 + 5) & 3;\n        if (1 < (byte)(bVar11 - 1)) {\n          bVar10 = *(byte *)((long)param_3 + 4) & 0xf;\n          if (bVar11 == 3) {\n            uStack_50 = param_3[1];\n            local_48 = param_3[2];\n            local_58._6_2_ = (undefined2)(*param_3 >> 0x30);\n            local_58._0_5_ = (undefined5)*param_3;\n            local_58 = CONCAT26(local_58._6_2_,\n                                CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58)) &\n                       0xfffffcffffffffff;\n            if (bVar10 == 10) goto LAB_0022ef70;\nLAB_0022ef0b:\n            uVar7 = local_58 & 0xffffffff;\n            puVar1 = &local_58;\n            ppuVar2 = &local_98;\n          }\n          else {\n            if (bVar10 == 10) {\n              local_48 = param_3[2];\n              local_58 = *param_3;\n              uStack_50 = param_3[1];\nLAB_0022ef70:\n              local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58);\n              goto LAB_0022ef0b;\n            }\n            ppuVar2 = &local_a0;\n            uVar7 = (ulong)(uint)*param_3;\n            puVar1 = param_3;\n          }\n          local_98 = &local_58;\n          if (uVar7 < param_6) {\n            uVar13 = *(ushort *)((long)puVar1 + 6);\n            uVar5 = (uint)uVar13;\n            if (uVar13 < 0xff00) {\n              if (uVar13 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = '\x01';\nLAB_0022ec44:\n              *param_11 = *param_11 + 1;\n              if (param_7 != 0) {\n                local_bc = *(ushort *)(param_7 + local_b0 * 2);\n                uVar13 = local_bc & 0x7fff;\n                if (uVar13 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80);\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\n            else {\n              local_b9 = '\0';\n              if (uVar13 != 0xffff) goto LAB_0022ec44;\n              lVar9 = param_2[8];\n              if (lVar9 == 0) {\n                lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);\n                param_2[8] = lVar9;\n              }\n              uVar5 = FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff);\n              if (uVar5 != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (param_7 == 0) {\n                local_b9 = '\x01';\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = '\x01';\n              local_bc = *(ushort *)(param_7 + local_b0 * 2);\n              uVar13 = local_bc & 0x7fff;\nLAB_0022ed91:\n                    /* try { // try from 0022edb6 to 0022f0c1 has its CatchHandler @ 0022f284 */\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88);\n              if (1 < uVar13) {\n                pcVar12 = "versym for symbol %zu out of range: %u";\n                if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    /* try { // try from 0022f1bf to 0022f1fd has its CatchHandler @ 0022f284 */\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }\n                uVar6 = gettext(pcVar12);\n                FUN_0019a740(param_2,uVar6,local_b0,uVar13);\n                goto LAB_0022ec88;\n              }\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\nLAB_0022ee87:\n            if (local_90 != 0) {\n              bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n              if (((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)\n                 ) {\nLAB_0022eeb4:\n                if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0022f24f to 0022f253 has its CatchHandler @ 0022f284 */\n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }\n              }\n              else if (bVar11 == 0) {\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (param_10 != (long *)0x0) {\n                *(long *)(*param_10 + local_b0 * 8) = local_90;\n              }\n            }\n          }\n          else {\n            uVar6 = gettext("bad symbol name offset %u at %zu");\n            FUN_0019a740(param_2,uVar6,uVar7,local_b0);\n          }\n        }\n      }\nLAB_0022ec88:\n      local_b0 = local_b0 + 1;\n      param_3 = param_3 + 3;\n    } while (param_4 != local_b0);\n  }\n  FUN_0022e900(param_1,&local_78);\n  if (local_78 != 0) {\n    FUN_00276d20();\n  }\n  return;\n}\n\n" comment (function_definition "void FUN_0022eaf0(long param_1,long *param_2,ulong *param_3,ulong param_4,long param_5,ulong param_6\n                 ,long param_7,ulong param_8,long *param_9,long *param_10,long *param_11)\n\n{\n  ulong *puVar1;\n  ulong **ppuVar2;\n  char cVar3;\n  int iVar4;\n  uint uVar5;\n  undefined8 uVar6;\n  ulong uVar7;\n  undefined8 uVar8;\n  long lVar9;\n  byte bVar10;\n  byte bVar11;\n  char *pcVar12;\n  ushort uVar13;\n  ushort local_bc;\n  byte local_ba;\n  char local_b9;\n  ulong local_b0;\n  ulong *local_a0;\n  ulong *local_98;\n  long local_90;\n  long local_88;\n  long local_80;\n  long local_78;\n  long *local_70;\n  long *local_68;\n  undefined8 local_58;\n  ulong uStack_50;\n  ulong local_48;\n  \n  *param_11 = 0;\n  if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n  }\n  if (**(int **)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8) != 0x40) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/symtab.cc",0x5bd,"add_from_dynobj");\n  }\n  if (param_2[5] == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/object.h",0x1ea,"input_file");\n  }\n  cVar3 = FUN_0016aff0();\n  if (cVar3 != '\0') {\n    uVar6 = gettext("--just-symbols does not make sense with a shared object");\n    FUN_001690a0(uVar6);\n    return;\n  }\n  cVar3 = FUN_001ee080(PTR_DAT_003be6b0);\n  if ((param_7 == 0) || (cVar3 == '\x01')) {\n    param_7 = 0;\n  }\n  else if (param_8 >> 1 < param_4) {\n    uVar6 = gettext("too few symbol versions");\n    FUN_0019a740(param_2,uVar6);\n    return;\n  }\n  local_78 = 0;\n  local_70 = (long *)0x0;\n  local_68 = (long *)0x0;\n  local_b0 = 0;\n  if (param_4 != 0) {\n    do {\n      if (param_10 != (long *)0x0) {\n        *(undefined8 *)(*param_10 + local_b0 * 8) = 0;\n      }\n      iVar4 = (int)(uint)*(byte *)((long)param_3 + 4) >> 4;\n      local_a0 = param_3;\n      if (iVar4 != 0) {\n        bVar11 = *(byte *)((long)param_3 + 5) & 3;\n        if (1 < (byte)(bVar11 - 1)) {\n          bVar10 = *(byte *)((long)param_3 + 4) & 0xf;\n          if (bVar11 == 3) {\n            uStack_50 = param_3[1];\n            local_48 = param_3[2];\n            local_58._6_2_ = (undefined2)(*param_3 >> 0x30);\n            local_58._0_5_ = (undefined5)*param_3;\n            local_58 = CONCAT26(local_58._6_2_,\n                                CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58)) &\n                       0xfffffcffffffffff;\n            if (bVar10 == 10) goto LAB_0022ef70;\nLAB_0022ef0b:\n            uVar7 = local_58 & 0xffffffff;\n            puVar1 = &local_58;\n            ppuVar2 = &local_98;\n          }\n          else {\n            if (bVar10 == 10) {\n              local_48 = param_3[2];\n              local_58 = *param_3;\n              uStack_50 = param_3[1];\nLAB_0022ef70:\n              local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58);\n              goto LAB_0022ef0b;\n            }\n            ppuVar2 = &local_a0;\n            uVar7 = (ulong)(uint)*param_3;\n            puVar1 = param_3;\n          }\n          local_98 = &local_58;\n          if (uVar7 < param_6) {\n            uVar13 = *(ushort *)((long)puVar1 + 6);\n            uVar5 = (uint)uVar13;\n            if (uVar13 < 0xff00) {\n              if (uVar13 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = '\x01';\nLAB_0022ec44:\n              *param_11 = *param_11 + 1;\n              if (param_7 != 0) {\n                local_bc = *(ushort *)(param_7 + local_b0 * 2);\n                uVar13 = local_bc & 0x7fff;\n                if (uVar13 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80);\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\n            else {\n              local_b9 = '\0';\n              if (uVar13 != 0xffff) goto LAB_0022ec44;\n              lVar9 = param_2[8];\n              if (lVar9 == 0) {\n                lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);\n                param_2[8] = lVar9;\n              }\n              uVar5 = FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff);\n              if (uVar5 != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (param_7 == 0) {\n                local_b9 = '\x01';\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = '\x01';\n              local_bc = *(ushort *)(param_7 + local_b0 * 2);\n              uVar13 = local_bc & 0x7fff;\nLAB_0022ed91:\n                    /* try { // try from 0022edb6 to 0022f0c1 has its CatchHandler @ 0022f284 */\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88);\n              if (1 < uVar13) {\n                pcVar12 = "versym for symbol %zu out of range: %u";\n                if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    /* try { // try from 0022f1bf to 0022f1fd has its CatchHandler @ 0022f284 */\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }\n                uVar6 = gettext(pcVar12);\n                FUN_0019a740(param_2,uVar6,local_b0,uVar13);\n                goto LAB_0022ec88;\n              }\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\nLAB_0022ee87:\n            if (local_90 != 0) {\n              bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n              if (((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)\n                 ) {\nLAB_0022eeb4:\n                if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0022f24f to 0022f253 has its CatchHandler @ 0022f284 */\n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }\n              }\n              else if (bVar11 == 0) {\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (param_10 != (long *)0x0) {\n                *(long *)(*param_10 + local_b0 * 8) = local_90;\n              }\n            }\n          }\n          else {\n            uVar6 = gettext("bad symbol name offset %u at %zu");\n            FUN_0019a740(param_2,uVar6,uVar7,local_b0);\n          }\n        }\n      }\nLAB_0022ec88:\n      local_b0 = local_b0 + 1;\n      param_3 = param_3 + 3;\n    } while (param_4 != local_b0);\n  }\n  FUN_0022e900(param_1,&local_78);\n  if (local_78 != 0) {\n    FUN_00276d20();\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0022eaf0(long param_1,long *param_2,ulong *param_3,ulong param_4,long param_5,ulong param_6\n                 ,long param_7,ulong param_8,long *param_9,long *param_10,long *param_11)" identifier (parameter_list "(long param_1,long *param_2,ulong *param_3,ulong param_4,long param_5,ulong param_6\n                 ,long param_7,ulong param_8,long *param_9,long *param_10,long *param_11)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long *param_2" (sized_type_specifier "long" long) (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "ulong *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "ulong param_4" type_identifier identifier) , (parameter_declaration "long param_5" (sized_type_specifier "long" long) identifier) , (parameter_declaration "ulong param_6" type_identifier identifier) , (parameter_declaration "long param_7" (sized_type_specifier "long" long) identifier) , (parameter_declaration "ulong param_8" type_identifier identifier) , (parameter_declaration "long *param_9" (sized_type_specifier "long" long) (pointer_declarator "*param_9" * identifier)) , (parameter_declaration "long *param_10" (sized_type_specifier "long" long) (pointer_declarator "*param_10" * identifier)) , (parameter_declaration "long *param_11" (sized_type_specifier "long" long) (pointer_declarator "*param_11" * identifier)) ))) (compound_statement "{\n  ulong *puVar1;\n  ulong **ppuVar2;\n  char cVar3;\n  int iVar4;\n  uint uVar5;\n  undefined8 uVar6;\n  ulong uVar7;\n  undefined8 uVar8;\n  long lVar9;\n  byte bVar10;\n  byte bVar11;\n  char *pcVar12;\n  ushort uVar13;\n  ushort local_bc;\n  byte local_ba;\n  char local_b9;\n  ulong local_b0;\n  ulong *local_a0;\n  ulong *local_98;\n  long local_90;\n  long local_88;\n  long local_80;\n  long local_78;\n  long *local_70;\n  long *local_68;\n  undefined8 local_58;\n  ulong uStack_50;\n  ulong local_48;\n  \n  *param_11 = 0;\n  if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n  }\n  if (**(int **)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8) != 0x40) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/symtab.cc",0x5bd,"add_from_dynobj");\n  }\n  if (param_2[5] == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/object.h",0x1ea,"input_file");\n  }\n  cVar3 = FUN_0016aff0();\n  if (cVar3 != '\0') {\n    uVar6 = gettext("--just-symbols does not make sense with a shared object");\n    FUN_001690a0(uVar6);\n    return;\n  }\n  cVar3 = FUN_001ee080(PTR_DAT_003be6b0);\n  if ((param_7 == 0) || (cVar3 == '\x01')) {\n    param_7 = 0;\n  }\n  else if (param_8 >> 1 < param_4) {\n    uVar6 = gettext("too few symbol versions");\n    FUN_0019a740(param_2,uVar6);\n    return;\n  }\n  local_78 = 0;\n  local_70 = (long *)0x0;\n  local_68 = (long *)0x0;\n  local_b0 = 0;\n  if (param_4 != 0) {\n    do {\n      if (param_10 != (long *)0x0) {\n        *(undefined8 *)(*param_10 + local_b0 * 8) = 0;\n      }\n      iVar4 = (int)(uint)*(byte *)((long)param_3 + 4) >> 4;\n      local_a0 = param_3;\n      if (iVar4 != 0) {\n        bVar11 = *(byte *)((long)param_3 + 5) & 3;\n        if (1 < (byte)(bVar11 - 1)) {\n          bVar10 = *(byte *)((long)param_3 + 4) & 0xf;\n          if (bVar11 == 3) {\n            uStack_50 = param_3[1];\n            local_48 = param_3[2];\n            local_58._6_2_ = (undefined2)(*param_3 >> 0x30);\n            local_58._0_5_ = (undefined5)*param_3;\n            local_58 = CONCAT26(local_58._6_2_,\n                                CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58)) &\n                       0xfffffcffffffffff;\n            if (bVar10 == 10) goto LAB_0022ef70;\nLAB_0022ef0b:\n            uVar7 = local_58 & 0xffffffff;\n            puVar1 = &local_58;\n            ppuVar2 = &local_98;\n          }\n          else {\n            if (bVar10 == 10) {\n              local_48 = param_3[2];\n              local_58 = *param_3;\n              uStack_50 = param_3[1];\nLAB_0022ef70:\n              local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58);\n              goto LAB_0022ef0b;\n            }\n            ppuVar2 = &local_a0;\n            uVar7 = (ulong)(uint)*param_3;\n            puVar1 = param_3;\n          }\n          local_98 = &local_58;\n          if (uVar7 < param_6) {\n            uVar13 = *(ushort *)((long)puVar1 + 6);\n            uVar5 = (uint)uVar13;\n            if (uVar13 < 0xff00) {\n              if (uVar13 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = '\x01';\nLAB_0022ec44:\n              *param_11 = *param_11 + 1;\n              if (param_7 != 0) {\n                local_bc = *(ushort *)(param_7 + local_b0 * 2);\n                uVar13 = local_bc & 0x7fff;\n                if (uVar13 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80);\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\n            else {\n              local_b9 = '\0';\n              if (uVar13 != 0xffff) goto LAB_0022ec44;\n              lVar9 = param_2[8];\n              if (lVar9 == 0) {\n                lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);\n                param_2[8] = lVar9;\n              }\n              uVar5 = FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff);\n              if (uVar5 != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (param_7 == 0) {\n                local_b9 = '\x01';\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = '\x01';\n              local_bc = *(ushort *)(param_7 + local_b0 * 2);\n              uVar13 = local_bc & 0x7fff;\nLAB_0022ed91:\n                    /* try { // try from 0022edb6 to 0022f0c1 has its CatchHandler @ 0022f284 */\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88);\n              if (1 < uVar13) {\n                pcVar12 = "versym for symbol %zu out of range: %u";\n                if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    /* try { // try from 0022f1bf to 0022f1fd has its CatchHandler @ 0022f284 */\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }\n                uVar6 = gettext(pcVar12);\n                FUN_0019a740(param_2,uVar6,local_b0,uVar13);\n                goto LAB_0022ec88;\n              }\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\nLAB_0022ee87:\n            if (local_90 != 0) {\n              bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n              if (((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)\n                 ) {\nLAB_0022eeb4:\n                if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0022f24f to 0022f253 has its CatchHandler @ 0022f284 */\n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }\n              }\n              else if (bVar11 == 0) {\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (param_10 != (long *)0x0) {\n                *(long *)(*param_10 + local_b0 * 8) = local_90;\n              }\n            }\n          }\n          else {\n            uVar6 = gettext("bad symbol name offset %u at %zu");\n            FUN_0019a740(param_2,uVar6,uVar7,local_b0);\n          }\n        }\n      }\nLAB_0022ec88:\n      local_b0 = local_b0 + 1;\n      param_3 = param_3 + 3;\n    } while (param_4 != local_b0);\n  }\n  FUN_0022e900(param_1,&local_78);\n  if (local_78 != 0) {\n    FUN_00276d20();\n  }\n  return;\n}" { (declaration "ulong *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "ulong **ppuVar2;" type_identifier (pointer_declarator "**ppuVar2" * (pointer_declarator "*ppuVar2" * identifier)) ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "undefined8 uVar6;" type_identifier identifier ;) (declaration "ulong uVar7;" type_identifier identifier ;) (declaration "undefined8 uVar8;" type_identifier identifier ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (declaration "byte bVar10;" type_identifier identifier ;) (declaration "byte bVar11;" type_identifier identifier ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "ushort uVar13;" type_identifier identifier ;) (declaration "ushort local_bc;" type_identifier identifier ;) (declaration "byte local_ba;" type_identifier identifier ;) (declaration "char local_b9;" primitive_type identifier ;) (declaration "ulong local_b0;" type_identifier identifier ;) (declaration "ulong *local_a0;" type_identifier (pointer_declarator "*local_a0" * identifier) ;) (declaration "ulong *local_98;" type_identifier (pointer_declarator "*local_98" * identifier) ;) (declaration "long local_90;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_88;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_80;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_78;" (sized_type_specifier "long" long) identifier ;) (declaration "long *local_70;" (sized_type_specifier "long" long) (pointer_declarator "*local_70" * identifier) ;) (declaration "long *local_68;" (sized_type_specifier "long" long) (pointer_declarator "*local_68" * identifier) ;) (declaration "undefined8 local_58;" type_identifier identifier ;) (declaration "ulong uStack_50;" type_identifier identifier ;) (declaration "ulong local_48;" type_identifier identifier ;) (expression_statement "*param_11 = 0;" (assignment_expression "*param_11 = 0" (pointer_expression "*param_11" * identifier) = number_literal) ;) (if_statement "if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n  }" if (parenthesized_expression "(*(long *)(PTR_DAT_003be6b0 + 0x18) == 0)" ( (binary_expression "*(long *)(PTR_DAT_003be6b0 + 0x18) == 0" (pointer_expression "*(long *)(PTR_DAT_003be6b0 + 0x18)" * (cast_expression "(long *)(PTR_DAT_003be6b0 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003be6b0 + 0x18)" ( (binary_expression "PTR_DAT_003be6b0 + 0x18" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n  }" { comment (expression_statement "FUN_0016cdf0("../../gold/parameters.h",0x69,"target");" (call_expression "FUN_0016cdf0("../../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 (**(int **)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8) != 0x40) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/symtab.cc",0x5bd,"add_from_dynobj");\n  }" if (parenthesized_expression "(**(int **)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8) != 0x40)" ( (binary_expression "**(int **)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8) != 0x40" (pointer_expression "**(int **)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8)" * (pointer_expression "*(int **)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8)" * (cast_expression "(int **)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8)" ( (binary_expression "*(long *)(PTR_DAT_003be6b0 + 0x18) + 8" (pointer_expression "*(long *)(PTR_DAT_003be6b0 + 0x18)" * (cast_expression "(long *)(PTR_DAT_003be6b0 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003be6b0 + 0x18)" ( (binary_expression "PTR_DAT_003be6b0 + 0x18" identifier + number_literal) )))) + number_literal) ))))) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/symtab.cc",0x5bd,"add_from_dynobj");\n  }" { comment (expression_statement "FUN_0016cdf0("../../gold/symtab.cc",0x5bd,"add_from_dynobj");" (call_expression "FUN_0016cdf0("../../gold/symtab.cc",0x5bd,"add_from_dynobj")" identifier (argument_list "("../../gold/symtab.cc",0x5bd,"add_from_dynobj")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""add_from_dynobj"" " string_content ") ))) ;) })) (if_statement "if (param_2[5] == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/object.h",0x1ea,"input_file");\n  }" if (parenthesized_expression "(param_2[5] == 0)" ( (binary_expression "param_2[5] == 0" (subscript_expression "param_2[5]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/object.h",0x1ea,"input_file");\n  }" { comment (expression_statement "FUN_0016cdf0("../../gold/object.h",0x1ea,"input_file");" (call_expression "FUN_0016cdf0("../../gold/object.h",0x1ea,"input_file")" identifier (argument_list "("../../gold/object.h",0x1ea,"input_file")" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""input_file"" " string_content ") ))) ;) })) (expression_statement "cVar3 = FUN_0016aff0();" (assignment_expression "cVar3 = FUN_0016aff0()" identifier = (call_expression "FUN_0016aff0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (cVar3 != '\0') {\n    uVar6 = gettext("--just-symbols does not make sense with a shared object");\n    FUN_001690a0(uVar6);\n    return;\n  }" if (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    uVar6 = gettext("--just-symbols does not make sense with a shared object");\n    FUN_001690a0(uVar6);\n    return;\n  }" { (expression_statement "uVar6 = gettext("--just-symbols does not make sense with a shared object");" (assignment_expression "uVar6 = gettext("--just-symbols does not make sense with a shared object")" identifier = (call_expression "gettext("--just-symbols does not make sense with a shared object")" identifier (argument_list "("--just-symbols does not make sense with a shared object")" ( (string_literal ""--just-symbols does not make sense with a shared object"" " string_content ") )))) ;) (expression_statement "FUN_001690a0(uVar6);" (call_expression "FUN_001690a0(uVar6)" identifier (argument_list "(uVar6)" ( identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "cVar3 = FUN_001ee080(PTR_DAT_003be6b0);" (assignment_expression "cVar3 = FUN_001ee080(PTR_DAT_003be6b0)" identifier = (call_expression "FUN_001ee080(PTR_DAT_003be6b0)" identifier (argument_list "(PTR_DAT_003be6b0)" ( identifier )))) ;) (if_statement "if ((param_7 == 0) || (cVar3 == '\x01')) {\n    param_7 = 0;\n  }\n  else if (param_8 >> 1 < param_4) {\n    uVar6 = gettext("too few symbol versions");\n    FUN_0019a740(param_2,uVar6);\n    return;\n  }" if (parenthesized_expression "((param_7 == 0) || (cVar3 == '\x01'))" ( (binary_expression "(param_7 == 0) || (cVar3 == '\x01')" (parenthesized_expression "(param_7 == 0)" ( (binary_expression "param_7 == 0" identifier == number_literal) )) || (parenthesized_expression "(cVar3 == '\x01')" ( (binary_expression "cVar3 == '\x01'" identifier == (char_literal "'\x01'" ' escape_sequence ')) ))) )) (compound_statement "{\n    param_7 = 0;\n  }" { (expression_statement "param_7 = 0;" (assignment_expression "param_7 = 0" identifier = number_literal) ;) }) (else_clause "else if (param_8 >> 1 < param_4) {\n    uVar6 = gettext("too few symbol versions");\n    FUN_0019a740(param_2,uVar6);\n    return;\n  }" else (if_statement "if (param_8 >> 1 < param_4) {\n    uVar6 = gettext("too few symbol versions");\n    FUN_0019a740(param_2,uVar6);\n    return;\n  }" if (parenthesized_expression "(param_8 >> 1 < param_4)" ( (binary_expression "param_8 >> 1 < param_4" (binary_expression "param_8 >> 1" identifier >> number_literal) < identifier) )) (compound_statement "{\n    uVar6 = gettext("too few symbol versions");\n    FUN_0019a740(param_2,uVar6);\n    return;\n  }" { (expression_statement "uVar6 = gettext("too few symbol versions");" (assignment_expression "uVar6 = gettext("too few symbol versions")" identifier = (call_expression "gettext("too few symbol versions")" identifier (argument_list "("too few symbol versions")" ( (string_literal ""too few symbol versions"" " string_content ") )))) ;) (expression_statement "FUN_0019a740(param_2,uVar6);" (call_expression "FUN_0019a740(param_2,uVar6)" identifier (argument_list "(param_2,uVar6)" ( identifier , identifier ))) ;) (return_statement "return;" return ;) })))) (expression_statement "local_78 = 0;" (assignment_expression "local_78 = 0" identifier = number_literal) ;) (expression_statement "local_70 = (long *)0x0;" (assignment_expression "local_70 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_68 = (long *)0x0;" (assignment_expression "local_68 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" identifier = number_literal) ;) (if_statement "if (param_4 != 0) {\n    do {\n      if (param_10 != (long *)0x0) {\n        *(undefined8 *)(*param_10 + local_b0 * 8) = 0;\n      }\n      iVar4 = (int)(uint)*(byte *)((long)param_3 + 4) >> 4;\n      local_a0 = param_3;\n      if (iVar4 != 0) {\n        bVar11 = *(byte *)((long)param_3 + 5) & 3;\n        if (1 < (byte)(bVar11 - 1)) {\n          bVar10 = *(byte *)((long)param_3 + 4) & 0xf;\n          if (bVar11 == 3) {\n            uStack_50 = param_3[1];\n            local_48 = param_3[2];\n            local_58._6_2_ = (undefined2)(*param_3 >> 0x30);\n            local_58._0_5_ = (undefined5)*param_3;\n            local_58 = CONCAT26(local_58._6_2_,\n                                CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58)) &\n                       0xfffffcffffffffff;\n            if (bVar10 == 10) goto LAB_0022ef70;\nLAB_0022ef0b:\n            uVar7 = local_58 & 0xffffffff;\n            puVar1 = &local_58;\n            ppuVar2 = &local_98;\n          }\n          else {\n            if (bVar10 == 10) {\n              local_48 = param_3[2];\n              local_58 = *param_3;\n              uStack_50 = param_3[1];\nLAB_0022ef70:\n              local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58);\n              goto LAB_0022ef0b;\n            }\n            ppuVar2 = &local_a0;\n            uVar7 = (ulong)(uint)*param_3;\n            puVar1 = param_3;\n          }\n          local_98 = &local_58;\n          if (uVar7 < param_6) {\n            uVar13 = *(ushort *)((long)puVar1 + 6);\n            uVar5 = (uint)uVar13;\n            if (uVar13 < 0xff00) {\n              if (uVar13 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = '\x01';\nLAB_0022ec44:\n              *param_11 = *param_11 + 1;\n              if (param_7 != 0) {\n                local_bc = *(ushort *)(param_7 + local_b0 * 2);\n                uVar13 = local_bc & 0x7fff;\n                if (uVar13 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80);\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\n            else {\n              local_b9 = '\0';\n              if (uVar13 != 0xffff) goto LAB_0022ec44;\n              lVar9 = param_2[8];\n              if (lVar9 == 0) {\n                lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);\n                param_2[8] = lVar9;\n              }\n              uVar5 = FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff);\n              if (uVar5 != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (param_7 == 0) {\n                local_b9 = '\x01';\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = '\x01';\n              local_bc = *(ushort *)(param_7 + local_b0 * 2);\n              uVar13 = local_bc & 0x7fff;\nLAB_0022ed91:\n                    /* try { // try from 0022edb6 to 0022f0c1 has its CatchHandler @ 0022f284 */\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88);\n              if (1 < uVar13) {\n                pcVar12 = "versym for symbol %zu out of range: %u";\n                if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    /* try { // try from 0022f1bf to 0022f1fd has its CatchHandler @ 0022f284 */\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }\n                uVar6 = gettext(pcVar12);\n                FUN_0019a740(param_2,uVar6,local_b0,uVar13);\n                goto LAB_0022ec88;\n              }\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\nLAB_0022ee87:\n            if (local_90 != 0) {\n              bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n              if (((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)\n                 ) {\nLAB_0022eeb4:\n                if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0022f24f to 0022f253 has its CatchHandler @ 0022f284 */\n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }\n              }\n              else if (bVar11 == 0) {\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (param_10 != (long *)0x0) {\n                *(long *)(*param_10 + local_b0 * 8) = local_90;\n              }\n            }\n          }\n          else {\n            uVar6 = gettext("bad symbol name offset %u at %zu");\n            FUN_0019a740(param_2,uVar6,uVar7,local_b0);\n          }\n        }\n      }\nLAB_0022ec88:\n      local_b0 = local_b0 + 1;\n      param_3 = param_3 + 3;\n    } while (param_4 != local_b0);\n  }" if (parenthesized_expression "(param_4 != 0)" ( (binary_expression "param_4 != 0" identifier != number_literal) )) (compound_statement "{\n    do {\n      if (param_10 != (long *)0x0) {\n        *(undefined8 *)(*param_10 + local_b0 * 8) = 0;\n      }\n      iVar4 = (int)(uint)*(byte *)((long)param_3 + 4) >> 4;\n      local_a0 = param_3;\n      if (iVar4 != 0) {\n        bVar11 = *(byte *)((long)param_3 + 5) & 3;\n        if (1 < (byte)(bVar11 - 1)) {\n          bVar10 = *(byte *)((long)param_3 + 4) & 0xf;\n          if (bVar11 == 3) {\n            uStack_50 = param_3[1];\n            local_48 = param_3[2];\n            local_58._6_2_ = (undefined2)(*param_3 >> 0x30);\n            local_58._0_5_ = (undefined5)*param_3;\n            local_58 = CONCAT26(local_58._6_2_,\n                                CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58)) &\n                       0xfffffcffffffffff;\n            if (bVar10 == 10) goto LAB_0022ef70;\nLAB_0022ef0b:\n            uVar7 = local_58 & 0xffffffff;\n            puVar1 = &local_58;\n            ppuVar2 = &local_98;\n          }\n          else {\n            if (bVar10 == 10) {\n              local_48 = param_3[2];\n              local_58 = *param_3;\n              uStack_50 = param_3[1];\nLAB_0022ef70:\n              local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58);\n              goto LAB_0022ef0b;\n            }\n            ppuVar2 = &local_a0;\n            uVar7 = (ulong)(uint)*param_3;\n            puVar1 = param_3;\n          }\n          local_98 = &local_58;\n          if (uVar7 < param_6) {\n            uVar13 = *(ushort *)((long)puVar1 + 6);\n            uVar5 = (uint)uVar13;\n            if (uVar13 < 0xff00) {\n              if (uVar13 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = '\x01';\nLAB_0022ec44:\n              *param_11 = *param_11 + 1;\n              if (param_7 != 0) {\n                local_bc = *(ushort *)(param_7 + local_b0 * 2);\n                uVar13 = local_bc & 0x7fff;\n                if (uVar13 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80);\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\n            else {\n              local_b9 = '\0';\n              if (uVar13 != 0xffff) goto LAB_0022ec44;\n              lVar9 = param_2[8];\n              if (lVar9 == 0) {\n                lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);\n                param_2[8] = lVar9;\n              }\n              uVar5 = FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff);\n              if (uVar5 != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (param_7 == 0) {\n                local_b9 = '\x01';\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = '\x01';\n              local_bc = *(ushort *)(param_7 + local_b0 * 2);\n              uVar13 = local_bc & 0x7fff;\nLAB_0022ed91:\n                    /* try { // try from 0022edb6 to 0022f0c1 has its CatchHandler @ 0022f284 */\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88);\n              if (1 < uVar13) {\n                pcVar12 = "versym for symbol %zu out of range: %u";\n                if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    /* try { // try from 0022f1bf to 0022f1fd has its CatchHandler @ 0022f284 */\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }\n                uVar6 = gettext(pcVar12);\n                FUN_0019a740(param_2,uVar6,local_b0,uVar13);\n                goto LAB_0022ec88;\n              }\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\nLAB_0022ee87:\n            if (local_90 != 0) {\n              bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n              if (((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)\n                 ) {\nLAB_0022eeb4:\n                if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0022f24f to 0022f253 has its CatchHandler @ 0022f284 */\n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }\n              }\n              else if (bVar11 == 0) {\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (param_10 != (long *)0x0) {\n                *(long *)(*param_10 + local_b0 * 8) = local_90;\n              }\n            }\n          }\n          else {\n            uVar6 = gettext("bad symbol name offset %u at %zu");\n            FUN_0019a740(param_2,uVar6,uVar7,local_b0);\n          }\n        }\n      }\nLAB_0022ec88:\n      local_b0 = local_b0 + 1;\n      param_3 = param_3 + 3;\n    } while (param_4 != local_b0);\n  }" { (do_statement "do {\n      if (param_10 != (long *)0x0) {\n        *(undefined8 *)(*param_10 + local_b0 * 8) = 0;\n      }\n      iVar4 = (int)(uint)*(byte *)((long)param_3 + 4) >> 4;\n      local_a0 = param_3;\n      if (iVar4 != 0) {\n        bVar11 = *(byte *)((long)param_3 + 5) & 3;\n        if (1 < (byte)(bVar11 - 1)) {\n          bVar10 = *(byte *)((long)param_3 + 4) & 0xf;\n          if (bVar11 == 3) {\n            uStack_50 = param_3[1];\n            local_48 = param_3[2];\n            local_58._6_2_ = (undefined2)(*param_3 >> 0x30);\n            local_58._0_5_ = (undefined5)*param_3;\n            local_58 = CONCAT26(local_58._6_2_,\n                                CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58)) &\n                       0xfffffcffffffffff;\n            if (bVar10 == 10) goto LAB_0022ef70;\nLAB_0022ef0b:\n            uVar7 = local_58 & 0xffffffff;\n            puVar1 = &local_58;\n            ppuVar2 = &local_98;\n          }\n          else {\n            if (bVar10 == 10) {\n              local_48 = param_3[2];\n              local_58 = *param_3;\n              uStack_50 = param_3[1];\nLAB_0022ef70:\n              local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58);\n              goto LAB_0022ef0b;\n            }\n            ppuVar2 = &local_a0;\n            uVar7 = (ulong)(uint)*param_3;\n            puVar1 = param_3;\n          }\n          local_98 = &local_58;\n          if (uVar7 < param_6) {\n            uVar13 = *(ushort *)((long)puVar1 + 6);\n            uVar5 = (uint)uVar13;\n            if (uVar13 < 0xff00) {\n              if (uVar13 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = '\x01';\nLAB_0022ec44:\n              *param_11 = *param_11 + 1;\n              if (param_7 != 0) {\n                local_bc = *(ushort *)(param_7 + local_b0 * 2);\n                uVar13 = local_bc & 0x7fff;\n                if (uVar13 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80);\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\n            else {\n              local_b9 = '\0';\n              if (uVar13 != 0xffff) goto LAB_0022ec44;\n              lVar9 = param_2[8];\n              if (lVar9 == 0) {\n                lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);\n                param_2[8] = lVar9;\n              }\n              uVar5 = FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff);\n              if (uVar5 != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (param_7 == 0) {\n                local_b9 = '\x01';\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = '\x01';\n              local_bc = *(ushort *)(param_7 + local_b0 * 2);\n              uVar13 = local_bc & 0x7fff;\nLAB_0022ed91:\n                    /* try { // try from 0022edb6 to 0022f0c1 has its CatchHandler @ 0022f284 */\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88);\n              if (1 < uVar13) {\n                pcVar12 = "versym for symbol %zu out of range: %u";\n                if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    /* try { // try from 0022f1bf to 0022f1fd has its CatchHandler @ 0022f284 */\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }\n                uVar6 = gettext(pcVar12);\n                FUN_0019a740(param_2,uVar6,local_b0,uVar13);\n                goto LAB_0022ec88;\n              }\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\nLAB_0022ee87:\n            if (local_90 != 0) {\n              bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n              if (((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)\n                 ) {\nLAB_0022eeb4:\n                if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0022f24f to 0022f253 has its CatchHandler @ 0022f284 */\n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }\n              }\n              else if (bVar11 == 0) {\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (param_10 != (long *)0x0) {\n                *(long *)(*param_10 + local_b0 * 8) = local_90;\n              }\n            }\n          }\n          else {\n            uVar6 = gettext("bad symbol name offset %u at %zu");\n            FUN_0019a740(param_2,uVar6,uVar7,local_b0);\n          }\n        }\n      }\nLAB_0022ec88:\n      local_b0 = local_b0 + 1;\n      param_3 = param_3 + 3;\n    } while (param_4 != local_b0);" do (compound_statement "{\n      if (param_10 != (long *)0x0) {\n        *(undefined8 *)(*param_10 + local_b0 * 8) = 0;\n      }\n      iVar4 = (int)(uint)*(byte *)((long)param_3 + 4) >> 4;\n      local_a0 = param_3;\n      if (iVar4 != 0) {\n        bVar11 = *(byte *)((long)param_3 + 5) & 3;\n        if (1 < (byte)(bVar11 - 1)) {\n          bVar10 = *(byte *)((long)param_3 + 4) & 0xf;\n          if (bVar11 == 3) {\n            uStack_50 = param_3[1];\n            local_48 = param_3[2];\n            local_58._6_2_ = (undefined2)(*param_3 >> 0x30);\n            local_58._0_5_ = (undefined5)*param_3;\n            local_58 = CONCAT26(local_58._6_2_,\n                                CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58)) &\n                       0xfffffcffffffffff;\n            if (bVar10 == 10) goto LAB_0022ef70;\nLAB_0022ef0b:\n            uVar7 = local_58 & 0xffffffff;\n            puVar1 = &local_58;\n            ppuVar2 = &local_98;\n          }\n          else {\n            if (bVar10 == 10) {\n              local_48 = param_3[2];\n              local_58 = *param_3;\n              uStack_50 = param_3[1];\nLAB_0022ef70:\n              local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58);\n              goto LAB_0022ef0b;\n            }\n            ppuVar2 = &local_a0;\n            uVar7 = (ulong)(uint)*param_3;\n            puVar1 = param_3;\n          }\n          local_98 = &local_58;\n          if (uVar7 < param_6) {\n            uVar13 = *(ushort *)((long)puVar1 + 6);\n            uVar5 = (uint)uVar13;\n            if (uVar13 < 0xff00) {\n              if (uVar13 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = '\x01';\nLAB_0022ec44:\n              *param_11 = *param_11 + 1;\n              if (param_7 != 0) {\n                local_bc = *(ushort *)(param_7 + local_b0 * 2);\n                uVar13 = local_bc & 0x7fff;\n                if (uVar13 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80);\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\n            else {\n              local_b9 = '\0';\n              if (uVar13 != 0xffff) goto LAB_0022ec44;\n              lVar9 = param_2[8];\n              if (lVar9 == 0) {\n                lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);\n                param_2[8] = lVar9;\n              }\n              uVar5 = FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff);\n              if (uVar5 != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (param_7 == 0) {\n                local_b9 = '\x01';\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = '\x01';\n              local_bc = *(ushort *)(param_7 + local_b0 * 2);\n              uVar13 = local_bc & 0x7fff;\nLAB_0022ed91:\n                    /* try { // try from 0022edb6 to 0022f0c1 has its CatchHandler @ 0022f284 */\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88);\n              if (1 < uVar13) {\n                pcVar12 = "versym for symbol %zu out of range: %u";\n                if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    /* try { // try from 0022f1bf to 0022f1fd has its CatchHandler @ 0022f284 */\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }\n                uVar6 = gettext(pcVar12);\n                FUN_0019a740(param_2,uVar6,local_b0,uVar13);\n                goto LAB_0022ec88;\n              }\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\nLAB_0022ee87:\n            if (local_90 != 0) {\n              bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n              if (((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)\n                 ) {\nLAB_0022eeb4:\n                if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0022f24f to 0022f253 has its CatchHandler @ 0022f284 */\n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }\n              }\n              else if (bVar11 == 0) {\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (param_10 != (long *)0x0) {\n                *(long *)(*param_10 + local_b0 * 8) = local_90;\n              }\n            }\n          }\n          else {\n            uVar6 = gettext("bad symbol name offset %u at %zu");\n            FUN_0019a740(param_2,uVar6,uVar7,local_b0);\n          }\n        }\n      }\nLAB_0022ec88:\n      local_b0 = local_b0 + 1;\n      param_3 = param_3 + 3;\n    }" { (if_statement "if (param_10 != (long *)0x0) {\n        *(undefined8 *)(*param_10 + local_b0 * 8) = 0;\n      }" if (parenthesized_expression "(param_10 != (long *)0x0)" ( (binary_expression "param_10 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *(undefined8 *)(*param_10 + local_b0 * 8) = 0;\n      }" { (expression_statement "*(undefined8 *)(*param_10 + local_b0 * 8) = 0;" (assignment_expression "*(undefined8 *)(*param_10 + local_b0 * 8) = 0" (pointer_expression "*(undefined8 *)(*param_10 + local_b0 * 8)" * (cast_expression "(undefined8 *)(*param_10 + local_b0 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_10 + local_b0 * 8)" ( (binary_expression "*param_10 + local_b0 * 8" (pointer_expression "*param_10" * identifier) + (binary_expression "local_b0 * 8" identifier * number_literal)) )))) = number_literal) ;) })) (expression_statement "iVar4 = (int)(uint)*(byte *)((long)param_3 + 4) >> 4;" (assignment_expression "iVar4 = (int)(uint)*(byte *)((long)param_3 + 4) >> 4" identifier = (binary_expression "(int)(uint)*(byte *)((long)param_3 + 4) >> 4" (binary_expression "(int)(uint)*(byte *)((long)param_3 + 4)" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)((long)param_3 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_3 + 4)" ( (binary_expression "(long)param_3 + 4" (cast_expression "(long)param_3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) >> number_literal)) ;) (expression_statement "local_a0 = param_3;" (assignment_expression "local_a0 = param_3" identifier = identifier) ;) (if_statement "if (iVar4 != 0) {\n        bVar11 = *(byte *)((long)param_3 + 5) & 3;\n        if (1 < (byte)(bVar11 - 1)) {\n          bVar10 = *(byte *)((long)param_3 + 4) & 0xf;\n          if (bVar11 == 3) {\n            uStack_50 = param_3[1];\n            local_48 = param_3[2];\n            local_58._6_2_ = (undefined2)(*param_3 >> 0x30);\n            local_58._0_5_ = (undefined5)*param_3;\n            local_58 = CONCAT26(local_58._6_2_,\n                                CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58)) &\n                       0xfffffcffffffffff;\n            if (bVar10 == 10) goto LAB_0022ef70;\nLAB_0022ef0b:\n            uVar7 = local_58 & 0xffffffff;\n            puVar1 = &local_58;\n            ppuVar2 = &local_98;\n          }\n          else {\n            if (bVar10 == 10) {\n              local_48 = param_3[2];\n              local_58 = *param_3;\n              uStack_50 = param_3[1];\nLAB_0022ef70:\n              local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58);\n              goto LAB_0022ef0b;\n            }\n            ppuVar2 = &local_a0;\n            uVar7 = (ulong)(uint)*param_3;\n            puVar1 = param_3;\n          }\n          local_98 = &local_58;\n          if (uVar7 < param_6) {\n            uVar13 = *(ushort *)((long)puVar1 + 6);\n            uVar5 = (uint)uVar13;\n            if (uVar13 < 0xff00) {\n              if (uVar13 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = '\x01';\nLAB_0022ec44:\n              *param_11 = *param_11 + 1;\n              if (param_7 != 0) {\n                local_bc = *(ushort *)(param_7 + local_b0 * 2);\n                uVar13 = local_bc & 0x7fff;\n                if (uVar13 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80);\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\n            else {\n              local_b9 = '\0';\n              if (uVar13 != 0xffff) goto LAB_0022ec44;\n              lVar9 = param_2[8];\n              if (lVar9 == 0) {\n                lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);\n                param_2[8] = lVar9;\n              }\n              uVar5 = FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff);\n              if (uVar5 != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (param_7 == 0) {\n                local_b9 = '\x01';\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = '\x01';\n              local_bc = *(ushort *)(param_7 + local_b0 * 2);\n              uVar13 = local_bc & 0x7fff;\nLAB_0022ed91:\n                    /* try { // try from 0022edb6 to 0022f0c1 has its CatchHandler @ 0022f284 */\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88);\n              if (1 < uVar13) {\n                pcVar12 = "versym for symbol %zu out of range: %u";\n                if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    /* try { // try from 0022f1bf to 0022f1fd has its CatchHandler @ 0022f284 */\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }\n                uVar6 = gettext(pcVar12);\n                FUN_0019a740(param_2,uVar6,local_b0,uVar13);\n                goto LAB_0022ec88;\n              }\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\nLAB_0022ee87:\n            if (local_90 != 0) {\n              bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n              if (((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)\n                 ) {\nLAB_0022eeb4:\n                if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0022f24f to 0022f253 has its CatchHandler @ 0022f284 */\n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }\n              }\n              else if (bVar11 == 0) {\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (param_10 != (long *)0x0) {\n                *(long *)(*param_10 + local_b0 * 8) = local_90;\n              }\n            }\n          }\n          else {\n            uVar6 = gettext("bad symbol name offset %u at %zu");\n            FUN_0019a740(param_2,uVar6,uVar7,local_b0);\n          }\n        }\n      }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        bVar11 = *(byte *)((long)param_3 + 5) & 3;\n        if (1 < (byte)(bVar11 - 1)) {\n          bVar10 = *(byte *)((long)param_3 + 4) & 0xf;\n          if (bVar11 == 3) {\n            uStack_50 = param_3[1];\n            local_48 = param_3[2];\n            local_58._6_2_ = (undefined2)(*param_3 >> 0x30);\n            local_58._0_5_ = (undefined5)*param_3;\n            local_58 = CONCAT26(local_58._6_2_,\n                                CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58)) &\n                       0xfffffcffffffffff;\n            if (bVar10 == 10) goto LAB_0022ef70;\nLAB_0022ef0b:\n            uVar7 = local_58 & 0xffffffff;\n            puVar1 = &local_58;\n            ppuVar2 = &local_98;\n          }\n          else {\n            if (bVar10 == 10) {\n              local_48 = param_3[2];\n              local_58 = *param_3;\n              uStack_50 = param_3[1];\nLAB_0022ef70:\n              local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58);\n              goto LAB_0022ef0b;\n            }\n            ppuVar2 = &local_a0;\n            uVar7 = (ulong)(uint)*param_3;\n            puVar1 = param_3;\n          }\n          local_98 = &local_58;\n          if (uVar7 < param_6) {\n            uVar13 = *(ushort *)((long)puVar1 + 6);\n            uVar5 = (uint)uVar13;\n            if (uVar13 < 0xff00) {\n              if (uVar13 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = '\x01';\nLAB_0022ec44:\n              *param_11 = *param_11 + 1;\n              if (param_7 != 0) {\n                local_bc = *(ushort *)(param_7 + local_b0 * 2);\n                uVar13 = local_bc & 0x7fff;\n                if (uVar13 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80);\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\n            else {\n              local_b9 = '\0';\n              if (uVar13 != 0xffff) goto LAB_0022ec44;\n              lVar9 = param_2[8];\n              if (lVar9 == 0) {\n                lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);\n                param_2[8] = lVar9;\n              }\n              uVar5 = FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff);\n              if (uVar5 != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (param_7 == 0) {\n                local_b9 = '\x01';\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = '\x01';\n              local_bc = *(ushort *)(param_7 + local_b0 * 2);\n              uVar13 = local_bc & 0x7fff;\nLAB_0022ed91:\n                    /* try { // try from 0022edb6 to 0022f0c1 has its CatchHandler @ 0022f284 */\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88);\n              if (1 < uVar13) {\n                pcVar12 = "versym for symbol %zu out of range: %u";\n                if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    /* try { // try from 0022f1bf to 0022f1fd has its CatchHandler @ 0022f284 */\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }\n                uVar6 = gettext(pcVar12);\n                FUN_0019a740(param_2,uVar6,local_b0,uVar13);\n                goto LAB_0022ec88;\n              }\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\nLAB_0022ee87:\n            if (local_90 != 0) {\n              bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n              if (((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)\n                 ) {\nLAB_0022eeb4:\n                if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0022f24f to 0022f253 has its CatchHandler @ 0022f284 */\n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }\n              }\n              else if (bVar11 == 0) {\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (param_10 != (long *)0x0) {\n                *(long *)(*param_10 + local_b0 * 8) = local_90;\n              }\n            }\n          }\n          else {\n            uVar6 = gettext("bad symbol name offset %u at %zu");\n            FUN_0019a740(param_2,uVar6,uVar7,local_b0);\n          }\n        }\n      }" { (expression_statement "bVar11 = *(byte *)((long)param_3 + 5) & 3;" (assignment_expression "bVar11 = *(byte *)((long)param_3 + 5) & 3" identifier = (binary_expression "*(byte *)((long)param_3 + 5) & 3" (pointer_expression "*(byte *)((long)param_3 + 5)" * (cast_expression "(byte *)((long)param_3 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_3 + 5)" ( (binary_expression "(long)param_3 + 5" (cast_expression "(long)param_3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal)) ;) (if_statement "if (1 < (byte)(bVar11 - 1)) {\n          bVar10 = *(byte *)((long)param_3 + 4) & 0xf;\n          if (bVar11 == 3) {\n            uStack_50 = param_3[1];\n            local_48 = param_3[2];\n            local_58._6_2_ = (undefined2)(*param_3 >> 0x30);\n            local_58._0_5_ = (undefined5)*param_3;\n            local_58 = CONCAT26(local_58._6_2_,\n                                CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58)) &\n                       0xfffffcffffffffff;\n            if (bVar10 == 10) goto LAB_0022ef70;\nLAB_0022ef0b:\n            uVar7 = local_58 & 0xffffffff;\n            puVar1 = &local_58;\n            ppuVar2 = &local_98;\n          }\n          else {\n            if (bVar10 == 10) {\n              local_48 = param_3[2];\n              local_58 = *param_3;\n              uStack_50 = param_3[1];\nLAB_0022ef70:\n              local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58);\n              goto LAB_0022ef0b;\n            }\n            ppuVar2 = &local_a0;\n            uVar7 = (ulong)(uint)*param_3;\n            puVar1 = param_3;\n          }\n          local_98 = &local_58;\n          if (uVar7 < param_6) {\n            uVar13 = *(ushort *)((long)puVar1 + 6);\n            uVar5 = (uint)uVar13;\n            if (uVar13 < 0xff00) {\n              if (uVar13 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = '\x01';\nLAB_0022ec44:\n              *param_11 = *param_11 + 1;\n              if (param_7 != 0) {\n                local_bc = *(ushort *)(param_7 + local_b0 * 2);\n                uVar13 = local_bc & 0x7fff;\n                if (uVar13 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80);\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\n            else {\n              local_b9 = '\0';\n              if (uVar13 != 0xffff) goto LAB_0022ec44;\n              lVar9 = param_2[8];\n              if (lVar9 == 0) {\n                lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);\n                param_2[8] = lVar9;\n              }\n              uVar5 = FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff);\n              if (uVar5 != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (param_7 == 0) {\n                local_b9 = '\x01';\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = '\x01';\n              local_bc = *(ushort *)(param_7 + local_b0 * 2);\n              uVar13 = local_bc & 0x7fff;\nLAB_0022ed91:\n                    /* try { // try from 0022edb6 to 0022f0c1 has its CatchHandler @ 0022f284 */\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88);\n              if (1 < uVar13) {\n                pcVar12 = "versym for symbol %zu out of range: %u";\n                if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    /* try { // try from 0022f1bf to 0022f1fd has its CatchHandler @ 0022f284 */\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }\n                uVar6 = gettext(pcVar12);\n                FUN_0019a740(param_2,uVar6,local_b0,uVar13);\n                goto LAB_0022ec88;\n              }\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\nLAB_0022ee87:\n            if (local_90 != 0) {\n              bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n              if (((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)\n                 ) {\nLAB_0022eeb4:\n                if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0022f24f to 0022f253 has its CatchHandler @ 0022f284 */\n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }\n              }\n              else if (bVar11 == 0) {\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (param_10 != (long *)0x0) {\n                *(long *)(*param_10 + local_b0 * 8) = local_90;\n              }\n            }\n          }\n          else {\n            uVar6 = gettext("bad symbol name offset %u at %zu");\n            FUN_0019a740(param_2,uVar6,uVar7,local_b0);\n          }\n        }" if (parenthesized_expression "(1 < (byte)(bVar11 - 1))" ( (binary_expression "1 < (byte)(bVar11 - 1)" number_literal < (call_expression "(byte)(bVar11 - 1)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar11 - 1)" ( (binary_expression "bVar11 - 1" identifier - number_literal) )))) )) (compound_statement "{\n          bVar10 = *(byte *)((long)param_3 + 4) & 0xf;\n          if (bVar11 == 3) {\n            uStack_50 = param_3[1];\n            local_48 = param_3[2];\n            local_58._6_2_ = (undefined2)(*param_3 >> 0x30);\n            local_58._0_5_ = (undefined5)*param_3;\n            local_58 = CONCAT26(local_58._6_2_,\n                                CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58)) &\n                       0xfffffcffffffffff;\n            if (bVar10 == 10) goto LAB_0022ef70;\nLAB_0022ef0b:\n            uVar7 = local_58 & 0xffffffff;\n            puVar1 = &local_58;\n            ppuVar2 = &local_98;\n          }\n          else {\n            if (bVar10 == 10) {\n              local_48 = param_3[2];\n              local_58 = *param_3;\n              uStack_50 = param_3[1];\nLAB_0022ef70:\n              local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58);\n              goto LAB_0022ef0b;\n            }\n            ppuVar2 = &local_a0;\n            uVar7 = (ulong)(uint)*param_3;\n            puVar1 = param_3;\n          }\n          local_98 = &local_58;\n          if (uVar7 < param_6) {\n            uVar13 = *(ushort *)((long)puVar1 + 6);\n            uVar5 = (uint)uVar13;\n            if (uVar13 < 0xff00) {\n              if (uVar13 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = '\x01';\nLAB_0022ec44:\n              *param_11 = *param_11 + 1;\n              if (param_7 != 0) {\n                local_bc = *(ushort *)(param_7 + local_b0 * 2);\n                uVar13 = local_bc & 0x7fff;\n                if (uVar13 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80);\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\n            else {\n              local_b9 = '\0';\n              if (uVar13 != 0xffff) goto LAB_0022ec44;\n              lVar9 = param_2[8];\n              if (lVar9 == 0) {\n                lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);\n                param_2[8] = lVar9;\n              }\n              uVar5 = FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff);\n              if (uVar5 != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (param_7 == 0) {\n                local_b9 = '\x01';\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = '\x01';\n              local_bc = *(ushort *)(param_7 + local_b0 * 2);\n              uVar13 = local_bc & 0x7fff;\nLAB_0022ed91:\n                    /* try { // try from 0022edb6 to 0022f0c1 has its CatchHandler @ 0022f284 */\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88);\n              if (1 < uVar13) {\n                pcVar12 = "versym for symbol %zu out of range: %u";\n                if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    /* try { // try from 0022f1bf to 0022f1fd has its CatchHandler @ 0022f284 */\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }\n                uVar6 = gettext(pcVar12);\n                FUN_0019a740(param_2,uVar6,local_b0,uVar13);\n                goto LAB_0022ec88;\n              }\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\nLAB_0022ee87:\n            if (local_90 != 0) {\n              bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n              if (((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)\n                 ) {\nLAB_0022eeb4:\n                if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0022f24f to 0022f253 has its CatchHandler @ 0022f284 */\n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }\n              }\n              else if (bVar11 == 0) {\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (param_10 != (long *)0x0) {\n                *(long *)(*param_10 + local_b0 * 8) = local_90;\n              }\n            }\n          }\n          else {\n            uVar6 = gettext("bad symbol name offset %u at %zu");\n            FUN_0019a740(param_2,uVar6,uVar7,local_b0);\n          }\n        }" { (expression_statement "bVar10 = *(byte *)((long)param_3 + 4) & 0xf;" (assignment_expression "bVar10 = *(byte *)((long)param_3 + 4) & 0xf" identifier = (binary_expression "*(byte *)((long)param_3 + 4) & 0xf" (pointer_expression "*(byte *)((long)param_3 + 4)" * (cast_expression "(byte *)((long)param_3 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_3 + 4)" ( (binary_expression "(long)param_3 + 4" (cast_expression "(long)param_3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal)) ;) (if_statement "if (bVar11 == 3) {\n            uStack_50 = param_3[1];\n            local_48 = param_3[2];\n            local_58._6_2_ = (undefined2)(*param_3 >> 0x30);\n            local_58._0_5_ = (undefined5)*param_3;\n            local_58 = CONCAT26(local_58._6_2_,\n                                CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58)) &\n                       0xfffffcffffffffff;\n            if (bVar10 == 10) goto LAB_0022ef70;\nLAB_0022ef0b:\n            uVar7 = local_58 & 0xffffffff;\n            puVar1 = &local_58;\n            ppuVar2 = &local_98;\n          }\n          else {\n            if (bVar10 == 10) {\n              local_48 = param_3[2];\n              local_58 = *param_3;\n              uStack_50 = param_3[1];\nLAB_0022ef70:\n              local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58);\n              goto LAB_0022ef0b;\n            }\n            ppuVar2 = &local_a0;\n            uVar7 = (ulong)(uint)*param_3;\n            puVar1 = param_3;\n          }" if (parenthesized_expression "(bVar11 == 3)" ( (binary_expression "bVar11 == 3" identifier == number_literal) )) (compound_statement "{\n            uStack_50 = param_3[1];\n            local_48 = param_3[2];\n            local_58._6_2_ = (undefined2)(*param_3 >> 0x30);\n            local_58._0_5_ = (undefined5)*param_3;\n            local_58 = CONCAT26(local_58._6_2_,\n                                CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58)) &\n                       0xfffffcffffffffff;\n            if (bVar10 == 10) goto LAB_0022ef70;\nLAB_0022ef0b:\n            uVar7 = local_58 & 0xffffffff;\n            puVar1 = &local_58;\n            ppuVar2 = &local_98;\n          }" { (expression_statement "uStack_50 = param_3[1];" (assignment_expression "uStack_50 = param_3[1]" identifier = (subscript_expression "param_3[1]" identifier [ number_literal ])) ;) (expression_statement "local_48 = param_3[2];" (assignment_expression "local_48 = param_3[2]" identifier = (subscript_expression "param_3[2]" identifier [ number_literal ])) ;) (expression_statement "local_58._6_2_ = (undefined2)(*param_3 >> 0x30);" (assignment_expression "local_58._6_2_ = (undefined2)(*param_3 >> 0x30)" (field_expression "local_58._6_2_" identifier . field_identifier) = (call_expression "(undefined2)(*param_3 >> 0x30)" (parenthesized_expression "(undefined2)" ( identifier )) (argument_list "(*param_3 >> 0x30)" ( (binary_expression "*param_3 >> 0x30" (pointer_expression "*param_3" * identifier) >> number_literal) )))) ;) (expression_statement "local_58._0_5_ = (undefined5)*param_3;" (assignment_expression "local_58._0_5_ = (undefined5)*param_3" (field_expression "local_58._0_5_" identifier . field_identifier) = (binary_expression "(undefined5)*param_3" (parenthesized_expression "(undefined5)" ( identifier )) * identifier)) ;) (expression_statement "local_58 = CONCAT26(local_58._6_2_,\n                                CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58)) &\n                       0xfffffcffffffffff;" (assignment_expression "local_58 = CONCAT26(local_58._6_2_,\n                                CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58)) &\n                       0xfffffcffffffffff" identifier = (binary_expression "CONCAT26(local_58._6_2_,\n                                CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58)) &\n                       0xfffffcffffffffff" (call_expression "CONCAT26(local_58._6_2_,\n                                CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58))" identifier (argument_list "(local_58._6_2_,\n                                CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58))" ( (field_expression "local_58._6_2_" identifier . field_identifier) , (call_expression "CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58)" identifier (argument_list "(*(byte *)((long)param_3 + 5),(undefined5)local_58)" ( (pointer_expression "*(byte *)((long)param_3 + 5)" * (cast_expression "(byte *)((long)param_3 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_3 + 5)" ( (binary_expression "(long)param_3 + 5" (cast_expression "(long)param_3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) , (cast_expression "(undefined5)local_58" ( (type_descriptor "undefined5" type_identifier) ) identifier) ))) ))) & number_literal)) ;) (if_statement "if (bVar10 == 10) goto LAB_0022ef70;" if (parenthesized_expression "(bVar10 == 10)" ( (binary_expression "bVar10 == 10" identifier == number_literal) )) (goto_statement "goto LAB_0022ef70;" goto statement_identifier ;)) (labeled_statement "LAB_0022ef0b:\n            uVar7 = local_58 & 0xffffffff;" statement_identifier : (expression_statement "uVar7 = local_58 & 0xffffffff;" (assignment_expression "uVar7 = local_58 & 0xffffffff" identifier = (binary_expression "local_58 & 0xffffffff" identifier & number_literal)) ;)) (expression_statement "puVar1 = &local_58;" (assignment_expression "puVar1 = &local_58" identifier = (pointer_expression "&local_58" & identifier)) ;) (expression_statement "ppuVar2 = &local_98;" (assignment_expression "ppuVar2 = &local_98" identifier = (pointer_expression "&local_98" & identifier)) ;) }) (else_clause "else {\n            if (bVar10 == 10) {\n              local_48 = param_3[2];\n              local_58 = *param_3;\n              uStack_50 = param_3[1];\nLAB_0022ef70:\n              local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58);\n              goto LAB_0022ef0b;\n            }\n            ppuVar2 = &local_a0;\n            uVar7 = (ulong)(uint)*param_3;\n            puVar1 = param_3;\n          }" else (compound_statement "{\n            if (bVar10 == 10) {\n              local_48 = param_3[2];\n              local_58 = *param_3;\n              uStack_50 = param_3[1];\nLAB_0022ef70:\n              local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58);\n              goto LAB_0022ef0b;\n            }\n            ppuVar2 = &local_a0;\n            uVar7 = (ulong)(uint)*param_3;\n            puVar1 = param_3;\n          }" { (if_statement "if (bVar10 == 10) {\n              local_48 = param_3[2];\n              local_58 = *param_3;\n              uStack_50 = param_3[1];\nLAB_0022ef70:\n              local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58);\n              goto LAB_0022ef0b;\n            }" if (parenthesized_expression "(bVar10 == 10)" ( (binary_expression "bVar10 == 10" identifier == number_literal) )) (compound_statement "{\n              local_48 = param_3[2];\n              local_58 = *param_3;\n              uStack_50 = param_3[1];\nLAB_0022ef70:\n              local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58);\n              goto LAB_0022ef0b;\n            }" { (expression_statement "local_48 = param_3[2];" (assignment_expression "local_48 = param_3[2]" identifier = (subscript_expression "param_3[2]" identifier [ number_literal ])) ;) (expression_statement "local_58 = *param_3;" (assignment_expression "local_58 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "uStack_50 = param_3[1];" (assignment_expression "uStack_50 = param_3[1]" identifier = (subscript_expression "param_3[1]" identifier [ number_literal ])) ;) (labeled_statement "LAB_0022ef70:\n              local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58);" statement_identifier : (expression_statement "local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58);" (assignment_expression "local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58)" (field_expression "local_58._0_5_" identifier . field_identifier) = (call_expression "CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58)" identifier (argument_list "((char)(iVar4 << 4) + '\x02',(undefined4)local_58)" ( (binary_expression "(char)(iVar4 << 4) + '\x02'" (cast_expression "(char)(iVar4 << 4)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(iVar4 << 4)" ( (binary_expression "iVar4 << 4" identifier << number_literal) ))) + (char_literal "'\x02'" ' escape_sequence ')) , (cast_expression "(undefined4)local_58" ( (type_descriptor "undefined4" type_identifier) ) identifier) )))) ;)) (goto_statement "goto LAB_0022ef0b;" goto statement_identifier ;) })) (expression_statement "ppuVar2 = &local_a0;" (assignment_expression "ppuVar2 = &local_a0" identifier = (pointer_expression "&local_a0" & identifier)) ;) (expression_statement "uVar7 = (ulong)(uint)*param_3;" (assignment_expression "uVar7 = (ulong)(uint)*param_3" identifier = (binary_expression "(ulong)(uint)*param_3" (call_expression "(ulong)(uint)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uint)" ( identifier ))) * identifier)) ;) (expression_statement "puVar1 = param_3;" (assignment_expression "puVar1 = param_3" identifier = identifier) ;) }))) (expression_statement "local_98 = &local_58;" (assignment_expression "local_98 = &local_58" identifier = (pointer_expression "&local_58" & identifier)) ;) (if_statement "if (uVar7 < param_6) {\n            uVar13 = *(ushort *)((long)puVar1 + 6);\n            uVar5 = (uint)uVar13;\n            if (uVar13 < 0xff00) {\n              if (uVar13 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = '\x01';\nLAB_0022ec44:\n              *param_11 = *param_11 + 1;\n              if (param_7 != 0) {\n                local_bc = *(ushort *)(param_7 + local_b0 * 2);\n                uVar13 = local_bc & 0x7fff;\n                if (uVar13 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80);\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\n            else {\n              local_b9 = '\0';\n              if (uVar13 != 0xffff) goto LAB_0022ec44;\n              lVar9 = param_2[8];\n              if (lVar9 == 0) {\n                lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);\n                param_2[8] = lVar9;\n              }\n              uVar5 = FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff);\n              if (uVar5 != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (param_7 == 0) {\n                local_b9 = '\x01';\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = '\x01';\n              local_bc = *(ushort *)(param_7 + local_b0 * 2);\n              uVar13 = local_bc & 0x7fff;\nLAB_0022ed91:\n                    /* try { // try from 0022edb6 to 0022f0c1 has its CatchHandler @ 0022f284 */\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88);\n              if (1 < uVar13) {\n                pcVar12 = "versym for symbol %zu out of range: %u";\n                if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    /* try { // try from 0022f1bf to 0022f1fd has its CatchHandler @ 0022f284 */\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }\n                uVar6 = gettext(pcVar12);\n                FUN_0019a740(param_2,uVar6,local_b0,uVar13);\n                goto LAB_0022ec88;\n              }\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\nLAB_0022ee87:\n            if (local_90 != 0) {\n              bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n              if (((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)\n                 ) {\nLAB_0022eeb4:\n                if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0022f24f to 0022f253 has its CatchHandler @ 0022f284 */\n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }\n              }\n              else if (bVar11 == 0) {\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (param_10 != (long *)0x0) {\n                *(long *)(*param_10 + local_b0 * 8) = local_90;\n              }\n            }\n          }\n          else {\n            uVar6 = gettext("bad symbol name offset %u at %zu");\n            FUN_0019a740(param_2,uVar6,uVar7,local_b0);\n          }" if (parenthesized_expression "(uVar7 < param_6)" ( (binary_expression "uVar7 < param_6" identifier < identifier) )) (compound_statement "{\n            uVar13 = *(ushort *)((long)puVar1 + 6);\n            uVar5 = (uint)uVar13;\n            if (uVar13 < 0xff00) {\n              if (uVar13 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = '\x01';\nLAB_0022ec44:\n              *param_11 = *param_11 + 1;\n              if (param_7 != 0) {\n                local_bc = *(ushort *)(param_7 + local_b0 * 2);\n                uVar13 = local_bc & 0x7fff;\n                if (uVar13 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80);\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\n            else {\n              local_b9 = '\0';\n              if (uVar13 != 0xffff) goto LAB_0022ec44;\n              lVar9 = param_2[8];\n              if (lVar9 == 0) {\n                lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);\n                param_2[8] = lVar9;\n              }\n              uVar5 = FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff);\n              if (uVar5 != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (param_7 == 0) {\n                local_b9 = '\x01';\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = '\x01';\n              local_bc = *(ushort *)(param_7 + local_b0 * 2);\n              uVar13 = local_bc & 0x7fff;\nLAB_0022ed91:\n                    /* try { // try from 0022edb6 to 0022f0c1 has its CatchHandler @ 0022f284 */\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88);\n              if (1 < uVar13) {\n                pcVar12 = "versym for symbol %zu out of range: %u";\n                if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    /* try { // try from 0022f1bf to 0022f1fd has its CatchHandler @ 0022f284 */\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }\n                uVar6 = gettext(pcVar12);\n                FUN_0019a740(param_2,uVar6,local_b0,uVar13);\n                goto LAB_0022ec88;\n              }\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\nLAB_0022ee87:\n            if (local_90 != 0) {\n              bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n              if (((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)\n                 ) {\nLAB_0022eeb4:\n                if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0022f24f to 0022f253 has its CatchHandler @ 0022f284 */\n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }\n              }\n              else if (bVar11 == 0) {\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (param_10 != (long *)0x0) {\n                *(long *)(*param_10 + local_b0 * 8) = local_90;\n              }\n            }\n          }" { (expression_statement "uVar13 = *(ushort *)((long)puVar1 + 6);" (assignment_expression "uVar13 = *(ushort *)((long)puVar1 + 6)" identifier = (pointer_expression "*(ushort *)((long)puVar1 + 6)" * (cast_expression "(ushort *)((long)puVar1 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar1 + 6)" ( (binary_expression "(long)puVar1 + 6" (cast_expression "(long)puVar1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar5 = (uint)uVar13;" (assignment_expression "uVar5 = (uint)uVar13" identifier = (cast_expression "(uint)uVar13" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (uVar13 < 0xff00) {\n              if (uVar13 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = '\x01';\nLAB_0022ec44:\n              *param_11 = *param_11 + 1;\n              if (param_7 != 0) {\n                local_bc = *(ushort *)(param_7 + local_b0 * 2);\n                uVar13 = local_bc & 0x7fff;\n                if (uVar13 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80);\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\n            else {\n              local_b9 = '\0';\n              if (uVar13 != 0xffff) goto LAB_0022ec44;\n              lVar9 = param_2[8];\n              if (lVar9 == 0) {\n                lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);\n                param_2[8] = lVar9;\n              }\n              uVar5 = FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff);\n              if (uVar5 != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (param_7 == 0) {\n                local_b9 = '\x01';\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = '\x01';\n              local_bc = *(ushort *)(param_7 + local_b0 * 2);\n              uVar13 = local_bc & 0x7fff;\nLAB_0022ed91:\n                    /* try { // try from 0022edb6 to 0022f0c1 has its CatchHandler @ 0022f284 */\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88);\n              if (1 < uVar13) {\n                pcVar12 = "versym for symbol %zu out of range: %u";\n                if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    /* try { // try from 0022f1bf to 0022f1fd has its CatchHandler @ 0022f284 */\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }\n                uVar6 = gettext(pcVar12);\n                FUN_0019a740(param_2,uVar6,local_b0,uVar13);\n                goto LAB_0022ec88;\n              }\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }" if (parenthesized_expression "(uVar13 < 0xff00)" ( (binary_expression "uVar13 < 0xff00" identifier < number_literal) )) (compound_statement "{\n              if (uVar13 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = '\x01';\nLAB_0022ec44:\n              *param_11 = *param_11 + 1;\n              if (param_7 != 0) {\n                local_bc = *(ushort *)(param_7 + local_b0 * 2);\n                uVar13 = local_bc & 0x7fff;\n                if (uVar13 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80);\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }" { (if_statement "if (uVar13 == 0) goto LAB_0022ed4f;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0022ed4f;" goto statement_identifier ;)) (labeled_statement "LAB_0022f012:\n              local_b9 = '\x01';" statement_identifier : (expression_statement "local_b9 = '\x01';" (assignment_expression "local_b9 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;)) (labeled_statement "LAB_0022ec44:\n              *param_11 = *param_11 + 1;" statement_identifier : (expression_statement "*param_11 = *param_11 + 1;" (assignment_expression "*param_11 = *param_11 + 1" (pointer_expression "*param_11" * identifier) = (binary_expression "*param_11 + 1" (pointer_expression "*param_11" * identifier) + number_literal)) ;)) (if_statement "if (param_7 != 0) {\n                local_bc = *(ushort *)(param_7 + local_b0 * 2);\n                uVar13 = local_bc & 0x7fff;\n                if (uVar13 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }" if (parenthesized_expression "(param_7 != 0)" ( (binary_expression "param_7 != 0" identifier != number_literal) )) (compound_statement "{\n                local_bc = *(ushort *)(param_7 + local_b0 * 2);\n                uVar13 = local_bc & 0x7fff;\n                if (uVar13 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }" { (expression_statement "local_bc = *(ushort *)(param_7 + local_b0 * 2);" (assignment_expression "local_bc = *(ushort *)(param_7 + local_b0 * 2)" identifier = (pointer_expression "*(ushort *)(param_7 + local_b0 * 2)" * (cast_expression "(ushort *)(param_7 + local_b0 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_7 + local_b0 * 2)" ( (binary_expression "param_7 + local_b0 * 2" identifier + (binary_expression "local_b0 * 2" identifier * number_literal)) ))))) ;) (expression_statement "uVar13 = local_bc & 0x7fff;" (assignment_expression "uVar13 = local_bc & 0x7fff" identifier = (binary_expression "local_bc & 0x7fff" identifier & number_literal)) ;) (if_statement "if (uVar13 == 0) goto LAB_0022ec88;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0022ec88;" goto statement_identifier ;)) (expression_statement "local_ba = 1;" (assignment_expression "local_ba = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0022ed91;" goto statement_identifier ;) })) (labeled_statement "LAB_0022ef87:\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80);" statement_identifier : (expression_statement "uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80);" (assignment_expression "uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80)" identifier = (call_expression "FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80)" identifier (argument_list "(param_1 + 0x68,uVar7 + param_5,1,&local_80)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) , (binary_expression "uVar7 + param_5" identifier + identifier) , number_literal , (pointer_expression "&local_80" & identifier) )))) ;)) (expression_statement "local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);" (assignment_expression "local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5)" identifier = (call_expression "FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5)" identifier (argument_list "(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5)" ( identifier , identifier , identifier , identifier , number_literal , number_literal , number_literal , identifier , identifier , identifier , identifier )))) ;) }) (else_clause "else {\n              local_b9 = '\0';\n              if (uVar13 != 0xffff) goto LAB_0022ec44;\n              lVar9 = param_2[8];\n              if (lVar9 == 0) {\n                lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);\n                param_2[8] = lVar9;\n              }\n              uVar5 = FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff);\n              if (uVar5 != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (param_7 == 0) {\n                local_b9 = '\x01';\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = '\x01';\n              local_bc = *(ushort *)(param_7 + local_b0 * 2);\n              uVar13 = local_bc & 0x7fff;\nLAB_0022ed91:\n                    /* try { // try from 0022edb6 to 0022f0c1 has its CatchHandler @ 0022f284 */\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88);\n              if (1 < uVar13) {\n                pcVar12 = "versym for symbol %zu out of range: %u";\n                if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    /* try { // try from 0022f1bf to 0022f1fd has its CatchHandler @ 0022f284 */\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }\n                uVar6 = gettext(pcVar12);\n                FUN_0019a740(param_2,uVar6,local_b0,uVar13);\n                goto LAB_0022ec88;\n              }\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }" else (compound_statement "{\n              local_b9 = '\0';\n              if (uVar13 != 0xffff) goto LAB_0022ec44;\n              lVar9 = param_2[8];\n              if (lVar9 == 0) {\n                lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);\n                param_2[8] = lVar9;\n              }\n              uVar5 = FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff);\n              if (uVar5 != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (param_7 == 0) {\n                local_b9 = '\x01';\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = '\x01';\n              local_bc = *(ushort *)(param_7 + local_b0 * 2);\n              uVar13 = local_bc & 0x7fff;\nLAB_0022ed91:\n                    /* try { // try from 0022edb6 to 0022f0c1 has its CatchHandler @ 0022f284 */\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88);\n              if (1 < uVar13) {\n                pcVar12 = "versym for symbol %zu out of range: %u";\n                if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    /* try { // try from 0022f1bf to 0022f1fd has its CatchHandler @ 0022f284 */\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }\n                uVar6 = gettext(pcVar12);\n                FUN_0019a740(param_2,uVar6,local_b0,uVar13);\n                goto LAB_0022ec88;\n              }\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }" { (expression_statement "local_b9 = '\0';" (assignment_expression "local_b9 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (uVar13 != 0xffff) goto LAB_0022ec44;" if (parenthesized_expression "(uVar13 != 0xffff)" ( (binary_expression "uVar13 != 0xffff" identifier != number_literal) )) (goto_statement "goto LAB_0022ec44;" goto statement_identifier ;)) (expression_statement "lVar9 = param_2[8];" (assignment_expression "lVar9 = param_2[8]" identifier = (subscript_expression "param_2[8]" identifier [ number_literal ])) ;) (if_statement "if (lVar9 == 0) {\n                lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);\n                param_2[8] = lVar9;\n              }" if (parenthesized_expression "(lVar9 == 0)" ( (binary_expression "lVar9 == 0" identifier == number_literal) )) (compound_statement "{\n                lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);\n                param_2[8] = lVar9;\n              }" { (expression_statement "lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);" (assignment_expression "lVar9 = (**(code **)(*param_2 + 0xd8))(param_2)" identifier = (call_expression "(**(code **)(*param_2 + 0xd8))(param_2)" (parenthesized_expression "(**(code **)(*param_2 + 0xd8))" ( (pointer_expression "**(code **)(*param_2 + 0xd8)" * (pointer_expression "*(code **)(*param_2 + 0xd8)" * (cast_expression "(code **)(*param_2 + 0xd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0xd8)" ( (binary_expression "*param_2 + 0xd8" (pointer_expression "*param_2" * identifier) + number_literal) ))))) )) (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "param_2[8] = lVar9;" (assignment_expression "param_2[8] = lVar9" (subscript_expression "param_2[8]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "uVar5 = FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff);" (assignment_expression "uVar5 = FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff)" identifier = (call_expression "FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff)" identifier (argument_list "(lVar9,param_2,local_b0 & 0xffffffff)" ( identifier , identifier , (binary_expression "local_b0 & 0xffffffff" identifier & number_literal) )))) ;) (if_statement "if (uVar5 != 0) goto LAB_0022f012;" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0022f012;" goto statement_identifier ;)) (labeled_statement "LAB_0022ed4f:\n              if (param_7 == 0) {\n                local_b9 = '\x01';\n                goto LAB_0022ef87;\n              }" statement_identifier : (if_statement "if (param_7 == 0) {\n                local_b9 = '\x01';\n                goto LAB_0022ef87;\n              }" if (parenthesized_expression "(param_7 == 0)" ( (binary_expression "param_7 == 0" identifier == number_literal) )) (compound_statement "{\n                local_b9 = '\x01';\n                goto LAB_0022ef87;\n              }" { (expression_statement "local_b9 = '\x01';" (assignment_expression "local_b9 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (goto_statement "goto LAB_0022ef87;" goto statement_identifier ;) }))) (expression_statement "local_ba = 0;" (assignment_expression "local_ba = 0" identifier = number_literal) ;) (expression_statement "local_b9 = '\x01';" (assignment_expression "local_b9 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "local_bc = *(ushort *)(param_7 + local_b0 * 2);" (assignment_expression "local_bc = *(ushort *)(param_7 + local_b0 * 2)" identifier = (pointer_expression "*(ushort *)(param_7 + local_b0 * 2)" * (cast_expression "(ushort *)(param_7 + local_b0 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_7 + local_b0 * 2)" ( (binary_expression "param_7 + local_b0 * 2" identifier + (binary_expression "local_b0 * 2" identifier * number_literal)) ))))) ;) (expression_statement "uVar13 = local_bc & 0x7fff;" (assignment_expression "uVar13 = local_bc & 0x7fff" identifier = (binary_expression "local_bc & 0x7fff" identifier & number_literal)) ;) (labeled_statement "LAB_0022ed91:\n                    /* try { // try from 0022edb6 to 0022f0c1 has its CatchHandler @ 0022f284 */\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88);" statement_identifier : comment (expression_statement "uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88);" (assignment_expression "uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88)" identifier = (call_expression "FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88)" identifier (argument_list "(param_1 + 0x68,uVar7 + param_5,1,&local_88)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) , (binary_expression "uVar7 + param_5" identifier + identifier) , number_literal , (pointer_expression "&local_88" & identifier) )))) ;)) (if_statement "if (1 < uVar13) {\n                pcVar12 = "versym for symbol %zu out of range: %u";\n                if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    /* try { // try from 0022f1bf to 0022f1fd has its CatchHandler @ 0022f284 */\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }\n                uVar6 = gettext(pcVar12);\n                FUN_0019a740(param_2,uVar6,local_b0,uVar13);\n                goto LAB_0022ec88;\n              }" if (parenthesized_expression "(1 < uVar13)" ( (binary_expression "1 < uVar13" number_literal < identifier) )) (compound_statement "{\n                pcVar12 = "versym for symbol %zu out of range: %u";\n                if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    /* try { // try from 0022f1bf to 0022f1fd has its CatchHandler @ 0022f284 */\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }\n                uVar6 = gettext(pcVar12);\n                FUN_0019a740(param_2,uVar6,local_b0,uVar13);\n                goto LAB_0022ec88;\n              }" { (expression_statement "pcVar12 = "versym for symbol %zu out of range: %u";" (assignment_expression "pcVar12 = "versym for symbol %zu out of range: %u"" identifier = (string_literal ""versym for symbol %zu out of range: %u"" " string_content ")) ;) (if_statement "if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    /* try { // try from 0022f1bf to 0022f1fd has its CatchHandler @ 0022f284 */\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }" if (parenthesized_expression "((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3))" ( (binary_expression "(ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)" (cast_expression "(ulong)uVar13" ( (type_descriptor "ulong" type_identifier) ) identifier) < (call_expression "(ulong)(param_9[1] - *param_9 >> 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(param_9[1] - *param_9 >> 3)" ( (binary_expression "param_9[1] - *param_9 >> 3" (binary_expression "param_9[1] - *param_9" (subscript_expression "param_9[1]" identifier [ number_literal ]) - (pointer_expression "*param_9" * identifier)) >> number_literal) )))) )) (compound_statement "{\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    /* try { // try from 0022f1bf to 0022f1fd has its CatchHandler @ 0022f284 */\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }" { (expression_statement "lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);" (assignment_expression "lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8)" identifier = (pointer_expression "*(long *)(*param_9 + (ulong)uVar13 * 8)" * (cast_expression "(long *)(*param_9 + (ulong)uVar13 * 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_9 + (ulong)uVar13 * 8)" ( (binary_expression "*param_9 + (ulong)uVar13 * 8" (pointer_expression "*param_9" * identifier) + (binary_expression "(ulong)uVar13 * 8" (cast_expression "(ulong)uVar13" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) ))))) ;) (if_statement "if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    /* try { // try from 0022f1bf to 0022f1fd has its CatchHandler @ 0022f284 */\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }" if (parenthesized_expression "(lVar9 != 0)" ( (binary_expression "lVar9 != 0" identifier != number_literal) )) (compound_statement "{\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    /* try { // try from 0022f1bf to 0022f1fd has its CatchHandler @ 0022f284 */\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }" { (expression_statement "uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);" (assignment_expression "uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80)" identifier = (call_expression "FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80)" identifier (argument_list "(param_1 + 0x68,lVar9,1,&local_80)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) , identifier , number_literal , (pointer_expression "&local_80" & identifier) )))) ;) (if_statement "if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    /* try { // try from 0022f1bf to 0022f1fd has its CatchHandler @ 0022f284 */\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }" if (parenthesized_expression "(((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88))" ( (binary_expression "((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)" (parenthesized_expression "((uVar5 == 0xfff1) && (local_b9 == '\0'))" ( (binary_expression "(uVar5 == 0xfff1) && (local_b9 == '\0')" (parenthesized_expression "(uVar5 == 0xfff1)" ( (binary_expression "uVar5 == 0xfff1" identifier == number_literal) )) && (parenthesized_expression "(local_b9 == '\0')" ( (binary_expression "local_b9 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(local_80 == local_88)" ( (binary_expression "local_80 == local_88" identifier == identifier) ))) )) (compound_statement "{\n                    /* try { // try from 0022f1bf to 0022f1fd has its CatchHandler @ 0022f284 */\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }" { comment (expression_statement "local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);" (assignment_expression "local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1)" identifier = (call_expression "FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1)" identifier (argument_list "(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1)" ( identifier , identifier , identifier , identifier , number_literal , number_literal , number_literal , identifier , number_literal , number_literal , number_literal )))) ;) }) (else_clause "else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }" else (compound_statement "{\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }" { (expression_statement "local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);" (assignment_expression "local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5)" identifier = (call_expression "FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5)" identifier (argument_list "(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5)" ( identifier , identifier , identifier , identifier , identifier , identifier , (binary_expression "(byte)~(byte)(local_bc >> 8) >> 7 & local_ba" (binary_expression "(byte)~(byte)(local_bc >> 8) >> 7" (cast_expression "(byte)~(byte)(local_bc >> 8)" ( (type_descriptor "byte" type_identifier) ) (unary_expression "~(byte)(local_bc >> 8)" ~ (call_expression "(byte)(local_bc >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(local_bc >> 8)" ( (binary_expression "local_bc >> 8" identifier >> number_literal) ))))) >> number_literal) & identifier) , identifier , identifier , identifier , identifier )))) ;) }))) (goto_statement "goto LAB_0022ee87;" goto statement_identifier ;) })) (expression_statement "pcVar12 = "versym for symbol %zu has no name: %u";" (assignment_expression "pcVar12 = "versym for symbol %zu has no name: %u"" identifier = (string_literal ""versym for symbol %zu has no name: %u"" " string_content ")) ;) })) (expression_statement "uVar6 = gettext(pcVar12);" (assignment_expression "uVar6 = gettext(pcVar12)" identifier = (call_expression "gettext(pcVar12)" identifier (argument_list "(pcVar12)" ( identifier )))) ;) (expression_statement "FUN_0019a740(param_2,uVar6,local_b0,uVar13);" (call_expression "FUN_0019a740(param_2,uVar6,local_b0,uVar13)" identifier (argument_list "(param_2,uVar6,local_b0,uVar13)" ( identifier , identifier , identifier , identifier ))) ;) (goto_statement "goto LAB_0022ec88;" goto statement_identifier ;) })) (expression_statement "local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);" (assignment_expression "local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5)" identifier = (call_expression "FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5)" identifier (argument_list "(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5)" ( identifier , identifier , identifier , identifier , number_literal , number_literal , number_literal , identifier , identifier , identifier , identifier )))) ;) }))) (labeled_statement "LAB_0022ee87:\n            if (local_90 != 0) {\n              bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n              if (((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)\n                 ) {\nLAB_0022eeb4:\n                if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0022f24f to 0022f253 has its CatchHandler @ 0022f284 */\n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }\n              }\n              else if (bVar11 == 0) {\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (param_10 != (long *)0x0) {\n                *(long *)(*param_10 + local_b0 * 8) = local_90;\n              }\n            }" statement_identifier : (if_statement "if (local_90 != 0) {\n              bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n              if (((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)\n                 ) {\nLAB_0022eeb4:\n                if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0022f24f to 0022f253 has its CatchHandler @ 0022f284 */\n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }\n              }\n              else if (bVar11 == 0) {\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (param_10 != (long *)0x0) {\n                *(long *)(*param_10 + local_b0 * 8) = local_90;\n              }\n            }" if (parenthesized_expression "(local_90 != 0)" ( (binary_expression "local_90 != 0" identifier != number_literal) )) (compound_statement "{\n              bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n              if (((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)\n                 ) {\nLAB_0022eeb4:\n                if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0022f24f to 0022f253 has its CatchHandler @ 0022f284 */\n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }\n              }\n              else if (bVar11 == 0) {\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (param_10 != (long *)0x0) {\n                *(long *)(*param_10 + local_b0 * 8) = local_90;\n              }\n            }" { (expression_statement "bVar11 = *(byte *)(local_90 + 0x3a) & 7;" (assignment_expression "bVar11 = *(byte *)(local_90 + 0x3a) & 7" identifier = (binary_expression "*(byte *)(local_90 + 0x3a) & 7" (pointer_expression "*(byte *)(local_90 + 0x3a)" * (cast_expression "(byte *)(local_90 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 0x3a)" ( (binary_expression "local_90 + 0x3a" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if (((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)\n                 ) {\nLAB_0022eeb4:\n                if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0022f24f to 0022f253 has its CatchHandler @ 0022f284 */\n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }\n              }\n              else if (bVar11 == 0) {\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }" if (parenthesized_expression "(((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)\n                 )" ( (binary_expression "((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)" (parenthesized_expression "((uVar5 == 0) || (local_b9 == '\0'))" ( (binary_expression "(uVar5 == 0) || (local_b9 == '\0')" (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) || (parenthesized_expression "(local_b9 == '\0')" ( (binary_expression "local_b9 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) )) || (parenthesized_expression "((**ppuVar2 & 0xf00000000) != 0x100000000)" ( (binary_expression "(**ppuVar2 & 0xf00000000) != 0x100000000" (parenthesized_expression "(**ppuVar2 & 0xf00000000)" ( (binary_expression "**ppuVar2 & 0xf00000000" (pointer_expression "**ppuVar2" * (pointer_expression "*ppuVar2" * identifier)) & number_literal) )) != number_literal) ))) )) (compound_statement "{\nLAB_0022eeb4:\n                if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0022f24f to 0022f253 has its CatchHandler @ 0022f284 */\n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }\n              }" { (labeled_statement "LAB_0022eeb4:\n                if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0022f24f to 0022f253 has its CatchHandler @ 0022f284 */\n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }" statement_identifier : (if_statement "if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0022f24f to 0022f253 has its CatchHandler @ 0022f284 */\n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }" if (parenthesized_expression "(bVar11 == 0)" ( (binary_expression "bVar11 == 0" identifier == number_literal) )) (compound_statement "{\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0022f24f to 0022f253 has its CatchHandler @ 0022f284 */\n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }" { (if_statement "if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0022f24f to 0022f253 has its CatchHandler @ 0022f284 */\n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }" if (parenthesized_expression "((*(byte *)(local_90 + 0x3a) & 7) != 0)" ( (binary_expression "(*(byte *)(local_90 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)(local_90 + 0x3a) & 7)" ( (binary_expression "*(byte *)(local_90 + 0x3a) & 7" (pointer_expression "*(byte *)(local_90 + 0x3a)" * (cast_expression "(byte *)(local_90 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 0x3a)" ( (binary_expression "local_90 + 0x3a" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0022f24f to 0022f253 has its CatchHandler @ 0022f284 */\n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }" { comment comment (expression_statement "FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");" (call_expression "FUN_0016cdf0("../../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 ") ))) ;) })) (labeled_statement "LAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }" statement_identifier : (if_statement "if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }" if (parenthesized_expression "((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000))" ( (binary_expression "(param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)" (parenthesized_expression "(param_2 == *(long **)(local_90 + 0x10))" ( (binary_expression "param_2 == *(long **)(local_90 + 0x10)" identifier == (pointer_expression "*(long **)(local_90 + 0x10)" * (cast_expression "(long **)(local_90 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_90 + 0x10)" ( (binary_expression "local_90 + 0x10" identifier + number_literal) ))))) )) && (parenthesized_expression "((*local_a0 & 0x30000000000) == 0x30000000000)" ( (binary_expression "(*local_a0 & 0x30000000000) == 0x30000000000" (parenthesized_expression "(*local_a0 & 0x30000000000)" ( (binary_expression "*local_a0 & 0x30000000000" (pointer_expression "*local_a0" * identifier) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }" { (expression_statement "*(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;" (assignment_expression "*(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8" (pointer_expression "*(byte *)(local_90 + 0x3c)" * (cast_expression "(byte *)(local_90 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 0x3c)" ( (binary_expression "local_90 + 0x3c" identifier + number_literal) )))) = (binary_expression "*(byte *)(local_90 + 0x3c) | 8" (pointer_expression "*(byte *)(local_90 + 0x3c)" * (cast_expression "(byte *)(local_90 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 0x3c)" ( (binary_expression "local_90 + 0x3c" identifier + number_literal) )))) | number_literal)) ;) }))) }))) }) (else_clause "else if (bVar11 == 0) {\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }" else (if_statement "if (bVar11 == 0) {\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }" if (parenthesized_expression "(bVar11 == 0)" ( (binary_expression "bVar11 == 0" identifier == number_literal) )) (compound_statement "{\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }" { (if_statement "if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }" if (parenthesized_expression "(param_2 == *(long **)(local_90 + 0x10))" ( (binary_expression "param_2 == *(long **)(local_90 + 0x10)" identifier == (pointer_expression "*(long **)(local_90 + 0x10)" * (cast_expression "(long **)(local_90 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_90 + 0x10)" ( (binary_expression "local_90 + 0x10" identifier + number_literal) ))))) )) (compound_statement "{\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }" { (if_statement "if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }" if (parenthesized_expression "(local_70 == local_68)" ( (binary_expression "local_70 == local_68" identifier == identifier) )) (compound_statement "{\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }" { (expression_statement "FUN_00223290(&local_78,local_70,&local_90);" (call_expression "FUN_00223290(&local_78,local_70,&local_90)" identifier (argument_list "(&local_78,local_70,&local_90)" ( (pointer_expression "&local_78" & identifier) , identifier , (pointer_expression "&local_90" & identifier) ))) ;) (expression_statement "bVar11 = *(byte *)(local_90 + 0x3a) & 7;" (assignment_expression "bVar11 = *(byte *)(local_90 + 0x3a) & 7" identifier = (binary_expression "*(byte *)(local_90 + 0x3a) & 7" (pointer_expression "*(byte *)(local_90 + 0x3a)" * (cast_expression "(byte *)(local_90 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 0x3a)" ( (binary_expression "local_90 + 0x3a" identifier + number_literal) )))) & number_literal)) ;) }) (else_clause "else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }" else (compound_statement "{\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }" { (expression_statement "*local_70 = local_90;" (assignment_expression "*local_70 = local_90" (pointer_expression "*local_70" * identifier) = identifier) ;) (expression_statement "local_70 = local_70 + 1;" (assignment_expression "local_70 = local_70 + 1" identifier = (binary_expression "local_70 + 1" identifier + number_literal)) ;) (expression_statement "bVar11 = *(byte *)(local_90 + 0x3a) & 7;" (assignment_expression "bVar11 = *(byte *)(local_90 + 0x3a) & 7" identifier = (binary_expression "*(byte *)(local_90 + 0x3a) & 7" (pointer_expression "*(byte *)(local_90 + 0x3a)" * (cast_expression "(byte *)(local_90 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 0x3a)" ( (binary_expression "local_90 + 0x3a" identifier + number_literal) )))) & number_literal)) ;) }))) (goto_statement "goto LAB_0022eeb4;" goto statement_identifier ;) })) (goto_statement "goto LAB_0022eec2;" goto statement_identifier ;) })))) (if_statement "if (param_10 != (long *)0x0) {\n                *(long *)(*param_10 + local_b0 * 8) = local_90;\n              }" if (parenthesized_expression "(param_10 != (long *)0x0)" ( (binary_expression "param_10 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                *(long *)(*param_10 + local_b0 * 8) = local_90;\n              }" { (expression_statement "*(long *)(*param_10 + local_b0 * 8) = local_90;" (assignment_expression "*(long *)(*param_10 + local_b0 * 8) = local_90" (pointer_expression "*(long *)(*param_10 + local_b0 * 8)" * (cast_expression "(long *)(*param_10 + local_b0 * 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_10 + local_b0 * 8)" ( (binary_expression "*param_10 + local_b0 * 8" (pointer_expression "*param_10" * identifier) + (binary_expression "local_b0 * 8" identifier * number_literal)) )))) = identifier) ;) })) }))) }) (else_clause "else {\n            uVar6 = gettext("bad symbol name offset %u at %zu");\n            FUN_0019a740(param_2,uVar6,uVar7,local_b0);\n          }" else (compound_statement "{\n            uVar6 = gettext("bad symbol name offset %u at %zu");\n            FUN_0019a740(param_2,uVar6,uVar7,local_b0);\n          }" { (expression_statement "uVar6 = gettext("bad symbol name offset %u at %zu");" (assignment_expression "uVar6 = gettext("bad symbol name offset %u at %zu")" identifier = (call_expression "gettext("bad symbol name offset %u at %zu")" identifier (argument_list "("bad symbol name offset %u at %zu")" ( (string_literal ""bad symbol name offset %u at %zu"" " string_content ") )))) ;) (expression_statement "FUN_0019a740(param_2,uVar6,uVar7,local_b0);" (call_expression "FUN_0019a740(param_2,uVar6,uVar7,local_b0)" identifier (argument_list "(param_2,uVar6,uVar7,local_b0)" ( identifier , identifier , identifier , identifier ))) ;) }))) })) })) (labeled_statement "LAB_0022ec88:\n      local_b0 = local_b0 + 1;" statement_identifier : (expression_statement "local_b0 = local_b0 + 1;" (assignment_expression "local_b0 = local_b0 + 1" identifier = (binary_expression "local_b0 + 1" identifier + number_literal)) ;)) (expression_statement "param_3 = param_3 + 3;" (assignment_expression "param_3 = param_3 + 3" identifier = (binary_expression "param_3 + 3" identifier + number_literal)) ;) }) while (parenthesized_expression "(param_4 != local_b0)" ( (binary_expression "param_4 != local_b0" identifier != identifier) )) ;) })) (expression_statement "FUN_0022e900(param_1,&local_78);" (call_expression "FUN_0022e900(param_1,&local_78)" identifier (argument_list "(param_1,&local_78)" ( identifier , (pointer_expression "&local_78" & identifier) ))) ;) (if_statement "if (local_78 != 0) {\n    FUN_00276d20();\n  }" if (parenthesized_expression "(local_78 != 0)" ( (binary_expression "local_78 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_00276d20();\n  }" { (expression_statement "FUN_00276d20();" (call_expression "FUN_00276d20()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Restarted to delay deadcode elimination for space: stack */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* DWARF original name: add_from_dynobj<64, false>\n   DWARF original prototype: void add_from_dynobj<64,_false>(Symbol_table * this,\n   Sized_dynobj<64,_false> * dynobj, uchar * syms, size_t count, char * sym_names, size_t\n   sym_name_size, uchar * versym, size_t versym_size,\n   vector<char_const*,_std::allocator<char_const*>_> * version_map, Symbols * sympointers, size_t *\n   defined) */\n\nvoid __thiscall\ngold::Symbol_table::add_from_dynobj<64,_false>\n          (Symbol_table *this,Sized_dynobj<64,_false> *dynobj,uchar *syms,size_t count,\n          char *sym_names,size_t sym_name_size,uchar *versym,size_t versym_size,\n          vector<char_const*,_std::allocator<char_const*>_> *version_map,Symbols *sympointers,\n          size_t *defined)\n\n{\n  undefined1 *puVar1;\n  Input_file *this_00;\n  pointer ppcVar2;\n  undefined8 uVar3;\n  Sym_data<64> *pSVar4;\n  Sym<64,_false> *sym_00;\n  bool bVar5;\n  int iVar6;\n  uint st_shndx;\n  char *pcVar7;\n  ulong uVar8;\n  Xindex *this_01;\n  byte bVar9;\n  byte bVar10;\n  char *pcVar11;\n  ushort uVar12;\n  uint local_c0;\n  ushort local_bc;\n  byte local_ba;\n  bool local_b9;\n  size_t local_b0;\n  Sym<64,_false> sym;\n  Sym<64,_false> sym2;\n  Sized_symbol<64> *res;\n  Key name_key_1;\n  Key name_key;\n  vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_> object_symbols;\n  uchar symbuf [24];\n  undefined4 extraout_var;\n  \n  *defined = 0;\n  if (parameters->target_ == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n  }\n  if (**(int **)(parameters->target_ + 8) != 0x40) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/symtab.cc",0x5bd,"add_from_dynobj");\n  }\n  this_00 = (dynobj->super_Dynobj).super_Object.input_file_;\n  if (this_00 == (Input_file *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/object.h",0x1ea,"input_file");\n  }\n  bVar5 = Input_file::just_symbols(this_00);\n  if (bVar5) {\n    pcVar7 = (char *)gettext("--just-symbols does not make sense with a shared object");\n    gold_error(pcVar7);\n    return;\n  }\n  bVar5 = Parameters::incremental_update(parameters);\n  if ((versym == (uchar *)0x0) || (bVar5)) {\n    versym = (uchar *)0x0;\n  }\n  else if (versym_size >> 1 < count) {\n    pcVar7 = (char *)gettext("too few symbol versions");\n    Object::error((Object *)dynobj,pcVar7);\n    return;\n  }\n  object_symbols.\n  super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>._M_impl.\n  _M_start = (pointer)0x0;\n  object_symbols.\n  super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>._M_impl.\n  _M_finish = (pointer)0x0;\n  object_symbols.\n  super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>._M_impl.\n  _M_end_of_storage = (pointer)0x0;\n  local_b0 = 0;\n  if (count != 0) {\n    do {\n      if (sympointers != (Symbols *)0x0) {\n        (sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n        _M_start[local_b0] = (Symbol *)0x0;\n      }\n      iVar6 = (int)(uint)((Sym_data<64> *)syms)->st_info >> 4;\n      sym.p_ = (Sym_data<64> *)syms;\n      if (iVar6 != 0) {\n        bVar10 = ((Sym_data<64> *)syms)->st_other & 3;\n        if (1 < (byte)(bVar10 - 1)) {\n          bVar9 = ((Sym_data<64> *)syms)->st_info & 0xf;\n          if (bVar10 == 3) {\n            uVar3._0_4_ = ((Sym_data<64> *)syms)->st_name;\n            uVar3._4_1_ = ((Sym_data<64> *)syms)->st_info;\n            uVar3._5_1_ = ((Sym_data<64> *)syms)->st_other;\n            uVar3._6_2_ = ((Sym_data<64> *)syms)->st_shndx;\n            symbuf._8_8_ = ((Sym_data<64> *)syms)->st_value;\n            symbuf._16_8_ = ((Sym_data<64> *)syms)->st_size;\n            symbuf._6_2_ = (undefined2)((ulong)uVar3 >> 0x30);\n            symbuf._0_5_ = (undefined5)uVar3;\n            symbuf._0_8_ = CONCAT26(symbuf._6_2_,\n                                    CONCAT15(((Sym_data<64> *)syms)->st_other,symbuf._0_5_)) &\n                           0xfffffcffffffffff;\n            if (bVar9 == 10) goto LAB_0022ef70;\nLAB_0022ef0b:\n            uVar8 = symbuf._0_8_ & 0xffffffff;\n            pSVar4 = (Sym_data<64> *)symbuf;\n            sym_00 = &sym2;\n          }\n          else {\n            if (bVar9 == 10) {\n              symbuf._16_8_ = ((Sym_data<64> *)syms)->st_size;\n              symbuf._0_8_ = *(undefined8 *)syms;\n              symbuf._8_8_ = ((Sym_data<64> *)syms)->st_value;\nLAB_0022ef70:\n              symbuf[4] = (char)(iVar6 << 4) + '\x02';\n              goto LAB_0022ef0b;\n            }\n            sym_00 = &sym;\n            uVar8 = (ulong)((Sym_data<64> *)syms)->st_name;\n            pSVar4 = (Sym_data<64> *)syms;\n          }\n          sym2.p_ = (Sym_data<64> *)symbuf;\n          if (uVar8 < sym_name_size) {\n            uVar12 = pSVar4->st_shndx;\n            st_shndx = (uint)uVar12;\n            if (uVar12 < 0xff00) {\n              if (uVar12 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = true;\nLAB_0022ec44:\n              *defined = *defined + 1;\n              if (versym != (uchar *)0x0) {\n                local_bc = *(ushort *)(versym + local_b0 * 2);\n                uVar12 = local_bc & 0x7fff;\n                local_c0 = (uint)uVar12;\n                if (local_c0 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              pcVar7 = Stringpool_template<char>::add\n                                 (&this->namepool_,sym_names + uVar8,true,&name_key);\n              res = add_from_object<64,_false>\n                              (this,(Object *)dynobj,pcVar7,name_key,(char *)0x0,0,false,sym_00,\n                               st_shndx,local_b9,st_shndx);\n            }\n            else {\n              local_b9 = false;\n              if (uVar12 != 0xffff) goto LAB_0022ec44;\n              this_01 = (dynobj->super_Dynobj).super_Object.xindex_;\n              if (this_01 == (Xindex *)0x0) {\n                iVar6 = (*(dynobj->super_Dynobj).super_Object._vptr_Object[0x1b])(dynobj);\n                this_01 = (Xindex *)CONCAT44(extraout_var,iVar6);\n                (dynobj->super_Dynobj).super_Object.xindex_ = this_01;\n              }\n              st_shndx = Xindex::sym_xindex_to_shndx(this_01,(Object *)dynobj,(uint)local_b0);\n              if (st_shndx != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (versym == (uchar *)0x0) {\n                local_b9 = true;\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = true;\n              local_bc = *(ushort *)(versym + local_b0 * 2);\n              uVar12 = local_bc & 0x7fff;\n              local_c0 = (uint)uVar12;\nLAB_0022ed91:\n                    /* try { // try from 0022edb6 to 0022f0c1 has its CatchHandler @ 0022f284 */\n              pcVar7 = Stringpool_template<char>::add\n                                 (&this->namepool_,sym_names + uVar8,true,&name_key_1);\n              if (1 < uVar12) {\n                pcVar11 = "versym for symbol %zu out of range: %u";\n                ppcVar2 = (version_map->\n                          super__Vector_base<char_const*,_std::allocator<char_const*>_>)._M_impl.\n                          _M_start;\n                if ((ulong)uVar12 <\n                    (ulong)((long)(version_map->\n                                  super__Vector_base<char_const*,_std::allocator<char_const*>_>).\n                                  _M_impl._M_finish - (long)ppcVar2 >> 3)) {\n                  pcVar11 = ppcVar2[uVar12];\n                  if (pcVar11 != (char *)0x0) {\n                    pcVar11 = Stringpool_template<char>::add\n                                        (&this->namepool_,pcVar11,true,&name_key);\n                    if (((st_shndx == 0xfff1) && (local_b9 == false)) && (name_key == name_key_1)) {\n                    /* try { // try from 0022f1bf to 0022f1fd has its CatchHandler @ 0022f284 */\n                      res = add_from_object<64,_false>\n                                      (this,(Object *)dynobj,pcVar7,name_key,(char *)0x0,0,false,\n                                       sym_00,0xfff1,false,0xfff1);\n                    }\n                    else {\n                      res = add_from_object<64,_false>\n                                      (this,(Object *)dynobj,pcVar7,name_key_1,pcVar11,name_key,\n                                       (bool)((byte)~(byte)(local_bc >> 8) >> 7 & local_ba),sym_00,\n                                       st_shndx,local_b9,st_shndx);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar11 = "versym for symbol %zu has no name: %u";\n                }\n                pcVar7 = (char *)gettext(pcVar11);\n                Object::error((Object *)dynobj,pcVar7,local_b0,(ulong)local_c0);\n                goto LAB_0022ec88;\n              }\n              res = add_from_object<64,_false>\n                              (this,(Object *)dynobj,pcVar7,name_key_1,(char *)0x0,0,false,sym_00,\n                               st_shndx,local_b9,st_shndx);\n            }\nLAB_0022ee87:\n            if (res != (Sized_symbol<64> *)0x0) {\n              bVar10 = (res->super_Symbol).field_0x3a & 7;\n              if (((st_shndx == 0) || (local_b9 == false)) || ((sym_00->p_->st_info & 0xf) != 1)) {\nLAB_0022eeb4:\n                if (bVar10 == 0) {\n                  if (((res->super_Symbol).field_0x3a & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0022f24f to 0022f253 has its CatchHandler @ 0022f284 */\n                    do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((dynobj == (Sized_dynobj<64,_false> *)(res->super_Symbol).u1_.object) &&\n                     (((sym.p_)->st_other & 3) == 3)) {\n                    puVar1 = &(res->super_Symbol).field_0x3c;\n                    *puVar1 = *puVar1 | 8;\n                  }\n                }\n              }\n              else if (bVar10 == 0) {\n                if (dynobj == (Sized_dynobj<64,_false> *)(res->super_Symbol).u1_.object) {\n                  if (object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                      ._M_impl._M_finish ==\n                      object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                      ._M_impl._M_end_of_storage) {\n                    std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>::\n                    _M_realloc_insert<gold::Sized_symbol<64>*_const&>\n                              (&object_symbols,\n                               (iterator)\n                               object_symbols.\n                               super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                               ._M_impl._M_finish,&res);\n                    bVar10 = (res->super_Symbol).field_0x3a & 7;\n                  }\n                  else {\n                    *object_symbols.\n                     super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                     ._M_impl._M_finish = res;\n                    object_symbols.\n                    super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                    ._M_impl._M_finish =\n                         object_symbols.\n                         super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                         ._M_impl._M_finish + 1;\n                    bVar10 = (res->super_Symbol).field_0x3a & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (sympointers != (Symbols *)0x0) {\n                (sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                _M_impl._M_start[local_b0] = &res->super_Symbol;\n              }\n            }\n          }\n          else {\n            pcVar7 = (char *)gettext("bad symbol name offset %u at %zu");\n            Object::error((Object *)dynobj,pcVar7,uVar8,local_b0);\n          }\n        }\n      }\nLAB_0022ec88:\n      local_b0 = local_b0 + 1;\n      syms = (uchar *)((long)syms + 0x18);\n    } while (count != local_b0);\n  }\n  record_weak_aliases<64>(this,&object_symbols);\n  if (object_symbols.\n      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>._M_impl.\n      _M_start != (pointer)0x0) {\n    operator_delete(object_symbols.\n                    super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                    ._M_impl._M_start);\n  }\n  return;\n}\n\n" comment comment comment (declaration "void __thiscall\ngold::Symbol_table::add_from_dynobj<64,_false>\n          (Symbol_table *this,Sized_dynobj<64,_false> *dynobj,uchar *syms,size_t count,\n          char *sym_names,size_t sym_name_size,uchar *versym,size_t versym_size,\n          vector<char_const*,_std::allocator<char_const*>_> *version_map,Symbols *sympointers,\n          size_t *defined)\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_dynobj<64,_false> *dynobj,uchar *syms,size_t count,\n          char *sym_names,size_t sym_name_size,uchar *versym,size_t versym_size,\n          vector<char_const*,_std::allocator<char_const*>_> *version_map,Symbols *sympointers,\n          size_t *defined)\n\n{\n  undefined1" (function_declarator "_false>\n          (Symbol_table *this,Sized_dynobj<64,_false> *dynobj,uchar *syms,size_t count,\n          char *sym_names,size_t sym_name_size,uchar *versym,size_t versym_size,\n          vector<char_const*,_std::allocator<char_const*>_> *version_map,Symbols *sympointers,\n          size_t *defined)" identifier (ERROR ">" >) (parameter_list "(Symbol_table *this,Sized_dynobj<64,_false> *dynobj,uchar *syms,size_t count,\n          char *sym_names,size_t sym_name_size,uchar *versym,size_t versym_size,\n          vector<char_const*,_std::allocator<char_const*>_> *version_map,Symbols *sympointers,\n          size_t *defined)" ( (parameter_declaration "Symbol_table *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Sized_dynobj" type_identifier) (ERROR "<64" < number_literal) , (parameter_declaration "_false> *dynobj" type_identifier (ERROR ">" >) (pointer_declarator "*dynobj" * identifier)) , (parameter_declaration "uchar *syms" type_identifier (pointer_declarator "*syms" * identifier)) , (parameter_declaration "size_t count" primitive_type identifier) , (parameter_declaration "char *sym_names" primitive_type (pointer_declarator "*sym_names" * identifier)) , (parameter_declaration "size_t sym_name_size" primitive_type identifier) , (parameter_declaration "uchar *versym" type_identifier (pointer_declarator "*versym" * identifier)) , (parameter_declaration "size_t versym_size" primitive_type identifier) , (parameter_declaration "vector<char_const*" type_identifier (ERROR "<char_const" < identifier) (abstract_pointer_declarator "*" *)) , (parameter_declaration "_std::allocator<char_const*>_> *version_map" type_identifier (ERROR "::allocator<char_const*>_>" : : identifier < identifier * > identifier >) (pointer_declarator "*version_map" * identifier)) , (parameter_declaration "Symbols *sympointers" type_identifier (pointer_declarator "*sympointers" * identifier)) , (parameter_declaration "size_t *defined" primitive_type (pointer_declarator "*defined" * identifier)) ))) { identifier) (pointer_declarator "*puVar1" * identifier) ;) (declaration "Input_file *this_00;" type_identifier (pointer_declarator "*this_00" * identifier) ;) (declaration "pointer ppcVar2;" type_identifier identifier ;) (declaration "undefined8 uVar3;" type_identifier 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)) --) ;) (ERROR "Sym<64,_false> *sym_00" (binary_expression "Sym<64" identifier < number_literal) , (binary_expression "_false> *sym_00" identifier > (pointer_expression "*sym_00" * identifier))) (expression_statement ";" ;) (declaration "bool bVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "uint st_shndx;" type_identifier identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "ulong uVar8;" type_identifier identifier ;) (declaration "Xindex *this_01;" type_identifier (pointer_declarator "*this_01" * identifier) ;) (declaration "byte bVar9;" type_identifier identifier ;) (declaration "byte bVar10;" type_identifier identifier ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "ushort uVar12;" type_identifier identifier ;) (declaration "uint local_c0;" type_identifier identifier ;) (declaration "ushort local_bc;" type_identifier identifier ;) (declaration "byte local_ba;" type_identifier identifier ;) (declaration "bool local_b9;" primitive_type identifier ;) (declaration "size_t local_b0;" primitive_type identifier ;) (ERROR "Sym<64,_false> sym" (binary_expression "Sym<64" identifier < number_literal) , (binary_expression "_false> sym" identifier > identifier)) (expression_statement ";" ;) (ERROR "Sym<64,_false> sym2" (binary_expression "Sym<64" identifier < number_literal) , (binary_expression "_false> sym2" identifier > identifier)) (expression_statement ";" ;) (expression_statement "Sized_symbol<64> *res;" (update_expression "Sized_symbol<64> *res" (binary_expression "Sized_symbol<64> *res" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "*res" * identifier)) --) ;) (declaration "Key name_key_1;" type_identifier identifier ;) (declaration "Key name_key;" type_identifier identifier ;) (ERROR "vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_> object_symbols" (binary_expression "vector<gold" identifier < identifier) : : (binary_expression "Sized_symbol<64>*,_std" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "*,_std" * (ERROR "," ,) identifier)) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Sized_symbol<64>*>_> object_symbols" (binary_expression "Sized_symbol<64>*>_" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "*>_" * (ERROR ">" >) identifier)) > identifier)) (expression_statement ";" ;) (declaration "uchar symbuf [24];" type_identifier (array_declarator "symbuf [24]" identifier [ number_literal ]) ;) (declaration "undefined4 extraout_var;" type_identifier identifier ;) (expression_statement "*defined = 0;" (assignment_expression "*defined = 0" (pointer_expression "*defined" * identifier) = number_literal) ;) (if_statement "if (parameters->target_ == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n  }" if (parenthesized_expression "(parameters->target_ == (Target *)0x0)" ( (binary_expression "parameters->target_ == (Target *)0x0" (field_expression "parameters->target_" identifier -> field_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 (**(int **)(parameters->target_ + 8) != 0x40) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/symtab.cc",0x5bd,"add_from_dynobj");\n  }" if (parenthesized_expression "(**(int **)(parameters->target_ + 8) != 0x40)" ( (binary_expression "**(int **)(parameters->target_ + 8) != 0x40" (pointer_expression "**(int **)(parameters->target_ + 8)" * (pointer_expression "*(int **)(parameters->target_ + 8)" * (cast_expression "(int **)(parameters->target_ + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(parameters->target_ + 8)" ( (binary_expression "parameters->target_ + 8" (field_expression "parameters->target_" identifier -> field_identifier) + number_literal) ))))) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/symtab.cc",0x5bd,"add_from_dynobj");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/symtab.cc",0x5bd,"add_from_dynobj");" (call_expression "do_gold_unreachable("../../gold/symtab.cc",0x5bd,"add_from_dynobj")" identifier (argument_list "("../../gold/symtab.cc",0x5bd,"add_from_dynobj")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""add_from_dynobj"" " string_content ") ))) ;) })) (expression_statement "this_00 = (dynobj->super_Dynobj).super_Object.input_file_;" (assignment_expression "this_00 = (dynobj->super_Dynobj).super_Object.input_file_" identifier = (field_expression "(dynobj->super_Dynobj).super_Object.input_file_" (field_expression "(dynobj->super_Dynobj).super_Object" (parenthesized_expression "(dynobj->super_Dynobj)" ( (field_expression "dynobj->super_Dynobj" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if (this_00 == (Input_file *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/object.h",0x1ea,"input_file");\n  }" if (parenthesized_expression "(this_00 == (Input_file *)0x0)" ( (binary_expression "this_00 == (Input_file *)0x0" identifier == (cast_expression "(Input_file *)0x0" ( (type_descriptor "Input_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/object.h",0x1ea,"input_file");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/object.h",0x1ea,"input_file");" (call_expression "do_gold_unreachable("../../gold/object.h",0x1ea,"input_file")" identifier (argument_list "("../../gold/object.h",0x1ea,"input_file")" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""input_file"" " string_content ") ))) ;) })) (ERROR "bVar5 = Input_file::" (assignment_expression "bVar5 = Input_file" identifier = identifier) : :) (expression_statement "just_symbols(this_00);" (call_expression "just_symbols(this_00)" identifier (argument_list "(this_00)" ( identifier ))) ;) (if_statement "if (bVar5) {\n    pcVar7 = (char *)gettext("--just-symbols does not make sense with a shared object");\n    gold_error(pcVar7);\n    return;\n  }" if (parenthesized_expression "(bVar5)" ( identifier )) (compound_statement "{\n    pcVar7 = (char *)gettext("--just-symbols does not make sense with a shared object");\n    gold_error(pcVar7);\n    return;\n  }" { (expression_statement "pcVar7 = (char *)gettext("--just-symbols does not make sense with a shared object");" (assignment_expression "pcVar7 = (char *)gettext("--just-symbols does not make sense with a shared object")" identifier = (cast_expression "(char *)gettext("--just-symbols does not make sense with a shared object")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("--just-symbols does not make sense with a shared object")" identifier (argument_list "("--just-symbols does not make sense with a shared object")" ( (string_literal ""--just-symbols does not make sense with a shared object"" " string_content ") ))))) ;) (expression_statement "gold_error(pcVar7);" (call_expression "gold_error(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier ))) ;) (return_statement "return;" return ;) })) (ERROR "bVar5 = Parameters::" (assignment_expression "bVar5 = Parameters" identifier = identifier) : :) (expression_statement "incremental_update(parameters);" (call_expression "incremental_update(parameters)" identifier (argument_list "(parameters)" ( identifier ))) ;) (if_statement "if ((versym == (uchar *)0x0) || (bVar5)) {\n    versym = (uchar *)0x0;\n  }\n  else if (versym_size >> 1 < count) {\n    pcVar7 = (char *)gettext("too few symbol versions");\n    Object::error((Object *)dynobj,pcVar7);\n    return;\n  }" if (parenthesized_expression "((versym == (uchar *)0x0) || (bVar5))" ( (binary_expression "(versym == (uchar *)0x0) || (bVar5)" (parenthesized_expression "(versym == (uchar *)0x0)" ( (binary_expression "versym == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(bVar5)" ( identifier ))) )) (compound_statement "{\n    versym = (uchar *)0x0;\n  }" { (expression_statement "versym = (uchar *)0x0;" (assignment_expression "versym = (uchar *)0x0" identifier = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else if (versym_size >> 1 < count) {\n    pcVar7 = (char *)gettext("too few symbol versions");\n    Object::error((Object *)dynobj,pcVar7);\n    return;\n  }" else (if_statement "if (versym_size >> 1 < count) {\n    pcVar7 = (char *)gettext("too few symbol versions");\n    Object::error((Object *)dynobj,pcVar7);\n    return;\n  }" if (parenthesized_expression "(versym_size >> 1 < count)" ( (binary_expression "versym_size >> 1 < count" (binary_expression "versym_size >> 1" identifier >> number_literal) < identifier) )) (compound_statement "{\n    pcVar7 = (char *)gettext("too few symbol versions");\n    Object::error((Object *)dynobj,pcVar7);\n    return;\n  }" { (expression_statement "pcVar7 = (char *)gettext("too few symbol versions");" (assignment_expression "pcVar7 = (char *)gettext("too few symbol versions")" identifier = (cast_expression "(char *)gettext("too few symbol versions")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("too few symbol versions")" identifier (argument_list "("too few symbol versions")" ( (string_literal ""too few symbol versions"" " string_content ") ))))) ;) (labeled_statement "Object::error((Object *)dynobj,pcVar7);" statement_identifier : (ERROR ":" :) (expression_statement "error((Object *)dynobj,pcVar7);" (call_expression "error((Object *)dynobj,pcVar7)" identifier (argument_list "((Object *)dynobj,pcVar7)" ( (cast_expression "(Object *)dynobj" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;)) (return_statement "return;" return ;) })))) (expression_statement "object_symbols.\n  super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>._M_impl.\n  _M_start = (pointer)0x0;" (assignment_expression "object_symbols.\n  super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>._M_impl.\n  _M_start = (pointer)0x0" (field_expression "object_symbols.\n  super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>._M_impl.\n  _M_start" (field_expression "object_symbols.\n  super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>._M_impl" (binary_expression "object_symbols.\n  super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_" (binary_expression "object_symbols.\n  super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64" (binary_expression "object_symbols.\n  super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold" (binary_expression "object_symbols.\n  super__Vector_base<gold::Sized_symbol<64>*,_std" (binary_expression "object_symbols.\n  super__Vector_base<gold::Sized_symbol<64" (binary_expression "object_symbols.\n  super__Vector_base<gold" (field_expression "object_symbols.\n  super__Vector_base" identifier . field_identifier) < identifier) (ERROR "::Sized_symbol" : : identifier) < number_literal) > (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Sized_symbol" : : identifier) < number_literal) > (pointer_expression "*>_" * (ERROR ">" >) identifier)) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "object_symbols.\n  super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>._M_impl.\n  _M_finish = (pointer)0x0;" (assignment_expression "object_symbols.\n  super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>._M_impl.\n  _M_finish = (pointer)0x0" (field_expression "object_symbols.\n  super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>._M_impl.\n  _M_finish" (field_expression "object_symbols.\n  super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>._M_impl" (binary_expression "object_symbols.\n  super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_" (binary_expression "object_symbols.\n  super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64" (binary_expression "object_symbols.\n  super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold" (binary_expression "object_symbols.\n  super__Vector_base<gold::Sized_symbol<64>*,_std" (binary_expression "object_symbols.\n  super__Vector_base<gold::Sized_symbol<64" (binary_expression "object_symbols.\n  super__Vector_base<gold" (field_expression "object_symbols.\n  super__Vector_base" identifier . field_identifier) < identifier) (ERROR "::Sized_symbol" : : identifier) < number_literal) > (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Sized_symbol" : : identifier) < number_literal) > (pointer_expression "*>_" * (ERROR ">" >) identifier)) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "object_symbols.\n  super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>._M_impl.\n  _M_end_of_storage = (pointer)0x0;" (assignment_expression "object_symbols.\n  super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>._M_impl.\n  _M_end_of_storage = (pointer)0x0" (field_expression "object_symbols.\n  super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>._M_impl.\n  _M_end_of_storage" (field_expression "object_symbols.\n  super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>._M_impl" (binary_expression "object_symbols.\n  super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_" (binary_expression "object_symbols.\n  super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64" (binary_expression "object_symbols.\n  super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold" (binary_expression "object_symbols.\n  super__Vector_base<gold::Sized_symbol<64>*,_std" (binary_expression "object_symbols.\n  super__Vector_base<gold::Sized_symbol<64" (binary_expression "object_symbols.\n  super__Vector_base<gold" (field_expression "object_symbols.\n  super__Vector_base" identifier . field_identifier) < identifier) (ERROR "::Sized_symbol" : : identifier) < number_literal) > (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Sized_symbol" : : identifier) < number_literal) > (pointer_expression "*>_" * (ERROR ">" >) identifier)) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" identifier = number_literal) ;) (if_statement "if (count != 0) {\n    do {\n      if (sympointers != (Symbols *)0x0) {\n        (sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n        _M_start[local_b0] = (Symbol *)0x0;\n      }\n      iVar6 = (int)(uint)((Sym_data<64> *)syms)->st_info >> 4;\n      sym.p_ = (Sym_data<64> *)syms;\n      if (iVar6 != 0) {\n        bVar10 = ((Sym_data<64> *)syms)->st_other & 3;\n        if (1 < (byte)(bVar10 - 1)) {\n          bVar9 = ((Sym_data<64> *)syms)->st_info & 0xf;\n          if (bVar10 == 3) {\n            uVar3._0_4_ = ((Sym_data<64> *)syms)->st_name;\n            uVar3._4_1_ = ((Sym_data<64> *)syms)->st_info;\n            uVar3._5_1_ = ((Sym_data<64> *)syms)->st_other;\n            uVar3._6_2_ = ((Sym_data<64> *)syms)->st_shndx;\n            symbuf._8_8_ = ((Sym_data<64> *)syms)->st_value;\n            symbuf._16_8_ = ((Sym_data<64> *)syms)->st_size;\n            symbuf._6_2_ = (undefined2)((ulong)uVar3 >> 0x30);\n            symbuf._0_5_ = (undefined5)uVar3;\n            symbuf._0_8_ = CONCAT26(symbuf._6_2_,\n                                    CONCAT15(((Sym_data<64> *)syms)->st_other,symbuf._0_5_)) &\n                           0xfffffcffffffffff;\n            if (bVar9 == 10) goto LAB_0022ef70;\nLAB_0022ef0b:\n            uVar8 = symbuf._0_8_ & 0xffffffff;\n            pSVar4 = (Sym_data<64> *)symbuf;\n            sym_00 = &sym2;\n          }\n          else {\n            if (bVar9 == 10) {\n              symbuf._16_8_ = ((Sym_data<64> *)syms)->st_size;\n              symbuf._0_8_ = *(undefined8 *)syms;\n              symbuf._8_8_ = ((Sym_data<64> *)syms)->st_value;\nLAB_0022ef70:\n              symbuf[4] = (char)(iVar6 << 4) + '\x02';\n              goto LAB_0022ef0b;\n            }\n            sym_00 = &sym;\n            uVar8 = (ulong)((Sym_data<64> *)syms)->st_name;\n            pSVar4 = (Sym_data<64> *)syms;\n          }\n          sym2.p_ = (Sym_data<64> *)symbuf;\n          if (uVar8 < sym_name_size) {\n            uVar12 = pSVar4->st_shndx;\n            st_shndx = (uint)uVar12;\n            if (uVar12 < 0xff00) {\n              if (uVar12 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = true;\nLAB_0022ec44:\n              *defined = *defined + 1;\n              if (versym != (uchar *)0x0) {\n                local_bc = *(ushort *)(versym + local_b0 * 2);\n                uVar12 = local_bc & 0x7fff;\n                local_c0 = (uint)uVar12;\n                if (local_c0 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              pcVar7 = Stringpool_template<char>::add\n                                 (&this->namepool_,sym_names + uVar8,true,&name_key);\n              res = add_from_object<64,_false>\n                              (this,(Object *)dynobj,pcVar7,name_key,(char *)0x0,0,false,sym_00,\n                               st_shndx,local_b9,st_shndx);\n            }\n            else {\n              local_b9 = false;\n              if (uVar12 != 0xffff) goto LAB_0022ec44;\n              this_01 = (dynobj->super_Dynobj).super_Object.xindex_;\n              if (this_01 == (Xindex *)0x0) {\n                iVar6 = (*(dynobj->super_Dynobj).super_Object._vptr_Object[0x1b])(dynobj);\n                this_01 = (Xindex *)CONCAT44(extraout_var,iVar6);\n                (dynobj->super_Dynobj).super_Object.xindex_ = this_01;\n              }\n              st_shndx = Xindex::sym_xindex_to_shndx(this_01,(Object *)dynobj,(uint)local_b0);\n              if (st_shndx != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (versym == (uchar *)0x0) {\n                local_b9 = true;\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = true;\n              local_bc = *(ushort *)(versym + local_b0 * 2);\n              uVar12 = local_bc & 0x7fff;\n              local_c0 = (uint)uVar12;\nLAB_0022ed91:\n                    /* try { // try from 0022edb6 to 0022f0c1 has its CatchHandler @ 0022f284 */\n              pcVar7 = Stringpool_template<char>::add\n                                 (&this->namepool_,sym_names + uVar8,true,&name_key_1);\n              if (1 < uVar12) {\n                pcVar11 = "versym for symbol %zu out of range: %u";\n                ppcVar2 = (version_map->\n                          super__Vector_base<char_const*,_std::allocator<char_const*>_>)._M_impl.\n                          _M_start;\n                if ((ulong)uVar12 <\n                    (ulong)((long)(version_map->\n                                  super__Vector_base<char_const*,_std::allocator<char_const*>_>).\n                                  _M_impl._M_finish - (long)ppcVar2 >> 3)) {\n                  pcVar11 = ppcVar2[uVar12];\n                  if (pcVar11 != (char *)0x0) {\n                    pcVar11 = Stringpool_template<char>::add\n                                        (&this->namepool_,pcVar11,true,&name_key);\n                    if (((st_shndx == 0xfff1) && (local_b9 == false)) && (name_key == name_key_1)) {\n                    /* try { // try from 0022f1bf to 0022f1fd has its CatchHandler @ 0022f284 */\n                      res = add_from_object<64,_false>\n                                      (this,(Object *)dynobj,pcVar7,name_key,(char *)0x0,0,false,\n                                       sym_00,0xfff1,false,0xfff1);\n                    }\n                    else {\n                      res = add_from_object<64,_false>\n                                      (this,(Object *)dynobj,pcVar7,name_key_1,pcVar11,name_key,\n                                       (bool)((byte)~(byte)(local_bc >> 8) >> 7 & local_ba),sym_00,\n                                       st_shndx,local_b9,st_shndx);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar11 = "versym for symbol %zu has no name: %u";\n                }\n                pcVar7 = (char *)gettext(pcVar11);\n                Object::error((Object *)dynobj,pcVar7,local_b0,(ulong)local_c0);\n                goto LAB_0022ec88;\n              }\n              res = add_from_object<64,_false>\n                              (this,(Object *)dynobj,pcVar7,name_key_1,(char *)0x0,0,false,sym_00,\n                               st_shndx,local_b9,st_shndx);\n            }\nLAB_0022ee87:\n            if (res != (Sized_symbol<64> *)0x0) {\n              bVar10 = (res->super_Symbol).field_0x3a & 7;\n              if (((st_shndx == 0) || (local_b9 == false)) || ((sym_00->p_->st_info & 0xf) != 1)) {\nLAB_0022eeb4:\n                if (bVar10 == 0) {\n                  if (((res->super_Symbol).field_0x3a & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0022f24f to 0022f253 has its CatchHandler @ 0022f284 */\n                    do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((dynobj == (Sized_dynobj<64,_false> *)(res->super_Symbol).u1_.object) &&\n                     (((sym.p_)->st_other & 3) == 3)) {\n                    puVar1 = &(res->super_Symbol).field_0x3c;\n                    *puVar1 = *puVar1 | 8;\n                  }\n                }\n              }\n              else if (bVar10 == 0) {\n                if (dynobj == (Sized_dynobj<64,_false> *)(res->super_Symbol).u1_.object) {\n                  if (object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                      ._M_impl._M_finish ==\n                      object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                      ._M_impl._M_end_of_storage) {\n                    std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>::\n                    _M_realloc_insert<gold::Sized_symbol<64>*_const&>\n                              (&object_symbols,\n                               (iterator)\n                               object_symbols.\n                               super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                               ._M_impl._M_finish,&res);\n                    bVar10 = (res->super_Symbol).field_0x3a & 7;\n                  }\n                  else {\n                    *object_symbols.\n                     super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                     ._M_impl._M_finish = res;\n                    object_symbols.\n                    super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                    ._M_impl._M_finish =\n                         object_symbols.\n                         super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                         ._M_impl._M_finish + 1;\n                    bVar10 = (res->super_Symbol).field_0x3a & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (sympointers != (Symbols *)0x0) {\n                (sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                _M_impl._M_start[local_b0] = &res->super_Symbol;\n              }\n            }\n          }\n          else {\n            pcVar7 = (char *)gettext("bad symbol name offset %u at %zu");\n            Object::error((Object *)dynobj,pcVar7,uVar8,local_b0);\n          }\n        }\n      }\nLAB_0022ec88:\n      local_b0 = local_b0 + 1;\n      syms = (uchar *)((long)syms + 0x18);\n    } while (count != local_b0);\n  }" if (parenthesized_expression "(count != 0)" ( (binary_expression "count != 0" identifier != number_literal) )) (compound_statement "{\n    do {\n      if (sympointers != (Symbols *)0x0) {\n        (sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n        _M_start[local_b0] = (Symbol *)0x0;\n      }\n      iVar6 = (int)(uint)((Sym_data<64> *)syms)->st_info >> 4;\n      sym.p_ = (Sym_data<64> *)syms;\n      if (iVar6 != 0) {\n        bVar10 = ((Sym_data<64> *)syms)->st_other & 3;\n        if (1 < (byte)(bVar10 - 1)) {\n          bVar9 = ((Sym_data<64> *)syms)->st_info & 0xf;\n          if (bVar10 == 3) {\n            uVar3._0_4_ = ((Sym_data<64> *)syms)->st_name;\n            uVar3._4_1_ = ((Sym_data<64> *)syms)->st_info;\n            uVar3._5_1_ = ((Sym_data<64> *)syms)->st_other;\n            uVar3._6_2_ = ((Sym_data<64> *)syms)->st_shndx;\n            symbuf._8_8_ = ((Sym_data<64> *)syms)->st_value;\n            symbuf._16_8_ = ((Sym_data<64> *)syms)->st_size;\n            symbuf._6_2_ = (undefined2)((ulong)uVar3 >> 0x30);\n            symbuf._0_5_ = (undefined5)uVar3;\n            symbuf._0_8_ = CONCAT26(symbuf._6_2_,\n                                    CONCAT15(((Sym_data<64> *)syms)->st_other,symbuf._0_5_)) &\n                           0xfffffcffffffffff;\n            if (bVar9 == 10) goto LAB_0022ef70;\nLAB_0022ef0b:\n            uVar8 = symbuf._0_8_ & 0xffffffff;\n            pSVar4 = (Sym_data<64> *)symbuf;\n            sym_00 = &sym2;\n          }\n          else {\n            if (bVar9 == 10) {\n              symbuf._16_8_ = ((Sym_data<64> *)syms)->st_size;\n              symbuf._0_8_ = *(undefined8 *)syms;\n              symbuf._8_8_ = ((Sym_data<64> *)syms)->st_value;\nLAB_0022ef70:\n              symbuf[4] = (char)(iVar6 << 4) + '\x02';\n              goto LAB_0022ef0b;\n            }\n            sym_00 = &sym;\n            uVar8 = (ulong)((Sym_data<64> *)syms)->st_name;\n            pSVar4 = (Sym_data<64> *)syms;\n          }\n          sym2.p_ = (Sym_data<64> *)symbuf;\n          if (uVar8 < sym_name_size) {\n            uVar12 = pSVar4->st_shndx;\n            st_shndx = (uint)uVar12;\n            if (uVar12 < 0xff00) {\n              if (uVar12 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = true;\nLAB_0022ec44:\n              *defined = *defined + 1;\n              if (versym != (uchar *)0x0) {\n                local_bc = *(ushort *)(versym + local_b0 * 2);\n                uVar12 = local_bc & 0x7fff;\n                local_c0 = (uint)uVar12;\n                if (local_c0 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              pcVar7 = Stringpool_template<char>::add\n                                 (&this->namepool_,sym_names + uVar8,true,&name_key);\n              res = add_from_object<64,_false>\n                              (this,(Object *)dynobj,pcVar7,name_key,(char *)0x0,0,false,sym_00,\n                               st_shndx,local_b9,st_shndx);\n            }\n            else {\n              local_b9 = false;\n              if (uVar12 != 0xffff) goto LAB_0022ec44;\n              this_01 = (dynobj->super_Dynobj).super_Object.xindex_;\n              if (this_01 == (Xindex *)0x0) {\n                iVar6 = (*(dynobj->super_Dynobj).super_Object._vptr_Object[0x1b])(dynobj);\n                this_01 = (Xindex *)CONCAT44(extraout_var,iVar6);\n                (dynobj->super_Dynobj).super_Object.xindex_ = this_01;\n              }\n              st_shndx = Xindex::sym_xindex_to_shndx(this_01,(Object *)dynobj,(uint)local_b0);\n              if (st_shndx != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (versym == (uchar *)0x0) {\n                local_b9 = true;\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = true;\n              local_bc = *(ushort *)(versym + local_b0 * 2);\n              uVar12 = local_bc & 0x7fff;\n              local_c0 = (uint)uVar12;\nLAB_0022ed91:\n                    /* try { // try from 0022edb6 to 0022f0c1 has its CatchHandler @ 0022f284 */\n              pcVar7 = Stringpool_template<char>::add\n                                 (&this->namepool_,sym_names + uVar8,true,&name_key_1);\n              if (1 < uVar12) {\n                pcVar11 = "versym for symbol %zu out of range: %u";\n                ppcVar2 = (version_map->\n                          super__Vector_base<char_const*,_std::allocator<char_const*>_>)._M_impl.\n                          _M_start;\n                if ((ulong)uVar12 <\n                    (ulong)((long)(version_map->\n                                  super__Vector_base<char_const*,_std::allocator<char_const*>_>).\n                                  _M_impl._M_finish - (long)ppcVar2 >> 3)) {\n                  pcVar11 = ppcVar2[uVar12];\n                  if (pcVar11 != (char *)0x0) {\n                    pcVar11 = Stringpool_template<char>::add\n                                        (&this->namepool_,pcVar11,true,&name_key);\n                    if (((st_shndx == 0xfff1) && (local_b9 == false)) && (name_key == name_key_1)) {\n                    /* try { // try from 0022f1bf to 0022f1fd has its CatchHandler @ 0022f284 */\n                      res = add_from_object<64,_false>\n                                      (this,(Object *)dynobj,pcVar7,name_key,(char *)0x0,0,false,\n                                       sym_00,0xfff1,false,0xfff1);\n                    }\n                    else {\n                      res = add_from_object<64,_false>\n                                      (this,(Object *)dynobj,pcVar7,name_key_1,pcVar11,name_key,\n                                       (bool)((byte)~(byte)(local_bc >> 8) >> 7 & local_ba),sym_00,\n                                       st_shndx,local_b9,st_shndx);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar11 = "versym for symbol %zu has no name: %u";\n                }\n                pcVar7 = (char *)gettext(pcVar11);\n                Object::error((Object *)dynobj,pcVar7,local_b0,(ulong)local_c0);\n                goto LAB_0022ec88;\n              }\n              res = add_from_object<64,_false>\n                              (this,(Object *)dynobj,pcVar7,name_key_1,(char *)0x0,0,false,sym_00,\n                               st_shndx,local_b9,st_shndx);\n            }\nLAB_0022ee87:\n            if (res != (Sized_symbol<64> *)0x0) {\n              bVar10 = (res->super_Symbol).field_0x3a & 7;\n              if (((st_shndx == 0) || (local_b9 == false)) || ((sym_00->p_->st_info & 0xf) != 1)) {\nLAB_0022eeb4:\n                if (bVar10 == 0) {\n                  if (((res->super_Symbol).field_0x3a & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0022f24f to 0022f253 has its CatchHandler @ 0022f284 */\n                    do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((dynobj == (Sized_dynobj<64,_false> *)(res->super_Symbol).u1_.object) &&\n                     (((sym.p_)->st_other & 3) == 3)) {\n                    puVar1 = &(res->super_Symbol).field_0x3c;\n                    *puVar1 = *puVar1 | 8;\n                  }\n                }\n              }\n              else if (bVar10 == 0) {\n                if (dynobj == (Sized_dynobj<64,_false> *)(res->super_Symbol).u1_.object) {\n                  if (object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                      ._M_impl._M_finish ==\n                      object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                      ._M_impl._M_end_of_storage) {\n                    std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>::\n                    _M_realloc_insert<gold::Sized_symbol<64>*_const&>\n                              (&object_symbols,\n                               (iterator)\n                               object_symbols.\n                               super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                               ._M_impl._M_finish,&res);\n                    bVar10 = (res->super_Symbol).field_0x3a & 7;\n                  }\n                  else {\n                    *object_symbols.\n                     super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                     ._M_impl._M_finish = res;\n                    object_symbols.\n                    super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                    ._M_impl._M_finish =\n                         object_symbols.\n                         super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                         ._M_impl._M_finish + 1;\n                    bVar10 = (res->super_Symbol).field_0x3a & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (sympointers != (Symbols *)0x0) {\n                (sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                _M_impl._M_start[local_b0] = &res->super_Symbol;\n              }\n            }\n          }\n          else {\n            pcVar7 = (char *)gettext("bad symbol name offset %u at %zu");\n            Object::error((Object *)dynobj,pcVar7,uVar8,local_b0);\n          }\n        }\n      }\nLAB_0022ec88:\n      local_b0 = local_b0 + 1;\n      syms = (uchar *)((long)syms + 0x18);\n    } while (count != local_b0);\n  }" { (do_statement "do {\n      if (sympointers != (Symbols *)0x0) {\n        (sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n        _M_start[local_b0] = (Symbol *)0x0;\n      }\n      iVar6 = (int)(uint)((Sym_data<64> *)syms)->st_info >> 4;\n      sym.p_ = (Sym_data<64> *)syms;\n      if (iVar6 != 0) {\n        bVar10 = ((Sym_data<64> *)syms)->st_other & 3;\n        if (1 < (byte)(bVar10 - 1)) {\n          bVar9 = ((Sym_data<64> *)syms)->st_info & 0xf;\n          if (bVar10 == 3) {\n            uVar3._0_4_ = ((Sym_data<64> *)syms)->st_name;\n            uVar3._4_1_ = ((Sym_data<64> *)syms)->st_info;\n            uVar3._5_1_ = ((Sym_data<64> *)syms)->st_other;\n            uVar3._6_2_ = ((Sym_data<64> *)syms)->st_shndx;\n            symbuf._8_8_ = ((Sym_data<64> *)syms)->st_value;\n            symbuf._16_8_ = ((Sym_data<64> *)syms)->st_size;\n            symbuf._6_2_ = (undefined2)((ulong)uVar3 >> 0x30);\n            symbuf._0_5_ = (undefined5)uVar3;\n            symbuf._0_8_ = CONCAT26(symbuf._6_2_,\n                                    CONCAT15(((Sym_data<64> *)syms)->st_other,symbuf._0_5_)) &\n                           0xfffffcffffffffff;\n            if (bVar9 == 10) goto LAB_0022ef70;\nLAB_0022ef0b:\n            uVar8 = symbuf._0_8_ & 0xffffffff;\n            pSVar4 = (Sym_data<64> *)symbuf;\n            sym_00 = &sym2;\n          }\n          else {\n            if (bVar9 == 10) {\n              symbuf._16_8_ = ((Sym_data<64> *)syms)->st_size;\n              symbuf._0_8_ = *(undefined8 *)syms;\n              symbuf._8_8_ = ((Sym_data<64> *)syms)->st_value;\nLAB_0022ef70:\n              symbuf[4] = (char)(iVar6 << 4) + '\x02';\n              goto LAB_0022ef0b;\n            }\n            sym_00 = &sym;\n            uVar8 = (ulong)((Sym_data<64> *)syms)->st_name;\n            pSVar4 = (Sym_data<64> *)syms;\n          }\n          sym2.p_ = (Sym_data<64> *)symbuf;\n          if (uVar8 < sym_name_size) {\n            uVar12 = pSVar4->st_shndx;\n            st_shndx = (uint)uVar12;\n            if (uVar12 < 0xff00) {\n              if (uVar12 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = true;\nLAB_0022ec44:\n              *defined = *defined + 1;\n              if (versym != (uchar *)0x0) {\n                local_bc = *(ushort *)(versym + local_b0 * 2);\n                uVar12 = local_bc & 0x7fff;\n                local_c0 = (uint)uVar12;\n                if (local_c0 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              pcVar7 = Stringpool_template<char>::add\n                                 (&this->namepool_,sym_names + uVar8,true,&name_key);\n              res = add_from_object<64,_false>\n                              (this,(Object *)dynobj,pcVar7,name_key,(char *)0x0,0,false,sym_00,\n                               st_shndx,local_b9,st_shndx);\n            }\n            else {\n              local_b9 = false;\n              if (uVar12 != 0xffff) goto LAB_0022ec44;\n              this_01 = (dynobj->super_Dynobj).super_Object.xindex_;\n              if (this_01 == (Xindex *)0x0) {\n                iVar6 = (*(dynobj->super_Dynobj).super_Object._vptr_Object[0x1b])(dynobj);\n                this_01 = (Xindex *)CONCAT44(extraout_var,iVar6);\n                (dynobj->super_Dynobj).super_Object.xindex_ = this_01;\n              }\n              st_shndx = Xindex::sym_xindex_to_shndx(this_01,(Object *)dynobj,(uint)local_b0);\n              if (st_shndx != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (versym == (uchar *)0x0) {\n                local_b9 = true;\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = true;\n              local_bc = *(ushort *)(versym + local_b0 * 2);\n              uVar12 = local_bc & 0x7fff;\n              local_c0 = (uint)uVar12;\nLAB_0022ed91:\n                    /* try { // try from 0022edb6 to 0022f0c1 has its CatchHandler @ 0022f284 */\n              pcVar7 = Stringpool_template<char>::add\n                                 (&this->namepool_,sym_names + uVar8,true,&name_key_1);\n              if (1 < uVar12) {\n                pcVar11 = "versym for symbol %zu out of range: %u";\n                ppcVar2 = (version_map->\n                          super__Vector_base<char_const*,_std::allocator<char_const*>_>)._M_impl.\n                          _M_start;\n                if ((ulong)uVar12 <\n                    (ulong)((long)(version_map->\n                                  super__Vector_base<char_const*,_std::allocator<char_const*>_>).\n                                  _M_impl._M_finish - (long)ppcVar2 >> 3)) {\n                  pcVar11 = ppcVar2[uVar12];\n                  if (pcVar11 != (char *)0x0) {\n                    pcVar11 = Stringpool_template<char>::add\n                                        (&this->namepool_,pcVar11,true,&name_key);\n                    if (((st_shndx == 0xfff1) && (local_b9 == false)) && (name_key == name_key_1)) {\n                    /* try { // try from 0022f1bf to 0022f1fd has its CatchHandler @ 0022f284 */\n                      res = add_from_object<64,_false>\n                                      (this,(Object *)dynobj,pcVar7,name_key,(char *)0x0,0,false,\n                                       sym_00,0xfff1,false,0xfff1);\n                    }\n                    else {\n                      res = add_from_object<64,_false>\n                                      (this,(Object *)dynobj,pcVar7,name_key_1,pcVar11,name_key,\n                                       (bool)((byte)~(byte)(local_bc >> 8) >> 7 & local_ba),sym_00,\n                                       st_shndx,local_b9,st_shndx);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar11 = "versym for symbol %zu has no name: %u";\n                }\n                pcVar7 = (char *)gettext(pcVar11);\n                Object::error((Object *)dynobj,pcVar7,local_b0,(ulong)local_c0);\n                goto LAB_0022ec88;\n              }\n              res = add_from_object<64,_false>\n                              (this,(Object *)dynobj,pcVar7,name_key_1,(char *)0x0,0,false,sym_00,\n                               st_shndx,local_b9,st_shndx);\n            }\nLAB_0022ee87:\n            if (res != (Sized_symbol<64> *)0x0) {\n              bVar10 = (res->super_Symbol).field_0x3a & 7;\n              if (((st_shndx == 0) || (local_b9 == false)) || ((sym_00->p_->st_info & 0xf) != 1)) {\nLAB_0022eeb4:\n                if (bVar10 == 0) {\n                  if (((res->super_Symbol).field_0x3a & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0022f24f to 0022f253 has its CatchHandler @ 0022f284 */\n                    do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((dynobj == (Sized_dynobj<64,_false> *)(res->super_Symbol).u1_.object) &&\n                     (((sym.p_)->st_other & 3) == 3)) {\n                    puVar1 = &(res->super_Symbol).field_0x3c;\n                    *puVar1 = *puVar1 | 8;\n                  }\n                }\n              }\n              else if (bVar10 == 0) {\n                if (dynobj == (Sized_dynobj<64,_false> *)(res->super_Symbol).u1_.object) {\n                  if (object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                      ._M_impl._M_finish ==\n                      object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                      ._M_impl._M_end_of_storage) {\n                    std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>::\n                    _M_realloc_insert<gold::Sized_symbol<64>*_const&>\n                              (&object_symbols,\n                               (iterator)\n                               object_symbols.\n                               super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                               ._M_impl._M_finish,&res);\n                    bVar10 = (res->super_Symbol).field_0x3a & 7;\n                  }\n                  else {\n                    *object_symbols.\n                     super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                     ._M_impl._M_finish = res;\n                    object_symbols.\n                    super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                    ._M_impl._M_finish =\n                         object_symbols.\n                         super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                         ._M_impl._M_finish + 1;\n                    bVar10 = (res->super_Symbol).field_0x3a & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (sympointers != (Symbols *)0x0) {\n                (sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                _M_impl._M_start[local_b0] = &res->super_Symbol;\n              }\n            }\n          }\n          else {\n            pcVar7 = (char *)gettext("bad symbol name offset %u at %zu");\n            Object::error((Object *)dynobj,pcVar7,uVar8,local_b0);\n          }\n        }\n      }\nLAB_0022ec88:\n      local_b0 = local_b0 + 1;\n      syms = (uchar *)((long)syms + 0x18);\n    } while (count != local_b0);" do (compound_statement "{\n      if (sympointers != (Symbols *)0x0) {\n        (sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n        _M_start[local_b0] = (Symbol *)0x0;\n      }\n      iVar6 = (int)(uint)((Sym_data<64> *)syms)->st_info >> 4;\n      sym.p_ = (Sym_data<64> *)syms;\n      if (iVar6 != 0) {\n        bVar10 = ((Sym_data<64> *)syms)->st_other & 3;\n        if (1 < (byte)(bVar10 - 1)) {\n          bVar9 = ((Sym_data<64> *)syms)->st_info & 0xf;\n          if (bVar10 == 3) {\n            uVar3._0_4_ = ((Sym_data<64> *)syms)->st_name;\n            uVar3._4_1_ = ((Sym_data<64> *)syms)->st_info;\n            uVar3._5_1_ = ((Sym_data<64> *)syms)->st_other;\n            uVar3._6_2_ = ((Sym_data<64> *)syms)->st_shndx;\n            symbuf._8_8_ = ((Sym_data<64> *)syms)->st_value;\n            symbuf._16_8_ = ((Sym_data<64> *)syms)->st_size;\n            symbuf._6_2_ = (undefined2)((ulong)uVar3 >> 0x30);\n            symbuf._0_5_ = (undefined5)uVar3;\n            symbuf._0_8_ = CONCAT26(symbuf._6_2_,\n                                    CONCAT15(((Sym_data<64> *)syms)->st_other,symbuf._0_5_)) &\n                           0xfffffcffffffffff;\n            if (bVar9 == 10) goto LAB_0022ef70;\nLAB_0022ef0b:\n            uVar8 = symbuf._0_8_ & 0xffffffff;\n            pSVar4 = (Sym_data<64> *)symbuf;\n            sym_00 = &sym2;\n          }\n          else {\n            if (bVar9 == 10) {\n              symbuf._16_8_ = ((Sym_data<64> *)syms)->st_size;\n              symbuf._0_8_ = *(undefined8 *)syms;\n              symbuf._8_8_ = ((Sym_data<64> *)syms)->st_value;\nLAB_0022ef70:\n              symbuf[4] = (char)(iVar6 << 4) + '\x02';\n              goto LAB_0022ef0b;\n            }\n            sym_00 = &sym;\n            uVar8 = (ulong)((Sym_data<64> *)syms)->st_name;\n            pSVar4 = (Sym_data<64> *)syms;\n          }\n          sym2.p_ = (Sym_data<64> *)symbuf;\n          if (uVar8 < sym_name_size) {\n            uVar12 = pSVar4->st_shndx;\n            st_shndx = (uint)uVar12;\n            if (uVar12 < 0xff00) {\n              if (uVar12 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = true;\nLAB_0022ec44:\n              *defined = *defined + 1;\n              if (versym != (uchar *)0x0) {\n                local_bc = *(ushort *)(versym + local_b0 * 2);\n                uVar12 = local_bc & 0x7fff;\n                local_c0 = (uint)uVar12;\n                if (local_c0 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              pcVar7 = Stringpool_template<char>::add\n                                 (&this->namepool_,sym_names + uVar8,true,&name_key);\n              res = add_from_object<64,_false>\n                              (this,(Object *)dynobj,pcVar7,name_key,(char *)0x0,0,false,sym_00,\n                               st_shndx,local_b9,st_shndx);\n            }\n            else {\n              local_b9 = false;\n              if (uVar12 != 0xffff) goto LAB_0022ec44;\n              this_01 = (dynobj->super_Dynobj).super_Object.xindex_;\n              if (this_01 == (Xindex *)0x0) {\n                iVar6 = (*(dynobj->super_Dynobj).super_Object._vptr_Object[0x1b])(dynobj);\n                this_01 = (Xindex *)CONCAT44(extraout_var,iVar6);\n                (dynobj->super_Dynobj).super_Object.xindex_ = this_01;\n              }\n              st_shndx = Xindex::sym_xindex_to_shndx(this_01,(Object *)dynobj,(uint)local_b0);\n              if (st_shndx != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (versym == (uchar *)0x0) {\n                local_b9 = true;\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = true;\n              local_bc = *(ushort *)(versym + local_b0 * 2);\n              uVar12 = local_bc & 0x7fff;\n              local_c0 = (uint)uVar12;\nLAB_0022ed91:\n                    /* try { // try from 0022edb6 to 0022f0c1 has its CatchHandler @ 0022f284 */\n              pcVar7 = Stringpool_template<char>::add\n                                 (&this->namepool_,sym_names + uVar8,true,&name_key_1);\n              if (1 < uVar12) {\n                pcVar11 = "versym for symbol %zu out of range: %u";\n                ppcVar2 = (version_map->\n                          super__Vector_base<char_const*,_std::allocator<char_const*>_>)._M_impl.\n                          _M_start;\n                if ((ulong)uVar12 <\n                    (ulong)((long)(version_map->\n                                  super__Vector_base<char_const*,_std::allocator<char_const*>_>).\n                                  _M_impl._M_finish - (long)ppcVar2 >> 3)) {\n                  pcVar11 = ppcVar2[uVar12];\n                  if (pcVar11 != (char *)0x0) {\n                    pcVar11 = Stringpool_template<char>::add\n                                        (&this->namepool_,pcVar11,true,&name_key);\n                    if (((st_shndx == 0xfff1) && (local_b9 == false)) && (name_key == name_key_1)) {\n                    /* try { // try from 0022f1bf to 0022f1fd has its CatchHandler @ 0022f284 */\n                      res = add_from_object<64,_false>\n                                      (this,(Object *)dynobj,pcVar7,name_key,(char *)0x0,0,false,\n                                       sym_00,0xfff1,false,0xfff1);\n                    }\n                    else {\n                      res = add_from_object<64,_false>\n                                      (this,(Object *)dynobj,pcVar7,name_key_1,pcVar11,name_key,\n                                       (bool)((byte)~(byte)(local_bc >> 8) >> 7 & local_ba),sym_00,\n                                       st_shndx,local_b9,st_shndx);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar11 = "versym for symbol %zu has no name: %u";\n                }\n                pcVar7 = (char *)gettext(pcVar11);\n                Object::error((Object *)dynobj,pcVar7,local_b0,(ulong)local_c0);\n                goto LAB_0022ec88;\n              }\n              res = add_from_object<64,_false>\n                              (this,(Object *)dynobj,pcVar7,name_key_1,(char *)0x0,0,false,sym_00,\n                               st_shndx,local_b9,st_shndx);\n            }\nLAB_0022ee87:\n            if (res != (Sized_symbol<64> *)0x0) {\n              bVar10 = (res->super_Symbol).field_0x3a & 7;\n              if (((st_shndx == 0) || (local_b9 == false)) || ((sym_00->p_->st_info & 0xf) != 1)) {\nLAB_0022eeb4:\n                if (bVar10 == 0) {\n                  if (((res->super_Symbol).field_0x3a & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0022f24f to 0022f253 has its CatchHandler @ 0022f284 */\n                    do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((dynobj == (Sized_dynobj<64,_false> *)(res->super_Symbol).u1_.object) &&\n                     (((sym.p_)->st_other & 3) == 3)) {\n                    puVar1 = &(res->super_Symbol).field_0x3c;\n                    *puVar1 = *puVar1 | 8;\n                  }\n                }\n              }\n              else if (bVar10 == 0) {\n                if (dynobj == (Sized_dynobj<64,_false> *)(res->super_Symbol).u1_.object) {\n                  if (object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                      ._M_impl._M_finish ==\n                      object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                      ._M_impl._M_end_of_storage) {\n                    std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>::\n                    _M_realloc_insert<gold::Sized_symbol<64>*_const&>\n                              (&object_symbols,\n                               (iterator)\n                               object_symbols.\n                               super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                               ._M_impl._M_finish,&res);\n                    bVar10 = (res->super_Symbol).field_0x3a & 7;\n                  }\n                  else {\n                    *object_symbols.\n                     super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                     ._M_impl._M_finish = res;\n                    object_symbols.\n                    super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                    ._M_impl._M_finish =\n                         object_symbols.\n                         super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                         ._M_impl._M_finish + 1;\n                    bVar10 = (res->super_Symbol).field_0x3a & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (sympointers != (Symbols *)0x0) {\n                (sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                _M_impl._M_start[local_b0] = &res->super_Symbol;\n              }\n            }\n          }\n          else {\n            pcVar7 = (char *)gettext("bad symbol name offset %u at %zu");\n            Object::error((Object *)dynobj,pcVar7,uVar8,local_b0);\n          }\n        }\n      }\nLAB_0022ec88:\n      local_b0 = local_b0 + 1;\n      syms = (uchar *)((long)syms + 0x18);\n    }" { (if_statement "if (sympointers != (Symbols *)0x0) {\n        (sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n        _M_start[local_b0] = (Symbol *)0x0;\n      }" if (parenthesized_expression "(sympointers != (Symbols *)0x0)" ( (binary_expression "sympointers != (Symbols *)0x0" identifier != (cast_expression "(Symbols *)0x0" ( (type_descriptor "Symbols *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n        _M_start[local_b0] = (Symbol *)0x0;\n      }" { (expression_statement "(sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n        _M_start[local_b0] = (Symbol *)0x0;" (assignment_expression "(sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n        _M_start[local_b0] = (Symbol *)0x0" (subscript_expression "(sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n        _M_start[local_b0]" (field_expression "(sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n        _M_start" (field_expression "(sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl" (parenthesized_expression "(sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)" ( (binary_expression "sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>" (binary_expression "sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "sympointers->super__Vector_base<gold::Symbol*,_std" (binary_expression "sympointers->super__Vector_base<gold" (field_expression "sympointers->super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR ">" >) identifier) > identifier) )) . field_identifier) . field_identifier) [ identifier ]) = (cast_expression "(Symbol *)0x0" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "iVar6 = (int)(uint)((Sym_data<64> *)syms)->st_info >> 4;" (assignment_expression "iVar6 = (int)(uint)((Sym_data<64> *)syms)->st_info >> 4" identifier = (cast_expression "(int)(uint)((Sym_data<64> *)syms)->st_info >> 4" ( (type_descriptor "int" primitive_type) ) (call_expression "(uint)((Sym_data<64> *)syms)->st_info >> 4" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((Sym_data<64> *)syms)->st_info >> 4" ( (binary_expression "(Sym_data<64> *)syms)->st_info >> 4" (field_expression "(Sym_data<64> *)syms)->st_info" (parenthesized_expression "(Sym_data<64> *)syms)" ( (binary_expression "Sym_data<64> *)syms" (binary_expression "Sym_data<64" identifier < number_literal) > (pointer_expression "*)syms" * (ERROR ")" )) identifier)) )) -> field_identifier) >> number_literal) ))))) ;) (expression_statement "sym.p_ = (Sym_data<64> *)syms;" (assignment_expression "sym.p_ = (Sym_data<64> *)syms" (field_expression "sym.p_" identifier . field_identifier) = (parenthesized_expression "(Sym_data<64> *)syms" ( (binary_expression "Sym_data<64> *)syms" (binary_expression "Sym_data<64" identifier < number_literal) > (pointer_expression "*)syms" * (ERROR ")" )) identifier)) ))) ;) (if_statement "if (iVar6 != 0) {\n        bVar10 = ((Sym_data<64> *)syms)->st_other & 3;\n        if (1 < (byte)(bVar10 - 1)) {\n          bVar9 = ((Sym_data<64> *)syms)->st_info & 0xf;\n          if (bVar10 == 3) {\n            uVar3._0_4_ = ((Sym_data<64> *)syms)->st_name;\n            uVar3._4_1_ = ((Sym_data<64> *)syms)->st_info;\n            uVar3._5_1_ = ((Sym_data<64> *)syms)->st_other;\n            uVar3._6_2_ = ((Sym_data<64> *)syms)->st_shndx;\n            symbuf._8_8_ = ((Sym_data<64> *)syms)->st_value;\n            symbuf._16_8_ = ((Sym_data<64> *)syms)->st_size;\n            symbuf._6_2_ = (undefined2)((ulong)uVar3 >> 0x30);\n            symbuf._0_5_ = (undefined5)uVar3;\n            symbuf._0_8_ = CONCAT26(symbuf._6_2_,\n                                    CONCAT15(((Sym_data<64> *)syms)->st_other,symbuf._0_5_)) &\n                           0xfffffcffffffffff;\n            if (bVar9 == 10) goto LAB_0022ef70;\nLAB_0022ef0b:\n            uVar8 = symbuf._0_8_ & 0xffffffff;\n            pSVar4 = (Sym_data<64> *)symbuf;\n            sym_00 = &sym2;\n          }\n          else {\n            if (bVar9 == 10) {\n              symbuf._16_8_ = ((Sym_data<64> *)syms)->st_size;\n              symbuf._0_8_ = *(undefined8 *)syms;\n              symbuf._8_8_ = ((Sym_data<64> *)syms)->st_value;\nLAB_0022ef70:\n              symbuf[4] = (char)(iVar6 << 4) + '\x02';\n              goto LAB_0022ef0b;\n            }\n            sym_00 = &sym;\n            uVar8 = (ulong)((Sym_data<64> *)syms)->st_name;\n            pSVar4 = (Sym_data<64> *)syms;\n          }\n          sym2.p_ = (Sym_data<64> *)symbuf;\n          if (uVar8 < sym_name_size) {\n            uVar12 = pSVar4->st_shndx;\n            st_shndx = (uint)uVar12;\n            if (uVar12 < 0xff00) {\n              if (uVar12 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = true;\nLAB_0022ec44:\n              *defined = *defined + 1;\n              if (versym != (uchar *)0x0) {\n                local_bc = *(ushort *)(versym + local_b0 * 2);\n                uVar12 = local_bc & 0x7fff;\n                local_c0 = (uint)uVar12;\n                if (local_c0 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              pcVar7 = Stringpool_template<char>::add\n                                 (&this->namepool_,sym_names + uVar8,true,&name_key);\n              res = add_from_object<64,_false>\n                              (this,(Object *)dynobj,pcVar7,name_key,(char *)0x0,0,false,sym_00,\n                               st_shndx,local_b9,st_shndx);\n            }\n            else {\n              local_b9 = false;\n              if (uVar12 != 0xffff) goto LAB_0022ec44;\n              this_01 = (dynobj->super_Dynobj).super_Object.xindex_;\n              if (this_01 == (Xindex *)0x0) {\n                iVar6 = (*(dynobj->super_Dynobj).super_Object._vptr_Object[0x1b])(dynobj);\n                this_01 = (Xindex *)CONCAT44(extraout_var,iVar6);\n                (dynobj->super_Dynobj).super_Object.xindex_ = this_01;\n              }\n              st_shndx = Xindex::sym_xindex_to_shndx(this_01,(Object *)dynobj,(uint)local_b0);\n              if (st_shndx != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (versym == (uchar *)0x0) {\n                local_b9 = true;\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = true;\n              local_bc = *(ushort *)(versym + local_b0 * 2);\n              uVar12 = local_bc & 0x7fff;\n              local_c0 = (uint)uVar12;\nLAB_0022ed91:\n                    /* try { // try from 0022edb6 to 0022f0c1 has its CatchHandler @ 0022f284 */\n              pcVar7 = Stringpool_template<char>::add\n                                 (&this->namepool_,sym_names + uVar8,true,&name_key_1);\n              if (1 < uVar12) {\n                pcVar11 = "versym for symbol %zu out of range: %u";\n                ppcVar2 = (version_map->\n                          super__Vector_base<char_const*,_std::allocator<char_const*>_>)._M_impl.\n                          _M_start;\n                if ((ulong)uVar12 <\n                    (ulong)((long)(version_map->\n                                  super__Vector_base<char_const*,_std::allocator<char_const*>_>).\n                                  _M_impl._M_finish - (long)ppcVar2 >> 3)) {\n                  pcVar11 = ppcVar2[uVar12];\n                  if (pcVar11 != (char *)0x0) {\n                    pcVar11 = Stringpool_template<char>::add\n                                        (&this->namepool_,pcVar11,true,&name_key);\n                    if (((st_shndx == 0xfff1) && (local_b9 == false)) && (name_key == name_key_1)) {\n                    /* try { // try from 0022f1bf to 0022f1fd has its CatchHandler @ 0022f284 */\n                      res = add_from_object<64,_false>\n                                      (this,(Object *)dynobj,pcVar7,name_key,(char *)0x0,0,false,\n                                       sym_00,0xfff1,false,0xfff1);\n                    }\n                    else {\n                      res = add_from_object<64,_false>\n                                      (this,(Object *)dynobj,pcVar7,name_key_1,pcVar11,name_key,\n                                       (bool)((byte)~(byte)(local_bc >> 8) >> 7 & local_ba),sym_00,\n                                       st_shndx,local_b9,st_shndx);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar11 = "versym for symbol %zu has no name: %u";\n                }\n                pcVar7 = (char *)gettext(pcVar11);\n                Object::error((Object *)dynobj,pcVar7,local_b0,(ulong)local_c0);\n                goto LAB_0022ec88;\n              }\n              res = add_from_object<64,_false>\n                              (this,(Object *)dynobj,pcVar7,name_key_1,(char *)0x0,0,false,sym_00,\n                               st_shndx,local_b9,st_shndx);\n            }\nLAB_0022ee87:\n            if (res != (Sized_symbol<64> *)0x0) {\n              bVar10 = (res->super_Symbol).field_0x3a & 7;\n              if (((st_shndx == 0) || (local_b9 == false)) || ((sym_00->p_->st_info & 0xf) != 1)) {\nLAB_0022eeb4:\n                if (bVar10 == 0) {\n                  if (((res->super_Symbol).field_0x3a & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0022f24f to 0022f253 has its CatchHandler @ 0022f284 */\n                    do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((dynobj == (Sized_dynobj<64,_false> *)(res->super_Symbol).u1_.object) &&\n                     (((sym.p_)->st_other & 3) == 3)) {\n                    puVar1 = &(res->super_Symbol).field_0x3c;\n                    *puVar1 = *puVar1 | 8;\n                  }\n                }\n              }\n              else if (bVar10 == 0) {\n                if (dynobj == (Sized_dynobj<64,_false> *)(res->super_Symbol).u1_.object) {\n                  if (object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                      ._M_impl._M_finish ==\n                      object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                      ._M_impl._M_end_of_storage) {\n                    std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>::\n                    _M_realloc_insert<gold::Sized_symbol<64>*_const&>\n                              (&object_symbols,\n                               (iterator)\n                               object_symbols.\n                               super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                               ._M_impl._M_finish,&res);\n                    bVar10 = (res->super_Symbol).field_0x3a & 7;\n                  }\n                  else {\n                    *object_symbols.\n                     super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                     ._M_impl._M_finish = res;\n                    object_symbols.\n                    super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                    ._M_impl._M_finish =\n                         object_symbols.\n                         super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                         ._M_impl._M_finish + 1;\n                    bVar10 = (res->super_Symbol).field_0x3a & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (sympointers != (Symbols *)0x0) {\n                (sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                _M_impl._M_start[local_b0] = &res->super_Symbol;\n              }\n            }\n          }\n          else {\n            pcVar7 = (char *)gettext("bad symbol name offset %u at %zu");\n            Object::error((Object *)dynobj,pcVar7,uVar8,local_b0);\n          }\n        }\n      }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n        bVar10 = ((Sym_data<64> *)syms)->st_other & 3;\n        if (1 < (byte)(bVar10 - 1)) {\n          bVar9 = ((Sym_data<64> *)syms)->st_info & 0xf;\n          if (bVar10 == 3) {\n            uVar3._0_4_ = ((Sym_data<64> *)syms)->st_name;\n            uVar3._4_1_ = ((Sym_data<64> *)syms)->st_info;\n            uVar3._5_1_ = ((Sym_data<64> *)syms)->st_other;\n            uVar3._6_2_ = ((Sym_data<64> *)syms)->st_shndx;\n            symbuf._8_8_ = ((Sym_data<64> *)syms)->st_value;\n            symbuf._16_8_ = ((Sym_data<64> *)syms)->st_size;\n            symbuf._6_2_ = (undefined2)((ulong)uVar3 >> 0x30);\n            symbuf._0_5_ = (undefined5)uVar3;\n            symbuf._0_8_ = CONCAT26(symbuf._6_2_,\n                                    CONCAT15(((Sym_data<64> *)syms)->st_other,symbuf._0_5_)) &\n                           0xfffffcffffffffff;\n            if (bVar9 == 10) goto LAB_0022ef70;\nLAB_0022ef0b:\n            uVar8 = symbuf._0_8_ & 0xffffffff;\n            pSVar4 = (Sym_data<64> *)symbuf;\n            sym_00 = &sym2;\n          }\n          else {\n            if (bVar9 == 10) {\n              symbuf._16_8_ = ((Sym_data<64> *)syms)->st_size;\n              symbuf._0_8_ = *(undefined8 *)syms;\n              symbuf._8_8_ = ((Sym_data<64> *)syms)->st_value;\nLAB_0022ef70:\n              symbuf[4] = (char)(iVar6 << 4) + '\x02';\n              goto LAB_0022ef0b;\n            }\n            sym_00 = &sym;\n            uVar8 = (ulong)((Sym_data<64> *)syms)->st_name;\n            pSVar4 = (Sym_data<64> *)syms;\n          }\n          sym2.p_ = (Sym_data<64> *)symbuf;\n          if (uVar8 < sym_name_size) {\n            uVar12 = pSVar4->st_shndx;\n            st_shndx = (uint)uVar12;\n            if (uVar12 < 0xff00) {\n              if (uVar12 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = true;\nLAB_0022ec44:\n              *defined = *defined + 1;\n              if (versym != (uchar *)0x0) {\n                local_bc = *(ushort *)(versym + local_b0 * 2);\n                uVar12 = local_bc & 0x7fff;\n                local_c0 = (uint)uVar12;\n                if (local_c0 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              pcVar7 = Stringpool_template<char>::add\n                                 (&this->namepool_,sym_names + uVar8,true,&name_key);\n              res = add_from_object<64,_false>\n                              (this,(Object *)dynobj,pcVar7,name_key,(char *)0x0,0,false,sym_00,\n                               st_shndx,local_b9,st_shndx);\n            }\n            else {\n              local_b9 = false;\n              if (uVar12 != 0xffff) goto LAB_0022ec44;\n              this_01 = (dynobj->super_Dynobj).super_Object.xindex_;\n              if (this_01 == (Xindex *)0x0) {\n                iVar6 = (*(dynobj->super_Dynobj).super_Object._vptr_Object[0x1b])(dynobj);\n                this_01 = (Xindex *)CONCAT44(extraout_var,iVar6);\n                (dynobj->super_Dynobj).super_Object.xindex_ = this_01;\n              }\n              st_shndx = Xindex::sym_xindex_to_shndx(this_01,(Object *)dynobj,(uint)local_b0);\n              if (st_shndx != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (versym == (uchar *)0x0) {\n                local_b9 = true;\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = true;\n              local_bc = *(ushort *)(versym + local_b0 * 2);\n              uVar12 = local_bc & 0x7fff;\n              local_c0 = (uint)uVar12;\nLAB_0022ed91:\n                    /* try { // try from 0022edb6 to 0022f0c1 has its CatchHandler @ 0022f284 */\n              pcVar7 = Stringpool_template<char>::add\n                                 (&this->namepool_,sym_names + uVar8,true,&name_key_1);\n              if (1 < uVar12) {\n                pcVar11 = "versym for symbol %zu out of range: %u";\n                ppcVar2 = (version_map->\n                          super__Vector_base<char_const*,_std::allocator<char_const*>_>)._M_impl.\n                          _M_start;\n                if ((ulong)uVar12 <\n                    (ulong)((long)(version_map->\n                                  super__Vector_base<char_const*,_std::allocator<char_const*>_>).\n                                  _M_impl._M_finish - (long)ppcVar2 >> 3)) {\n                  pcVar11 = ppcVar2[uVar12];\n                  if (pcVar11 != (char *)0x0) {\n                    pcVar11 = Stringpool_template<char>::add\n                                        (&this->namepool_,pcVar11,true,&name_key);\n                    if (((st_shndx == 0xfff1) && (local_b9 == false)) && (name_key == name_key_1)) {\n                    /* try { // try from 0022f1bf to 0022f1fd has its CatchHandler @ 0022f284 */\n                      res = add_from_object<64,_false>\n                                      (this,(Object *)dynobj,pcVar7,name_key,(char *)0x0,0,false,\n                                       sym_00,0xfff1,false,0xfff1);\n                    }\n                    else {\n                      res = add_from_object<64,_false>\n                                      (this,(Object *)dynobj,pcVar7,name_key_1,pcVar11,name_key,\n                                       (bool)((byte)~(byte)(local_bc >> 8) >> 7 & local_ba),sym_00,\n                                       st_shndx,local_b9,st_shndx);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar11 = "versym for symbol %zu has no name: %u";\n                }\n                pcVar7 = (char *)gettext(pcVar11);\n                Object::error((Object *)dynobj,pcVar7,local_b0,(ulong)local_c0);\n                goto LAB_0022ec88;\n              }\n              res = add_from_object<64,_false>\n                              (this,(Object *)dynobj,pcVar7,name_key_1,(char *)0x0,0,false,sym_00,\n                               st_shndx,local_b9,st_shndx);\n            }\nLAB_0022ee87:\n            if (res != (Sized_symbol<64> *)0x0) {\n              bVar10 = (res->super_Symbol).field_0x3a & 7;\n              if (((st_shndx == 0) || (local_b9 == false)) || ((sym_00->p_->st_info & 0xf) != 1)) {\nLAB_0022eeb4:\n                if (bVar10 == 0) {\n                  if (((res->super_Symbol).field_0x3a & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0022f24f to 0022f253 has its CatchHandler @ 0022f284 */\n                    do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((dynobj == (Sized_dynobj<64,_false> *)(res->super_Symbol).u1_.object) &&\n                     (((sym.p_)->st_other & 3) == 3)) {\n                    puVar1 = &(res->super_Symbol).field_0x3c;\n                    *puVar1 = *puVar1 | 8;\n                  }\n                }\n              }\n              else if (bVar10 == 0) {\n                if (dynobj == (Sized_dynobj<64,_false> *)(res->super_Symbol).u1_.object) {\n                  if (object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                      ._M_impl._M_finish ==\n                      object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                      ._M_impl._M_end_of_storage) {\n                    std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>::\n                    _M_realloc_insert<gold::Sized_symbol<64>*_const&>\n                              (&object_symbols,\n                               (iterator)\n                               object_symbols.\n                               super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                               ._M_impl._M_finish,&res);\n                    bVar10 = (res->super_Symbol).field_0x3a & 7;\n                  }\n                  else {\n                    *object_symbols.\n                     super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                     ._M_impl._M_finish = res;\n                    object_symbols.\n                    super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                    ._M_impl._M_finish =\n                         object_symbols.\n                         super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                         ._M_impl._M_finish + 1;\n                    bVar10 = (res->super_Symbol).field_0x3a & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (sympointers != (Symbols *)0x0) {\n                (sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                _M_impl._M_start[local_b0] = &res->super_Symbol;\n              }\n            }\n          }\n          else {\n            pcVar7 = (char *)gettext("bad symbol name offset %u at %zu");\n            Object::error((Object *)dynobj,pcVar7,uVar8,local_b0);\n          }\n        }\n      }" { (expression_statement "bVar10 = ((Sym_data<64> *)syms)->st_other & 3;" (assignment_expression "bVar10 = ((Sym_data<64> *)syms)->st_other & 3" identifier = (parenthesized_expression "((Sym_data<64> *)syms)->st_other & 3" ( (binary_expression "(Sym_data<64> *)syms)->st_other & 3" (field_expression "(Sym_data<64> *)syms)->st_other" (parenthesized_expression "(Sym_data<64> *)syms)" ( (binary_expression "Sym_data<64> *)syms" (binary_expression "Sym_data<64" identifier < number_literal) > (pointer_expression "*)syms" * (ERROR ")" )) identifier)) )) -> field_identifier) & number_literal) ))) ;) (if_statement "if (1 < (byte)(bVar10 - 1)) {\n          bVar9 = ((Sym_data<64> *)syms)->st_info & 0xf;\n          if (bVar10 == 3) {\n            uVar3._0_4_ = ((Sym_data<64> *)syms)->st_name;\n            uVar3._4_1_ = ((Sym_data<64> *)syms)->st_info;\n            uVar3._5_1_ = ((Sym_data<64> *)syms)->st_other;\n            uVar3._6_2_ = ((Sym_data<64> *)syms)->st_shndx;\n            symbuf._8_8_ = ((Sym_data<64> *)syms)->st_value;\n            symbuf._16_8_ = ((Sym_data<64> *)syms)->st_size;\n            symbuf._6_2_ = (undefined2)((ulong)uVar3 >> 0x30);\n            symbuf._0_5_ = (undefined5)uVar3;\n            symbuf._0_8_ = CONCAT26(symbuf._6_2_,\n                                    CONCAT15(((Sym_data<64> *)syms)->st_other,symbuf._0_5_)) &\n                           0xfffffcffffffffff;\n            if (bVar9 == 10) goto LAB_0022ef70;\nLAB_0022ef0b:\n            uVar8 = symbuf._0_8_ & 0xffffffff;\n            pSVar4 = (Sym_data<64> *)symbuf;\n            sym_00 = &sym2;\n          }\n          else {\n            if (bVar9 == 10) {\n              symbuf._16_8_ = ((Sym_data<64> *)syms)->st_size;\n              symbuf._0_8_ = *(undefined8 *)syms;\n              symbuf._8_8_ = ((Sym_data<64> *)syms)->st_value;\nLAB_0022ef70:\n              symbuf[4] = (char)(iVar6 << 4) + '\x02';\n              goto LAB_0022ef0b;\n            }\n            sym_00 = &sym;\n            uVar8 = (ulong)((Sym_data<64> *)syms)->st_name;\n            pSVar4 = (Sym_data<64> *)syms;\n          }\n          sym2.p_ = (Sym_data<64> *)symbuf;\n          if (uVar8 < sym_name_size) {\n            uVar12 = pSVar4->st_shndx;\n            st_shndx = (uint)uVar12;\n            if (uVar12 < 0xff00) {\n              if (uVar12 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = true;\nLAB_0022ec44:\n              *defined = *defined + 1;\n              if (versym != (uchar *)0x0) {\n                local_bc = *(ushort *)(versym + local_b0 * 2);\n                uVar12 = local_bc & 0x7fff;\n                local_c0 = (uint)uVar12;\n                if (local_c0 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              pcVar7 = Stringpool_template<char>::add\n                                 (&this->namepool_,sym_names + uVar8,true,&name_key);\n              res = add_from_object<64,_false>\n                              (this,(Object *)dynobj,pcVar7,name_key,(char *)0x0,0,false,sym_00,\n                               st_shndx,local_b9,st_shndx);\n            }\n            else {\n              local_b9 = false;\n              if (uVar12 != 0xffff) goto LAB_0022ec44;\n              this_01 = (dynobj->super_Dynobj).super_Object.xindex_;\n              if (this_01 == (Xindex *)0x0) {\n                iVar6 = (*(dynobj->super_Dynobj).super_Object._vptr_Object[0x1b])(dynobj);\n                this_01 = (Xindex *)CONCAT44(extraout_var,iVar6);\n                (dynobj->super_Dynobj).super_Object.xindex_ = this_01;\n              }\n              st_shndx = Xindex::sym_xindex_to_shndx(this_01,(Object *)dynobj,(uint)local_b0);\n              if (st_shndx != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (versym == (uchar *)0x0) {\n                local_b9 = true;\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = true;\n              local_bc = *(ushort *)(versym + local_b0 * 2);\n              uVar12 = local_bc & 0x7fff;\n              local_c0 = (uint)uVar12;\nLAB_0022ed91:\n                    /* try { // try from 0022edb6 to 0022f0c1 has its CatchHandler @ 0022f284 */\n              pcVar7 = Stringpool_template<char>::add\n                                 (&this->namepool_,sym_names + uVar8,true,&name_key_1);\n              if (1 < uVar12) {\n                pcVar11 = "versym for symbol %zu out of range: %u";\n                ppcVar2 = (version_map->\n                          super__Vector_base<char_const*,_std::allocator<char_const*>_>)._M_impl.\n                          _M_start;\n                if ((ulong)uVar12 <\n                    (ulong)((long)(version_map->\n                                  super__Vector_base<char_const*,_std::allocator<char_const*>_>).\n                                  _M_impl._M_finish - (long)ppcVar2 >> 3)) {\n                  pcVar11 = ppcVar2[uVar12];\n                  if (pcVar11 != (char *)0x0) {\n                    pcVar11 = Stringpool_template<char>::add\n                                        (&this->namepool_,pcVar11,true,&name_key);\n                    if (((st_shndx == 0xfff1) && (local_b9 == false)) && (name_key == name_key_1)) {\n                    /* try { // try from 0022f1bf to 0022f1fd has its CatchHandler @ 0022f284 */\n                      res = add_from_object<64,_false>\n                                      (this,(Object *)dynobj,pcVar7,name_key,(char *)0x0,0,false,\n                                       sym_00,0xfff1,false,0xfff1);\n                    }\n                    else {\n                      res = add_from_object<64,_false>\n                                      (this,(Object *)dynobj,pcVar7,name_key_1,pcVar11,name_key,\n                                       (bool)((byte)~(byte)(local_bc >> 8) >> 7 & local_ba),sym_00,\n                                       st_shndx,local_b9,st_shndx);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar11 = "versym for symbol %zu has no name: %u";\n                }\n                pcVar7 = (char *)gettext(pcVar11);\n                Object::error((Object *)dynobj,pcVar7,local_b0,(ulong)local_c0);\n                goto LAB_0022ec88;\n              }\n              res = add_from_object<64,_false>\n                              (this,(Object *)dynobj,pcVar7,name_key_1,(char *)0x0,0,false,sym_00,\n                               st_shndx,local_b9,st_shndx);\n            }\nLAB_0022ee87:\n            if (res != (Sized_symbol<64> *)0x0) {\n              bVar10 = (res->super_Symbol).field_0x3a & 7;\n              if (((st_shndx == 0) || (local_b9 == false)) || ((sym_00->p_->st_info & 0xf) != 1)) {\nLAB_0022eeb4:\n                if (bVar10 == 0) {\n                  if (((res->super_Symbol).field_0x3a & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0022f24f to 0022f253 has its CatchHandler @ 0022f284 */\n                    do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((dynobj == (Sized_dynobj<64,_false> *)(res->super_Symbol).u1_.object) &&\n                     (((sym.p_)->st_other & 3) == 3)) {\n                    puVar1 = &(res->super_Symbol).field_0x3c;\n                    *puVar1 = *puVar1 | 8;\n                  }\n                }\n              }\n              else if (bVar10 == 0) {\n                if (dynobj == (Sized_dynobj<64,_false> *)(res->super_Symbol).u1_.object) {\n                  if (object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                      ._M_impl._M_finish ==\n                      object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                      ._M_impl._M_end_of_storage) {\n                    std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>::\n                    _M_realloc_insert<gold::Sized_symbol<64>*_const&>\n                              (&object_symbols,\n                               (iterator)\n                               object_symbols.\n                               super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                               ._M_impl._M_finish,&res);\n                    bVar10 = (res->super_Symbol).field_0x3a & 7;\n                  }\n                  else {\n                    *object_symbols.\n                     super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                     ._M_impl._M_finish = res;\n                    object_symbols.\n                    super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                    ._M_impl._M_finish =\n                         object_symbols.\n                         super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                         ._M_impl._M_finish + 1;\n                    bVar10 = (res->super_Symbol).field_0x3a & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (sympointers != (Symbols *)0x0) {\n                (sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                _M_impl._M_start[local_b0] = &res->super_Symbol;\n              }\n            }\n          }\n          else {\n            pcVar7 = (char *)gettext("bad symbol name offset %u at %zu");\n            Object::error((Object *)dynobj,pcVar7,uVar8,local_b0);\n          }\n        }" if (parenthesized_expression "(1 < (byte)(bVar10 - 1))" ( (binary_expression "1 < (byte)(bVar10 - 1)" number_literal < (call_expression "(byte)(bVar10 - 1)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar10 - 1)" ( (binary_expression "bVar10 - 1" identifier - number_literal) )))) )) (compound_statement "{\n          bVar9 = ((Sym_data<64> *)syms)->st_info & 0xf;\n          if (bVar10 == 3) {\n            uVar3._0_4_ = ((Sym_data<64> *)syms)->st_name;\n            uVar3._4_1_ = ((Sym_data<64> *)syms)->st_info;\n            uVar3._5_1_ = ((Sym_data<64> *)syms)->st_other;\n            uVar3._6_2_ = ((Sym_data<64> *)syms)->st_shndx;\n            symbuf._8_8_ = ((Sym_data<64> *)syms)->st_value;\n            symbuf._16_8_ = ((Sym_data<64> *)syms)->st_size;\n            symbuf._6_2_ = (undefined2)((ulong)uVar3 >> 0x30);\n            symbuf._0_5_ = (undefined5)uVar3;\n            symbuf._0_8_ = CONCAT26(symbuf._6_2_,\n                                    CONCAT15(((Sym_data<64> *)syms)->st_other,symbuf._0_5_)) &\n                           0xfffffcffffffffff;\n            if (bVar9 == 10) goto LAB_0022ef70;\nLAB_0022ef0b:\n            uVar8 = symbuf._0_8_ & 0xffffffff;\n            pSVar4 = (Sym_data<64> *)symbuf;\n            sym_00 = &sym2;\n          }\n          else {\n            if (bVar9 == 10) {\n              symbuf._16_8_ = ((Sym_data<64> *)syms)->st_size;\n              symbuf._0_8_ = *(undefined8 *)syms;\n              symbuf._8_8_ = ((Sym_data<64> *)syms)->st_value;\nLAB_0022ef70:\n              symbuf[4] = (char)(iVar6 << 4) + '\x02';\n              goto LAB_0022ef0b;\n            }\n            sym_00 = &sym;\n            uVar8 = (ulong)((Sym_data<64> *)syms)->st_name;\n            pSVar4 = (Sym_data<64> *)syms;\n          }\n          sym2.p_ = (Sym_data<64> *)symbuf;\n          if (uVar8 < sym_name_size) {\n            uVar12 = pSVar4->st_shndx;\n            st_shndx = (uint)uVar12;\n            if (uVar12 < 0xff00) {\n              if (uVar12 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = true;\nLAB_0022ec44:\n              *defined = *defined + 1;\n              if (versym != (uchar *)0x0) {\n                local_bc = *(ushort *)(versym + local_b0 * 2);\n                uVar12 = local_bc & 0x7fff;\n                local_c0 = (uint)uVar12;\n                if (local_c0 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              pcVar7 = Stringpool_template<char>::add\n                                 (&this->namepool_,sym_names + uVar8,true,&name_key);\n              res = add_from_object<64,_false>\n                              (this,(Object *)dynobj,pcVar7,name_key,(char *)0x0,0,false,sym_00,\n                               st_shndx,local_b9,st_shndx);\n            }\n            else {\n              local_b9 = false;\n              if (uVar12 != 0xffff) goto LAB_0022ec44;\n              this_01 = (dynobj->super_Dynobj).super_Object.xindex_;\n              if (this_01 == (Xindex *)0x0) {\n                iVar6 = (*(dynobj->super_Dynobj).super_Object._vptr_Object[0x1b])(dynobj);\n                this_01 = (Xindex *)CONCAT44(extraout_var,iVar6);\n                (dynobj->super_Dynobj).super_Object.xindex_ = this_01;\n              }\n              st_shndx = Xindex::sym_xindex_to_shndx(this_01,(Object *)dynobj,(uint)local_b0);\n              if (st_shndx != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (versym == (uchar *)0x0) {\n                local_b9 = true;\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = true;\n              local_bc = *(ushort *)(versym + local_b0 * 2);\n              uVar12 = local_bc & 0x7fff;\n              local_c0 = (uint)uVar12;\nLAB_0022ed91:\n                    /* try { // try from 0022edb6 to 0022f0c1 has its CatchHandler @ 0022f284 */\n              pcVar7 = Stringpool_template<char>::add\n                                 (&this->namepool_,sym_names + uVar8,true,&name_key_1);\n              if (1 < uVar12) {\n                pcVar11 = "versym for symbol %zu out of range: %u";\n                ppcVar2 = (version_map->\n                          super__Vector_base<char_const*,_std::allocator<char_const*>_>)._M_impl.\n                          _M_start;\n                if ((ulong)uVar12 <\n                    (ulong)((long)(version_map->\n                                  super__Vector_base<char_const*,_std::allocator<char_const*>_>).\n                                  _M_impl._M_finish - (long)ppcVar2 >> 3)) {\n                  pcVar11 = ppcVar2[uVar12];\n                  if (pcVar11 != (char *)0x0) {\n                    pcVar11 = Stringpool_template<char>::add\n                                        (&this->namepool_,pcVar11,true,&name_key);\n                    if (((st_shndx == 0xfff1) && (local_b9 == false)) && (name_key == name_key_1)) {\n                    /* try { // try from 0022f1bf to 0022f1fd has its CatchHandler @ 0022f284 */\n                      res = add_from_object<64,_false>\n                                      (this,(Object *)dynobj,pcVar7,name_key,(char *)0x0,0,false,\n                                       sym_00,0xfff1,false,0xfff1);\n                    }\n                    else {\n                      res = add_from_object<64,_false>\n                                      (this,(Object *)dynobj,pcVar7,name_key_1,pcVar11,name_key,\n                                       (bool)((byte)~(byte)(local_bc >> 8) >> 7 & local_ba),sym_00,\n                                       st_shndx,local_b9,st_shndx);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar11 = "versym for symbol %zu has no name: %u";\n                }\n                pcVar7 = (char *)gettext(pcVar11);\n                Object::error((Object *)dynobj,pcVar7,local_b0,(ulong)local_c0);\n                goto LAB_0022ec88;\n              }\n              res = add_from_object<64,_false>\n                              (this,(Object *)dynobj,pcVar7,name_key_1,(char *)0x0,0,false,sym_00,\n                               st_shndx,local_b9,st_shndx);\n            }\nLAB_0022ee87:\n            if (res != (Sized_symbol<64> *)0x0) {\n              bVar10 = (res->super_Symbol).field_0x3a & 7;\n              if (((st_shndx == 0) || (local_b9 == false)) || ((sym_00->p_->st_info & 0xf) != 1)) {\nLAB_0022eeb4:\n                if (bVar10 == 0) {\n                  if (((res->super_Symbol).field_0x3a & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0022f24f to 0022f253 has its CatchHandler @ 0022f284 */\n                    do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((dynobj == (Sized_dynobj<64,_false> *)(res->super_Symbol).u1_.object) &&\n                     (((sym.p_)->st_other & 3) == 3)) {\n                    puVar1 = &(res->super_Symbol).field_0x3c;\n                    *puVar1 = *puVar1 | 8;\n                  }\n                }\n              }\n              else if (bVar10 == 0) {\n                if (dynobj == (Sized_dynobj<64,_false> *)(res->super_Symbol).u1_.object) {\n                  if (object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                      ._M_impl._M_finish ==\n                      object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                      ._M_impl._M_end_of_storage) {\n                    std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>::\n                    _M_realloc_insert<gold::Sized_symbol<64>*_const&>\n                              (&object_symbols,\n                               (iterator)\n                               object_symbols.\n                               super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                               ._M_impl._M_finish,&res);\n                    bVar10 = (res->super_Symbol).field_0x3a & 7;\n                  }\n                  else {\n                    *object_symbols.\n                     super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                     ._M_impl._M_finish = res;\n                    object_symbols.\n                    super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                    ._M_impl._M_finish =\n                         object_symbols.\n                         super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                         ._M_impl._M_finish + 1;\n                    bVar10 = (res->super_Symbol).field_0x3a & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (sympointers != (Symbols *)0x0) {\n                (sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                _M_impl._M_start[local_b0] = &res->super_Symbol;\n              }\n            }\n          }\n          else {\n            pcVar7 = (char *)gettext("bad symbol name offset %u at %zu");\n            Object::error((Object *)dynobj,pcVar7,uVar8,local_b0);\n          }\n        }" { (expression_statement "bVar9 = ((Sym_data<64> *)syms)->st_info & 0xf;" (assignment_expression "bVar9 = ((Sym_data<64> *)syms)->st_info & 0xf" identifier = (parenthesized_expression "((Sym_data<64> *)syms)->st_info & 0xf" ( (binary_expression "(Sym_data<64> *)syms)->st_info & 0xf" (field_expression "(Sym_data<64> *)syms)->st_info" (parenthesized_expression "(Sym_data<64> *)syms)" ( (binary_expression "Sym_data<64> *)syms" (binary_expression "Sym_data<64" identifier < number_literal) > (pointer_expression "*)syms" * (ERROR ")" )) identifier)) )) -> field_identifier) & number_literal) ))) ;) (if_statement "if (bVar10 == 3) {\n            uVar3._0_4_ = ((Sym_data<64> *)syms)->st_name;\n            uVar3._4_1_ = ((Sym_data<64> *)syms)->st_info;\n            uVar3._5_1_ = ((Sym_data<64> *)syms)->st_other;\n            uVar3._6_2_ = ((Sym_data<64> *)syms)->st_shndx;\n            symbuf._8_8_ = ((Sym_data<64> *)syms)->st_value;\n            symbuf._16_8_ = ((Sym_data<64> *)syms)->st_size;\n            symbuf._6_2_ = (undefined2)((ulong)uVar3 >> 0x30);\n            symbuf._0_5_ = (undefined5)uVar3;\n            symbuf._0_8_ = CONCAT26(symbuf._6_2_,\n                                    CONCAT15(((Sym_data<64> *)syms)->st_other,symbuf._0_5_)) &\n                           0xfffffcffffffffff;\n            if (bVar9 == 10) goto LAB_0022ef70;\nLAB_0022ef0b:\n            uVar8 = symbuf._0_8_ & 0xffffffff;\n            pSVar4 = (Sym_data<64> *)symbuf;\n            sym_00 = &sym2;\n          }\n          else {\n            if (bVar9 == 10) {\n              symbuf._16_8_ = ((Sym_data<64> *)syms)->st_size;\n              symbuf._0_8_ = *(undefined8 *)syms;\n              symbuf._8_8_ = ((Sym_data<64> *)syms)->st_value;\nLAB_0022ef70:\n              symbuf[4] = (char)(iVar6 << 4) + '\x02';\n              goto LAB_0022ef0b;\n            }\n            sym_00 = &sym;\n            uVar8 = (ulong)((Sym_data<64> *)syms)->st_name;\n            pSVar4 = (Sym_data<64> *)syms;\n          }" if (parenthesized_expression "(bVar10 == 3)" ( (binary_expression "bVar10 == 3" identifier == number_literal) )) (compound_statement "{\n            uVar3._0_4_ = ((Sym_data<64> *)syms)->st_name;\n            uVar3._4_1_ = ((Sym_data<64> *)syms)->st_info;\n            uVar3._5_1_ = ((Sym_data<64> *)syms)->st_other;\n            uVar3._6_2_ = ((Sym_data<64> *)syms)->st_shndx;\n            symbuf._8_8_ = ((Sym_data<64> *)syms)->st_value;\n            symbuf._16_8_ = ((Sym_data<64> *)syms)->st_size;\n            symbuf._6_2_ = (undefined2)((ulong)uVar3 >> 0x30);\n            symbuf._0_5_ = (undefined5)uVar3;\n            symbuf._0_8_ = CONCAT26(symbuf._6_2_,\n                                    CONCAT15(((Sym_data<64> *)syms)->st_other,symbuf._0_5_)) &\n                           0xfffffcffffffffff;\n            if (bVar9 == 10) goto LAB_0022ef70;\nLAB_0022ef0b:\n            uVar8 = symbuf._0_8_ & 0xffffffff;\n            pSVar4 = (Sym_data<64> *)symbuf;\n            sym_00 = &sym2;\n          }" { (expression_statement "uVar3._0_4_ = ((Sym_data<64> *)syms)->st_name;" (assignment_expression "uVar3._0_4_ = ((Sym_data<64> *)syms)->st_name" (field_expression "uVar3._0_4_" identifier . field_identifier) = (parenthesized_expression "((Sym_data<64> *)syms)->st_name" ( (field_expression "(Sym_data<64> *)syms)->st_name" (parenthesized_expression "(Sym_data<64> *)syms)" ( (binary_expression "Sym_data<64> *)syms" (binary_expression "Sym_data<64" identifier < number_literal) > (pointer_expression "*)syms" * (ERROR ")" )) identifier)) )) -> field_identifier) ))) ;) (expression_statement "uVar3._4_1_ = ((Sym_data<64> *)syms)->st_info;" (assignment_expression "uVar3._4_1_ = ((Sym_data<64> *)syms)->st_info" (field_expression "uVar3._4_1_" identifier . field_identifier) = (parenthesized_expression "((Sym_data<64> *)syms)->st_info" ( (field_expression "(Sym_data<64> *)syms)->st_info" (parenthesized_expression "(Sym_data<64> *)syms)" ( (binary_expression "Sym_data<64> *)syms" (binary_expression "Sym_data<64" identifier < number_literal) > (pointer_expression "*)syms" * (ERROR ")" )) identifier)) )) -> field_identifier) ))) ;) (expression_statement "uVar3._5_1_ = ((Sym_data<64> *)syms)->st_other;" (assignment_expression "uVar3._5_1_ = ((Sym_data<64> *)syms)->st_other" (field_expression "uVar3._5_1_" identifier . field_identifier) = (parenthesized_expression "((Sym_data<64> *)syms)->st_other" ( (field_expression "(Sym_data<64> *)syms)->st_other" (parenthesized_expression "(Sym_data<64> *)syms)" ( (binary_expression "Sym_data<64> *)syms" (binary_expression "Sym_data<64" identifier < number_literal) > (pointer_expression "*)syms" * (ERROR ")" )) identifier)) )) -> field_identifier) ))) ;) (expression_statement "uVar3._6_2_ = ((Sym_data<64> *)syms)->st_shndx;" (assignment_expression "uVar3._6_2_ = ((Sym_data<64> *)syms)->st_shndx" (field_expression "uVar3._6_2_" identifier . field_identifier) = (parenthesized_expression "((Sym_data<64> *)syms)->st_shndx" ( (field_expression "(Sym_data<64> *)syms)->st_shndx" (parenthesized_expression "(Sym_data<64> *)syms)" ( (binary_expression "Sym_data<64> *)syms" (binary_expression "Sym_data<64" identifier < number_literal) > (pointer_expression "*)syms" * (ERROR ")" )) identifier)) )) -> field_identifier) ))) ;) (expression_statement "symbuf._8_8_ = ((Sym_data<64> *)syms)->st_value;" (assignment_expression "symbuf._8_8_ = ((Sym_data<64> *)syms)->st_value" (field_expression "symbuf._8_8_" identifier . field_identifier) = (parenthesized_expression "((Sym_data<64> *)syms)->st_value" ( (field_expression "(Sym_data<64> *)syms)->st_value" (parenthesized_expression "(Sym_data<64> *)syms)" ( (binary_expression "Sym_data<64> *)syms" (binary_expression "Sym_data<64" identifier < number_literal) > (pointer_expression "*)syms" * (ERROR ")" )) identifier)) )) -> field_identifier) ))) ;) (expression_statement "symbuf._16_8_ = ((Sym_data<64> *)syms)->st_size;" (assignment_expression "symbuf._16_8_ = ((Sym_data<64> *)syms)->st_size" (field_expression "symbuf._16_8_" identifier . field_identifier) = (parenthesized_expression "((Sym_data<64> *)syms)->st_size" ( (field_expression "(Sym_data<64> *)syms)->st_size" (parenthesized_expression "(Sym_data<64> *)syms)" ( (binary_expression "Sym_data<64> *)syms" (binary_expression "Sym_data<64" identifier < number_literal) > (pointer_expression "*)syms" * (ERROR ")" )) identifier)) )) -> field_identifier) ))) ;) (expression_statement "symbuf._6_2_ = (undefined2)((ulong)uVar3 >> 0x30);" (assignment_expression "symbuf._6_2_ = (undefined2)((ulong)uVar3 >> 0x30)" (field_expression "symbuf._6_2_" identifier . field_identifier) = (call_expression "(undefined2)((ulong)uVar3 >> 0x30)" (parenthesized_expression "(undefined2)" ( identifier )) (argument_list "((ulong)uVar3 >> 0x30)" ( (binary_expression "(ulong)uVar3 >> 0x30" (cast_expression "(ulong)uVar3" ( (type_descriptor "ulong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "symbuf._0_5_ = (undefined5)uVar3;" (assignment_expression "symbuf._0_5_ = (undefined5)uVar3" (field_expression "symbuf._0_5_" identifier . field_identifier) = (cast_expression "(undefined5)uVar3" ( (type_descriptor "undefined5" type_identifier) ) identifier)) ;) (expression_statement "symbuf._0_8_ = CONCAT26(symbuf._6_2_,\n                                    CONCAT15(((Sym_data<64> *)syms)->st_other,symbuf._0_5_)) &\n                           0xfffffcffffffffff;" (assignment_expression "symbuf._0_8_ = CONCAT26(symbuf._6_2_,\n                                    CONCAT15(((Sym_data<64> *)syms)->st_other,symbuf._0_5_)) &\n                           0xfffffcffffffffff" (field_expression "symbuf._0_8_" identifier . field_identifier) = (call_expression "CONCAT26(symbuf._6_2_,\n                                    CONCAT15(((Sym_data<64> *)syms)->st_other,symbuf._0_5_)) &\n                           0xfffffcffffffffff" identifier (argument_list "(symbuf._6_2_,\n                                    CONCAT15(((Sym_data<64> *)syms)->st_other,symbuf._0_5_)) &\n                           0xfffffcffffffffff" ( (field_expression "symbuf._6_2_" identifier . field_identifier) , (binary_expression "CONCAT15(((Sym_data<64> *)syms)->st_other,symbuf._0_5_)) &\n                           0xfffffcffffffffff" (call_expression "CONCAT15(((Sym_data<64> *)syms)->st_other,symbuf._0_5_))" identifier (argument_list "(((Sym_data<64> *)syms)->st_other,symbuf._0_5_))" ( (parenthesized_expression "((Sym_data<64> *)syms)->st_other,symbuf._0_5_)" ( (comma_expression "(Sym_data<64> *)syms)->st_other,symbuf._0_5_" (field_expression "(Sym_data<64> *)syms)->st_other" (parenthesized_expression "(Sym_data<64> *)syms)" ( (binary_expression "Sym_data<64> *)syms" (binary_expression "Sym_data<64" identifier < number_literal) > (pointer_expression "*)syms" * (ERROR ")" )) identifier)) )) -> field_identifier) , (field_expression "symbuf._0_5_" identifier . field_identifier)) )) ))) & number_literal) )))) ;) (if_statement "if (bVar9 == 10) goto LAB_0022ef70;" if (parenthesized_expression "(bVar9 == 10)" ( (binary_expression "bVar9 == 10" identifier == number_literal) )) (goto_statement "goto LAB_0022ef70;" goto statement_identifier ;)) (labeled_statement "LAB_0022ef0b:\n            uVar8 = symbuf._0_8_ & 0xffffffff;" statement_identifier : (expression_statement "uVar8 = symbuf._0_8_ & 0xffffffff;" (assignment_expression "uVar8 = symbuf._0_8_ & 0xffffffff" identifier = (binary_expression "symbuf._0_8_ & 0xffffffff" (field_expression "symbuf._0_8_" identifier . field_identifier) & number_literal)) ;)) (expression_statement "pSVar4 = (Sym_data<64> *)symbuf;" (assignment_expression "pSVar4 = (Sym_data<64> *)symbuf" identifier = (parenthesized_expression "(Sym_data<64> *)symbuf" ( (binary_expression "Sym_data<64> *)symbuf" (binary_expression "Sym_data<64" identifier < number_literal) > (pointer_expression "*)symbuf" * (ERROR ")" )) identifier)) ))) ;) (expression_statement "sym_00 = &sym2;" (assignment_expression "sym_00 = &sym2" identifier = (pointer_expression "&sym2" & identifier)) ;) }) (else_clause "else {\n            if (bVar9 == 10) {\n              symbuf._16_8_ = ((Sym_data<64> *)syms)->st_size;\n              symbuf._0_8_ = *(undefined8 *)syms;\n              symbuf._8_8_ = ((Sym_data<64> *)syms)->st_value;\nLAB_0022ef70:\n              symbuf[4] = (char)(iVar6 << 4) + '\x02';\n              goto LAB_0022ef0b;\n            }\n            sym_00 = &sym;\n            uVar8 = (ulong)((Sym_data<64> *)syms)->st_name;\n            pSVar4 = (Sym_data<64> *)syms;\n          }" else (compound_statement "{\n            if (bVar9 == 10) {\n              symbuf._16_8_ = ((Sym_data<64> *)syms)->st_size;\n              symbuf._0_8_ = *(undefined8 *)syms;\n              symbuf._8_8_ = ((Sym_data<64> *)syms)->st_value;\nLAB_0022ef70:\n              symbuf[4] = (char)(iVar6 << 4) + '\x02';\n              goto LAB_0022ef0b;\n            }\n            sym_00 = &sym;\n            uVar8 = (ulong)((Sym_data<64> *)syms)->st_name;\n            pSVar4 = (Sym_data<64> *)syms;\n          }" { (if_statement "if (bVar9 == 10) {\n              symbuf._16_8_ = ((Sym_data<64> *)syms)->st_size;\n              symbuf._0_8_ = *(undefined8 *)syms;\n              symbuf._8_8_ = ((Sym_data<64> *)syms)->st_value;\nLAB_0022ef70:\n              symbuf[4] = (char)(iVar6 << 4) + '\x02';\n              goto LAB_0022ef0b;\n            }" if (parenthesized_expression "(bVar9 == 10)" ( (binary_expression "bVar9 == 10" identifier == number_literal) )) (compound_statement "{\n              symbuf._16_8_ = ((Sym_data<64> *)syms)->st_size;\n              symbuf._0_8_ = *(undefined8 *)syms;\n              symbuf._8_8_ = ((Sym_data<64> *)syms)->st_value;\nLAB_0022ef70:\n              symbuf[4] = (char)(iVar6 << 4) + '\x02';\n              goto LAB_0022ef0b;\n            }" { (expression_statement "symbuf._16_8_ = ((Sym_data<64> *)syms)->st_size;" (assignment_expression "symbuf._16_8_ = ((Sym_data<64> *)syms)->st_size" (field_expression "symbuf._16_8_" identifier . field_identifier) = (parenthesized_expression "((Sym_data<64> *)syms)->st_size" ( (field_expression "(Sym_data<64> *)syms)->st_size" (parenthesized_expression "(Sym_data<64> *)syms)" ( (binary_expression "Sym_data<64> *)syms" (binary_expression "Sym_data<64" identifier < number_literal) > (pointer_expression "*)syms" * (ERROR ")" )) identifier)) )) -> field_identifier) ))) ;) (expression_statement "symbuf._0_8_ = *(undefined8 *)syms;" (assignment_expression "symbuf._0_8_ = *(undefined8 *)syms" (field_expression "symbuf._0_8_" identifier . field_identifier) = (pointer_expression "*(undefined8 *)syms" * (cast_expression "(undefined8 *)syms" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "symbuf._8_8_ = ((Sym_data<64> *)syms)->st_value;" (assignment_expression "symbuf._8_8_ = ((Sym_data<64> *)syms)->st_value" (field_expression "symbuf._8_8_" identifier . field_identifier) = (parenthesized_expression "((Sym_data<64> *)syms)->st_value" ( (field_expression "(Sym_data<64> *)syms)->st_value" (parenthesized_expression "(Sym_data<64> *)syms)" ( (binary_expression "Sym_data<64> *)syms" (binary_expression "Sym_data<64" identifier < number_literal) > (pointer_expression "*)syms" * (ERROR ")" )) identifier)) )) -> field_identifier) ))) ;) (labeled_statement "LAB_0022ef70:\n              symbuf[4] = (char)(iVar6 << 4) + '\x02';" statement_identifier : (expression_statement "symbuf[4] = (char)(iVar6 << 4) + '\x02';" (assignment_expression "symbuf[4] = (char)(iVar6 << 4) + '\x02'" (subscript_expression "symbuf[4]" identifier [ number_literal ]) = (binary_expression "(char)(iVar6 << 4) + '\x02'" (cast_expression "(char)(iVar6 << 4)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(iVar6 << 4)" ( (binary_expression "iVar6 << 4" identifier << number_literal) ))) + (char_literal "'\x02'" ' escape_sequence '))) ;)) (goto_statement "goto LAB_0022ef0b;" goto statement_identifier ;) })) (expression_statement "sym_00 = &sym;" (assignment_expression "sym_00 = &sym" identifier = (pointer_expression "&sym" & identifier)) ;) (expression_statement "uVar8 = (ulong)((Sym_data<64> *)syms)->st_name;" (assignment_expression "uVar8 = (ulong)((Sym_data<64> *)syms)->st_name" identifier = (call_expression "(ulong)((Sym_data<64> *)syms)->st_name" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((Sym_data<64> *)syms)->st_name" ( (field_expression "(Sym_data<64> *)syms)->st_name" (parenthesized_expression "(Sym_data<64> *)syms)" ( (binary_expression "Sym_data<64> *)syms" (binary_expression "Sym_data<64" identifier < number_literal) > (pointer_expression "*)syms" * (ERROR ")" )) identifier)) )) -> field_identifier) )))) ;) (expression_statement "pSVar4 = (Sym_data<64> *)syms;" (assignment_expression "pSVar4 = (Sym_data<64> *)syms" identifier = (parenthesized_expression "(Sym_data<64> *)syms" ( (binary_expression "Sym_data<64> *)syms" (binary_expression "Sym_data<64" identifier < number_literal) > (pointer_expression "*)syms" * (ERROR ")" )) identifier)) ))) ;) }))) (expression_statement "sym2.p_ = (Sym_data<64> *)symbuf;" (assignment_expression "sym2.p_ = (Sym_data<64> *)symbuf" (field_expression "sym2.p_" identifier . field_identifier) = (parenthesized_expression "(Sym_data<64> *)symbuf" ( (binary_expression "Sym_data<64> *)symbuf" (binary_expression "Sym_data<64" identifier < number_literal) > (pointer_expression "*)symbuf" * (ERROR ")" )) identifier)) ))) ;) (if_statement "if (uVar8 < sym_name_size) {\n            uVar12 = pSVar4->st_shndx;\n            st_shndx = (uint)uVar12;\n            if (uVar12 < 0xff00) {\n              if (uVar12 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = true;\nLAB_0022ec44:\n              *defined = *defined + 1;\n              if (versym != (uchar *)0x0) {\n                local_bc = *(ushort *)(versym + local_b0 * 2);\n                uVar12 = local_bc & 0x7fff;\n                local_c0 = (uint)uVar12;\n                if (local_c0 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              pcVar7 = Stringpool_template<char>::add\n                                 (&this->namepool_,sym_names + uVar8,true,&name_key);\n              res = add_from_object<64,_false>\n                              (this,(Object *)dynobj,pcVar7,name_key,(char *)0x0,0,false,sym_00,\n                               st_shndx,local_b9,st_shndx);\n            }\n            else {\n              local_b9 = false;\n              if (uVar12 != 0xffff) goto LAB_0022ec44;\n              this_01 = (dynobj->super_Dynobj).super_Object.xindex_;\n              if (this_01 == (Xindex *)0x0) {\n                iVar6 = (*(dynobj->super_Dynobj).super_Object._vptr_Object[0x1b])(dynobj);\n                this_01 = (Xindex *)CONCAT44(extraout_var,iVar6);\n                (dynobj->super_Dynobj).super_Object.xindex_ = this_01;\n              }\n              st_shndx = Xindex::sym_xindex_to_shndx(this_01,(Object *)dynobj,(uint)local_b0);\n              if (st_shndx != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (versym == (uchar *)0x0) {\n                local_b9 = true;\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = true;\n              local_bc = *(ushort *)(versym + local_b0 * 2);\n              uVar12 = local_bc & 0x7fff;\n              local_c0 = (uint)uVar12;\nLAB_0022ed91:\n                    /* try { // try from 0022edb6 to 0022f0c1 has its CatchHandler @ 0022f284 */\n              pcVar7 = Stringpool_template<char>::add\n                                 (&this->namepool_,sym_names + uVar8,true,&name_key_1);\n              if (1 < uVar12) {\n                pcVar11 = "versym for symbol %zu out of range: %u";\n                ppcVar2 = (version_map->\n                          super__Vector_base<char_const*,_std::allocator<char_const*>_>)._M_impl.\n                          _M_start;\n                if ((ulong)uVar12 <\n                    (ulong)((long)(version_map->\n                                  super__Vector_base<char_const*,_std::allocator<char_const*>_>).\n                                  _M_impl._M_finish - (long)ppcVar2 >> 3)) {\n                  pcVar11 = ppcVar2[uVar12];\n                  if (pcVar11 != (char *)0x0) {\n                    pcVar11 = Stringpool_template<char>::add\n                                        (&this->namepool_,pcVar11,true,&name_key);\n                    if (((st_shndx == 0xfff1) && (local_b9 == false)) && (name_key == name_key_1)) {\n                    /* try { // try from 0022f1bf to 0022f1fd has its CatchHandler @ 0022f284 */\n                      res = add_from_object<64,_false>\n                                      (this,(Object *)dynobj,pcVar7,name_key,(char *)0x0,0,false,\n                                       sym_00,0xfff1,false,0xfff1);\n                    }\n                    else {\n                      res = add_from_object<64,_false>\n                                      (this,(Object *)dynobj,pcVar7,name_key_1,pcVar11,name_key,\n                                       (bool)((byte)~(byte)(local_bc >> 8) >> 7 & local_ba),sym_00,\n                                       st_shndx,local_b9,st_shndx);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar11 = "versym for symbol %zu has no name: %u";\n                }\n                pcVar7 = (char *)gettext(pcVar11);\n                Object::error((Object *)dynobj,pcVar7,local_b0,(ulong)local_c0);\n                goto LAB_0022ec88;\n              }\n              res = add_from_object<64,_false>\n                              (this,(Object *)dynobj,pcVar7,name_key_1,(char *)0x0,0,false,sym_00,\n                               st_shndx,local_b9,st_shndx);\n            }\nLAB_0022ee87:\n            if (res != (Sized_symbol<64> *)0x0) {\n              bVar10 = (res->super_Symbol).field_0x3a & 7;\n              if (((st_shndx == 0) || (local_b9 == false)) || ((sym_00->p_->st_info & 0xf) != 1)) {\nLAB_0022eeb4:\n                if (bVar10 == 0) {\n                  if (((res->super_Symbol).field_0x3a & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0022f24f to 0022f253 has its CatchHandler @ 0022f284 */\n                    do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((dynobj == (Sized_dynobj<64,_false> *)(res->super_Symbol).u1_.object) &&\n                     (((sym.p_)->st_other & 3) == 3)) {\n                    puVar1 = &(res->super_Symbol).field_0x3c;\n                    *puVar1 = *puVar1 | 8;\n                  }\n                }\n              }\n              else if (bVar10 == 0) {\n                if (dynobj == (Sized_dynobj<64,_false> *)(res->super_Symbol).u1_.object) {\n                  if (object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                      ._M_impl._M_finish ==\n                      object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                      ._M_impl._M_end_of_storage) {\n                    std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>::\n                    _M_realloc_insert<gold::Sized_symbol<64>*_const&>\n                              (&object_symbols,\n                               (iterator)\n                               object_symbols.\n                               super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                               ._M_impl._M_finish,&res);\n                    bVar10 = (res->super_Symbol).field_0x3a & 7;\n                  }\n                  else {\n                    *object_symbols.\n                     super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                     ._M_impl._M_finish = res;\n                    object_symbols.\n                    super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                    ._M_impl._M_finish =\n                         object_symbols.\n                         super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                         ._M_impl._M_finish + 1;\n                    bVar10 = (res->super_Symbol).field_0x3a & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (sympointers != (Symbols *)0x0) {\n                (sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                _M_impl._M_start[local_b0] = &res->super_Symbol;\n              }\n            }\n          }\n          else {\n            pcVar7 = (char *)gettext("bad symbol name offset %u at %zu");\n            Object::error((Object *)dynobj,pcVar7,uVar8,local_b0);\n          }" if (parenthesized_expression "(uVar8 < sym_name_size)" ( (binary_expression "uVar8 < sym_name_size" identifier < identifier) )) (compound_statement "{\n            uVar12 = pSVar4->st_shndx;\n            st_shndx = (uint)uVar12;\n            if (uVar12 < 0xff00) {\n              if (uVar12 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = true;\nLAB_0022ec44:\n              *defined = *defined + 1;\n              if (versym != (uchar *)0x0) {\n                local_bc = *(ushort *)(versym + local_b0 * 2);\n                uVar12 = local_bc & 0x7fff;\n                local_c0 = (uint)uVar12;\n                if (local_c0 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              pcVar7 = Stringpool_template<char>::add\n                                 (&this->namepool_,sym_names + uVar8,true,&name_key);\n              res = add_from_object<64,_false>\n                              (this,(Object *)dynobj,pcVar7,name_key,(char *)0x0,0,false,sym_00,\n                               st_shndx,local_b9,st_shndx);\n            }\n            else {\n              local_b9 = false;\n              if (uVar12 != 0xffff) goto LAB_0022ec44;\n              this_01 = (dynobj->super_Dynobj).super_Object.xindex_;\n              if (this_01 == (Xindex *)0x0) {\n                iVar6 = (*(dynobj->super_Dynobj).super_Object._vptr_Object[0x1b])(dynobj);\n                this_01 = (Xindex *)CONCAT44(extraout_var,iVar6);\n                (dynobj->super_Dynobj).super_Object.xindex_ = this_01;\n              }\n              st_shndx = Xindex::sym_xindex_to_shndx(this_01,(Object *)dynobj,(uint)local_b0);\n              if (st_shndx != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (versym == (uchar *)0x0) {\n                local_b9 = true;\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = true;\n              local_bc = *(ushort *)(versym + local_b0 * 2);\n              uVar12 = local_bc & 0x7fff;\n              local_c0 = (uint)uVar12;\nLAB_0022ed91:\n                    /* try { // try from 0022edb6 to 0022f0c1 has its CatchHandler @ 0022f284 */\n              pcVar7 = Stringpool_template<char>::add\n                                 (&this->namepool_,sym_names + uVar8,true,&name_key_1);\n              if (1 < uVar12) {\n                pcVar11 = "versym for symbol %zu out of range: %u";\n                ppcVar2 = (version_map->\n                          super__Vector_base<char_const*,_std::allocator<char_const*>_>)._M_impl.\n                          _M_start;\n                if ((ulong)uVar12 <\n                    (ulong)((long)(version_map->\n                                  super__Vector_base<char_const*,_std::allocator<char_const*>_>).\n                                  _M_impl._M_finish - (long)ppcVar2 >> 3)) {\n                  pcVar11 = ppcVar2[uVar12];\n                  if (pcVar11 != (char *)0x0) {\n                    pcVar11 = Stringpool_template<char>::add\n                                        (&this->namepool_,pcVar11,true,&name_key);\n                    if (((st_shndx == 0xfff1) && (local_b9 == false)) && (name_key == name_key_1)) {\n                    /* try { // try from 0022f1bf to 0022f1fd has its CatchHandler @ 0022f284 */\n                      res = add_from_object<64,_false>\n                                      (this,(Object *)dynobj,pcVar7,name_key,(char *)0x0,0,false,\n                                       sym_00,0xfff1,false,0xfff1);\n                    }\n                    else {\n                      res = add_from_object<64,_false>\n                                      (this,(Object *)dynobj,pcVar7,name_key_1,pcVar11,name_key,\n                                       (bool)((byte)~(byte)(local_bc >> 8) >> 7 & local_ba),sym_00,\n                                       st_shndx,local_b9,st_shndx);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar11 = "versym for symbol %zu has no name: %u";\n                }\n                pcVar7 = (char *)gettext(pcVar11);\n                Object::error((Object *)dynobj,pcVar7,local_b0,(ulong)local_c0);\n                goto LAB_0022ec88;\n              }\n              res = add_from_object<64,_false>\n                              (this,(Object *)dynobj,pcVar7,name_key_1,(char *)0x0,0,false,sym_00,\n                               st_shndx,local_b9,st_shndx);\n            }\nLAB_0022ee87:\n            if (res != (Sized_symbol<64> *)0x0) {\n              bVar10 = (res->super_Symbol).field_0x3a & 7;\n              if (((st_shndx == 0) || (local_b9 == false)) || ((sym_00->p_->st_info & 0xf) != 1)) {\nLAB_0022eeb4:\n                if (bVar10 == 0) {\n                  if (((res->super_Symbol).field_0x3a & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0022f24f to 0022f253 has its CatchHandler @ 0022f284 */\n                    do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((dynobj == (Sized_dynobj<64,_false> *)(res->super_Symbol).u1_.object) &&\n                     (((sym.p_)->st_other & 3) == 3)) {\n                    puVar1 = &(res->super_Symbol).field_0x3c;\n                    *puVar1 = *puVar1 | 8;\n                  }\n                }\n              }\n              else if (bVar10 == 0) {\n                if (dynobj == (Sized_dynobj<64,_false> *)(res->super_Symbol).u1_.object) {\n                  if (object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                      ._M_impl._M_finish ==\n                      object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                      ._M_impl._M_end_of_storage) {\n                    std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>::\n                    _M_realloc_insert<gold::Sized_symbol<64>*_const&>\n                              (&object_symbols,\n                               (iterator)\n                               object_symbols.\n                               super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                               ._M_impl._M_finish,&res);\n                    bVar10 = (res->super_Symbol).field_0x3a & 7;\n                  }\n                  else {\n                    *object_symbols.\n                     super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                     ._M_impl._M_finish = res;\n                    object_symbols.\n                    super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                    ._M_impl._M_finish =\n                         object_symbols.\n                         super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                         ._M_impl._M_finish + 1;\n                    bVar10 = (res->super_Symbol).field_0x3a & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (sympointers != (Symbols *)0x0) {\n                (sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                _M_impl._M_start[local_b0] = &res->super_Symbol;\n              }\n            }\n          }" { (expression_statement "uVar12 = pSVar4->st_shndx;" (assignment_expression "uVar12 = pSVar4->st_shndx" identifier = (field_expression "pSVar4->st_shndx" identifier -> field_identifier)) ;) (expression_statement "st_shndx = (uint)uVar12;" (assignment_expression "st_shndx = (uint)uVar12" identifier = (cast_expression "(uint)uVar12" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (uVar12 < 0xff00) {\n              if (uVar12 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = true;\nLAB_0022ec44:\n              *defined = *defined + 1;\n              if (versym != (uchar *)0x0) {\n                local_bc = *(ushort *)(versym + local_b0 * 2);\n                uVar12 = local_bc & 0x7fff;\n                local_c0 = (uint)uVar12;\n                if (local_c0 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              pcVar7 = Stringpool_template<char>::add\n                                 (&this->namepool_,sym_names + uVar8,true,&name_key);\n              res = add_from_object<64,_false>\n                              (this,(Object *)dynobj,pcVar7,name_key,(char *)0x0,0,false,sym_00,\n                               st_shndx,local_b9,st_shndx);\n            }\n            else {\n              local_b9 = false;\n              if (uVar12 != 0xffff) goto LAB_0022ec44;\n              this_01 = (dynobj->super_Dynobj).super_Object.xindex_;\n              if (this_01 == (Xindex *)0x0) {\n                iVar6 = (*(dynobj->super_Dynobj).super_Object._vptr_Object[0x1b])(dynobj);\n                this_01 = (Xindex *)CONCAT44(extraout_var,iVar6);\n                (dynobj->super_Dynobj).super_Object.xindex_ = this_01;\n              }\n              st_shndx = Xindex::sym_xindex_to_shndx(this_01,(Object *)dynobj,(uint)local_b0);\n              if (st_shndx != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (versym == (uchar *)0x0) {\n                local_b9 = true;\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = true;\n              local_bc = *(ushort *)(versym + local_b0 * 2);\n              uVar12 = local_bc & 0x7fff;\n              local_c0 = (uint)uVar12;\nLAB_0022ed91:\n                    /* try { // try from 0022edb6 to 0022f0c1 has its CatchHandler @ 0022f284 */\n              pcVar7 = Stringpool_template<char>::add\n                                 (&this->namepool_,sym_names + uVar8,true,&name_key_1);\n              if (1 < uVar12) {\n                pcVar11 = "versym for symbol %zu out of range: %u";\n                ppcVar2 = (version_map->\n                          super__Vector_base<char_const*,_std::allocator<char_const*>_>)._M_impl.\n                          _M_start;\n                if ((ulong)uVar12 <\n                    (ulong)((long)(version_map->\n                                  super__Vector_base<char_const*,_std::allocator<char_const*>_>).\n                                  _M_impl._M_finish - (long)ppcVar2 >> 3)) {\n                  pcVar11 = ppcVar2[uVar12];\n                  if (pcVar11 != (char *)0x0) {\n                    pcVar11 = Stringpool_template<char>::add\n                                        (&this->namepool_,pcVar11,true,&name_key);\n                    if (((st_shndx == 0xfff1) && (local_b9 == false)) && (name_key == name_key_1)) {\n                    /* try { // try from 0022f1bf to 0022f1fd has its CatchHandler @ 0022f284 */\n                      res = add_from_object<64,_false>\n                                      (this,(Object *)dynobj,pcVar7,name_key,(char *)0x0,0,false,\n                                       sym_00,0xfff1,false,0xfff1);\n                    }\n                    else {\n                      res = add_from_object<64,_false>\n                                      (this,(Object *)dynobj,pcVar7,name_key_1,pcVar11,name_key,\n                                       (bool)((byte)~(byte)(local_bc >> 8) >> 7 & local_ba),sym_00,\n                                       st_shndx,local_b9,st_shndx);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar11 = "versym for symbol %zu has no name: %u";\n                }\n                pcVar7 = (char *)gettext(pcVar11);\n                Object::error((Object *)dynobj,pcVar7,local_b0,(ulong)local_c0);\n                goto LAB_0022ec88;\n              }\n              res = add_from_object<64,_false>\n                              (this,(Object *)dynobj,pcVar7,name_key_1,(char *)0x0,0,false,sym_00,\n                               st_shndx,local_b9,st_shndx);\n            }" if (parenthesized_expression "(uVar12 < 0xff00)" ( (binary_expression "uVar12 < 0xff00" identifier < number_literal) )) (compound_statement "{\n              if (uVar12 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = true;\nLAB_0022ec44:\n              *defined = *defined + 1;\n              if (versym != (uchar *)0x0) {\n                local_bc = *(ushort *)(versym + local_b0 * 2);\n                uVar12 = local_bc & 0x7fff;\n                local_c0 = (uint)uVar12;\n                if (local_c0 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              pcVar7 = Stringpool_template<char>::add\n                                 (&this->namepool_,sym_names + uVar8,true,&name_key);\n              res = add_from_object<64,_false>\n                              (this,(Object *)dynobj,pcVar7,name_key,(char *)0x0,0,false,sym_00,\n                               st_shndx,local_b9,st_shndx);\n            }" { (if_statement "if (uVar12 == 0) goto LAB_0022ed4f;" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0022ed4f;" goto statement_identifier ;)) (labeled_statement "LAB_0022f012:\n              local_b9 = true;" statement_identifier : (expression_statement "local_b9 = true;" (assignment_expression "local_b9 = true" identifier = true) ;)) (labeled_statement "LAB_0022ec44:\n              *defined = *defined + 1;" statement_identifier : (expression_statement "*defined = *defined + 1;" (assignment_expression "*defined = *defined + 1" (pointer_expression "*defined" * identifier) = (binary_expression "*defined + 1" (pointer_expression "*defined" * identifier) + number_literal)) ;)) (if_statement "if (versym != (uchar *)0x0) {\n                local_bc = *(ushort *)(versym + local_b0 * 2);\n                uVar12 = local_bc & 0x7fff;\n                local_c0 = (uint)uVar12;\n                if (local_c0 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }" if (parenthesized_expression "(versym != (uchar *)0x0)" ( (binary_expression "versym != (uchar *)0x0" identifier != (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                local_bc = *(ushort *)(versym + local_b0 * 2);\n                uVar12 = local_bc & 0x7fff;\n                local_c0 = (uint)uVar12;\n                if (local_c0 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }" { (expression_statement "local_bc = *(ushort *)(versym + local_b0 * 2);" (assignment_expression "local_bc = *(ushort *)(versym + local_b0 * 2)" identifier = (pointer_expression "*(ushort *)(versym + local_b0 * 2)" * (cast_expression "(ushort *)(versym + local_b0 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(versym + local_b0 * 2)" ( (binary_expression "versym + local_b0 * 2" identifier + (binary_expression "local_b0 * 2" identifier * number_literal)) ))))) ;) (expression_statement "uVar12 = local_bc & 0x7fff;" (assignment_expression "uVar12 = local_bc & 0x7fff" identifier = (binary_expression "local_bc & 0x7fff" identifier & number_literal)) ;) (expression_statement "local_c0 = (uint)uVar12;" (assignment_expression "local_c0 = (uint)uVar12" identifier = (cast_expression "(uint)uVar12" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (local_c0 == 0) goto LAB_0022ec88;" if (parenthesized_expression "(local_c0 == 0)" ( (binary_expression "local_c0 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0022ec88;" goto statement_identifier ;)) (expression_statement "local_ba = 1;" (assignment_expression "local_ba = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0022ed91;" goto statement_identifier ;) })) (labeled_statement "LAB_0022ef87:\n              pcVar7 = Stringpool_template<char>::add\n                                 (&this->namepool_,sym_names + uVar8,true,&name_key);" statement_identifier : (expression_statement "pcVar7 = Stringpool_template<char>::add\n                                 (&this->namepool_,sym_names + uVar8,true,&name_key);" (assignment_expression "pcVar7 = Stringpool_template<char>::add\n                                 (&this->namepool_,sym_names + uVar8,true,&name_key)" identifier = (binary_expression "Stringpool_template<char>::add\n                                 (&this->namepool_,sym_names + uVar8,true,&name_key)" (binary_expression "Stringpool_template<char" identifier < identifier) > (ERROR "::" : :) (call_expression "add\n                                 (&this->namepool_,sym_names + uVar8,true,&name_key)" identifier (argument_list "(&this->namepool_,sym_names + uVar8,true,&name_key)" ( (pointer_expression "&this->namepool_" & (field_expression "this->namepool_" identifier -> field_identifier)) , (binary_expression "sym_names + uVar8" identifier + identifier) , true , (pointer_expression "&name_key" & identifier) ))))) ;)) (expression_statement "res = add_from_object<64,_false>\n                              (this,(Object *)dynobj,pcVar7,name_key,(char *)0x0,0,false,sym_00,\n                               st_shndx,local_b9,st_shndx);" (comma_expression "res = add_from_object<64,_false>\n                              (this,(Object *)dynobj,pcVar7,name_key,(char *)0x0,0,false,sym_00,\n                               st_shndx,local_b9,st_shndx)" (assignment_expression "res = add_from_object<64" identifier = (binary_expression "add_from_object<64" identifier < number_literal)) , (binary_expression "_false>\n                              (this,(Object *)dynobj,pcVar7,name_key,(char *)0x0,0,false,sym_00,\n                               st_shndx,local_b9,st_shndx)" identifier > (parenthesized_expression "(this,(Object *)dynobj,pcVar7,name_key,(char *)0x0,0,false,sym_00,\n                               st_shndx,local_b9,st_shndx)" ( (comma_expression "this,(Object *)dynobj,pcVar7,name_key,(char *)0x0,0,false,sym_00,\n                               st_shndx,local_b9,st_shndx" identifier , (comma_expression "(Object *)dynobj,pcVar7,name_key,(char *)0x0,0,false,sym_00,\n                               st_shndx,local_b9,st_shndx" (cast_expression "(Object *)dynobj" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (comma_expression "pcVar7,name_key,(char *)0x0,0,false,sym_00,\n                               st_shndx,local_b9,st_shndx" identifier , (comma_expression "name_key,(char *)0x0,0,false,sym_00,\n                               st_shndx,local_b9,st_shndx" identifier , (comma_expression "(char *)0x0,0,false,sym_00,\n                               st_shndx,local_b9,st_shndx" (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , (comma_expression "0,false,sym_00,\n                               st_shndx,local_b9,st_shndx" number_literal , (comma_expression "false,sym_00,\n                               st_shndx,local_b9,st_shndx" false , (comma_expression "sym_00,\n                               st_shndx,local_b9,st_shndx" identifier , (comma_expression "st_shndx,local_b9,st_shndx" identifier , (comma_expression "local_b9,st_shndx" identifier , identifier)))))))))) )))) ;) }) (else_clause "else {\n              local_b9 = false;\n              if (uVar12 != 0xffff) goto LAB_0022ec44;\n              this_01 = (dynobj->super_Dynobj).super_Object.xindex_;\n              if (this_01 == (Xindex *)0x0) {\n                iVar6 = (*(dynobj->super_Dynobj).super_Object._vptr_Object[0x1b])(dynobj);\n                this_01 = (Xindex *)CONCAT44(extraout_var,iVar6);\n                (dynobj->super_Dynobj).super_Object.xindex_ = this_01;\n              }\n              st_shndx = Xindex::sym_xindex_to_shndx(this_01,(Object *)dynobj,(uint)local_b0);\n              if (st_shndx != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (versym == (uchar *)0x0) {\n                local_b9 = true;\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = true;\n              local_bc = *(ushort *)(versym + local_b0 * 2);\n              uVar12 = local_bc & 0x7fff;\n              local_c0 = (uint)uVar12;\nLAB_0022ed91:\n                    /* try { // try from 0022edb6 to 0022f0c1 has its CatchHandler @ 0022f284 */\n              pcVar7 = Stringpool_template<char>::add\n                                 (&this->namepool_,sym_names + uVar8,true,&name_key_1);\n              if (1 < uVar12) {\n                pcVar11 = "versym for symbol %zu out of range: %u";\n                ppcVar2 = (version_map->\n                          super__Vector_base<char_const*,_std::allocator<char_const*>_>)._M_impl.\n                          _M_start;\n                if ((ulong)uVar12 <\n                    (ulong)((long)(version_map->\n                                  super__Vector_base<char_const*,_std::allocator<char_const*>_>).\n                                  _M_impl._M_finish - (long)ppcVar2 >> 3)) {\n                  pcVar11 = ppcVar2[uVar12];\n                  if (pcVar11 != (char *)0x0) {\n                    pcVar11 = Stringpool_template<char>::add\n                                        (&this->namepool_,pcVar11,true,&name_key);\n                    if (((st_shndx == 0xfff1) && (local_b9 == false)) && (name_key == name_key_1)) {\n                    /* try { // try from 0022f1bf to 0022f1fd has its CatchHandler @ 0022f284 */\n                      res = add_from_object<64,_false>\n                                      (this,(Object *)dynobj,pcVar7,name_key,(char *)0x0,0,false,\n                                       sym_00,0xfff1,false,0xfff1);\n                    }\n                    else {\n                      res = add_from_object<64,_false>\n                                      (this,(Object *)dynobj,pcVar7,name_key_1,pcVar11,name_key,\n                                       (bool)((byte)~(byte)(local_bc >> 8) >> 7 & local_ba),sym_00,\n                                       st_shndx,local_b9,st_shndx);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar11 = "versym for symbol %zu has no name: %u";\n                }\n                pcVar7 = (char *)gettext(pcVar11);\n                Object::error((Object *)dynobj,pcVar7,local_b0,(ulong)local_c0);\n                goto LAB_0022ec88;\n              }\n              res = add_from_object<64,_false>\n                              (this,(Object *)dynobj,pcVar7,name_key_1,(char *)0x0,0,false,sym_00,\n                               st_shndx,local_b9,st_shndx);\n            }" else (compound_statement "{\n              local_b9 = false;\n              if (uVar12 != 0xffff) goto LAB_0022ec44;\n              this_01 = (dynobj->super_Dynobj).super_Object.xindex_;\n              if (this_01 == (Xindex *)0x0) {\n                iVar6 = (*(dynobj->super_Dynobj).super_Object._vptr_Object[0x1b])(dynobj);\n                this_01 = (Xindex *)CONCAT44(extraout_var,iVar6);\n                (dynobj->super_Dynobj).super_Object.xindex_ = this_01;\n              }\n              st_shndx = Xindex::sym_xindex_to_shndx(this_01,(Object *)dynobj,(uint)local_b0);\n              if (st_shndx != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (versym == (uchar *)0x0) {\n                local_b9 = true;\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = true;\n              local_bc = *(ushort *)(versym + local_b0 * 2);\n              uVar12 = local_bc & 0x7fff;\n              local_c0 = (uint)uVar12;\nLAB_0022ed91:\n                    /* try { // try from 0022edb6 to 0022f0c1 has its CatchHandler @ 0022f284 */\n              pcVar7 = Stringpool_template<char>::add\n                                 (&this->namepool_,sym_names + uVar8,true,&name_key_1);\n              if (1 < uVar12) {\n                pcVar11 = "versym for symbol %zu out of range: %u";\n                ppcVar2 = (version_map->\n                          super__Vector_base<char_const*,_std::allocator<char_const*>_>)._M_impl.\n                          _M_start;\n                if ((ulong)uVar12 <\n                    (ulong)((long)(version_map->\n                                  super__Vector_base<char_const*,_std::allocator<char_const*>_>).\n                                  _M_impl._M_finish - (long)ppcVar2 >> 3)) {\n                  pcVar11 = ppcVar2[uVar12];\n                  if (pcVar11 != (char *)0x0) {\n                    pcVar11 = Stringpool_template<char>::add\n                                        (&this->namepool_,pcVar11,true,&name_key);\n                    if (((st_shndx == 0xfff1) && (local_b9 == false)) && (name_key == name_key_1)) {\n                    /* try { // try from 0022f1bf to 0022f1fd has its CatchHandler @ 0022f284 */\n                      res = add_from_object<64,_false>\n                                      (this,(Object *)dynobj,pcVar7,name_key,(char *)0x0,0,false,\n                                       sym_00,0xfff1,false,0xfff1);\n                    }\n                    else {\n                      res = add_from_object<64,_false>\n                                      (this,(Object *)dynobj,pcVar7,name_key_1,pcVar11,name_key,\n                                       (bool)((byte)~(byte)(local_bc >> 8) >> 7 & local_ba),sym_00,\n                                       st_shndx,local_b9,st_shndx);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar11 = "versym for symbol %zu has no name: %u";\n                }\n                pcVar7 = (char *)gettext(pcVar11);\n                Object::error((Object *)dynobj,pcVar7,local_b0,(ulong)local_c0);\n                goto LAB_0022ec88;\n              }\n              res = add_from_object<64,_false>\n                              (this,(Object *)dynobj,pcVar7,name_key_1,(char *)0x0,0,false,sym_00,\n                               st_shndx,local_b9,st_shndx);\n            }" { (expression_statement "local_b9 = false;" (assignment_expression "local_b9 = false" identifier = false) ;) (if_statement "if (uVar12 != 0xffff) goto LAB_0022ec44;" if (parenthesized_expression "(uVar12 != 0xffff)" ( (binary_expression "uVar12 != 0xffff" identifier != number_literal) )) (goto_statement "goto LAB_0022ec44;" goto statement_identifier ;)) (expression_statement "this_01 = (dynobj->super_Dynobj).super_Object.xindex_;" (assignment_expression "this_01 = (dynobj->super_Dynobj).super_Object.xindex_" identifier = (field_expression "(dynobj->super_Dynobj).super_Object.xindex_" (field_expression "(dynobj->super_Dynobj).super_Object" (parenthesized_expression "(dynobj->super_Dynobj)" ( (field_expression "dynobj->super_Dynobj" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if (this_01 == (Xindex *)0x0) {\n                iVar6 = (*(dynobj->super_Dynobj).super_Object._vptr_Object[0x1b])(dynobj);\n                this_01 = (Xindex *)CONCAT44(extraout_var,iVar6);\n                (dynobj->super_Dynobj).super_Object.xindex_ = this_01;\n              }" if (parenthesized_expression "(this_01 == (Xindex *)0x0)" ( (binary_expression "this_01 == (Xindex *)0x0" identifier == (cast_expression "(Xindex *)0x0" ( (type_descriptor "Xindex *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                iVar6 = (*(dynobj->super_Dynobj).super_Object._vptr_Object[0x1b])(dynobj);\n                this_01 = (Xindex *)CONCAT44(extraout_var,iVar6);\n                (dynobj->super_Dynobj).super_Object.xindex_ = this_01;\n              }" { (expression_statement "iVar6 = (*(dynobj->super_Dynobj).super_Object._vptr_Object[0x1b])(dynobj);" (assignment_expression "iVar6 = (*(dynobj->super_Dynobj).super_Object._vptr_Object[0x1b])(dynobj)" identifier = (call_expression "(*(dynobj->super_Dynobj).super_Object._vptr_Object[0x1b])(dynobj)" (parenthesized_expression "(*(dynobj->super_Dynobj).super_Object._vptr_Object[0x1b])" ( (pointer_expression "*(dynobj->super_Dynobj).super_Object._vptr_Object[0x1b]" * (subscript_expression "(dynobj->super_Dynobj).super_Object._vptr_Object[0x1b]" (field_expression "(dynobj->super_Dynobj).super_Object._vptr_Object" (field_expression "(dynobj->super_Dynobj).super_Object" (parenthesized_expression "(dynobj->super_Dynobj)" ( (field_expression "dynobj->super_Dynobj" identifier -> field_identifier) )) . field_identifier) . field_identifier) [ number_literal ])) )) (argument_list "(dynobj)" ( identifier )))) ;) (expression_statement "this_01 = (Xindex *)CONCAT44(extraout_var,iVar6);" (assignment_expression "this_01 = (Xindex *)CONCAT44(extraout_var,iVar6)" identifier = (cast_expression "(Xindex *)CONCAT44(extraout_var,iVar6)" ( (type_descriptor "Xindex *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT44(extraout_var,iVar6)" identifier (argument_list "(extraout_var,iVar6)" ( identifier , identifier ))))) ;) (expression_statement "(dynobj->super_Dynobj).super_Object.xindex_ = this_01;" (assignment_expression "(dynobj->super_Dynobj).super_Object.xindex_ = this_01" (field_expression "(dynobj->super_Dynobj).super_Object.xindex_" (field_expression "(dynobj->super_Dynobj).super_Object" (parenthesized_expression "(dynobj->super_Dynobj)" ( (field_expression "dynobj->super_Dynobj" identifier -> field_identifier) )) . field_identifier) . field_identifier) = identifier) ;) })) (ERROR "st_shndx = Xindex::" (assignment_expression "st_shndx = Xindex" identifier = identifier) : :) (expression_statement "sym_xindex_to_shndx(this_01,(Object *)dynobj,(uint)local_b0);" (call_expression "sym_xindex_to_shndx(this_01,(Object *)dynobj,(uint)local_b0)" identifier (argument_list "(this_01,(Object *)dynobj,(uint)local_b0)" ( identifier , (cast_expression "(Object *)dynobj" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(uint)local_b0" ( (type_descriptor "uint" type_identifier) ) identifier) ))) ;) (if_statement "if (st_shndx != 0) goto LAB_0022f012;" if (parenthesized_expression "(st_shndx != 0)" ( (binary_expression "st_shndx != 0" identifier != number_literal) )) (goto_statement "goto LAB_0022f012;" goto statement_identifier ;)) (labeled_statement "LAB_0022ed4f:\n              if (versym == (uchar *)0x0) {\n                local_b9 = true;\n                goto LAB_0022ef87;\n              }" statement_identifier : (if_statement "if (versym == (uchar *)0x0) {\n                local_b9 = true;\n                goto LAB_0022ef87;\n              }" if (parenthesized_expression "(versym == (uchar *)0x0)" ( (binary_expression "versym == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                local_b9 = true;\n                goto LAB_0022ef87;\n              }" { (expression_statement "local_b9 = true;" (assignment_expression "local_b9 = true" identifier = true) ;) (goto_statement "goto LAB_0022ef87;" goto statement_identifier ;) }))) (expression_statement "local_ba = 0;" (assignment_expression "local_ba = 0" identifier = number_literal) ;) (expression_statement "local_b9 = true;" (assignment_expression "local_b9 = true" identifier = true) ;) (expression_statement "local_bc = *(ushort *)(versym + local_b0 * 2);" (assignment_expression "local_bc = *(ushort *)(versym + local_b0 * 2)" identifier = (pointer_expression "*(ushort *)(versym + local_b0 * 2)" * (cast_expression "(ushort *)(versym + local_b0 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(versym + local_b0 * 2)" ( (binary_expression "versym + local_b0 * 2" identifier + (binary_expression "local_b0 * 2" identifier * number_literal)) ))))) ;) (expression_statement "uVar12 = local_bc & 0x7fff;" (assignment_expression "uVar12 = local_bc & 0x7fff" identifier = (binary_expression "local_bc & 0x7fff" identifier & number_literal)) ;) (expression_statement "local_c0 = (uint)uVar12;" (assignment_expression "local_c0 = (uint)uVar12" identifier = (cast_expression "(uint)uVar12" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (labeled_statement "LAB_0022ed91:\n                    /* try { // try from 0022edb6 to 0022f0c1 has its CatchHandler @ 0022f284 */\n              pcVar7 = Stringpool_template<char>::add\n                                 (&this->namepool_,sym_names + uVar8,true,&name_key_1);" statement_identifier : comment (expression_statement "pcVar7 = Stringpool_template<char>::add\n                                 (&this->namepool_,sym_names + uVar8,true,&name_key_1);" (assignment_expression "pcVar7 = Stringpool_template<char>::add\n                                 (&this->namepool_,sym_names + uVar8,true,&name_key_1)" identifier = (binary_expression "Stringpool_template<char>::add\n                                 (&this->namepool_,sym_names + uVar8,true,&name_key_1)" (binary_expression "Stringpool_template<char" identifier < identifier) > (ERROR "::" : :) (call_expression "add\n                                 (&this->namepool_,sym_names + uVar8,true,&name_key_1)" identifier (argument_list "(&this->namepool_,sym_names + uVar8,true,&name_key_1)" ( (pointer_expression "&this->namepool_" & (field_expression "this->namepool_" identifier -> field_identifier)) , (binary_expression "sym_names + uVar8" identifier + identifier) , true , (pointer_expression "&name_key_1" & identifier) ))))) ;)) (if_statement "if (1 < uVar12) {\n                pcVar11 = "versym for symbol %zu out of range: %u";\n                ppcVar2 = (version_map->\n                          super__Vector_base<char_const*,_std::allocator<char_const*>_>)._M_impl.\n                          _M_start;\n                if ((ulong)uVar12 <\n                    (ulong)((long)(version_map->\n                                  super__Vector_base<char_const*,_std::allocator<char_const*>_>).\n                                  _M_impl._M_finish - (long)ppcVar2 >> 3)) {\n                  pcVar11 = ppcVar2[uVar12];\n                  if (pcVar11 != (char *)0x0) {\n                    pcVar11 = Stringpool_template<char>::add\n                                        (&this->namepool_,pcVar11,true,&name_key);\n                    if (((st_shndx == 0xfff1) && (local_b9 == false)) && (name_key == name_key_1)) {\n                    /* try { // try from 0022f1bf to 0022f1fd has its CatchHandler @ 0022f284 */\n                      res = add_from_object<64,_false>\n                                      (this,(Object *)dynobj,pcVar7,name_key,(char *)0x0,0,false,\n                                       sym_00,0xfff1,false,0xfff1);\n                    }\n                    else {\n                      res = add_from_object<64,_false>\n                                      (this,(Object *)dynobj,pcVar7,name_key_1,pcVar11,name_key,\n                                       (bool)((byte)~(byte)(local_bc >> 8) >> 7 & local_ba),sym_00,\n                                       st_shndx,local_b9,st_shndx);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar11 = "versym for symbol %zu has no name: %u";\n                }\n                pcVar7 = (char *)gettext(pcVar11);\n                Object::error((Object *)dynobj,pcVar7,local_b0,(ulong)local_c0);\n                goto LAB_0022ec88;\n              }" if (parenthesized_expression "(1 < uVar12)" ( (binary_expression "1 < uVar12" number_literal < identifier) )) (compound_statement "{\n                pcVar11 = "versym for symbol %zu out of range: %u";\n                ppcVar2 = (version_map->\n                          super__Vector_base<char_const*,_std::allocator<char_const*>_>)._M_impl.\n                          _M_start;\n                if ((ulong)uVar12 <\n                    (ulong)((long)(version_map->\n                                  super__Vector_base<char_const*,_std::allocator<char_const*>_>).\n                                  _M_impl._M_finish - (long)ppcVar2 >> 3)) {\n                  pcVar11 = ppcVar2[uVar12];\n                  if (pcVar11 != (char *)0x0) {\n                    pcVar11 = Stringpool_template<char>::add\n                                        (&this->namepool_,pcVar11,true,&name_key);\n                    if (((st_shndx == 0xfff1) && (local_b9 == false)) && (name_key == name_key_1)) {\n                    /* try { // try from 0022f1bf to 0022f1fd has its CatchHandler @ 0022f284 */\n                      res = add_from_object<64,_false>\n                                      (this,(Object *)dynobj,pcVar7,name_key,(char *)0x0,0,false,\n                                       sym_00,0xfff1,false,0xfff1);\n                    }\n                    else {\n                      res = add_from_object<64,_false>\n                                      (this,(Object *)dynobj,pcVar7,name_key_1,pcVar11,name_key,\n                                       (bool)((byte)~(byte)(local_bc >> 8) >> 7 & local_ba),sym_00,\n                                       st_shndx,local_b9,st_shndx);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar11 = "versym for symbol %zu has no name: %u";\n                }\n                pcVar7 = (char *)gettext(pcVar11);\n                Object::error((Object *)dynobj,pcVar7,local_b0,(ulong)local_c0);\n                goto LAB_0022ec88;\n              }" { (expression_statement "pcVar11 = "versym for symbol %zu out of range: %u";" (assignment_expression "pcVar11 = "versym for symbol %zu out of range: %u"" identifier = (string_literal ""versym for symbol %zu out of range: %u"" " string_content ")) ;) (expression_statement "ppcVar2 = (version_map->\n                          super__Vector_base<char_const*,_std::allocator<char_const*>_>)._M_impl.\n                          _M_start;" (assignment_expression "ppcVar2 = (version_map->\n                          super__Vector_base<char_const*,_std::allocator<char_const*>_>)._M_impl.\n                          _M_start" identifier = (field_expression "(version_map->\n                          super__Vector_base<char_const*,_std::allocator<char_const*>_>)._M_impl.\n                          _M_start" (field_expression "(version_map->\n                          super__Vector_base<char_const*,_std::allocator<char_const*>_>)._M_impl" (parenthesized_expression "(version_map->\n                          super__Vector_base<char_const*,_std::allocator<char_const*>_>)" ( (ERROR "version_map->\n                          super__Vector_base<char_const*,_std::" (comma_expression "version_map->\n                          super__Vector_base<char_const*,_std" (binary_expression "version_map->\n                          super__Vector_base<char_const" (field_expression "version_map->\n                          super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "*" *) , identifier) : :) (binary_expression "allocator<char_const*>_>" (binary_expression "allocator<char_const*>_" (binary_expression "allocator<char_const" identifier < identifier) (ERROR "*" *) > identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if ((ulong)uVar12 <\n                    (ulong)((long)(version_map->\n                                  super__Vector_base<char_const*,_std::allocator<char_const*>_>).\n                                  _M_impl._M_finish - (long)ppcVar2 >> 3)) {\n                  pcVar11 = ppcVar2[uVar12];\n                  if (pcVar11 != (char *)0x0) {\n                    pcVar11 = Stringpool_template<char>::add\n                                        (&this->namepool_,pcVar11,true,&name_key);\n                    if (((st_shndx == 0xfff1) && (local_b9 == false)) && (name_key == name_key_1)) {\n                    /* try { // try from 0022f1bf to 0022f1fd has its CatchHandler @ 0022f284 */\n                      res = add_from_object<64,_false>\n                                      (this,(Object *)dynobj,pcVar7,name_key,(char *)0x0,0,false,\n                                       sym_00,0xfff1,false,0xfff1);\n                    }\n                    else {\n                      res = add_from_object<64,_false>\n                                      (this,(Object *)dynobj,pcVar7,name_key_1,pcVar11,name_key,\n                                       (bool)((byte)~(byte)(local_bc >> 8) >> 7 & local_ba),sym_00,\n                                       st_shndx,local_b9,st_shndx);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar11 = "versym for symbol %zu has no name: %u";\n                }" if (parenthesized_expression "((ulong)uVar12 <\n                    (ulong)((long)(version_map->\n                                  super__Vector_base<char_const*,_std::allocator<char_const*>_>).\n                                  _M_impl._M_finish - (long)ppcVar2 >> 3))" ( (binary_expression "(ulong)uVar12 <\n                    (ulong)((long)(version_map->\n                                  super__Vector_base<char_const*,_std::allocator<char_const*>_>).\n                                  _M_impl._M_finish - (long)ppcVar2 >> 3)" (cast_expression "(ulong)uVar12" ( (type_descriptor "ulong" type_identifier) ) identifier) < (call_expression "(ulong)((long)(version_map->\n                                  super__Vector_base<char_const*,_std::allocator<char_const*>_>).\n                                  _M_impl._M_finish - (long)ppcVar2 >> 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((long)(version_map->\n                                  super__Vector_base<char_const*,_std::allocator<char_const*>_>).\n                                  _M_impl._M_finish - (long)ppcVar2 >> 3)" ( (binary_expression "(long)(version_map->\n                                  super__Vector_base<char_const*,_std::allocator<char_const*>_>).\n                                  _M_impl._M_finish - (long)ppcVar2 >> 3" (binary_expression "(long)(version_map->\n                                  super__Vector_base<char_const*,_std::allocator<char_const*>_>).\n                                  _M_impl._M_finish - (long)ppcVar2" (cast_expression "(long)(version_map->\n                                  super__Vector_base<char_const*,_std::allocator<char_const*>_>).\n                                  _M_impl._M_finish" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "(version_map->\n                                  super__Vector_base<char_const*,_std::allocator<char_const*>_>).\n                                  _M_impl._M_finish" (field_expression "(version_map->\n                                  super__Vector_base<char_const*,_std::allocator<char_const*>_>).\n                                  _M_impl" (parenthesized_expression "(version_map->\n                                  super__Vector_base<char_const*,_std::allocator<char_const*>_>)" ( (ERROR "version_map->\n                                  super__Vector_base<char_const*,_std::" (comma_expression "version_map->\n                                  super__Vector_base<char_const*,_std" (binary_expression "version_map->\n                                  super__Vector_base<char_const" (field_expression "version_map->\n                                  super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "*" *) , identifier) : :) (binary_expression "allocator<char_const*>_>" (binary_expression "allocator<char_const*>_" (binary_expression "allocator<char_const" identifier < identifier) (ERROR "*" *) > identifier) > identifier) )) . field_identifier) . field_identifier)) - (cast_expression "(long)ppcVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) >> number_literal) )))) )) (compound_statement "{\n                  pcVar11 = ppcVar2[uVar12];\n                  if (pcVar11 != (char *)0x0) {\n                    pcVar11 = Stringpool_template<char>::add\n                                        (&this->namepool_,pcVar11,true,&name_key);\n                    if (((st_shndx == 0xfff1) && (local_b9 == false)) && (name_key == name_key_1)) {\n                    /* try { // try from 0022f1bf to 0022f1fd has its CatchHandler @ 0022f284 */\n                      res = add_from_object<64,_false>\n                                      (this,(Object *)dynobj,pcVar7,name_key,(char *)0x0,0,false,\n                                       sym_00,0xfff1,false,0xfff1);\n                    }\n                    else {\n                      res = add_from_object<64,_false>\n                                      (this,(Object *)dynobj,pcVar7,name_key_1,pcVar11,name_key,\n                                       (bool)((byte)~(byte)(local_bc >> 8) >> 7 & local_ba),sym_00,\n                                       st_shndx,local_b9,st_shndx);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar11 = "versym for symbol %zu has no name: %u";\n                }" { (expression_statement "pcVar11 = ppcVar2[uVar12];" (assignment_expression "pcVar11 = ppcVar2[uVar12]" identifier = (subscript_expression "ppcVar2[uVar12]" identifier [ identifier ])) ;) (if_statement "if (pcVar11 != (char *)0x0) {\n                    pcVar11 = Stringpool_template<char>::add\n                                        (&this->namepool_,pcVar11,true,&name_key);\n                    if (((st_shndx == 0xfff1) && (local_b9 == false)) && (name_key == name_key_1)) {\n                    /* try { // try from 0022f1bf to 0022f1fd has its CatchHandler @ 0022f284 */\n                      res = add_from_object<64,_false>\n                                      (this,(Object *)dynobj,pcVar7,name_key,(char *)0x0,0,false,\n                                       sym_00,0xfff1,false,0xfff1);\n                    }\n                    else {\n                      res = add_from_object<64,_false>\n                                      (this,(Object *)dynobj,pcVar7,name_key_1,pcVar11,name_key,\n                                       (bool)((byte)~(byte)(local_bc >> 8) >> 7 & local_ba),sym_00,\n                                       st_shndx,local_b9,st_shndx);\n                    }\n                    goto LAB_0022ee87;\n                  }" if (parenthesized_expression "(pcVar11 != (char *)0x0)" ( (binary_expression "pcVar11 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    pcVar11 = Stringpool_template<char>::add\n                                        (&this->namepool_,pcVar11,true,&name_key);\n                    if (((st_shndx == 0xfff1) && (local_b9 == false)) && (name_key == name_key_1)) {\n                    /* try { // try from 0022f1bf to 0022f1fd has its CatchHandler @ 0022f284 */\n                      res = add_from_object<64,_false>\n                                      (this,(Object *)dynobj,pcVar7,name_key,(char *)0x0,0,false,\n                                       sym_00,0xfff1,false,0xfff1);\n                    }\n                    else {\n                      res = add_from_object<64,_false>\n                                      (this,(Object *)dynobj,pcVar7,name_key_1,pcVar11,name_key,\n                                       (bool)((byte)~(byte)(local_bc >> 8) >> 7 & local_ba),sym_00,\n                                       st_shndx,local_b9,st_shndx);\n                    }\n                    goto LAB_0022ee87;\n                  }" { (expression_statement "pcVar11 = Stringpool_template<char>::add\n                                        (&this->namepool_,pcVar11,true,&name_key);" (assignment_expression "pcVar11 = Stringpool_template<char>::add\n                                        (&this->namepool_,pcVar11,true,&name_key)" identifier = (binary_expression "Stringpool_template<char>::add\n                                        (&this->namepool_,pcVar11,true,&name_key)" (binary_expression "Stringpool_template<char" identifier < identifier) > (ERROR "::" : :) (call_expression "add\n                                        (&this->namepool_,pcVar11,true,&name_key)" identifier (argument_list "(&this->namepool_,pcVar11,true,&name_key)" ( (pointer_expression "&this->namepool_" & (field_expression "this->namepool_" identifier -> field_identifier)) , identifier , true , (pointer_expression "&name_key" & identifier) ))))) ;) (if_statement "if (((st_shndx == 0xfff1) && (local_b9 == false)) && (name_key == name_key_1)) {\n                    /* try { // try from 0022f1bf to 0022f1fd has its CatchHandler @ 0022f284 */\n                      res = add_from_object<64,_false>\n                                      (this,(Object *)dynobj,pcVar7,name_key,(char *)0x0,0,false,\n                                       sym_00,0xfff1,false,0xfff1);\n                    }\n                    else {\n                      res = add_from_object<64,_false>\n                                      (this,(Object *)dynobj,pcVar7,name_key_1,pcVar11,name_key,\n                                       (bool)((byte)~(byte)(local_bc >> 8) >> 7 & local_ba),sym_00,\n                                       st_shndx,local_b9,st_shndx);\n                    }" if (parenthesized_expression "(((st_shndx == 0xfff1) && (local_b9 == false)) && (name_key == name_key_1))" ( (binary_expression "((st_shndx == 0xfff1) && (local_b9 == false)) && (name_key == name_key_1)" (parenthesized_expression "((st_shndx == 0xfff1) && (local_b9 == false))" ( (binary_expression "(st_shndx == 0xfff1) && (local_b9 == false)" (parenthesized_expression "(st_shndx == 0xfff1)" ( (binary_expression "st_shndx == 0xfff1" identifier == number_literal) )) && (parenthesized_expression "(local_b9 == false)" ( (binary_expression "local_b9 == false" identifier == false) ))) )) && (parenthesized_expression "(name_key == name_key_1)" ( (binary_expression "name_key == name_key_1" identifier == identifier) ))) )) (compound_statement "{\n                    /* try { // try from 0022f1bf to 0022f1fd has its CatchHandler @ 0022f284 */\n                      res = add_from_object<64,_false>\n                                      (this,(Object *)dynobj,pcVar7,name_key,(char *)0x0,0,false,\n                                       sym_00,0xfff1,false,0xfff1);\n                    }" { comment (expression_statement "res = add_from_object<64,_false>\n                                      (this,(Object *)dynobj,pcVar7,name_key,(char *)0x0,0,false,\n                                       sym_00,0xfff1,false,0xfff1);" (comma_expression "res = add_from_object<64,_false>\n                                      (this,(Object *)dynobj,pcVar7,name_key,(char *)0x0,0,false,\n                                       sym_00,0xfff1,false,0xfff1)" (assignment_expression "res = add_from_object<64" identifier = (binary_expression "add_from_object<64" identifier < number_literal)) , (binary_expression "_false>\n                                      (this,(Object *)dynobj,pcVar7,name_key,(char *)0x0,0,false,\n                                       sym_00,0xfff1,false,0xfff1)" identifier > (parenthesized_expression "(this,(Object *)dynobj,pcVar7,name_key,(char *)0x0,0,false,\n                                       sym_00,0xfff1,false,0xfff1)" ( (comma_expression "this,(Object *)dynobj,pcVar7,name_key,(char *)0x0,0,false,\n                                       sym_00,0xfff1,false,0xfff1" identifier , (comma_expression "(Object *)dynobj,pcVar7,name_key,(char *)0x0,0,false,\n                                       sym_00,0xfff1,false,0xfff1" (cast_expression "(Object *)dynobj" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (comma_expression "pcVar7,name_key,(char *)0x0,0,false,\n                                       sym_00,0xfff1,false,0xfff1" identifier , (comma_expression "name_key,(char *)0x0,0,false,\n                                       sym_00,0xfff1,false,0xfff1" identifier , (comma_expression "(char *)0x0,0,false,\n                                       sym_00,0xfff1,false,0xfff1" (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , (comma_expression "0,false,\n                                       sym_00,0xfff1,false,0xfff1" number_literal , (comma_expression "false,\n                                       sym_00,0xfff1,false,0xfff1" false , (comma_expression "sym_00,0xfff1,false,0xfff1" identifier , (comma_expression "0xfff1,false,0xfff1" number_literal , (comma_expression "false,0xfff1" false , number_literal)))))))))) )))) ;) }) (else_clause "else {\n                      res = add_from_object<64,_false>\n                                      (this,(Object *)dynobj,pcVar7,name_key_1,pcVar11,name_key,\n                                       (bool)((byte)~(byte)(local_bc >> 8) >> 7 & local_ba),sym_00,\n                                       st_shndx,local_b9,st_shndx);\n                    }" else (compound_statement "{\n                      res = add_from_object<64,_false>\n                                      (this,(Object *)dynobj,pcVar7,name_key_1,pcVar11,name_key,\n                                       (bool)((byte)~(byte)(local_bc >> 8) >> 7 & local_ba),sym_00,\n                                       st_shndx,local_b9,st_shndx);\n                    }" { (expression_statement "res = add_from_object<64,_false>\n                                      (this,(Object *)dynobj,pcVar7,name_key_1,pcVar11,name_key,\n                                       (bool)((byte)~(byte)(local_bc >> 8) >> 7 & local_ba),sym_00,\n                                       st_shndx,local_b9,st_shndx);" (comma_expression "res = add_from_object<64,_false>\n                                      (this,(Object *)dynobj,pcVar7,name_key_1,pcVar11,name_key,\n                                       (bool)((byte)~(byte)(local_bc >> 8) >> 7 & local_ba),sym_00,\n                                       st_shndx,local_b9,st_shndx)" (assignment_expression "res = add_from_object<64" identifier = (binary_expression "add_from_object<64" identifier < number_literal)) , (binary_expression "_false>\n                                      (this,(Object *)dynobj,pcVar7,name_key_1,pcVar11,name_key,\n                                       (bool)((byte)~(byte)(local_bc >> 8) >> 7 & local_ba),sym_00,\n                                       st_shndx,local_b9,st_shndx)" identifier > (parenthesized_expression "(this,(Object *)dynobj,pcVar7,name_key_1,pcVar11,name_key,\n                                       (bool)((byte)~(byte)(local_bc >> 8) >> 7 & local_ba),sym_00,\n                                       st_shndx,local_b9,st_shndx)" ( (comma_expression "this,(Object *)dynobj,pcVar7,name_key_1,pcVar11,name_key,\n                                       (bool)((byte)~(byte)(local_bc >> 8) >> 7 & local_ba),sym_00,\n                                       st_shndx,local_b9,st_shndx" identifier , (comma_expression "(Object *)dynobj,pcVar7,name_key_1,pcVar11,name_key,\n                                       (bool)((byte)~(byte)(local_bc >> 8) >> 7 & local_ba),sym_00,\n                                       st_shndx,local_b9,st_shndx" (cast_expression "(Object *)dynobj" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (comma_expression "pcVar7,name_key_1,pcVar11,name_key,\n                                       (bool)((byte)~(byte)(local_bc >> 8) >> 7 & local_ba),sym_00,\n                                       st_shndx,local_b9,st_shndx" identifier , (comma_expression "name_key_1,pcVar11,name_key,\n                                       (bool)((byte)~(byte)(local_bc >> 8) >> 7 & local_ba),sym_00,\n                                       st_shndx,local_b9,st_shndx" identifier , (comma_expression "pcVar11,name_key,\n                                       (bool)((byte)~(byte)(local_bc >> 8) >> 7 & local_ba),sym_00,\n                                       st_shndx,local_b9,st_shndx" identifier , (comma_expression "name_key,\n                                       (bool)((byte)~(byte)(local_bc >> 8) >> 7 & local_ba),sym_00,\n                                       st_shndx,local_b9,st_shndx" identifier , (comma_expression "(bool)((byte)~(byte)(local_bc >> 8) >> 7 & local_ba),sym_00,\n                                       st_shndx,local_b9,st_shndx" (cast_expression "(bool)((byte)~(byte)(local_bc >> 8) >> 7 & local_ba)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "((byte)~(byte)(local_bc >> 8) >> 7 & local_ba)" ( (binary_expression "(byte)~(byte)(local_bc >> 8) >> 7 & local_ba" (binary_expression "(byte)~(byte)(local_bc >> 8) >> 7" (cast_expression "(byte)~(byte)(local_bc >> 8)" ( (type_descriptor "byte" type_identifier) ) (unary_expression "~(byte)(local_bc >> 8)" ~ (call_expression "(byte)(local_bc >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(local_bc >> 8)" ( (binary_expression "local_bc >> 8" identifier >> number_literal) ))))) >> number_literal) & identifier) ))) , (comma_expression "sym_00,\n                                       st_shndx,local_b9,st_shndx" identifier , (comma_expression "st_shndx,local_b9,st_shndx" identifier , (comma_expression "local_b9,st_shndx" identifier , identifier)))))))))) )))) ;) }))) (goto_statement "goto LAB_0022ee87;" goto statement_identifier ;) })) (expression_statement "pcVar11 = "versym for symbol %zu has no name: %u";" (assignment_expression "pcVar11 = "versym for symbol %zu has no name: %u"" identifier = (string_literal ""versym for symbol %zu has no name: %u"" " string_content ")) ;) })) (expression_statement "pcVar7 = (char *)gettext(pcVar11);" (assignment_expression "pcVar7 = (char *)gettext(pcVar11)" identifier = (cast_expression "(char *)gettext(pcVar11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext(pcVar11)" identifier (argument_list "(pcVar11)" ( identifier ))))) ;) (labeled_statement "Object::error((Object *)dynobj,pcVar7,local_b0,(ulong)local_c0);" statement_identifier : (ERROR ":" :) (expression_statement "error((Object *)dynobj,pcVar7,local_b0,(ulong)local_c0);" (call_expression "error((Object *)dynobj,pcVar7,local_b0,(ulong)local_c0)" identifier (argument_list "((Object *)dynobj,pcVar7,local_b0,(ulong)local_c0)" ( (cast_expression "(Object *)dynobj" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier , (cast_expression "(ulong)local_c0" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;)) (goto_statement "goto LAB_0022ec88;" goto statement_identifier ;) })) (expression_statement "res = add_from_object<64,_false>\n                              (this,(Object *)dynobj,pcVar7,name_key_1,(char *)0x0,0,false,sym_00,\n                               st_shndx,local_b9,st_shndx);" (comma_expression "res = add_from_object<64,_false>\n                              (this,(Object *)dynobj,pcVar7,name_key_1,(char *)0x0,0,false,sym_00,\n                               st_shndx,local_b9,st_shndx)" (assignment_expression "res = add_from_object<64" identifier = (binary_expression "add_from_object<64" identifier < number_literal)) , (binary_expression "_false>\n                              (this,(Object *)dynobj,pcVar7,name_key_1,(char *)0x0,0,false,sym_00,\n                               st_shndx,local_b9,st_shndx)" identifier > (parenthesized_expression "(this,(Object *)dynobj,pcVar7,name_key_1,(char *)0x0,0,false,sym_00,\n                               st_shndx,local_b9,st_shndx)" ( (comma_expression "this,(Object *)dynobj,pcVar7,name_key_1,(char *)0x0,0,false,sym_00,\n                               st_shndx,local_b9,st_shndx" identifier , (comma_expression "(Object *)dynobj,pcVar7,name_key_1,(char *)0x0,0,false,sym_00,\n                               st_shndx,local_b9,st_shndx" (cast_expression "(Object *)dynobj" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (comma_expression "pcVar7,name_key_1,(char *)0x0,0,false,sym_00,\n                               st_shndx,local_b9,st_shndx" identifier , (comma_expression "name_key_1,(char *)0x0,0,false,sym_00,\n                               st_shndx,local_b9,st_shndx" identifier , (comma_expression "(char *)0x0,0,false,sym_00,\n                               st_shndx,local_b9,st_shndx" (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , (comma_expression "0,false,sym_00,\n                               st_shndx,local_b9,st_shndx" number_literal , (comma_expression "false,sym_00,\n                               st_shndx,local_b9,st_shndx" false , (comma_expression "sym_00,\n                               st_shndx,local_b9,st_shndx" identifier , (comma_expression "st_shndx,local_b9,st_shndx" identifier , (comma_expression "local_b9,st_shndx" identifier , identifier)))))))))) )))) ;) }))) (labeled_statement "LAB_0022ee87:\n            if (res != (Sized_symbol<64> *)0x0) {\n              bVar10 = (res->super_Symbol).field_0x3a & 7;\n              if (((st_shndx == 0) || (local_b9 == false)) || ((sym_00->p_->st_info & 0xf) != 1)) {\nLAB_0022eeb4:\n                if (bVar10 == 0) {\n                  if (((res->super_Symbol).field_0x3a & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0022f24f to 0022f253 has its CatchHandler @ 0022f284 */\n                    do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((dynobj == (Sized_dynobj<64,_false> *)(res->super_Symbol).u1_.object) &&\n                     (((sym.p_)->st_other & 3) == 3)) {\n                    puVar1 = &(res->super_Symbol).field_0x3c;\n                    *puVar1 = *puVar1 | 8;\n                  }\n                }\n              }\n              else if (bVar10 == 0) {\n                if (dynobj == (Sized_dynobj<64,_false> *)(res->super_Symbol).u1_.object) {\n                  if (object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                      ._M_impl._M_finish ==\n                      object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                      ._M_impl._M_end_of_storage) {\n                    std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>::\n                    _M_realloc_insert<gold::Sized_symbol<64>*_const&>\n                              (&object_symbols,\n                               (iterator)\n                               object_symbols.\n                               super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                               ._M_impl._M_finish,&res);\n                    bVar10 = (res->super_Symbol).field_0x3a & 7;\n                  }\n                  else {\n                    *object_symbols.\n                     super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                     ._M_impl._M_finish = res;\n                    object_symbols.\n                    super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                    ._M_impl._M_finish =\n                         object_symbols.\n                         super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                         ._M_impl._M_finish + 1;\n                    bVar10 = (res->super_Symbol).field_0x3a & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (sympointers != (Symbols *)0x0) {\n                (sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                _M_impl._M_start[local_b0] = &res->super_Symbol;\n              }\n            }" statement_identifier : (if_statement "if (res != (Sized_symbol<64> *)0x0) {\n              bVar10 = (res->super_Symbol).field_0x3a & 7;\n              if (((st_shndx == 0) || (local_b9 == false)) || ((sym_00->p_->st_info & 0xf) != 1)) {\nLAB_0022eeb4:\n                if (bVar10 == 0) {\n                  if (((res->super_Symbol).field_0x3a & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0022f24f to 0022f253 has its CatchHandler @ 0022f284 */\n                    do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((dynobj == (Sized_dynobj<64,_false> *)(res->super_Symbol).u1_.object) &&\n                     (((sym.p_)->st_other & 3) == 3)) {\n                    puVar1 = &(res->super_Symbol).field_0x3c;\n                    *puVar1 = *puVar1 | 8;\n                  }\n                }\n              }\n              else if (bVar10 == 0) {\n                if (dynobj == (Sized_dynobj<64,_false> *)(res->super_Symbol).u1_.object) {\n                  if (object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                      ._M_impl._M_finish ==\n                      object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                      ._M_impl._M_end_of_storage) {\n                    std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>::\n                    _M_realloc_insert<gold::Sized_symbol<64>*_const&>\n                              (&object_symbols,\n                               (iterator)\n                               object_symbols.\n                               super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                               ._M_impl._M_finish,&res);\n                    bVar10 = (res->super_Symbol).field_0x3a & 7;\n                  }\n                  else {\n                    *object_symbols.\n                     super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                     ._M_impl._M_finish = res;\n                    object_symbols.\n                    super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                    ._M_impl._M_finish =\n                         object_symbols.\n                         super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                         ._M_impl._M_finish + 1;\n                    bVar10 = (res->super_Symbol).field_0x3a & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (sympointers != (Symbols *)0x0) {\n                (sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                _M_impl._M_start[local_b0] = &res->super_Symbol;\n              }\n            }" if (parenthesized_expression "(res != (Sized_symbol<64> *)0x0)" ( (binary_expression "res != (Sized_symbol<64> *)0x0)" identifier != (parenthesized_expression "(Sized_symbol<64> *)0x0)" ( (binary_expression "Sized_symbol<64> *)0x0" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "*)0x0" * (ERROR ")" )) number_literal)) ))) )) (compound_statement "{\n              bVar10 = (res->super_Symbol).field_0x3a & 7;\n              if (((st_shndx == 0) || (local_b9 == false)) || ((sym_00->p_->st_info & 0xf) != 1)) {\nLAB_0022eeb4:\n                if (bVar10 == 0) {\n                  if (((res->super_Symbol).field_0x3a & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0022f24f to 0022f253 has its CatchHandler @ 0022f284 */\n                    do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((dynobj == (Sized_dynobj<64,_false> *)(res->super_Symbol).u1_.object) &&\n                     (((sym.p_)->st_other & 3) == 3)) {\n                    puVar1 = &(res->super_Symbol).field_0x3c;\n                    *puVar1 = *puVar1 | 8;\n                  }\n                }\n              }\n              else if (bVar10 == 0) {\n                if (dynobj == (Sized_dynobj<64,_false> *)(res->super_Symbol).u1_.object) {\n                  if (object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                      ._M_impl._M_finish ==\n                      object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                      ._M_impl._M_end_of_storage) {\n                    std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>::\n                    _M_realloc_insert<gold::Sized_symbol<64>*_const&>\n                              (&object_symbols,\n                               (iterator)\n                               object_symbols.\n                               super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                               ._M_impl._M_finish,&res);\n                    bVar10 = (res->super_Symbol).field_0x3a & 7;\n                  }\n                  else {\n                    *object_symbols.\n                     super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                     ._M_impl._M_finish = res;\n                    object_symbols.\n                    super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                    ._M_impl._M_finish =\n                         object_symbols.\n                         super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                         ._M_impl._M_finish + 1;\n                    bVar10 = (res->super_Symbol).field_0x3a & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (sympointers != (Symbols *)0x0) {\n                (sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                _M_impl._M_start[local_b0] = &res->super_Symbol;\n              }\n            }" { (expression_statement "bVar10 = (res->super_Symbol).field_0x3a & 7;" (assignment_expression "bVar10 = (res->super_Symbol).field_0x3a & 7" identifier = (binary_expression "(res->super_Symbol).field_0x3a & 7" (field_expression "(res->super_Symbol).field_0x3a" (parenthesized_expression "(res->super_Symbol)" ( (field_expression "res->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal)) ;) (if_statement "if (((st_shndx == 0) || (local_b9 == false)) || ((sym_00->p_->st_info & 0xf) != 1)) {\nLAB_0022eeb4:\n                if (bVar10 == 0) {\n                  if (((res->super_Symbol).field_0x3a & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0022f24f to 0022f253 has its CatchHandler @ 0022f284 */\n                    do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((dynobj == (Sized_dynobj<64,_false> *)(res->super_Symbol).u1_.object) &&\n                     (((sym.p_)->st_other & 3) == 3)) {\n                    puVar1 = &(res->super_Symbol).field_0x3c;\n                    *puVar1 = *puVar1 | 8;\n                  }\n                }\n              }\n              else if (bVar10 == 0) {\n                if (dynobj == (Sized_dynobj<64,_false> *)(res->super_Symbol).u1_.object) {\n                  if (object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                      ._M_impl._M_finish ==\n                      object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                      ._M_impl._M_end_of_storage) {\n                    std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>::\n                    _M_realloc_insert<gold::Sized_symbol<64>*_const&>\n                              (&object_symbols,\n                               (iterator)\n                               object_symbols.\n                               super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                               ._M_impl._M_finish,&res);\n                    bVar10 = (res->super_Symbol).field_0x3a & 7;\n                  }\n                  else {\n                    *object_symbols.\n                     super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                     ._M_impl._M_finish = res;\n                    object_symbols.\n                    super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                    ._M_impl._M_finish =\n                         object_symbols.\n                         super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                         ._M_impl._M_finish + 1;\n                    bVar10 = (res->super_Symbol).field_0x3a & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }" if (parenthesized_expression "(((st_shndx == 0) || (local_b9 == false)) || ((sym_00->p_->st_info & 0xf) != 1))" ( (binary_expression "((st_shndx == 0) || (local_b9 == false)) || ((sym_00->p_->st_info & 0xf) != 1)" (parenthesized_expression "((st_shndx == 0) || (local_b9 == false))" ( (binary_expression "(st_shndx == 0) || (local_b9 == false)" (parenthesized_expression "(st_shndx == 0)" ( (binary_expression "st_shndx == 0" identifier == number_literal) )) || (parenthesized_expression "(local_b9 == false)" ( (binary_expression "local_b9 == false" identifier == false) ))) )) || (parenthesized_expression "((sym_00->p_->st_info & 0xf) != 1)" ( (binary_expression "(sym_00->p_->st_info & 0xf) != 1" (parenthesized_expression "(sym_00->p_->st_info & 0xf)" ( (binary_expression "sym_00->p_->st_info & 0xf" (field_expression "sym_00->p_->st_info" (field_expression "sym_00->p_" identifier -> field_identifier) -> field_identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\nLAB_0022eeb4:\n                if (bVar10 == 0) {\n                  if (((res->super_Symbol).field_0x3a & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0022f24f to 0022f253 has its CatchHandler @ 0022f284 */\n                    do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((dynobj == (Sized_dynobj<64,_false> *)(res->super_Symbol).u1_.object) &&\n                     (((sym.p_)->st_other & 3) == 3)) {\n                    puVar1 = &(res->super_Symbol).field_0x3c;\n                    *puVar1 = *puVar1 | 8;\n                  }\n                }\n              }" { (labeled_statement "LAB_0022eeb4:\n                if (bVar10 == 0) {\n                  if (((res->super_Symbol).field_0x3a & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0022f24f to 0022f253 has its CatchHandler @ 0022f284 */\n                    do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((dynobj == (Sized_dynobj<64,_false> *)(res->super_Symbol).u1_.object) &&\n                     (((sym.p_)->st_other & 3) == 3)) {\n                    puVar1 = &(res->super_Symbol).field_0x3c;\n                    *puVar1 = *puVar1 | 8;\n                  }\n                }" statement_identifier : (if_statement "if (bVar10 == 0) {\n                  if (((res->super_Symbol).field_0x3a & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0022f24f to 0022f253 has its CatchHandler @ 0022f284 */\n                    do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((dynobj == (Sized_dynobj<64,_false> *)(res->super_Symbol).u1_.object) &&\n                     (((sym.p_)->st_other & 3) == 3)) {\n                    puVar1 = &(res->super_Symbol).field_0x3c;\n                    *puVar1 = *puVar1 | 8;\n                  }\n                }" if (parenthesized_expression "(bVar10 == 0)" ( (binary_expression "bVar10 == 0" identifier == number_literal) )) (compound_statement "{\n                  if (((res->super_Symbol).field_0x3a & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0022f24f to 0022f253 has its CatchHandler @ 0022f284 */\n                    do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((dynobj == (Sized_dynobj<64,_false> *)(res->super_Symbol).u1_.object) &&\n                     (((sym.p_)->st_other & 3) == 3)) {\n                    puVar1 = &(res->super_Symbol).field_0x3c;\n                    *puVar1 = *puVar1 | 8;\n                  }\n                }" { (if_statement "if (((res->super_Symbol).field_0x3a & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0022f24f to 0022f253 has its CatchHandler @ 0022f284 */\n                    do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n                  }" if (parenthesized_expression "(((res->super_Symbol).field_0x3a & 7) != 0)" ( (binary_expression "((res->super_Symbol).field_0x3a & 7) != 0" (parenthesized_expression "((res->super_Symbol).field_0x3a & 7)" ( (binary_expression "(res->super_Symbol).field_0x3a & 7" (field_expression "(res->super_Symbol).field_0x3a" (parenthesized_expression "(res->super_Symbol)" ( (field_expression "res->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0022f24f to 0022f253 has its CatchHandler @ 0022f284 */\n                    do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n                  }" { comment 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 ") ))) ;) })) (labeled_statement "LAB_0022eec2:\n                  if ((dynobj == (Sized_dynobj<64,_false> *)(res->super_Symbol).u1_.object) &&\n                     (((sym.p_)->st_other & 3) == 3)) {\n                    puVar1 = &(res->super_Symbol).field_0x3c;\n                    *puVar1 = *puVar1 | 8;\n                  }" statement_identifier : (if_statement "if ((dynobj == (Sized_dynobj<64,_false> *)(res->super_Symbol).u1_.object) &&\n                     (((sym.p_)->st_other & 3) == 3)) {\n                    puVar1 = &(res->super_Symbol).field_0x3c;\n                    *puVar1 = *puVar1 | 8;\n                  }" if (parenthesized_expression "((dynobj == (Sized_dynobj<64,_false> *)(res->super_Symbol).u1_.object) &&\n                     (((sym.p_)->st_other & 3) == 3))" ( (binary_expression "(dynobj == (Sized_dynobj<64,_false> *)(res->super_Symbol).u1_.object) &&\n                     (((sym.p_)->st_other & 3) == 3)" (parenthesized_expression "(dynobj == (Sized_dynobj<64,_false> *)(res->super_Symbol).u1_.object)" ( (binary_expression "dynobj == (Sized_dynobj<64,_false> *)(res->super_Symbol).u1_.object" identifier == (field_expression "(Sized_dynobj<64,_false> *)(res->super_Symbol).u1_.object" (field_expression "(Sized_dynobj<64,_false> *)(res->super_Symbol).u1_" (call_expression "(Sized_dynobj<64,_false> *)(res->super_Symbol)" (parenthesized_expression "(Sized_dynobj<64,_false> *)" ( (comma_expression "Sized_dynobj<64,_false> *" (binary_expression "Sized_dynobj<64" identifier < number_literal) , (binary_expression "_false> *" identifier > (pointer_expression "*" * identifier))) )) (argument_list "(res->super_Symbol)" ( (field_expression "res->super_Symbol" identifier -> field_identifier) ))) . field_identifier) . field_identifier)) )) && (parenthesized_expression "(((sym.p_)->st_other & 3) == 3)" ( (binary_expression "((sym.p_)->st_other & 3) == 3" (parenthesized_expression "((sym.p_)->st_other & 3)" ( (binary_expression "(sym.p_)->st_other & 3" (field_expression "(sym.p_)->st_other" (parenthesized_expression "(sym.p_)" ( (field_expression "sym.p_" identifier . field_identifier) )) -> field_identifier) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n                    puVar1 = &(res->super_Symbol).field_0x3c;\n                    *puVar1 = *puVar1 | 8;\n                  }" { (expression_statement "puVar1 = &(res->super_Symbol).field_0x3c;" (assignment_expression "puVar1 = &(res->super_Symbol).field_0x3c" identifier = (pointer_expression "&(res->super_Symbol).field_0x3c" & (field_expression "(res->super_Symbol).field_0x3c" (parenthesized_expression "(res->super_Symbol)" ( (field_expression "res->super_Symbol" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "*puVar1 = *puVar1 | 8;" (assignment_expression "*puVar1 = *puVar1 | 8" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 | 8" (pointer_expression "*puVar1" * identifier) | number_literal)) ;) }))) }))) }) (else_clause "else if (bVar10 == 0) {\n                if (dynobj == (Sized_dynobj<64,_false> *)(res->super_Symbol).u1_.object) {\n                  if (object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                      ._M_impl._M_finish ==\n                      object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                      ._M_impl._M_end_of_storage) {\n                    std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>::\n                    _M_realloc_insert<gold::Sized_symbol<64>*_const&>\n                              (&object_symbols,\n                               (iterator)\n                               object_symbols.\n                               super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                               ._M_impl._M_finish,&res);\n                    bVar10 = (res->super_Symbol).field_0x3a & 7;\n                  }\n                  else {\n                    *object_symbols.\n                     super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                     ._M_impl._M_finish = res;\n                    object_symbols.\n                    super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                    ._M_impl._M_finish =\n                         object_symbols.\n                         super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                         ._M_impl._M_finish + 1;\n                    bVar10 = (res->super_Symbol).field_0x3a & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }" else (if_statement "if (bVar10 == 0) {\n                if (dynobj == (Sized_dynobj<64,_false> *)(res->super_Symbol).u1_.object) {\n                  if (object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                      ._M_impl._M_finish ==\n                      object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                      ._M_impl._M_end_of_storage) {\n                    std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>::\n                    _M_realloc_insert<gold::Sized_symbol<64>*_const&>\n                              (&object_symbols,\n                               (iterator)\n                               object_symbols.\n                               super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                               ._M_impl._M_finish,&res);\n                    bVar10 = (res->super_Symbol).field_0x3a & 7;\n                  }\n                  else {\n                    *object_symbols.\n                     super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                     ._M_impl._M_finish = res;\n                    object_symbols.\n                    super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                    ._M_impl._M_finish =\n                         object_symbols.\n                         super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                         ._M_impl._M_finish + 1;\n                    bVar10 = (res->super_Symbol).field_0x3a & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }" if (parenthesized_expression "(bVar10 == 0)" ( (binary_expression "bVar10 == 0" identifier == number_literal) )) (compound_statement "{\n                if (dynobj == (Sized_dynobj<64,_false> *)(res->super_Symbol).u1_.object) {\n                  if (object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                      ._M_impl._M_finish ==\n                      object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                      ._M_impl._M_end_of_storage) {\n                    std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>::\n                    _M_realloc_insert<gold::Sized_symbol<64>*_const&>\n                              (&object_symbols,\n                               (iterator)\n                               object_symbols.\n                               super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                               ._M_impl._M_finish,&res);\n                    bVar10 = (res->super_Symbol).field_0x3a & 7;\n                  }\n                  else {\n                    *object_symbols.\n                     super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                     ._M_impl._M_finish = res;\n                    object_symbols.\n                    super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                    ._M_impl._M_finish =\n                         object_symbols.\n                         super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                         ._M_impl._M_finish + 1;\n                    bVar10 = (res->super_Symbol).field_0x3a & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }" { (if_statement "if (dynobj == (Sized_dynobj<64,_false> *)(res->super_Symbol).u1_.object) {\n                  if (object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                      ._M_impl._M_finish ==\n                      object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                      ._M_impl._M_end_of_storage) {\n                    std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>::\n                    _M_realloc_insert<gold::Sized_symbol<64>*_const&>\n                              (&object_symbols,\n                               (iterator)\n                               object_symbols.\n                               super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                               ._M_impl._M_finish,&res);\n                    bVar10 = (res->super_Symbol).field_0x3a & 7;\n                  }\n                  else {\n                    *object_symbols.\n                     super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                     ._M_impl._M_finish = res;\n                    object_symbols.\n                    super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                    ._M_impl._M_finish =\n                         object_symbols.\n                         super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                         ._M_impl._M_finish + 1;\n                    bVar10 = (res->super_Symbol).field_0x3a & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }" if (parenthesized_expression "(dynobj == (Sized_dynobj<64,_false> *)(res->super_Symbol).u1_.object)" ( (binary_expression "dynobj == (Sized_dynobj<64,_false> *)(res->super_Symbol).u1_.object" identifier == (field_expression "(Sized_dynobj<64,_false> *)(res->super_Symbol).u1_.object" (field_expression "(Sized_dynobj<64,_false> *)(res->super_Symbol).u1_" (call_expression "(Sized_dynobj<64,_false> *)(res->super_Symbol)" (parenthesized_expression "(Sized_dynobj<64,_false> *)" ( (comma_expression "Sized_dynobj<64,_false> *" (binary_expression "Sized_dynobj<64" identifier < number_literal) , (binary_expression "_false> *" identifier > (pointer_expression "*" * identifier))) )) (argument_list "(res->super_Symbol)" ( (field_expression "res->super_Symbol" identifier -> field_identifier) ))) . field_identifier) . field_identifier)) )) (compound_statement "{\n                  if (object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                      ._M_impl._M_finish ==\n                      object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                      ._M_impl._M_end_of_storage) {\n                    std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>::\n                    _M_realloc_insert<gold::Sized_symbol<64>*_const&>\n                              (&object_symbols,\n                               (iterator)\n                               object_symbols.\n                               super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                               ._M_impl._M_finish,&res);\n                    bVar10 = (res->super_Symbol).field_0x3a & 7;\n                  }\n                  else {\n                    *object_symbols.\n                     super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                     ._M_impl._M_finish = res;\n                    object_symbols.\n                    super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                    ._M_impl._M_finish =\n                         object_symbols.\n                         super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                         ._M_impl._M_finish + 1;\n                    bVar10 = (res->super_Symbol).field_0x3a & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }" { (if_statement "if (object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                      ._M_impl._M_finish ==\n                      object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                      ._M_impl._M_end_of_storage) {\n                    std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>::\n                    _M_realloc_insert<gold::Sized_symbol<64>*_const&>\n                              (&object_symbols,\n                               (iterator)\n                               object_symbols.\n                               super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                               ._M_impl._M_finish,&res);\n                    bVar10 = (res->super_Symbol).field_0x3a & 7;\n                  }\n                  else {\n                    *object_symbols.\n                     super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                     ._M_impl._M_finish = res;\n                    object_symbols.\n                    super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                    ._M_impl._M_finish =\n                         object_symbols.\n                         super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                         ._M_impl._M_finish + 1;\n                    bVar10 = (res->super_Symbol).field_0x3a & 7;\n                  }" if (parenthesized_expression "(object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                      ._M_impl._M_finish ==\n                      object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                      ._M_impl._M_end_of_storage)" ( (field_expression "object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                      ._M_impl._M_finish ==\n                      object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                      ._M_impl._M_end_of_storage" (field_expression "object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                      ._M_impl._M_finish ==\n                      object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                      ._M_impl" (binary_expression "object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                      ._M_impl._M_finish ==\n                      object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_" (binary_expression "object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                      ._M_impl._M_finish ==\n                      object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64" (binary_expression "object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                      ._M_impl._M_finish ==\n                      object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold" (binary_expression "object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                      ._M_impl._M_finish ==\n                      object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std" (binary_expression "object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                      ._M_impl._M_finish ==\n                      object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64" (binary_expression "object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                      ._M_impl._M_finish ==\n                      object_symbols.\n                      super__Vector_base<gold" (field_expression "object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                      ._M_impl._M_finish" (field_expression "object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                      ._M_impl" (binary_expression "object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_" (binary_expression "object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64" (binary_expression "object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold" (binary_expression "object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64>*,_std" (binary_expression "object_symbols.\n                      super__Vector_base<gold::Sized_symbol<64" (binary_expression "object_symbols.\n                      super__Vector_base<gold" (field_expression "object_symbols.\n                      super__Vector_base" identifier . field_identifier) < identifier) (ERROR "::Sized_symbol" : : identifier) < number_literal) > (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Sized_symbol" : : identifier) < number_literal) > (pointer_expression "*>_" * (ERROR ">" >) identifier)) (ERROR ">" >) . field_identifier) . field_identifier) == (binary_expression "object_symbols.\n                      super__Vector_base<gold" (field_expression "object_symbols.\n                      super__Vector_base" identifier . field_identifier) < identifier)) (ERROR "::Sized_symbol" : : identifier) < number_literal) > (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Sized_symbol" : : identifier) < number_literal) > (pointer_expression "*>_" * (ERROR ">" >) identifier)) (ERROR ">" >) . field_identifier) . field_identifier) )) (compound_statement "{\n                    std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>::\n                    _M_realloc_insert<gold::Sized_symbol<64>*_const&>\n                              (&object_symbols,\n                               (iterator)\n                               object_symbols.\n                               super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                               ._M_impl._M_finish,&res);\n                    bVar10 = (res->super_Symbol).field_0x3a & 7;\n                  }" { (labeled_statement "std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>::\n                    _M_realloc_insert<gold::Sized_symbol<64>*_const&>\n                              (&object_symbols,\n                               (iterator)\n                               object_symbols.\n                               super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                               ._M_impl._M_finish,&res);" statement_identifier (ERROR "::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>::\n                    _M_realloc_insert<gold::Sized_symbol<64>*_const&>\n                              (&object_symbols,\n                               (iterator)\n                               object_symbols.\n                               super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold:" : : (binary_expression "vector<gold" identifier < identifier) : : (binary_expression "Sized_symbol<64>*,_std" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "*,_std" * (ERROR "," ,) identifier)) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Sized_symbol<64>*>_" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "*>_" * (ERROR ">" >) identifier)) > : : (binary_expression "_M_realloc_insert<gold" identifier < identifier) : : (binary_expression "Sized_symbol<64>*_const" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "*_const" * identifier)) (ERROR "&" &) > ( (comma_expression "&object_symbols,\n                               (iterator)\n                               object_symbols.\n                               super__Vector_base<gold" (pointer_expression "&object_symbols" & identifier) , (binary_expression "(iterator)\n                               object_symbols.\n                               super__Vector_base<gold" (cast_expression "(iterator)\n                               object_symbols.\n                               super__Vector_base" ( (type_descriptor "iterator" type_identifier) ) (field_expression "object_symbols.\n                               super__Vector_base" identifier . field_identifier)) < identifier)) : : (binary_expression "Sized_symbol<64>*,_std" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "*,_std" * (ERROR "," ,) identifier)) : : (binary_expression "allocator<gold" identifier < identifier) :) : (expression_statement "Sized_symbol<64>*>_>\n                               ._M_impl._M_finish,&res);" (comma_expression "Sized_symbol<64>*>_>\n                               ._M_impl._M_finish,&res" (field_expression "Sized_symbol<64>*>_>\n                               ._M_impl._M_finish" (field_expression "Sized_symbol<64>*>_>\n                               ._M_impl" (binary_expression "Sized_symbol<64>*>_" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "*>_" * (ERROR ">" >) identifier)) (ERROR ">" >) . field_identifier) . field_identifier) , (pointer_expression "&res" & identifier)) (ERROR ")" )) ;)) (expression_statement "bVar10 = (res->super_Symbol).field_0x3a & 7;" (assignment_expression "bVar10 = (res->super_Symbol).field_0x3a & 7" identifier = (binary_expression "(res->super_Symbol).field_0x3a & 7" (field_expression "(res->super_Symbol).field_0x3a" (parenthesized_expression "(res->super_Symbol)" ( (field_expression "res->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal)) ;) }) (else_clause "else {\n                    *object_symbols.\n                     super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                     ._M_impl._M_finish = res;\n                    object_symbols.\n                    super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                    ._M_impl._M_finish =\n                         object_symbols.\n                         super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                         ._M_impl._M_finish + 1;\n                    bVar10 = (res->super_Symbol).field_0x3a & 7;\n                  }" else (compound_statement "{\n                    *object_symbols.\n                     super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                     ._M_impl._M_finish = res;\n                    object_symbols.\n                    super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                    ._M_impl._M_finish =\n                         object_symbols.\n                         super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                         ._M_impl._M_finish + 1;\n                    bVar10 = (res->super_Symbol).field_0x3a & 7;\n                  }" { (expression_statement "*object_symbols.\n                     super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                     ._M_impl._M_finish = res;" (assignment_expression "*object_symbols.\n                     super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                     ._M_impl._M_finish = res" (field_expression "*object_symbols.\n                     super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                     ._M_impl._M_finish" (field_expression "*object_symbols.\n                     super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                     ._M_impl" (binary_expression "*object_symbols.\n                     super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_" (binary_expression "*object_symbols.\n                     super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64" (binary_expression "*object_symbols.\n                     super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold" (binary_expression "*object_symbols.\n                     super__Vector_base<gold::Sized_symbol<64>*,_std" (binary_expression "*object_symbols.\n                     super__Vector_base<gold::Sized_symbol<64" (binary_expression "*object_symbols.\n                     super__Vector_base<gold" (pointer_expression "*object_symbols.\n                     super__Vector_base" * (field_expression "object_symbols.\n                     super__Vector_base" identifier . field_identifier)) < identifier) (ERROR "::Sized_symbol" : : identifier) < number_literal) > (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Sized_symbol" : : identifier) < number_literal) > (pointer_expression "*>_" * (ERROR ">" >) identifier)) (ERROR ">" >) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "object_symbols.\n                    super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                    ._M_impl._M_finish =\n                         object_symbols.\n                         super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                         ._M_impl._M_finish + 1;" (binary_expression "object_symbols.\n                    super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                    ._M_impl._M_finish =\n                         object_symbols.\n                         super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                         ._M_impl._M_finish + 1" (field_expression "object_symbols.\n                    super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                    ._M_impl._M_finish =\n                         object_symbols.\n                         super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                         ._M_impl._M_finish" (field_expression "object_symbols.\n                    super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                    ._M_impl._M_finish =\n                         object_symbols.\n                         super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                         ._M_impl" (binary_expression "object_symbols.\n                    super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                    ._M_impl._M_finish =\n                         object_symbols.\n                         super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_" (binary_expression "object_symbols.\n                    super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                    ._M_impl._M_finish =\n                         object_symbols.\n                         super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64" (binary_expression "object_symbols.\n                    super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                    ._M_impl._M_finish =\n                         object_symbols.\n                         super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold" (binary_expression "object_symbols.\n                    super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                    ._M_impl._M_finish =\n                         object_symbols.\n                         super__Vector_base<gold::Sized_symbol<64>*,_std" (binary_expression "object_symbols.\n                    super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                    ._M_impl._M_finish =\n                         object_symbols.\n                         super__Vector_base<gold::Sized_symbol<64" (assignment_expression "object_symbols.\n                    super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                    ._M_impl._M_finish =\n                         object_symbols.\n                         super__Vector_base<gold" (field_expression "object_symbols.\n                    super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                    ._M_impl._M_finish" (field_expression "object_symbols.\n                    super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                    ._M_impl" (binary_expression "object_symbols.\n                    super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_" (binary_expression "object_symbols.\n                    super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64" (binary_expression "object_symbols.\n                    super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold" (binary_expression "object_symbols.\n                    super__Vector_base<gold::Sized_symbol<64>*,_std" (binary_expression "object_symbols.\n                    super__Vector_base<gold::Sized_symbol<64" (binary_expression "object_symbols.\n                    super__Vector_base<gold" (field_expression "object_symbols.\n                    super__Vector_base" identifier . field_identifier) < identifier) (ERROR "::Sized_symbol" : : identifier) < number_literal) > (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Sized_symbol" : : identifier) < number_literal) > (pointer_expression "*>_" * (ERROR ">" >) identifier)) (ERROR ">" >) . field_identifier) . field_identifier) = (binary_expression "object_symbols.\n                         super__Vector_base<gold" (field_expression "object_symbols.\n                         super__Vector_base" identifier . field_identifier) < identifier)) (ERROR "::Sized_symbol" : : identifier) < number_literal) > (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Sized_symbol" : : identifier) < number_literal) > (pointer_expression "*>_" * (ERROR ">" >) identifier)) (ERROR ">" >) . field_identifier) . field_identifier) + number_literal) ;) (expression_statement "bVar10 = (res->super_Symbol).field_0x3a & 7;" (assignment_expression "bVar10 = (res->super_Symbol).field_0x3a & 7" identifier = (binary_expression "(res->super_Symbol).field_0x3a & 7" (field_expression "(res->super_Symbol).field_0x3a" (parenthesized_expression "(res->super_Symbol)" ( (field_expression "res->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal)) ;) }))) (goto_statement "goto LAB_0022eeb4;" goto statement_identifier ;) })) (goto_statement "goto LAB_0022eec2;" goto statement_identifier ;) })))) (if_statement "if (sympointers != (Symbols *)0x0) {\n                (sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                _M_impl._M_start[local_b0] = &res->super_Symbol;\n              }" if (parenthesized_expression "(sympointers != (Symbols *)0x0)" ( (binary_expression "sympointers != (Symbols *)0x0" identifier != (cast_expression "(Symbols *)0x0" ( (type_descriptor "Symbols *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                (sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                _M_impl._M_start[local_b0] = &res->super_Symbol;\n              }" { (expression_statement "(sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                _M_impl._M_start[local_b0] = &res->super_Symbol;" (assignment_expression "(sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                _M_impl._M_start[local_b0] = &res->super_Symbol" (subscript_expression "(sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                _M_impl._M_start[local_b0]" (field_expression "(sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                _M_impl._M_start" (field_expression "(sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                _M_impl" (parenthesized_expression "(sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)" ( (binary_expression "sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>" (binary_expression "sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "sympointers->super__Vector_base<gold::Symbol*,_std" (binary_expression "sympointers->super__Vector_base<gold" (field_expression "sympointers->super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR ">" >) identifier) > identifier) )) . field_identifier) . field_identifier) [ identifier ]) = (pointer_expression "&res->super_Symbol" & (field_expression "res->super_Symbol" identifier -> field_identifier))) ;) })) }))) }) (else_clause "else {\n            pcVar7 = (char *)gettext("bad symbol name offset %u at %zu");\n            Object::error((Object *)dynobj,pcVar7,uVar8,local_b0);\n          }" else (compound_statement "{\n            pcVar7 = (char *)gettext("bad symbol name offset %u at %zu");\n            Object::error((Object *)dynobj,pcVar7,uVar8,local_b0);\n          }" { (expression_statement "pcVar7 = (char *)gettext("bad symbol name offset %u at %zu");" (assignment_expression "pcVar7 = (char *)gettext("bad symbol name offset %u at %zu")" identifier = (cast_expression "(char *)gettext("bad symbol name offset %u at %zu")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("bad symbol name offset %u at %zu")" identifier (argument_list "("bad symbol name offset %u at %zu")" ( (string_literal ""bad symbol name offset %u at %zu"" " string_content ") ))))) ;) (labeled_statement "Object::error((Object *)dynobj,pcVar7,uVar8,local_b0);" statement_identifier : (ERROR ":" :) (expression_statement "error((Object *)dynobj,pcVar7,uVar8,local_b0);" (call_expression "error((Object *)dynobj,pcVar7,uVar8,local_b0)" identifier (argument_list "((Object *)dynobj,pcVar7,uVar8,local_b0)" ( (cast_expression "(Object *)dynobj" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier , identifier ))) ;)) }))) })) })) (labeled_statement "LAB_0022ec88:\n      local_b0 = local_b0 + 1;" statement_identifier : (expression_statement "local_b0 = local_b0 + 1;" (assignment_expression "local_b0 = local_b0 + 1" identifier = (binary_expression "local_b0 + 1" identifier + number_literal)) ;)) (expression_statement "syms = (uchar *)((long)syms + 0x18);" (assignment_expression "syms = (uchar *)((long)syms + 0x18)" identifier = (cast_expression "(uchar *)((long)syms + 0x18)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)syms + 0x18)" ( (binary_expression "(long)syms + 0x18" (cast_expression "(long)syms" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "(count != local_b0)" ( (binary_expression "count != local_b0" identifier != identifier) )) ;) })) (expression_statement "record_weak_aliases<64>(this,&object_symbols);" (update_expression "record_weak_aliases<64>(this,&object_symbols)" (binary_expression "record_weak_aliases<64>(this,&object_symbols)" (binary_expression "record_weak_aliases<64" identifier < number_literal) > (parenthesized_expression "(this,&object_symbols)" ( (comma_expression "this,&object_symbols" identifier , (pointer_expression "&object_symbols" & identifier)) ))) --) ;) (if_statement "if (object_symbols.\n      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>._M_impl.\n      _M_start != (pointer)0x0) {\n    operator_delete(object_symbols.\n                    super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                    ._M_impl._M_start);\n  }" if (parenthesized_expression "(object_symbols.\n      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>._M_impl.\n      _M_start != (pointer)0x0)" ( (binary_expression "object_symbols.\n      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>._M_impl.\n      _M_start != (pointer)0x0" (field_expression "object_symbols.\n      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>._M_impl.\n      _M_start" (field_expression "object_symbols.\n      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>._M_impl" (binary_expression "object_symbols.\n      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_" (binary_expression "object_symbols.\n      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64" (binary_expression "object_symbols.\n      super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold" (binary_expression "object_symbols.\n      super__Vector_base<gold::Sized_symbol<64>*,_std" (binary_expression "object_symbols.\n      super__Vector_base<gold::Sized_symbol<64" (binary_expression "object_symbols.\n      super__Vector_base<gold" (field_expression "object_symbols.\n      super__Vector_base" identifier . field_identifier) < identifier) (ERROR "::Sized_symbol" : : identifier) < number_literal) > (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Sized_symbol" : : identifier) < number_literal) > (pointer_expression "*>_" * (ERROR ">" >) identifier)) (ERROR ">" >) . field_identifier) . field_identifier) != (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) )) (compound_statement "{\n    operator_delete(object_symbols.\n                    super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                    ._M_impl._M_start);\n  }" { (expression_statement "operator_delete(object_symbols.\n                    super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                    ._M_impl._M_start);" (call_expression "operator_delete(object_symbols.\n                    super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                    ._M_impl._M_start)" identifier (argument_list "(object_symbols.\n                    super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                    ._M_impl._M_start)" ( (field_expression "object_symbols.\n                    super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                    ._M_impl._M_start" (field_expression "object_symbols.\n                    super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                    ._M_impl" (binary_expression "object_symbols.\n                    super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_" (binary_expression "object_symbols.\n                    super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64" (binary_expression "object_symbols.\n                    super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold" (binary_expression "object_symbols.\n                    super__Vector_base<gold::Sized_symbol<64>*,_std" (binary_expression "object_symbols.\n                    super__Vector_base<gold::Sized_symbol<64" (binary_expression "object_symbols.\n                    super__Vector_base<gold" (field_expression "object_symbols.\n                    super__Vector_base" identifier . field_identifier) < identifier) (ERROR "::Sized_symbol" : : identifier) < number_literal) > (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Sized_symbol" : : identifier) < number_literal) > (pointer_expression "*>_" * (ERROR ">" >) identifier)) (ERROR ">" >) . field_identifier) . field_identifier) ))) ;) })) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void FUN_0022eaf0(long param_1,long *param_2,ulong *param_3,ulong param_4,long param_5,ulong param_6\n                 ,long param_7,ulong param_8,long *param_9,long *param_10,long *param_11)\n\n{\n  ulong *puVar1;\n  ulong **ppuVar2;\n  char cVar3;\n  int iVar4;\n  uint uVar5;\n  undefined8 uVar6;\n  ulong uVar7;\n  undefined8 uVar8;\n  long lVar9;\n  byte bVar10;\n  byte bVar11;\n  char *pcVar12;\n  ushort uVar13;\n  ushort local_bc;\n  byte local_ba;\n  char local_b9;\n  ulong local_b0;\n  ulong *local_a0;\n  ulong *local_98;\n  long local_90;\n  long local_88;\n  long local_80;\n  long local_78;\n  long *local_70;\n  long *local_68;\n  undefined8 local_58;\n  ulong uStack_50;\n  ulong local_48;\n  \n  *param_11 = 0;\n  if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\n                    \n    FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n  }\n  if (**(int **)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8) != 0x40) {\n                    \n    FUN_0016cdf0("../../gold/symtab.cc",0x5bd,"add_from_dynobj");\n  }\n  if (param_2[5] == 0) {\n                    \n    FUN_0016cdf0("../../gold/object.h",0x1ea,"input_file");\n  }\n  cVar3 = FUN_0016aff0();\n  if (cVar3 != '\0') {\n    uVar6 = gettext("--just-symbols does not make sense with a shared object");\n    FUN_001690a0(uVar6);\n    return;\n  }\n  cVar3 = FUN_001ee080(PTR_DAT_003be6b0);\n  if ((param_7 == 0) || (cVar3 == '\x01')) {\n    param_7 = 0;\n  }\n  else if (param_8 >> 1 < param_4) {\n    uVar6 = gettext("too few symbol versions");\n    FUN_0019a740(param_2,uVar6);\n    return;\n  }\n  local_78 = 0;\n  local_70 = (long *)0x0;\n  local_68 = (long *)0x0;\n  local_b0 = 0;\n  if (param_4 != 0) {\n    do {\n      if (param_10 != (long *)0x0) {\n        *(undefined8 *)(*param_10 + local_b0 * 8) = 0;\n      }\n      iVar4 = (int)(uint)*(byte *)((long)param_3 + 4) >> 4;\n      local_a0 = param_3;\n      if (iVar4 != 0) {\n        bVar11 = *(byte *)((long)param_3 + 5) & 3;\n        if (1 < (byte)(bVar11 - 1)) {\n          bVar10 = *(byte *)((long)param_3 + 4) & 0xf;\n          if (bVar11 == 3) {\n            uStack_50 = param_3[1];\n            local_48 = param_3[2];\n            local_58._6_2_ = (undefined2)(*param_3 >> 0x30);\n            local_58._0_5_ = (undefined5)*param_3;\n            local_58 = CONCAT26(local_58._6_2_,\n                                CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58)) &\n                       0xfffffcffffffffff;\n            if (bVar10 == 10) goto LAB_0022ef70;\nLAB_0022ef0b:\n            uVar7 = local_58 & 0xffffffff;\n            puVar1 = &local_58;\n            ppuVar2 = &local_98;\n          }\n          else {\n            if (bVar10 == 10) {\n              local_48 = param_3[2];\n              local_58 = *param_3;\n              uStack_50 = param_3[1];\nLAB_0022ef70:\n              local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58);\n              goto LAB_0022ef0b;\n            }\n            ppuVar2 = &local_a0;\n            uVar7 = (ulong)(uint)*param_3;\n            puVar1 = param_3;\n          }\n          local_98 = &local_58;\n          if (uVar7 < param_6) {\n            uVar13 = *(ushort *)((long)puVar1 + 6);\n            uVar5 = (uint)uVar13;\n            if (uVar13 < 0xff00) {\n              if (uVar13 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = '\x01';\nLAB_0022ec44:\n              *param_11 = *param_11 + 1;\n              if (param_7 != 0) {\n                local_bc = *(ushort *)(param_7 + local_b0 * 2);\n                uVar13 = local_bc & 0x7fff;\n                if (uVar13 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80);\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\n            else {\n              local_b9 = '\0';\n              if (uVar13 != 0xffff) goto LAB_0022ec44;\n              lVar9 = param_2[8];\n              if (lVar9 == 0) {\n                lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);\n                param_2[8] = lVar9;\n              }\n              uVar5 = FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff);\n              if (uVar5 != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (param_7 == 0) {\n                local_b9 = '\x01';\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = '\x01';\n              local_bc = *(ushort *)(param_7 + local_b0 * 2);\n              uVar13 = local_bc & 0x7fff;\nLAB_0022ed91:\n                    \n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88);\n              if (1 < uVar13) {\n                pcVar12 = "versym for symbol %zu out of range: %u";\n                if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    \n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }\n                uVar6 = gettext(pcVar12);\n                FUN_0019a740(param_2,uVar6,local_b0,uVar13);\n                goto LAB_0022ec88;\n              }\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\nLAB_0022ee87:\n            if (local_90 != 0) {\n              bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n              if (((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)\n                 ) {\nLAB_0022eeb4:\n                if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    \n                    \n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }\n              }\n              else if (bVar11 == 0) {\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (param_10 != (long *)0x0) {\n                *(long *)(*param_10 + local_b0 * 8) = local_90;\n              }\n            }\n          }\n          else {\n            uVar6 = gettext("bad symbol name offset %u at %zu");\n            FUN_0019a740(param_2,uVar6,uVar7,local_b0);\n          }\n        }\n      }\nLAB_0022ec88:\n      local_b0 = local_b0 + 1;\n      param_3 = param_3 + 3;\n    } while (param_4 != local_b0);\n  }\n  FUN_0022e900(param_1,&local_78);\n  if (local_78 != 0) {\n    FUN_00276d20();\n  }\n  return;\n}\n\n" (function_definition "void FUN_0022eaf0(long param_1,long *param_2,ulong *param_3,ulong param_4,long param_5,ulong param_6\n                 ,long param_7,ulong param_8,long *param_9,long *param_10,long *param_11)\n\n{\n  ulong *puVar1;\n  ulong **ppuVar2;\n  char cVar3;\n  int iVar4;\n  uint uVar5;\n  undefined8 uVar6;\n  ulong uVar7;\n  undefined8 uVar8;\n  long lVar9;\n  byte bVar10;\n  byte bVar11;\n  char *pcVar12;\n  ushort uVar13;\n  ushort local_bc;\n  byte local_ba;\n  char local_b9;\n  ulong local_b0;\n  ulong *local_a0;\n  ulong *local_98;\n  long local_90;\n  long local_88;\n  long local_80;\n  long local_78;\n  long *local_70;\n  long *local_68;\n  undefined8 local_58;\n  ulong uStack_50;\n  ulong local_48;\n  \n  *param_11 = 0;\n  if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\n                    \n    FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n  }\n  if (**(int **)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8) != 0x40) {\n                    \n    FUN_0016cdf0("../../gold/symtab.cc",0x5bd,"add_from_dynobj");\n  }\n  if (param_2[5] == 0) {\n                    \n    FUN_0016cdf0("../../gold/object.h",0x1ea,"input_file");\n  }\n  cVar3 = FUN_0016aff0();\n  if (cVar3 != '\0') {\n    uVar6 = gettext("--just-symbols does not make sense with a shared object");\n    FUN_001690a0(uVar6);\n    return;\n  }\n  cVar3 = FUN_001ee080(PTR_DAT_003be6b0);\n  if ((param_7 == 0) || (cVar3 == '\x01')) {\n    param_7 = 0;\n  }\n  else if (param_8 >> 1 < param_4) {\n    uVar6 = gettext("too few symbol versions");\n    FUN_0019a740(param_2,uVar6);\n    return;\n  }\n  local_78 = 0;\n  local_70 = (long *)0x0;\n  local_68 = (long *)0x0;\n  local_b0 = 0;\n  if (param_4 != 0) {\n    do {\n      if (param_10 != (long *)0x0) {\n        *(undefined8 *)(*param_10 + local_b0 * 8) = 0;\n      }\n      iVar4 = (int)(uint)*(byte *)((long)param_3 + 4) >> 4;\n      local_a0 = param_3;\n      if (iVar4 != 0) {\n        bVar11 = *(byte *)((long)param_3 + 5) & 3;\n        if (1 < (byte)(bVar11 - 1)) {\n          bVar10 = *(byte *)((long)param_3 + 4) & 0xf;\n          if (bVar11 == 3) {\n            uStack_50 = param_3[1];\n            local_48 = param_3[2];\n            local_58._6_2_ = (undefined2)(*param_3 >> 0x30);\n            local_58._0_5_ = (undefined5)*param_3;\n            local_58 = CONCAT26(local_58._6_2_,\n                                CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58)) &\n                       0xfffffcffffffffff;\n            if (bVar10 == 10) goto LAB_0022ef70;\nLAB_0022ef0b:\n            uVar7 = local_58 & 0xffffffff;\n            puVar1 = &local_58;\n            ppuVar2 = &local_98;\n          }\n          else {\n            if (bVar10 == 10) {\n              local_48 = param_3[2];\n              local_58 = *param_3;\n              uStack_50 = param_3[1];\nLAB_0022ef70:\n              local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58);\n              goto LAB_0022ef0b;\n            }\n            ppuVar2 = &local_a0;\n            uVar7 = (ulong)(uint)*param_3;\n            puVar1 = param_3;\n          }\n          local_98 = &local_58;\n          if (uVar7 < param_6) {\n            uVar13 = *(ushort *)((long)puVar1 + 6);\n            uVar5 = (uint)uVar13;\n            if (uVar13 < 0xff00) {\n              if (uVar13 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = '\x01';\nLAB_0022ec44:\n              *param_11 = *param_11 + 1;\n              if (param_7 != 0) {\n                local_bc = *(ushort *)(param_7 + local_b0 * 2);\n                uVar13 = local_bc & 0x7fff;\n                if (uVar13 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80);\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\n            else {\n              local_b9 = '\0';\n              if (uVar13 != 0xffff) goto LAB_0022ec44;\n              lVar9 = param_2[8];\n              if (lVar9 == 0) {\n                lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);\n                param_2[8] = lVar9;\n              }\n              uVar5 = FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff);\n              if (uVar5 != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (param_7 == 0) {\n                local_b9 = '\x01';\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = '\x01';\n              local_bc = *(ushort *)(param_7 + local_b0 * 2);\n              uVar13 = local_bc & 0x7fff;\nLAB_0022ed91:\n                    \n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88);\n              if (1 < uVar13) {\n                pcVar12 = "versym for symbol %zu out of range: %u";\n                if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    \n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }\n                uVar6 = gettext(pcVar12);\n                FUN_0019a740(param_2,uVar6,local_b0,uVar13);\n                goto LAB_0022ec88;\n              }\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\nLAB_0022ee87:\n            if (local_90 != 0) {\n              bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n              if (((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)\n                 ) {\nLAB_0022eeb4:\n                if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    \n                    \n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }\n              }\n              else if (bVar11 == 0) {\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (param_10 != (long *)0x0) {\n                *(long *)(*param_10 + local_b0 * 8) = local_90;\n              }\n            }\n          }\n          else {\n            uVar6 = gettext("bad symbol name offset %u at %zu");\n            FUN_0019a740(param_2,uVar6,uVar7,local_b0);\n          }\n        }\n      }\nLAB_0022ec88:\n      local_b0 = local_b0 + 1;\n      param_3 = param_3 + 3;\n    } while (param_4 != local_b0);\n  }\n  FUN_0022e900(param_1,&local_78);\n  if (local_78 != 0) {\n    FUN_00276d20();\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0022eaf0(long param_1,long *param_2,ulong *param_3,ulong param_4,long param_5,ulong param_6\n                 ,long param_7,ulong param_8,long *param_9,long *param_10,long *param_11)" identifier (parameter_list "(long param_1,long *param_2,ulong *param_3,ulong param_4,long param_5,ulong param_6\n                 ,long param_7,ulong param_8,long *param_9,long *param_10,long *param_11)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long *param_2" (sized_type_specifier "long" long) (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "ulong *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "ulong param_4" type_identifier identifier) , (parameter_declaration "long param_5" (sized_type_specifier "long" long) identifier) , (parameter_declaration "ulong param_6" type_identifier identifier) , (parameter_declaration "long param_7" (sized_type_specifier "long" long) identifier) , (parameter_declaration "ulong param_8" type_identifier identifier) , (parameter_declaration "long *param_9" (sized_type_specifier "long" long) (pointer_declarator "*param_9" * identifier)) , (parameter_declaration "long *param_10" (sized_type_specifier "long" long) (pointer_declarator "*param_10" * identifier)) , (parameter_declaration "long *param_11" (sized_type_specifier "long" long) (pointer_declarator "*param_11" * identifier)) ))) (compound_statement "{\n  ulong *puVar1;\n  ulong **ppuVar2;\n  char cVar3;\n  int iVar4;\n  uint uVar5;\n  undefined8 uVar6;\n  ulong uVar7;\n  undefined8 uVar8;\n  long lVar9;\n  byte bVar10;\n  byte bVar11;\n  char *pcVar12;\n  ushort uVar13;\n  ushort local_bc;\n  byte local_ba;\n  char local_b9;\n  ulong local_b0;\n  ulong *local_a0;\n  ulong *local_98;\n  long local_90;\n  long local_88;\n  long local_80;\n  long local_78;\n  long *local_70;\n  long *local_68;\n  undefined8 local_58;\n  ulong uStack_50;\n  ulong local_48;\n  \n  *param_11 = 0;\n  if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\n                    \n    FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n  }\n  if (**(int **)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8) != 0x40) {\n                    \n    FUN_0016cdf0("../../gold/symtab.cc",0x5bd,"add_from_dynobj");\n  }\n  if (param_2[5] == 0) {\n                    \n    FUN_0016cdf0("../../gold/object.h",0x1ea,"input_file");\n  }\n  cVar3 = FUN_0016aff0();\n  if (cVar3 != '\0') {\n    uVar6 = gettext("--just-symbols does not make sense with a shared object");\n    FUN_001690a0(uVar6);\n    return;\n  }\n  cVar3 = FUN_001ee080(PTR_DAT_003be6b0);\n  if ((param_7 == 0) || (cVar3 == '\x01')) {\n    param_7 = 0;\n  }\n  else if (param_8 >> 1 < param_4) {\n    uVar6 = gettext("too few symbol versions");\n    FUN_0019a740(param_2,uVar6);\n    return;\n  }\n  local_78 = 0;\n  local_70 = (long *)0x0;\n  local_68 = (long *)0x0;\n  local_b0 = 0;\n  if (param_4 != 0) {\n    do {\n      if (param_10 != (long *)0x0) {\n        *(undefined8 *)(*param_10 + local_b0 * 8) = 0;\n      }\n      iVar4 = (int)(uint)*(byte *)((long)param_3 + 4) >> 4;\n      local_a0 = param_3;\n      if (iVar4 != 0) {\n        bVar11 = *(byte *)((long)param_3 + 5) & 3;\n        if (1 < (byte)(bVar11 - 1)) {\n          bVar10 = *(byte *)((long)param_3 + 4) & 0xf;\n          if (bVar11 == 3) {\n            uStack_50 = param_3[1];\n            local_48 = param_3[2];\n            local_58._6_2_ = (undefined2)(*param_3 >> 0x30);\n            local_58._0_5_ = (undefined5)*param_3;\n            local_58 = CONCAT26(local_58._6_2_,\n                                CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58)) &\n                       0xfffffcffffffffff;\n            if (bVar10 == 10) goto LAB_0022ef70;\nLAB_0022ef0b:\n            uVar7 = local_58 & 0xffffffff;\n            puVar1 = &local_58;\n            ppuVar2 = &local_98;\n          }\n          else {\n            if (bVar10 == 10) {\n              local_48 = param_3[2];\n              local_58 = *param_3;\n              uStack_50 = param_3[1];\nLAB_0022ef70:\n              local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58);\n              goto LAB_0022ef0b;\n            }\n            ppuVar2 = &local_a0;\n            uVar7 = (ulong)(uint)*param_3;\n            puVar1 = param_3;\n          }\n          local_98 = &local_58;\n          if (uVar7 < param_6) {\n            uVar13 = *(ushort *)((long)puVar1 + 6);\n            uVar5 = (uint)uVar13;\n            if (uVar13 < 0xff00) {\n              if (uVar13 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = '\x01';\nLAB_0022ec44:\n              *param_11 = *param_11 + 1;\n              if (param_7 != 0) {\n                local_bc = *(ushort *)(param_7 + local_b0 * 2);\n                uVar13 = local_bc & 0x7fff;\n                if (uVar13 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80);\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\n            else {\n              local_b9 = '\0';\n              if (uVar13 != 0xffff) goto LAB_0022ec44;\n              lVar9 = param_2[8];\n              if (lVar9 == 0) {\n                lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);\n                param_2[8] = lVar9;\n              }\n              uVar5 = FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff);\n              if (uVar5 != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (param_7 == 0) {\n                local_b9 = '\x01';\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = '\x01';\n              local_bc = *(ushort *)(param_7 + local_b0 * 2);\n              uVar13 = local_bc & 0x7fff;\nLAB_0022ed91:\n                    \n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88);\n              if (1 < uVar13) {\n                pcVar12 = "versym for symbol %zu out of range: %u";\n                if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    \n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }\n                uVar6 = gettext(pcVar12);\n                FUN_0019a740(param_2,uVar6,local_b0,uVar13);\n                goto LAB_0022ec88;\n              }\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\nLAB_0022ee87:\n            if (local_90 != 0) {\n              bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n              if (((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)\n                 ) {\nLAB_0022eeb4:\n                if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    \n                    \n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }\n              }\n              else if (bVar11 == 0) {\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (param_10 != (long *)0x0) {\n                *(long *)(*param_10 + local_b0 * 8) = local_90;\n              }\n            }\n          }\n          else {\n            uVar6 = gettext("bad symbol name offset %u at %zu");\n            FUN_0019a740(param_2,uVar6,uVar7,local_b0);\n          }\n        }\n      }\nLAB_0022ec88:\n      local_b0 = local_b0 + 1;\n      param_3 = param_3 + 3;\n    } while (param_4 != local_b0);\n  }\n  FUN_0022e900(param_1,&local_78);\n  if (local_78 != 0) {\n    FUN_00276d20();\n  }\n  return;\n}" { (declaration "ulong *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "ulong **ppuVar2;" type_identifier (pointer_declarator "**ppuVar2" * (pointer_declarator "*ppuVar2" * identifier)) ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "undefined8 uVar6;" type_identifier identifier ;) (declaration "ulong uVar7;" type_identifier identifier ;) (declaration "undefined8 uVar8;" type_identifier identifier ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (declaration "byte bVar10;" type_identifier identifier ;) (declaration "byte bVar11;" type_identifier identifier ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "ushort uVar13;" type_identifier identifier ;) (declaration "ushort local_bc;" type_identifier identifier ;) (declaration "byte local_ba;" type_identifier identifier ;) (declaration "char local_b9;" primitive_type identifier ;) (declaration "ulong local_b0;" type_identifier identifier ;) (declaration "ulong *local_a0;" type_identifier (pointer_declarator "*local_a0" * identifier) ;) (declaration "ulong *local_98;" type_identifier (pointer_declarator "*local_98" * identifier) ;) (declaration "long local_90;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_88;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_80;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_78;" (sized_type_specifier "long" long) identifier ;) (declaration "long *local_70;" (sized_type_specifier "long" long) (pointer_declarator "*local_70" * identifier) ;) (declaration "long *local_68;" (sized_type_specifier "long" long) (pointer_declarator "*local_68" * identifier) ;) (declaration "undefined8 local_58;" type_identifier identifier ;) (declaration "ulong uStack_50;" type_identifier identifier ;) (declaration "ulong local_48;" type_identifier identifier ;) (expression_statement "*param_11 = 0;" (assignment_expression "*param_11 = 0" (pointer_expression "*param_11" * identifier) = number_literal) ;) (if_statement "if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\n                    \n    FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n  }" if (parenthesized_expression "(*(long *)(PTR_DAT_003be6b0 + 0x18) == 0)" ( (binary_expression "*(long *)(PTR_DAT_003be6b0 + 0x18) == 0" (pointer_expression "*(long *)(PTR_DAT_003be6b0 + 0x18)" * (cast_expression "(long *)(PTR_DAT_003be6b0 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003be6b0 + 0x18)" ( (binary_expression "PTR_DAT_003be6b0 + 0x18" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    \n    FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n  }" { (expression_statement "FUN_0016cdf0("../../gold/parameters.h",0x69,"target");" (call_expression "FUN_0016cdf0("../../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 (**(int **)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8) != 0x40) {\n                    \n    FUN_0016cdf0("../../gold/symtab.cc",0x5bd,"add_from_dynobj");\n  }" if (parenthesized_expression "(**(int **)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8) != 0x40)" ( (binary_expression "**(int **)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8) != 0x40" (pointer_expression "**(int **)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8)" * (pointer_expression "*(int **)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8)" * (cast_expression "(int **)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8)" ( (binary_expression "*(long *)(PTR_DAT_003be6b0 + 0x18) + 8" (pointer_expression "*(long *)(PTR_DAT_003be6b0 + 0x18)" * (cast_expression "(long *)(PTR_DAT_003be6b0 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003be6b0 + 0x18)" ( (binary_expression "PTR_DAT_003be6b0 + 0x18" identifier + number_literal) )))) + number_literal) ))))) != number_literal) )) (compound_statement "{\n                    \n    FUN_0016cdf0("../../gold/symtab.cc",0x5bd,"add_from_dynobj");\n  }" { (expression_statement "FUN_0016cdf0("../../gold/symtab.cc",0x5bd,"add_from_dynobj");" (call_expression "FUN_0016cdf0("../../gold/symtab.cc",0x5bd,"add_from_dynobj")" identifier (argument_list "("../../gold/symtab.cc",0x5bd,"add_from_dynobj")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""add_from_dynobj"" " string_content ") ))) ;) })) (if_statement "if (param_2[5] == 0) {\n                    \n    FUN_0016cdf0("../../gold/object.h",0x1ea,"input_file");\n  }" if (parenthesized_expression "(param_2[5] == 0)" ( (binary_expression "param_2[5] == 0" (subscript_expression "param_2[5]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                    \n    FUN_0016cdf0("../../gold/object.h",0x1ea,"input_file");\n  }" { (expression_statement "FUN_0016cdf0("../../gold/object.h",0x1ea,"input_file");" (call_expression "FUN_0016cdf0("../../gold/object.h",0x1ea,"input_file")" identifier (argument_list "("../../gold/object.h",0x1ea,"input_file")" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""input_file"" " string_content ") ))) ;) })) (expression_statement "cVar3 = FUN_0016aff0();" (assignment_expression "cVar3 = FUN_0016aff0()" identifier = (call_expression "FUN_0016aff0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (cVar3 != '\0') {\n    uVar6 = gettext("--just-symbols does not make sense with a shared object");\n    FUN_001690a0(uVar6);\n    return;\n  }" if (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    uVar6 = gettext("--just-symbols does not make sense with a shared object");\n    FUN_001690a0(uVar6);\n    return;\n  }" { (expression_statement "uVar6 = gettext("--just-symbols does not make sense with a shared object");" (assignment_expression "uVar6 = gettext("--just-symbols does not make sense with a shared object")" identifier = (call_expression "gettext("--just-symbols does not make sense with a shared object")" identifier (argument_list "("--just-symbols does not make sense with a shared object")" ( (string_literal ""--just-symbols does not make sense with a shared object"" " string_content ") )))) ;) (expression_statement "FUN_001690a0(uVar6);" (call_expression "FUN_001690a0(uVar6)" identifier (argument_list "(uVar6)" ( identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "cVar3 = FUN_001ee080(PTR_DAT_003be6b0);" (assignment_expression "cVar3 = FUN_001ee080(PTR_DAT_003be6b0)" identifier = (call_expression "FUN_001ee080(PTR_DAT_003be6b0)" identifier (argument_list "(PTR_DAT_003be6b0)" ( identifier )))) ;) (if_statement "if ((param_7 == 0) || (cVar3 == '\x01')) {\n    param_7 = 0;\n  }\n  else if (param_8 >> 1 < param_4) {\n    uVar6 = gettext("too few symbol versions");\n    FUN_0019a740(param_2,uVar6);\n    return;\n  }" if (parenthesized_expression "((param_7 == 0) || (cVar3 == '\x01'))" ( (binary_expression "(param_7 == 0) || (cVar3 == '\x01')" (parenthesized_expression "(param_7 == 0)" ( (binary_expression "param_7 == 0" identifier == number_literal) )) || (parenthesized_expression "(cVar3 == '\x01')" ( (binary_expression "cVar3 == '\x01'" identifier == (char_literal "'\x01'" ' escape_sequence ')) ))) )) (compound_statement "{\n    param_7 = 0;\n  }" { (expression_statement "param_7 = 0;" (assignment_expression "param_7 = 0" identifier = number_literal) ;) }) (else_clause "else if (param_8 >> 1 < param_4) {\n    uVar6 = gettext("too few symbol versions");\n    FUN_0019a740(param_2,uVar6);\n    return;\n  }" else (if_statement "if (param_8 >> 1 < param_4) {\n    uVar6 = gettext("too few symbol versions");\n    FUN_0019a740(param_2,uVar6);\n    return;\n  }" if (parenthesized_expression "(param_8 >> 1 < param_4)" ( (binary_expression "param_8 >> 1 < param_4" (binary_expression "param_8 >> 1" identifier >> number_literal) < identifier) )) (compound_statement "{\n    uVar6 = gettext("too few symbol versions");\n    FUN_0019a740(param_2,uVar6);\n    return;\n  }" { (expression_statement "uVar6 = gettext("too few symbol versions");" (assignment_expression "uVar6 = gettext("too few symbol versions")" identifier = (call_expression "gettext("too few symbol versions")" identifier (argument_list "("too few symbol versions")" ( (string_literal ""too few symbol versions"" " string_content ") )))) ;) (expression_statement "FUN_0019a740(param_2,uVar6);" (call_expression "FUN_0019a740(param_2,uVar6)" identifier (argument_list "(param_2,uVar6)" ( identifier , identifier ))) ;) (return_statement "return;" return ;) })))) (expression_statement "local_78 = 0;" (assignment_expression "local_78 = 0" identifier = number_literal) ;) (expression_statement "local_70 = (long *)0x0;" (assignment_expression "local_70 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_68 = (long *)0x0;" (assignment_expression "local_68 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" identifier = number_literal) ;) (if_statement "if (param_4 != 0) {\n    do {\n      if (param_10 != (long *)0x0) {\n        *(undefined8 *)(*param_10 + local_b0 * 8) = 0;\n      }\n      iVar4 = (int)(uint)*(byte *)((long)param_3 + 4) >> 4;\n      local_a0 = param_3;\n      if (iVar4 != 0) {\n        bVar11 = *(byte *)((long)param_3 + 5) & 3;\n        if (1 < (byte)(bVar11 - 1)) {\n          bVar10 = *(byte *)((long)param_3 + 4) & 0xf;\n          if (bVar11 == 3) {\n            uStack_50 = param_3[1];\n            local_48 = param_3[2];\n            local_58._6_2_ = (undefined2)(*param_3 >> 0x30);\n            local_58._0_5_ = (undefined5)*param_3;\n            local_58 = CONCAT26(local_58._6_2_,\n                                CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58)) &\n                       0xfffffcffffffffff;\n            if (bVar10 == 10) goto LAB_0022ef70;\nLAB_0022ef0b:\n            uVar7 = local_58 & 0xffffffff;\n            puVar1 = &local_58;\n            ppuVar2 = &local_98;\n          }\n          else {\n            if (bVar10 == 10) {\n              local_48 = param_3[2];\n              local_58 = *param_3;\n              uStack_50 = param_3[1];\nLAB_0022ef70:\n              local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58);\n              goto LAB_0022ef0b;\n            }\n            ppuVar2 = &local_a0;\n            uVar7 = (ulong)(uint)*param_3;\n            puVar1 = param_3;\n          }\n          local_98 = &local_58;\n          if (uVar7 < param_6) {\n            uVar13 = *(ushort *)((long)puVar1 + 6);\n            uVar5 = (uint)uVar13;\n            if (uVar13 < 0xff00) {\n              if (uVar13 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = '\x01';\nLAB_0022ec44:\n              *param_11 = *param_11 + 1;\n              if (param_7 != 0) {\n                local_bc = *(ushort *)(param_7 + local_b0 * 2);\n                uVar13 = local_bc & 0x7fff;\n                if (uVar13 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80);\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\n            else {\n              local_b9 = '\0';\n              if (uVar13 != 0xffff) goto LAB_0022ec44;\n              lVar9 = param_2[8];\n              if (lVar9 == 0) {\n                lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);\n                param_2[8] = lVar9;\n              }\n              uVar5 = FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff);\n              if (uVar5 != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (param_7 == 0) {\n                local_b9 = '\x01';\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = '\x01';\n              local_bc = *(ushort *)(param_7 + local_b0 * 2);\n              uVar13 = local_bc & 0x7fff;\nLAB_0022ed91:\n                    \n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88);\n              if (1 < uVar13) {\n                pcVar12 = "versym for symbol %zu out of range: %u";\n                if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    \n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }\n                uVar6 = gettext(pcVar12);\n                FUN_0019a740(param_2,uVar6,local_b0,uVar13);\n                goto LAB_0022ec88;\n              }\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\nLAB_0022ee87:\n            if (local_90 != 0) {\n              bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n              if (((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)\n                 ) {\nLAB_0022eeb4:\n                if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    \n                    \n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }\n              }\n              else if (bVar11 == 0) {\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (param_10 != (long *)0x0) {\n                *(long *)(*param_10 + local_b0 * 8) = local_90;\n              }\n            }\n          }\n          else {\n            uVar6 = gettext("bad symbol name offset %u at %zu");\n            FUN_0019a740(param_2,uVar6,uVar7,local_b0);\n          }\n        }\n      }\nLAB_0022ec88:\n      local_b0 = local_b0 + 1;\n      param_3 = param_3 + 3;\n    } while (param_4 != local_b0);\n  }" if (parenthesized_expression "(param_4 != 0)" ( (binary_expression "param_4 != 0" identifier != number_literal) )) (compound_statement "{\n    do {\n      if (param_10 != (long *)0x0) {\n        *(undefined8 *)(*param_10 + local_b0 * 8) = 0;\n      }\n      iVar4 = (int)(uint)*(byte *)((long)param_3 + 4) >> 4;\n      local_a0 = param_3;\n      if (iVar4 != 0) {\n        bVar11 = *(byte *)((long)param_3 + 5) & 3;\n        if (1 < (byte)(bVar11 - 1)) {\n          bVar10 = *(byte *)((long)param_3 + 4) & 0xf;\n          if (bVar11 == 3) {\n            uStack_50 = param_3[1];\n            local_48 = param_3[2];\n            local_58._6_2_ = (undefined2)(*param_3 >> 0x30);\n            local_58._0_5_ = (undefined5)*param_3;\n            local_58 = CONCAT26(local_58._6_2_,\n                                CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58)) &\n                       0xfffffcffffffffff;\n            if (bVar10 == 10) goto LAB_0022ef70;\nLAB_0022ef0b:\n            uVar7 = local_58 & 0xffffffff;\n            puVar1 = &local_58;\n            ppuVar2 = &local_98;\n          }\n          else {\n            if (bVar10 == 10) {\n              local_48 = param_3[2];\n              local_58 = *param_3;\n              uStack_50 = param_3[1];\nLAB_0022ef70:\n              local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58);\n              goto LAB_0022ef0b;\n            }\n            ppuVar2 = &local_a0;\n            uVar7 = (ulong)(uint)*param_3;\n            puVar1 = param_3;\n          }\n          local_98 = &local_58;\n          if (uVar7 < param_6) {\n            uVar13 = *(ushort *)((long)puVar1 + 6);\n            uVar5 = (uint)uVar13;\n            if (uVar13 < 0xff00) {\n              if (uVar13 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = '\x01';\nLAB_0022ec44:\n              *param_11 = *param_11 + 1;\n              if (param_7 != 0) {\n                local_bc = *(ushort *)(param_7 + local_b0 * 2);\n                uVar13 = local_bc & 0x7fff;\n                if (uVar13 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80);\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\n            else {\n              local_b9 = '\0';\n              if (uVar13 != 0xffff) goto LAB_0022ec44;\n              lVar9 = param_2[8];\n              if (lVar9 == 0) {\n                lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);\n                param_2[8] = lVar9;\n              }\n              uVar5 = FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff);\n              if (uVar5 != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (param_7 == 0) {\n                local_b9 = '\x01';\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = '\x01';\n              local_bc = *(ushort *)(param_7 + local_b0 * 2);\n              uVar13 = local_bc & 0x7fff;\nLAB_0022ed91:\n                    \n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88);\n              if (1 < uVar13) {\n                pcVar12 = "versym for symbol %zu out of range: %u";\n                if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    \n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }\n                uVar6 = gettext(pcVar12);\n                FUN_0019a740(param_2,uVar6,local_b0,uVar13);\n                goto LAB_0022ec88;\n              }\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\nLAB_0022ee87:\n            if (local_90 != 0) {\n              bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n              if (((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)\n                 ) {\nLAB_0022eeb4:\n                if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    \n                    \n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }\n              }\n              else if (bVar11 == 0) {\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (param_10 != (long *)0x0) {\n                *(long *)(*param_10 + local_b0 * 8) = local_90;\n              }\n            }\n          }\n          else {\n            uVar6 = gettext("bad symbol name offset %u at %zu");\n            FUN_0019a740(param_2,uVar6,uVar7,local_b0);\n          }\n        }\n      }\nLAB_0022ec88:\n      local_b0 = local_b0 + 1;\n      param_3 = param_3 + 3;\n    } while (param_4 != local_b0);\n  }" { (do_statement "do {\n      if (param_10 != (long *)0x0) {\n        *(undefined8 *)(*param_10 + local_b0 * 8) = 0;\n      }\n      iVar4 = (int)(uint)*(byte *)((long)param_3 + 4) >> 4;\n      local_a0 = param_3;\n      if (iVar4 != 0) {\n        bVar11 = *(byte *)((long)param_3 + 5) & 3;\n        if (1 < (byte)(bVar11 - 1)) {\n          bVar10 = *(byte *)((long)param_3 + 4) & 0xf;\n          if (bVar11 == 3) {\n            uStack_50 = param_3[1];\n            local_48 = param_3[2];\n            local_58._6_2_ = (undefined2)(*param_3 >> 0x30);\n            local_58._0_5_ = (undefined5)*param_3;\n            local_58 = CONCAT26(local_58._6_2_,\n                                CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58)) &\n                       0xfffffcffffffffff;\n            if (bVar10 == 10) goto LAB_0022ef70;\nLAB_0022ef0b:\n            uVar7 = local_58 & 0xffffffff;\n            puVar1 = &local_58;\n            ppuVar2 = &local_98;\n          }\n          else {\n            if (bVar10 == 10) {\n              local_48 = param_3[2];\n              local_58 = *param_3;\n              uStack_50 = param_3[1];\nLAB_0022ef70:\n              local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58);\n              goto LAB_0022ef0b;\n            }\n            ppuVar2 = &local_a0;\n            uVar7 = (ulong)(uint)*param_3;\n            puVar1 = param_3;\n          }\n          local_98 = &local_58;\n          if (uVar7 < param_6) {\n            uVar13 = *(ushort *)((long)puVar1 + 6);\n            uVar5 = (uint)uVar13;\n            if (uVar13 < 0xff00) {\n              if (uVar13 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = '\x01';\nLAB_0022ec44:\n              *param_11 = *param_11 + 1;\n              if (param_7 != 0) {\n                local_bc = *(ushort *)(param_7 + local_b0 * 2);\n                uVar13 = local_bc & 0x7fff;\n                if (uVar13 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80);\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\n            else {\n              local_b9 = '\0';\n              if (uVar13 != 0xffff) goto LAB_0022ec44;\n              lVar9 = param_2[8];\n              if (lVar9 == 0) {\n                lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);\n                param_2[8] = lVar9;\n              }\n              uVar5 = FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff);\n              if (uVar5 != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (param_7 == 0) {\n                local_b9 = '\x01';\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = '\x01';\n              local_bc = *(ushort *)(param_7 + local_b0 * 2);\n              uVar13 = local_bc & 0x7fff;\nLAB_0022ed91:\n                    \n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88);\n              if (1 < uVar13) {\n                pcVar12 = "versym for symbol %zu out of range: %u";\n                if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    \n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }\n                uVar6 = gettext(pcVar12);\n                FUN_0019a740(param_2,uVar6,local_b0,uVar13);\n                goto LAB_0022ec88;\n              }\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\nLAB_0022ee87:\n            if (local_90 != 0) {\n              bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n              if (((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)\n                 ) {\nLAB_0022eeb4:\n                if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    \n                    \n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }\n              }\n              else if (bVar11 == 0) {\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (param_10 != (long *)0x0) {\n                *(long *)(*param_10 + local_b0 * 8) = local_90;\n              }\n            }\n          }\n          else {\n            uVar6 = gettext("bad symbol name offset %u at %zu");\n            FUN_0019a740(param_2,uVar6,uVar7,local_b0);\n          }\n        }\n      }\nLAB_0022ec88:\n      local_b0 = local_b0 + 1;\n      param_3 = param_3 + 3;\n    } while (param_4 != local_b0);" do (compound_statement "{\n      if (param_10 != (long *)0x0) {\n        *(undefined8 *)(*param_10 + local_b0 * 8) = 0;\n      }\n      iVar4 = (int)(uint)*(byte *)((long)param_3 + 4) >> 4;\n      local_a0 = param_3;\n      if (iVar4 != 0) {\n        bVar11 = *(byte *)((long)param_3 + 5) & 3;\n        if (1 < (byte)(bVar11 - 1)) {\n          bVar10 = *(byte *)((long)param_3 + 4) & 0xf;\n          if (bVar11 == 3) {\n            uStack_50 = param_3[1];\n            local_48 = param_3[2];\n            local_58._6_2_ = (undefined2)(*param_3 >> 0x30);\n            local_58._0_5_ = (undefined5)*param_3;\n            local_58 = CONCAT26(local_58._6_2_,\n                                CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58)) &\n                       0xfffffcffffffffff;\n            if (bVar10 == 10) goto LAB_0022ef70;\nLAB_0022ef0b:\n            uVar7 = local_58 & 0xffffffff;\n            puVar1 = &local_58;\n            ppuVar2 = &local_98;\n          }\n          else {\n            if (bVar10 == 10) {\n              local_48 = param_3[2];\n              local_58 = *param_3;\n              uStack_50 = param_3[1];\nLAB_0022ef70:\n              local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58);\n              goto LAB_0022ef0b;\n            }\n            ppuVar2 = &local_a0;\n            uVar7 = (ulong)(uint)*param_3;\n            puVar1 = param_3;\n          }\n          local_98 = &local_58;\n          if (uVar7 < param_6) {\n            uVar13 = *(ushort *)((long)puVar1 + 6);\n            uVar5 = (uint)uVar13;\n            if (uVar13 < 0xff00) {\n              if (uVar13 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = '\x01';\nLAB_0022ec44:\n              *param_11 = *param_11 + 1;\n              if (param_7 != 0) {\n                local_bc = *(ushort *)(param_7 + local_b0 * 2);\n                uVar13 = local_bc & 0x7fff;\n                if (uVar13 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80);\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\n            else {\n              local_b9 = '\0';\n              if (uVar13 != 0xffff) goto LAB_0022ec44;\n              lVar9 = param_2[8];\n              if (lVar9 == 0) {\n                lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);\n                param_2[8] = lVar9;\n              }\n              uVar5 = FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff);\n              if (uVar5 != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (param_7 == 0) {\n                local_b9 = '\x01';\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = '\x01';\n              local_bc = *(ushort *)(param_7 + local_b0 * 2);\n              uVar13 = local_bc & 0x7fff;\nLAB_0022ed91:\n                    \n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88);\n              if (1 < uVar13) {\n                pcVar12 = "versym for symbol %zu out of range: %u";\n                if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    \n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }\n                uVar6 = gettext(pcVar12);\n                FUN_0019a740(param_2,uVar6,local_b0,uVar13);\n                goto LAB_0022ec88;\n              }\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\nLAB_0022ee87:\n            if (local_90 != 0) {\n              bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n              if (((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)\n                 ) {\nLAB_0022eeb4:\n                if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    \n                    \n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }\n              }\n              else if (bVar11 == 0) {\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (param_10 != (long *)0x0) {\n                *(long *)(*param_10 + local_b0 * 8) = local_90;\n              }\n            }\n          }\n          else {\n            uVar6 = gettext("bad symbol name offset %u at %zu");\n            FUN_0019a740(param_2,uVar6,uVar7,local_b0);\n          }\n        }\n      }\nLAB_0022ec88:\n      local_b0 = local_b0 + 1;\n      param_3 = param_3 + 3;\n    }" { (if_statement "if (param_10 != (long *)0x0) {\n        *(undefined8 *)(*param_10 + local_b0 * 8) = 0;\n      }" if (parenthesized_expression "(param_10 != (long *)0x0)" ( (binary_expression "param_10 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *(undefined8 *)(*param_10 + local_b0 * 8) = 0;\n      }" { (expression_statement "*(undefined8 *)(*param_10 + local_b0 * 8) = 0;" (assignment_expression "*(undefined8 *)(*param_10 + local_b0 * 8) = 0" (pointer_expression "*(undefined8 *)(*param_10 + local_b0 * 8)" * (cast_expression "(undefined8 *)(*param_10 + local_b0 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_10 + local_b0 * 8)" ( (binary_expression "*param_10 + local_b0 * 8" (pointer_expression "*param_10" * identifier) + (binary_expression "local_b0 * 8" identifier * number_literal)) )))) = number_literal) ;) })) (expression_statement "iVar4 = (int)(uint)*(byte *)((long)param_3 + 4) >> 4;" (assignment_expression "iVar4 = (int)(uint)*(byte *)((long)param_3 + 4) >> 4" identifier = (binary_expression "(int)(uint)*(byte *)((long)param_3 + 4) >> 4" (binary_expression "(int)(uint)*(byte *)((long)param_3 + 4)" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)((long)param_3 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_3 + 4)" ( (binary_expression "(long)param_3 + 4" (cast_expression "(long)param_3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) >> number_literal)) ;) (expression_statement "local_a0 = param_3;" (assignment_expression "local_a0 = param_3" identifier = identifier) ;) (if_statement "if (iVar4 != 0) {\n        bVar11 = *(byte *)((long)param_3 + 5) & 3;\n        if (1 < (byte)(bVar11 - 1)) {\n          bVar10 = *(byte *)((long)param_3 + 4) & 0xf;\n          if (bVar11 == 3) {\n            uStack_50 = param_3[1];\n            local_48 = param_3[2];\n            local_58._6_2_ = (undefined2)(*param_3 >> 0x30);\n            local_58._0_5_ = (undefined5)*param_3;\n            local_58 = CONCAT26(local_58._6_2_,\n                                CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58)) &\n                       0xfffffcffffffffff;\n            if (bVar10 == 10) goto LAB_0022ef70;\nLAB_0022ef0b:\n            uVar7 = local_58 & 0xffffffff;\n            puVar1 = &local_58;\n            ppuVar2 = &local_98;\n          }\n          else {\n            if (bVar10 == 10) {\n              local_48 = param_3[2];\n              local_58 = *param_3;\n              uStack_50 = param_3[1];\nLAB_0022ef70:\n              local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58);\n              goto LAB_0022ef0b;\n            }\n            ppuVar2 = &local_a0;\n            uVar7 = (ulong)(uint)*param_3;\n            puVar1 = param_3;\n          }\n          local_98 = &local_58;\n          if (uVar7 < param_6) {\n            uVar13 = *(ushort *)((long)puVar1 + 6);\n            uVar5 = (uint)uVar13;\n            if (uVar13 < 0xff00) {\n              if (uVar13 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = '\x01';\nLAB_0022ec44:\n              *param_11 = *param_11 + 1;\n              if (param_7 != 0) {\n                local_bc = *(ushort *)(param_7 + local_b0 * 2);\n                uVar13 = local_bc & 0x7fff;\n                if (uVar13 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80);\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\n            else {\n              local_b9 = '\0';\n              if (uVar13 != 0xffff) goto LAB_0022ec44;\n              lVar9 = param_2[8];\n              if (lVar9 == 0) {\n                lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);\n                param_2[8] = lVar9;\n              }\n              uVar5 = FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff);\n              if (uVar5 != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (param_7 == 0) {\n                local_b9 = '\x01';\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = '\x01';\n              local_bc = *(ushort *)(param_7 + local_b0 * 2);\n              uVar13 = local_bc & 0x7fff;\nLAB_0022ed91:\n                    \n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88);\n              if (1 < uVar13) {\n                pcVar12 = "versym for symbol %zu out of range: %u";\n                if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    \n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }\n                uVar6 = gettext(pcVar12);\n                FUN_0019a740(param_2,uVar6,local_b0,uVar13);\n                goto LAB_0022ec88;\n              }\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\nLAB_0022ee87:\n            if (local_90 != 0) {\n              bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n              if (((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)\n                 ) {\nLAB_0022eeb4:\n                if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    \n                    \n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }\n              }\n              else if (bVar11 == 0) {\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (param_10 != (long *)0x0) {\n                *(long *)(*param_10 + local_b0 * 8) = local_90;\n              }\n            }\n          }\n          else {\n            uVar6 = gettext("bad symbol name offset %u at %zu");\n            FUN_0019a740(param_2,uVar6,uVar7,local_b0);\n          }\n        }\n      }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        bVar11 = *(byte *)((long)param_3 + 5) & 3;\n        if (1 < (byte)(bVar11 - 1)) {\n          bVar10 = *(byte *)((long)param_3 + 4) & 0xf;\n          if (bVar11 == 3) {\n            uStack_50 = param_3[1];\n            local_48 = param_3[2];\n            local_58._6_2_ = (undefined2)(*param_3 >> 0x30);\n            local_58._0_5_ = (undefined5)*param_3;\n            local_58 = CONCAT26(local_58._6_2_,\n                                CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58)) &\n                       0xfffffcffffffffff;\n            if (bVar10 == 10) goto LAB_0022ef70;\nLAB_0022ef0b:\n            uVar7 = local_58 & 0xffffffff;\n            puVar1 = &local_58;\n            ppuVar2 = &local_98;\n          }\n          else {\n            if (bVar10 == 10) {\n              local_48 = param_3[2];\n              local_58 = *param_3;\n              uStack_50 = param_3[1];\nLAB_0022ef70:\n              local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58);\n              goto LAB_0022ef0b;\n            }\n            ppuVar2 = &local_a0;\n            uVar7 = (ulong)(uint)*param_3;\n            puVar1 = param_3;\n          }\n          local_98 = &local_58;\n          if (uVar7 < param_6) {\n            uVar13 = *(ushort *)((long)puVar1 + 6);\n            uVar5 = (uint)uVar13;\n            if (uVar13 < 0xff00) {\n              if (uVar13 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = '\x01';\nLAB_0022ec44:\n              *param_11 = *param_11 + 1;\n              if (param_7 != 0) {\n                local_bc = *(ushort *)(param_7 + local_b0 * 2);\n                uVar13 = local_bc & 0x7fff;\n                if (uVar13 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80);\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\n            else {\n              local_b9 = '\0';\n              if (uVar13 != 0xffff) goto LAB_0022ec44;\n              lVar9 = param_2[8];\n              if (lVar9 == 0) {\n                lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);\n                param_2[8] = lVar9;\n              }\n              uVar5 = FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff);\n              if (uVar5 != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (param_7 == 0) {\n                local_b9 = '\x01';\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = '\x01';\n              local_bc = *(ushort *)(param_7 + local_b0 * 2);\n              uVar13 = local_bc & 0x7fff;\nLAB_0022ed91:\n                    \n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88);\n              if (1 < uVar13) {\n                pcVar12 = "versym for symbol %zu out of range: %u";\n                if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    \n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }\n                uVar6 = gettext(pcVar12);\n                FUN_0019a740(param_2,uVar6,local_b0,uVar13);\n                goto LAB_0022ec88;\n              }\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\nLAB_0022ee87:\n            if (local_90 != 0) {\n              bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n              if (((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)\n                 ) {\nLAB_0022eeb4:\n                if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    \n                    \n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }\n              }\n              else if (bVar11 == 0) {\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (param_10 != (long *)0x0) {\n                *(long *)(*param_10 + local_b0 * 8) = local_90;\n              }\n            }\n          }\n          else {\n            uVar6 = gettext("bad symbol name offset %u at %zu");\n            FUN_0019a740(param_2,uVar6,uVar7,local_b0);\n          }\n        }\n      }" { (expression_statement "bVar11 = *(byte *)((long)param_3 + 5) & 3;" (assignment_expression "bVar11 = *(byte *)((long)param_3 + 5) & 3" identifier = (binary_expression "*(byte *)((long)param_3 + 5) & 3" (pointer_expression "*(byte *)((long)param_3 + 5)" * (cast_expression "(byte *)((long)param_3 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_3 + 5)" ( (binary_expression "(long)param_3 + 5" (cast_expression "(long)param_3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal)) ;) (if_statement "if (1 < (byte)(bVar11 - 1)) {\n          bVar10 = *(byte *)((long)param_3 + 4) & 0xf;\n          if (bVar11 == 3) {\n            uStack_50 = param_3[1];\n            local_48 = param_3[2];\n            local_58._6_2_ = (undefined2)(*param_3 >> 0x30);\n            local_58._0_5_ = (undefined5)*param_3;\n            local_58 = CONCAT26(local_58._6_2_,\n                                CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58)) &\n                       0xfffffcffffffffff;\n            if (bVar10 == 10) goto LAB_0022ef70;\nLAB_0022ef0b:\n            uVar7 = local_58 & 0xffffffff;\n            puVar1 = &local_58;\n            ppuVar2 = &local_98;\n          }\n          else {\n            if (bVar10 == 10) {\n              local_48 = param_3[2];\n              local_58 = *param_3;\n              uStack_50 = param_3[1];\nLAB_0022ef70:\n              local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58);\n              goto LAB_0022ef0b;\n            }\n            ppuVar2 = &local_a0;\n            uVar7 = (ulong)(uint)*param_3;\n            puVar1 = param_3;\n          }\n          local_98 = &local_58;\n          if (uVar7 < param_6) {\n            uVar13 = *(ushort *)((long)puVar1 + 6);\n            uVar5 = (uint)uVar13;\n            if (uVar13 < 0xff00) {\n              if (uVar13 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = '\x01';\nLAB_0022ec44:\n              *param_11 = *param_11 + 1;\n              if (param_7 != 0) {\n                local_bc = *(ushort *)(param_7 + local_b0 * 2);\n                uVar13 = local_bc & 0x7fff;\n                if (uVar13 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80);\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\n            else {\n              local_b9 = '\0';\n              if (uVar13 != 0xffff) goto LAB_0022ec44;\n              lVar9 = param_2[8];\n              if (lVar9 == 0) {\n                lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);\n                param_2[8] = lVar9;\n              }\n              uVar5 = FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff);\n              if (uVar5 != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (param_7 == 0) {\n                local_b9 = '\x01';\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = '\x01';\n              local_bc = *(ushort *)(param_7 + local_b0 * 2);\n              uVar13 = local_bc & 0x7fff;\nLAB_0022ed91:\n                    \n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88);\n              if (1 < uVar13) {\n                pcVar12 = "versym for symbol %zu out of range: %u";\n                if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    \n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }\n                uVar6 = gettext(pcVar12);\n                FUN_0019a740(param_2,uVar6,local_b0,uVar13);\n                goto LAB_0022ec88;\n              }\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\nLAB_0022ee87:\n            if (local_90 != 0) {\n              bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n              if (((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)\n                 ) {\nLAB_0022eeb4:\n                if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    \n                    \n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }\n              }\n              else if (bVar11 == 0) {\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (param_10 != (long *)0x0) {\n                *(long *)(*param_10 + local_b0 * 8) = local_90;\n              }\n            }\n          }\n          else {\n            uVar6 = gettext("bad symbol name offset %u at %zu");\n            FUN_0019a740(param_2,uVar6,uVar7,local_b0);\n          }\n        }" if (parenthesized_expression "(1 < (byte)(bVar11 - 1))" ( (binary_expression "1 < (byte)(bVar11 - 1)" number_literal < (call_expression "(byte)(bVar11 - 1)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar11 - 1)" ( (binary_expression "bVar11 - 1" identifier - number_literal) )))) )) (compound_statement "{\n          bVar10 = *(byte *)((long)param_3 + 4) & 0xf;\n          if (bVar11 == 3) {\n            uStack_50 = param_3[1];\n            local_48 = param_3[2];\n            local_58._6_2_ = (undefined2)(*param_3 >> 0x30);\n            local_58._0_5_ = (undefined5)*param_3;\n            local_58 = CONCAT26(local_58._6_2_,\n                                CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58)) &\n                       0xfffffcffffffffff;\n            if (bVar10 == 10) goto LAB_0022ef70;\nLAB_0022ef0b:\n            uVar7 = local_58 & 0xffffffff;\n            puVar1 = &local_58;\n            ppuVar2 = &local_98;\n          }\n          else {\n            if (bVar10 == 10) {\n              local_48 = param_3[2];\n              local_58 = *param_3;\n              uStack_50 = param_3[1];\nLAB_0022ef70:\n              local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58);\n              goto LAB_0022ef0b;\n            }\n            ppuVar2 = &local_a0;\n            uVar7 = (ulong)(uint)*param_3;\n            puVar1 = param_3;\n          }\n          local_98 = &local_58;\n          if (uVar7 < param_6) {\n            uVar13 = *(ushort *)((long)puVar1 + 6);\n            uVar5 = (uint)uVar13;\n            if (uVar13 < 0xff00) {\n              if (uVar13 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = '\x01';\nLAB_0022ec44:\n              *param_11 = *param_11 + 1;\n              if (param_7 != 0) {\n                local_bc = *(ushort *)(param_7 + local_b0 * 2);\n                uVar13 = local_bc & 0x7fff;\n                if (uVar13 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80);\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\n            else {\n              local_b9 = '\0';\n              if (uVar13 != 0xffff) goto LAB_0022ec44;\n              lVar9 = param_2[8];\n              if (lVar9 == 0) {\n                lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);\n                param_2[8] = lVar9;\n              }\n              uVar5 = FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff);\n              if (uVar5 != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (param_7 == 0) {\n                local_b9 = '\x01';\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = '\x01';\n              local_bc = *(ushort *)(param_7 + local_b0 * 2);\n              uVar13 = local_bc & 0x7fff;\nLAB_0022ed91:\n                    \n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88);\n              if (1 < uVar13) {\n                pcVar12 = "versym for symbol %zu out of range: %u";\n                if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    \n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }\n                uVar6 = gettext(pcVar12);\n                FUN_0019a740(param_2,uVar6,local_b0,uVar13);\n                goto LAB_0022ec88;\n              }\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\nLAB_0022ee87:\n            if (local_90 != 0) {\n              bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n              if (((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)\n                 ) {\nLAB_0022eeb4:\n                if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    \n                    \n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }\n              }\n              else if (bVar11 == 0) {\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (param_10 != (long *)0x0) {\n                *(long *)(*param_10 + local_b0 * 8) = local_90;\n              }\n            }\n          }\n          else {\n            uVar6 = gettext("bad symbol name offset %u at %zu");\n            FUN_0019a740(param_2,uVar6,uVar7,local_b0);\n          }\n        }" { (expression_statement "bVar10 = *(byte *)((long)param_3 + 4) & 0xf;" (assignment_expression "bVar10 = *(byte *)((long)param_3 + 4) & 0xf" identifier = (binary_expression "*(byte *)((long)param_3 + 4) & 0xf" (pointer_expression "*(byte *)((long)param_3 + 4)" * (cast_expression "(byte *)((long)param_3 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_3 + 4)" ( (binary_expression "(long)param_3 + 4" (cast_expression "(long)param_3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal)) ;) (if_statement "if (bVar11 == 3) {\n            uStack_50 = param_3[1];\n            local_48 = param_3[2];\n            local_58._6_2_ = (undefined2)(*param_3 >> 0x30);\n            local_58._0_5_ = (undefined5)*param_3;\n            local_58 = CONCAT26(local_58._6_2_,\n                                CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58)) &\n                       0xfffffcffffffffff;\n            if (bVar10 == 10) goto LAB_0022ef70;\nLAB_0022ef0b:\n            uVar7 = local_58 & 0xffffffff;\n            puVar1 = &local_58;\n            ppuVar2 = &local_98;\n          }\n          else {\n            if (bVar10 == 10) {\n              local_48 = param_3[2];\n              local_58 = *param_3;\n              uStack_50 = param_3[1];\nLAB_0022ef70:\n              local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58);\n              goto LAB_0022ef0b;\n            }\n            ppuVar2 = &local_a0;\n            uVar7 = (ulong)(uint)*param_3;\n            puVar1 = param_3;\n          }" if (parenthesized_expression "(bVar11 == 3)" ( (binary_expression "bVar11 == 3" identifier == number_literal) )) (compound_statement "{\n            uStack_50 = param_3[1];\n            local_48 = param_3[2];\n            local_58._6_2_ = (undefined2)(*param_3 >> 0x30);\n            local_58._0_5_ = (undefined5)*param_3;\n            local_58 = CONCAT26(local_58._6_2_,\n                                CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58)) &\n                       0xfffffcffffffffff;\n            if (bVar10 == 10) goto LAB_0022ef70;\nLAB_0022ef0b:\n            uVar7 = local_58 & 0xffffffff;\n            puVar1 = &local_58;\n            ppuVar2 = &local_98;\n          }" { (expression_statement "uStack_50 = param_3[1];" (assignment_expression "uStack_50 = param_3[1]" identifier = (subscript_expression "param_3[1]" identifier [ number_literal ])) ;) (expression_statement "local_48 = param_3[2];" (assignment_expression "local_48 = param_3[2]" identifier = (subscript_expression "param_3[2]" identifier [ number_literal ])) ;) (expression_statement "local_58._6_2_ = (undefined2)(*param_3 >> 0x30);" (assignment_expression "local_58._6_2_ = (undefined2)(*param_3 >> 0x30)" (field_expression "local_58._6_2_" identifier . field_identifier) = (call_expression "(undefined2)(*param_3 >> 0x30)" (parenthesized_expression "(undefined2)" ( identifier )) (argument_list "(*param_3 >> 0x30)" ( (binary_expression "*param_3 >> 0x30" (pointer_expression "*param_3" * identifier) >> number_literal) )))) ;) (expression_statement "local_58._0_5_ = (undefined5)*param_3;" (assignment_expression "local_58._0_5_ = (undefined5)*param_3" (field_expression "local_58._0_5_" identifier . field_identifier) = (binary_expression "(undefined5)*param_3" (parenthesized_expression "(undefined5)" ( identifier )) * identifier)) ;) (expression_statement "local_58 = CONCAT26(local_58._6_2_,\n                                CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58)) &\n                       0xfffffcffffffffff;" (assignment_expression "local_58 = CONCAT26(local_58._6_2_,\n                                CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58)) &\n                       0xfffffcffffffffff" identifier = (binary_expression "CONCAT26(local_58._6_2_,\n                                CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58)) &\n                       0xfffffcffffffffff" (call_expression "CONCAT26(local_58._6_2_,\n                                CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58))" identifier (argument_list "(local_58._6_2_,\n                                CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58))" ( (field_expression "local_58._6_2_" identifier . field_identifier) , (call_expression "CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58)" identifier (argument_list "(*(byte *)((long)param_3 + 5),(undefined5)local_58)" ( (pointer_expression "*(byte *)((long)param_3 + 5)" * (cast_expression "(byte *)((long)param_3 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_3 + 5)" ( (binary_expression "(long)param_3 + 5" (cast_expression "(long)param_3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) , (cast_expression "(undefined5)local_58" ( (type_descriptor "undefined5" type_identifier) ) identifier) ))) ))) & number_literal)) ;) (if_statement "if (bVar10 == 10) goto LAB_0022ef70;" if (parenthesized_expression "(bVar10 == 10)" ( (binary_expression "bVar10 == 10" identifier == number_literal) )) (goto_statement "goto LAB_0022ef70;" goto statement_identifier ;)) (labeled_statement "LAB_0022ef0b:\n            uVar7 = local_58 & 0xffffffff;" statement_identifier : (expression_statement "uVar7 = local_58 & 0xffffffff;" (assignment_expression "uVar7 = local_58 & 0xffffffff" identifier = (binary_expression "local_58 & 0xffffffff" identifier & number_literal)) ;)) (expression_statement "puVar1 = &local_58;" (assignment_expression "puVar1 = &local_58" identifier = (pointer_expression "&local_58" & identifier)) ;) (expression_statement "ppuVar2 = &local_98;" (assignment_expression "ppuVar2 = &local_98" identifier = (pointer_expression "&local_98" & identifier)) ;) }) (else_clause "else {\n            if (bVar10 == 10) {\n              local_48 = param_3[2];\n              local_58 = *param_3;\n              uStack_50 = param_3[1];\nLAB_0022ef70:\n              local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58);\n              goto LAB_0022ef0b;\n            }\n            ppuVar2 = &local_a0;\n            uVar7 = (ulong)(uint)*param_3;\n            puVar1 = param_3;\n          }" else (compound_statement "{\n            if (bVar10 == 10) {\n              local_48 = param_3[2];\n              local_58 = *param_3;\n              uStack_50 = param_3[1];\nLAB_0022ef70:\n              local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58);\n              goto LAB_0022ef0b;\n            }\n            ppuVar2 = &local_a0;\n            uVar7 = (ulong)(uint)*param_3;\n            puVar1 = param_3;\n          }" { (if_statement "if (bVar10 == 10) {\n              local_48 = param_3[2];\n              local_58 = *param_3;\n              uStack_50 = param_3[1];\nLAB_0022ef70:\n              local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58);\n              goto LAB_0022ef0b;\n            }" if (parenthesized_expression "(bVar10 == 10)" ( (binary_expression "bVar10 == 10" identifier == number_literal) )) (compound_statement "{\n              local_48 = param_3[2];\n              local_58 = *param_3;\n              uStack_50 = param_3[1];\nLAB_0022ef70:\n              local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58);\n              goto LAB_0022ef0b;\n            }" { (expression_statement "local_48 = param_3[2];" (assignment_expression "local_48 = param_3[2]" identifier = (subscript_expression "param_3[2]" identifier [ number_literal ])) ;) (expression_statement "local_58 = *param_3;" (assignment_expression "local_58 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "uStack_50 = param_3[1];" (assignment_expression "uStack_50 = param_3[1]" identifier = (subscript_expression "param_3[1]" identifier [ number_literal ])) ;) (labeled_statement "LAB_0022ef70:\n              local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58);" statement_identifier : (expression_statement "local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58);" (assignment_expression "local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58)" (field_expression "local_58._0_5_" identifier . field_identifier) = (call_expression "CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58)" identifier (argument_list "((char)(iVar4 << 4) + '\x02',(undefined4)local_58)" ( (binary_expression "(char)(iVar4 << 4) + '\x02'" (cast_expression "(char)(iVar4 << 4)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(iVar4 << 4)" ( (binary_expression "iVar4 << 4" identifier << number_literal) ))) + (char_literal "'\x02'" ' escape_sequence ')) , (cast_expression "(undefined4)local_58" ( (type_descriptor "undefined4" type_identifier) ) identifier) )))) ;)) (goto_statement "goto LAB_0022ef0b;" goto statement_identifier ;) })) (expression_statement "ppuVar2 = &local_a0;" (assignment_expression "ppuVar2 = &local_a0" identifier = (pointer_expression "&local_a0" & identifier)) ;) (expression_statement "uVar7 = (ulong)(uint)*param_3;" (assignment_expression "uVar7 = (ulong)(uint)*param_3" identifier = (binary_expression "(ulong)(uint)*param_3" (call_expression "(ulong)(uint)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uint)" ( identifier ))) * identifier)) ;) (expression_statement "puVar1 = param_3;" (assignment_expression "puVar1 = param_3" identifier = identifier) ;) }))) (expression_statement "local_98 = &local_58;" (assignment_expression "local_98 = &local_58" identifier = (pointer_expression "&local_58" & identifier)) ;) (if_statement "if (uVar7 < param_6) {\n            uVar13 = *(ushort *)((long)puVar1 + 6);\n            uVar5 = (uint)uVar13;\n            if (uVar13 < 0xff00) {\n              if (uVar13 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = '\x01';\nLAB_0022ec44:\n              *param_11 = *param_11 + 1;\n              if (param_7 != 0) {\n                local_bc = *(ushort *)(param_7 + local_b0 * 2);\n                uVar13 = local_bc & 0x7fff;\n                if (uVar13 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80);\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\n            else {\n              local_b9 = '\0';\n              if (uVar13 != 0xffff) goto LAB_0022ec44;\n              lVar9 = param_2[8];\n              if (lVar9 == 0) {\n                lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);\n                param_2[8] = lVar9;\n              }\n              uVar5 = FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff);\n              if (uVar5 != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (param_7 == 0) {\n                local_b9 = '\x01';\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = '\x01';\n              local_bc = *(ushort *)(param_7 + local_b0 * 2);\n              uVar13 = local_bc & 0x7fff;\nLAB_0022ed91:\n                    \n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88);\n              if (1 < uVar13) {\n                pcVar12 = "versym for symbol %zu out of range: %u";\n                if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    \n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }\n                uVar6 = gettext(pcVar12);\n                FUN_0019a740(param_2,uVar6,local_b0,uVar13);\n                goto LAB_0022ec88;\n              }\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\nLAB_0022ee87:\n            if (local_90 != 0) {\n              bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n              if (((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)\n                 ) {\nLAB_0022eeb4:\n                if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    \n                    \n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }\n              }\n              else if (bVar11 == 0) {\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (param_10 != (long *)0x0) {\n                *(long *)(*param_10 + local_b0 * 8) = local_90;\n              }\n            }\n          }\n          else {\n            uVar6 = gettext("bad symbol name offset %u at %zu");\n            FUN_0019a740(param_2,uVar6,uVar7,local_b0);\n          }" if (parenthesized_expression "(uVar7 < param_6)" ( (binary_expression "uVar7 < param_6" identifier < identifier) )) (compound_statement "{\n            uVar13 = *(ushort *)((long)puVar1 + 6);\n            uVar5 = (uint)uVar13;\n            if (uVar13 < 0xff00) {\n              if (uVar13 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = '\x01';\nLAB_0022ec44:\n              *param_11 = *param_11 + 1;\n              if (param_7 != 0) {\n                local_bc = *(ushort *)(param_7 + local_b0 * 2);\n                uVar13 = local_bc & 0x7fff;\n                if (uVar13 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80);\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\n            else {\n              local_b9 = '\0';\n              if (uVar13 != 0xffff) goto LAB_0022ec44;\n              lVar9 = param_2[8];\n              if (lVar9 == 0) {\n                lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);\n                param_2[8] = lVar9;\n              }\n              uVar5 = FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff);\n              if (uVar5 != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (param_7 == 0) {\n                local_b9 = '\x01';\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = '\x01';\n              local_bc = *(ushort *)(param_7 + local_b0 * 2);\n              uVar13 = local_bc & 0x7fff;\nLAB_0022ed91:\n                    \n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88);\n              if (1 < uVar13) {\n                pcVar12 = "versym for symbol %zu out of range: %u";\n                if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    \n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }\n                uVar6 = gettext(pcVar12);\n                FUN_0019a740(param_2,uVar6,local_b0,uVar13);\n                goto LAB_0022ec88;\n              }\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\nLAB_0022ee87:\n            if (local_90 != 0) {\n              bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n              if (((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)\n                 ) {\nLAB_0022eeb4:\n                if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    \n                    \n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }\n              }\n              else if (bVar11 == 0) {\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (param_10 != (long *)0x0) {\n                *(long *)(*param_10 + local_b0 * 8) = local_90;\n              }\n            }\n          }" { (expression_statement "uVar13 = *(ushort *)((long)puVar1 + 6);" (assignment_expression "uVar13 = *(ushort *)((long)puVar1 + 6)" identifier = (pointer_expression "*(ushort *)((long)puVar1 + 6)" * (cast_expression "(ushort *)((long)puVar1 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar1 + 6)" ( (binary_expression "(long)puVar1 + 6" (cast_expression "(long)puVar1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar5 = (uint)uVar13;" (assignment_expression "uVar5 = (uint)uVar13" identifier = (cast_expression "(uint)uVar13" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (uVar13 < 0xff00) {\n              if (uVar13 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = '\x01';\nLAB_0022ec44:\n              *param_11 = *param_11 + 1;\n              if (param_7 != 0) {\n                local_bc = *(ushort *)(param_7 + local_b0 * 2);\n                uVar13 = local_bc & 0x7fff;\n                if (uVar13 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80);\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\n            else {\n              local_b9 = '\0';\n              if (uVar13 != 0xffff) goto LAB_0022ec44;\n              lVar9 = param_2[8];\n              if (lVar9 == 0) {\n                lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);\n                param_2[8] = lVar9;\n              }\n              uVar5 = FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff);\n              if (uVar5 != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (param_7 == 0) {\n                local_b9 = '\x01';\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = '\x01';\n              local_bc = *(ushort *)(param_7 + local_b0 * 2);\n              uVar13 = local_bc & 0x7fff;\nLAB_0022ed91:\n                    \n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88);\n              if (1 < uVar13) {\n                pcVar12 = "versym for symbol %zu out of range: %u";\n                if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    \n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }\n                uVar6 = gettext(pcVar12);\n                FUN_0019a740(param_2,uVar6,local_b0,uVar13);\n                goto LAB_0022ec88;\n              }\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }" if (parenthesized_expression "(uVar13 < 0xff00)" ( (binary_expression "uVar13 < 0xff00" identifier < number_literal) )) (compound_statement "{\n              if (uVar13 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = '\x01';\nLAB_0022ec44:\n              *param_11 = *param_11 + 1;\n              if (param_7 != 0) {\n                local_bc = *(ushort *)(param_7 + local_b0 * 2);\n                uVar13 = local_bc & 0x7fff;\n                if (uVar13 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80);\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }" { (if_statement "if (uVar13 == 0) goto LAB_0022ed4f;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0022ed4f;" goto statement_identifier ;)) (labeled_statement "LAB_0022f012:\n              local_b9 = '\x01';" statement_identifier : (expression_statement "local_b9 = '\x01';" (assignment_expression "local_b9 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;)) (labeled_statement "LAB_0022ec44:\n              *param_11 = *param_11 + 1;" statement_identifier : (expression_statement "*param_11 = *param_11 + 1;" (assignment_expression "*param_11 = *param_11 + 1" (pointer_expression "*param_11" * identifier) = (binary_expression "*param_11 + 1" (pointer_expression "*param_11" * identifier) + number_literal)) ;)) (if_statement "if (param_7 != 0) {\n                local_bc = *(ushort *)(param_7 + local_b0 * 2);\n                uVar13 = local_bc & 0x7fff;\n                if (uVar13 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }" if (parenthesized_expression "(param_7 != 0)" ( (binary_expression "param_7 != 0" identifier != number_literal) )) (compound_statement "{\n                local_bc = *(ushort *)(param_7 + local_b0 * 2);\n                uVar13 = local_bc & 0x7fff;\n                if (uVar13 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }" { (expression_statement "local_bc = *(ushort *)(param_7 + local_b0 * 2);" (assignment_expression "local_bc = *(ushort *)(param_7 + local_b0 * 2)" identifier = (pointer_expression "*(ushort *)(param_7 + local_b0 * 2)" * (cast_expression "(ushort *)(param_7 + local_b0 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_7 + local_b0 * 2)" ( (binary_expression "param_7 + local_b0 * 2" identifier + (binary_expression "local_b0 * 2" identifier * number_literal)) ))))) ;) (expression_statement "uVar13 = local_bc & 0x7fff;" (assignment_expression "uVar13 = local_bc & 0x7fff" identifier = (binary_expression "local_bc & 0x7fff" identifier & number_literal)) ;) (if_statement "if (uVar13 == 0) goto LAB_0022ec88;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0022ec88;" goto statement_identifier ;)) (expression_statement "local_ba = 1;" (assignment_expression "local_ba = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0022ed91;" goto statement_identifier ;) })) (labeled_statement "LAB_0022ef87:\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80);" statement_identifier : (expression_statement "uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80);" (assignment_expression "uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80)" identifier = (call_expression "FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80)" identifier (argument_list "(param_1 + 0x68,uVar7 + param_5,1,&local_80)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) , (binary_expression "uVar7 + param_5" identifier + identifier) , number_literal , (pointer_expression "&local_80" & identifier) )))) ;)) (expression_statement "local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);" (assignment_expression "local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5)" identifier = (call_expression "FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5)" identifier (argument_list "(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5)" ( identifier , identifier , identifier , identifier , number_literal , number_literal , number_literal , identifier , identifier , identifier , identifier )))) ;) }) (else_clause "else {\n              local_b9 = '\0';\n              if (uVar13 != 0xffff) goto LAB_0022ec44;\n              lVar9 = param_2[8];\n              if (lVar9 == 0) {\n                lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);\n                param_2[8] = lVar9;\n              }\n              uVar5 = FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff);\n              if (uVar5 != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (param_7 == 0) {\n                local_b9 = '\x01';\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = '\x01';\n              local_bc = *(ushort *)(param_7 + local_b0 * 2);\n              uVar13 = local_bc & 0x7fff;\nLAB_0022ed91:\n                    \n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88);\n              if (1 < uVar13) {\n                pcVar12 = "versym for symbol %zu out of range: %u";\n                if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    \n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }\n                uVar6 = gettext(pcVar12);\n                FUN_0019a740(param_2,uVar6,local_b0,uVar13);\n                goto LAB_0022ec88;\n              }\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }" else (compound_statement "{\n              local_b9 = '\0';\n              if (uVar13 != 0xffff) goto LAB_0022ec44;\n              lVar9 = param_2[8];\n              if (lVar9 == 0) {\n                lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);\n                param_2[8] = lVar9;\n              }\n              uVar5 = FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff);\n              if (uVar5 != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (param_7 == 0) {\n                local_b9 = '\x01';\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = '\x01';\n              local_bc = *(ushort *)(param_7 + local_b0 * 2);\n              uVar13 = local_bc & 0x7fff;\nLAB_0022ed91:\n                    \n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88);\n              if (1 < uVar13) {\n                pcVar12 = "versym for symbol %zu out of range: %u";\n                if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    \n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }\n                uVar6 = gettext(pcVar12);\n                FUN_0019a740(param_2,uVar6,local_b0,uVar13);\n                goto LAB_0022ec88;\n              }\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }" { (expression_statement "local_b9 = '\0';" (assignment_expression "local_b9 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (uVar13 != 0xffff) goto LAB_0022ec44;" if (parenthesized_expression "(uVar13 != 0xffff)" ( (binary_expression "uVar13 != 0xffff" identifier != number_literal) )) (goto_statement "goto LAB_0022ec44;" goto statement_identifier ;)) (expression_statement "lVar9 = param_2[8];" (assignment_expression "lVar9 = param_2[8]" identifier = (subscript_expression "param_2[8]" identifier [ number_literal ])) ;) (if_statement "if (lVar9 == 0) {\n                lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);\n                param_2[8] = lVar9;\n              }" if (parenthesized_expression "(lVar9 == 0)" ( (binary_expression "lVar9 == 0" identifier == number_literal) )) (compound_statement "{\n                lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);\n                param_2[8] = lVar9;\n              }" { (expression_statement "lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);" (assignment_expression "lVar9 = (**(code **)(*param_2 + 0xd8))(param_2)" identifier = (call_expression "(**(code **)(*param_2 + 0xd8))(param_2)" (parenthesized_expression "(**(code **)(*param_2 + 0xd8))" ( (pointer_expression "**(code **)(*param_2 + 0xd8)" * (pointer_expression "*(code **)(*param_2 + 0xd8)" * (cast_expression "(code **)(*param_2 + 0xd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0xd8)" ( (binary_expression "*param_2 + 0xd8" (pointer_expression "*param_2" * identifier) + number_literal) ))))) )) (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "param_2[8] = lVar9;" (assignment_expression "param_2[8] = lVar9" (subscript_expression "param_2[8]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "uVar5 = FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff);" (assignment_expression "uVar5 = FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff)" identifier = (call_expression "FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff)" identifier (argument_list "(lVar9,param_2,local_b0 & 0xffffffff)" ( identifier , identifier , (binary_expression "local_b0 & 0xffffffff" identifier & number_literal) )))) ;) (if_statement "if (uVar5 != 0) goto LAB_0022f012;" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0022f012;" goto statement_identifier ;)) (labeled_statement "LAB_0022ed4f:\n              if (param_7 == 0) {\n                local_b9 = '\x01';\n                goto LAB_0022ef87;\n              }" statement_identifier : (if_statement "if (param_7 == 0) {\n                local_b9 = '\x01';\n                goto LAB_0022ef87;\n              }" if (parenthesized_expression "(param_7 == 0)" ( (binary_expression "param_7 == 0" identifier == number_literal) )) (compound_statement "{\n                local_b9 = '\x01';\n                goto LAB_0022ef87;\n              }" { (expression_statement "local_b9 = '\x01';" (assignment_expression "local_b9 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (goto_statement "goto LAB_0022ef87;" goto statement_identifier ;) }))) (expression_statement "local_ba = 0;" (assignment_expression "local_ba = 0" identifier = number_literal) ;) (expression_statement "local_b9 = '\x01';" (assignment_expression "local_b9 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "local_bc = *(ushort *)(param_7 + local_b0 * 2);" (assignment_expression "local_bc = *(ushort *)(param_7 + local_b0 * 2)" identifier = (pointer_expression "*(ushort *)(param_7 + local_b0 * 2)" * (cast_expression "(ushort *)(param_7 + local_b0 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_7 + local_b0 * 2)" ( (binary_expression "param_7 + local_b0 * 2" identifier + (binary_expression "local_b0 * 2" identifier * number_literal)) ))))) ;) (expression_statement "uVar13 = local_bc & 0x7fff;" (assignment_expression "uVar13 = local_bc & 0x7fff" identifier = (binary_expression "local_bc & 0x7fff" identifier & number_literal)) ;) (labeled_statement "LAB_0022ed91:\n                    \n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88);" statement_identifier : (expression_statement "uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88);" (assignment_expression "uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88)" identifier = (call_expression "FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88)" identifier (argument_list "(param_1 + 0x68,uVar7 + param_5,1,&local_88)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) , (binary_expression "uVar7 + param_5" identifier + identifier) , number_literal , (pointer_expression "&local_88" & identifier) )))) ;)) (if_statement "if (1 < uVar13) {\n                pcVar12 = "versym for symbol %zu out of range: %u";\n                if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    \n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }\n                uVar6 = gettext(pcVar12);\n                FUN_0019a740(param_2,uVar6,local_b0,uVar13);\n                goto LAB_0022ec88;\n              }" if (parenthesized_expression "(1 < uVar13)" ( (binary_expression "1 < uVar13" number_literal < identifier) )) (compound_statement "{\n                pcVar12 = "versym for symbol %zu out of range: %u";\n                if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    \n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }\n                uVar6 = gettext(pcVar12);\n                FUN_0019a740(param_2,uVar6,local_b0,uVar13);\n                goto LAB_0022ec88;\n              }" { (expression_statement "pcVar12 = "versym for symbol %zu out of range: %u";" (assignment_expression "pcVar12 = "versym for symbol %zu out of range: %u"" identifier = (string_literal ""versym for symbol %zu out of range: %u"" " string_content ")) ;) (if_statement "if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    \n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }" if (parenthesized_expression "((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3))" ( (binary_expression "(ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)" (cast_expression "(ulong)uVar13" ( (type_descriptor "ulong" type_identifier) ) identifier) < (call_expression "(ulong)(param_9[1] - *param_9 >> 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(param_9[1] - *param_9 >> 3)" ( (binary_expression "param_9[1] - *param_9 >> 3" (binary_expression "param_9[1] - *param_9" (subscript_expression "param_9[1]" identifier [ number_literal ]) - (pointer_expression "*param_9" * identifier)) >> number_literal) )))) )) (compound_statement "{\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    \n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }" { (expression_statement "lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);" (assignment_expression "lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8)" identifier = (pointer_expression "*(long *)(*param_9 + (ulong)uVar13 * 8)" * (cast_expression "(long *)(*param_9 + (ulong)uVar13 * 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_9 + (ulong)uVar13 * 8)" ( (binary_expression "*param_9 + (ulong)uVar13 * 8" (pointer_expression "*param_9" * identifier) + (binary_expression "(ulong)uVar13 * 8" (cast_expression "(ulong)uVar13" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) ))))) ;) (if_statement "if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    \n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }" if (parenthesized_expression "(lVar9 != 0)" ( (binary_expression "lVar9 != 0" identifier != number_literal) )) (compound_statement "{\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    \n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }" { (expression_statement "uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);" (assignment_expression "uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80)" identifier = (call_expression "FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80)" identifier (argument_list "(param_1 + 0x68,lVar9,1,&local_80)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) , identifier , number_literal , (pointer_expression "&local_80" & identifier) )))) ;) (if_statement "if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    \n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }" if (parenthesized_expression "(((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88))" ( (binary_expression "((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)" (parenthesized_expression "((uVar5 == 0xfff1) && (local_b9 == '\0'))" ( (binary_expression "(uVar5 == 0xfff1) && (local_b9 == '\0')" (parenthesized_expression "(uVar5 == 0xfff1)" ( (binary_expression "uVar5 == 0xfff1" identifier == number_literal) )) && (parenthesized_expression "(local_b9 == '\0')" ( (binary_expression "local_b9 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(local_80 == local_88)" ( (binary_expression "local_80 == local_88" identifier == identifier) ))) )) (compound_statement "{\n                    \n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }" { (expression_statement "local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);" (assignment_expression "local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1)" identifier = (call_expression "FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1)" identifier (argument_list "(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1)" ( identifier , identifier , identifier , identifier , number_literal , number_literal , number_literal , identifier , number_literal , number_literal , number_literal )))) ;) }) (else_clause "else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }" else (compound_statement "{\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }" { (expression_statement "local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);" (assignment_expression "local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5)" identifier = (call_expression "FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5)" identifier (argument_list "(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5)" ( identifier , identifier , identifier , identifier , identifier , identifier , (binary_expression "(byte)~(byte)(local_bc >> 8) >> 7 & local_ba" (binary_expression "(byte)~(byte)(local_bc >> 8) >> 7" (cast_expression "(byte)~(byte)(local_bc >> 8)" ( (type_descriptor "byte" type_identifier) ) (unary_expression "~(byte)(local_bc >> 8)" ~ (call_expression "(byte)(local_bc >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(local_bc >> 8)" ( (binary_expression "local_bc >> 8" identifier >> number_literal) ))))) >> number_literal) & identifier) , identifier , identifier , identifier , identifier )))) ;) }))) (goto_statement "goto LAB_0022ee87;" goto statement_identifier ;) })) (expression_statement "pcVar12 = "versym for symbol %zu has no name: %u";" (assignment_expression "pcVar12 = "versym for symbol %zu has no name: %u"" identifier = (string_literal ""versym for symbol %zu has no name: %u"" " string_content ")) ;) })) (expression_statement "uVar6 = gettext(pcVar12);" (assignment_expression "uVar6 = gettext(pcVar12)" identifier = (call_expression "gettext(pcVar12)" identifier (argument_list "(pcVar12)" ( identifier )))) ;) (expression_statement "FUN_0019a740(param_2,uVar6,local_b0,uVar13);" (call_expression "FUN_0019a740(param_2,uVar6,local_b0,uVar13)" identifier (argument_list "(param_2,uVar6,local_b0,uVar13)" ( identifier , identifier , identifier , identifier ))) ;) (goto_statement "goto LAB_0022ec88;" goto statement_identifier ;) })) (expression_statement "local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);" (assignment_expression "local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5)" identifier = (call_expression "FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5)" identifier (argument_list "(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5)" ( identifier , identifier , identifier , identifier , number_literal , number_literal , number_literal , identifier , identifier , identifier , identifier )))) ;) }))) (labeled_statement "LAB_0022ee87:\n            if (local_90 != 0) {\n              bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n              if (((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)\n                 ) {\nLAB_0022eeb4:\n                if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    \n                    \n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }\n              }\n              else if (bVar11 == 0) {\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (param_10 != (long *)0x0) {\n                *(long *)(*param_10 + local_b0 * 8) = local_90;\n              }\n            }" statement_identifier : (if_statement "if (local_90 != 0) {\n              bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n              if (((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)\n                 ) {\nLAB_0022eeb4:\n                if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    \n                    \n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }\n              }\n              else if (bVar11 == 0) {\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (param_10 != (long *)0x0) {\n                *(long *)(*param_10 + local_b0 * 8) = local_90;\n              }\n            }" if (parenthesized_expression "(local_90 != 0)" ( (binary_expression "local_90 != 0" identifier != number_literal) )) (compound_statement "{\n              bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n              if (((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)\n                 ) {\nLAB_0022eeb4:\n                if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    \n                    \n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }\n              }\n              else if (bVar11 == 0) {\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (param_10 != (long *)0x0) {\n                *(long *)(*param_10 + local_b0 * 8) = local_90;\n              }\n            }" { (expression_statement "bVar11 = *(byte *)(local_90 + 0x3a) & 7;" (assignment_expression "bVar11 = *(byte *)(local_90 + 0x3a) & 7" identifier = (binary_expression "*(byte *)(local_90 + 0x3a) & 7" (pointer_expression "*(byte *)(local_90 + 0x3a)" * (cast_expression "(byte *)(local_90 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 0x3a)" ( (binary_expression "local_90 + 0x3a" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if (((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)\n                 ) {\nLAB_0022eeb4:\n                if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    \n                    \n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }\n              }\n              else if (bVar11 == 0) {\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }" if (parenthesized_expression "(((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)\n                 )" ( (binary_expression "((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)" (parenthesized_expression "((uVar5 == 0) || (local_b9 == '\0'))" ( (binary_expression "(uVar5 == 0) || (local_b9 == '\0')" (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) || (parenthesized_expression "(local_b9 == '\0')" ( (binary_expression "local_b9 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) )) || (parenthesized_expression "((**ppuVar2 & 0xf00000000) != 0x100000000)" ( (binary_expression "(**ppuVar2 & 0xf00000000) != 0x100000000" (parenthesized_expression "(**ppuVar2 & 0xf00000000)" ( (binary_expression "**ppuVar2 & 0xf00000000" (pointer_expression "**ppuVar2" * (pointer_expression "*ppuVar2" * identifier)) & number_literal) )) != number_literal) ))) )) (compound_statement "{\nLAB_0022eeb4:\n                if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    \n                    \n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }\n              }" { (labeled_statement "LAB_0022eeb4:\n                if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    \n                    \n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }" statement_identifier : (if_statement "if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    \n                    \n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }" if (parenthesized_expression "(bVar11 == 0)" ( (binary_expression "bVar11 == 0" identifier == number_literal) )) (compound_statement "{\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    \n                    \n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }" { (if_statement "if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    \n                    \n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }" if (parenthesized_expression "((*(byte *)(local_90 + 0x3a) & 7) != 0)" ( (binary_expression "(*(byte *)(local_90 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)(local_90 + 0x3a) & 7)" ( (binary_expression "*(byte *)(local_90 + 0x3a) & 7" (pointer_expression "*(byte *)(local_90 + 0x3a)" * (cast_expression "(byte *)(local_90 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 0x3a)" ( (binary_expression "local_90 + 0x3a" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                    \n                    \n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }" { (expression_statement "FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");" (call_expression "FUN_0016cdf0("../../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 ") ))) ;) })) (labeled_statement "LAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }" statement_identifier : (if_statement "if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }" if (parenthesized_expression "((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000))" ( (binary_expression "(param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)" (parenthesized_expression "(param_2 == *(long **)(local_90 + 0x10))" ( (binary_expression "param_2 == *(long **)(local_90 + 0x10)" identifier == (pointer_expression "*(long **)(local_90 + 0x10)" * (cast_expression "(long **)(local_90 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_90 + 0x10)" ( (binary_expression "local_90 + 0x10" identifier + number_literal) ))))) )) && (parenthesized_expression "((*local_a0 & 0x30000000000) == 0x30000000000)" ( (binary_expression "(*local_a0 & 0x30000000000) == 0x30000000000" (parenthesized_expression "(*local_a0 & 0x30000000000)" ( (binary_expression "*local_a0 & 0x30000000000" (pointer_expression "*local_a0" * identifier) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }" { (expression_statement "*(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;" (assignment_expression "*(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8" (pointer_expression "*(byte *)(local_90 + 0x3c)" * (cast_expression "(byte *)(local_90 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 0x3c)" ( (binary_expression "local_90 + 0x3c" identifier + number_literal) )))) = (binary_expression "*(byte *)(local_90 + 0x3c) | 8" (pointer_expression "*(byte *)(local_90 + 0x3c)" * (cast_expression "(byte *)(local_90 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 0x3c)" ( (binary_expression "local_90 + 0x3c" identifier + number_literal) )))) | number_literal)) ;) }))) }))) }) (else_clause "else if (bVar11 == 0) {\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }" else (if_statement "if (bVar11 == 0) {\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }" if (parenthesized_expression "(bVar11 == 0)" ( (binary_expression "bVar11 == 0" identifier == number_literal) )) (compound_statement "{\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }" { (if_statement "if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }" if (parenthesized_expression "(param_2 == *(long **)(local_90 + 0x10))" ( (binary_expression "param_2 == *(long **)(local_90 + 0x10)" identifier == (pointer_expression "*(long **)(local_90 + 0x10)" * (cast_expression "(long **)(local_90 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_90 + 0x10)" ( (binary_expression "local_90 + 0x10" identifier + number_literal) ))))) )) (compound_statement "{\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }" { (if_statement "if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }" if (parenthesized_expression "(local_70 == local_68)" ( (binary_expression "local_70 == local_68" identifier == identifier) )) (compound_statement "{\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }" { (expression_statement "FUN_00223290(&local_78,local_70,&local_90);" (call_expression "FUN_00223290(&local_78,local_70,&local_90)" identifier (argument_list "(&local_78,local_70,&local_90)" ( (pointer_expression "&local_78" & identifier) , identifier , (pointer_expression "&local_90" & identifier) ))) ;) (expression_statement "bVar11 = *(byte *)(local_90 + 0x3a) & 7;" (assignment_expression "bVar11 = *(byte *)(local_90 + 0x3a) & 7" identifier = (binary_expression "*(byte *)(local_90 + 0x3a) & 7" (pointer_expression "*(byte *)(local_90 + 0x3a)" * (cast_expression "(byte *)(local_90 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 0x3a)" ( (binary_expression "local_90 + 0x3a" identifier + number_literal) )))) & number_literal)) ;) }) (else_clause "else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }" else (compound_statement "{\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }" { (expression_statement "*local_70 = local_90;" (assignment_expression "*local_70 = local_90" (pointer_expression "*local_70" * identifier) = identifier) ;) (expression_statement "local_70 = local_70 + 1;" (assignment_expression "local_70 = local_70 + 1" identifier = (binary_expression "local_70 + 1" identifier + number_literal)) ;) (expression_statement "bVar11 = *(byte *)(local_90 + 0x3a) & 7;" (assignment_expression "bVar11 = *(byte *)(local_90 + 0x3a) & 7" identifier = (binary_expression "*(byte *)(local_90 + 0x3a) & 7" (pointer_expression "*(byte *)(local_90 + 0x3a)" * (cast_expression "(byte *)(local_90 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 0x3a)" ( (binary_expression "local_90 + 0x3a" identifier + number_literal) )))) & number_literal)) ;) }))) (goto_statement "goto LAB_0022eeb4;" goto statement_identifier ;) })) (goto_statement "goto LAB_0022eec2;" goto statement_identifier ;) })))) (if_statement "if (param_10 != (long *)0x0) {\n                *(long *)(*param_10 + local_b0 * 8) = local_90;\n              }" if (parenthesized_expression "(param_10 != (long *)0x0)" ( (binary_expression "param_10 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                *(long *)(*param_10 + local_b0 * 8) = local_90;\n              }" { (expression_statement "*(long *)(*param_10 + local_b0 * 8) = local_90;" (assignment_expression "*(long *)(*param_10 + local_b0 * 8) = local_90" (pointer_expression "*(long *)(*param_10 + local_b0 * 8)" * (cast_expression "(long *)(*param_10 + local_b0 * 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_10 + local_b0 * 8)" ( (binary_expression "*param_10 + local_b0 * 8" (pointer_expression "*param_10" * identifier) + (binary_expression "local_b0 * 8" identifier * number_literal)) )))) = identifier) ;) })) }))) }) (else_clause "else {\n            uVar6 = gettext("bad symbol name offset %u at %zu");\n            FUN_0019a740(param_2,uVar6,uVar7,local_b0);\n          }" else (compound_statement "{\n            uVar6 = gettext("bad symbol name offset %u at %zu");\n            FUN_0019a740(param_2,uVar6,uVar7,local_b0);\n          }" { (expression_statement "uVar6 = gettext("bad symbol name offset %u at %zu");" (assignment_expression "uVar6 = gettext("bad symbol name offset %u at %zu")" identifier = (call_expression "gettext("bad symbol name offset %u at %zu")" identifier (argument_list "("bad symbol name offset %u at %zu")" ( (string_literal ""bad symbol name offset %u at %zu"" " string_content ") )))) ;) (expression_statement "FUN_0019a740(param_2,uVar6,uVar7,local_b0);" (call_expression "FUN_0019a740(param_2,uVar6,uVar7,local_b0)" identifier (argument_list "(param_2,uVar6,uVar7,local_b0)" ( identifier , identifier , identifier , identifier ))) ;) }))) })) })) (labeled_statement "LAB_0022ec88:\n      local_b0 = local_b0 + 1;" statement_identifier : (expression_statement "local_b0 = local_b0 + 1;" (assignment_expression "local_b0 = local_b0 + 1" identifier = (binary_expression "local_b0 + 1" identifier + number_literal)) ;)) (expression_statement "param_3 = param_3 + 3;" (assignment_expression "param_3 = param_3 + 3" identifier = (binary_expression "param_3 + 3" identifier + number_literal)) ;) }) while (parenthesized_expression "(param_4 != local_b0)" ( (binary_expression "param_4 != local_b0" identifier != identifier) )) ;) })) (expression_statement "FUN_0022e900(param_1,&local_78);" (call_expression "FUN_0022e900(param_1,&local_78)" identifier (argument_list "(param_1,&local_78)" ( identifier , (pointer_expression "&local_78" & identifier) ))) ;) (if_statement "if (local_78 != 0) {\n    FUN_00276d20();\n  }" if (parenthesized_expression "(local_78 != 0)" ( (binary_expression "local_78 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_00276d20();\n  }" { (expression_statement "FUN_00276d20();" (call_expression "FUN_00276d20()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE 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 (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == 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 (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) != 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 (subscript_expression IDENT [ 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 = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT >> LIT) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (return_statement return ;) })))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (binary_expression IDENT * LIT)) )))) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * (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 = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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 LIT < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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 IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))) ))) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (call_expression IDENT (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT << LIT) ))) + (char_literal ' escape_sequence ')) , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (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) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + IDENT) , LIT , (pointer_expression & IDENT) )))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , LIT , LIT , LIT , IDENT , IDENT , IDENT , IDENT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (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 )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT & LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (goto_statement goto statement_identifier ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + IDENT) , LIT , (pointer_expression & IDENT) )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - (pointer_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 (pointer_expression * IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , LIT , (pointer_expression & IDENT) )))) ;) (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) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , LIT , LIT , LIT , IDENT , LIT , LIT , LIT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (unary_expression ~ (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))))) >> LIT) & IDENT) , IDENT , IDENT , IDENT , IDENT )))) ;) }))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , LIT , LIT , LIT , IDENT , IDENT , IDENT , IDENT )))) ;) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (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 (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) ))) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * IDENT)) & LIT) )) != LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) }))) }))) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) }))) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (binary_expression IDENT * LIT)) )))) = IDENT) ;) })) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) }))) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (return_statement return ;) })))
(function_definition "void FUN_0022eaf0(long param_1,long *param_2,ulong *param_3,ulong param_4,long param_5,ulong param_6\n                 ,long param_7,ulong param_8,long *param_9,long *param_10,long *param_11)\n\n{\n  ulong *puVar1;\n  ulong **ppuVar2;\n  char cVar3;\n  int iVar4;\n  uint uVar5;\n  undefined8 uVar6;\n  ulong uVar7;\n  undefined8 uVar8;\n  long lVar9;\n  byte bVar10;\n  byte bVar11;\n  char *pcVar12;\n  ushort uVar13;\n  ushort local_bc;\n  byte local_ba;\n  char local_b9;\n  ulong local_b0;\n  ulong *local_a0;\n  ulong *local_98;\n  long local_90;\n  long local_88;\n  long local_80;\n  long local_78;\n  long *local_70;\n  long *local_68;\n  undefined8 local_58;\n  ulong uStack_50;\n  ulong local_48;\n  \n  *param_11 = 0;\n  if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\n                    \n    FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n  }\n  if (**(int **)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8) != 0x40) {\n                    \n    FUN_0016cdf0("../../gold/symtab.cc",0x5bd,"add_from_dynobj");\n  }\n  if (param_2[5] == 0) {\n                    \n    FUN_0016cdf0("../../gold/object.h",0x1ea,"input_file");\n  }\n  cVar3 = FUN_0016aff0();\n  if (cVar3 != '\0') {\n    uVar6 = gettext("--just-symbols does not make sense with a shared object");\n    FUN_001690a0(uVar6);\n    return;\n  }\n  cVar3 = FUN_001ee080(PTR_DAT_003be6b0);\n  if ((param_7 == 0) || (cVar3 == '\x01')) {\n    param_7 = 0;\n  }\n  else if (param_8 >> 1 < param_4) {\n    uVar6 = gettext("too few symbol versions");\n    FUN_0019a740(param_2,uVar6);\n    return;\n  }\n  local_78 = 0;\n  local_70 = (long *)0x0;\n  local_68 = (long *)0x0;\n  local_b0 = 0;\n  if (param_4 != 0) {\n    do {\n      if (param_10 != (long *)0x0) {\n        *(undefined8 *)(*param_10 + local_b0 * 8) = 0;\n      }\n      iVar4 = (int)(uint)*(byte *)((long)param_3 + 4) >> 4;\n      local_a0 = param_3;\n      if (iVar4 != 0) {\n        bVar11 = *(byte *)((long)param_3 + 5) & 3;\n        if (1 < (byte)(bVar11 - 1)) {\n          bVar10 = *(byte *)((long)param_3 + 4) & 0xf;\n          if (bVar11 == 3) {\n            uStack_50 = param_3[1];\n            local_48 = param_3[2];\n            local_58._6_2_ = (undefined2)(*param_3 >> 0x30);\n            local_58._0_5_ = (undefined5)*param_3;\n            local_58 = CONCAT26(local_58._6_2_,\n                                CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58)) &\n                       0xfffffcffffffffff;\n            if (bVar10 == 10) goto LAB_0022ef70;\nLAB_0022ef0b:\n            uVar7 = local_58 & 0xffffffff;\n            puVar1 = &local_58;\n            ppuVar2 = &local_98;\n          }\n          else {\n            if (bVar10 == 10) {\n              local_48 = param_3[2];\n              local_58 = *param_3;\n              uStack_50 = param_3[1];\nLAB_0022ef70:\n              local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58);\n              goto LAB_0022ef0b;\n            }\n            ppuVar2 = &local_a0;\n            uVar7 = (ulong)(uint)*param_3;\n            puVar1 = param_3;\n          }\n          local_98 = &local_58;\n          if (uVar7 < param_6) {\n            uVar13 = *(ushort *)((long)puVar1 + 6);\n            uVar5 = (uint)uVar13;\n            if (uVar13 < 0xff00) {\n              if (uVar13 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = '\x01';\nLAB_0022ec44:\n              *param_11 = *param_11 + 1;\n              if (param_7 != 0) {\n                local_bc = *(ushort *)(param_7 + local_b0 * 2);\n                uVar13 = local_bc & 0x7fff;\n                if (uVar13 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80);\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\n            else {\n              local_b9 = '\0';\n              if (uVar13 != 0xffff) goto LAB_0022ec44;\n              lVar9 = param_2[8];\n              if (lVar9 == 0) {\n                lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);\n                param_2[8] = lVar9;\n              }\n              uVar5 = FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff);\n              if (uVar5 != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (param_7 == 0) {\n                local_b9 = '\x01';\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = '\x01';\n              local_bc = *(ushort *)(param_7 + local_b0 * 2);\n              uVar13 = local_bc & 0x7fff;\nLAB_0022ed91:\n                    \n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88);\n              if (1 < uVar13) {\n                pcVar12 = "versym for symbol %zu out of range: %u";\n                if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    \n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }\n                uVar6 = gettext(pcVar12);\n                FUN_0019a740(param_2,uVar6,local_b0,uVar13);\n                goto LAB_0022ec88;\n              }\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\nLAB_0022ee87:\n            if (local_90 != 0) {\n              bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n              if (((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)\n                 ) {\nLAB_0022eeb4:\n                if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    \n                    \n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }\n              }\n              else if (bVar11 == 0) {\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (param_10 != (long *)0x0) {\n                *(long *)(*param_10 + local_b0 * 8) = local_90;\n              }\n            }\n          }\n          else {\n            uVar6 = gettext("bad symbol name offset %u at %zu");\n            FUN_0019a740(param_2,uVar6,uVar7,local_b0);\n          }\n        }\n      }\nLAB_0022ec88:\n      local_b0 = local_b0 + 1;\n      param_3 = param_3 + 3;\n    } while (param_4 != local_b0);\n  }\n  FUN_0022e900(param_1,&local_78);\n  if (local_78 != 0) {\n    FUN_00276d20();\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0022eaf0(long param_1,long *param_2,ulong *param_3,ulong param_4,long param_5,ulong param_6\n                 ,long param_7,ulong param_8,long *param_9,long *param_10,long *param_11)" (identifier "FUN_0022eaf0") (parameter_list "(long param_1,long *param_2,ulong *param_3,ulong param_4,long param_5,ulong param_6\n                 ,long param_7,ulong param_8,long *param_9,long *param_10,long *param_11)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "long *param_2" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "ulong *param_3" (type_identifier "ulong") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "ulong param_4" (type_identifier "ulong") (identifier "param_4")) (, ",") (parameter_declaration "long param_5" (sized_type_specifier "long" (long "long")) (identifier "param_5")) (, ",") (parameter_declaration "ulong param_6" (type_identifier "ulong") (identifier "param_6")) (, ",") (parameter_declaration "long param_7" (sized_type_specifier "long" (long "long")) (identifier "param_7")) (, ",") (parameter_declaration "ulong param_8" (type_identifier "ulong") (identifier "param_8")) (, ",") (parameter_declaration "long *param_9" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_9" (* "*") (identifier "param_9"))) (, ",") (parameter_declaration "long *param_10" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_10" (* "*") (identifier "param_10"))) (, ",") (parameter_declaration "long *param_11" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_11" (* "*") (identifier "param_11"))) () ")"))) (compound_statement "{\n  ulong *puVar1;\n  ulong **ppuVar2;\n  char cVar3;\n  int iVar4;\n  uint uVar5;\n  undefined8 uVar6;\n  ulong uVar7;\n  undefined8 uVar8;\n  long lVar9;\n  byte bVar10;\n  byte bVar11;\n  char *pcVar12;\n  ushort uVar13;\n  ushort local_bc;\n  byte local_ba;\n  char local_b9;\n  ulong local_b0;\n  ulong *local_a0;\n  ulong *local_98;\n  long local_90;\n  long local_88;\n  long local_80;\n  long local_78;\n  long *local_70;\n  long *local_68;\n  undefined8 local_58;\n  ulong uStack_50;\n  ulong local_48;\n  \n  *param_11 = 0;\n  if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\n                    \n    FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n  }\n  if (**(int **)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8) != 0x40) {\n                    \n    FUN_0016cdf0("../../gold/symtab.cc",0x5bd,"add_from_dynobj");\n  }\n  if (param_2[5] == 0) {\n                    \n    FUN_0016cdf0("../../gold/object.h",0x1ea,"input_file");\n  }\n  cVar3 = FUN_0016aff0();\n  if (cVar3 != '\0') {\n    uVar6 = gettext("--just-symbols does not make sense with a shared object");\n    FUN_001690a0(uVar6);\n    return;\n  }\n  cVar3 = FUN_001ee080(PTR_DAT_003be6b0);\n  if ((param_7 == 0) || (cVar3 == '\x01')) {\n    param_7 = 0;\n  }\n  else if (param_8 >> 1 < param_4) {\n    uVar6 = gettext("too few symbol versions");\n    FUN_0019a740(param_2,uVar6);\n    return;\n  }\n  local_78 = 0;\n  local_70 = (long *)0x0;\n  local_68 = (long *)0x0;\n  local_b0 = 0;\n  if (param_4 != 0) {\n    do {\n      if (param_10 != (long *)0x0) {\n        *(undefined8 *)(*param_10 + local_b0 * 8) = 0;\n      }\n      iVar4 = (int)(uint)*(byte *)((long)param_3 + 4) >> 4;\n      local_a0 = param_3;\n      if (iVar4 != 0) {\n        bVar11 = *(byte *)((long)param_3 + 5) & 3;\n        if (1 < (byte)(bVar11 - 1)) {\n          bVar10 = *(byte *)((long)param_3 + 4) & 0xf;\n          if (bVar11 == 3) {\n            uStack_50 = param_3[1];\n            local_48 = param_3[2];\n            local_58._6_2_ = (undefined2)(*param_3 >> 0x30);\n            local_58._0_5_ = (undefined5)*param_3;\n            local_58 = CONCAT26(local_58._6_2_,\n                                CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58)) &\n                       0xfffffcffffffffff;\n            if (bVar10 == 10) goto LAB_0022ef70;\nLAB_0022ef0b:\n            uVar7 = local_58 & 0xffffffff;\n            puVar1 = &local_58;\n            ppuVar2 = &local_98;\n          }\n          else {\n            if (bVar10 == 10) {\n              local_48 = param_3[2];\n              local_58 = *param_3;\n              uStack_50 = param_3[1];\nLAB_0022ef70:\n              local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58);\n              goto LAB_0022ef0b;\n            }\n            ppuVar2 = &local_a0;\n            uVar7 = (ulong)(uint)*param_3;\n            puVar1 = param_3;\n          }\n          local_98 = &local_58;\n          if (uVar7 < param_6) {\n            uVar13 = *(ushort *)((long)puVar1 + 6);\n            uVar5 = (uint)uVar13;\n            if (uVar13 < 0xff00) {\n              if (uVar13 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = '\x01';\nLAB_0022ec44:\n              *param_11 = *param_11 + 1;\n              if (param_7 != 0) {\n                local_bc = *(ushort *)(param_7 + local_b0 * 2);\n                uVar13 = local_bc & 0x7fff;\n                if (uVar13 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80);\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\n            else {\n              local_b9 = '\0';\n              if (uVar13 != 0xffff) goto LAB_0022ec44;\n              lVar9 = param_2[8];\n              if (lVar9 == 0) {\n                lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);\n                param_2[8] = lVar9;\n              }\n              uVar5 = FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff);\n              if (uVar5 != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (param_7 == 0) {\n                local_b9 = '\x01';\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = '\x01';\n              local_bc = *(ushort *)(param_7 + local_b0 * 2);\n              uVar13 = local_bc & 0x7fff;\nLAB_0022ed91:\n                    \n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88);\n              if (1 < uVar13) {\n                pcVar12 = "versym for symbol %zu out of range: %u";\n                if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    \n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }\n                uVar6 = gettext(pcVar12);\n                FUN_0019a740(param_2,uVar6,local_b0,uVar13);\n                goto LAB_0022ec88;\n              }\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\nLAB_0022ee87:\n            if (local_90 != 0) {\n              bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n              if (((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)\n                 ) {\nLAB_0022eeb4:\n                if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    \n                    \n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }\n              }\n              else if (bVar11 == 0) {\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (param_10 != (long *)0x0) {\n                *(long *)(*param_10 + local_b0 * 8) = local_90;\n              }\n            }\n          }\n          else {\n            uVar6 = gettext("bad symbol name offset %u at %zu");\n            FUN_0019a740(param_2,uVar6,uVar7,local_b0);\n          }\n        }\n      }\nLAB_0022ec88:\n      local_b0 = local_b0 + 1;\n      param_3 = param_3 + 3;\n    } while (param_4 != local_b0);\n  }\n  FUN_0022e900(param_1,&local_78);\n  if (local_78 != 0) {\n    FUN_00276d20();\n  }\n  return;\n}" ({ "{") (declaration "ulong *puVar1;" (type_identifier "ulong") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "ulong **ppuVar2;" (type_identifier "ulong") (pointer_declarator "**ppuVar2" (* "*") (pointer_declarator "*ppuVar2" (* "*") (identifier "ppuVar2"))) (; ";")) (declaration "char cVar3;" (primitive_type "char") (identifier "cVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "undefined8 uVar6;" (type_identifier "undefined8") (identifier "uVar6") (; ";")) (declaration "ulong uVar7;" (type_identifier "ulong") (identifier "uVar7") (; ";")) (declaration "undefined8 uVar8;" (type_identifier "undefined8") (identifier "uVar8") (; ";")) (declaration "long lVar9;" (sized_type_specifier "long" (long "long")) (identifier "lVar9") (; ";")) (declaration "byte bVar10;" (type_identifier "byte") (identifier "bVar10") (; ";")) (declaration "byte bVar11;" (type_identifier "byte") (identifier "bVar11") (; ";")) (declaration "char *pcVar12;" (primitive_type "char") (pointer_declarator "*pcVar12" (* "*") (identifier "pcVar12")) (; ";")) (declaration "ushort uVar13;" (type_identifier "ushort") (identifier "uVar13") (; ";")) (declaration "ushort local_bc;" (type_identifier "ushort") (identifier "local_bc") (; ";")) (declaration "byte local_ba;" (type_identifier "byte") (identifier "local_ba") (; ";")) (declaration "char local_b9;" (primitive_type "char") (identifier "local_b9") (; ";")) (declaration "ulong local_b0;" (type_identifier "ulong") (identifier "local_b0") (; ";")) (declaration "ulong *local_a0;" (type_identifier "ulong") (pointer_declarator "*local_a0" (* "*") (identifier "local_a0")) (; ";")) (declaration "ulong *local_98;" (type_identifier "ulong") (pointer_declarator "*local_98" (* "*") (identifier "local_98")) (; ";")) (declaration "long local_90;" (sized_type_specifier "long" (long "long")) (identifier "local_90") (; ";")) (declaration "long local_88;" (sized_type_specifier "long" (long "long")) (identifier "local_88") (; ";")) (declaration "long local_80;" (sized_type_specifier "long" (long "long")) (identifier "local_80") (; ";")) (declaration "long local_78;" (sized_type_specifier "long" (long "long")) (identifier "local_78") (; ";")) (declaration "long *local_70;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*local_70" (* "*") (identifier "local_70")) (; ";")) (declaration "long *local_68;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*local_68" (* "*") (identifier "local_68")) (; ";")) (declaration "undefined8 local_58;" (type_identifier "undefined8") (identifier "local_58") (; ";")) (declaration "ulong uStack_50;" (type_identifier "ulong") (identifier "uStack_50") (; ";")) (declaration "ulong local_48;" (type_identifier "ulong") (identifier "local_48") (; ";")) (expression_statement "*param_11 = 0;" (assignment_expression "*param_11 = 0" (pointer_expression "*param_11" (* "*") (identifier "param_11")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\n                    \n    FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n  }" (if "if") (parenthesized_expression "(*(long *)(PTR_DAT_003be6b0 + 0x18) == 0)" (( "(") (binary_expression "*(long *)(PTR_DAT_003be6b0 + 0x18) == 0" (pointer_expression "*(long *)(PTR_DAT_003be6b0 + 0x18)" (* "*") (cast_expression "(long *)(PTR_DAT_003be6b0 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_003be6b0 + 0x18)" (( "(") (binary_expression "PTR_DAT_003be6b0 + 0x18" (identifier "PTR_DAT_003be6b0") (+ "+") (number_literal "0x18")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n  }" ({ "{") (expression_statement "FUN_0016cdf0("../../gold/parameters.h",0x69,"target");" (call_expression "FUN_0016cdf0("../../gold/parameters.h",0x69,"target")" (identifier "FUN_0016cdf0") (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 (**(int **)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8) != 0x40) {\n                    \n    FUN_0016cdf0("../../gold/symtab.cc",0x5bd,"add_from_dynobj");\n  }" (if "if") (parenthesized_expression "(**(int **)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8) != 0x40)" (( "(") (binary_expression "**(int **)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8) != 0x40" (pointer_expression "**(int **)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8)" (* "*") (pointer_expression "*(int **)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8)" (* "*") (cast_expression "(int **)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8)" (( "(") (binary_expression "*(long *)(PTR_DAT_003be6b0 + 0x18) + 8" (pointer_expression "*(long *)(PTR_DAT_003be6b0 + 0x18)" (* "*") (cast_expression "(long *)(PTR_DAT_003be6b0 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_003be6b0 + 0x18)" (( "(") (binary_expression "PTR_DAT_003be6b0 + 0x18" (identifier "PTR_DAT_003be6b0") (+ "+") (number_literal "0x18")) () ")")))) (+ "+") (number_literal "8")) () ")"))))) (!= "!=") (number_literal "0x40")) () ")")) (compound_statement "{\n                    \n    FUN_0016cdf0("../../gold/symtab.cc",0x5bd,"add_from_dynobj");\n  }" ({ "{") (expression_statement "FUN_0016cdf0("../../gold/symtab.cc",0x5bd,"add_from_dynobj");" (call_expression "FUN_0016cdf0("../../gold/symtab.cc",0x5bd,"add_from_dynobj")" (identifier "FUN_0016cdf0") (argument_list "("../../gold/symtab.cc",0x5bd,"add_from_dynobj")" (( "(") (string_literal ""../../gold/symtab.cc"" (" """) (string_content "../../gold/symtab.cc") (" """)) (, ",") (number_literal "0x5bd") (, ",") (string_literal ""add_from_dynobj"" (" """) (string_content "add_from_dynobj") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (param_2[5] == 0) {\n                    \n    FUN_0016cdf0("../../gold/object.h",0x1ea,"input_file");\n  }" (if "if") (parenthesized_expression "(param_2[5] == 0)" (( "(") (binary_expression "param_2[5] == 0" (subscript_expression "param_2[5]" (identifier "param_2") ([ "[") (number_literal "5") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_0016cdf0("../../gold/object.h",0x1ea,"input_file");\n  }" ({ "{") (expression_statement "FUN_0016cdf0("../../gold/object.h",0x1ea,"input_file");" (call_expression "FUN_0016cdf0("../../gold/object.h",0x1ea,"input_file")" (identifier "FUN_0016cdf0") (argument_list "("../../gold/object.h",0x1ea,"input_file")" (( "(") (string_literal ""../../gold/object.h"" (" """) (string_content "../../gold/object.h") (" """)) (, ",") (number_literal "0x1ea") (, ",") (string_literal ""input_file"" (" """) (string_content "input_file") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "cVar3 = FUN_0016aff0();" (assignment_expression "cVar3 = FUN_0016aff0()" (identifier "cVar3") (= "=") (call_expression "FUN_0016aff0()" (identifier "FUN_0016aff0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (cVar3 != '\0') {\n    uVar6 = gettext("--just-symbols does not make sense with a shared object");\n    FUN_001690a0(uVar6);\n    return;\n  }" (if "if") (parenthesized_expression "(cVar3 != '\0')" (( "(") (binary_expression "cVar3 != '\0'" (identifier "cVar3") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    uVar6 = gettext("--just-symbols does not make sense with a shared object");\n    FUN_001690a0(uVar6);\n    return;\n  }" ({ "{") (expression_statement "uVar6 = gettext("--just-symbols does not make sense with a shared object");" (assignment_expression "uVar6 = gettext("--just-symbols does not make sense with a shared object")" (identifier "uVar6") (= "=") (call_expression "gettext("--just-symbols does not make sense with a shared object")" (identifier "gettext") (argument_list "("--just-symbols does not make sense with a shared object")" (( "(") (string_literal ""--just-symbols does not make sense with a shared object"" (" """) (string_content "--just-symbols does not make sense with a shared object") (" """)) () ")")))) (; ";")) (expression_statement "FUN_001690a0(uVar6);" (call_expression "FUN_001690a0(uVar6)" (identifier "FUN_001690a0") (argument_list "(uVar6)" (( "(") (identifier "uVar6") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "cVar3 = FUN_001ee080(PTR_DAT_003be6b0);" (assignment_expression "cVar3 = FUN_001ee080(PTR_DAT_003be6b0)" (identifier "cVar3") (= "=") (call_expression "FUN_001ee080(PTR_DAT_003be6b0)" (identifier "FUN_001ee080") (argument_list "(PTR_DAT_003be6b0)" (( "(") (identifier "PTR_DAT_003be6b0") () ")")))) (; ";")) (if_statement "if ((param_7 == 0) || (cVar3 == '\x01')) {\n    param_7 = 0;\n  }\n  else if (param_8 >> 1 < param_4) {\n    uVar6 = gettext("too few symbol versions");\n    FUN_0019a740(param_2,uVar6);\n    return;\n  }" (if "if") (parenthesized_expression "((param_7 == 0) || (cVar3 == '\x01'))" (( "(") (binary_expression "(param_7 == 0) || (cVar3 == '\x01')" (parenthesized_expression "(param_7 == 0)" (( "(") (binary_expression "param_7 == 0" (identifier "param_7") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(cVar3 == '\x01')" (( "(") (binary_expression "cVar3 == '\x01'" (identifier "cVar3") (== "==") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")"))) () ")")) (compound_statement "{\n    param_7 = 0;\n  }" ({ "{") (expression_statement "param_7 = 0;" (assignment_expression "param_7 = 0" (identifier "param_7") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else if (param_8 >> 1 < param_4) {\n    uVar6 = gettext("too few symbol versions");\n    FUN_0019a740(param_2,uVar6);\n    return;\n  }" (else "else") (if_statement "if (param_8 >> 1 < param_4) {\n    uVar6 = gettext("too few symbol versions");\n    FUN_0019a740(param_2,uVar6);\n    return;\n  }" (if "if") (parenthesized_expression "(param_8 >> 1 < param_4)" (( "(") (binary_expression "param_8 >> 1 < param_4" (binary_expression "param_8 >> 1" (identifier "param_8") (>> ">>") (number_literal "1")) (< "<") (identifier "param_4")) () ")")) (compound_statement "{\n    uVar6 = gettext("too few symbol versions");\n    FUN_0019a740(param_2,uVar6);\n    return;\n  }" ({ "{") (expression_statement "uVar6 = gettext("too few symbol versions");" (assignment_expression "uVar6 = gettext("too few symbol versions")" (identifier "uVar6") (= "=") (call_expression "gettext("too few symbol versions")" (identifier "gettext") (argument_list "("too few symbol versions")" (( "(") (string_literal ""too few symbol versions"" (" """) (string_content "too few symbol versions") (" """)) () ")")))) (; ";")) (expression_statement "FUN_0019a740(param_2,uVar6);" (call_expression "FUN_0019a740(param_2,uVar6)" (identifier "FUN_0019a740") (argument_list "(param_2,uVar6)" (( "(") (identifier "param_2") (, ",") (identifier "uVar6") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))))) (expression_statement "local_78 = 0;" (assignment_expression "local_78 = 0" (identifier "local_78") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_70 = (long *)0x0;" (assignment_expression "local_70 = (long *)0x0" (identifier "local_70") (= "=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_68 = (long *)0x0;" (assignment_expression "local_68 = (long *)0x0" (identifier "local_68") (= "=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" (identifier "local_b0") (= "=") (number_literal "0")) (; ";")) (if_statement "if (param_4 != 0) {\n    do {\n      if (param_10 != (long *)0x0) {\n        *(undefined8 *)(*param_10 + local_b0 * 8) = 0;\n      }\n      iVar4 = (int)(uint)*(byte *)((long)param_3 + 4) >> 4;\n      local_a0 = param_3;\n      if (iVar4 != 0) {\n        bVar11 = *(byte *)((long)param_3 + 5) & 3;\n        if (1 < (byte)(bVar11 - 1)) {\n          bVar10 = *(byte *)((long)param_3 + 4) & 0xf;\n          if (bVar11 == 3) {\n            uStack_50 = param_3[1];\n            local_48 = param_3[2];\n            local_58._6_2_ = (undefined2)(*param_3 >> 0x30);\n            local_58._0_5_ = (undefined5)*param_3;\n            local_58 = CONCAT26(local_58._6_2_,\n                                CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58)) &\n                       0xfffffcffffffffff;\n            if (bVar10 == 10) goto LAB_0022ef70;\nLAB_0022ef0b:\n            uVar7 = local_58 & 0xffffffff;\n            puVar1 = &local_58;\n            ppuVar2 = &local_98;\n          }\n          else {\n            if (bVar10 == 10) {\n              local_48 = param_3[2];\n              local_58 = *param_3;\n              uStack_50 = param_3[1];\nLAB_0022ef70:\n              local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58);\n              goto LAB_0022ef0b;\n            }\n            ppuVar2 = &local_a0;\n            uVar7 = (ulong)(uint)*param_3;\n            puVar1 = param_3;\n          }\n          local_98 = &local_58;\n          if (uVar7 < param_6) {\n            uVar13 = *(ushort *)((long)puVar1 + 6);\n            uVar5 = (uint)uVar13;\n            if (uVar13 < 0xff00) {\n              if (uVar13 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = '\x01';\nLAB_0022ec44:\n              *param_11 = *param_11 + 1;\n              if (param_7 != 0) {\n                local_bc = *(ushort *)(param_7 + local_b0 * 2);\n                uVar13 = local_bc & 0x7fff;\n                if (uVar13 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80);\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\n            else {\n              local_b9 = '\0';\n              if (uVar13 != 0xffff) goto LAB_0022ec44;\n              lVar9 = param_2[8];\n              if (lVar9 == 0) {\n                lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);\n                param_2[8] = lVar9;\n              }\n              uVar5 = FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff);\n              if (uVar5 != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (param_7 == 0) {\n                local_b9 = '\x01';\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = '\x01';\n              local_bc = *(ushort *)(param_7 + local_b0 * 2);\n              uVar13 = local_bc & 0x7fff;\nLAB_0022ed91:\n                    \n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88);\n              if (1 < uVar13) {\n                pcVar12 = "versym for symbol %zu out of range: %u";\n                if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    \n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }\n                uVar6 = gettext(pcVar12);\n                FUN_0019a740(param_2,uVar6,local_b0,uVar13);\n                goto LAB_0022ec88;\n              }\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\nLAB_0022ee87:\n            if (local_90 != 0) {\n              bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n              if (((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)\n                 ) {\nLAB_0022eeb4:\n                if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    \n                    \n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }\n              }\n              else if (bVar11 == 0) {\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (param_10 != (long *)0x0) {\n                *(long *)(*param_10 + local_b0 * 8) = local_90;\n              }\n            }\n          }\n          else {\n            uVar6 = gettext("bad symbol name offset %u at %zu");\n            FUN_0019a740(param_2,uVar6,uVar7,local_b0);\n          }\n        }\n      }\nLAB_0022ec88:\n      local_b0 = local_b0 + 1;\n      param_3 = param_3 + 3;\n    } while (param_4 != local_b0);\n  }" (if "if") (parenthesized_expression "(param_4 != 0)" (( "(") (binary_expression "param_4 != 0" (identifier "param_4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    do {\n      if (param_10 != (long *)0x0) {\n        *(undefined8 *)(*param_10 + local_b0 * 8) = 0;\n      }\n      iVar4 = (int)(uint)*(byte *)((long)param_3 + 4) >> 4;\n      local_a0 = param_3;\n      if (iVar4 != 0) {\n        bVar11 = *(byte *)((long)param_3 + 5) & 3;\n        if (1 < (byte)(bVar11 - 1)) {\n          bVar10 = *(byte *)((long)param_3 + 4) & 0xf;\n          if (bVar11 == 3) {\n            uStack_50 = param_3[1];\n            local_48 = param_3[2];\n            local_58._6_2_ = (undefined2)(*param_3 >> 0x30);\n            local_58._0_5_ = (undefined5)*param_3;\n            local_58 = CONCAT26(local_58._6_2_,\n                                CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58)) &\n                       0xfffffcffffffffff;\n            if (bVar10 == 10) goto LAB_0022ef70;\nLAB_0022ef0b:\n            uVar7 = local_58 & 0xffffffff;\n            puVar1 = &local_58;\n            ppuVar2 = &local_98;\n          }\n          else {\n            if (bVar10 == 10) {\n              local_48 = param_3[2];\n              local_58 = *param_3;\n              uStack_50 = param_3[1];\nLAB_0022ef70:\n              local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58);\n              goto LAB_0022ef0b;\n            }\n            ppuVar2 = &local_a0;\n            uVar7 = (ulong)(uint)*param_3;\n            puVar1 = param_3;\n          }\n          local_98 = &local_58;\n          if (uVar7 < param_6) {\n            uVar13 = *(ushort *)((long)puVar1 + 6);\n            uVar5 = (uint)uVar13;\n            if (uVar13 < 0xff00) {\n              if (uVar13 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = '\x01';\nLAB_0022ec44:\n              *param_11 = *param_11 + 1;\n              if (param_7 != 0) {\n                local_bc = *(ushort *)(param_7 + local_b0 * 2);\n                uVar13 = local_bc & 0x7fff;\n                if (uVar13 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80);\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\n            else {\n              local_b9 = '\0';\n              if (uVar13 != 0xffff) goto LAB_0022ec44;\n              lVar9 = param_2[8];\n              if (lVar9 == 0) {\n                lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);\n                param_2[8] = lVar9;\n              }\n              uVar5 = FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff);\n              if (uVar5 != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (param_7 == 0) {\n                local_b9 = '\x01';\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = '\x01';\n              local_bc = *(ushort *)(param_7 + local_b0 * 2);\n              uVar13 = local_bc & 0x7fff;\nLAB_0022ed91:\n                    \n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88);\n              if (1 < uVar13) {\n                pcVar12 = "versym for symbol %zu out of range: %u";\n                if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    \n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }\n                uVar6 = gettext(pcVar12);\n                FUN_0019a740(param_2,uVar6,local_b0,uVar13);\n                goto LAB_0022ec88;\n              }\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\nLAB_0022ee87:\n            if (local_90 != 0) {\n              bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n              if (((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)\n                 ) {\nLAB_0022eeb4:\n                if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    \n                    \n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }\n              }\n              else if (bVar11 == 0) {\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (param_10 != (long *)0x0) {\n                *(long *)(*param_10 + local_b0 * 8) = local_90;\n              }\n            }\n          }\n          else {\n            uVar6 = gettext("bad symbol name offset %u at %zu");\n            FUN_0019a740(param_2,uVar6,uVar7,local_b0);\n          }\n        }\n      }\nLAB_0022ec88:\n      local_b0 = local_b0 + 1;\n      param_3 = param_3 + 3;\n    } while (param_4 != local_b0);\n  }" ({ "{") (do_statement "do {\n      if (param_10 != (long *)0x0) {\n        *(undefined8 *)(*param_10 + local_b0 * 8) = 0;\n      }\n      iVar4 = (int)(uint)*(byte *)((long)param_3 + 4) >> 4;\n      local_a0 = param_3;\n      if (iVar4 != 0) {\n        bVar11 = *(byte *)((long)param_3 + 5) & 3;\n        if (1 < (byte)(bVar11 - 1)) {\n          bVar10 = *(byte *)((long)param_3 + 4) & 0xf;\n          if (bVar11 == 3) {\n            uStack_50 = param_3[1];\n            local_48 = param_3[2];\n            local_58._6_2_ = (undefined2)(*param_3 >> 0x30);\n            local_58._0_5_ = (undefined5)*param_3;\n            local_58 = CONCAT26(local_58._6_2_,\n                                CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58)) &\n                       0xfffffcffffffffff;\n            if (bVar10 == 10) goto LAB_0022ef70;\nLAB_0022ef0b:\n            uVar7 = local_58 & 0xffffffff;\n            puVar1 = &local_58;\n            ppuVar2 = &local_98;\n          }\n          else {\n            if (bVar10 == 10) {\n              local_48 = param_3[2];\n              local_58 = *param_3;\n              uStack_50 = param_3[1];\nLAB_0022ef70:\n              local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58);\n              goto LAB_0022ef0b;\n            }\n            ppuVar2 = &local_a0;\n            uVar7 = (ulong)(uint)*param_3;\n            puVar1 = param_3;\n          }\n          local_98 = &local_58;\n          if (uVar7 < param_6) {\n            uVar13 = *(ushort *)((long)puVar1 + 6);\n            uVar5 = (uint)uVar13;\n            if (uVar13 < 0xff00) {\n              if (uVar13 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = '\x01';\nLAB_0022ec44:\n              *param_11 = *param_11 + 1;\n              if (param_7 != 0) {\n                local_bc = *(ushort *)(param_7 + local_b0 * 2);\n                uVar13 = local_bc & 0x7fff;\n                if (uVar13 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80);\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\n            else {\n              local_b9 = '\0';\n              if (uVar13 != 0xffff) goto LAB_0022ec44;\n              lVar9 = param_2[8];\n              if (lVar9 == 0) {\n                lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);\n                param_2[8] = lVar9;\n              }\n              uVar5 = FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff);\n              if (uVar5 != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (param_7 == 0) {\n                local_b9 = '\x01';\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = '\x01';\n              local_bc = *(ushort *)(param_7 + local_b0 * 2);\n              uVar13 = local_bc & 0x7fff;\nLAB_0022ed91:\n                    \n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88);\n              if (1 < uVar13) {\n                pcVar12 = "versym for symbol %zu out of range: %u";\n                if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    \n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }\n                uVar6 = gettext(pcVar12);\n                FUN_0019a740(param_2,uVar6,local_b0,uVar13);\n                goto LAB_0022ec88;\n              }\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\nLAB_0022ee87:\n            if (local_90 != 0) {\n              bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n              if (((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)\n                 ) {\nLAB_0022eeb4:\n                if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    \n                    \n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }\n              }\n              else if (bVar11 == 0) {\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (param_10 != (long *)0x0) {\n                *(long *)(*param_10 + local_b0 * 8) = local_90;\n              }\n            }\n          }\n          else {\n            uVar6 = gettext("bad symbol name offset %u at %zu");\n            FUN_0019a740(param_2,uVar6,uVar7,local_b0);\n          }\n        }\n      }\nLAB_0022ec88:\n      local_b0 = local_b0 + 1;\n      param_3 = param_3 + 3;\n    } while (param_4 != local_b0);" (do "do") (compound_statement "{\n      if (param_10 != (long *)0x0) {\n        *(undefined8 *)(*param_10 + local_b0 * 8) = 0;\n      }\n      iVar4 = (int)(uint)*(byte *)((long)param_3 + 4) >> 4;\n      local_a0 = param_3;\n      if (iVar4 != 0) {\n        bVar11 = *(byte *)((long)param_3 + 5) & 3;\n        if (1 < (byte)(bVar11 - 1)) {\n          bVar10 = *(byte *)((long)param_3 + 4) & 0xf;\n          if (bVar11 == 3) {\n            uStack_50 = param_3[1];\n            local_48 = param_3[2];\n            local_58._6_2_ = (undefined2)(*param_3 >> 0x30);\n            local_58._0_5_ = (undefined5)*param_3;\n            local_58 = CONCAT26(local_58._6_2_,\n                                CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58)) &\n                       0xfffffcffffffffff;\n            if (bVar10 == 10) goto LAB_0022ef70;\nLAB_0022ef0b:\n            uVar7 = local_58 & 0xffffffff;\n            puVar1 = &local_58;\n            ppuVar2 = &local_98;\n          }\n          else {\n            if (bVar10 == 10) {\n              local_48 = param_3[2];\n              local_58 = *param_3;\n              uStack_50 = param_3[1];\nLAB_0022ef70:\n              local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58);\n              goto LAB_0022ef0b;\n            }\n            ppuVar2 = &local_a0;\n            uVar7 = (ulong)(uint)*param_3;\n            puVar1 = param_3;\n          }\n          local_98 = &local_58;\n          if (uVar7 < param_6) {\n            uVar13 = *(ushort *)((long)puVar1 + 6);\n            uVar5 = (uint)uVar13;\n            if (uVar13 < 0xff00) {\n              if (uVar13 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = '\x01';\nLAB_0022ec44:\n              *param_11 = *param_11 + 1;\n              if (param_7 != 0) {\n                local_bc = *(ushort *)(param_7 + local_b0 * 2);\n                uVar13 = local_bc & 0x7fff;\n                if (uVar13 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80);\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\n            else {\n              local_b9 = '\0';\n              if (uVar13 != 0xffff) goto LAB_0022ec44;\n              lVar9 = param_2[8];\n              if (lVar9 == 0) {\n                lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);\n                param_2[8] = lVar9;\n              }\n              uVar5 = FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff);\n              if (uVar5 != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (param_7 == 0) {\n                local_b9 = '\x01';\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = '\x01';\n              local_bc = *(ushort *)(param_7 + local_b0 * 2);\n              uVar13 = local_bc & 0x7fff;\nLAB_0022ed91:\n                    \n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88);\n              if (1 < uVar13) {\n                pcVar12 = "versym for symbol %zu out of range: %u";\n                if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    \n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }\n                uVar6 = gettext(pcVar12);\n                FUN_0019a740(param_2,uVar6,local_b0,uVar13);\n                goto LAB_0022ec88;\n              }\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\nLAB_0022ee87:\n            if (local_90 != 0) {\n              bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n              if (((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)\n                 ) {\nLAB_0022eeb4:\n                if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    \n                    \n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }\n              }\n              else if (bVar11 == 0) {\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (param_10 != (long *)0x0) {\n                *(long *)(*param_10 + local_b0 * 8) = local_90;\n              }\n            }\n          }\n          else {\n            uVar6 = gettext("bad symbol name offset %u at %zu");\n            FUN_0019a740(param_2,uVar6,uVar7,local_b0);\n          }\n        }\n      }\nLAB_0022ec88:\n      local_b0 = local_b0 + 1;\n      param_3 = param_3 + 3;\n    }" ({ "{") (if_statement "if (param_10 != (long *)0x0) {\n        *(undefined8 *)(*param_10 + local_b0 * 8) = 0;\n      }" (if "if") (parenthesized_expression "(param_10 != (long *)0x0)" (( "(") (binary_expression "param_10 != (long *)0x0" (identifier "param_10") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        *(undefined8 *)(*param_10 + local_b0 * 8) = 0;\n      }" ({ "{") (expression_statement "*(undefined8 *)(*param_10 + local_b0 * 8) = 0;" (assignment_expression "*(undefined8 *)(*param_10 + local_b0 * 8) = 0" (pointer_expression "*(undefined8 *)(*param_10 + local_b0 * 8)" (* "*") (cast_expression "(undefined8 *)(*param_10 + local_b0 * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_10 + local_b0 * 8)" (( "(") (binary_expression "*param_10 + local_b0 * 8" (pointer_expression "*param_10" (* "*") (identifier "param_10")) (+ "+") (binary_expression "local_b0 * 8" (identifier "local_b0") (* "*") (number_literal "8"))) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "iVar4 = (int)(uint)*(byte *)((long)param_3 + 4) >> 4;" (assignment_expression "iVar4 = (int)(uint)*(byte *)((long)param_3 + 4) >> 4" (identifier "iVar4") (= "=") (binary_expression "(int)(uint)*(byte *)((long)param_3 + 4) >> 4" (binary_expression "(int)(uint)*(byte *)((long)param_3 + 4)" (cast_expression "(int)(uint)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (cast_expression "(byte *)((long)param_3 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_3 + 4)" (( "(") (binary_expression "(long)param_3 + 4" (cast_expression "(long)param_3" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_3")) (+ "+") (number_literal "4")) () ")")))) (>> ">>") (number_literal "4"))) (; ";")) (expression_statement "local_a0 = param_3;" (assignment_expression "local_a0 = param_3" (identifier "local_a0") (= "=") (identifier "param_3")) (; ";")) (if_statement "if (iVar4 != 0) {\n        bVar11 = *(byte *)((long)param_3 + 5) & 3;\n        if (1 < (byte)(bVar11 - 1)) {\n          bVar10 = *(byte *)((long)param_3 + 4) & 0xf;\n          if (bVar11 == 3) {\n            uStack_50 = param_3[1];\n            local_48 = param_3[2];\n            local_58._6_2_ = (undefined2)(*param_3 >> 0x30);\n            local_58._0_5_ = (undefined5)*param_3;\n            local_58 = CONCAT26(local_58._6_2_,\n                                CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58)) &\n                       0xfffffcffffffffff;\n            if (bVar10 == 10) goto LAB_0022ef70;\nLAB_0022ef0b:\n            uVar7 = local_58 & 0xffffffff;\n            puVar1 = &local_58;\n            ppuVar2 = &local_98;\n          }\n          else {\n            if (bVar10 == 10) {\n              local_48 = param_3[2];\n              local_58 = *param_3;\n              uStack_50 = param_3[1];\nLAB_0022ef70:\n              local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58);\n              goto LAB_0022ef0b;\n            }\n            ppuVar2 = &local_a0;\n            uVar7 = (ulong)(uint)*param_3;\n            puVar1 = param_3;\n          }\n          local_98 = &local_58;\n          if (uVar7 < param_6) {\n            uVar13 = *(ushort *)((long)puVar1 + 6);\n            uVar5 = (uint)uVar13;\n            if (uVar13 < 0xff00) {\n              if (uVar13 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = '\x01';\nLAB_0022ec44:\n              *param_11 = *param_11 + 1;\n              if (param_7 != 0) {\n                local_bc = *(ushort *)(param_7 + local_b0 * 2);\n                uVar13 = local_bc & 0x7fff;\n                if (uVar13 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80);\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\n            else {\n              local_b9 = '\0';\n              if (uVar13 != 0xffff) goto LAB_0022ec44;\n              lVar9 = param_2[8];\n              if (lVar9 == 0) {\n                lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);\n                param_2[8] = lVar9;\n              }\n              uVar5 = FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff);\n              if (uVar5 != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (param_7 == 0) {\n                local_b9 = '\x01';\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = '\x01';\n              local_bc = *(ushort *)(param_7 + local_b0 * 2);\n              uVar13 = local_bc & 0x7fff;\nLAB_0022ed91:\n                    \n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88);\n              if (1 < uVar13) {\n                pcVar12 = "versym for symbol %zu out of range: %u";\n                if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    \n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }\n                uVar6 = gettext(pcVar12);\n                FUN_0019a740(param_2,uVar6,local_b0,uVar13);\n                goto LAB_0022ec88;\n              }\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\nLAB_0022ee87:\n            if (local_90 != 0) {\n              bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n              if (((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)\n                 ) {\nLAB_0022eeb4:\n                if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    \n                    \n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }\n              }\n              else if (bVar11 == 0) {\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (param_10 != (long *)0x0) {\n                *(long *)(*param_10 + local_b0 * 8) = local_90;\n              }\n            }\n          }\n          else {\n            uVar6 = gettext("bad symbol name offset %u at %zu");\n            FUN_0019a740(param_2,uVar6,uVar7,local_b0);\n          }\n        }\n      }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        bVar11 = *(byte *)((long)param_3 + 5) & 3;\n        if (1 < (byte)(bVar11 - 1)) {\n          bVar10 = *(byte *)((long)param_3 + 4) & 0xf;\n          if (bVar11 == 3) {\n            uStack_50 = param_3[1];\n            local_48 = param_3[2];\n            local_58._6_2_ = (undefined2)(*param_3 >> 0x30);\n            local_58._0_5_ = (undefined5)*param_3;\n            local_58 = CONCAT26(local_58._6_2_,\n                                CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58)) &\n                       0xfffffcffffffffff;\n            if (bVar10 == 10) goto LAB_0022ef70;\nLAB_0022ef0b:\n            uVar7 = local_58 & 0xffffffff;\n            puVar1 = &local_58;\n            ppuVar2 = &local_98;\n          }\n          else {\n            if (bVar10 == 10) {\n              local_48 = param_3[2];\n              local_58 = *param_3;\n              uStack_50 = param_3[1];\nLAB_0022ef70:\n              local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58);\n              goto LAB_0022ef0b;\n            }\n            ppuVar2 = &local_a0;\n            uVar7 = (ulong)(uint)*param_3;\n            puVar1 = param_3;\n          }\n          local_98 = &local_58;\n          if (uVar7 < param_6) {\n            uVar13 = *(ushort *)((long)puVar1 + 6);\n            uVar5 = (uint)uVar13;\n            if (uVar13 < 0xff00) {\n              if (uVar13 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = '\x01';\nLAB_0022ec44:\n              *param_11 = *param_11 + 1;\n              if (param_7 != 0) {\n                local_bc = *(ushort *)(param_7 + local_b0 * 2);\n                uVar13 = local_bc & 0x7fff;\n                if (uVar13 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80);\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\n            else {\n              local_b9 = '\0';\n              if (uVar13 != 0xffff) goto LAB_0022ec44;\n              lVar9 = param_2[8];\n              if (lVar9 == 0) {\n                lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);\n                param_2[8] = lVar9;\n              }\n              uVar5 = FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff);\n              if (uVar5 != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (param_7 == 0) {\n                local_b9 = '\x01';\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = '\x01';\n              local_bc = *(ushort *)(param_7 + local_b0 * 2);\n              uVar13 = local_bc & 0x7fff;\nLAB_0022ed91:\n                    \n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88);\n              if (1 < uVar13) {\n                pcVar12 = "versym for symbol %zu out of range: %u";\n                if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    \n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }\n                uVar6 = gettext(pcVar12);\n                FUN_0019a740(param_2,uVar6,local_b0,uVar13);\n                goto LAB_0022ec88;\n              }\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\nLAB_0022ee87:\n            if (local_90 != 0) {\n              bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n              if (((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)\n                 ) {\nLAB_0022eeb4:\n                if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    \n                    \n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }\n              }\n              else if (bVar11 == 0) {\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (param_10 != (long *)0x0) {\n                *(long *)(*param_10 + local_b0 * 8) = local_90;\n              }\n            }\n          }\n          else {\n            uVar6 = gettext("bad symbol name offset %u at %zu");\n            FUN_0019a740(param_2,uVar6,uVar7,local_b0);\n          }\n        }\n      }" ({ "{") (expression_statement "bVar11 = *(byte *)((long)param_3 + 5) & 3;" (assignment_expression "bVar11 = *(byte *)((long)param_3 + 5) & 3" (identifier "bVar11") (= "=") (binary_expression "*(byte *)((long)param_3 + 5) & 3" (pointer_expression "*(byte *)((long)param_3 + 5)" (* "*") (cast_expression "(byte *)((long)param_3 + 5)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_3 + 5)" (( "(") (binary_expression "(long)param_3 + 5" (cast_expression "(long)param_3" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_3")) (+ "+") (number_literal "5")) () ")")))) (& "&") (number_literal "3"))) (; ";")) (if_statement "if (1 < (byte)(bVar11 - 1)) {\n          bVar10 = *(byte *)((long)param_3 + 4) & 0xf;\n          if (bVar11 == 3) {\n            uStack_50 = param_3[1];\n            local_48 = param_3[2];\n            local_58._6_2_ = (undefined2)(*param_3 >> 0x30);\n            local_58._0_5_ = (undefined5)*param_3;\n            local_58 = CONCAT26(local_58._6_2_,\n                                CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58)) &\n                       0xfffffcffffffffff;\n            if (bVar10 == 10) goto LAB_0022ef70;\nLAB_0022ef0b:\n            uVar7 = local_58 & 0xffffffff;\n            puVar1 = &local_58;\n            ppuVar2 = &local_98;\n          }\n          else {\n            if (bVar10 == 10) {\n              local_48 = param_3[2];\n              local_58 = *param_3;\n              uStack_50 = param_3[1];\nLAB_0022ef70:\n              local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58);\n              goto LAB_0022ef0b;\n            }\n            ppuVar2 = &local_a0;\n            uVar7 = (ulong)(uint)*param_3;\n            puVar1 = param_3;\n          }\n          local_98 = &local_58;\n          if (uVar7 < param_6) {\n            uVar13 = *(ushort *)((long)puVar1 + 6);\n            uVar5 = (uint)uVar13;\n            if (uVar13 < 0xff00) {\n              if (uVar13 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = '\x01';\nLAB_0022ec44:\n              *param_11 = *param_11 + 1;\n              if (param_7 != 0) {\n                local_bc = *(ushort *)(param_7 + local_b0 * 2);\n                uVar13 = local_bc & 0x7fff;\n                if (uVar13 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80);\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\n            else {\n              local_b9 = '\0';\n              if (uVar13 != 0xffff) goto LAB_0022ec44;\n              lVar9 = param_2[8];\n              if (lVar9 == 0) {\n                lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);\n                param_2[8] = lVar9;\n              }\n              uVar5 = FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff);\n              if (uVar5 != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (param_7 == 0) {\n                local_b9 = '\x01';\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = '\x01';\n              local_bc = *(ushort *)(param_7 + local_b0 * 2);\n              uVar13 = local_bc & 0x7fff;\nLAB_0022ed91:\n                    \n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88);\n              if (1 < uVar13) {\n                pcVar12 = "versym for symbol %zu out of range: %u";\n                if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    \n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }\n                uVar6 = gettext(pcVar12);\n                FUN_0019a740(param_2,uVar6,local_b0,uVar13);\n                goto LAB_0022ec88;\n              }\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\nLAB_0022ee87:\n            if (local_90 != 0) {\n              bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n              if (((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)\n                 ) {\nLAB_0022eeb4:\n                if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    \n                    \n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }\n              }\n              else if (bVar11 == 0) {\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (param_10 != (long *)0x0) {\n                *(long *)(*param_10 + local_b0 * 8) = local_90;\n              }\n            }\n          }\n          else {\n            uVar6 = gettext("bad symbol name offset %u at %zu");\n            FUN_0019a740(param_2,uVar6,uVar7,local_b0);\n          }\n        }" (if "if") (parenthesized_expression "(1 < (byte)(bVar11 - 1))" (( "(") (binary_expression "1 < (byte)(bVar11 - 1)" (number_literal "1") (< "<") (call_expression "(byte)(bVar11 - 1)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(bVar11 - 1)" (( "(") (binary_expression "bVar11 - 1" (identifier "bVar11") (- "-") (number_literal "1")) () ")")))) () ")")) (compound_statement "{\n          bVar10 = *(byte *)((long)param_3 + 4) & 0xf;\n          if (bVar11 == 3) {\n            uStack_50 = param_3[1];\n            local_48 = param_3[2];\n            local_58._6_2_ = (undefined2)(*param_3 >> 0x30);\n            local_58._0_5_ = (undefined5)*param_3;\n            local_58 = CONCAT26(local_58._6_2_,\n                                CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58)) &\n                       0xfffffcffffffffff;\n            if (bVar10 == 10) goto LAB_0022ef70;\nLAB_0022ef0b:\n            uVar7 = local_58 & 0xffffffff;\n            puVar1 = &local_58;\n            ppuVar2 = &local_98;\n          }\n          else {\n            if (bVar10 == 10) {\n              local_48 = param_3[2];\n              local_58 = *param_3;\n              uStack_50 = param_3[1];\nLAB_0022ef70:\n              local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58);\n              goto LAB_0022ef0b;\n            }\n            ppuVar2 = &local_a0;\n            uVar7 = (ulong)(uint)*param_3;\n            puVar1 = param_3;\n          }\n          local_98 = &local_58;\n          if (uVar7 < param_6) {\n            uVar13 = *(ushort *)((long)puVar1 + 6);\n            uVar5 = (uint)uVar13;\n            if (uVar13 < 0xff00) {\n              if (uVar13 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = '\x01';\nLAB_0022ec44:\n              *param_11 = *param_11 + 1;\n              if (param_7 != 0) {\n                local_bc = *(ushort *)(param_7 + local_b0 * 2);\n                uVar13 = local_bc & 0x7fff;\n                if (uVar13 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80);\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\n            else {\n              local_b9 = '\0';\n              if (uVar13 != 0xffff) goto LAB_0022ec44;\n              lVar9 = param_2[8];\n              if (lVar9 == 0) {\n                lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);\n                param_2[8] = lVar9;\n              }\n              uVar5 = FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff);\n              if (uVar5 != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (param_7 == 0) {\n                local_b9 = '\x01';\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = '\x01';\n              local_bc = *(ushort *)(param_7 + local_b0 * 2);\n              uVar13 = local_bc & 0x7fff;\nLAB_0022ed91:\n                    \n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88);\n              if (1 < uVar13) {\n                pcVar12 = "versym for symbol %zu out of range: %u";\n                if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    \n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }\n                uVar6 = gettext(pcVar12);\n                FUN_0019a740(param_2,uVar6,local_b0,uVar13);\n                goto LAB_0022ec88;\n              }\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\nLAB_0022ee87:\n            if (local_90 != 0) {\n              bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n              if (((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)\n                 ) {\nLAB_0022eeb4:\n                if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    \n                    \n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }\n              }\n              else if (bVar11 == 0) {\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (param_10 != (long *)0x0) {\n                *(long *)(*param_10 + local_b0 * 8) = local_90;\n              }\n            }\n          }\n          else {\n            uVar6 = gettext("bad symbol name offset %u at %zu");\n            FUN_0019a740(param_2,uVar6,uVar7,local_b0);\n          }\n        }" ({ "{") (expression_statement "bVar10 = *(byte *)((long)param_3 + 4) & 0xf;" (assignment_expression "bVar10 = *(byte *)((long)param_3 + 4) & 0xf" (identifier "bVar10") (= "=") (binary_expression "*(byte *)((long)param_3 + 4) & 0xf" (pointer_expression "*(byte *)((long)param_3 + 4)" (* "*") (cast_expression "(byte *)((long)param_3 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_3 + 4)" (( "(") (binary_expression "(long)param_3 + 4" (cast_expression "(long)param_3" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_3")) (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "0xf"))) (; ";")) (if_statement "if (bVar11 == 3) {\n            uStack_50 = param_3[1];\n            local_48 = param_3[2];\n            local_58._6_2_ = (undefined2)(*param_3 >> 0x30);\n            local_58._0_5_ = (undefined5)*param_3;\n            local_58 = CONCAT26(local_58._6_2_,\n                                CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58)) &\n                       0xfffffcffffffffff;\n            if (bVar10 == 10) goto LAB_0022ef70;\nLAB_0022ef0b:\n            uVar7 = local_58 & 0xffffffff;\n            puVar1 = &local_58;\n            ppuVar2 = &local_98;\n          }\n          else {\n            if (bVar10 == 10) {\n              local_48 = param_3[2];\n              local_58 = *param_3;\n              uStack_50 = param_3[1];\nLAB_0022ef70:\n              local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58);\n              goto LAB_0022ef0b;\n            }\n            ppuVar2 = &local_a0;\n            uVar7 = (ulong)(uint)*param_3;\n            puVar1 = param_3;\n          }" (if "if") (parenthesized_expression "(bVar11 == 3)" (( "(") (binary_expression "bVar11 == 3" (identifier "bVar11") (== "==") (number_literal "3")) () ")")) (compound_statement "{\n            uStack_50 = param_3[1];\n            local_48 = param_3[2];\n            local_58._6_2_ = (undefined2)(*param_3 >> 0x30);\n            local_58._0_5_ = (undefined5)*param_3;\n            local_58 = CONCAT26(local_58._6_2_,\n                                CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58)) &\n                       0xfffffcffffffffff;\n            if (bVar10 == 10) goto LAB_0022ef70;\nLAB_0022ef0b:\n            uVar7 = local_58 & 0xffffffff;\n            puVar1 = &local_58;\n            ppuVar2 = &local_98;\n          }" ({ "{") (expression_statement "uStack_50 = param_3[1];" (assignment_expression "uStack_50 = param_3[1]" (identifier "uStack_50") (= "=") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_48 = param_3[2];" (assignment_expression "local_48 = param_3[2]" (identifier "local_48") (= "=") (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "local_58._6_2_ = (undefined2)(*param_3 >> 0x30);" (assignment_expression "local_58._6_2_ = (undefined2)(*param_3 >> 0x30)" (field_expression "local_58._6_2_" (identifier "local_58") (. ".") (field_identifier "_6_2_")) (= "=") (call_expression "(undefined2)(*param_3 >> 0x30)" (parenthesized_expression "(undefined2)" (( "(") (identifier "undefined2") () ")")) (argument_list "(*param_3 >> 0x30)" (( "(") (binary_expression "*param_3 >> 0x30" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (>> ">>") (number_literal "0x30")) () ")")))) (; ";")) (expression_statement "local_58._0_5_ = (undefined5)*param_3;" (assignment_expression "local_58._0_5_ = (undefined5)*param_3" (field_expression "local_58._0_5_" (identifier "local_58") (. ".") (field_identifier "_0_5_")) (= "=") (binary_expression "(undefined5)*param_3" (parenthesized_expression "(undefined5)" (( "(") (identifier "undefined5") () ")")) (* "*") (identifier "param_3"))) (; ";")) (expression_statement "local_58 = CONCAT26(local_58._6_2_,\n                                CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58)) &\n                       0xfffffcffffffffff;" (assignment_expression "local_58 = CONCAT26(local_58._6_2_,\n                                CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58)) &\n                       0xfffffcffffffffff" (identifier "local_58") (= "=") (binary_expression "CONCAT26(local_58._6_2_,\n                                CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58)) &\n                       0xfffffcffffffffff" (call_expression "CONCAT26(local_58._6_2_,\n                                CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58))" (identifier "CONCAT26") (argument_list "(local_58._6_2_,\n                                CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58))" (( "(") (field_expression "local_58._6_2_" (identifier "local_58") (. ".") (field_identifier "_6_2_")) (, ",") (call_expression "CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58)" (identifier "CONCAT15") (argument_list "(*(byte *)((long)param_3 + 5),(undefined5)local_58)" (( "(") (pointer_expression "*(byte *)((long)param_3 + 5)" (* "*") (cast_expression "(byte *)((long)param_3 + 5)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_3 + 5)" (( "(") (binary_expression "(long)param_3 + 5" (cast_expression "(long)param_3" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_3")) (+ "+") (number_literal "5")) () ")")))) (, ",") (cast_expression "(undefined5)local_58" (( "(") (type_descriptor "undefined5" (type_identifier "undefined5")) () ")") (identifier "local_58")) () ")"))) () ")"))) (& "&") (number_literal "0xfffffcffffffffff"))) (; ";")) (if_statement "if (bVar10 == 10) goto LAB_0022ef70;" (if "if") (parenthesized_expression "(bVar10 == 10)" (( "(") (binary_expression "bVar10 == 10" (identifier "bVar10") (== "==") (number_literal "10")) () ")")) (goto_statement "goto LAB_0022ef70;" (goto "goto") (statement_identifier "LAB_0022ef70") (; ";"))) (labeled_statement "LAB_0022ef0b:\n            uVar7 = local_58 & 0xffffffff;" (statement_identifier "LAB_0022ef0b") (: ":") (expression_statement "uVar7 = local_58 & 0xffffffff;" (assignment_expression "uVar7 = local_58 & 0xffffffff" (identifier "uVar7") (= "=") (binary_expression "local_58 & 0xffffffff" (identifier "local_58") (& "&") (number_literal "0xffffffff"))) (; ";"))) (expression_statement "puVar1 = &local_58;" (assignment_expression "puVar1 = &local_58" (identifier "puVar1") (= "=") (pointer_expression "&local_58" (& "&") (identifier "local_58"))) (; ";")) (expression_statement "ppuVar2 = &local_98;" (assignment_expression "ppuVar2 = &local_98" (identifier "ppuVar2") (= "=") (pointer_expression "&local_98" (& "&") (identifier "local_98"))) (; ";")) (} "}")) (else_clause "else {\n            if (bVar10 == 10) {\n              local_48 = param_3[2];\n              local_58 = *param_3;\n              uStack_50 = param_3[1];\nLAB_0022ef70:\n              local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58);\n              goto LAB_0022ef0b;\n            }\n            ppuVar2 = &local_a0;\n            uVar7 = (ulong)(uint)*param_3;\n            puVar1 = param_3;\n          }" (else "else") (compound_statement "{\n            if (bVar10 == 10) {\n              local_48 = param_3[2];\n              local_58 = *param_3;\n              uStack_50 = param_3[1];\nLAB_0022ef70:\n              local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58);\n              goto LAB_0022ef0b;\n            }\n            ppuVar2 = &local_a0;\n            uVar7 = (ulong)(uint)*param_3;\n            puVar1 = param_3;\n          }" ({ "{") (if_statement "if (bVar10 == 10) {\n              local_48 = param_3[2];\n              local_58 = *param_3;\n              uStack_50 = param_3[1];\nLAB_0022ef70:\n              local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58);\n              goto LAB_0022ef0b;\n            }" (if "if") (parenthesized_expression "(bVar10 == 10)" (( "(") (binary_expression "bVar10 == 10" (identifier "bVar10") (== "==") (number_literal "10")) () ")")) (compound_statement "{\n              local_48 = param_3[2];\n              local_58 = *param_3;\n              uStack_50 = param_3[1];\nLAB_0022ef70:\n              local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58);\n              goto LAB_0022ef0b;\n            }" ({ "{") (expression_statement "local_48 = param_3[2];" (assignment_expression "local_48 = param_3[2]" (identifier "local_48") (= "=") (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "local_58 = *param_3;" (assignment_expression "local_58 = *param_3" (identifier "local_58") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (expression_statement "uStack_50 = param_3[1];" (assignment_expression "uStack_50 = param_3[1]" (identifier "uStack_50") (= "=") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) (; ";")) (labeled_statement "LAB_0022ef70:\n              local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58);" (statement_identifier "LAB_0022ef70") (: ":") (expression_statement "local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58);" (assignment_expression "local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58)" (field_expression "local_58._0_5_" (identifier "local_58") (. ".") (field_identifier "_0_5_")) (= "=") (call_expression "CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58)" (identifier "CONCAT14") (argument_list "((char)(iVar4 << 4) + '\x02',(undefined4)local_58)" (( "(") (binary_expression "(char)(iVar4 << 4) + '\x02'" (cast_expression "(char)(iVar4 << 4)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "(iVar4 << 4)" (( "(") (binary_expression "iVar4 << 4" (identifier "iVar4") (<< "<<") (number_literal "4")) () ")"))) (+ "+") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) (, ",") (cast_expression "(undefined4)local_58" (( "(") (type_descriptor "undefined4" (type_identifier "undefined4")) () ")") (identifier "local_58")) () ")")))) (; ";"))) (goto_statement "goto LAB_0022ef0b;" (goto "goto") (statement_identifier "LAB_0022ef0b") (; ";")) (} "}"))) (expression_statement "ppuVar2 = &local_a0;" (assignment_expression "ppuVar2 = &local_a0" (identifier "ppuVar2") (= "=") (pointer_expression "&local_a0" (& "&") (identifier "local_a0"))) (; ";")) (expression_statement "uVar7 = (ulong)(uint)*param_3;" (assignment_expression "uVar7 = (ulong)(uint)*param_3" (identifier "uVar7") (= "=") (binary_expression "(ulong)(uint)*param_3" (call_expression "(ulong)(uint)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (identifier "param_3"))) (; ";")) (expression_statement "puVar1 = param_3;" (assignment_expression "puVar1 = param_3" (identifier "puVar1") (= "=") (identifier "param_3")) (; ";")) (} "}")))) (expression_statement "local_98 = &local_58;" (assignment_expression "local_98 = &local_58" (identifier "local_98") (= "=") (pointer_expression "&local_58" (& "&") (identifier "local_58"))) (; ";")) (if_statement "if (uVar7 < param_6) {\n            uVar13 = *(ushort *)((long)puVar1 + 6);\n            uVar5 = (uint)uVar13;\n            if (uVar13 < 0xff00) {\n              if (uVar13 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = '\x01';\nLAB_0022ec44:\n              *param_11 = *param_11 + 1;\n              if (param_7 != 0) {\n                local_bc = *(ushort *)(param_7 + local_b0 * 2);\n                uVar13 = local_bc & 0x7fff;\n                if (uVar13 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80);\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\n            else {\n              local_b9 = '\0';\n              if (uVar13 != 0xffff) goto LAB_0022ec44;\n              lVar9 = param_2[8];\n              if (lVar9 == 0) {\n                lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);\n                param_2[8] = lVar9;\n              }\n              uVar5 = FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff);\n              if (uVar5 != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (param_7 == 0) {\n                local_b9 = '\x01';\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = '\x01';\n              local_bc = *(ushort *)(param_7 + local_b0 * 2);\n              uVar13 = local_bc & 0x7fff;\nLAB_0022ed91:\n                    \n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88);\n              if (1 < uVar13) {\n                pcVar12 = "versym for symbol %zu out of range: %u";\n                if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    \n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }\n                uVar6 = gettext(pcVar12);\n                FUN_0019a740(param_2,uVar6,local_b0,uVar13);\n                goto LAB_0022ec88;\n              }\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\nLAB_0022ee87:\n            if (local_90 != 0) {\n              bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n              if (((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)\n                 ) {\nLAB_0022eeb4:\n                if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    \n                    \n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }\n              }\n              else if (bVar11 == 0) {\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (param_10 != (long *)0x0) {\n                *(long *)(*param_10 + local_b0 * 8) = local_90;\n              }\n            }\n          }\n          else {\n            uVar6 = gettext("bad symbol name offset %u at %zu");\n            FUN_0019a740(param_2,uVar6,uVar7,local_b0);\n          }" (if "if") (parenthesized_expression "(uVar7 < param_6)" (( "(") (binary_expression "uVar7 < param_6" (identifier "uVar7") (< "<") (identifier "param_6")) () ")")) (compound_statement "{\n            uVar13 = *(ushort *)((long)puVar1 + 6);\n            uVar5 = (uint)uVar13;\n            if (uVar13 < 0xff00) {\n              if (uVar13 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = '\x01';\nLAB_0022ec44:\n              *param_11 = *param_11 + 1;\n              if (param_7 != 0) {\n                local_bc = *(ushort *)(param_7 + local_b0 * 2);\n                uVar13 = local_bc & 0x7fff;\n                if (uVar13 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80);\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\n            else {\n              local_b9 = '\0';\n              if (uVar13 != 0xffff) goto LAB_0022ec44;\n              lVar9 = param_2[8];\n              if (lVar9 == 0) {\n                lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);\n                param_2[8] = lVar9;\n              }\n              uVar5 = FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff);\n              if (uVar5 != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (param_7 == 0) {\n                local_b9 = '\x01';\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = '\x01';\n              local_bc = *(ushort *)(param_7 + local_b0 * 2);\n              uVar13 = local_bc & 0x7fff;\nLAB_0022ed91:\n                    \n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88);\n              if (1 < uVar13) {\n                pcVar12 = "versym for symbol %zu out of range: %u";\n                if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    \n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }\n                uVar6 = gettext(pcVar12);\n                FUN_0019a740(param_2,uVar6,local_b0,uVar13);\n                goto LAB_0022ec88;\n              }\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\nLAB_0022ee87:\n            if (local_90 != 0) {\n              bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n              if (((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)\n                 ) {\nLAB_0022eeb4:\n                if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    \n                    \n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }\n              }\n              else if (bVar11 == 0) {\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (param_10 != (long *)0x0) {\n                *(long *)(*param_10 + local_b0 * 8) = local_90;\n              }\n            }\n          }" ({ "{") (expression_statement "uVar13 = *(ushort *)((long)puVar1 + 6);" (assignment_expression "uVar13 = *(ushort *)((long)puVar1 + 6)" (identifier "uVar13") (= "=") (pointer_expression "*(ushort *)((long)puVar1 + 6)" (* "*") (cast_expression "(ushort *)((long)puVar1 + 6)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar1 + 6)" (( "(") (binary_expression "(long)puVar1 + 6" (cast_expression "(long)puVar1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar1")) (+ "+") (number_literal "6")) () ")"))))) (; ";")) (expression_statement "uVar5 = (uint)uVar13;" (assignment_expression "uVar5 = (uint)uVar13" (identifier "uVar5") (= "=") (cast_expression "(uint)uVar13" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar13"))) (; ";")) (if_statement "if (uVar13 < 0xff00) {\n              if (uVar13 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = '\x01';\nLAB_0022ec44:\n              *param_11 = *param_11 + 1;\n              if (param_7 != 0) {\n                local_bc = *(ushort *)(param_7 + local_b0 * 2);\n                uVar13 = local_bc & 0x7fff;\n                if (uVar13 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80);\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }\n            else {\n              local_b9 = '\0';\n              if (uVar13 != 0xffff) goto LAB_0022ec44;\n              lVar9 = param_2[8];\n              if (lVar9 == 0) {\n                lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);\n                param_2[8] = lVar9;\n              }\n              uVar5 = FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff);\n              if (uVar5 != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (param_7 == 0) {\n                local_b9 = '\x01';\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = '\x01';\n              local_bc = *(ushort *)(param_7 + local_b0 * 2);\n              uVar13 = local_bc & 0x7fff;\nLAB_0022ed91:\n                    \n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88);\n              if (1 < uVar13) {\n                pcVar12 = "versym for symbol %zu out of range: %u";\n                if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    \n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }\n                uVar6 = gettext(pcVar12);\n                FUN_0019a740(param_2,uVar6,local_b0,uVar13);\n                goto LAB_0022ec88;\n              }\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }" (if "if") (parenthesized_expression "(uVar13 < 0xff00)" (( "(") (binary_expression "uVar13 < 0xff00" (identifier "uVar13") (< "<") (number_literal "0xff00")) () ")")) (compound_statement "{\n              if (uVar13 == 0) goto LAB_0022ed4f;\nLAB_0022f012:\n              local_b9 = '\x01';\nLAB_0022ec44:\n              *param_11 = *param_11 + 1;\n              if (param_7 != 0) {\n                local_bc = *(ushort *)(param_7 + local_b0 * 2);\n                uVar13 = local_bc & 0x7fff;\n                if (uVar13 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }\nLAB_0022ef87:\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80);\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }" ({ "{") (if_statement "if (uVar13 == 0) goto LAB_0022ed4f;" (if "if") (parenthesized_expression "(uVar13 == 0)" (( "(") (binary_expression "uVar13 == 0" (identifier "uVar13") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0022ed4f;" (goto "goto") (statement_identifier "LAB_0022ed4f") (; ";"))) (labeled_statement "LAB_0022f012:\n              local_b9 = '\x01';" (statement_identifier "LAB_0022f012") (: ":") (expression_statement "local_b9 = '\x01';" (assignment_expression "local_b9 = '\x01'" (identifier "local_b9") (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";"))) (labeled_statement "LAB_0022ec44:\n              *param_11 = *param_11 + 1;" (statement_identifier "LAB_0022ec44") (: ":") (expression_statement "*param_11 = *param_11 + 1;" (assignment_expression "*param_11 = *param_11 + 1" (pointer_expression "*param_11" (* "*") (identifier "param_11")) (= "=") (binary_expression "*param_11 + 1" (pointer_expression "*param_11" (* "*") (identifier "param_11")) (+ "+") (number_literal "1"))) (; ";"))) (if_statement "if (param_7 != 0) {\n                local_bc = *(ushort *)(param_7 + local_b0 * 2);\n                uVar13 = local_bc & 0x7fff;\n                if (uVar13 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }" (if "if") (parenthesized_expression "(param_7 != 0)" (( "(") (binary_expression "param_7 != 0" (identifier "param_7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                local_bc = *(ushort *)(param_7 + local_b0 * 2);\n                uVar13 = local_bc & 0x7fff;\n                if (uVar13 == 0) goto LAB_0022ec88;\n                local_ba = 1;\n                goto LAB_0022ed91;\n              }" ({ "{") (expression_statement "local_bc = *(ushort *)(param_7 + local_b0 * 2);" (assignment_expression "local_bc = *(ushort *)(param_7 + local_b0 * 2)" (identifier "local_bc") (= "=") (pointer_expression "*(ushort *)(param_7 + local_b0 * 2)" (* "*") (cast_expression "(ushort *)(param_7 + local_b0 * 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_7 + local_b0 * 2)" (( "(") (binary_expression "param_7 + local_b0 * 2" (identifier "param_7") (+ "+") (binary_expression "local_b0 * 2" (identifier "local_b0") (* "*") (number_literal "2"))) () ")"))))) (; ";")) (expression_statement "uVar13 = local_bc & 0x7fff;" (assignment_expression "uVar13 = local_bc & 0x7fff" (identifier "uVar13") (= "=") (binary_expression "local_bc & 0x7fff" (identifier "local_bc") (& "&") (number_literal "0x7fff"))) (; ";")) (if_statement "if (uVar13 == 0) goto LAB_0022ec88;" (if "if") (parenthesized_expression "(uVar13 == 0)" (( "(") (binary_expression "uVar13 == 0" (identifier "uVar13") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0022ec88;" (goto "goto") (statement_identifier "LAB_0022ec88") (; ";"))) (expression_statement "local_ba = 1;" (assignment_expression "local_ba = 1" (identifier "local_ba") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_0022ed91;" (goto "goto") (statement_identifier "LAB_0022ed91") (; ";")) (} "}"))) (labeled_statement "LAB_0022ef87:\n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80);" (statement_identifier "LAB_0022ef87") (: ":") (expression_statement "uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80);" (assignment_expression "uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80)" (identifier "uVar6") (= "=") (call_expression "FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80)" (identifier "FUN_0021bf40") (argument_list "(param_1 + 0x68,uVar7 + param_5,1,&local_80)" (( "(") (binary_expression "param_1 + 0x68" (identifier "param_1") (+ "+") (number_literal "0x68")) (, ",") (binary_expression "uVar7 + param_5" (identifier "uVar7") (+ "+") (identifier "param_5")) (, ",") (number_literal "1") (, ",") (pointer_expression "&local_80" (& "&") (identifier "local_80")) () ")")))) (; ";"))) (expression_statement "local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);" (assignment_expression "local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5)" (identifier "local_90") (= "=") (call_expression "FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5)" (identifier "FUN_0022ad40") (argument_list "(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "uVar6") (, ",") (identifier "local_80") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (identifier "ppuVar2") (, ",") (identifier "uVar5") (, ",") (identifier "local_b9") (, ",") (identifier "uVar5") () ")")))) (; ";")) (} "}")) (else_clause "else {\n              local_b9 = '\0';\n              if (uVar13 != 0xffff) goto LAB_0022ec44;\n              lVar9 = param_2[8];\n              if (lVar9 == 0) {\n                lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);\n                param_2[8] = lVar9;\n              }\n              uVar5 = FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff);\n              if (uVar5 != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (param_7 == 0) {\n                local_b9 = '\x01';\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = '\x01';\n              local_bc = *(ushort *)(param_7 + local_b0 * 2);\n              uVar13 = local_bc & 0x7fff;\nLAB_0022ed91:\n                    \n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88);\n              if (1 < uVar13) {\n                pcVar12 = "versym for symbol %zu out of range: %u";\n                if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    \n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }\n                uVar6 = gettext(pcVar12);\n                FUN_0019a740(param_2,uVar6,local_b0,uVar13);\n                goto LAB_0022ec88;\n              }\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }" (else "else") (compound_statement "{\n              local_b9 = '\0';\n              if (uVar13 != 0xffff) goto LAB_0022ec44;\n              lVar9 = param_2[8];\n              if (lVar9 == 0) {\n                lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);\n                param_2[8] = lVar9;\n              }\n              uVar5 = FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff);\n              if (uVar5 != 0) goto LAB_0022f012;\nLAB_0022ed4f:\n              if (param_7 == 0) {\n                local_b9 = '\x01';\n                goto LAB_0022ef87;\n              }\n              local_ba = 0;\n              local_b9 = '\x01';\n              local_bc = *(ushort *)(param_7 + local_b0 * 2);\n              uVar13 = local_bc & 0x7fff;\nLAB_0022ed91:\n                    \n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88);\n              if (1 < uVar13) {\n                pcVar12 = "versym for symbol %zu out of range: %u";\n                if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    \n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }\n                uVar6 = gettext(pcVar12);\n                FUN_0019a740(param_2,uVar6,local_b0,uVar13);\n                goto LAB_0022ec88;\n              }\n              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);\n            }" ({ "{") (expression_statement "local_b9 = '\0';" (assignment_expression "local_b9 = '\0'" (identifier "local_b9") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (if_statement "if (uVar13 != 0xffff) goto LAB_0022ec44;" (if "if") (parenthesized_expression "(uVar13 != 0xffff)" (( "(") (binary_expression "uVar13 != 0xffff" (identifier "uVar13") (!= "!=") (number_literal "0xffff")) () ")")) (goto_statement "goto LAB_0022ec44;" (goto "goto") (statement_identifier "LAB_0022ec44") (; ";"))) (expression_statement "lVar9 = param_2[8];" (assignment_expression "lVar9 = param_2[8]" (identifier "lVar9") (= "=") (subscript_expression "param_2[8]" (identifier "param_2") ([ "[") (number_literal "8") (] "]"))) (; ";")) (if_statement "if (lVar9 == 0) {\n                lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);\n                param_2[8] = lVar9;\n              }" (if "if") (parenthesized_expression "(lVar9 == 0)" (( "(") (binary_expression "lVar9 == 0" (identifier "lVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);\n                param_2[8] = lVar9;\n              }" ({ "{") (expression_statement "lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);" (assignment_expression "lVar9 = (**(code **)(*param_2 + 0xd8))(param_2)" (identifier "lVar9") (= "=") (call_expression "(**(code **)(*param_2 + 0xd8))(param_2)" (parenthesized_expression "(**(code **)(*param_2 + 0xd8))" (( "(") (pointer_expression "**(code **)(*param_2 + 0xd8)" (* "*") (pointer_expression "*(code **)(*param_2 + 0xd8)" (* "*") (cast_expression "(code **)(*param_2 + 0xd8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_2 + 0xd8)" (( "(") (binary_expression "*param_2 + 0xd8" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (number_literal "0xd8")) () ")"))))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "param_2[8] = lVar9;" (assignment_expression "param_2[8] = lVar9" (subscript_expression "param_2[8]" (identifier "param_2") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "lVar9")) (; ";")) (} "}"))) (expression_statement "uVar5 = FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff);" (assignment_expression "uVar5 = FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff)" (identifier "uVar5") (= "=") (call_expression "FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff)" (identifier "FUN_0019a820") (argument_list "(lVar9,param_2,local_b0 & 0xffffffff)" (( "(") (identifier "lVar9") (, ",") (identifier "param_2") (, ",") (binary_expression "local_b0 & 0xffffffff" (identifier "local_b0") (& "&") (number_literal "0xffffffff")) () ")")))) (; ";")) (if_statement "if (uVar5 != 0) goto LAB_0022f012;" (if "if") (parenthesized_expression "(uVar5 != 0)" (( "(") (binary_expression "uVar5 != 0" (identifier "uVar5") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0022f012;" (goto "goto") (statement_identifier "LAB_0022f012") (; ";"))) (labeled_statement "LAB_0022ed4f:\n              if (param_7 == 0) {\n                local_b9 = '\x01';\n                goto LAB_0022ef87;\n              }" (statement_identifier "LAB_0022ed4f") (: ":") (if_statement "if (param_7 == 0) {\n                local_b9 = '\x01';\n                goto LAB_0022ef87;\n              }" (if "if") (parenthesized_expression "(param_7 == 0)" (( "(") (binary_expression "param_7 == 0" (identifier "param_7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                local_b9 = '\x01';\n                goto LAB_0022ef87;\n              }" ({ "{") (expression_statement "local_b9 = '\x01';" (assignment_expression "local_b9 = '\x01'" (identifier "local_b9") (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (goto_statement "goto LAB_0022ef87;" (goto "goto") (statement_identifier "LAB_0022ef87") (; ";")) (} "}")))) (expression_statement "local_ba = 0;" (assignment_expression "local_ba = 0" (identifier "local_ba") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_b9 = '\x01';" (assignment_expression "local_b9 = '\x01'" (identifier "local_b9") (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (expression_statement "local_bc = *(ushort *)(param_7 + local_b0 * 2);" (assignment_expression "local_bc = *(ushort *)(param_7 + local_b0 * 2)" (identifier "local_bc") (= "=") (pointer_expression "*(ushort *)(param_7 + local_b0 * 2)" (* "*") (cast_expression "(ushort *)(param_7 + local_b0 * 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_7 + local_b0 * 2)" (( "(") (binary_expression "param_7 + local_b0 * 2" (identifier "param_7") (+ "+") (binary_expression "local_b0 * 2" (identifier "local_b0") (* "*") (number_literal "2"))) () ")"))))) (; ";")) (expression_statement "uVar13 = local_bc & 0x7fff;" (assignment_expression "uVar13 = local_bc & 0x7fff" (identifier "uVar13") (= "=") (binary_expression "local_bc & 0x7fff" (identifier "local_bc") (& "&") (number_literal "0x7fff"))) (; ";")) (labeled_statement "LAB_0022ed91:\n                    \n              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88);" (statement_identifier "LAB_0022ed91") (: ":") (expression_statement "uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88);" (assignment_expression "uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88)" (identifier "uVar6") (= "=") (call_expression "FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88)" (identifier "FUN_0021bf40") (argument_list "(param_1 + 0x68,uVar7 + param_5,1,&local_88)" (( "(") (binary_expression "param_1 + 0x68" (identifier "param_1") (+ "+") (number_literal "0x68")) (, ",") (binary_expression "uVar7 + param_5" (identifier "uVar7") (+ "+") (identifier "param_5")) (, ",") (number_literal "1") (, ",") (pointer_expression "&local_88" (& "&") (identifier "local_88")) () ")")))) (; ";"))) (if_statement "if (1 < uVar13) {\n                pcVar12 = "versym for symbol %zu out of range: %u";\n                if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    \n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }\n                uVar6 = gettext(pcVar12);\n                FUN_0019a740(param_2,uVar6,local_b0,uVar13);\n                goto LAB_0022ec88;\n              }" (if "if") (parenthesized_expression "(1 < uVar13)" (( "(") (binary_expression "1 < uVar13" (number_literal "1") (< "<") (identifier "uVar13")) () ")")) (compound_statement "{\n                pcVar12 = "versym for symbol %zu out of range: %u";\n                if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    \n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }\n                uVar6 = gettext(pcVar12);\n                FUN_0019a740(param_2,uVar6,local_b0,uVar13);\n                goto LAB_0022ec88;\n              }" ({ "{") (expression_statement "pcVar12 = "versym for symbol %zu out of range: %u";" (assignment_expression "pcVar12 = "versym for symbol %zu out of range: %u"" (identifier "pcVar12") (= "=") (string_literal ""versym for symbol %zu out of range: %u"" (" """) (string_content "versym for symbol %zu out of range: %u") (" """))) (; ";")) (if_statement "if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    \n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }" (if "if") (parenthesized_expression "((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3))" (( "(") (binary_expression "(ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)" (cast_expression "(ulong)uVar13" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar13")) (< "<") (call_expression "(ulong)(param_9[1] - *param_9 >> 3)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(param_9[1] - *param_9 >> 3)" (( "(") (binary_expression "param_9[1] - *param_9 >> 3" (binary_expression "param_9[1] - *param_9" (subscript_expression "param_9[1]" (identifier "param_9") ([ "[") (number_literal "1") (] "]")) (- "-") (pointer_expression "*param_9" (* "*") (identifier "param_9"))) (>> ">>") (number_literal "3")) () ")")))) () ")")) (compound_statement "{\n                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);\n                  if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    \n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }\n                  pcVar12 = "versym for symbol %zu has no name: %u";\n                }" ({ "{") (expression_statement "lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);" (assignment_expression "lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8)" (identifier "lVar9") (= "=") (pointer_expression "*(long *)(*param_9 + (ulong)uVar13 * 8)" (* "*") (cast_expression "(long *)(*param_9 + (ulong)uVar13 * 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_9 + (ulong)uVar13 * 8)" (( "(") (binary_expression "*param_9 + (ulong)uVar13 * 8" (pointer_expression "*param_9" (* "*") (identifier "param_9")) (+ "+") (binary_expression "(ulong)uVar13 * 8" (cast_expression "(ulong)uVar13" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar13")) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (if_statement "if (lVar9 != 0) {\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    \n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }" (if "if") (parenthesized_expression "(lVar9 != 0)" (( "(") (binary_expression "lVar9 != 0" (identifier "lVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);\n                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    \n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }\n                    goto LAB_0022ee87;\n                  }" ({ "{") (expression_statement "uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);" (assignment_expression "uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80)" (identifier "uVar8") (= "=") (call_expression "FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80)" (identifier "FUN_0021bf40") (argument_list "(param_1 + 0x68,lVar9,1,&local_80)" (( "(") (binary_expression "param_1 + 0x68" (identifier "param_1") (+ "+") (number_literal "0x68")) (, ",") (identifier "lVar9") (, ",") (number_literal "1") (, ",") (pointer_expression "&local_80" (& "&") (identifier "local_80")) () ")")))) (; ";")) (if_statement "if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {\n                    \n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }\n                    else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }" (if "if") (parenthesized_expression "(((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88))" (( "(") (binary_expression "((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)" (parenthesized_expression "((uVar5 == 0xfff1) && (local_b9 == '\0'))" (( "(") (binary_expression "(uVar5 == 0xfff1) && (local_b9 == '\0')" (parenthesized_expression "(uVar5 == 0xfff1)" (( "(") (binary_expression "uVar5 == 0xfff1" (identifier "uVar5") (== "==") (number_literal "0xfff1")) () ")")) (&& "&&") (parenthesized_expression "(local_b9 == '\0')" (( "(") (binary_expression "local_b9 == '\0'" (identifier "local_b9") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(local_80 == local_88)" (( "(") (binary_expression "local_80 == local_88" (identifier "local_80") (== "==") (identifier "local_88")) () ")"))) () ")")) (compound_statement "{\n                    \n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);\n                    }" ({ "{") (expression_statement "local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1);" (assignment_expression "local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1)" (identifier "local_90") (= "=") (call_expression "FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1)" (identifier "FUN_0022ad40") (argument_list "(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,\n                                              0xfff1)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "uVar6") (, ",") (identifier "local_80") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (identifier "ppuVar2") (, ",") (number_literal "0xfff1") (, ",") (number_literal "0") (, ",") (number_literal "0xfff1") () ")")))) (; ";")) (} "}")) (else_clause "else {\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }" (else "else") (compound_statement "{\n                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);\n                    }" ({ "{") (expression_statement "local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5);" (assignment_expression "local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5)" (identifier "local_90") (= "=") (call_expression "FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5)" (identifier "FUN_0022ad40") (argument_list "(param_1,param_2,uVar6,local_88,uVar8,local_80,\n                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,\n                                              uVar5,local_b9,uVar5)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "uVar6") (, ",") (identifier "local_88") (, ",") (identifier "uVar8") (, ",") (identifier "local_80") (, ",") (binary_expression "(byte)~(byte)(local_bc >> 8) >> 7 & local_ba" (binary_expression "(byte)~(byte)(local_bc >> 8) >> 7" (cast_expression "(byte)~(byte)(local_bc >> 8)" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (unary_expression "~(byte)(local_bc >> 8)" (~ "~") (call_expression "(byte)(local_bc >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(local_bc >> 8)" (( "(") (binary_expression "local_bc >> 8" (identifier "local_bc") (>> ">>") (number_literal "8")) () ")"))))) (>> ">>") (number_literal "7")) (& "&") (identifier "local_ba")) (, ",") (identifier "ppuVar2") (, ",") (identifier "uVar5") (, ",") (identifier "local_b9") (, ",") (identifier "uVar5") () ")")))) (; ";")) (} "}")))) (goto_statement "goto LAB_0022ee87;" (goto "goto") (statement_identifier "LAB_0022ee87") (; ";")) (} "}"))) (expression_statement "pcVar12 = "versym for symbol %zu has no name: %u";" (assignment_expression "pcVar12 = "versym for symbol %zu has no name: %u"" (identifier "pcVar12") (= "=") (string_literal ""versym for symbol %zu has no name: %u"" (" """) (string_content "versym for symbol %zu has no name: %u") (" """))) (; ";")) (} "}"))) (expression_statement "uVar6 = gettext(pcVar12);" (assignment_expression "uVar6 = gettext(pcVar12)" (identifier "uVar6") (= "=") (call_expression "gettext(pcVar12)" (identifier "gettext") (argument_list "(pcVar12)" (( "(") (identifier "pcVar12") () ")")))) (; ";")) (expression_statement "FUN_0019a740(param_2,uVar6,local_b0,uVar13);" (call_expression "FUN_0019a740(param_2,uVar6,local_b0,uVar13)" (identifier "FUN_0019a740") (argument_list "(param_2,uVar6,local_b0,uVar13)" (( "(") (identifier "param_2") (, ",") (identifier "uVar6") (, ",") (identifier "local_b0") (, ",") (identifier "uVar13") () ")"))) (; ";")) (goto_statement "goto LAB_0022ec88;" (goto "goto") (statement_identifier "LAB_0022ec88") (; ";")) (} "}"))) (expression_statement "local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5);" (assignment_expression "local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5)" (identifier "local_90") (= "=") (call_expression "FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5)" (identifier "FUN_0022ad40") (argument_list "(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,\n                                      uVar5)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "uVar6") (, ",") (identifier "local_88") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (identifier "ppuVar2") (, ",") (identifier "uVar5") (, ",") (identifier "local_b9") (, ",") (identifier "uVar5") () ")")))) (; ";")) (} "}")))) (labeled_statement "LAB_0022ee87:\n            if (local_90 != 0) {\n              bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n              if (((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)\n                 ) {\nLAB_0022eeb4:\n                if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    \n                    \n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }\n              }\n              else if (bVar11 == 0) {\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (param_10 != (long *)0x0) {\n                *(long *)(*param_10 + local_b0 * 8) = local_90;\n              }\n            }" (statement_identifier "LAB_0022ee87") (: ":") (if_statement "if (local_90 != 0) {\n              bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n              if (((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)\n                 ) {\nLAB_0022eeb4:\n                if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    \n                    \n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }\n              }\n              else if (bVar11 == 0) {\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (param_10 != (long *)0x0) {\n                *(long *)(*param_10 + local_b0 * 8) = local_90;\n              }\n            }" (if "if") (parenthesized_expression "(local_90 != 0)" (( "(") (binary_expression "local_90 != 0" (identifier "local_90") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n              if (((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)\n                 ) {\nLAB_0022eeb4:\n                if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    \n                    \n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }\n              }\n              else if (bVar11 == 0) {\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }\n              if (param_10 != (long *)0x0) {\n                *(long *)(*param_10 + local_b0 * 8) = local_90;\n              }\n            }" ({ "{") (expression_statement "bVar11 = *(byte *)(local_90 + 0x3a) & 7;" (assignment_expression "bVar11 = *(byte *)(local_90 + 0x3a) & 7" (identifier "bVar11") (= "=") (binary_expression "*(byte *)(local_90 + 0x3a) & 7" (pointer_expression "*(byte *)(local_90 + 0x3a)" (* "*") (cast_expression "(byte *)(local_90 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_90 + 0x3a)" (( "(") (binary_expression "local_90 + 0x3a" (identifier "local_90") (+ "+") (number_literal "0x3a")) () ")")))) (& "&") (number_literal "7"))) (; ";")) (if_statement "if (((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)\n                 ) {\nLAB_0022eeb4:\n                if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    \n                    \n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }\n              }\n              else if (bVar11 == 0) {\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }" (if "if") (parenthesized_expression "(((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)\n                 )" (( "(") (binary_expression "((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)" (parenthesized_expression "((uVar5 == 0) || (local_b9 == '\0'))" (( "(") (binary_expression "(uVar5 == 0) || (local_b9 == '\0')" (parenthesized_expression "(uVar5 == 0)" (( "(") (binary_expression "uVar5 == 0" (identifier "uVar5") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(local_b9 == '\0')" (( "(") (binary_expression "local_b9 == '\0'" (identifier "local_b9") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "((**ppuVar2 & 0xf00000000) != 0x100000000)" (( "(") (binary_expression "(**ppuVar2 & 0xf00000000) != 0x100000000" (parenthesized_expression "(**ppuVar2 & 0xf00000000)" (( "(") (binary_expression "**ppuVar2 & 0xf00000000" (pointer_expression "**ppuVar2" (* "*") (pointer_expression "*ppuVar2" (* "*") (identifier "ppuVar2"))) (& "&") (number_literal "0xf00000000")) () ")")) (!= "!=") (number_literal "0x100000000")) () ")"))) () ")")) (compound_statement "{\nLAB_0022eeb4:\n                if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    \n                    \n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }\n              }" ({ "{") (labeled_statement "LAB_0022eeb4:\n                if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    \n                    \n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }" (statement_identifier "LAB_0022eeb4") (: ":") (if_statement "if (bVar11 == 0) {\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    \n                    \n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }" (if "if") (parenthesized_expression "(bVar11 == 0)" (( "(") (binary_expression "bVar11 == 0" (identifier "bVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    \n                    \n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }\nLAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }\n                }" ({ "{") (if_statement "if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {\n                    \n                    \n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }" (if "if") (parenthesized_expression "((*(byte *)(local_90 + 0x3a) & 7) != 0)" (( "(") (binary_expression "(*(byte *)(local_90 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)(local_90 + 0x3a) & 7)" (( "(") (binary_expression "*(byte *)(local_90 + 0x3a) & 7" (pointer_expression "*(byte *)(local_90 + 0x3a)" (* "*") (cast_expression "(byte *)(local_90 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_90 + 0x3a)" (( "(") (binary_expression "local_90 + 0x3a" (identifier "local_90") (+ "+") (number_literal "0x3a")) () ")")))) (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    \n                    \n                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n                  }" ({ "{") (expression_statement "FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");" (call_expression "FUN_0016cdf0("../../gold/symtab.h",0xa1,"object")" (identifier "FUN_0016cdf0") (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") (" """)) () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_0022eec2:\n                  if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }" (statement_identifier "LAB_0022eec2") (: ":") (if_statement "if ((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }" (if "if") (parenthesized_expression "((param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000))" (( "(") (binary_expression "(param_2 == *(long **)(local_90 + 0x10)) &&\n                     ((*local_a0 & 0x30000000000) == 0x30000000000)" (parenthesized_expression "(param_2 == *(long **)(local_90 + 0x10))" (( "(") (binary_expression "param_2 == *(long **)(local_90 + 0x10)" (identifier "param_2") (== "==") (pointer_expression "*(long **)(local_90 + 0x10)" (* "*") (cast_expression "(long **)(local_90 + 0x10)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_90 + 0x10)" (( "(") (binary_expression "local_90 + 0x10" (identifier "local_90") (+ "+") (number_literal "0x10")) () ")"))))) () ")")) (&& "&&") (parenthesized_expression "((*local_a0 & 0x30000000000) == 0x30000000000)" (( "(") (binary_expression "(*local_a0 & 0x30000000000) == 0x30000000000" (parenthesized_expression "(*local_a0 & 0x30000000000)" (( "(") (binary_expression "*local_a0 & 0x30000000000" (pointer_expression "*local_a0" (* "*") (identifier "local_a0")) (& "&") (number_literal "0x30000000000")) () ")")) (== "==") (number_literal "0x30000000000")) () ")"))) () ")")) (compound_statement "{\n                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;\n                  }" ({ "{") (expression_statement "*(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;" (assignment_expression "*(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8" (pointer_expression "*(byte *)(local_90 + 0x3c)" (* "*") (cast_expression "(byte *)(local_90 + 0x3c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_90 + 0x3c)" (( "(") (binary_expression "local_90 + 0x3c" (identifier "local_90") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (binary_expression "*(byte *)(local_90 + 0x3c) | 8" (pointer_expression "*(byte *)(local_90 + 0x3c)" (* "*") (cast_expression "(byte *)(local_90 + 0x3c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_90 + 0x3c)" (( "(") (binary_expression "local_90 + 0x3c" (identifier "local_90") (+ "+") (number_literal "0x3c")) () ")")))) (| "|") (number_literal "8"))) (; ";")) (} "}")))) (} "}")))) (} "}")) (else_clause "else if (bVar11 == 0) {\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }" (else "else") (if_statement "if (bVar11 == 0) {\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }" (if "if") (parenthesized_expression "(bVar11 == 0)" (( "(") (binary_expression "bVar11 == 0" (identifier "bVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }\n                goto LAB_0022eec2;\n              }" ({ "{") (if_statement "if (param_2 == *(long **)(local_90 + 0x10)) {\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }" (if "if") (parenthesized_expression "(param_2 == *(long **)(local_90 + 0x10))" (( "(") (binary_expression "param_2 == *(long **)(local_90 + 0x10)" (identifier "param_2") (== "==") (pointer_expression "*(long **)(local_90 + 0x10)" (* "*") (cast_expression "(long **)(local_90 + 0x10)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_90 + 0x10)" (( "(") (binary_expression "local_90 + 0x10" (identifier "local_90") (+ "+") (number_literal "0x10")) () ")"))))) () ")")) (compound_statement "{\n                  if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  goto LAB_0022eeb4;\n                }" ({ "{") (if_statement "if (local_70 == local_68) {\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }\n                  else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }" (if "if") (parenthesized_expression "(local_70 == local_68)" (( "(") (binary_expression "local_70 == local_68" (identifier "local_70") (== "==") (identifier "local_68")) () ")")) (compound_statement "{\n                    FUN_00223290(&local_78,local_70,&local_90);\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }" ({ "{") (expression_statement "FUN_00223290(&local_78,local_70,&local_90);" (call_expression "FUN_00223290(&local_78,local_70,&local_90)" (identifier "FUN_00223290") (argument_list "(&local_78,local_70,&local_90)" (( "(") (pointer_expression "&local_78" (& "&") (identifier "local_78")) (, ",") (identifier "local_70") (, ",") (pointer_expression "&local_90" (& "&") (identifier "local_90")) () ")"))) (; ";")) (expression_statement "bVar11 = *(byte *)(local_90 + 0x3a) & 7;" (assignment_expression "bVar11 = *(byte *)(local_90 + 0x3a) & 7" (identifier "bVar11") (= "=") (binary_expression "*(byte *)(local_90 + 0x3a) & 7" (pointer_expression "*(byte *)(local_90 + 0x3a)" (* "*") (cast_expression "(byte *)(local_90 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_90 + 0x3a)" (( "(") (binary_expression "local_90 + 0x3a" (identifier "local_90") (+ "+") (number_literal "0x3a")) () ")")))) (& "&") (number_literal "7"))) (; ";")) (} "}")) (else_clause "else {\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }" (else "else") (compound_statement "{\n                    *local_70 = local_90;\n                    local_70 = local_70 + 1;\n                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;\n                  }" ({ "{") (expression_statement "*local_70 = local_90;" (assignment_expression "*local_70 = local_90" (pointer_expression "*local_70" (* "*") (identifier "local_70")) (= "=") (identifier "local_90")) (; ";")) (expression_statement "local_70 = local_70 + 1;" (assignment_expression "local_70 = local_70 + 1" (identifier "local_70") (= "=") (binary_expression "local_70 + 1" (identifier "local_70") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar11 = *(byte *)(local_90 + 0x3a) & 7;" (assignment_expression "bVar11 = *(byte *)(local_90 + 0x3a) & 7" (identifier "bVar11") (= "=") (binary_expression "*(byte *)(local_90 + 0x3a) & 7" (pointer_expression "*(byte *)(local_90 + 0x3a)" (* "*") (cast_expression "(byte *)(local_90 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_90 + 0x3a)" (( "(") (binary_expression "local_90 + 0x3a" (identifier "local_90") (+ "+") (number_literal "0x3a")) () ")")))) (& "&") (number_literal "7"))) (; ";")) (} "}")))) (goto_statement "goto LAB_0022eeb4;" (goto "goto") (statement_identifier "LAB_0022eeb4") (; ";")) (} "}"))) (goto_statement "goto LAB_0022eec2;" (goto "goto") (statement_identifier "LAB_0022eec2") (; ";")) (} "}"))))) (if_statement "if (param_10 != (long *)0x0) {\n                *(long *)(*param_10 + local_b0 * 8) = local_90;\n              }" (if "if") (parenthesized_expression "(param_10 != (long *)0x0)" (( "(") (binary_expression "param_10 != (long *)0x0" (identifier "param_10") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                *(long *)(*param_10 + local_b0 * 8) = local_90;\n              }" ({ "{") (expression_statement "*(long *)(*param_10 + local_b0 * 8) = local_90;" (assignment_expression "*(long *)(*param_10 + local_b0 * 8) = local_90" (pointer_expression "*(long *)(*param_10 + local_b0 * 8)" (* "*") (cast_expression "(long *)(*param_10 + local_b0 * 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_10 + local_b0 * 8)" (( "(") (binary_expression "*param_10 + local_b0 * 8" (pointer_expression "*param_10" (* "*") (identifier "param_10")) (+ "+") (binary_expression "local_b0 * 8" (identifier "local_b0") (* "*") (number_literal "8"))) () ")")))) (= "=") (identifier "local_90")) (; ";")) (} "}"))) (} "}")))) (} "}")) (else_clause "else {\n            uVar6 = gettext("bad symbol name offset %u at %zu");\n            FUN_0019a740(param_2,uVar6,uVar7,local_b0);\n          }" (else "else") (compound_statement "{\n            uVar6 = gettext("bad symbol name offset %u at %zu");\n            FUN_0019a740(param_2,uVar6,uVar7,local_b0);\n          }" ({ "{") (expression_statement "uVar6 = gettext("bad symbol name offset %u at %zu");" (assignment_expression "uVar6 = gettext("bad symbol name offset %u at %zu")" (identifier "uVar6") (= "=") (call_expression "gettext("bad symbol name offset %u at %zu")" (identifier "gettext") (argument_list "("bad symbol name offset %u at %zu")" (( "(") (string_literal ""bad symbol name offset %u at %zu"" (" """) (string_content "bad symbol name offset %u at %zu") (" """)) () ")")))) (; ";")) (expression_statement "FUN_0019a740(param_2,uVar6,uVar7,local_b0);" (call_expression "FUN_0019a740(param_2,uVar6,uVar7,local_b0)" (identifier "FUN_0019a740") (argument_list "(param_2,uVar6,uVar7,local_b0)" (( "(") (identifier "param_2") (, ",") (identifier "uVar6") (, ",") (identifier "uVar7") (, ",") (identifier "local_b0") () ")"))) (; ";")) (} "}")))) (} "}"))) (} "}"))) (labeled_statement "LAB_0022ec88:\n      local_b0 = local_b0 + 1;" (statement_identifier "LAB_0022ec88") (: ":") (expression_statement "local_b0 = local_b0 + 1;" (assignment_expression "local_b0 = local_b0 + 1" (identifier "local_b0") (= "=") (binary_expression "local_b0 + 1" (identifier "local_b0") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "param_3 = param_3 + 3;" (assignment_expression "param_3 = param_3 + 3" (identifier "param_3") (= "=") (binary_expression "param_3 + 3" (identifier "param_3") (+ "+") (number_literal "3"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(param_4 != local_b0)" (( "(") (binary_expression "param_4 != local_b0" (identifier "param_4") (!= "!=") (identifier "local_b0")) () ")")) (; ";")) (} "}"))) (expression_statement "FUN_0022e900(param_1,&local_78);" (call_expression "FUN_0022e900(param_1,&local_78)" (identifier "FUN_0022e900") (argument_list "(param_1,&local_78)" (( "(") (identifier "param_1") (, ",") (pointer_expression "&local_78" (& "&") (identifier "local_78")) () ")"))) (; ";")) (if_statement "if (local_78 != 0) {\n    FUN_00276d20();\n  }" (if "if") (parenthesized_expression "(local_78 != 0)" (( "(") (binary_expression "local_78 != 0" (identifier "local_78") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_00276d20();\n  }" ({ "{") (expression_statement "FUN_00276d20();" (call_expression "FUN_00276d20()" (identifier "FUN_00276d20") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Restarted to delay deadcode elimination for space: stack */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original name: add_from_dynobj<64, false>
   DWARF original prototype: void add_from_dynobj<64,_false>(Symbol_table * this,
   Sized_dynobj<64,_false> * dynobj, uchar * syms, size_t count, char * sym_names, size_t
   sym_name_size, uchar * versym, size_t versym_size,
   vector<char_const*,_std::allocator<char_const*>_> * version_map, Symbols * sympointers, size_t *
   defined) */

void __thiscall
var_13::Symbol_table::add_from_dynobj<64,var_34>
          (Symbol_table *this,var_48<64,var_34> *var_47,type_10 *syms,size_t var_11,
          char *var_32,size_t var_24,type_10 *var_9,size_t var_10,
          vector<var_40*,var_15::var_39<var_40*>var_16> *version_map,type_14 *var_14,
          size_t *defined)

{
  undefined1 *puVar1;
  type_1 *var_4;
  type_2 ppcVar2;
  type_3 uVar3;
  var_1<64> *pSVar4;
  Sym<64,var_34> *sym_00;
  bool bVar5;
  int var_18;
  type_4 var_38;
  char *pcVar7;
  type_5 var_23;
  type_6 *var_35;
  type_7 var_22;
  type_7 var_19;
  char *var_41;
  type_8 var_25;
  type_4 var_28;
  type_8 var_27;
  type_7 var_45;
  bool var_42;
  size_t var_26;
  Sym<64,var_34> sym;
  Sym<64,var_34> sym2;
  var_2<64> *var_46;
  type_9 var_44;
  type_9 var_43;
  vector<var_13::var_2<64>*,var_15::var_39<var_13::var_2<64>*>var_16> object_symbols;
  type_10 symbuf [24];
  type_11 extraout_var;
  
  *defined = 0;
  if (parameters->target_ == (type_12 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_3("../../gold/parameters.h",0x69,"target");
  }
  if (**(int **)(parameters->target_ + 8) != 0x40) {
                    /* WARNING: Subroutine does not return */
    var_3("../../gold/symtab.cc",0x5bd,"add_from_dynobj");
  }
  var_4 = (var_47->super_Dynobj).super_Object.input_file_;
  if (var_4 == (type_1 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_3("../../gold/object.h",0x1ea,"input_file");
  }
  bVar5 = type_1::var_5(var_4);
  if (bVar5) {
    pcVar7 = (char *)var_6("--just-symbols does not make sense with a shared object");
    var_7(pcVar7);
    return;
  }
  bVar5 = Parameters::var_8(parameters);
  if ((var_9 == (type_10 *)0x0) || (bVar5)) {
    var_9 = (type_10 *)0x0;
  }
  else if (var_10 >> 1 < var_11) {
    pcVar7 = (char *)var_6("too few symbol versions");
    Object::var_12((type_13 *)var_47,pcVar7);
    return;
  }
  object_symbols.
  super__Vector_base<var_13::var_2<64>*,var_15::var_39<var_13::var_2<64>*>var_16>._M_impl.
  _M_start = (type_2)0x0;
  object_symbols.
  super__Vector_base<var_13::var_2<64>*,var_15::var_39<var_13::var_2<64>*>var_16>._M_impl.
  _M_finish = (type_2)0x0;
  object_symbols.
  super__Vector_base<var_13::var_2<64>*,var_15::var_39<var_13::var_2<64>*>var_16>._M_impl.
  _M_end_of_storage = (type_2)0x0;
  var_26 = 0;
  if (var_11 != 0) {
    do {
      if (var_14 != (type_14 *)0x0) {
        (var_14->super__Vector_base<var_13::type_15*,var_15::var_39<var_13::type_15*>var_16>var_17)._M_impl.
        _M_start[var_26] = (type_15 *)0x0;
      }
      var_18 = (int)(type_4)((var_1<64> *)syms)->st_info >> 4;
      sym.p_ = (var_1<64> *)syms;
      if (var_18 != 0) {
        var_19 = ((var_1<64> *)syms)->st_other & 3;
        if (1 < (type_7)(var_19 - 1)) {
          var_22 = ((var_1<64> *)syms)->st_info & 0xf;
          if (var_19 == 3) {
            uVar3._0_4_ = ((var_1<64> *)syms)->st_name;
            uVar3._4_1_ = ((var_1<64> *)syms)->st_info;
            uVar3._5_1_ = ((var_1<64> *)syms)->st_other;
            uVar3._6_2_ = ((var_1<64> *)syms)->var_38;
            symbuf._8_8_ = ((var_1<64> *)syms)->st_value;
            symbuf._16_8_ = ((var_1<64> *)syms)->st_size;
            symbuf._6_2_ = (undefined2)((type_5)uVar3 >> 0x30);
            symbuf._0_5_ = (type_16)uVar3;
            symbuf._0_8_ = var_20(symbuf._6_2_,
                                    var_21(((var_1<64> *)syms)->st_other,symbuf._0_5_)) &
                           0xfffffcffffffffff;
            if (var_22 == 10) goto LAB_0022ef70;
LAB_0022ef0b:
            var_23 = symbuf._0_8_ & 0xffffffff;
            pSVar4 = (var_1<64> *)symbuf;
            sym_00 = &sym2;
          }
          else {
            if (var_22 == 10) {
              symbuf._16_8_ = ((var_1<64> *)syms)->st_size;
              symbuf._0_8_ = *(type_3 *)syms;
              symbuf._8_8_ = ((var_1<64> *)syms)->st_value;
LAB_0022ef70:
              symbuf[4] = (char)(var_18 << 4) + '\x02';
              goto LAB_0022ef0b;
            }
            sym_00 = &sym;
            var_23 = (type_5)((var_1<64> *)syms)->st_name;
            pSVar4 = (var_1<64> *)syms;
          }
          sym2.p_ = (var_1<64> *)symbuf;
          if (var_23 < var_24) {
            var_25 = pSVar4->var_38;
            var_38 = (type_4)var_25;
            if (var_25 < 0xff00) {
              if (var_25 == 0) goto LAB_0022ed4f;
LAB_0022f012:
              var_42 = true;
LAB_0022ec44:
              *defined = *defined + 1;
              if (var_9 != (type_10 *)0x0) {
                var_27 = *(type_8 *)(var_9 + var_26 * 2);
                var_25 = var_27 & 0x7fff;
                var_28 = (type_4)var_25;
                if (var_28 == 0) goto LAB_0022ec88;
                var_45 = 1;
                goto LAB_0022ed91;
              }
LAB_0022ef87:
              pcVar7 = var_29<var_30>::var_31
                                 (&this->namepool_,var_32 + var_23,true,&var_43);
              var_46 = var_33<64,var_34>
                              (this,(type_13 *)var_47,pcVar7,var_43,(char *)0x0,0,false,sym_00,
                               var_38,var_42,var_38);
            }
            else {
              var_42 = false;
              if (var_25 != 0xffff) goto LAB_0022ec44;
              var_35 = (var_47->super_Dynobj).super_Object.xindex_;
              if (var_35 == (type_6 *)0x0) {
                var_18 = (*(var_47->super_Dynobj).super_Object._vptr_Object[0x1b])(var_47);
                var_35 = (type_6 *)var_36(extraout_var,var_18);
                (var_47->super_Dynobj).super_Object.xindex_ = var_35;
              }
              var_38 = type_6::var_37(var_35,(type_13 *)var_47,(type_4)var_26);
              if (var_38 != 0) goto LAB_0022f012;
LAB_0022ed4f:
              if (var_9 == (type_10 *)0x0) {
                var_42 = true;
                goto LAB_0022ef87;
              }
              var_45 = 0;
              var_42 = true;
              var_27 = *(type_8 *)(var_9 + var_26 * 2);
              var_25 = var_27 & 0x7fff;
              var_28 = (type_4)var_25;
LAB_0022ed91:
                    /* try { // try from 0022edb6 to 0022f0c1 has its CatchHandler @ 0022f284 */
              pcVar7 = var_29<var_30>::var_31
                                 (&this->namepool_,var_32 + var_23,true,&var_44);
              if (1 < var_25) {
                var_41 = "versym for symbol %zu out of range: %u";
                ppcVar2 = (version_map->
                          super__Vector_base<var_40*,var_15::var_39<var_40*>var_16>var_17)._M_impl.
                          _M_start;
                if ((type_5)var_25 <
                    (type_5)((long)(version_map->
                                  super__Vector_base<var_40*,var_15::var_39<var_40*>var_16>var_17).
                                  _M_impl._M_finish - (long)ppcVar2 >> 3)) {
                  var_41 = ppcVar2[var_25];
                  if (var_41 != (char *)0x0) {
                    var_41 = var_29<var_30>::var_31
                                        (&this->namepool_,var_41,true,&var_43);
                    if (((var_38 == 0xfff1) && (var_42 == false)) && (var_43 == var_44)) {
                    /* try { // try from 0022f1bf to 0022f1fd has its CatchHandler @ 0022f284 */
                      var_46 = var_33<64,var_34>
                                      (this,(type_13 *)var_47,pcVar7,var_43,(char *)0x0,0,false,
                                       sym_00,0xfff1,false,0xfff1);
                    }
                    else {
                      var_46 = var_33<64,var_34>
                                      (this,(type_13 *)var_47,pcVar7,var_44,var_41,var_43,
                                       (bool)((type_7)~(type_7)(var_27 >> 8) >> 7 & var_45),sym_00,
                                       var_38,var_42,var_38);
                    }
                    goto LAB_0022ee87;
                  }
                  var_41 = "versym for symbol %zu has no name: %u";
                }
                pcVar7 = (char *)var_6(var_41);
                Object::var_12((type_13 *)var_47,pcVar7,var_26,(type_5)var_28);
                goto LAB_0022ec88;
              }
              var_46 = var_33<64,var_34>
                              (this,(type_13 *)var_47,pcVar7,var_44,(char *)0x0,0,false,sym_00,
                               var_38,var_42,var_38);
            }
LAB_0022ee87:
            if (var_46 != (var_2<64> *)0x0) {
              var_19 = (var_46->super_Symbol).field_0x3a & 7;
              if (((var_38 == 0) || (var_42 == false)) || ((sym_00->p_->st_info & 0xf) != 1)) {
LAB_0022eeb4:
                if (var_19 == 0) {
                  if (((var_46->super_Symbol).field_0x3a & 7) != 0) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0022f24f to 0022f253 has its CatchHandler @ 0022f284 */
                    var_3("../../gold/symtab.h",0xa1,"object");
                  }
LAB_0022eec2:
                  if ((var_47 == (var_48<64,var_34> *var_17)(var_46->super_Symbol).u1_.object) &&
                     (((sym.p_)->st_other & 3) == 3)) {
                    puVar1 = &(var_46->super_Symbol).field_0x3c;
                    *puVar1 = *puVar1 | 8;
                  }
                }
              }
              else if (var_19 == 0) {
                if (var_47 == (var_48<64,var_34> *var_17)(var_46->super_Symbol).u1_.object) {
                  if (object_symbols.
                      super__Vector_base<var_13::var_2<64>*,var_15::var_39<var_13::var_2<64>*>var_16>
                      ._M_impl._M_finish ==
                      object_symbols.
                      super__Vector_base<var_13::var_2<64>*,var_15::var_39<var_13::var_2<64>*>var_16>
                      ._M_impl._M_end_of_storage) {
                    std::vector<var_13::var_2<64>*,var_15::var_39<var_13::var_2<64>*>var_16>::
                    _M_realloc_insert<var_13::var_2<64>*_const&>
                              (&object_symbols,
                               (iterator)
                               object_symbols.
                               super__Vector_base<var_13::var_2<64>*,var_15::var_39<var_13::var_2<64>*>var_16>
                               ._M_impl._M_finish,&var_46);
                    var_19 = (var_46->super_Symbol).field_0x3a & 7;
                  }
                  else {
                    *object_symbols.
                     super__Vector_base<var_13::var_2<64>*,var_15::var_39<var_13::var_2<64>*>var_16>
                     ._M_impl._M_finish = var_46;
                    object_symbols.
                    super__Vector_base<var_13::var_2<64>*,var_15::var_39<var_13::var_2<64>*>var_16>
                    ._M_impl._M_finish =
                         object_symbols.
                         super__Vector_base<var_13::var_2<64>*,var_15::var_39<var_13::var_2<64>*>var_16>
                         ._M_impl._M_finish + 1;
                    var_19 = (var_46->super_Symbol).field_0x3a & 7;
                  }
                  goto LAB_0022eeb4;
                }
                goto LAB_0022eec2;
              }
              if (var_14 != (type_14 *)0x0) {
                (var_14->super__Vector_base<var_13::type_15*,var_15::var_39<var_13::type_15*>var_16>var_17).
                _M_impl._M_start[var_26] = &var_46->super_Symbol;
              }
            }
          }
          else {
            pcVar7 = (char *)var_6("bad symbol name offset %u at %zu");
            Object::var_12((type_13 *)var_47,pcVar7,var_23,var_26);
          }
        }
      }
LAB_0022ec88:
      var_26 = var_26 + 1;
      syms = (type_10 *)((long)syms + 0x18);
    } while (var_11 != var_26);
  }
  var_49<64>(this,&object_symbols);
  if (object_symbols.
      super__Vector_base<var_13::var_2<64>*,var_15::var_39<var_13::var_2<64>*>var_16>._M_impl.
      _M_start != (type_2)0x0) {
    var_50(object_symbols.
                    super__Vector_base<var_13::var_2<64>*,var_15::var_39<var_13::var_2<64>*>var_16>
                    ._M_impl._M_start);
  }
  return;
}


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

/* WARNING: Restarted to delay deadcode elimination for space: stack */

void MASKED(long param_1,long *param_2,ulong *param_3,ulong param_4,long param_5,ulong param_6
                 ,long param_7,ulong param_8,long *param_9,long *param_10,long *param_11)

{
  ulong *puVar1;
  ulong **ppuVar2;
  char cVar3;
  int iVar4;
  uint uVar5;
  undefined8 uVar6;
  ulong uVar7;
  undefined8 uVar8;
  long lVar9;
  byte bVar10;
  byte bVar11;
  char *pcVar12;
  ushort uVar13;
  ushort local_bc;
  byte local_ba;
  char local_b9;
  ulong local_b0;
  ulong *local_a0;
  ulong *local_98;
  long local_90;
  long local_88;
  long local_80;
  long local_78;
  long *local_70;
  long *local_68;
  undefined8 local_58;
  ulong uStack_50;
  ulong local_48;
  
  *param_11 = 0;
  if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_0016cdf0("../../gold/parameters.h",0x69,"target");
  }
  if (**(int **)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8) != 0x40) {
                    /* WARNING: Subroutine does not return */
    FUN_0016cdf0("../../gold/symtab.cc",0x5bd,"add_from_dynobj");
  }
  if (param_2[5] == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_0016cdf0("../../gold/object.h",0x1ea,"input_file");
  }
  cVar3 = FUN_0016aff0();
  if (cVar3 != '\0') {
    uVar6 = gettext("--just-symbols does not make sense with a shared object");
    FUN_001690a0(uVar6);
    return;
  }
  cVar3 = FUN_001ee080(PTR_DAT_003be6b0);
  if ((param_7 == 0) || (cVar3 == '\x01')) {
    param_7 = 0;
  }
  else if (param_8 >> 1 < param_4) {
    uVar6 = gettext("too few symbol versions");
    FUN_0019a740(param_2,uVar6);
    return;
  }
  local_78 = 0;
  local_70 = (long *)0x0;
  local_68 = (long *)0x0;
  local_b0 = 0;
  if (param_4 != 0) {
    do {
      if (param_10 != (long *)0x0) {
        *(undefined8 *)(*param_10 + local_b0 * 8) = 0;
      }
      iVar4 = (int)(uint)*(byte *)((long)param_3 + 4) >> 4;
      local_a0 = param_3;
      if (iVar4 != 0) {
        bVar11 = *(byte *)((long)param_3 + 5) & 3;
        if (1 < (byte)(bVar11 - 1)) {
          bVar10 = *(byte *)((long)param_3 + 4) & 0xf;
          if (bVar11 == 3) {
            uStack_50 = param_3[1];
            local_48 = param_3[2];
            local_58._6_2_ = (undefined2)(*param_3 >> 0x30);
            local_58._0_5_ = (undefined5)*param_3;
            local_58 = CONCAT26(local_58._6_2_,
                                CONCAT15(*(byte *)((long)param_3 + 5),(undefined5)local_58)) &
                       0xfffffcffffffffff;
            if (bVar10 == 10) goto LAB_0022ef70;
LAB_0022ef0b:
            uVar7 = local_58 & 0xffffffff;
            puVar1 = &local_58;
            ppuVar2 = &local_98;
          }
          else {
            if (bVar10 == 10) {
              local_48 = param_3[2];
              local_58 = *param_3;
              uStack_50 = param_3[1];
LAB_0022ef70:
              local_58._0_5_ = CONCAT14((char)(iVar4 << 4) + '\x02',(undefined4)local_58);
              goto LAB_0022ef0b;
            }
            ppuVar2 = &local_a0;
            uVar7 = (ulong)(uint)*param_3;
            puVar1 = param_3;
          }
          local_98 = &local_58;
          if (uVar7 < param_6) {
            uVar13 = *(ushort *)((long)puVar1 + 6);
            uVar5 = (uint)uVar13;
            if (uVar13 < 0xff00) {
              if (uVar13 == 0) goto LAB_0022ed4f;
LAB_0022f012:
              local_b9 = '\x01';
LAB_0022ec44:
              *param_11 = *param_11 + 1;
              if (param_7 != 0) {
                local_bc = *(ushort *)(param_7 + local_b0 * 2);
                uVar13 = local_bc & 0x7fff;
                if (uVar13 == 0) goto LAB_0022ec88;
                local_ba = 1;
                goto LAB_0022ed91;
              }
LAB_0022ef87:
              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_80);
              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,uVar5,local_b9,
                                      uVar5);
            }
            else {
              local_b9 = '\0';
              if (uVar13 != 0xffff) goto LAB_0022ec44;
              lVar9 = param_2[8];
              if (lVar9 == 0) {
                lVar9 = (**(code **)(*param_2 + 0xd8))(param_2);
                param_2[8] = lVar9;
              }
              uVar5 = FUN_0019a820(lVar9,param_2,local_b0 & 0xffffffff);
              if (uVar5 != 0) goto LAB_0022f012;
LAB_0022ed4f:
              if (param_7 == 0) {
                local_b9 = '\x01';
                goto LAB_0022ef87;
              }
              local_ba = 0;
              local_b9 = '\x01';
              local_bc = *(ushort *)(param_7 + local_b0 * 2);
              uVar13 = local_bc & 0x7fff;
LAB_0022ed91:
                    /* try { // try from 0022edb6 to 0022f0c1 has its CatchHandler @ 0022f284 */
              uVar6 = FUN_0021bf40(param_1 + 0x68,uVar7 + param_5,1,&local_88);
              if (1 < uVar13) {
                pcVar12 = "versym for symbol %zu out of range: %u";
                if ((ulong)uVar13 < (ulong)(param_9[1] - *param_9 >> 3)) {
                  lVar9 = *(long *)(*param_9 + (ulong)uVar13 * 8);
                  if (lVar9 != 0) {
                    uVar8 = FUN_0021bf40(param_1 + 0x68,lVar9,1,&local_80);
                    if (((uVar5 == 0xfff1) && (local_b9 == '\0')) && (local_80 == local_88)) {
                    /* try { // try from 0022f1bf to 0022f1fd has its CatchHandler @ 0022f284 */
                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_80,0,0,0,ppuVar2,0xfff1,0,
                                              0xfff1);
                    }
                    else {
                      local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,uVar8,local_80,
                                              (byte)~(byte)(local_bc >> 8) >> 7 & local_ba,ppuVar2,
                                              uVar5,local_b9,uVar5);
                    }
                    goto LAB_0022ee87;
                  }
                  pcVar12 = "versym for symbol %zu has no name: %u";
                }
                uVar6 = gettext(pcVar12);
                FUN_0019a740(param_2,uVar6,local_b0,uVar13);
                goto LAB_0022ec88;
              }
              local_90 = FUN_0022ad40(param_1,param_2,uVar6,local_88,0,0,0,ppuVar2,uVar5,local_b9,
                                      uVar5);
            }
LAB_0022ee87:
            if (local_90 != 0) {
              bVar11 = *(byte *)(local_90 + 0x3a) & 7;
              if (((uVar5 == 0) || (local_b9 == '\0')) || ((**ppuVar2 & 0xf00000000) != 0x100000000)
                 ) {
LAB_0022eeb4:
                if (bVar11 == 0) {
                  if ((*(byte *)(local_90 + 0x3a) & 7) != 0) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0022f24f to 0022f253 has its CatchHandler @ 0022f284 */
                    FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");
                  }
LAB_0022eec2:
                  if ((param_2 == *(long **)(local_90 + 0x10)) &&
                     ((*local_a0 & 0x30000000000) == 0x30000000000)) {
                    *(byte *)(local_90 + 0x3c) = *(byte *)(local_90 + 0x3c) | 8;
                  }
                }
              }
              else if (bVar11 == 0) {
                if (param_2 == *(long **)(local_90 + 0x10)) {
                  if (local_70 == local_68) {
                    FUN_00223290(&local_78,local_70,&local_90);
                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;
                  }
                  else {
                    *local_70 = local_90;
                    local_70 = local_70 + 1;
                    bVar11 = *(byte *)(local_90 + 0x3a) & 7;
                  }
                  goto LAB_0022eeb4;
                }
                goto LAB_0022eec2;
              }
              if (param_10 != (long *)0x0) {
                *(long *)(*param_10 + local_b0 * 8) = local_90;
              }
            }
          }
          else {
            uVar6 = gettext("bad symbol name offset %u at %zu");
            FUN_0019a740(param_2,uVar6,uVar7,local_b0);
          }
        }
      }
LAB_0022ec88:
      local_b0 = local_b0 + 1;
      param_3 = param_3 + 3;
    } while (param_4 != local_b0);
  }
  FUN_0022e900(param_1,&local_78);
  if (local_78 != 0) {
    FUN_00276d20();
  }
  return;
}

