
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */
/* WARNING: Enum "STB": Some values do not have unique names */
/* DWARF original name: sized_write_globals<64, false>
   DWARF original prototype: void sized_write_globals<64,_false>(Symbol_table * this, Stringpool *
   sympool, Stringpool * dynpool, Output_symtab_xindex * symtab_xindex, Output_symtab_xindex *
   dynsym_xindex, Output_file * of) */

void __thiscall
gold::Symbol_table::sized_write_globals<64,_false>
          (Symbol_table *this,Stringpool *sympool,Stringpool *dynpool,
          Output_symtab_xindex *symtab_xindex,Output_symtab_xindex *dynsym_xindex,Output_file *of)

{
  uint uVar1;
  uint uVar2;
  uint uVar3;
  uint uVar4;
  Target *pTVar5;
  Sized_symbol<64> *pSVar6;
  Target *pTVar7;
  General_options *pGVar8;
  _func_int_varargs *p_Var9;
  Object *pOVar10;
  Output_data *pOVar11;
  pointer ppOVar12;
  pointer ppOVar13;
  undefined8 uVar14;
  byte bVar15;
  byte bVar16;
  bool bVar17;
  uint uVar18;
  int iVar19;
  Output_segment *pOVar20;
  Value_type VVar21;
  Output_section *pOVar22;
  undefined4 extraout_var_00;
  long lVar23;
  char *format;
  Relobj *pRVar24;
  undefined4 extraout_var_01;
  ulong uVar25;
  uint uVar26;
  long lVar27;
  Stringpool *pSVar28;
  STB binding;
  uint uVar29;
  pointer ppSVar30;
  _Hash_node_base *p_Var31;
  Section_id SVar32;
  Elf_Addr local_d0;
  uchar *local_c0;
  uchar *local_98;
  string local_58;
  undefined4 extraout_var;
  
  pTVar5 = parameters->target_;
  if (pTVar5 == (Target *)0x0) {
LAB_0028c91f:
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/parameters.h",0x69,"target");
  }
  uVar1 = this->first_global_index_;
  uVar2 = this->output_count_;
  uVar25 = (ulong)uVar2;
  lVar27 = this->offset_;
  pSVar28 = dynpool;
  if ((uVar2 == 0) || (lVar27 == 0)) {
    local_98 = (uchar *)0x0;
  }
  else {
    if ((lVar27 < 0) ||
       (pSVar28 = (Stringpool *)((ulong)(uVar2 * 0x18) + lVar27), of->file_size_ < (long)pSVar28))
    goto LAB_0028c9c8;
    local_98 = of->base_ + lVar27;
  }
  uVar3 = this->first_dynamic_global_index_;
  uVar4 = this->dynamic_count_;
  uVar25 = (ulong)uVar4;
  lVar27 = this->dynamic_offset_;
  if ((lVar27 == 0) || (uVar4 == 0)) {
    local_c0 = (uchar *)0x0;
  }
  else {
    if ((lVar27 < 0) ||
       (pSVar28 = (Stringpool *)((ulong)(uVar4 * 0x18) + lVar27), of->file_size_ < (long)pSVar28)) {
LAB_0028c9c8:
      Output_file::get_output_view
                ((Output_file *)this,uVar25,(size_t)pSVar28,(Output_file *)symtab_xindex);
LAB_0028c9cd:
                    /* WARNING: Subroutine does not return */
      do_gold_unreachable("../../gold/symtab.cc",0xc59,"sized_write_globals");
    }
    local_c0 = of->base_ + lVar27;
  }
  p_Var31 = (this->table_)._M_h._M_before_begin._M_nxt;
  if (p_Var31 != (_Hash_node_base *)0x0) {
    lVar27 = (long)DAT_003a0b74;
    do {
      pSVar6 = (Sized_symbol<64> *)p_Var31[3]._M_nxt;
      if ((((((pSVar6->super_Symbol).field_0x3a & 7) == 0) &&
           (pOVar20 = (pSVar6->super_Symbol).u1_.output_segment,
           ((ulong)pOVar20->output_lists_[2].
                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.
                   _M_impl._M_finish & 0x100000000) != 0)) &&
          ((pSVar6->super_Symbol).u2_.shndx == 0)) &&
         ((byte)(pSVar6->super_Symbol).field_0x38 >> 4 != 2)) {
        if (parameters->options_ == (General_options *)0x0) goto LAB_0028c8d7;
        if ((parameters->options_->allow_shlib_undefined_).value == false) {
          pTVar7 = parameters->target_;
          if (pTVar7 == (Target *)0x0) goto LAB_0028c91f;
          if (pTVar7->_vptr_Target[7] != Target::do_is_defined_by_abi) {
            iVar19 = (*pTVar7->_vptr_Target[7])(pTVar7,pSVar6);
            if ((char)iVar19 != '\0') goto LAB_0028be18;
            if (((pSVar6->super_Symbol).field_0x3a & 7) != 0) goto LAB_0028c752;
            pOVar20 = (pSVar6->super_Symbol).u1_.output_segment;
          }
          if (((ulong)pOVar20->output_lists_[2].
                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.
                      _M_impl._M_finish & 0x2000000000) == 0) {
            iVar19 = *(int *)&pOVar20->output_lists_[5].
                              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>
                              ._M_impl._M_end_of_storage;
            if (iVar19 == 0) {
                    /* WARNING: Subroutine does not return */
              do_gold_unreachable("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");
            }
            if (iVar19 != 1) {
              gold_undefined_symbol((Symbol *)pSVar6);
            }
          }
        }
      }
LAB_0028be18:
      uVar26 = (pSVar6->super_Symbol).symtab_index_;
      if (uVar26 == 0) goto LAB_0028c880;
      if (local_c0 == (uchar *)0x0) {
        uVar29 = 0xffffffff;
        uVar18 = uVar26;
      }
      else {
        uVar29 = (pSVar6->super_Symbol).dynsym_index_;
        if (uVar29 == 0) goto LAB_0028c898;
        uVar18 = uVar26 & uVar29;
      }
      if (uVar18 != 0xffffffff) {
        local_d0 = pSVar6->value_;
        binding = (STB)((byte)(pSVar6->super_Symbol).field_0x38 >> 4);
        pGVar8 = parameters->options_;
        if (pGVar8 == (General_options *)0x0) goto LAB_0028c8d7;
        bVar16 = (pSVar6->super_Symbol).field_0x3a;
        bVar15 = bVar16 & 7;
        VVar21 = local_d0;
        if (((pGVar8->weak_unresolved_symbols_).value == false) || (binding != STB_GLOBAL)) {
          if ((binding == STB_GNU_UNIQUE) && ((pGVar8->gnu_unique_).value == false)) {
            binding = STB_GLOBAL;
          }
          switch(bVar15) {
          case 0:
            if ((bVar16 & 7) != 0) goto switchD_0028c5a7_caseD_0;
            uVar18 = (pSVar6->super_Symbol).u2_.shndx;
            bVar16 = (byte)(pSVar6->super_Symbol).field_0x3b >> 5;
            if (((bVar16 & 1) != 1) && (uVar18 != 0xfff1)) {
              bVar17 = Symbol::is_common_shndx(uVar18);
              if (!bVar17) {
                demangle(&local_58,(pSVar6->super_Symbol).name_);
                uVar14 = CONCAT44(local_58._M_dataplus._M_p._4_4_,(uint)local_58._M_dataplus._M_p);
                format = (char *)gettext("%s: unsupported symbol section 0x%x");
                    /* try { // try from 0028c69d to 0028c6a1 has its CatchHandler @ 0028ca50 */
                gold_error(format,uVar14,(ulong)uVar18);
                if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                     *)CONCAT44(local_58._M_dataplus._M_p._4_4_,(uint)local_58._M_dataplus._M_p) !=
                    &local_58.field_2) {
                  operator_delete((undefined1 *)
                                  CONCAT44(local_58._M_dataplus._M_p._4_4_,
                                           (uint)local_58._M_dataplus._M_p));
                }
                break;
              }
              if (((pSVar6->super_Symbol).field_0x3a & 7) != 0) {
LAB_0028c752:
                    /* WARNING: Subroutine does not return */
                do_gold_unreachable("../../gold/symtab.h",0xa1,"object");
              }
            }
            pOVar20 = (pSVar6->super_Symbol).u1_.output_segment;
            if (((ulong)pOVar20->output_lists_[2].
                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.
                        _M_impl._M_finish & 0x100000000) == 0) {
              lVar23 = (*(code *)pOVar20->output_lists_[0].
                                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>
                                 ._M_impl._M_start[5])(pOVar20);
              if ((lVar23 != 0) || (uVar18 == 0)) goto switchD_0028bebe_caseD_4;
              if (((bVar16 & 1) != 0) ||
                 ((uVar18 != 0xfff1 && (bVar17 = Symbol::is_common_shndx(uVar18), !bVar17)))) {
                uVar25 = (ulong)uVar18;
                pOVar11 = pOVar20->output_lists_[0].
                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>
                          ._M_impl._M_start[0x18];
                if (pOVar11 == (Output_data *)Relobj::do_output_section) {
                  ppOVar12 = pOVar20->output_lists_[3].
                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>
                             ._M_impl._M_finish;
                  if ((ulong)((long)pOVar20->output_lists_[3].
                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>
                                    ._M_impl._M_end_of_storage - (long)ppOVar12 >> 3) <= uVar25)
                  goto LAB_0028ca08;
                  pOVar22 = (Output_section *)ppOVar12[uVar25];
                }
                else {
                  pOVar22 = (Output_section *)(*(code *)pOVar11)(pOVar20,uVar25);
                }
                bVar17 = is_section_folded(this,(Relobj *)pOVar20,uVar18);
                if (bVar17) {
                  SVar32 = Icf::get_folded_section(this->icf_,(Relobj *)pOVar20,uVar18);
                  pRVar24 = SVar32.first;
                  if (pRVar24 == (Relobj *)0x0) {
                    /* WARNING: Subroutine does not return */
                    do_gold_unreachable("../../gold/symtab.cc",0xc53,"sized_write_globals");
                  }
                  p_Var9 = (pRVar24->super_Object)._vptr_Object[0x18];
                  if (p_Var9 == Relobj::do_output_section) {
                    ppOVar13 = (pRVar24->output_sections_).
                               super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>
                               ._M_impl._M_start;
                    uVar25 = SVar32._8_8_ & 0xffffffff;
                    if ((ulong)((long)(pRVar24->output_sections_).
                                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>
                                      ._M_impl._M_finish - (long)ppOVar13 >> 3) <= uVar25) {
LAB_0028ca08:
                    /* WARNING: Subroutine does not return */
                      do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");
                    }
                    pOVar22 = ppOVar13[uVar25];
                  }
                  else {
                    iVar19 = (*p_Var9)(pRVar24,SVar32._8_8_ & 0xffffffff);
                    pOVar22 = (Output_section *)CONCAT44(extraout_var_01,iVar19);
                  }
                  if (pOVar22 == (Output_section *)0x0) {
                    /* WARNING: Subroutine does not return */
                    do_gold_unreachable("../../gold/symtab.cc",0xc57,"sized_write_globals");
                  }
                }
                else if (pOVar22 == (Output_section *)0x0) goto LAB_0028c9cd;
                p_Var9 = (pOVar22->super_Output_data)._vptr_Output_data[0xb];
                if (p_Var9 == Output_section::do_out_shndx) {
                  uVar18 = pOVar22->out_shndx_;
                  if (uVar18 == 0xffffffff) goto LAB_0028ca38;
                }
                else {
                  uVar18 = (*p_Var9)(pOVar22);
                }
                if (0xfeff < uVar18) {
                  if (uVar26 != 0xffffffff) {
                    local_58._M_dataplus._M_p._0_4_ = uVar26;
                    local_58._M_dataplus._M_p._4_4_ = uVar18;
                    std::
                    vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>
                    ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>
                              (&symtab_xindex->entries_,
                               (pair<unsigned_int,_unsigned_int> *)&local_58);
                  }
                  if (uVar29 == 0xffffffff) {
                    uVar18 = 0xffff;
                  }
                  else {
                    local_58._M_dataplus._M_p._0_4_ = uVar29;
                    local_58._M_dataplus._M_p._4_4_ = uVar18;
                    std::
                    vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>
                    ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>
                              (&dynsym_xindex->entries_,
                               (pair<unsigned_int,_unsigned_int> *)&local_58);
                    uVar18 = 0xffff;
                  }
                }
                if (parameters->options_ == (General_options *)0x0) goto LAB_0028c8d7;
                if ((parameters->options_->relocatable_).value != false) {
                  if (((pOVar22->super_Output_data).field_0x20 & 1) == 0) goto LAB_0028c9b0;
                  local_d0 = local_d0 - (pOVar22->super_Output_data).address_;
                }
              }
            }
            else {
              if (((pSVar6->super_Symbol).field_0x3b & 2) != 0) {
                iVar19 = (*pTVar5->_vptr_Target[5])(pTVar5,pSVar6);
                VVar21 = CONCAT44(extraout_var,iVar19);
              }
              uVar18 = 0;
              binding = STB_WEAK - (((byte)(pSVar6->super_Symbol).field_0x3c >> 1 & 1) == 0);
            }
            break;
          case 1:
            goto LAB_0028c1cb;
          case 2:
            goto LAB_0028c143;
          case 3:
switchD_0028bebe_caseD_3:
            uVar18 = 0xfff1;
            break;
          case 4:
switchD_0028bebe_caseD_4:
            uVar18 = 0;
            break;
          default:
            goto switchD_0028bebe_caseD_5;
          }
        }
        else {
          if (bVar15 == 0) {
            if (((pSVar6->super_Symbol).u2_.shndx == 0) &&
               (((byte)(pSVar6->super_Symbol).field_0x3b >> 5 & 1) != 0)) {
                    /* WARNING: Could not recover jumptable at 0x0028c651. Too many branches */
                    /* WARNING: Treating indirect jump as call */
              (*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();
              return;
            }
                    /* WARNING: Could not recover jumptable at 0x0028c32a. Too many branches */
                    /* WARNING: Treating indirect jump as call */
            (*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();
            return;
          }
          if (bVar15 == 4) {
                    /* WARNING: Could not recover jumptable at 0x0028c569. Too many branches */
                    /* WARNING: Treating indirect jump as call */
            (*(code *)(&DAT_003a0b64 + lVar27))();
            return;
          }
                    /* WARNING: Could not find normalized switch variable to match jumptable */
          switch(bVar15) {
          case 0:
switchD_0028c5a7_caseD_0:
                    /* WARNING: Subroutine does not return */
            do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");
          case 1:
            binding = STB_GLOBAL;
LAB_0028c1cb:
            if ((bVar16 & 7) != 1) {
                    /* WARNING: Subroutine does not return */
              do_gold_unreachable("../../gold/symtab.h",0xb5,"output_data");
            }
            pOVar10 = (pSVar6->super_Symbol).u1_.object;
            uVar18 = (*pOVar10->_vptr_Object[0xb])(pOVar10);
            if (0xfeff < uVar18) {
              if (uVar26 != 0xffffffff) {
                local_58._M_dataplus._M_p._0_4_ = uVar26;
                local_58._M_dataplus._M_p._4_4_ = uVar18;
                std::
                vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>
                ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>
                          (&symtab_xindex->entries_,(pair<unsigned_int,_unsigned_int> *)&local_58);
              }
              if (uVar29 == 0xffffffff) {
                uVar18 = 0xffff;
              }
              else {
                local_58._M_dataplus._M_p._0_4_ = uVar29;
                local_58._M_dataplus._M_p._4_4_ = uVar18;
                std::
                vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>
                ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>
                          (&dynsym_xindex->entries_,(pair<unsigned_int,_unsigned_int> *)&local_58);
                uVar18 = 0xffff;
              }
            }
            if (parameters->options_ == (General_options *)0x0) {
LAB_0028c8d7:
                    /* WARNING: Subroutine does not return */
              do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
            }
            if ((parameters->options_->relocatable_).value != false) {
              iVar19 = (*pOVar10->_vptr_Object[9])(pOVar10);
              lVar23 = CONCAT44(extraout_var_00,iVar19);
              if (lVar23 == 0) {
                    /* WARNING: Subroutine does not return */
                do_gold_unreachable("../../gold/symtab.cc",0xc81,"sized_write_globals");
              }
              if ((*(byte *)(lVar23 + 0x20) & 1) == 0) {
LAB_0028c9b0:
                    /* WARNING: Subroutine does not return */
                do_gold_unreachable("../../gold/output.h",0xc5,"address");
              }
              local_d0 = local_d0 - *(long *)(lVar23 + 8);
            }
            break;
          case 2:
            binding = STB_GLOBAL;
LAB_0028c143:
            if ((bVar16 & 7) != 2) {
                    /* WARNING: Subroutine does not return */
              do_gold_unreachable("../../gold/symtab.h",200,"output_segment");
            }
            pOVar22 = Output_segment::first_section((pSVar6->super_Symbol).u1_.output_segment);
            if (pOVar22 == (Output_section *)0x0) goto switchD_0028bebe_caseD_3;
            p_Var9 = (pOVar22->super_Output_data)._vptr_Output_data[0xb];
            if (p_Var9 == Output_section::do_out_shndx) {
              uVar18 = pOVar22->out_shndx_;
              if (uVar18 == 0xffffffff) {
LAB_0028ca38:
                    /* WARNING: Subroutine does not return */
                do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");
              }
            }
            else {
              uVar18 = (*p_Var9)(pOVar22);
            }
            break;
          case 3:
            binding = STB_GLOBAL;
            uVar18 = 0xfff1;
            break;
          case 4:
                    /* WARNING: This code block may not be properly labeled as switch case */
            binding = STB_GLOBAL;
            uVar18 = 0;
            break;
          default:
switchD_0028bebe_caseD_5:
                    /* WARNING: Subroutine does not return */
            do_gold_unreachable("../../gold/symtab.cc",0xc9b,"sized_write_globals");
          }
        }
        if (uVar26 != 0xffffffff) {
          uVar26 = uVar26 - uVar1;
          if (uVar2 <= uVar26) {
                    /* WARNING: Subroutine does not return */
            do_gold_unreachable("../../gold/symtab.cc",0xca1,"sized_write_globals");
          }
          sized_write_symbol<64,_false>
                    (this,pSVar6,local_d0,uVar18,binding,sympool,local_98 + uVar26 * 0x18);
        }
        if (uVar29 != 0xffffffff) {
          uVar29 = uVar29 - uVar3;
          if (uVar4 <= uVar29) {
                    /* WARNING: Subroutine does not return */
            do_gold_unreachable("../../gold/symtab.cc",0xcaa,"sized_write_globals");
          }
          sized_write_symbol<64,_false>
                    (this,pSVar6,VVar21,uVar18,binding,dynpool,local_c0 + uVar29 * 0x18);
          pTVar7 = parameters->target_;
          if (pTVar7 == (Target *)0x0) goto LAB_0028c91f;
          if (pTVar7->_vptr_Target[0x27] != Target::do_adjust_dyn_symbol) {
            (*pTVar7->_vptr_Target[0x27])(pTVar7,pSVar6,local_c0 + uVar29 * 0x18);
          }
        }
      }
      p_Var31 = p_Var31->_M_nxt;
    } while (p_Var31 != (_Hash_node_base *)0x0);
  }
  ppSVar30 = (this->target_symbols_).
             super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start;
  if (ppSVar30 ==
      (this->target_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.
      _M_impl._M_finish) {
    return;
  }
  pSVar6 = (Sized_symbol<64> *)*ppSVar30;
  uVar26 = (pSVar6->super_Symbol).symtab_index_;
  while (uVar26 != 0) {
    ppSVar30 = ppSVar30 + 1;
    if (local_c0 == (uchar *)0x0) {
      uVar29 = 0xffffffff;
    }
    else {
      uVar29 = (pSVar6->super_Symbol).dynsym_index_;
      if (uVar29 == 0) {
LAB_0028c898:
                    /* WARNING: Subroutine does not return */
        do_gold_unreachable("../../gold/symtab.h",0x19a,"dynsym_index");
      }
    }
    bVar16 = (pSVar6->super_Symbol).field_0x3a & 7;
    if (bVar16 == 3) {
      uVar18 = 0xfff1;
    }
    else {
      if (bVar16 != 4) {
                    /* WARNING: Subroutine does not return */
        do_gold_unreachable("../../gold/symtab.cc",0xccb,"sized_write_globals");
      }
      uVar18 = 0;
    }
    if (uVar26 != 0xffffffff) {
      uVar26 = uVar26 - uVar1;
      if (uVar2 <= uVar26) {
                    /* WARNING: Subroutine does not return */
        do_gold_unreachable("../../gold/symtab.cc",0xcd1,"sized_write_globals");
      }
      sized_write_symbol<64,_false>
                (this,pSVar6,pSVar6->value_,uVar18,
                 (uint)((byte)(pSVar6->super_Symbol).field_0x38 >> 4),sympool,
                 local_98 + uVar26 * 0x18);
    }
    if (uVar29 != 0xffffffff) {
      uVar29 = uVar29 - uVar3;
      if (uVar4 <= uVar29) {
                    /* WARNING: Subroutine does not return */
        do_gold_unreachable("../../gold/symtab.cc",0xcdb,"sized_write_globals");
      }
      sized_write_symbol<64,_false>
                (this,pSVar6,pSVar6->value_,uVar18,
                 (uint)((byte)(pSVar6->super_Symbol).field_0x38 >> 4),dynpool,
                 local_c0 + uVar29 * 0x18);
    }
    if ((this->target_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.
        _M_impl._M_finish == ppSVar30) {
      return;
    }
    pSVar6 = (Sized_symbol<64> *)*ppSVar30;
    uVar26 = (pSVar6->super_Symbol).symtab_index_;
  }
LAB_0028c880:
                    /* WARNING: Subroutine does not return */
  do_gold_unreachable("../../gold/symtab.h",0x180,"symtab_index");
}



code * FUN_0028bce0(long param_1,undefined8 param_2,undefined8 param_3,long param_4,long param_5,
                   long param_6)

{
  int iVar1;
  uint uVar2;
  int iVar3;
  uint uVar4;
  int iVar5;
  undefined8 *puVar6;
  byte bVar7;
  byte bVar8;
  char cVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  code *pcVar13;
  code *pcVar14;
  long lVar15;
  undefined8 uVar16;
  long *plVar17;
  long *plVar18;
  ulong uVar19;
  long lVar20;
  int iVar21;
  uint uVar22;
  long *plVar23;
  long *plVar24;
  undefined8 uVar25;
  undefined1 auVar26 [16];
  code *local_d0;
  code *local_c0;
  long local_98;
  uint local_58;
  uint uStack_54;
  undefined1 auStack_48 [24];
  
  plVar23 = *(long **)(PTR_DAT_0045c708 + 0x18);
  if (plVar23 == (long *)0x0) {
LAB_0028c91f:
                    /* WARNING: Subroutine does not return */
    FUN_0018ff20("../../gold/parameters.h",0x69,"target");
  }
  iVar1 = *(int *)(param_1 + 8);
  uVar2 = *(uint *)(param_1 + 0x18);
  local_98 = *(long *)(param_1 + 0x10);
  if ((uVar2 == 0) || (local_98 == 0)) {
    local_98 = 0;
  }
  else {
    if ((local_98 < 0) || (*(long *)(param_6 + 0x10) < (long)((ulong)(uVar2 * 0x18) + local_98)))
    goto LAB_0028c9c8;
    local_98 = local_98 + *(long *)(param_6 + 0x18);
  }
  iVar3 = *(int *)(param_1 + 0x28);
  uVar4 = *(uint *)(param_1 + 0x2c);
  pcVar13 = *(code **)(param_1 + 0x20);
  if ((pcVar13 == (code *)0x0) || (uVar4 == 0)) {
    local_c0 = (code *)0x0;
  }
  else {
    if (((long)pcVar13 < 0) || (*(long *)(param_6 + 0x10) < (long)(pcVar13 + uVar4 * 0x18))) {
LAB_0028c9c8:
      FUN_00284650();
LAB_0028c9cd:
                    /* WARNING: Subroutine does not return */
      FUN_0018ff20("../../gold/symtab.cc",0xc59,"sized_write_globals");
    }
    pcVar13 = pcVar13 + *(long *)(param_6 + 0x18);
    local_c0 = pcVar13;
  }
  plVar24 = *(long **)(param_1 + 0x40);
  if (plVar24 != (long *)0x0) {
    lVar20 = (long)DAT_003a0b74;
    do {
      puVar6 = (undefined8 *)plVar24[3];
      if (((((*(byte *)((long)puVar6 + 0x3a) & 7) == 0) &&
           (lVar15 = puVar6[2], (*(byte *)(lVar15 + 0x3c) & 1) != 0)) && (*(int *)(puVar6 + 3) == 0)
          ) && (*(byte *)(puVar6 + 7) >> 4 != 2)) {
        if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) goto LAB_0028c8d7;
        if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x339) == '\0') {
          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);
          if (plVar17 == (long *)0x0) goto LAB_0028c91f;
          if (*(code **)(*plVar17 + 0x38) != FUN_00172b10) {
            cVar9 = (**(code **)(*plVar17 + 0x38))(plVar17,puVar6);
            if (cVar9 != '\0') goto LAB_0028be18;
            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) goto LAB_0028c752;
            lVar15 = puVar6[2];
          }
          if ((*(byte *)(lVar15 + 0x3c) & 0x20) == 0) {
            if (*(int *)(lVar15 + 0x88) == 0) {
                    /* WARNING: Subroutine does not return */
              FUN_0018ff20("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");
            }
            if (*(int *)(lVar15 + 0x88) != 1) {
              FUN_00187dc0(puVar6);
            }
          }
        }
      }
LAB_0028be18:
      uVar12 = *(uint *)((long)puVar6 + 0x1c);
      if (uVar12 == 0) goto LAB_0028c880;
      if (local_c0 == (code *)0x0) {
        uVar22 = 0xffffffff;
        uVar11 = uVar12;
      }
      else {
        uVar22 = *(uint *)(puVar6 + 4);
        if (uVar22 == 0) goto LAB_0028c898;
        uVar11 = uVar12 & uVar22;
      }
      pcVar13 = (code *)(ulong)uVar11;
      if (uVar11 != 0xffffffff) {
        local_d0 = (code *)puVar6[8];
        uVar11 = (uint)(*(byte *)(puVar6 + 7) >> 4);
        lVar15 = *(long *)(PTR_DAT_0045c708 + 0x10);
        if (lVar15 == 0) goto LAB_0028c8d7;
        bVar8 = *(byte *)((long)puVar6 + 0x3a);
        uVar10 = bVar8 & 7;
        bVar7 = (byte)uVar10;
        pcVar14 = local_d0;
        if ((*(char *)(lVar15 + 0x7739) != '\0') && (uVar11 == 1)) {
          if (bVar7 == 0) {
            if ((*(int *)(puVar6 + 3) == 0) && ((*(byte *)((long)puVar6 + 0x3b) >> 5 & 1) != 0)) {
                    /* WARNING: Could not recover jumptable at 0x0028c651. Too many branches */
                    /* WARNING: Treating indirect jump as call */
              pcVar13 = (code *)(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();
              return pcVar13;
            }
                    /* WARNING: Could not recover jumptable at 0x0028c32a. Too many branches */
                    /* WARNING: Treating indirect jump as call */
            pcVar13 = (code *)(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();
            return pcVar13;
          }
          if (bVar7 == 4) {
                    /* WARNING: Could not recover jumptable at 0x0028c569. Too many branches */
                    /* WARNING: Treating indirect jump as call */
            pcVar13 = (code *)(*(code *)(&DAT_003a0b64 + lVar20))();
            return pcVar13;
          }
          if (4 < bVar7) goto LAB_0028c8b0;
          pcVar13 = (code *)((long)&switchD_0028c5a7::switchdataD_003a0b78 +
                            (long)(int)(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10]);
                    /* WARNING: Could not find normalized switch variable to match jumptable */
          switch(uVar10) {
          case 0:
switchD_0028c5a7_caseD_0:
                    /* WARNING: Subroutine does not return */
            FUN_0018ff20("../../gold/symtab.h",0xaa,"shndx");
          case 1:
            uVar11 = 1;
            goto LAB_0028c1cb;
          case 2:
            uVar11 = 1;
            goto LAB_0028c143;
          case 3:
            uVar11 = 1;
            uVar10 = 0xfff1;
            break;
          case 4:
                    /* WARNING: This code block may not be properly labeled as switch case */
            uVar11 = 1;
            uVar10 = 0;
          }
          goto LAB_0028bf30;
        }
        if ((uVar11 == 10) && (*(char *)(lVar15 + 0x2999) == '\0')) {
          uVar11 = 1;
        }
        if (4 < bVar7) {
LAB_0028c8b0:
                    /* WARNING: Subroutine does not return */
          FUN_0018ff20("../../gold/symtab.cc",0xc9b,"sized_write_globals");
        }
        pcVar13 = (code *)((long)&switchD_0028bebe::switchdataD_003a0b3c +
                          (long)(int)(&switchD_0028bebe::switchdataD_003a0b3c)[uVar10]);
        switch(uVar10) {
        case 0:
          if ((bVar8 & 7) != 0) goto switchD_0028c5a7_caseD_0;
          uVar10 = *(uint *)(puVar6 + 3);
          bVar8 = *(byte *)((long)puVar6 + 0x3b) >> 5;
          if (((bVar8 & 1) != 1) && (uVar10 != 0xfff1)) {
            cVar9 = FUN_00284a00(uVar10);
            if (cVar9 == '\0') {
              FUN_00285b30(&local_58,*puVar6);
              uVar25 = CONCAT44(uStack_54,local_58);
              uVar16 = gettext("%s: unsupported symbol section 0x%x");
                    /* try { // try from 0028c69d to 0028c6a1 has its CatchHandler @ 0028ca50 */
              FUN_001878b0(uVar16,uVar25,uVar10);
              pcVar13 = (code *)auStack_48;
              if ((code *)CONCAT44(uStack_54,local_58) != pcVar13) {
                pcVar13 = (code *)FUN_002f1e60();
              }
              break;
            }
            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) {
LAB_0028c752:
                    /* WARNING: Subroutine does not return */
              FUN_0018ff20("../../gold/symtab.h",0xa1,"object");
            }
          }
          plVar17 = (long *)puVar6[2];
          if ((*(byte *)((long)plVar17 + 0x3c) & 1) == 0) {
            pcVar13 = (code *)(**(code **)(*plVar17 + 0x28))(plVar17);
            if ((pcVar13 != (code *)0x0) || (uVar10 == 0)) goto switchD_0028bebe_caseD_4;
            if (((bVar8 & 1) != 0) ||
               ((uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')
                ))) {
              uVar19 = (ulong)uVar10;
              if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {
                if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;
                plVar18 = *(long **)(plVar17[10] + uVar19 * 8);
              }
              else {
                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);
              }
              cVar9 = FUN_00284da0(param_1,plVar17,uVar19);
              if (cVar9 == '\0') {
                if (plVar18 == (long *)0x0) goto LAB_0028c9cd;
              }
              else {
                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);
                plVar17 = auVar26._0_8_;
                if (plVar17 == (long *)0x0) {
                    /* WARNING: Subroutine does not return */
                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");
                }
                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {
                  uVar19 = auVar26._8_8_ & 0xffffffff;
                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {
LAB_0028ca08:
                    /* WARNING: Subroutine does not return */
                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");
                  }
                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);
                }
                else {
                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))
                                              (plVar17,auVar26._8_8_ & 0xffffffff);
                }
                if (plVar18 == (long *)0x0) {
                    /* WARNING: Subroutine does not return */
                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");
                }
              }
              if (*(code **)(*plVar18 + 0x58) == FUN_0019a160) {
                uVar10 = *(uint *)((long)plVar18 + 0x7c);
                if (uVar10 == 0xffffffff) goto LAB_0028ca38;
              }
              else {
                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);
              }
              if (0xfeff < uVar10) {
                if (uVar12 != 0xffffffff) {
                  local_58 = uVar12;
                  uStack_54 = uVar10;
                  FUN_001a3810(param_4 + 0x38,&local_58);
                }
                if (uVar22 == 0xffffffff) {
                  uVar10 = 0xffff;
                }
                else {
                  local_58 = uVar22;
                  uStack_54 = uVar10;
                  FUN_001a3810(param_5 + 0x38,&local_58);
                  uVar10 = 0xffff;
                }
              }
              pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);
              if (pcVar13 == (code *)0x0) goto LAB_0028c8d7;
              if (pcVar13[0x5051] != (code)0x0) {
                if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;
                pcVar13 = local_d0 + -plVar18[1];
                local_d0 = pcVar13;
              }
            }
          }
          else {
            if ((*(byte *)((long)puVar6 + 0x3b) & 2) != 0) {
              pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6);
            }
            uVar10 = 0;
            uVar11 = *(byte *)((long)puVar6 + 0x3c) >> 1 & 1;
            pcVar13 = (code *)(ulong)uVar11;
            uVar11 = 2 - ((char)uVar11 == '\0');
          }
          break;
        case 1:
LAB_0028c1cb:
          if ((bVar8 & 7) != 1) {
                    /* WARNING: Subroutine does not return */
            FUN_0018ff20("../../gold/symtab.h",0xb5,"output_data");
          }
          plVar17 = (long *)puVar6[2];
          uVar10 = (**(code **)(*plVar17 + 0x58))(plVar17);
          if (0xfeff < uVar10) {
            if (uVar12 != 0xffffffff) {
              local_58 = uVar12;
              uStack_54 = uVar10;
              FUN_001a3810(param_4 + 0x38,&local_58);
            }
            if (uVar22 == 0xffffffff) {
              uVar10 = 0xffff;
            }
            else {
              local_58 = uVar22;
              uStack_54 = uVar10;
              FUN_001a3810(param_5 + 0x38,&local_58);
              uVar10 = 0xffff;
            }
          }
          pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);
          if (pcVar13 == (code *)0x0) {
LAB_0028c8d7:
                    /* WARNING: Subroutine does not return */
            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");
          }
          if (pcVar13[0x5051] != (code)0x0) {
            lVar15 = (**(code **)(*plVar17 + 0x48))(plVar17);
            if (lVar15 == 0) {
                    /* WARNING: Subroutine does not return */
              FUN_0018ff20("../../gold/symtab.cc",0xc81,"sized_write_globals");
            }
            if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {
LAB_0028c9b0:
                    /* WARNING: Subroutine does not return */
              FUN_0018ff20("../../gold/output.h",0xc5,"address");
            }
            pcVar13 = *(code **)(lVar15 + 8);
            local_d0 = local_d0 + -(long)pcVar13;
          }
          break;
        case 2:
          uVar10 = bVar8 & 7;
LAB_0028c143:
          if ((char)uVar10 != '\x02') {
                    /* WARNING: Subroutine does not return */
            FUN_0018ff20("../../gold/symtab.h",200,"output_segment");
          }
          pcVar13 = (code *)FUN_0020de20(puVar6[2]);
          if (pcVar13 == (code *)0x0) goto switchD_0028bebe_caseD_3;
          if (*(code **)(*(long *)pcVar13 + 0x58) == FUN_0019a160) {
            uVar10 = *(uint *)(pcVar13 + 0x7c);
            pcVar13 = (code *)(ulong)uVar10;
            if (uVar10 == 0xffffffff) {
LAB_0028ca38:
                    /* WARNING: Subroutine does not return */
              FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx");
            }
          }
          else {
            pcVar13 = (code *)(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13);
            uVar10 = (uint)pcVar13;
          }
          break;
        case 3:
switchD_0028bebe_caseD_3:
          uVar10 = 0xfff1;
          break;
        case 4:
switchD_0028bebe_caseD_4:
          uVar10 = 0;
        }
LAB_0028bf30:
        if (uVar12 != 0xffffffff) {
          uVar12 = uVar12 - iVar1;
          if (uVar2 <= uVar12) {
                    /* WARNING: Subroutine does not return */
            FUN_0018ff20("../../gold/symtab.cc",0xca1,"sized_write_globals");
          }
          pcVar13 = (code *)FUN_00289ee0(param_1,puVar6,local_d0,uVar10,uVar11,param_2,
                                         (ulong)(uVar12 * 0x18) + local_98);
        }
        if (uVar22 != 0xffffffff) {
          uVar22 = uVar22 - iVar3;
          if (uVar4 <= uVar22) {
                    /* WARNING: Subroutine does not return */
            FUN_0018ff20("../../gold/symtab.cc",0xcaa,"sized_write_globals");
          }
          FUN_00289ee0(param_1,puVar6,pcVar14,uVar10,uVar11,param_3);
          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);
          if (plVar17 == (long *)0x0) goto LAB_0028c91f;
          pcVar13 = *(code **)(*plVar17 + 0x138);
          if (pcVar13 != FUN_00172ba0) {
            pcVar13 = (code *)(*pcVar13)(plVar17,puVar6,local_c0 + uVar22 * 0x18);
          }
        }
      }
      plVar24 = (long *)*plVar24;
    } while (plVar24 != (long *)0x0);
  }
  plVar23 = *(long **)(param_1 + 0x2a0);
  if (plVar23 == *(long **)(param_1 + 0x2a8)) {
    return pcVar13;
  }
  lVar20 = *plVar23;
  iVar5 = *(int *)(lVar20 + 0x1c);
  while (iVar5 != 0) {
    plVar23 = plVar23 + 1;
    if (local_c0 == (code *)0x0) {
      iVar21 = -1;
    }
    else {
      iVar21 = *(int *)(lVar20 + 0x20);
      if (iVar21 == 0) {
LAB_0028c898:
                    /* WARNING: Subroutine does not return */
        FUN_0018ff20("../../gold/symtab.h",0x19a,"dynsym_index");
      }
    }
    uVar12 = *(byte *)(lVar20 + 0x3a) & 7;
    pcVar13 = (code *)(ulong)uVar12;
    cVar9 = (char)uVar12;
    if (cVar9 == '\x03') {
      uVar25 = 0xfff1;
    }
    else {
      if (cVar9 != '\x04') {
                    /* WARNING: Subroutine does not return */
        FUN_0018ff20("../../gold/symtab.cc",0xccb,"sized_write_globals");
      }
      uVar25 = 0;
    }
    if (iVar5 != -1) {
      uVar12 = iVar5 - iVar1;
      if (uVar2 <= uVar12) {
                    /* WARNING: Subroutine does not return */
        FUN_0018ff20("../../gold/symtab.cc",0xcd1,"sized_write_globals");
      }
      pcVar13 = (code *)FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,
                                     *(byte *)(lVar20 + 0x38) >> 4,param_2,
                                     (ulong)(uVar12 * 0x18) + local_98);
    }
    if (iVar21 != -1) {
      uVar12 = iVar21 - iVar3;
      if (uVar4 <= uVar12) {
                    /* WARNING: Subroutine does not return */
        FUN_0018ff20("../../gold/symtab.cc",0xcdb,"sized_write_globals");
      }
      pcVar13 = local_c0 + uVar12 * 0x18;
      FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,
                   *(byte *)(lVar20 + 0x38) >> 4,param_3);
    }
    if (*(long **)(param_1 + 0x2a8) == plVar23) {
      return pcVar13;
    }
    lVar20 = *plVar23;
    iVar5 = *(int *)(lVar20 + 0x1c);
  }
LAB_0028c880:
                    /* WARNING: Subroutine does not return */
  FUN_0018ff20("../../gold/symtab.h",0x180,"symtab_index");
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0xa8
MOV RAX,qword ptr [0x0045c708]
MOV qword ptr [RSP + 0x30],RSI
MOV RAX,qword ptr [RAX + 0x18]
MOV qword ptr [RSP + 0x38],RDX
MOV qword ptr [RSP + 0x60],RCX
MOV qword ptr [RSP + 0x68],R8
MOV qword ptr [RSP + 0x78],RAX
TEST RAX,RAX
JZ 0x0028c91f
MOV EAX,dword ptr [RDI + 0x8]
MOV ESI,dword ptr [RDI + 0x18]
MOV R15,RDI
MOV dword ptr [RSP + 0x28],EAX
MOV RAX,qword ptr [RDI + 0x10]
MOV dword ptr [RSP + 0x24],ESI
TEST ESI,ESI
JZ 0x0028bd40
TEST RAX,RAX
JNZ 0x0028c714
MOV qword ptr [RSP + 0x40],0x0
MOV EAX,dword ptr [R15 + 0x28]
MOV ESI,dword ptr [R15 + 0x2c]
MOV dword ptr [RSP + 0x58],EAX
MOV RAX,qword ptr [R15 + 0x20]
MOV dword ptr [RSP + 0x2c],ESI
TEST RAX,RAX
JZ 0x0028bd6a
TEST ESI,ESI
JNZ 0x0028c6ea
MOV qword ptr [RSP + 0x18],0x0
MOV R14,qword ptr [R15 + 0x40]
TEST R14,R14
JZ 0x0028c003
MOVSXD RDX,dword ptr [0x003a0b74]
LEA RAX,[0x3a0b64]
ADD RAX,RDX
MOV qword ptr [RSP + 0x70],RAX
NOP word ptr CS:[RAX + RAX*0x1]
MOV RBX,qword ptr [R14 + 0x18]
TEST byte ptr [RBX + 0x3a],0x7
JNZ 0x0028be18
MOV RAX,qword ptr [RBX + 0x10]
TEST byte ptr [RAX + 0x3c],0x1
JZ 0x0028be18
MOV EBP,dword ptr [RBX + 0x18]
TEST EBP,EBP
JNZ 0x0028be18
MOVZX EDX,byte ptr [RBX + 0x38]
SHR DL,0x4
CMP DL,0x2
JZ 0x0028be18
MOV RCX,qword ptr [0x0045c708]
MOV RDX,qword ptr [RCX + 0x10]
TEST RDX,RDX
JZ 0x0028c8d7
CMP byte ptr [RDX + 0x339],0x0
JNZ 0x0028be18
MOV RDI,qword ptr [RCX + 0x18]
TEST RDI,RDI
JZ 0x0028c91f
MOV RDX,qword ptr [RDI]
LEA RCX,[0x172b10]
MOV RDX,qword ptr [RDX + 0x38]
CMP RDX,RCX
JNZ 0x0028c73b
TEST byte ptr [RAX + 0x3c],0x20
JZ 0x0028c6c6
NOP word ptr [RAX + RAX*0x1]
MOV R12D,dword ptr [RBX + 0x1c]
TEST R12D,R12D
JZ 0x0028c880
CMP qword ptr [RSP + 0x18],0x0
JZ 0x0028c2c8
MOV R13D,dword ptr [RBX + 0x20]
TEST R13D,R13D
JZ 0x0028c898
MOV EAX,R12D
AND EAX,R13D
CMP EAX,-0x1
JZ 0x0028bff7
MOV RAX,qword ptr [RBX + 0x40]
MOVZX EBP,byte ptr [RBX + 0x38]
MOV qword ptr [RSP + 0x8],RAX
MOV RAX,qword ptr [0x0045c708]
SHR BPL,0x4
MOVZX EBP,BPL
MOV RCX,qword ptr [RAX + 0x10]
TEST RCX,RCX
JZ 0x0028c8d7
MOVZX EDX,byte ptr [RBX + 0x3a]
MOV EAX,EDX
AND EAX,0x7
CMP byte ptr [RCX + 0x7739],0x0
JZ 0x0028be91
CMP EBP,0x1
JZ 0x0028c2f0
CMP EBP,0xa
JNZ 0x0028bea5
CMP byte ptr [RCX + 0x2999],0x0
MOV ECX,0x1
CMOVZ EBP,ECX
CMP AL,0x4
JA 0x0028c8b0
LEA RCX,[0x3a0b3c]
MOVZX EAX,AL
MOVSXD RAX,dword ptr [RCX + RAX*0x4]
ADD RAX,RCX
JMP RAX
AND EDX,0x7
JNZ 0x0028c97f
MOVZX EAX,byte ptr [RBX + 0x3b]
MOV ECX,dword ptr [RBX + 0x18]
SHR AL,0x5
MOV dword ptr [RSP + 0x10],ECX
MOV EDX,EAX
AND EDX,0x1
CMP DL,0x1
JZ 0x0028beed
CMP ECX,0xfff1
JNZ 0x0028c5e0
MOV R8,qword ptr [RBX + 0x10]
TEST byte ptr [R8 + 0x3c],0x1
JZ 0x0028c390
MOV R10,qword ptr [RSP + 0x8]
TEST byte ptr [RBX + 0x3b],0x2
JZ 0x0028bf18
MOV RDI,qword ptr [RSP + 0x78]
MOV RSI,RBX
MOV RAX,qword ptr [RDI]
CALL qword ptr [RAX + 0x28]
MOV R10,RAX
MOVZX EAX,byte ptr [RBX + 0x3c]
MOV dword ptr [RSP + 0x10],0x0
SHR AL,0x1
AND EAX,0x1
CMP AL,0x1
SBB EBP,EBP
ADD EBP,0x2
CMP R12D,-0x1
JZ 0x0028bf81
SUB R12D,dword ptr [RSP + 0x28]
CMP dword ptr [RSP + 0x24],R12D
JBE 0x0028c94f
MOV qword ptr [RSP + 0x48],R10
LEA EDX,[R12 + R12*0x2]
SUB RSP,0x8
MOV R8D,EBP
SHL EDX,0x3
ADD RDX,qword ptr [RSP + 0x48]
MOV RSI,RBX
MOV RDI,R15
PUSH RDX
MOV R9,qword ptr [RSP + 0x40]
MOV ECX,dword ptr [RSP + 0x20]
MOV RDX,qword ptr [RSP + 0x18]
CALL 0x00289ee0
POP R10
POP R11
MOV R10,qword ptr [RSP + 0x48]
CMP R13D,-0x1
JZ 0x0028bff7
SUB R13D,dword ptr [RSP + 0x58]
CMP dword ptr [RSP + 0x2c],R13D
JBE 0x0028c937
LEA R12D,[R13 + R13*0x2]
SUB RSP,0x8
MOV R8D,EBP
MOV RDI,R15
SHL R12D,0x3
ADD R12,qword ptr [RSP + 0x20]
MOV RDX,R10
MOV RSI,RBX
PUSH R12
MOV R9,qword ptr [RSP + 0x48]
MOV ECX,dword ptr [RSP + 0x20]
CALL 0x00289ee0
MOV RAX,qword ptr [0x0045c708]
POP R8
POP R9
MOV RDI,qword ptr [RAX + 0x18]
TEST RDI,RDI
JZ 0x0028c91f
MOV RAX,qword ptr [RDI]
LEA RDX,[0x172ba0]
MOV RAX,qword ptr [RAX + 0x138]
CMP RAX,RDX
JNZ 0x0028c380
MOV R14,qword ptr [R14]
TEST R14,R14
JNZ 0x0028bda0
MOV R13,qword ptr [R15 + 0x2a0]
CMP R13,qword ptr [R15 + 0x2a8]
JZ 0x0028c628
MOV RBX,qword ptr [R13]
MOV EAX,dword ptr [RBX + 0x1c]
TEST EAX,EAX
JZ 0x0028c880
ADD R13,0x8
MOV EBP,0xffffffff
MOV R12,qword ptr [RSP + 0x18]
MOV EDX,EAX
JMP 0x0028c106
MOV R14D,0xfff1
CMP EDX,-0x1
JZ 0x0028c09b
SUB EDX,dword ptr [RSP + 0x28]
MOV ECX,EDX
CMP dword ptr [RSP + 0x24],EDX
JBE 0x0028c907
MOV dword ptr [RSP + 0x8],R10D
LEA ECX,[RCX + RCX*0x2]
SUB RSP,0x8
MOV RDX,qword ptr [RBX + 0x40]
MOVZX R8D,byte ptr [RBX + 0x38]
SHL ECX,0x3
ADD RCX,qword ptr [RSP + 0x48]
MOV RSI,RBX
PUSH RCX
MOV R9,qword ptr [RSP + 0x40]
MOV ECX,R14D
MOV RDI,R15
SHR R8B,0x4
AND R8D,0xf
CALL 0x00289ee0
POP RCX
POP RSI
MOV R10D,dword ptr [RSP + 0x8]
CMP R10D,-0x1
JZ 0x0028c0e6
SUB R10D,dword ptr [RSP + 0x58]
CMP dword ptr [RSP + 0x2c],R10D
JBE 0x0028c967
LEA ECX,[R10 + R10*0x2]
SUB RSP,0x8
MOVZX R8D,byte ptr [RBX + 0x38]
MOV RSI,RBX
SHL ECX,0x3
MOV RDX,qword ptr [RBX + 0x40]
MOV RDI,R15
ADD RCX,R12
SHR R8B,0x4
PUSH RCX
MOV R9,qword ptr [RSP + 0x48]
AND R8D,0xf
MOV ECX,R14D
CALL 0x00289ee0
POP RAX
POP RDX
CMP qword ptr [R15 + 0x2a8],R13
JZ 0x0028c628
MOV RBX,qword ptr [R13]
ADD R13,0x8
MOV EDX,dword ptr [RBX + 0x1c]
TEST EDX,EDX
JZ 0x0028c880
TEST R12,R12
JZ 0x0028c2e0
MOV R10D,dword ptr [RBX + 0x20]
TEST R10D,R10D
JZ 0x0028c898
MOVZX EAX,byte ptr [RBX + 0x3a]
AND EAX,0x7
CMP AL,0x3
JZ 0x0028c040
CMP AL,0x4
JNZ 0x0028c8ef
XOR R14D,R14D
JMP 0x0028c046
AND EDX,0x7
CMP DL,0x2
JNZ 0x0028c840
MOV RDI,qword ptr [RBX + 0x10]
CALL 0x0020de20
TEST RAX,RAX
JZ 0x0028c1b0
MOV RDX,qword ptr [RAX]
LEA RCX,[0x19a160]
MOV RDX,qword ptr [RDX + 0x58]
CMP RDX,RCX
JNZ 0x0028c610
MOV EAX,dword ptr [RAX + 0x7c]
MOV dword ptr [RSP + 0x10],EAX
CMP EAX,-0x1
JZ 0x0028ca38
MOV R10,qword ptr [RSP + 0x8]
JMP 0x0028bf30
MOV R10,qword ptr [RSP + 0x8]
MOV dword ptr [RSP + 0x10],0x0
JMP 0x0028bf30
MOV R10,qword ptr [RSP + 0x8]
MOV dword ptr [RSP + 0x10],0xfff1
JMP 0x0028bf30
AND EDX,0x7
CMP DL,0x1
JNZ 0x0028c860
MOV RDX,qword ptr [RBX + 0x10]
MOV RAX,qword ptr [RDX]
MOV RDI,RDX
MOV qword ptr [RSP + 0x48],RDX
CALL qword ptr [RAX + 0x58]
MOV RDX,qword ptr [RSP + 0x48]
CMP EAX,0xfeff
MOV dword ptr [RSP + 0x10],EAX
JBE 0x0028c26b
CMP R12D,-0x1
JZ 0x0028c226
MOV dword ptr [RSP + 0x84],EAX
MOV RAX,qword ptr [RSP + 0x60]
LEA RSI,[RSP + 0x80]
MOV dword ptr [RSP + 0x80],R12D
LEA RDI,[RAX + 0x38]
CALL 0x001a3810
MOV RDX,qword ptr [RSP + 0x48]
CMP R13D,-0x1
JZ 0x0028c5d0
MOV EAX,dword ptr [RSP + 0x10]
LEA RSI,[RSP + 0x80]
MOV qword ptr [RSP + 0x48],RDX
MOV dword ptr [RSP + 0x80],R13D
MOV dword ptr [RSP + 0x84],EAX
MOV RAX,qword ptr [RSP + 0x68]
LEA RDI,[RAX + 0x38]
CALL 0x001a3810
MOV dword ptr [RSP + 0x10],0xffff
MOV RDX,qword ptr [RSP + 0x48]
MOV RAX,qword ptr [0x0045c708]
MOV RAX,qword ptr [RAX + 0x10]
TEST RAX,RAX
JZ 0x0028c8d7
CMP byte ptr [RAX + 0x5051],0x0
JZ 0x0028c181
MOV RAX,qword ptr [RDX]
MOV RDI,RDX
CALL qword ptr [RAX + 0x48]
TEST RAX,RAX
JZ 0x0028c9f0
TEST byte ptr [RAX + 0x20],0x1
JZ 0x0028c9b0
MOV RSI,qword ptr [RSP + 0x8]
MOV RAX,qword ptr [RAX + 0x8]
MOV R10,RSI
SUB RSI,RAX
MOV qword ptr [RSP + 0x8],RSI
JMP 0x0028bf30
MOV EAX,R12D
MOV R13D,0xffffffff
JMP 0x0028be44
MOV R10D,EBP
JMP 0x0028c11c
MOV EDX,EAX
TEST AL,AL
JNZ 0x0028c560
MOVZX EAX,byte ptr [RBX + 0x3b]
MOV ECX,dword ptr [RBX + 0x18]
MOV EDX,EAX
MOV dword ptr [RSP + 0x10],ECX
SHR DL,0x5
AND EDX,0x1
TEST ECX,ECX
JNZ 0x0028c319
TEST DL,DL
JNZ 0x0028c640
MOVSXD RAX,dword ptr [0x003a0b50]
LEA RSI,[0x3a0b50]
ADD RAX,RSI
JMP RAX
MOV EBP,0x1
MOV R10,qword ptr [RSP + 0x8]
MOV dword ptr [RSP + 0x10],0x0
JMP 0x0028bf30
MOV R10,qword ptr [RSP + 0x8]
MOV EBP,0x1
MOV dword ptr [RSP + 0x10],0xfff1
JMP 0x0028bf30
MOV RDX,R12
MOV RSI,RBX
CALL RAX
JMP 0x0028bff7
MOV RAX,qword ptr [R8]
MOV dword ptr [RSP + 0x5c],ECX
MOV RDI,R8
MOV byte ptr [RSP + 0x50],DL
MOV qword ptr [RSP + 0x48],R8
CALL qword ptr [RAX + 0x28]
TEST RAX,RAX
JNZ 0x0028c198
MOV ECX,dword ptr [RSP + 0x5c]
MOV R8,qword ptr [RSP + 0x48]
MOVZX EDX,byte ptr [RSP + 0x50]
TEST ECX,ECX
JZ 0x0028c198
TEST DL,DL
JNZ 0x0028c3fb
MOV qword ptr [RSP + 0x48],R8
MOV R10,qword ptr [RSP + 0x8]
CMP ECX,0xfff1
JZ 0x0028bf30
MOV EDI,ECX
MOV dword ptr [RSP + 0x50],ECX
CALL 0x00284a00
TEST AL,AL
JNZ 0x0028c181
MOV ECX,dword ptr [RSP + 0x50]
MOV R8,qword ptr [RSP + 0x48]
MOV RAX,qword ptr [R8]
LEA RSI,[0x173380]
MOV RAX,qword ptr [RAX + 0xc0]
CMP RAX,RSI
JNZ 0x0028c815
MOV RDX,qword ptr [R8 + 0x50]
MOV RAX,qword ptr [R8 + 0x58]
MOV ESI,ECX
SUB RAX,RDX
SAR RAX,0x3
CMP RSI,RAX
JNC 0x0028ca08
MOV R9,qword ptr [RDX + RSI*0x8]
MOV EDX,ECX
MOV RSI,R8
MOV RDI,R15
MOV qword ptr [RSP + 0x50],R9
MOV dword ptr [RSP + 0x48],ECX
MOV qword ptr [RSP + 0x10],R8
CALL 0x00284da0
MOV R8,qword ptr [RSP + 0x10]
MOV ECX,dword ptr [RSP + 0x48]
TEST AL,AL
MOV R9,qword ptr [RSP + 0x50]
JNZ 0x0028c77a
TEST R9,R9
JZ 0x0028c9cd
MOV RAX,qword ptr [R9]
LEA RDX,[0x19a160]
MOV RAX,qword ptr [RAX + 0x58]
CMP RAX,RDX
JNZ 0x0028c7fd
MOV EAX,dword ptr [R9 + 0x7c]
MOV dword ptr [RSP + 0x10],EAX
CMP EAX,-0x1
JZ 0x0028ca38
MOV EAX,dword ptr [RSP + 0x10]
CMP EAX,0xfeff
JBE 0x0028c51a
CMP R12D,-0x1
JZ 0x0028c4d5
MOV dword ptr [RSP + 0x84],EAX
MOV RAX,qword ptr [RSP + 0x60]
LEA RSI,[RSP + 0x80]
MOV qword ptr [RSP + 0x48],R9
LEA RDI,[RAX + 0x38]
MOV dword ptr [RSP + 0x80],R12D
CALL 0x001a3810
MOV R9,qword ptr [RSP + 0x48]
CMP R13D,-0x1
JZ 0x0028c7f0
MOV EAX,dword ptr [RSP + 0x10]
LEA RSI,[RSP + 0x80]
MOV qword ptr [RSP + 0x48],R9
MOV dword ptr [RSP + 0x80],R13D
MOV dword ptr [RSP + 0x84],EAX
MOV RAX,qword ptr [RSP + 0x68]
LEA RDI,[RAX + 0x38]
CALL 0x001a3810
MOV dword ptr [RSP + 0x10],0xffff
MOV R9,qword ptr [RSP + 0x48]
MOV RAX,qword ptr [0x0045c708]
MOV RAX,qword ptr [RAX + 0x10]
TEST RAX,RAX
JZ 0x0028c8d7
CMP byte ptr [RAX + 0x5051],0x0
JZ 0x0028c181
TEST byte ptr [R9 + 0x20],0x1
JZ 0x0028c9b0
MOV RAX,qword ptr [RSP + 0x8]
MOV RSI,qword ptr [R9 + 0x8]
MOV R10,RAX
SUB RAX,RSI
MOV qword ptr [RSP + 0x8],RAX
JMP 0x0028bf30
CMP AL,0x4
JNZ 0x0028c590
MOV RAX,qword ptr [RSP + 0x70]
JMP RAX
JA 0x0028c8b0
LEA RSI,[0x3a0b78]
MOVZX ECX,AL
MOVSXD RAX,dword ptr [RSI + RCX*0x4]
ADD RAX,RSI
JMP RAX
MOV EBP,0x1
JMP 0x0028c1cb
MOV EBP,0x1
JMP 0x0028c143
MOV dword ptr [RSP + 0x10],0xffff
JMP 0x0028c26b
MOV EDI,ECX
MOV dword ptr [RSP + 0x48],ECX
MOV byte ptr [RSP + 0x50],DL
CALL 0x00284a00
MOV ECX,dword ptr [RSP + 0x48]
TEST AL,AL
JZ 0x0028c658
TEST byte ptr [RBX + 0x3a],0x7
MOVZX EDX,byte ptr [RSP + 0x50]
JZ 0x0028beed
JMP 0x0028c752
MOV RDI,RAX
CALL RDX
MOV R10,qword ptr [RSP + 0x8]
MOV dword ptr [RSP + 0x10],EAX
JMP 0x0028bf30
ADD RSP,0xa8
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOVSXD RDX,dword ptr [0x003a0b8c]
LEA RSI,[0x3a0b8c]
ADD RDX,RSI
JMP RDX
LEA RAX,[RSP + 0x80]
MOV RSI,qword ptr [RBX]
MOV dword ptr [RSP + 0x5c],ECX
MOV RDI,RAX
MOV qword ptr [RSP + 0x48],RAX
CALL 0x00285b30
MOV RSI,qword ptr [RSP + 0x80]
LEA RDI,[0x3a0a50]
MOV qword ptr [RSP + 0x50],RSI
CALL 0x00149320
MOV ECX,dword ptr [RSP + 0x5c]
MOV RSI,qword ptr [RSP + 0x50]
MOV RDI,RAX
XOR EAX,EAX
MOV EDX,ECX
CALL 0x001878b0
MOV RAX,qword ptr [RSP + 0x48]
MOV RDI,qword ptr [RSP + 0x80]
ADD RAX,0x10
CMP RDI,RAX
JZ 0x0028c181
CALL 0x002f1e60
JMP 0x0028c181
MOV EAX,dword ptr [RAX + 0x88]
TEST EAX,EAX
JZ 0x0028ca20
CMP EAX,0x1
JZ 0x0028be18
MOV RDI,RBX
CALL 0x00187dc0
JMP 0x0028be18
TEST RAX,RAX
JS 0x0028c9c8
LEA EDX,[RSI + RSI*0x2]
SHL EDX,0x3
ADD RDX,RAX
CMP qword ptr [R9 + 0x10],RDX
JL 0x0028c9c8
ADD RAX,qword ptr [R9 + 0x18]
MOV qword ptr [RSP + 0x18],RAX
JMP 0x0028bd73
JS 0x0028c9c8
LEA EDX,[RSI + RSI*0x2]
SHL EDX,0x3
ADD RDX,RAX
CMP qword ptr [R9 + 0x10],RDX
JL 0x0028c9c8
ADD RAX,qword ptr [R9 + 0x18]
MOV qword ptr [RSP + 0x40],RAX
JMP 0x0028bd49
MOV RSI,RBX
CALL RDX
TEST AL,AL
JNZ 0x0028be18
TEST byte ptr [RBX + 0x3a],0x7
JZ 0x0028c9e5
LEA RDX,[0x3a1604]
MOV ESI,0xa1
LEA RDI,[0x387438]
CALL 0x0018ff20
MOV RDI,qword ptr [R15 + 0x298]
MOV EDX,ECX
MOV RSI,R8
CALL 0x00192f30
TEST RAX,RAX
JZ 0x0028c997
MOV RCX,qword ptr [RAX]
LEA RSI,[0x173380]
MOV RCX,qword ptr [RCX + 0xc0]
CMP RCX,RSI
JNZ 0x0028c8c8
MOV RCX,qword ptr [RAX + 0x50]
MOV RAX,qword ptr [RAX + 0x58]
MOV EDX,EDX
SUB RAX,RCX
SAR RAX,0x3
CMP RDX,RAX
JNC 0x0028ca08
MOV R9,qword ptr [RCX + RDX*0x8]
TEST R9,R9
JNZ 0x0028c46d
LEA RDX,[0x3a0fd0]
MOV ESI,0xc57
LEA RDI,[0x3a0891]
CALL 0x0018ff20
MOV dword ptr [RSP + 0x10],0xffff
JMP 0x0028c51a
MOV RDI,R9
MOV qword ptr [RSP + 0x48],R9
CALL RAX
MOV R9,qword ptr [RSP + 0x48]
MOV dword ptr [RSP + 0x10],EAX
JMP 0x0028c495
MOV ESI,ECX
MOV dword ptr [RSP + 0x48],ECX
MOV RDI,R8
MOV qword ptr [RSP + 0x10],R8
CALL RAX
MOV ECX,dword ptr [RSP + 0x48]
MOV R8,qword ptr [RSP + 0x10]
MOV R9,RAX
JMP 0x0028c433
LEA RDX,[0x3a1138]
MOV ESI,0xc8
LEA RDI,[0x387438]
CALL 0x0018ff20
LEA RDX,[0x3a1180]
MOV ESI,0xb5
LEA RDI,[0x387438]
CALL 0x0018ff20
LEA RDX,[0x3a1048]
MOV ESI,0x180
LEA RDI,[0x387438]
CALL 0x0018ff20
LEA RDX,[0x3a11b8]
MOV ESI,0x19a
LEA RDI,[0x387438]
CALL 0x0018ff20
LEA RDX,[0x3a0fd0]
MOV ESI,0xc9b
LEA RDI,[0x3a0891]
CALL 0x0018ff20
MOV ESI,EDX
MOV RDI,RAX
CALL RCX
MOV R9,RAX
JMP 0x0028c7cc
LEA RDX,[0x3a1648]
MOV ESI,0x5c
LEA RDI,[0x382279]
CALL 0x0018ff20
LEA RDX,[0x3a0fd0]
MOV ESI,0xccb
LEA RDI,[0x3a0891]
CALL 0x0018ff20
LEA RDX,[0x3a0fd0]
MOV ESI,0xcd1
LEA RDI,[0x3a0891]
CALL 0x0018ff20
LEA RDX,[0x3a160b]
MOV ESI,0x69
LEA RDI,[0x382279]
CALL 0x0018ff20
LEA RDX,[0x3a0fd0]
MOV ESI,0xcaa
LEA RDI,[0x3a0891]
CALL 0x0018ff20
LEA RDX,[0x3a0fd0]
MOV ESI,0xca1
LEA RDI,[0x3a0891]
CALL 0x0018ff20
LEA RDX,[0x3a0fd0]
MOV ESI,0xcdb
LEA RDI,[0x3a0891]
CALL 0x0018ff20
LEA RDX,[0x3a1627]
MOV ESI,0xaa
LEA RDI,[0x387438]
CALL 0x0018ff20
LEA RDX,[0x3a0fd0]
MOV ESI,0xc53
LEA RDI,[0x3a0891]
CALL 0x0018ff20
LEA RDX,[0x3a1178]
MOV ESI,0xc5
LEA RDI,[0x387398]
CALL 0x0018ff20
CALL 0x00284650
LEA RDX,[0x3a0fd0]
MOV ESI,0xc59
LEA RDI,[0x3a0891]
CALL 0x0018ff20
MOV RAX,qword ptr [RBX + 0x10]
JMP 0x0028be08
LEA RDX,[0x3a0fd0]
MOV ESI,0xc81
LEA RDI,[0x3a0891]
CALL 0x0018ff20
LEA RDX,[0x3a15a0]
MOV ESI,0x5c8
LEA RDI,[0x3873ac]
CALL 0x0018ff20
LEA RDX,[0x3a1070]
MOV ESI,0x3e
LEA RDI,[0x38d417]
CALL 0x0018ff20
LEA RDX,[0x3a1058]
MOV ESI,0x1043
LEA RDI,[0x387398]
CALL 0x0018ff20
(translation_unit "code * FUN_0028bce0(long param_1,undefined8 param_2,undefined8 param_3,long param_4,long param_5,\n                   long param_6)\n\n{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  undefined8 *puVar6;\n  byte bVar7;\n  byte bVar8;\n  char cVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  code *pcVar13;\n  code *pcVar14;\n  long lVar15;\n  undefined8 uVar16;\n  long *plVar17;\n  long *plVar18;\n  ulong uVar19;\n  long lVar20;\n  int iVar21;\n  uint uVar22;\n  long *plVar23;\n  long *plVar24;\n  undefined8 uVar25;\n  undefined1 auVar26 [16];\n  code *local_d0;\n  code *local_c0;\n  long local_98;\n  uint local_58;\n  uint uStack_54;\n  undefined1 auStack_48 [24];\n  \n  plVar23 = *(long **)(PTR_DAT_0045c708 + 0x18);\n  if (plVar23 == (long *)0x0) {\nLAB_0028c91f:\n                    /* WARNING: Subroutine does not return */\n    FUN_0018ff20("../../gold/parameters.h",0x69,"target");\n  }\n  iVar1 = *(int *)(param_1 + 8);\n  uVar2 = *(uint *)(param_1 + 0x18);\n  local_98 = *(long *)(param_1 + 0x10);\n  if ((uVar2 == 0) || (local_98 == 0)) {\n    local_98 = 0;\n  }\n  else {\n    if ((local_98 < 0) || (*(long *)(param_6 + 0x10) < (long)((ulong)(uVar2 * 0x18) + local_98)))\n    goto LAB_0028c9c8;\n    local_98 = local_98 + *(long *)(param_6 + 0x18);\n  }\n  iVar3 = *(int *)(param_1 + 0x28);\n  uVar4 = *(uint *)(param_1 + 0x2c);\n  pcVar13 = *(code **)(param_1 + 0x20);\n  if ((pcVar13 == (code *)0x0) || (uVar4 == 0)) {\n    local_c0 = (code *)0x0;\n  }\n  else {\n    if (((long)pcVar13 < 0) || (*(long *)(param_6 + 0x10) < (long)(pcVar13 + uVar4 * 0x18))) {\nLAB_0028c9c8:\n      FUN_00284650();\nLAB_0028c9cd:\n                    /* WARNING: Subroutine does not return */\n      FUN_0018ff20("../../gold/symtab.cc",0xc59,"sized_write_globals");\n    }\n    pcVar13 = pcVar13 + *(long *)(param_6 + 0x18);\n    local_c0 = pcVar13;\n  }\n  plVar24 = *(long **)(param_1 + 0x40);\n  if (plVar24 != (long *)0x0) {\n    lVar20 = (long)DAT_003a0b74;\n    do {\n      puVar6 = (undefined8 *)plVar24[3];\n      if (((((*(byte *)((long)puVar6 + 0x3a) & 7) == 0) &&\n           (lVar15 = puVar6[2], (*(byte *)(lVar15 + 0x3c) & 1) != 0)) && (*(int *)(puVar6 + 3) == 0)\n          ) && (*(byte *)(puVar6 + 7) >> 4 != 2)) {\n        if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) goto LAB_0028c8d7;\n        if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x339) == '\0') {\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          if (*(code **)(*plVar17 + 0x38) != FUN_00172b10) {\n            cVar9 = (**(code **)(*plVar17 + 0x38))(plVar17,puVar6);\n            if (cVar9 != '\0') goto LAB_0028be18;\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) goto LAB_0028c752;\n            lVar15 = puVar6[2];\n          }\n          if ((*(byte *)(lVar15 + 0x3c) & 0x20) == 0) {\n            if (*(int *)(lVar15 + 0x88) == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }\n            if (*(int *)(lVar15 + 0x88) != 1) {\n              FUN_00187dc0(puVar6);\n            }\n          }\n        }\n      }\nLAB_0028be18:\n      uVar12 = *(uint *)((long)puVar6 + 0x1c);\n      if (uVar12 == 0) goto LAB_0028c880;\n      if (local_c0 == (code *)0x0) {\n        uVar22 = 0xffffffff;\n        uVar11 = uVar12;\n      }\n      else {\n        uVar22 = *(uint *)(puVar6 + 4);\n        if (uVar22 == 0) goto LAB_0028c898;\n        uVar11 = uVar12 & uVar22;\n      }\n      pcVar13 = (code *)(ulong)uVar11;\n      if (uVar11 != 0xffffffff) {\n        local_d0 = (code *)puVar6[8];\n        uVar11 = (uint)(*(byte *)(puVar6 + 7) >> 4);\n        lVar15 = *(long *)(PTR_DAT_0045c708 + 0x10);\n        if (lVar15 == 0) goto LAB_0028c8d7;\n        bVar8 = *(byte *)((long)puVar6 + 0x3a);\n        uVar10 = bVar8 & 7;\n        bVar7 = (byte)uVar10;\n        pcVar14 = local_d0;\n        if ((*(char *)(lVar15 + 0x7739) != '\0') && (uVar11 == 1)) {\n          if (bVar7 == 0) {\n            if ((*(int *)(puVar6 + 3) == 0) && ((*(byte *)((long)puVar6 + 0x3b) >> 5 & 1) != 0)) {\n                    /* WARNING: Could not recover jumptable at 0x0028c651. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pcVar13 = (code *)(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return pcVar13;\n            }\n                    /* WARNING: Could not recover jumptable at 0x0028c32a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            pcVar13 = (code *)(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();\n            return pcVar13;\n          }\n          if (bVar7 == 4) {\n                    /* WARNING: Could not recover jumptable at 0x0028c569. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            pcVar13 = (code *)(*(code *)(&DAT_003a0b64 + lVar20))();\n            return pcVar13;\n          }\n          if (4 < bVar7) goto LAB_0028c8b0;\n          pcVar13 = (code *)((long)&switchD_0028c5a7::switchdataD_003a0b78 +\n                            (long)(int)(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10]);\n                    /* WARNING: Could not find normalized switch variable to match jumptable */\n          switch(uVar10) {\n          case 0:\nswitchD_0028c5a7_caseD_0:\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.h",0xaa,"shndx");\n          case 1:\n            uVar11 = 1;\n            goto LAB_0028c1cb;\n          case 2:\n            uVar11 = 1;\n            goto LAB_0028c143;\n          case 3:\n            uVar11 = 1;\n            uVar10 = 0xfff1;\n            break;\n          case 4:\n                    /* WARNING: This code block may not be properly labeled as switch case */\n            uVar11 = 1;\n            uVar10 = 0;\n          }\n          goto LAB_0028bf30;\n        }\n        if ((uVar11 == 10) && (*(char *)(lVar15 + 0x2999) == '\0')) {\n          uVar11 = 1;\n        }\n        if (4 < bVar7) {\nLAB_0028c8b0:\n                    /* WARNING: Subroutine does not return */\n          FUN_0018ff20("../../gold/symtab.cc",0xc9b,"sized_write_globals");\n        }\n        pcVar13 = (code *)((long)&switchD_0028bebe::switchdataD_003a0b3c +\n                          (long)(int)(&switchD_0028bebe::switchdataD_003a0b3c)[uVar10]);\n        switch(uVar10) {\n        case 0:\n          if ((bVar8 & 7) != 0) goto switchD_0028c5a7_caseD_0;\n          uVar10 = *(uint *)(puVar6 + 3);\n          bVar8 = *(byte *)((long)puVar6 + 0x3b) >> 5;\n          if (((bVar8 & 1) != 1) && (uVar10 != 0xfff1)) {\n            cVar9 = FUN_00284a00(uVar10);\n            if (cVar9 == '\0') {\n              FUN_00285b30(&local_58,*puVar6);\n              uVar25 = CONCAT44(uStack_54,local_58);\n              uVar16 = gettext("%s: unsupported symbol section 0x%x");\n                    /* try { // try from 0028c69d to 0028c6a1 has its CatchHandler @ 0028ca50 */\n              FUN_001878b0(uVar16,uVar25,uVar10);\n              pcVar13 = (code *)auStack_48;\n              if ((code *)CONCAT44(uStack_54,local_58) != pcVar13) {\n                pcVar13 = (code *)FUN_002f1e60();\n              }\n              break;\n            }\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) {\nLAB_0028c752:\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/symtab.h",0xa1,"object");\n            }\n          }\n          plVar17 = (long *)puVar6[2];\n          if ((*(byte *)((long)plVar17 + 0x3c) & 1) == 0) {\n            pcVar13 = (code *)(**(code **)(*plVar17 + 0x28))(plVar17);\n            if ((pcVar13 != (code *)0x0) || (uVar10 == 0)) goto switchD_0028bebe_caseD_4;\n            if (((bVar8 & 1) != 0) ||\n               ((uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')\n                ))) {\n              uVar19 = (ulong)uVar10;\n              if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;\n                plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n              }\n              else {\n                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);\n              }\n              cVar9 = FUN_00284da0(param_1,plVar17,uVar19);\n              if (cVar9 == '\0') {\n                if (plVar18 == (long *)0x0) goto LAB_0028c9cd;\n              }\n              else {\n                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);\n                plVar17 = auVar26._0_8_;\n                if (plVar17 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }\n                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    /* WARNING: Subroutine does not return */\n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }\n                if (plVar18 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }\n              }\n              if (*(code **)(*plVar18 + 0x58) == FUN_0019a160) {\n                uVar10 = *(uint *)((long)plVar18 + 0x7c);\n                if (uVar10 == 0xffffffff) goto LAB_0028ca38;\n              }\n              else {\n                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);\n              }\n              if (0xfeff < uVar10) {\n                if (uVar12 != 0xffffffff) {\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }\n                if (uVar22 == 0xffffffff) {\n                  uVar10 = 0xffff;\n                }\n                else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }\n              }\n              pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n              if (pcVar13 == (code *)0x0) goto LAB_0028c8d7;\n              if (pcVar13[0x5051] != (code)0x0) {\n                if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;\n                pcVar13 = local_d0 + -plVar18[1];\n                local_d0 = pcVar13;\n              }\n            }\n          }\n          else {\n            if ((*(byte *)((long)puVar6 + 0x3b) & 2) != 0) {\n              pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6);\n            }\n            uVar10 = 0;\n            uVar11 = *(byte *)((long)puVar6 + 0x3c) >> 1 & 1;\n            pcVar13 = (code *)(ulong)uVar11;\n            uVar11 = 2 - ((char)uVar11 == '\0');\n          }\n          break;\n        case 1:\nLAB_0028c1cb:\n          if ((bVar8 & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.h",0xb5,"output_data");\n          }\n          plVar17 = (long *)puVar6[2];\n          uVar10 = (**(code **)(*plVar17 + 0x58))(plVar17);\n          if (0xfeff < uVar10) {\n            if (uVar12 != 0xffffffff) {\n              local_58 = uVar12;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_4 + 0x38,&local_58);\n            }\n            if (uVar22 == 0xffffffff) {\n              uVar10 = 0xffff;\n            }\n            else {\n              local_58 = uVar22;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_5 + 0x38,&local_58);\n              uVar10 = 0xffff;\n            }\n          }\n          pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n          if (pcVar13 == (code *)0x0) {\nLAB_0028c8d7:\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if (pcVar13[0x5051] != (code)0x0) {\n            lVar15 = (**(code **)(*plVar17 + 0x48))(plVar17);\n            if (lVar15 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/symtab.cc",0xc81,"sized_write_globals");\n            }\n            if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/output.h",0xc5,"address");\n            }\n            pcVar13 = *(code **)(lVar15 + 8);\n            local_d0 = local_d0 + -(long)pcVar13;\n          }\n          break;\n        case 2:\n          uVar10 = bVar8 & 7;\nLAB_0028c143:\n          if ((char)uVar10 != '\x02') {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.h",200,"output_segment");\n          }\n          pcVar13 = (code *)FUN_0020de20(puVar6[2]);\n          if (pcVar13 == (code *)0x0) goto switchD_0028bebe_caseD_3;\n          if (*(code **)(*(long *)pcVar13 + 0x58) == FUN_0019a160) {\n            uVar10 = *(uint *)(pcVar13 + 0x7c);\n            pcVar13 = (code *)(ulong)uVar10;\n            if (uVar10 == 0xffffffff) {\nLAB_0028ca38:\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx");\n            }\n          }\n          else {\n            pcVar13 = (code *)(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13);\n            uVar10 = (uint)pcVar13;\n          }\n          break;\n        case 3:\nswitchD_0028bebe_caseD_3:\n          uVar10 = 0xfff1;\n          break;\n        case 4:\nswitchD_0028bebe_caseD_4:\n          uVar10 = 0;\n        }\nLAB_0028bf30:\n        if (uVar12 != 0xffffffff) {\n          uVar12 = uVar12 - iVar1;\n          if (uVar2 <= uVar12) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.cc",0xca1,"sized_write_globals");\n          }\n          pcVar13 = (code *)FUN_00289ee0(param_1,puVar6,local_d0,uVar10,uVar11,param_2,\n                                         (ulong)(uVar12 * 0x18) + local_98);\n        }\n        if (uVar22 != 0xffffffff) {\n          uVar22 = uVar22 - iVar3;\n          if (uVar4 <= uVar22) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.cc",0xcaa,"sized_write_globals");\n          }\n          FUN_00289ee0(param_1,puVar6,pcVar14,uVar10,uVar11,param_3);\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          pcVar13 = *(code **)(*plVar17 + 0x138);\n          if (pcVar13 != FUN_00172ba0) {\n            pcVar13 = (code *)(*pcVar13)(plVar17,puVar6,local_c0 + uVar22 * 0x18);\n          }\n        }\n      }\n      plVar24 = (long *)*plVar24;\n    } while (plVar24 != (long *)0x0);\n  }\n  plVar23 = *(long **)(param_1 + 0x2a0);\n  if (plVar23 == *(long **)(param_1 + 0x2a8)) {\n    return pcVar13;\n  }\n  lVar20 = *plVar23;\n  iVar5 = *(int *)(lVar20 + 0x1c);\n  while (iVar5 != 0) {\n    plVar23 = plVar23 + 1;\n    if (local_c0 == (code *)0x0) {\n      iVar21 = -1;\n    }\n    else {\n      iVar21 = *(int *)(lVar20 + 0x20);\n      if (iVar21 == 0) {\nLAB_0028c898:\n                    /* WARNING: Subroutine does not return */\n        FUN_0018ff20("../../gold/symtab.h",0x19a,"dynsym_index");\n      }\n    }\n    uVar12 = *(byte *)(lVar20 + 0x3a) & 7;\n    pcVar13 = (code *)(ulong)uVar12;\n    cVar9 = (char)uVar12;\n    if (cVar9 == '\x03') {\n      uVar25 = 0xfff1;\n    }\n    else {\n      if (cVar9 != '\x04') {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018ff20("../../gold/symtab.cc",0xccb,"sized_write_globals");\n      }\n      uVar25 = 0;\n    }\n    if (iVar5 != -1) {\n      uVar12 = iVar5 - iVar1;\n      if (uVar2 <= uVar12) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018ff20("../../gold/symtab.cc",0xcd1,"sized_write_globals");\n      }\n      pcVar13 = (code *)FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                                     *(byte *)(lVar20 + 0x38) >> 4,param_2,\n                                     (ulong)(uVar12 * 0x18) + local_98);\n    }\n    if (iVar21 != -1) {\n      uVar12 = iVar21 - iVar3;\n      if (uVar4 <= uVar12) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018ff20("../../gold/symtab.cc",0xcdb,"sized_write_globals");\n      }\n      pcVar13 = local_c0 + uVar12 * 0x18;\n      FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                   *(byte *)(lVar20 + 0x38) >> 4,param_3);\n    }\n    if (*(long **)(param_1 + 0x2a8) == plVar23) {\n      return pcVar13;\n    }\n    lVar20 = *plVar23;\n    iVar5 = *(int *)(lVar20 + 0x1c);\n  }\nLAB_0028c880:\n                    /* WARNING: Subroutine does not return */\n  FUN_0018ff20("../../gold/symtab.h",0x180,"symtab_index");\n}\n\n" (function_definition "code * FUN_0028bce0(long param_1,undefined8 param_2,undefined8 param_3,long param_4,long param_5,\n                   long param_6)\n\n{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  undefined8 *puVar6;\n  byte bVar7;\n  byte bVar8;\n  char cVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  code *pcVar13;\n  code *pcVar14;\n  long lVar15;\n  undefined8 uVar16;\n  long *plVar17;\n  long *plVar18;\n  ulong uVar19;\n  long lVar20;\n  int iVar21;\n  uint uVar22;\n  long *plVar23;\n  long *plVar24;\n  undefined8 uVar25;\n  undefined1 auVar26 [16];\n  code *local_d0;\n  code *local_c0;\n  long local_98;\n  uint local_58;\n  uint uStack_54;\n  undefined1 auStack_48 [24];\n  \n  plVar23 = *(long **)(PTR_DAT_0045c708 + 0x18);\n  if (plVar23 == (long *)0x0) {\nLAB_0028c91f:\n                    /* WARNING: Subroutine does not return */\n    FUN_0018ff20("../../gold/parameters.h",0x69,"target");\n  }\n  iVar1 = *(int *)(param_1 + 8);\n  uVar2 = *(uint *)(param_1 + 0x18);\n  local_98 = *(long *)(param_1 + 0x10);\n  if ((uVar2 == 0) || (local_98 == 0)) {\n    local_98 = 0;\n  }\n  else {\n    if ((local_98 < 0) || (*(long *)(param_6 + 0x10) < (long)((ulong)(uVar2 * 0x18) + local_98)))\n    goto LAB_0028c9c8;\n    local_98 = local_98 + *(long *)(param_6 + 0x18);\n  }\n  iVar3 = *(int *)(param_1 + 0x28);\n  uVar4 = *(uint *)(param_1 + 0x2c);\n  pcVar13 = *(code **)(param_1 + 0x20);\n  if ((pcVar13 == (code *)0x0) || (uVar4 == 0)) {\n    local_c0 = (code *)0x0;\n  }\n  else {\n    if (((long)pcVar13 < 0) || (*(long *)(param_6 + 0x10) < (long)(pcVar13 + uVar4 * 0x18))) {\nLAB_0028c9c8:\n      FUN_00284650();\nLAB_0028c9cd:\n                    /* WARNING: Subroutine does not return */\n      FUN_0018ff20("../../gold/symtab.cc",0xc59,"sized_write_globals");\n    }\n    pcVar13 = pcVar13 + *(long *)(param_6 + 0x18);\n    local_c0 = pcVar13;\n  }\n  plVar24 = *(long **)(param_1 + 0x40);\n  if (plVar24 != (long *)0x0) {\n    lVar20 = (long)DAT_003a0b74;\n    do {\n      puVar6 = (undefined8 *)plVar24[3];\n      if (((((*(byte *)((long)puVar6 + 0x3a) & 7) == 0) &&\n           (lVar15 = puVar6[2], (*(byte *)(lVar15 + 0x3c) & 1) != 0)) && (*(int *)(puVar6 + 3) == 0)\n          ) && (*(byte *)(puVar6 + 7) >> 4 != 2)) {\n        if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) goto LAB_0028c8d7;\n        if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x339) == '\0') {\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          if (*(code **)(*plVar17 + 0x38) != FUN_00172b10) {\n            cVar9 = (**(code **)(*plVar17 + 0x38))(plVar17,puVar6);\n            if (cVar9 != '\0') goto LAB_0028be18;\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) goto LAB_0028c752;\n            lVar15 = puVar6[2];\n          }\n          if ((*(byte *)(lVar15 + 0x3c) & 0x20) == 0) {\n            if (*(int *)(lVar15 + 0x88) == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }\n            if (*(int *)(lVar15 + 0x88) != 1) {\n              FUN_00187dc0(puVar6);\n            }\n          }\n        }\n      }\nLAB_0028be18:\n      uVar12 = *(uint *)((long)puVar6 + 0x1c);\n      if (uVar12 == 0) goto LAB_0028c880;\n      if (local_c0 == (code *)0x0) {\n        uVar22 = 0xffffffff;\n        uVar11 = uVar12;\n      }\n      else {\n        uVar22 = *(uint *)(puVar6 + 4);\n        if (uVar22 == 0) goto LAB_0028c898;\n        uVar11 = uVar12 & uVar22;\n      }\n      pcVar13 = (code *)(ulong)uVar11;\n      if (uVar11 != 0xffffffff) {\n        local_d0 = (code *)puVar6[8];\n        uVar11 = (uint)(*(byte *)(puVar6 + 7) >> 4);\n        lVar15 = *(long *)(PTR_DAT_0045c708 + 0x10);\n        if (lVar15 == 0) goto LAB_0028c8d7;\n        bVar8 = *(byte *)((long)puVar6 + 0x3a);\n        uVar10 = bVar8 & 7;\n        bVar7 = (byte)uVar10;\n        pcVar14 = local_d0;\n        if ((*(char *)(lVar15 + 0x7739) != '\0') && (uVar11 == 1)) {\n          if (bVar7 == 0) {\n            if ((*(int *)(puVar6 + 3) == 0) && ((*(byte *)((long)puVar6 + 0x3b) >> 5 & 1) != 0)) {\n                    /* WARNING: Could not recover jumptable at 0x0028c651. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pcVar13 = (code *)(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return pcVar13;\n            }\n                    /* WARNING: Could not recover jumptable at 0x0028c32a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            pcVar13 = (code *)(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();\n            return pcVar13;\n          }\n          if (bVar7 == 4) {\n                    /* WARNING: Could not recover jumptable at 0x0028c569. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            pcVar13 = (code *)(*(code *)(&DAT_003a0b64 + lVar20))();\n            return pcVar13;\n          }\n          if (4 < bVar7) goto LAB_0028c8b0;\n          pcVar13 = (code *)((long)&switchD_0028c5a7::switchdataD_003a0b78 +\n                            (long)(int)(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10]);\n                    /* WARNING: Could not find normalized switch variable to match jumptable */\n          switch(uVar10) {\n          case 0:\nswitchD_0028c5a7_caseD_0:\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.h",0xaa,"shndx");\n          case 1:\n            uVar11 = 1;\n            goto LAB_0028c1cb;\n          case 2:\n            uVar11 = 1;\n            goto LAB_0028c143;\n          case 3:\n            uVar11 = 1;\n            uVar10 = 0xfff1;\n            break;\n          case 4:\n                    /* WARNING: This code block may not be properly labeled as switch case */\n            uVar11 = 1;\n            uVar10 = 0;\n          }\n          goto LAB_0028bf30;\n        }\n        if ((uVar11 == 10) && (*(char *)(lVar15 + 0x2999) == '\0')) {\n          uVar11 = 1;\n        }\n        if (4 < bVar7) {\nLAB_0028c8b0:\n                    /* WARNING: Subroutine does not return */\n          FUN_0018ff20("../../gold/symtab.cc",0xc9b,"sized_write_globals");\n        }\n        pcVar13 = (code *)((long)&switchD_0028bebe::switchdataD_003a0b3c +\n                          (long)(int)(&switchD_0028bebe::switchdataD_003a0b3c)[uVar10]);\n        switch(uVar10) {\n        case 0:\n          if ((bVar8 & 7) != 0) goto switchD_0028c5a7_caseD_0;\n          uVar10 = *(uint *)(puVar6 + 3);\n          bVar8 = *(byte *)((long)puVar6 + 0x3b) >> 5;\n          if (((bVar8 & 1) != 1) && (uVar10 != 0xfff1)) {\n            cVar9 = FUN_00284a00(uVar10);\n            if (cVar9 == '\0') {\n              FUN_00285b30(&local_58,*puVar6);\n              uVar25 = CONCAT44(uStack_54,local_58);\n              uVar16 = gettext("%s: unsupported symbol section 0x%x");\n                    /* try { // try from 0028c69d to 0028c6a1 has its CatchHandler @ 0028ca50 */\n              FUN_001878b0(uVar16,uVar25,uVar10);\n              pcVar13 = (code *)auStack_48;\n              if ((code *)CONCAT44(uStack_54,local_58) != pcVar13) {\n                pcVar13 = (code *)FUN_002f1e60();\n              }\n              break;\n            }\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) {\nLAB_0028c752:\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/symtab.h",0xa1,"object");\n            }\n          }\n          plVar17 = (long *)puVar6[2];\n          if ((*(byte *)((long)plVar17 + 0x3c) & 1) == 0) {\n            pcVar13 = (code *)(**(code **)(*plVar17 + 0x28))(plVar17);\n            if ((pcVar13 != (code *)0x0) || (uVar10 == 0)) goto switchD_0028bebe_caseD_4;\n            if (((bVar8 & 1) != 0) ||\n               ((uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')\n                ))) {\n              uVar19 = (ulong)uVar10;\n              if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;\n                plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n              }\n              else {\n                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);\n              }\n              cVar9 = FUN_00284da0(param_1,plVar17,uVar19);\n              if (cVar9 == '\0') {\n                if (plVar18 == (long *)0x0) goto LAB_0028c9cd;\n              }\n              else {\n                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);\n                plVar17 = auVar26._0_8_;\n                if (plVar17 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }\n                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    /* WARNING: Subroutine does not return */\n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }\n                if (plVar18 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }\n              }\n              if (*(code **)(*plVar18 + 0x58) == FUN_0019a160) {\n                uVar10 = *(uint *)((long)plVar18 + 0x7c);\n                if (uVar10 == 0xffffffff) goto LAB_0028ca38;\n              }\n              else {\n                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);\n              }\n              if (0xfeff < uVar10) {\n                if (uVar12 != 0xffffffff) {\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }\n                if (uVar22 == 0xffffffff) {\n                  uVar10 = 0xffff;\n                }\n                else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }\n              }\n              pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n              if (pcVar13 == (code *)0x0) goto LAB_0028c8d7;\n              if (pcVar13[0x5051] != (code)0x0) {\n                if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;\n                pcVar13 = local_d0 + -plVar18[1];\n                local_d0 = pcVar13;\n              }\n            }\n          }\n          else {\n            if ((*(byte *)((long)puVar6 + 0x3b) & 2) != 0) {\n              pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6);\n            }\n            uVar10 = 0;\n            uVar11 = *(byte *)((long)puVar6 + 0x3c) >> 1 & 1;\n            pcVar13 = (code *)(ulong)uVar11;\n            uVar11 = 2 - ((char)uVar11 == '\0');\n          }\n          break;\n        case 1:\nLAB_0028c1cb:\n          if ((bVar8 & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.h",0xb5,"output_data");\n          }\n          plVar17 = (long *)puVar6[2];\n          uVar10 = (**(code **)(*plVar17 + 0x58))(plVar17);\n          if (0xfeff < uVar10) {\n            if (uVar12 != 0xffffffff) {\n              local_58 = uVar12;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_4 + 0x38,&local_58);\n            }\n            if (uVar22 == 0xffffffff) {\n              uVar10 = 0xffff;\n            }\n            else {\n              local_58 = uVar22;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_5 + 0x38,&local_58);\n              uVar10 = 0xffff;\n            }\n          }\n          pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n          if (pcVar13 == (code *)0x0) {\nLAB_0028c8d7:\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if (pcVar13[0x5051] != (code)0x0) {\n            lVar15 = (**(code **)(*plVar17 + 0x48))(plVar17);\n            if (lVar15 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/symtab.cc",0xc81,"sized_write_globals");\n            }\n            if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/output.h",0xc5,"address");\n            }\n            pcVar13 = *(code **)(lVar15 + 8);\n            local_d0 = local_d0 + -(long)pcVar13;\n          }\n          break;\n        case 2:\n          uVar10 = bVar8 & 7;\nLAB_0028c143:\n          if ((char)uVar10 != '\x02') {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.h",200,"output_segment");\n          }\n          pcVar13 = (code *)FUN_0020de20(puVar6[2]);\n          if (pcVar13 == (code *)0x0) goto switchD_0028bebe_caseD_3;\n          if (*(code **)(*(long *)pcVar13 + 0x58) == FUN_0019a160) {\n            uVar10 = *(uint *)(pcVar13 + 0x7c);\n            pcVar13 = (code *)(ulong)uVar10;\n            if (uVar10 == 0xffffffff) {\nLAB_0028ca38:\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx");\n            }\n          }\n          else {\n            pcVar13 = (code *)(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13);\n            uVar10 = (uint)pcVar13;\n          }\n          break;\n        case 3:\nswitchD_0028bebe_caseD_3:\n          uVar10 = 0xfff1;\n          break;\n        case 4:\nswitchD_0028bebe_caseD_4:\n          uVar10 = 0;\n        }\nLAB_0028bf30:\n        if (uVar12 != 0xffffffff) {\n          uVar12 = uVar12 - iVar1;\n          if (uVar2 <= uVar12) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.cc",0xca1,"sized_write_globals");\n          }\n          pcVar13 = (code *)FUN_00289ee0(param_1,puVar6,local_d0,uVar10,uVar11,param_2,\n                                         (ulong)(uVar12 * 0x18) + local_98);\n        }\n        if (uVar22 != 0xffffffff) {\n          uVar22 = uVar22 - iVar3;\n          if (uVar4 <= uVar22) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.cc",0xcaa,"sized_write_globals");\n          }\n          FUN_00289ee0(param_1,puVar6,pcVar14,uVar10,uVar11,param_3);\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          pcVar13 = *(code **)(*plVar17 + 0x138);\n          if (pcVar13 != FUN_00172ba0) {\n            pcVar13 = (code *)(*pcVar13)(plVar17,puVar6,local_c0 + uVar22 * 0x18);\n          }\n        }\n      }\n      plVar24 = (long *)*plVar24;\n    } while (plVar24 != (long *)0x0);\n  }\n  plVar23 = *(long **)(param_1 + 0x2a0);\n  if (plVar23 == *(long **)(param_1 + 0x2a8)) {\n    return pcVar13;\n  }\n  lVar20 = *plVar23;\n  iVar5 = *(int *)(lVar20 + 0x1c);\n  while (iVar5 != 0) {\n    plVar23 = plVar23 + 1;\n    if (local_c0 == (code *)0x0) {\n      iVar21 = -1;\n    }\n    else {\n      iVar21 = *(int *)(lVar20 + 0x20);\n      if (iVar21 == 0) {\nLAB_0028c898:\n                    /* WARNING: Subroutine does not return */\n        FUN_0018ff20("../../gold/symtab.h",0x19a,"dynsym_index");\n      }\n    }\n    uVar12 = *(byte *)(lVar20 + 0x3a) & 7;\n    pcVar13 = (code *)(ulong)uVar12;\n    cVar9 = (char)uVar12;\n    if (cVar9 == '\x03') {\n      uVar25 = 0xfff1;\n    }\n    else {\n      if (cVar9 != '\x04') {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018ff20("../../gold/symtab.cc",0xccb,"sized_write_globals");\n      }\n      uVar25 = 0;\n    }\n    if (iVar5 != -1) {\n      uVar12 = iVar5 - iVar1;\n      if (uVar2 <= uVar12) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018ff20("../../gold/symtab.cc",0xcd1,"sized_write_globals");\n      }\n      pcVar13 = (code *)FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                                     *(byte *)(lVar20 + 0x38) >> 4,param_2,\n                                     (ulong)(uVar12 * 0x18) + local_98);\n    }\n    if (iVar21 != -1) {\n      uVar12 = iVar21 - iVar3;\n      if (uVar4 <= uVar12) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018ff20("../../gold/symtab.cc",0xcdb,"sized_write_globals");\n      }\n      pcVar13 = local_c0 + uVar12 * 0x18;\n      FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                   *(byte *)(lVar20 + 0x38) >> 4,param_3);\n    }\n    if (*(long **)(param_1 + 0x2a8) == plVar23) {\n      return pcVar13;\n    }\n    lVar20 = *plVar23;\n    iVar5 = *(int *)(lVar20 + 0x1c);\n  }\nLAB_0028c880:\n                    /* WARNING: Subroutine does not return */\n  FUN_0018ff20("../../gold/symtab.h",0x180,"symtab_index");\n}" type_identifier (pointer_declarator "* FUN_0028bce0(long param_1,undefined8 param_2,undefined8 param_3,long param_4,long param_5,\n                   long param_6)" * (function_declarator "FUN_0028bce0(long param_1,undefined8 param_2,undefined8 param_3,long param_4,long param_5,\n                   long param_6)" identifier (parameter_list "(long param_1,undefined8 param_2,undefined8 param_3,long param_4,long param_5,\n                   long param_6)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "undefined8 param_3" type_identifier identifier) , (parameter_declaration "long param_4" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_5" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_6" (sized_type_specifier "long" long) identifier) )))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  undefined8 *puVar6;\n  byte bVar7;\n  byte bVar8;\n  char cVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  code *pcVar13;\n  code *pcVar14;\n  long lVar15;\n  undefined8 uVar16;\n  long *plVar17;\n  long *plVar18;\n  ulong uVar19;\n  long lVar20;\n  int iVar21;\n  uint uVar22;\n  long *plVar23;\n  long *plVar24;\n  undefined8 uVar25;\n  undefined1 auVar26 [16];\n  code *local_d0;\n  code *local_c0;\n  long local_98;\n  uint local_58;\n  uint uStack_54;\n  undefined1 auStack_48 [24];\n  \n  plVar23 = *(long **)(PTR_DAT_0045c708 + 0x18);\n  if (plVar23 == (long *)0x0) {\nLAB_0028c91f:\n                    /* WARNING: Subroutine does not return */\n    FUN_0018ff20("../../gold/parameters.h",0x69,"target");\n  }\n  iVar1 = *(int *)(param_1 + 8);\n  uVar2 = *(uint *)(param_1 + 0x18);\n  local_98 = *(long *)(param_1 + 0x10);\n  if ((uVar2 == 0) || (local_98 == 0)) {\n    local_98 = 0;\n  }\n  else {\n    if ((local_98 < 0) || (*(long *)(param_6 + 0x10) < (long)((ulong)(uVar2 * 0x18) + local_98)))\n    goto LAB_0028c9c8;\n    local_98 = local_98 + *(long *)(param_6 + 0x18);\n  }\n  iVar3 = *(int *)(param_1 + 0x28);\n  uVar4 = *(uint *)(param_1 + 0x2c);\n  pcVar13 = *(code **)(param_1 + 0x20);\n  if ((pcVar13 == (code *)0x0) || (uVar4 == 0)) {\n    local_c0 = (code *)0x0;\n  }\n  else {\n    if (((long)pcVar13 < 0) || (*(long *)(param_6 + 0x10) < (long)(pcVar13 + uVar4 * 0x18))) {\nLAB_0028c9c8:\n      FUN_00284650();\nLAB_0028c9cd:\n                    /* WARNING: Subroutine does not return */\n      FUN_0018ff20("../../gold/symtab.cc",0xc59,"sized_write_globals");\n    }\n    pcVar13 = pcVar13 + *(long *)(param_6 + 0x18);\n    local_c0 = pcVar13;\n  }\n  plVar24 = *(long **)(param_1 + 0x40);\n  if (plVar24 != (long *)0x0) {\n    lVar20 = (long)DAT_003a0b74;\n    do {\n      puVar6 = (undefined8 *)plVar24[3];\n      if (((((*(byte *)((long)puVar6 + 0x3a) & 7) == 0) &&\n           (lVar15 = puVar6[2], (*(byte *)(lVar15 + 0x3c) & 1) != 0)) && (*(int *)(puVar6 + 3) == 0)\n          ) && (*(byte *)(puVar6 + 7) >> 4 != 2)) {\n        if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) goto LAB_0028c8d7;\n        if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x339) == '\0') {\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          if (*(code **)(*plVar17 + 0x38) != FUN_00172b10) {\n            cVar9 = (**(code **)(*plVar17 + 0x38))(plVar17,puVar6);\n            if (cVar9 != '\0') goto LAB_0028be18;\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) goto LAB_0028c752;\n            lVar15 = puVar6[2];\n          }\n          if ((*(byte *)(lVar15 + 0x3c) & 0x20) == 0) {\n            if (*(int *)(lVar15 + 0x88) == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }\n            if (*(int *)(lVar15 + 0x88) != 1) {\n              FUN_00187dc0(puVar6);\n            }\n          }\n        }\n      }\nLAB_0028be18:\n      uVar12 = *(uint *)((long)puVar6 + 0x1c);\n      if (uVar12 == 0) goto LAB_0028c880;\n      if (local_c0 == (code *)0x0) {\n        uVar22 = 0xffffffff;\n        uVar11 = uVar12;\n      }\n      else {\n        uVar22 = *(uint *)(puVar6 + 4);\n        if (uVar22 == 0) goto LAB_0028c898;\n        uVar11 = uVar12 & uVar22;\n      }\n      pcVar13 = (code *)(ulong)uVar11;\n      if (uVar11 != 0xffffffff) {\n        local_d0 = (code *)puVar6[8];\n        uVar11 = (uint)(*(byte *)(puVar6 + 7) >> 4);\n        lVar15 = *(long *)(PTR_DAT_0045c708 + 0x10);\n        if (lVar15 == 0) goto LAB_0028c8d7;\n        bVar8 = *(byte *)((long)puVar6 + 0x3a);\n        uVar10 = bVar8 & 7;\n        bVar7 = (byte)uVar10;\n        pcVar14 = local_d0;\n        if ((*(char *)(lVar15 + 0x7739) != '\0') && (uVar11 == 1)) {\n          if (bVar7 == 0) {\n            if ((*(int *)(puVar6 + 3) == 0) && ((*(byte *)((long)puVar6 + 0x3b) >> 5 & 1) != 0)) {\n                    /* WARNING: Could not recover jumptable at 0x0028c651. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pcVar13 = (code *)(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return pcVar13;\n            }\n                    /* WARNING: Could not recover jumptable at 0x0028c32a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            pcVar13 = (code *)(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();\n            return pcVar13;\n          }\n          if (bVar7 == 4) {\n                    /* WARNING: Could not recover jumptable at 0x0028c569. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            pcVar13 = (code *)(*(code *)(&DAT_003a0b64 + lVar20))();\n            return pcVar13;\n          }\n          if (4 < bVar7) goto LAB_0028c8b0;\n          pcVar13 = (code *)((long)&switchD_0028c5a7::switchdataD_003a0b78 +\n                            (long)(int)(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10]);\n                    /* WARNING: Could not find normalized switch variable to match jumptable */\n          switch(uVar10) {\n          case 0:\nswitchD_0028c5a7_caseD_0:\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.h",0xaa,"shndx");\n          case 1:\n            uVar11 = 1;\n            goto LAB_0028c1cb;\n          case 2:\n            uVar11 = 1;\n            goto LAB_0028c143;\n          case 3:\n            uVar11 = 1;\n            uVar10 = 0xfff1;\n            break;\n          case 4:\n                    /* WARNING: This code block may not be properly labeled as switch case */\n            uVar11 = 1;\n            uVar10 = 0;\n          }\n          goto LAB_0028bf30;\n        }\n        if ((uVar11 == 10) && (*(char *)(lVar15 + 0x2999) == '\0')) {\n          uVar11 = 1;\n        }\n        if (4 < bVar7) {\nLAB_0028c8b0:\n                    /* WARNING: Subroutine does not return */\n          FUN_0018ff20("../../gold/symtab.cc",0xc9b,"sized_write_globals");\n        }\n        pcVar13 = (code *)((long)&switchD_0028bebe::switchdataD_003a0b3c +\n                          (long)(int)(&switchD_0028bebe::switchdataD_003a0b3c)[uVar10]);\n        switch(uVar10) {\n        case 0:\n          if ((bVar8 & 7) != 0) goto switchD_0028c5a7_caseD_0;\n          uVar10 = *(uint *)(puVar6 + 3);\n          bVar8 = *(byte *)((long)puVar6 + 0x3b) >> 5;\n          if (((bVar8 & 1) != 1) && (uVar10 != 0xfff1)) {\n            cVar9 = FUN_00284a00(uVar10);\n            if (cVar9 == '\0') {\n              FUN_00285b30(&local_58,*puVar6);\n              uVar25 = CONCAT44(uStack_54,local_58);\n              uVar16 = gettext("%s: unsupported symbol section 0x%x");\n                    /* try { // try from 0028c69d to 0028c6a1 has its CatchHandler @ 0028ca50 */\n              FUN_001878b0(uVar16,uVar25,uVar10);\n              pcVar13 = (code *)auStack_48;\n              if ((code *)CONCAT44(uStack_54,local_58) != pcVar13) {\n                pcVar13 = (code *)FUN_002f1e60();\n              }\n              break;\n            }\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) {\nLAB_0028c752:\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/symtab.h",0xa1,"object");\n            }\n          }\n          plVar17 = (long *)puVar6[2];\n          if ((*(byte *)((long)plVar17 + 0x3c) & 1) == 0) {\n            pcVar13 = (code *)(**(code **)(*plVar17 + 0x28))(plVar17);\n            if ((pcVar13 != (code *)0x0) || (uVar10 == 0)) goto switchD_0028bebe_caseD_4;\n            if (((bVar8 & 1) != 0) ||\n               ((uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')\n                ))) {\n              uVar19 = (ulong)uVar10;\n              if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;\n                plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n              }\n              else {\n                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);\n              }\n              cVar9 = FUN_00284da0(param_1,plVar17,uVar19);\n              if (cVar9 == '\0') {\n                if (plVar18 == (long *)0x0) goto LAB_0028c9cd;\n              }\n              else {\n                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);\n                plVar17 = auVar26._0_8_;\n                if (plVar17 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }\n                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    /* WARNING: Subroutine does not return */\n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }\n                if (plVar18 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }\n              }\n              if (*(code **)(*plVar18 + 0x58) == FUN_0019a160) {\n                uVar10 = *(uint *)((long)plVar18 + 0x7c);\n                if (uVar10 == 0xffffffff) goto LAB_0028ca38;\n              }\n              else {\n                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);\n              }\n              if (0xfeff < uVar10) {\n                if (uVar12 != 0xffffffff) {\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }\n                if (uVar22 == 0xffffffff) {\n                  uVar10 = 0xffff;\n                }\n                else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }\n              }\n              pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n              if (pcVar13 == (code *)0x0) goto LAB_0028c8d7;\n              if (pcVar13[0x5051] != (code)0x0) {\n                if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;\n                pcVar13 = local_d0 + -plVar18[1];\n                local_d0 = pcVar13;\n              }\n            }\n          }\n          else {\n            if ((*(byte *)((long)puVar6 + 0x3b) & 2) != 0) {\n              pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6);\n            }\n            uVar10 = 0;\n            uVar11 = *(byte *)((long)puVar6 + 0x3c) >> 1 & 1;\n            pcVar13 = (code *)(ulong)uVar11;\n            uVar11 = 2 - ((char)uVar11 == '\0');\n          }\n          break;\n        case 1:\nLAB_0028c1cb:\n          if ((bVar8 & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.h",0xb5,"output_data");\n          }\n          plVar17 = (long *)puVar6[2];\n          uVar10 = (**(code **)(*plVar17 + 0x58))(plVar17);\n          if (0xfeff < uVar10) {\n            if (uVar12 != 0xffffffff) {\n              local_58 = uVar12;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_4 + 0x38,&local_58);\n            }\n            if (uVar22 == 0xffffffff) {\n              uVar10 = 0xffff;\n            }\n            else {\n              local_58 = uVar22;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_5 + 0x38,&local_58);\n              uVar10 = 0xffff;\n            }\n          }\n          pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n          if (pcVar13 == (code *)0x0) {\nLAB_0028c8d7:\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if (pcVar13[0x5051] != (code)0x0) {\n            lVar15 = (**(code **)(*plVar17 + 0x48))(plVar17);\n            if (lVar15 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/symtab.cc",0xc81,"sized_write_globals");\n            }\n            if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/output.h",0xc5,"address");\n            }\n            pcVar13 = *(code **)(lVar15 + 8);\n            local_d0 = local_d0 + -(long)pcVar13;\n          }\n          break;\n        case 2:\n          uVar10 = bVar8 & 7;\nLAB_0028c143:\n          if ((char)uVar10 != '\x02') {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.h",200,"output_segment");\n          }\n          pcVar13 = (code *)FUN_0020de20(puVar6[2]);\n          if (pcVar13 == (code *)0x0) goto switchD_0028bebe_caseD_3;\n          if (*(code **)(*(long *)pcVar13 + 0x58) == FUN_0019a160) {\n            uVar10 = *(uint *)(pcVar13 + 0x7c);\n            pcVar13 = (code *)(ulong)uVar10;\n            if (uVar10 == 0xffffffff) {\nLAB_0028ca38:\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx");\n            }\n          }\n          else {\n            pcVar13 = (code *)(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13);\n            uVar10 = (uint)pcVar13;\n          }\n          break;\n        case 3:\nswitchD_0028bebe_caseD_3:\n          uVar10 = 0xfff1;\n          break;\n        case 4:\nswitchD_0028bebe_caseD_4:\n          uVar10 = 0;\n        }\nLAB_0028bf30:\n        if (uVar12 != 0xffffffff) {\n          uVar12 = uVar12 - iVar1;\n          if (uVar2 <= uVar12) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.cc",0xca1,"sized_write_globals");\n          }\n          pcVar13 = (code *)FUN_00289ee0(param_1,puVar6,local_d0,uVar10,uVar11,param_2,\n                                         (ulong)(uVar12 * 0x18) + local_98);\n        }\n        if (uVar22 != 0xffffffff) {\n          uVar22 = uVar22 - iVar3;\n          if (uVar4 <= uVar22) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.cc",0xcaa,"sized_write_globals");\n          }\n          FUN_00289ee0(param_1,puVar6,pcVar14,uVar10,uVar11,param_3);\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          pcVar13 = *(code **)(*plVar17 + 0x138);\n          if (pcVar13 != FUN_00172ba0) {\n            pcVar13 = (code *)(*pcVar13)(plVar17,puVar6,local_c0 + uVar22 * 0x18);\n          }\n        }\n      }\n      plVar24 = (long *)*plVar24;\n    } while (plVar24 != (long *)0x0);\n  }\n  plVar23 = *(long **)(param_1 + 0x2a0);\n  if (plVar23 == *(long **)(param_1 + 0x2a8)) {\n    return pcVar13;\n  }\n  lVar20 = *plVar23;\n  iVar5 = *(int *)(lVar20 + 0x1c);\n  while (iVar5 != 0) {\n    plVar23 = plVar23 + 1;\n    if (local_c0 == (code *)0x0) {\n      iVar21 = -1;\n    }\n    else {\n      iVar21 = *(int *)(lVar20 + 0x20);\n      if (iVar21 == 0) {\nLAB_0028c898:\n                    /* WARNING: Subroutine does not return */\n        FUN_0018ff20("../../gold/symtab.h",0x19a,"dynsym_index");\n      }\n    }\n    uVar12 = *(byte *)(lVar20 + 0x3a) & 7;\n    pcVar13 = (code *)(ulong)uVar12;\n    cVar9 = (char)uVar12;\n    if (cVar9 == '\x03') {\n      uVar25 = 0xfff1;\n    }\n    else {\n      if (cVar9 != '\x04') {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018ff20("../../gold/symtab.cc",0xccb,"sized_write_globals");\n      }\n      uVar25 = 0;\n    }\n    if (iVar5 != -1) {\n      uVar12 = iVar5 - iVar1;\n      if (uVar2 <= uVar12) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018ff20("../../gold/symtab.cc",0xcd1,"sized_write_globals");\n      }\n      pcVar13 = (code *)FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                                     *(byte *)(lVar20 + 0x38) >> 4,param_2,\n                                     (ulong)(uVar12 * 0x18) + local_98);\n    }\n    if (iVar21 != -1) {\n      uVar12 = iVar21 - iVar3;\n      if (uVar4 <= uVar12) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018ff20("../../gold/symtab.cc",0xcdb,"sized_write_globals");\n      }\n      pcVar13 = local_c0 + uVar12 * 0x18;\n      FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                   *(byte *)(lVar20 + 0x38) >> 4,param_3);\n    }\n    if (*(long **)(param_1 + 0x2a8) == plVar23) {\n      return pcVar13;\n    }\n    lVar20 = *plVar23;\n    iVar5 = *(int *)(lVar20 + 0x1c);\n  }\nLAB_0028c880:\n                    /* WARNING: Subroutine does not return */\n  FUN_0018ff20("../../gold/symtab.h",0x180,"symtab_index");\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined8 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "byte bVar7;" type_identifier identifier ;) (declaration "byte bVar8;" type_identifier identifier ;) (declaration "char cVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "code *pcVar13;" type_identifier (pointer_declarator "*pcVar13" * identifier) ;) (declaration "code *pcVar14;" type_identifier (pointer_declarator "*pcVar14" * identifier) ;) (declaration "long lVar15;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar16;" type_identifier identifier ;) (declaration "long *plVar17;" (sized_type_specifier "long" long) (pointer_declarator "*plVar17" * identifier) ;) (declaration "long *plVar18;" (sized_type_specifier "long" long) (pointer_declarator "*plVar18" * identifier) ;) (declaration "ulong uVar19;" type_identifier identifier ;) (declaration "long lVar20;" (sized_type_specifier "long" long) identifier ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "long *plVar23;" (sized_type_specifier "long" long) (pointer_declarator "*plVar23" * identifier) ;) (declaration "long *plVar24;" (sized_type_specifier "long" long) (pointer_declarator "*plVar24" * identifier) ;) (declaration "undefined8 uVar25;" type_identifier identifier ;) (declaration "undefined1 auVar26 [16];" type_identifier (array_declarator "auVar26 [16]" identifier [ number_literal ]) ;) (declaration "code *local_d0;" type_identifier (pointer_declarator "*local_d0" * identifier) ;) (declaration "code *local_c0;" type_identifier (pointer_declarator "*local_c0" * identifier) ;) (declaration "long local_98;" (sized_type_specifier "long" long) identifier ;) (declaration "uint local_58;" type_identifier identifier ;) (declaration "uint uStack_54;" type_identifier identifier ;) (declaration "undefined1 auStack_48 [24];" type_identifier (array_declarator "auStack_48 [24]" identifier [ number_literal ]) ;) (expression_statement "plVar23 = *(long **)(PTR_DAT_0045c708 + 0x18);" (assignment_expression "plVar23 = *(long **)(PTR_DAT_0045c708 + 0x18)" identifier = (pointer_expression "*(long **)(PTR_DAT_0045c708 + 0x18)" * (cast_expression "(long **)(PTR_DAT_0045c708 + 0x18)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_0045c708 + 0x18)" ( (binary_expression "PTR_DAT_0045c708 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (plVar23 == (long *)0x0) {\nLAB_0028c91f:\n                    /* WARNING: Subroutine does not return */\n    FUN_0018ff20("../../gold/parameters.h",0x69,"target");\n  }" if (parenthesized_expression "(plVar23 == (long *)0x0)" ( (binary_expression "plVar23 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0028c91f:\n                    /* WARNING: Subroutine does not return */\n    FUN_0018ff20("../../gold/parameters.h",0x69,"target");\n  }" { (labeled_statement "LAB_0028c91f:\n                    /* WARNING: Subroutine does not return */\n    FUN_0018ff20("../../gold/parameters.h",0x69,"target");" statement_identifier : comment (expression_statement "FUN_0018ff20("../../gold/parameters.h",0x69,"target");" (call_expression "FUN_0018ff20("../../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 ") ))) ;)) })) (expression_statement "iVar1 = *(int *)(param_1 + 8);" (assignment_expression "iVar1 = *(int *)(param_1 + 8)" identifier = (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = *(uint *)(param_1 + 0x18);" (assignment_expression "uVar2 = *(uint *)(param_1 + 0x18)" identifier = (pointer_expression "*(uint *)(param_1 + 0x18)" * (cast_expression "(uint *)(param_1 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "local_98 = *(long *)(param_1 + 0x10);" (assignment_expression "local_98 = *(long *)(param_1 + 0x10)" identifier = (pointer_expression "*(long *)(param_1 + 0x10)" * (cast_expression "(long *)(param_1 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if ((uVar2 == 0) || (local_98 == 0)) {\n    local_98 = 0;\n  }\n  else {\n    if ((local_98 < 0) || (*(long *)(param_6 + 0x10) < (long)((ulong)(uVar2 * 0x18) + local_98)))\n    goto LAB_0028c9c8;\n    local_98 = local_98 + *(long *)(param_6 + 0x18);\n  }" if (parenthesized_expression "((uVar2 == 0) || (local_98 == 0))" ( (binary_expression "(uVar2 == 0) || (local_98 == 0)" (parenthesized_expression "(uVar2 == 0)" ( (binary_expression "uVar2 == 0" identifier == number_literal) )) || (parenthesized_expression "(local_98 == 0)" ( (binary_expression "local_98 == 0" identifier == number_literal) ))) )) (compound_statement "{\n    local_98 = 0;\n  }" { (expression_statement "local_98 = 0;" (assignment_expression "local_98 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    if ((local_98 < 0) || (*(long *)(param_6 + 0x10) < (long)((ulong)(uVar2 * 0x18) + local_98)))\n    goto LAB_0028c9c8;\n    local_98 = local_98 + *(long *)(param_6 + 0x18);\n  }" else (compound_statement "{\n    if ((local_98 < 0) || (*(long *)(param_6 + 0x10) < (long)((ulong)(uVar2 * 0x18) + local_98)))\n    goto LAB_0028c9c8;\n    local_98 = local_98 + *(long *)(param_6 + 0x18);\n  }" { (if_statement "if ((local_98 < 0) || (*(long *)(param_6 + 0x10) < (long)((ulong)(uVar2 * 0x18) + local_98)))\n    goto LAB_0028c9c8;" if (parenthesized_expression "((local_98 < 0) || (*(long *)(param_6 + 0x10) < (long)((ulong)(uVar2 * 0x18) + local_98)))" ( (binary_expression "(local_98 < 0) || (*(long *)(param_6 + 0x10) < (long)((ulong)(uVar2 * 0x18) + local_98))" (parenthesized_expression "(local_98 < 0)" ( (binary_expression "local_98 < 0" identifier < number_literal) )) || (parenthesized_expression "(*(long *)(param_6 + 0x10) < (long)((ulong)(uVar2 * 0x18) + local_98))" ( (binary_expression "*(long *)(param_6 + 0x10) < (long)((ulong)(uVar2 * 0x18) + local_98)" (pointer_expression "*(long *)(param_6 + 0x10)" * (cast_expression "(long *)(param_6 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x10)" ( (binary_expression "param_6 + 0x10" identifier + number_literal) )))) < (cast_expression "(long)((ulong)(uVar2 * 0x18) + local_98)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "((ulong)(uVar2 * 0x18) + local_98)" ( (binary_expression "(ulong)(uVar2 * 0x18) + local_98" (call_expression "(ulong)(uVar2 * 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar2 * 0x18)" ( (binary_expression "uVar2 * 0x18" identifier * number_literal) ))) + identifier) )))) ))) )) (goto_statement "goto LAB_0028c9c8;" goto statement_identifier ;)) (expression_statement "local_98 = local_98 + *(long *)(param_6 + 0x18);" (assignment_expression "local_98 = local_98 + *(long *)(param_6 + 0x18)" identifier = (binary_expression "local_98 + *(long *)(param_6 + 0x18)" identifier + (pointer_expression "*(long *)(param_6 + 0x18)" * (cast_expression "(long *)(param_6 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x18)" ( (binary_expression "param_6 + 0x18" identifier + number_literal) )))))) ;) }))) (expression_statement "iVar3 = *(int *)(param_1 + 0x28);" (assignment_expression "iVar3 = *(int *)(param_1 + 0x28)" identifier = (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(uint *)(param_1 + 0x2c);" (assignment_expression "uVar4 = *(uint *)(param_1 + 0x2c)" identifier = (pointer_expression "*(uint *)(param_1 + 0x2c)" * (cast_expression "(uint *)(param_1 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "pcVar13 = *(code **)(param_1 + 0x20);" (assignment_expression "pcVar13 = *(code **)(param_1 + 0x20)" identifier = (pointer_expression "*(code **)(param_1 + 0x20)" * (cast_expression "(code **)(param_1 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (if_statement "if ((pcVar13 == (code *)0x0) || (uVar4 == 0)) {\n    local_c0 = (code *)0x0;\n  }\n  else {\n    if (((long)pcVar13 < 0) || (*(long *)(param_6 + 0x10) < (long)(pcVar13 + uVar4 * 0x18))) {\nLAB_0028c9c8:\n      FUN_00284650();\nLAB_0028c9cd:\n                    /* WARNING: Subroutine does not return */\n      FUN_0018ff20("../../gold/symtab.cc",0xc59,"sized_write_globals");\n    }\n    pcVar13 = pcVar13 + *(long *)(param_6 + 0x18);\n    local_c0 = pcVar13;\n  }" if (parenthesized_expression "((pcVar13 == (code *)0x0) || (uVar4 == 0))" ( (binary_expression "(pcVar13 == (code *)0x0) || (uVar4 == 0)" (parenthesized_expression "(pcVar13 == (code *)0x0)" ( (binary_expression "pcVar13 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) ))) )) (compound_statement "{\n    local_c0 = (code *)0x0;\n  }" { (expression_statement "local_c0 = (code *)0x0;" (assignment_expression "local_c0 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    if (((long)pcVar13 < 0) || (*(long *)(param_6 + 0x10) < (long)(pcVar13 + uVar4 * 0x18))) {\nLAB_0028c9c8:\n      FUN_00284650();\nLAB_0028c9cd:\n                    /* WARNING: Subroutine does not return */\n      FUN_0018ff20("../../gold/symtab.cc",0xc59,"sized_write_globals");\n    }\n    pcVar13 = pcVar13 + *(long *)(param_6 + 0x18);\n    local_c0 = pcVar13;\n  }" else (compound_statement "{\n    if (((long)pcVar13 < 0) || (*(long *)(param_6 + 0x10) < (long)(pcVar13 + uVar4 * 0x18))) {\nLAB_0028c9c8:\n      FUN_00284650();\nLAB_0028c9cd:\n                    /* WARNING: Subroutine does not return */\n      FUN_0018ff20("../../gold/symtab.cc",0xc59,"sized_write_globals");\n    }\n    pcVar13 = pcVar13 + *(long *)(param_6 + 0x18);\n    local_c0 = pcVar13;\n  }" { (if_statement "if (((long)pcVar13 < 0) || (*(long *)(param_6 + 0x10) < (long)(pcVar13 + uVar4 * 0x18))) {\nLAB_0028c9c8:\n      FUN_00284650();\nLAB_0028c9cd:\n                    /* WARNING: Subroutine does not return */\n      FUN_0018ff20("../../gold/symtab.cc",0xc59,"sized_write_globals");\n    }" if (parenthesized_expression "(((long)pcVar13 < 0) || (*(long *)(param_6 + 0x10) < (long)(pcVar13 + uVar4 * 0x18)))" ( (binary_expression "((long)pcVar13 < 0) || (*(long *)(param_6 + 0x10) < (long)(pcVar13 + uVar4 * 0x18))" (parenthesized_expression "((long)pcVar13 < 0)" ( (binary_expression "(long)pcVar13 < 0" (cast_expression "(long)pcVar13" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < number_literal) )) || (parenthesized_expression "(*(long *)(param_6 + 0x10) < (long)(pcVar13 + uVar4 * 0x18))" ( (binary_expression "*(long *)(param_6 + 0x10) < (long)(pcVar13 + uVar4 * 0x18)" (pointer_expression "*(long *)(param_6 + 0x10)" * (cast_expression "(long *)(param_6 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x10)" ( (binary_expression "param_6 + 0x10" identifier + number_literal) )))) < (cast_expression "(long)(pcVar13 + uVar4 * 0x18)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(pcVar13 + uVar4 * 0x18)" ( (binary_expression "pcVar13 + uVar4 * 0x18" identifier + (binary_expression "uVar4 * 0x18" identifier * number_literal)) )))) ))) )) (compound_statement "{\nLAB_0028c9c8:\n      FUN_00284650();\nLAB_0028c9cd:\n                    /* WARNING: Subroutine does not return */\n      FUN_0018ff20("../../gold/symtab.cc",0xc59,"sized_write_globals");\n    }" { (labeled_statement "LAB_0028c9c8:\n      FUN_00284650();" statement_identifier : (expression_statement "FUN_00284650();" (call_expression "FUN_00284650()" identifier (argument_list "()" ( ))) ;)) (labeled_statement "LAB_0028c9cd:\n                    /* WARNING: Subroutine does not return */\n      FUN_0018ff20("../../gold/symtab.cc",0xc59,"sized_write_globals");" statement_identifier : comment (expression_statement "FUN_0018ff20("../../gold/symtab.cc",0xc59,"sized_write_globals");" (call_expression "FUN_0018ff20("../../gold/symtab.cc",0xc59,"sized_write_globals")" identifier (argument_list "("../../gold/symtab.cc",0xc59,"sized_write_globals")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""sized_write_globals"" " string_content ") ))) ;)) })) (expression_statement "pcVar13 = pcVar13 + *(long *)(param_6 + 0x18);" (assignment_expression "pcVar13 = pcVar13 + *(long *)(param_6 + 0x18)" identifier = (binary_expression "pcVar13 + *(long *)(param_6 + 0x18)" identifier + (pointer_expression "*(long *)(param_6 + 0x18)" * (cast_expression "(long *)(param_6 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x18)" ( (binary_expression "param_6 + 0x18" identifier + number_literal) )))))) ;) (expression_statement "local_c0 = pcVar13;" (assignment_expression "local_c0 = pcVar13" identifier = identifier) ;) }))) (expression_statement "plVar24 = *(long **)(param_1 + 0x40);" (assignment_expression "plVar24 = *(long **)(param_1 + 0x40)" identifier = (pointer_expression "*(long **)(param_1 + 0x40)" * (cast_expression "(long **)(param_1 + 0x40)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) ))))) ;) (if_statement "if (plVar24 != (long *)0x0) {\n    lVar20 = (long)DAT_003a0b74;\n    do {\n      puVar6 = (undefined8 *)plVar24[3];\n      if (((((*(byte *)((long)puVar6 + 0x3a) & 7) == 0) &&\n           (lVar15 = puVar6[2], (*(byte *)(lVar15 + 0x3c) & 1) != 0)) && (*(int *)(puVar6 + 3) == 0)\n          ) && (*(byte *)(puVar6 + 7) >> 4 != 2)) {\n        if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) goto LAB_0028c8d7;\n        if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x339) == '\0') {\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          if (*(code **)(*plVar17 + 0x38) != FUN_00172b10) {\n            cVar9 = (**(code **)(*plVar17 + 0x38))(plVar17,puVar6);\n            if (cVar9 != '\0') goto LAB_0028be18;\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) goto LAB_0028c752;\n            lVar15 = puVar6[2];\n          }\n          if ((*(byte *)(lVar15 + 0x3c) & 0x20) == 0) {\n            if (*(int *)(lVar15 + 0x88) == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }\n            if (*(int *)(lVar15 + 0x88) != 1) {\n              FUN_00187dc0(puVar6);\n            }\n          }\n        }\n      }\nLAB_0028be18:\n      uVar12 = *(uint *)((long)puVar6 + 0x1c);\n      if (uVar12 == 0) goto LAB_0028c880;\n      if (local_c0 == (code *)0x0) {\n        uVar22 = 0xffffffff;\n        uVar11 = uVar12;\n      }\n      else {\n        uVar22 = *(uint *)(puVar6 + 4);\n        if (uVar22 == 0) goto LAB_0028c898;\n        uVar11 = uVar12 & uVar22;\n      }\n      pcVar13 = (code *)(ulong)uVar11;\n      if (uVar11 != 0xffffffff) {\n        local_d0 = (code *)puVar6[8];\n        uVar11 = (uint)(*(byte *)(puVar6 + 7) >> 4);\n        lVar15 = *(long *)(PTR_DAT_0045c708 + 0x10);\n        if (lVar15 == 0) goto LAB_0028c8d7;\n        bVar8 = *(byte *)((long)puVar6 + 0x3a);\n        uVar10 = bVar8 & 7;\n        bVar7 = (byte)uVar10;\n        pcVar14 = local_d0;\n        if ((*(char *)(lVar15 + 0x7739) != '\0') && (uVar11 == 1)) {\n          if (bVar7 == 0) {\n            if ((*(int *)(puVar6 + 3) == 0) && ((*(byte *)((long)puVar6 + 0x3b) >> 5 & 1) != 0)) {\n                    /* WARNING: Could not recover jumptable at 0x0028c651. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pcVar13 = (code *)(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return pcVar13;\n            }\n                    /* WARNING: Could not recover jumptable at 0x0028c32a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            pcVar13 = (code *)(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();\n            return pcVar13;\n          }\n          if (bVar7 == 4) {\n                    /* WARNING: Could not recover jumptable at 0x0028c569. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            pcVar13 = (code *)(*(code *)(&DAT_003a0b64 + lVar20))();\n            return pcVar13;\n          }\n          if (4 < bVar7) goto LAB_0028c8b0;\n          pcVar13 = (code *)((long)&switchD_0028c5a7::switchdataD_003a0b78 +\n                            (long)(int)(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10]);\n                    /* WARNING: Could not find normalized switch variable to match jumptable */\n          switch(uVar10) {\n          case 0:\nswitchD_0028c5a7_caseD_0:\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.h",0xaa,"shndx");\n          case 1:\n            uVar11 = 1;\n            goto LAB_0028c1cb;\n          case 2:\n            uVar11 = 1;\n            goto LAB_0028c143;\n          case 3:\n            uVar11 = 1;\n            uVar10 = 0xfff1;\n            break;\n          case 4:\n                    /* WARNING: This code block may not be properly labeled as switch case */\n            uVar11 = 1;\n            uVar10 = 0;\n          }\n          goto LAB_0028bf30;\n        }\n        if ((uVar11 == 10) && (*(char *)(lVar15 + 0x2999) == '\0')) {\n          uVar11 = 1;\n        }\n        if (4 < bVar7) {\nLAB_0028c8b0:\n                    /* WARNING: Subroutine does not return */\n          FUN_0018ff20("../../gold/symtab.cc",0xc9b,"sized_write_globals");\n        }\n        pcVar13 = (code *)((long)&switchD_0028bebe::switchdataD_003a0b3c +\n                          (long)(int)(&switchD_0028bebe::switchdataD_003a0b3c)[uVar10]);\n        switch(uVar10) {\n        case 0:\n          if ((bVar8 & 7) != 0) goto switchD_0028c5a7_caseD_0;\n          uVar10 = *(uint *)(puVar6 + 3);\n          bVar8 = *(byte *)((long)puVar6 + 0x3b) >> 5;\n          if (((bVar8 & 1) != 1) && (uVar10 != 0xfff1)) {\n            cVar9 = FUN_00284a00(uVar10);\n            if (cVar9 == '\0') {\n              FUN_00285b30(&local_58,*puVar6);\n              uVar25 = CONCAT44(uStack_54,local_58);\n              uVar16 = gettext("%s: unsupported symbol section 0x%x");\n                    /* try { // try from 0028c69d to 0028c6a1 has its CatchHandler @ 0028ca50 */\n              FUN_001878b0(uVar16,uVar25,uVar10);\n              pcVar13 = (code *)auStack_48;\n              if ((code *)CONCAT44(uStack_54,local_58) != pcVar13) {\n                pcVar13 = (code *)FUN_002f1e60();\n              }\n              break;\n            }\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) {\nLAB_0028c752:\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/symtab.h",0xa1,"object");\n            }\n          }\n          plVar17 = (long *)puVar6[2];\n          if ((*(byte *)((long)plVar17 + 0x3c) & 1) == 0) {\n            pcVar13 = (code *)(**(code **)(*plVar17 + 0x28))(plVar17);\n            if ((pcVar13 != (code *)0x0) || (uVar10 == 0)) goto switchD_0028bebe_caseD_4;\n            if (((bVar8 & 1) != 0) ||\n               ((uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')\n                ))) {\n              uVar19 = (ulong)uVar10;\n              if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;\n                plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n              }\n              else {\n                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);\n              }\n              cVar9 = FUN_00284da0(param_1,plVar17,uVar19);\n              if (cVar9 == '\0') {\n                if (plVar18 == (long *)0x0) goto LAB_0028c9cd;\n              }\n              else {\n                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);\n                plVar17 = auVar26._0_8_;\n                if (plVar17 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }\n                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    /* WARNING: Subroutine does not return */\n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }\n                if (plVar18 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }\n              }\n              if (*(code **)(*plVar18 + 0x58) == FUN_0019a160) {\n                uVar10 = *(uint *)((long)plVar18 + 0x7c);\n                if (uVar10 == 0xffffffff) goto LAB_0028ca38;\n              }\n              else {\n                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);\n              }\n              if (0xfeff < uVar10) {\n                if (uVar12 != 0xffffffff) {\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }\n                if (uVar22 == 0xffffffff) {\n                  uVar10 = 0xffff;\n                }\n                else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }\n              }\n              pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n              if (pcVar13 == (code *)0x0) goto LAB_0028c8d7;\n              if (pcVar13[0x5051] != (code)0x0) {\n                if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;\n                pcVar13 = local_d0 + -plVar18[1];\n                local_d0 = pcVar13;\n              }\n            }\n          }\n          else {\n            if ((*(byte *)((long)puVar6 + 0x3b) & 2) != 0) {\n              pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6);\n            }\n            uVar10 = 0;\n            uVar11 = *(byte *)((long)puVar6 + 0x3c) >> 1 & 1;\n            pcVar13 = (code *)(ulong)uVar11;\n            uVar11 = 2 - ((char)uVar11 == '\0');\n          }\n          break;\n        case 1:\nLAB_0028c1cb:\n          if ((bVar8 & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.h",0xb5,"output_data");\n          }\n          plVar17 = (long *)puVar6[2];\n          uVar10 = (**(code **)(*plVar17 + 0x58))(plVar17);\n          if (0xfeff < uVar10) {\n            if (uVar12 != 0xffffffff) {\n              local_58 = uVar12;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_4 + 0x38,&local_58);\n            }\n            if (uVar22 == 0xffffffff) {\n              uVar10 = 0xffff;\n            }\n            else {\n              local_58 = uVar22;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_5 + 0x38,&local_58);\n              uVar10 = 0xffff;\n            }\n          }\n          pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n          if (pcVar13 == (code *)0x0) {\nLAB_0028c8d7:\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if (pcVar13[0x5051] != (code)0x0) {\n            lVar15 = (**(code **)(*plVar17 + 0x48))(plVar17);\n            if (lVar15 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/symtab.cc",0xc81,"sized_write_globals");\n            }\n            if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/output.h",0xc5,"address");\n            }\n            pcVar13 = *(code **)(lVar15 + 8);\n            local_d0 = local_d0 + -(long)pcVar13;\n          }\n          break;\n        case 2:\n          uVar10 = bVar8 & 7;\nLAB_0028c143:\n          if ((char)uVar10 != '\x02') {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.h",200,"output_segment");\n          }\n          pcVar13 = (code *)FUN_0020de20(puVar6[2]);\n          if (pcVar13 == (code *)0x0) goto switchD_0028bebe_caseD_3;\n          if (*(code **)(*(long *)pcVar13 + 0x58) == FUN_0019a160) {\n            uVar10 = *(uint *)(pcVar13 + 0x7c);\n            pcVar13 = (code *)(ulong)uVar10;\n            if (uVar10 == 0xffffffff) {\nLAB_0028ca38:\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx");\n            }\n          }\n          else {\n            pcVar13 = (code *)(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13);\n            uVar10 = (uint)pcVar13;\n          }\n          break;\n        case 3:\nswitchD_0028bebe_caseD_3:\n          uVar10 = 0xfff1;\n          break;\n        case 4:\nswitchD_0028bebe_caseD_4:\n          uVar10 = 0;\n        }\nLAB_0028bf30:\n        if (uVar12 != 0xffffffff) {\n          uVar12 = uVar12 - iVar1;\n          if (uVar2 <= uVar12) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.cc",0xca1,"sized_write_globals");\n          }\n          pcVar13 = (code *)FUN_00289ee0(param_1,puVar6,local_d0,uVar10,uVar11,param_2,\n                                         (ulong)(uVar12 * 0x18) + local_98);\n        }\n        if (uVar22 != 0xffffffff) {\n          uVar22 = uVar22 - iVar3;\n          if (uVar4 <= uVar22) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.cc",0xcaa,"sized_write_globals");\n          }\n          FUN_00289ee0(param_1,puVar6,pcVar14,uVar10,uVar11,param_3);\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          pcVar13 = *(code **)(*plVar17 + 0x138);\n          if (pcVar13 != FUN_00172ba0) {\n            pcVar13 = (code *)(*pcVar13)(plVar17,puVar6,local_c0 + uVar22 * 0x18);\n          }\n        }\n      }\n      plVar24 = (long *)*plVar24;\n    } while (plVar24 != (long *)0x0);\n  }" if (parenthesized_expression "(plVar24 != (long *)0x0)" ( (binary_expression "plVar24 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    lVar20 = (long)DAT_003a0b74;\n    do {\n      puVar6 = (undefined8 *)plVar24[3];\n      if (((((*(byte *)((long)puVar6 + 0x3a) & 7) == 0) &&\n           (lVar15 = puVar6[2], (*(byte *)(lVar15 + 0x3c) & 1) != 0)) && (*(int *)(puVar6 + 3) == 0)\n          ) && (*(byte *)(puVar6 + 7) >> 4 != 2)) {\n        if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) goto LAB_0028c8d7;\n        if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x339) == '\0') {\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          if (*(code **)(*plVar17 + 0x38) != FUN_00172b10) {\n            cVar9 = (**(code **)(*plVar17 + 0x38))(plVar17,puVar6);\n            if (cVar9 != '\0') goto LAB_0028be18;\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) goto LAB_0028c752;\n            lVar15 = puVar6[2];\n          }\n          if ((*(byte *)(lVar15 + 0x3c) & 0x20) == 0) {\n            if (*(int *)(lVar15 + 0x88) == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }\n            if (*(int *)(lVar15 + 0x88) != 1) {\n              FUN_00187dc0(puVar6);\n            }\n          }\n        }\n      }\nLAB_0028be18:\n      uVar12 = *(uint *)((long)puVar6 + 0x1c);\n      if (uVar12 == 0) goto LAB_0028c880;\n      if (local_c0 == (code *)0x0) {\n        uVar22 = 0xffffffff;\n        uVar11 = uVar12;\n      }\n      else {\n        uVar22 = *(uint *)(puVar6 + 4);\n        if (uVar22 == 0) goto LAB_0028c898;\n        uVar11 = uVar12 & uVar22;\n      }\n      pcVar13 = (code *)(ulong)uVar11;\n      if (uVar11 != 0xffffffff) {\n        local_d0 = (code *)puVar6[8];\n        uVar11 = (uint)(*(byte *)(puVar6 + 7) >> 4);\n        lVar15 = *(long *)(PTR_DAT_0045c708 + 0x10);\n        if (lVar15 == 0) goto LAB_0028c8d7;\n        bVar8 = *(byte *)((long)puVar6 + 0x3a);\n        uVar10 = bVar8 & 7;\n        bVar7 = (byte)uVar10;\n        pcVar14 = local_d0;\n        if ((*(char *)(lVar15 + 0x7739) != '\0') && (uVar11 == 1)) {\n          if (bVar7 == 0) {\n            if ((*(int *)(puVar6 + 3) == 0) && ((*(byte *)((long)puVar6 + 0x3b) >> 5 & 1) != 0)) {\n                    /* WARNING: Could not recover jumptable at 0x0028c651. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pcVar13 = (code *)(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return pcVar13;\n            }\n                    /* WARNING: Could not recover jumptable at 0x0028c32a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            pcVar13 = (code *)(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();\n            return pcVar13;\n          }\n          if (bVar7 == 4) {\n                    /* WARNING: Could not recover jumptable at 0x0028c569. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            pcVar13 = (code *)(*(code *)(&DAT_003a0b64 + lVar20))();\n            return pcVar13;\n          }\n          if (4 < bVar7) goto LAB_0028c8b0;\n          pcVar13 = (code *)((long)&switchD_0028c5a7::switchdataD_003a0b78 +\n                            (long)(int)(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10]);\n                    /* WARNING: Could not find normalized switch variable to match jumptable */\n          switch(uVar10) {\n          case 0:\nswitchD_0028c5a7_caseD_0:\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.h",0xaa,"shndx");\n          case 1:\n            uVar11 = 1;\n            goto LAB_0028c1cb;\n          case 2:\n            uVar11 = 1;\n            goto LAB_0028c143;\n          case 3:\n            uVar11 = 1;\n            uVar10 = 0xfff1;\n            break;\n          case 4:\n                    /* WARNING: This code block may not be properly labeled as switch case */\n            uVar11 = 1;\n            uVar10 = 0;\n          }\n          goto LAB_0028bf30;\n        }\n        if ((uVar11 == 10) && (*(char *)(lVar15 + 0x2999) == '\0')) {\n          uVar11 = 1;\n        }\n        if (4 < bVar7) {\nLAB_0028c8b0:\n                    /* WARNING: Subroutine does not return */\n          FUN_0018ff20("../../gold/symtab.cc",0xc9b,"sized_write_globals");\n        }\n        pcVar13 = (code *)((long)&switchD_0028bebe::switchdataD_003a0b3c +\n                          (long)(int)(&switchD_0028bebe::switchdataD_003a0b3c)[uVar10]);\n        switch(uVar10) {\n        case 0:\n          if ((bVar8 & 7) != 0) goto switchD_0028c5a7_caseD_0;\n          uVar10 = *(uint *)(puVar6 + 3);\n          bVar8 = *(byte *)((long)puVar6 + 0x3b) >> 5;\n          if (((bVar8 & 1) != 1) && (uVar10 != 0xfff1)) {\n            cVar9 = FUN_00284a00(uVar10);\n            if (cVar9 == '\0') {\n              FUN_00285b30(&local_58,*puVar6);\n              uVar25 = CONCAT44(uStack_54,local_58);\n              uVar16 = gettext("%s: unsupported symbol section 0x%x");\n                    /* try { // try from 0028c69d to 0028c6a1 has its CatchHandler @ 0028ca50 */\n              FUN_001878b0(uVar16,uVar25,uVar10);\n              pcVar13 = (code *)auStack_48;\n              if ((code *)CONCAT44(uStack_54,local_58) != pcVar13) {\n                pcVar13 = (code *)FUN_002f1e60();\n              }\n              break;\n            }\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) {\nLAB_0028c752:\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/symtab.h",0xa1,"object");\n            }\n          }\n          plVar17 = (long *)puVar6[2];\n          if ((*(byte *)((long)plVar17 + 0x3c) & 1) == 0) {\n            pcVar13 = (code *)(**(code **)(*plVar17 + 0x28))(plVar17);\n            if ((pcVar13 != (code *)0x0) || (uVar10 == 0)) goto switchD_0028bebe_caseD_4;\n            if (((bVar8 & 1) != 0) ||\n               ((uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')\n                ))) {\n              uVar19 = (ulong)uVar10;\n              if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;\n                plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n              }\n              else {\n                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);\n              }\n              cVar9 = FUN_00284da0(param_1,plVar17,uVar19);\n              if (cVar9 == '\0') {\n                if (plVar18 == (long *)0x0) goto LAB_0028c9cd;\n              }\n              else {\n                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);\n                plVar17 = auVar26._0_8_;\n                if (plVar17 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }\n                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    /* WARNING: Subroutine does not return */\n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }\n                if (plVar18 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }\n              }\n              if (*(code **)(*plVar18 + 0x58) == FUN_0019a160) {\n                uVar10 = *(uint *)((long)plVar18 + 0x7c);\n                if (uVar10 == 0xffffffff) goto LAB_0028ca38;\n              }\n              else {\n                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);\n              }\n              if (0xfeff < uVar10) {\n                if (uVar12 != 0xffffffff) {\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }\n                if (uVar22 == 0xffffffff) {\n                  uVar10 = 0xffff;\n                }\n                else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }\n              }\n              pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n              if (pcVar13 == (code *)0x0) goto LAB_0028c8d7;\n              if (pcVar13[0x5051] != (code)0x0) {\n                if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;\n                pcVar13 = local_d0 + -plVar18[1];\n                local_d0 = pcVar13;\n              }\n            }\n          }\n          else {\n            if ((*(byte *)((long)puVar6 + 0x3b) & 2) != 0) {\n              pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6);\n            }\n            uVar10 = 0;\n            uVar11 = *(byte *)((long)puVar6 + 0x3c) >> 1 & 1;\n            pcVar13 = (code *)(ulong)uVar11;\n            uVar11 = 2 - ((char)uVar11 == '\0');\n          }\n          break;\n        case 1:\nLAB_0028c1cb:\n          if ((bVar8 & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.h",0xb5,"output_data");\n          }\n          plVar17 = (long *)puVar6[2];\n          uVar10 = (**(code **)(*plVar17 + 0x58))(plVar17);\n          if (0xfeff < uVar10) {\n            if (uVar12 != 0xffffffff) {\n              local_58 = uVar12;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_4 + 0x38,&local_58);\n            }\n            if (uVar22 == 0xffffffff) {\n              uVar10 = 0xffff;\n            }\n            else {\n              local_58 = uVar22;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_5 + 0x38,&local_58);\n              uVar10 = 0xffff;\n            }\n          }\n          pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n          if (pcVar13 == (code *)0x0) {\nLAB_0028c8d7:\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if (pcVar13[0x5051] != (code)0x0) {\n            lVar15 = (**(code **)(*plVar17 + 0x48))(plVar17);\n            if (lVar15 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/symtab.cc",0xc81,"sized_write_globals");\n            }\n            if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/output.h",0xc5,"address");\n            }\n            pcVar13 = *(code **)(lVar15 + 8);\n            local_d0 = local_d0 + -(long)pcVar13;\n          }\n          break;\n        case 2:\n          uVar10 = bVar8 & 7;\nLAB_0028c143:\n          if ((char)uVar10 != '\x02') {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.h",200,"output_segment");\n          }\n          pcVar13 = (code *)FUN_0020de20(puVar6[2]);\n          if (pcVar13 == (code *)0x0) goto switchD_0028bebe_caseD_3;\n          if (*(code **)(*(long *)pcVar13 + 0x58) == FUN_0019a160) {\n            uVar10 = *(uint *)(pcVar13 + 0x7c);\n            pcVar13 = (code *)(ulong)uVar10;\n            if (uVar10 == 0xffffffff) {\nLAB_0028ca38:\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx");\n            }\n          }\n          else {\n            pcVar13 = (code *)(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13);\n            uVar10 = (uint)pcVar13;\n          }\n          break;\n        case 3:\nswitchD_0028bebe_caseD_3:\n          uVar10 = 0xfff1;\n          break;\n        case 4:\nswitchD_0028bebe_caseD_4:\n          uVar10 = 0;\n        }\nLAB_0028bf30:\n        if (uVar12 != 0xffffffff) {\n          uVar12 = uVar12 - iVar1;\n          if (uVar2 <= uVar12) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.cc",0xca1,"sized_write_globals");\n          }\n          pcVar13 = (code *)FUN_00289ee0(param_1,puVar6,local_d0,uVar10,uVar11,param_2,\n                                         (ulong)(uVar12 * 0x18) + local_98);\n        }\n        if (uVar22 != 0xffffffff) {\n          uVar22 = uVar22 - iVar3;\n          if (uVar4 <= uVar22) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.cc",0xcaa,"sized_write_globals");\n          }\n          FUN_00289ee0(param_1,puVar6,pcVar14,uVar10,uVar11,param_3);\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          pcVar13 = *(code **)(*plVar17 + 0x138);\n          if (pcVar13 != FUN_00172ba0) {\n            pcVar13 = (code *)(*pcVar13)(plVar17,puVar6,local_c0 + uVar22 * 0x18);\n          }\n        }\n      }\n      plVar24 = (long *)*plVar24;\n    } while (plVar24 != (long *)0x0);\n  }" { (expression_statement "lVar20 = (long)DAT_003a0b74;" (assignment_expression "lVar20 = (long)DAT_003a0b74" identifier = (cast_expression "(long)DAT_003a0b74" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (do_statement "do {\n      puVar6 = (undefined8 *)plVar24[3];\n      if (((((*(byte *)((long)puVar6 + 0x3a) & 7) == 0) &&\n           (lVar15 = puVar6[2], (*(byte *)(lVar15 + 0x3c) & 1) != 0)) && (*(int *)(puVar6 + 3) == 0)\n          ) && (*(byte *)(puVar6 + 7) >> 4 != 2)) {\n        if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) goto LAB_0028c8d7;\n        if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x339) == '\0') {\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          if (*(code **)(*plVar17 + 0x38) != FUN_00172b10) {\n            cVar9 = (**(code **)(*plVar17 + 0x38))(plVar17,puVar6);\n            if (cVar9 != '\0') goto LAB_0028be18;\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) goto LAB_0028c752;\n            lVar15 = puVar6[2];\n          }\n          if ((*(byte *)(lVar15 + 0x3c) & 0x20) == 0) {\n            if (*(int *)(lVar15 + 0x88) == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }\n            if (*(int *)(lVar15 + 0x88) != 1) {\n              FUN_00187dc0(puVar6);\n            }\n          }\n        }\n      }\nLAB_0028be18:\n      uVar12 = *(uint *)((long)puVar6 + 0x1c);\n      if (uVar12 == 0) goto LAB_0028c880;\n      if (local_c0 == (code *)0x0) {\n        uVar22 = 0xffffffff;\n        uVar11 = uVar12;\n      }\n      else {\n        uVar22 = *(uint *)(puVar6 + 4);\n        if (uVar22 == 0) goto LAB_0028c898;\n        uVar11 = uVar12 & uVar22;\n      }\n      pcVar13 = (code *)(ulong)uVar11;\n      if (uVar11 != 0xffffffff) {\n        local_d0 = (code *)puVar6[8];\n        uVar11 = (uint)(*(byte *)(puVar6 + 7) >> 4);\n        lVar15 = *(long *)(PTR_DAT_0045c708 + 0x10);\n        if (lVar15 == 0) goto LAB_0028c8d7;\n        bVar8 = *(byte *)((long)puVar6 + 0x3a);\n        uVar10 = bVar8 & 7;\n        bVar7 = (byte)uVar10;\n        pcVar14 = local_d0;\n        if ((*(char *)(lVar15 + 0x7739) != '\0') && (uVar11 == 1)) {\n          if (bVar7 == 0) {\n            if ((*(int *)(puVar6 + 3) == 0) && ((*(byte *)((long)puVar6 + 0x3b) >> 5 & 1) != 0)) {\n                    /* WARNING: Could not recover jumptable at 0x0028c651. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pcVar13 = (code *)(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return pcVar13;\n            }\n                    /* WARNING: Could not recover jumptable at 0x0028c32a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            pcVar13 = (code *)(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();\n            return pcVar13;\n          }\n          if (bVar7 == 4) {\n                    /* WARNING: Could not recover jumptable at 0x0028c569. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            pcVar13 = (code *)(*(code *)(&DAT_003a0b64 + lVar20))();\n            return pcVar13;\n          }\n          if (4 < bVar7) goto LAB_0028c8b0;\n          pcVar13 = (code *)((long)&switchD_0028c5a7::switchdataD_003a0b78 +\n                            (long)(int)(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10]);\n                    /* WARNING: Could not find normalized switch variable to match jumptable */\n          switch(uVar10) {\n          case 0:\nswitchD_0028c5a7_caseD_0:\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.h",0xaa,"shndx");\n          case 1:\n            uVar11 = 1;\n            goto LAB_0028c1cb;\n          case 2:\n            uVar11 = 1;\n            goto LAB_0028c143;\n          case 3:\n            uVar11 = 1;\n            uVar10 = 0xfff1;\n            break;\n          case 4:\n                    /* WARNING: This code block may not be properly labeled as switch case */\n            uVar11 = 1;\n            uVar10 = 0;\n          }\n          goto LAB_0028bf30;\n        }\n        if ((uVar11 == 10) && (*(char *)(lVar15 + 0x2999) == '\0')) {\n          uVar11 = 1;\n        }\n        if (4 < bVar7) {\nLAB_0028c8b0:\n                    /* WARNING: Subroutine does not return */\n          FUN_0018ff20("../../gold/symtab.cc",0xc9b,"sized_write_globals");\n        }\n        pcVar13 = (code *)((long)&switchD_0028bebe::switchdataD_003a0b3c +\n                          (long)(int)(&switchD_0028bebe::switchdataD_003a0b3c)[uVar10]);\n        switch(uVar10) {\n        case 0:\n          if ((bVar8 & 7) != 0) goto switchD_0028c5a7_caseD_0;\n          uVar10 = *(uint *)(puVar6 + 3);\n          bVar8 = *(byte *)((long)puVar6 + 0x3b) >> 5;\n          if (((bVar8 & 1) != 1) && (uVar10 != 0xfff1)) {\n            cVar9 = FUN_00284a00(uVar10);\n            if (cVar9 == '\0') {\n              FUN_00285b30(&local_58,*puVar6);\n              uVar25 = CONCAT44(uStack_54,local_58);\n              uVar16 = gettext("%s: unsupported symbol section 0x%x");\n                    /* try { // try from 0028c69d to 0028c6a1 has its CatchHandler @ 0028ca50 */\n              FUN_001878b0(uVar16,uVar25,uVar10);\n              pcVar13 = (code *)auStack_48;\n              if ((code *)CONCAT44(uStack_54,local_58) != pcVar13) {\n                pcVar13 = (code *)FUN_002f1e60();\n              }\n              break;\n            }\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) {\nLAB_0028c752:\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/symtab.h",0xa1,"object");\n            }\n          }\n          plVar17 = (long *)puVar6[2];\n          if ((*(byte *)((long)plVar17 + 0x3c) & 1) == 0) {\n            pcVar13 = (code *)(**(code **)(*plVar17 + 0x28))(plVar17);\n            if ((pcVar13 != (code *)0x0) || (uVar10 == 0)) goto switchD_0028bebe_caseD_4;\n            if (((bVar8 & 1) != 0) ||\n               ((uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')\n                ))) {\n              uVar19 = (ulong)uVar10;\n              if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;\n                plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n              }\n              else {\n                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);\n              }\n              cVar9 = FUN_00284da0(param_1,plVar17,uVar19);\n              if (cVar9 == '\0') {\n                if (plVar18 == (long *)0x0) goto LAB_0028c9cd;\n              }\n              else {\n                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);\n                plVar17 = auVar26._0_8_;\n                if (plVar17 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }\n                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    /* WARNING: Subroutine does not return */\n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }\n                if (plVar18 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }\n              }\n              if (*(code **)(*plVar18 + 0x58) == FUN_0019a160) {\n                uVar10 = *(uint *)((long)plVar18 + 0x7c);\n                if (uVar10 == 0xffffffff) goto LAB_0028ca38;\n              }\n              else {\n                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);\n              }\n              if (0xfeff < uVar10) {\n                if (uVar12 != 0xffffffff) {\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }\n                if (uVar22 == 0xffffffff) {\n                  uVar10 = 0xffff;\n                }\n                else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }\n              }\n              pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n              if (pcVar13 == (code *)0x0) goto LAB_0028c8d7;\n              if (pcVar13[0x5051] != (code)0x0) {\n                if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;\n                pcVar13 = local_d0 + -plVar18[1];\n                local_d0 = pcVar13;\n              }\n            }\n          }\n          else {\n            if ((*(byte *)((long)puVar6 + 0x3b) & 2) != 0) {\n              pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6);\n            }\n            uVar10 = 0;\n            uVar11 = *(byte *)((long)puVar6 + 0x3c) >> 1 & 1;\n            pcVar13 = (code *)(ulong)uVar11;\n            uVar11 = 2 - ((char)uVar11 == '\0');\n          }\n          break;\n        case 1:\nLAB_0028c1cb:\n          if ((bVar8 & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.h",0xb5,"output_data");\n          }\n          plVar17 = (long *)puVar6[2];\n          uVar10 = (**(code **)(*plVar17 + 0x58))(plVar17);\n          if (0xfeff < uVar10) {\n            if (uVar12 != 0xffffffff) {\n              local_58 = uVar12;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_4 + 0x38,&local_58);\n            }\n            if (uVar22 == 0xffffffff) {\n              uVar10 = 0xffff;\n            }\n            else {\n              local_58 = uVar22;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_5 + 0x38,&local_58);\n              uVar10 = 0xffff;\n            }\n          }\n          pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n          if (pcVar13 == (code *)0x0) {\nLAB_0028c8d7:\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if (pcVar13[0x5051] != (code)0x0) {\n            lVar15 = (**(code **)(*plVar17 + 0x48))(plVar17);\n            if (lVar15 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/symtab.cc",0xc81,"sized_write_globals");\n            }\n            if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/output.h",0xc5,"address");\n            }\n            pcVar13 = *(code **)(lVar15 + 8);\n            local_d0 = local_d0 + -(long)pcVar13;\n          }\n          break;\n        case 2:\n          uVar10 = bVar8 & 7;\nLAB_0028c143:\n          if ((char)uVar10 != '\x02') {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.h",200,"output_segment");\n          }\n          pcVar13 = (code *)FUN_0020de20(puVar6[2]);\n          if (pcVar13 == (code *)0x0) goto switchD_0028bebe_caseD_3;\n          if (*(code **)(*(long *)pcVar13 + 0x58) == FUN_0019a160) {\n            uVar10 = *(uint *)(pcVar13 + 0x7c);\n            pcVar13 = (code *)(ulong)uVar10;\n            if (uVar10 == 0xffffffff) {\nLAB_0028ca38:\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx");\n            }\n          }\n          else {\n            pcVar13 = (code *)(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13);\n            uVar10 = (uint)pcVar13;\n          }\n          break;\n        case 3:\nswitchD_0028bebe_caseD_3:\n          uVar10 = 0xfff1;\n          break;\n        case 4:\nswitchD_0028bebe_caseD_4:\n          uVar10 = 0;\n        }\nLAB_0028bf30:\n        if (uVar12 != 0xffffffff) {\n          uVar12 = uVar12 - iVar1;\n          if (uVar2 <= uVar12) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.cc",0xca1,"sized_write_globals");\n          }\n          pcVar13 = (code *)FUN_00289ee0(param_1,puVar6,local_d0,uVar10,uVar11,param_2,\n                                         (ulong)(uVar12 * 0x18) + local_98);\n        }\n        if (uVar22 != 0xffffffff) {\n          uVar22 = uVar22 - iVar3;\n          if (uVar4 <= uVar22) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.cc",0xcaa,"sized_write_globals");\n          }\n          FUN_00289ee0(param_1,puVar6,pcVar14,uVar10,uVar11,param_3);\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          pcVar13 = *(code **)(*plVar17 + 0x138);\n          if (pcVar13 != FUN_00172ba0) {\n            pcVar13 = (code *)(*pcVar13)(plVar17,puVar6,local_c0 + uVar22 * 0x18);\n          }\n        }\n      }\n      plVar24 = (long *)*plVar24;\n    } while (plVar24 != (long *)0x0);" do (compound_statement "{\n      puVar6 = (undefined8 *)plVar24[3];\n      if (((((*(byte *)((long)puVar6 + 0x3a) & 7) == 0) &&\n           (lVar15 = puVar6[2], (*(byte *)(lVar15 + 0x3c) & 1) != 0)) && (*(int *)(puVar6 + 3) == 0)\n          ) && (*(byte *)(puVar6 + 7) >> 4 != 2)) {\n        if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) goto LAB_0028c8d7;\n        if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x339) == '\0') {\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          if (*(code **)(*plVar17 + 0x38) != FUN_00172b10) {\n            cVar9 = (**(code **)(*plVar17 + 0x38))(plVar17,puVar6);\n            if (cVar9 != '\0') goto LAB_0028be18;\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) goto LAB_0028c752;\n            lVar15 = puVar6[2];\n          }\n          if ((*(byte *)(lVar15 + 0x3c) & 0x20) == 0) {\n            if (*(int *)(lVar15 + 0x88) == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }\n            if (*(int *)(lVar15 + 0x88) != 1) {\n              FUN_00187dc0(puVar6);\n            }\n          }\n        }\n      }\nLAB_0028be18:\n      uVar12 = *(uint *)((long)puVar6 + 0x1c);\n      if (uVar12 == 0) goto LAB_0028c880;\n      if (local_c0 == (code *)0x0) {\n        uVar22 = 0xffffffff;\n        uVar11 = uVar12;\n      }\n      else {\n        uVar22 = *(uint *)(puVar6 + 4);\n        if (uVar22 == 0) goto LAB_0028c898;\n        uVar11 = uVar12 & uVar22;\n      }\n      pcVar13 = (code *)(ulong)uVar11;\n      if (uVar11 != 0xffffffff) {\n        local_d0 = (code *)puVar6[8];\n        uVar11 = (uint)(*(byte *)(puVar6 + 7) >> 4);\n        lVar15 = *(long *)(PTR_DAT_0045c708 + 0x10);\n        if (lVar15 == 0) goto LAB_0028c8d7;\n        bVar8 = *(byte *)((long)puVar6 + 0x3a);\n        uVar10 = bVar8 & 7;\n        bVar7 = (byte)uVar10;\n        pcVar14 = local_d0;\n        if ((*(char *)(lVar15 + 0x7739) != '\0') && (uVar11 == 1)) {\n          if (bVar7 == 0) {\n            if ((*(int *)(puVar6 + 3) == 0) && ((*(byte *)((long)puVar6 + 0x3b) >> 5 & 1) != 0)) {\n                    /* WARNING: Could not recover jumptable at 0x0028c651. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pcVar13 = (code *)(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return pcVar13;\n            }\n                    /* WARNING: Could not recover jumptable at 0x0028c32a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            pcVar13 = (code *)(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();\n            return pcVar13;\n          }\n          if (bVar7 == 4) {\n                    /* WARNING: Could not recover jumptable at 0x0028c569. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            pcVar13 = (code *)(*(code *)(&DAT_003a0b64 + lVar20))();\n            return pcVar13;\n          }\n          if (4 < bVar7) goto LAB_0028c8b0;\n          pcVar13 = (code *)((long)&switchD_0028c5a7::switchdataD_003a0b78 +\n                            (long)(int)(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10]);\n                    /* WARNING: Could not find normalized switch variable to match jumptable */\n          switch(uVar10) {\n          case 0:\nswitchD_0028c5a7_caseD_0:\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.h",0xaa,"shndx");\n          case 1:\n            uVar11 = 1;\n            goto LAB_0028c1cb;\n          case 2:\n            uVar11 = 1;\n            goto LAB_0028c143;\n          case 3:\n            uVar11 = 1;\n            uVar10 = 0xfff1;\n            break;\n          case 4:\n                    /* WARNING: This code block may not be properly labeled as switch case */\n            uVar11 = 1;\n            uVar10 = 0;\n          }\n          goto LAB_0028bf30;\n        }\n        if ((uVar11 == 10) && (*(char *)(lVar15 + 0x2999) == '\0')) {\n          uVar11 = 1;\n        }\n        if (4 < bVar7) {\nLAB_0028c8b0:\n                    /* WARNING: Subroutine does not return */\n          FUN_0018ff20("../../gold/symtab.cc",0xc9b,"sized_write_globals");\n        }\n        pcVar13 = (code *)((long)&switchD_0028bebe::switchdataD_003a0b3c +\n                          (long)(int)(&switchD_0028bebe::switchdataD_003a0b3c)[uVar10]);\n        switch(uVar10) {\n        case 0:\n          if ((bVar8 & 7) != 0) goto switchD_0028c5a7_caseD_0;\n          uVar10 = *(uint *)(puVar6 + 3);\n          bVar8 = *(byte *)((long)puVar6 + 0x3b) >> 5;\n          if (((bVar8 & 1) != 1) && (uVar10 != 0xfff1)) {\n            cVar9 = FUN_00284a00(uVar10);\n            if (cVar9 == '\0') {\n              FUN_00285b30(&local_58,*puVar6);\n              uVar25 = CONCAT44(uStack_54,local_58);\n              uVar16 = gettext("%s: unsupported symbol section 0x%x");\n                    /* try { // try from 0028c69d to 0028c6a1 has its CatchHandler @ 0028ca50 */\n              FUN_001878b0(uVar16,uVar25,uVar10);\n              pcVar13 = (code *)auStack_48;\n              if ((code *)CONCAT44(uStack_54,local_58) != pcVar13) {\n                pcVar13 = (code *)FUN_002f1e60();\n              }\n              break;\n            }\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) {\nLAB_0028c752:\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/symtab.h",0xa1,"object");\n            }\n          }\n          plVar17 = (long *)puVar6[2];\n          if ((*(byte *)((long)plVar17 + 0x3c) & 1) == 0) {\n            pcVar13 = (code *)(**(code **)(*plVar17 + 0x28))(plVar17);\n            if ((pcVar13 != (code *)0x0) || (uVar10 == 0)) goto switchD_0028bebe_caseD_4;\n            if (((bVar8 & 1) != 0) ||\n               ((uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')\n                ))) {\n              uVar19 = (ulong)uVar10;\n              if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;\n                plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n              }\n              else {\n                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);\n              }\n              cVar9 = FUN_00284da0(param_1,plVar17,uVar19);\n              if (cVar9 == '\0') {\n                if (plVar18 == (long *)0x0) goto LAB_0028c9cd;\n              }\n              else {\n                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);\n                plVar17 = auVar26._0_8_;\n                if (plVar17 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }\n                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    /* WARNING: Subroutine does not return */\n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }\n                if (plVar18 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }\n              }\n              if (*(code **)(*plVar18 + 0x58) == FUN_0019a160) {\n                uVar10 = *(uint *)((long)plVar18 + 0x7c);\n                if (uVar10 == 0xffffffff) goto LAB_0028ca38;\n              }\n              else {\n                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);\n              }\n              if (0xfeff < uVar10) {\n                if (uVar12 != 0xffffffff) {\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }\n                if (uVar22 == 0xffffffff) {\n                  uVar10 = 0xffff;\n                }\n                else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }\n              }\n              pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n              if (pcVar13 == (code *)0x0) goto LAB_0028c8d7;\n              if (pcVar13[0x5051] != (code)0x0) {\n                if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;\n                pcVar13 = local_d0 + -plVar18[1];\n                local_d0 = pcVar13;\n              }\n            }\n          }\n          else {\n            if ((*(byte *)((long)puVar6 + 0x3b) & 2) != 0) {\n              pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6);\n            }\n            uVar10 = 0;\n            uVar11 = *(byte *)((long)puVar6 + 0x3c) >> 1 & 1;\n            pcVar13 = (code *)(ulong)uVar11;\n            uVar11 = 2 - ((char)uVar11 == '\0');\n          }\n          break;\n        case 1:\nLAB_0028c1cb:\n          if ((bVar8 & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.h",0xb5,"output_data");\n          }\n          plVar17 = (long *)puVar6[2];\n          uVar10 = (**(code **)(*plVar17 + 0x58))(plVar17);\n          if (0xfeff < uVar10) {\n            if (uVar12 != 0xffffffff) {\n              local_58 = uVar12;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_4 + 0x38,&local_58);\n            }\n            if (uVar22 == 0xffffffff) {\n              uVar10 = 0xffff;\n            }\n            else {\n              local_58 = uVar22;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_5 + 0x38,&local_58);\n              uVar10 = 0xffff;\n            }\n          }\n          pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n          if (pcVar13 == (code *)0x0) {\nLAB_0028c8d7:\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if (pcVar13[0x5051] != (code)0x0) {\n            lVar15 = (**(code **)(*plVar17 + 0x48))(plVar17);\n            if (lVar15 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/symtab.cc",0xc81,"sized_write_globals");\n            }\n            if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/output.h",0xc5,"address");\n            }\n            pcVar13 = *(code **)(lVar15 + 8);\n            local_d0 = local_d0 + -(long)pcVar13;\n          }\n          break;\n        case 2:\n          uVar10 = bVar8 & 7;\nLAB_0028c143:\n          if ((char)uVar10 != '\x02') {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.h",200,"output_segment");\n          }\n          pcVar13 = (code *)FUN_0020de20(puVar6[2]);\n          if (pcVar13 == (code *)0x0) goto switchD_0028bebe_caseD_3;\n          if (*(code **)(*(long *)pcVar13 + 0x58) == FUN_0019a160) {\n            uVar10 = *(uint *)(pcVar13 + 0x7c);\n            pcVar13 = (code *)(ulong)uVar10;\n            if (uVar10 == 0xffffffff) {\nLAB_0028ca38:\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx");\n            }\n          }\n          else {\n            pcVar13 = (code *)(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13);\n            uVar10 = (uint)pcVar13;\n          }\n          break;\n        case 3:\nswitchD_0028bebe_caseD_3:\n          uVar10 = 0xfff1;\n          break;\n        case 4:\nswitchD_0028bebe_caseD_4:\n          uVar10 = 0;\n        }\nLAB_0028bf30:\n        if (uVar12 != 0xffffffff) {\n          uVar12 = uVar12 - iVar1;\n          if (uVar2 <= uVar12) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.cc",0xca1,"sized_write_globals");\n          }\n          pcVar13 = (code *)FUN_00289ee0(param_1,puVar6,local_d0,uVar10,uVar11,param_2,\n                                         (ulong)(uVar12 * 0x18) + local_98);\n        }\n        if (uVar22 != 0xffffffff) {\n          uVar22 = uVar22 - iVar3;\n          if (uVar4 <= uVar22) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.cc",0xcaa,"sized_write_globals");\n          }\n          FUN_00289ee0(param_1,puVar6,pcVar14,uVar10,uVar11,param_3);\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          pcVar13 = *(code **)(*plVar17 + 0x138);\n          if (pcVar13 != FUN_00172ba0) {\n            pcVar13 = (code *)(*pcVar13)(plVar17,puVar6,local_c0 + uVar22 * 0x18);\n          }\n        }\n      }\n      plVar24 = (long *)*plVar24;\n    }" { (expression_statement "puVar6 = (undefined8 *)plVar24[3];" (assignment_expression "puVar6 = (undefined8 *)plVar24[3]" identifier = (cast_expression "(undefined8 *)plVar24[3]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar24[3]" identifier [ number_literal ]))) ;) (if_statement "if (((((*(byte *)((long)puVar6 + 0x3a) & 7) == 0) &&\n           (lVar15 = puVar6[2], (*(byte *)(lVar15 + 0x3c) & 1) != 0)) && (*(int *)(puVar6 + 3) == 0)\n          ) && (*(byte *)(puVar6 + 7) >> 4 != 2)) {\n        if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) goto LAB_0028c8d7;\n        if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x339) == '\0') {\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          if (*(code **)(*plVar17 + 0x38) != FUN_00172b10) {\n            cVar9 = (**(code **)(*plVar17 + 0x38))(plVar17,puVar6);\n            if (cVar9 != '\0') goto LAB_0028be18;\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) goto LAB_0028c752;\n            lVar15 = puVar6[2];\n          }\n          if ((*(byte *)(lVar15 + 0x3c) & 0x20) == 0) {\n            if (*(int *)(lVar15 + 0x88) == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }\n            if (*(int *)(lVar15 + 0x88) != 1) {\n              FUN_00187dc0(puVar6);\n            }\n          }\n        }\n      }" if (parenthesized_expression "(((((*(byte *)((long)puVar6 + 0x3a) & 7) == 0) &&\n           (lVar15 = puVar6[2], (*(byte *)(lVar15 + 0x3c) & 1) != 0)) && (*(int *)(puVar6 + 3) == 0)\n          ) && (*(byte *)(puVar6 + 7) >> 4 != 2))" ( (binary_expression "((((*(byte *)((long)puVar6 + 0x3a) & 7) == 0) &&\n           (lVar15 = puVar6[2], (*(byte *)(lVar15 + 0x3c) & 1) != 0)) && (*(int *)(puVar6 + 3) == 0)\n          ) && (*(byte *)(puVar6 + 7) >> 4 != 2)" (parenthesized_expression "((((*(byte *)((long)puVar6 + 0x3a) & 7) == 0) &&\n           (lVar15 = puVar6[2], (*(byte *)(lVar15 + 0x3c) & 1) != 0)) && (*(int *)(puVar6 + 3) == 0)\n          )" ( (binary_expression "(((*(byte *)((long)puVar6 + 0x3a) & 7) == 0) &&\n           (lVar15 = puVar6[2], (*(byte *)(lVar15 + 0x3c) & 1) != 0)) && (*(int *)(puVar6 + 3) == 0)" (parenthesized_expression "(((*(byte *)((long)puVar6 + 0x3a) & 7) == 0) &&\n           (lVar15 = puVar6[2], (*(byte *)(lVar15 + 0x3c) & 1) != 0))" ( (binary_expression "((*(byte *)((long)puVar6 + 0x3a) & 7) == 0) &&\n           (lVar15 = puVar6[2], (*(byte *)(lVar15 + 0x3c) & 1) != 0)" (parenthesized_expression "((*(byte *)((long)puVar6 + 0x3a) & 7) == 0)" ( (binary_expression "(*(byte *)((long)puVar6 + 0x3a) & 7) == 0" (parenthesized_expression "(*(byte *)((long)puVar6 + 0x3a) & 7)" ( (binary_expression "*(byte *)((long)puVar6 + 0x3a) & 7" (pointer_expression "*(byte *)((long)puVar6 + 0x3a)" * (cast_expression "(byte *)((long)puVar6 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar6 + 0x3a)" ( (binary_expression "(long)puVar6 + 0x3a" (cast_expression "(long)puVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "(lVar15 = puVar6[2], (*(byte *)(lVar15 + 0x3c) & 1) != 0)" ( (comma_expression "lVar15 = puVar6[2], (*(byte *)(lVar15 + 0x3c) & 1) != 0" (assignment_expression "lVar15 = puVar6[2]" identifier = (subscript_expression "puVar6[2]" identifier [ number_literal ])) , (binary_expression "(*(byte *)(lVar15 + 0x3c) & 1) != 0" (parenthesized_expression "(*(byte *)(lVar15 + 0x3c) & 1)" ( (binary_expression "*(byte *)(lVar15 + 0x3c) & 1" (pointer_expression "*(byte *)(lVar15 + 0x3c)" * (cast_expression "(byte *)(lVar15 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x3c)" ( (binary_expression "lVar15 + 0x3c" identifier + number_literal) )))) & number_literal) )) != number_literal)) ))) )) && (parenthesized_expression "(*(int *)(puVar6 + 3) == 0)" ( (binary_expression "*(int *)(puVar6 + 3) == 0" (pointer_expression "*(int *)(puVar6 + 3)" * (cast_expression "(int *)(puVar6 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 3)" ( (binary_expression "puVar6 + 3" identifier + number_literal) )))) == number_literal) ))) )) && (parenthesized_expression "(*(byte *)(puVar6 + 7) >> 4 != 2)" ( (binary_expression "*(byte *)(puVar6 + 7) >> 4 != 2" (binary_expression "*(byte *)(puVar6 + 7) >> 4" (pointer_expression "*(byte *)(puVar6 + 7)" * (cast_expression "(byte *)(puVar6 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 7)" ( (binary_expression "puVar6 + 7" identifier + number_literal) )))) >> number_literal) != number_literal) ))) )) (compound_statement "{\n        if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) goto LAB_0028c8d7;\n        if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x339) == '\0') {\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          if (*(code **)(*plVar17 + 0x38) != FUN_00172b10) {\n            cVar9 = (**(code **)(*plVar17 + 0x38))(plVar17,puVar6);\n            if (cVar9 != '\0') goto LAB_0028be18;\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) goto LAB_0028c752;\n            lVar15 = puVar6[2];\n          }\n          if ((*(byte *)(lVar15 + 0x3c) & 0x20) == 0) {\n            if (*(int *)(lVar15 + 0x88) == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }\n            if (*(int *)(lVar15 + 0x88) != 1) {\n              FUN_00187dc0(puVar6);\n            }\n          }\n        }\n      }" { (if_statement "if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) goto LAB_0028c8d7;" if (parenthesized_expression "(*(long *)(PTR_DAT_0045c708 + 0x10) == 0)" ( (binary_expression "*(long *)(PTR_DAT_0045c708 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_0045c708 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0045c708 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0045c708 + 0x10)" ( (binary_expression "PTR_DAT_0045c708 + 0x10" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0028c8d7;" goto statement_identifier ;)) (if_statement "if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x339) == '\0') {\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          if (*(code **)(*plVar17 + 0x38) != FUN_00172b10) {\n            cVar9 = (**(code **)(*plVar17 + 0x38))(plVar17,puVar6);\n            if (cVar9 != '\0') goto LAB_0028be18;\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) goto LAB_0028c752;\n            lVar15 = puVar6[2];\n          }\n          if ((*(byte *)(lVar15 + 0x3c) & 0x20) == 0) {\n            if (*(int *)(lVar15 + 0x88) == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }\n            if (*(int *)(lVar15 + 0x88) != 1) {\n              FUN_00187dc0(puVar6);\n            }\n          }\n        }" if (parenthesized_expression "(*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x339) == '\0')" ( (binary_expression "*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x339) == '\0'" (pointer_expression "*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x339)" * (cast_expression "(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x339)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x339)" ( (binary_expression "*(long *)(PTR_DAT_0045c708 + 0x10) + 0x339" (pointer_expression "*(long *)(PTR_DAT_0045c708 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0045c708 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0045c708 + 0x10)" ( (binary_expression "PTR_DAT_0045c708 + 0x10" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          if (*(code **)(*plVar17 + 0x38) != FUN_00172b10) {\n            cVar9 = (**(code **)(*plVar17 + 0x38))(plVar17,puVar6);\n            if (cVar9 != '\0') goto LAB_0028be18;\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) goto LAB_0028c752;\n            lVar15 = puVar6[2];\n          }\n          if ((*(byte *)(lVar15 + 0x3c) & 0x20) == 0) {\n            if (*(int *)(lVar15 + 0x88) == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }\n            if (*(int *)(lVar15 + 0x88) != 1) {\n              FUN_00187dc0(puVar6);\n            }\n          }\n        }" { (expression_statement "plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);" (assignment_expression "plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18)" identifier = (pointer_expression "*(long **)(PTR_DAT_0045c708 + 0x18)" * (cast_expression "(long **)(PTR_DAT_0045c708 + 0x18)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_0045c708 + 0x18)" ( (binary_expression "PTR_DAT_0045c708 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (plVar17 == (long *)0x0) goto LAB_0028c91f;" if (parenthesized_expression "(plVar17 == (long *)0x0)" ( (binary_expression "plVar17 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0028c91f;" goto statement_identifier ;)) (if_statement "if (*(code **)(*plVar17 + 0x38) != FUN_00172b10) {\n            cVar9 = (**(code **)(*plVar17 + 0x38))(plVar17,puVar6);\n            if (cVar9 != '\0') goto LAB_0028be18;\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) goto LAB_0028c752;\n            lVar15 = puVar6[2];\n          }" if (parenthesized_expression "(*(code **)(*plVar17 + 0x38) != FUN_00172b10)" ( (binary_expression "*(code **)(*plVar17 + 0x38) != FUN_00172b10" (pointer_expression "*(code **)(*plVar17 + 0x38)" * (cast_expression "(code **)(*plVar17 + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar17 + 0x38)" ( (binary_expression "*plVar17 + 0x38" (pointer_expression "*plVar17" * identifier) + number_literal) )))) != identifier) )) (compound_statement "{\n            cVar9 = (**(code **)(*plVar17 + 0x38))(plVar17,puVar6);\n            if (cVar9 != '\0') goto LAB_0028be18;\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) goto LAB_0028c752;\n            lVar15 = puVar6[2];\n          }" { (expression_statement "cVar9 = (**(code **)(*plVar17 + 0x38))(plVar17,puVar6);" (assignment_expression "cVar9 = (**(code **)(*plVar17 + 0x38))(plVar17,puVar6)" identifier = (call_expression "(**(code **)(*plVar17 + 0x38))(plVar17,puVar6)" (parenthesized_expression "(**(code **)(*plVar17 + 0x38))" ( (pointer_expression "**(code **)(*plVar17 + 0x38)" * (pointer_expression "*(code **)(*plVar17 + 0x38)" * (cast_expression "(code **)(*plVar17 + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar17 + 0x38)" ( (binary_expression "*plVar17 + 0x38" (pointer_expression "*plVar17" * identifier) + number_literal) ))))) )) (argument_list "(plVar17,puVar6)" ( identifier , identifier )))) ;) (if_statement "if (cVar9 != '\0') goto LAB_0028be18;" if (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0028be18;" goto statement_identifier ;)) (if_statement "if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) goto LAB_0028c752;" if (parenthesized_expression "((*(byte *)((long)puVar6 + 0x3a) & 7) != 0)" ( (binary_expression "(*(byte *)((long)puVar6 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)((long)puVar6 + 0x3a) & 7)" ( (binary_expression "*(byte *)((long)puVar6 + 0x3a) & 7" (pointer_expression "*(byte *)((long)puVar6 + 0x3a)" * (cast_expression "(byte *)((long)puVar6 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar6 + 0x3a)" ( (binary_expression "(long)puVar6 + 0x3a" (cast_expression "(long)puVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0028c752;" goto statement_identifier ;)) (expression_statement "lVar15 = puVar6[2];" (assignment_expression "lVar15 = puVar6[2]" identifier = (subscript_expression "puVar6[2]" identifier [ number_literal ])) ;) })) (if_statement "if ((*(byte *)(lVar15 + 0x3c) & 0x20) == 0) {\n            if (*(int *)(lVar15 + 0x88) == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }\n            if (*(int *)(lVar15 + 0x88) != 1) {\n              FUN_00187dc0(puVar6);\n            }\n          }" if (parenthesized_expression "((*(byte *)(lVar15 + 0x3c) & 0x20) == 0)" ( (binary_expression "(*(byte *)(lVar15 + 0x3c) & 0x20) == 0" (parenthesized_expression "(*(byte *)(lVar15 + 0x3c) & 0x20)" ( (binary_expression "*(byte *)(lVar15 + 0x3c) & 0x20" (pointer_expression "*(byte *)(lVar15 + 0x3c)" * (cast_expression "(byte *)(lVar15 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x3c)" ( (binary_expression "lVar15 + 0x3c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n            if (*(int *)(lVar15 + 0x88) == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }\n            if (*(int *)(lVar15 + 0x88) != 1) {\n              FUN_00187dc0(puVar6);\n            }\n          }" { (if_statement "if (*(int *)(lVar15 + 0x88) == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }" if (parenthesized_expression "(*(int *)(lVar15 + 0x88) == 0)" ( (binary_expression "*(int *)(lVar15 + 0x88) == 0" (pointer_expression "*(int *)(lVar15 + 0x88)" * (cast_expression "(int *)(lVar15 + 0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x88)" ( (binary_expression "lVar15 + 0x88" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }" { comment (expression_statement "FUN_0018ff20("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");" (call_expression "FUN_0018ff20("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries")" identifier (argument_list "("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries")" ( (string_literal ""../../gold/dynobj.h"" " string_content ") , number_literal , (string_literal ""has_unknown_needed_entries"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(lVar15 + 0x88) != 1) {\n              FUN_00187dc0(puVar6);\n            }" if (parenthesized_expression "(*(int *)(lVar15 + 0x88) != 1)" ( (binary_expression "*(int *)(lVar15 + 0x88) != 1" (pointer_expression "*(int *)(lVar15 + 0x88)" * (cast_expression "(int *)(lVar15 + 0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x88)" ( (binary_expression "lVar15 + 0x88" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              FUN_00187dc0(puVar6);\n            }" { (expression_statement "FUN_00187dc0(puVar6);" (call_expression "FUN_00187dc0(puVar6)" identifier (argument_list "(puVar6)" ( identifier ))) ;) })) })) })) })) (labeled_statement "LAB_0028be18:\n      uVar12 = *(uint *)((long)puVar6 + 0x1c);" statement_identifier : (expression_statement "uVar12 = *(uint *)((long)puVar6 + 0x1c);" (assignment_expression "uVar12 = *(uint *)((long)puVar6 + 0x1c)" identifier = (pointer_expression "*(uint *)((long)puVar6 + 0x1c)" * (cast_expression "(uint *)((long)puVar6 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar6 + 0x1c)" ( (binary_expression "(long)puVar6 + 0x1c" (cast_expression "(long)puVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;)) (if_statement "if (uVar12 == 0) goto LAB_0028c880;" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0028c880;" goto statement_identifier ;)) (if_statement "if (local_c0 == (code *)0x0) {\n        uVar22 = 0xffffffff;\n        uVar11 = uVar12;\n      }\n      else {\n        uVar22 = *(uint *)(puVar6 + 4);\n        if (uVar22 == 0) goto LAB_0028c898;\n        uVar11 = uVar12 & uVar22;\n      }" if (parenthesized_expression "(local_c0 == (code *)0x0)" ( (binary_expression "local_c0 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar22 = 0xffffffff;\n        uVar11 = uVar12;\n      }" { (expression_statement "uVar22 = 0xffffffff;" (assignment_expression "uVar22 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uVar11 = uVar12;" (assignment_expression "uVar11 = uVar12" identifier = identifier) ;) }) (else_clause "else {\n        uVar22 = *(uint *)(puVar6 + 4);\n        if (uVar22 == 0) goto LAB_0028c898;\n        uVar11 = uVar12 & uVar22;\n      }" else (compound_statement "{\n        uVar22 = *(uint *)(puVar6 + 4);\n        if (uVar22 == 0) goto LAB_0028c898;\n        uVar11 = uVar12 & uVar22;\n      }" { (expression_statement "uVar22 = *(uint *)(puVar6 + 4);" (assignment_expression "uVar22 = *(uint *)(puVar6 + 4)" identifier = (pointer_expression "*(uint *)(puVar6 + 4)" * (cast_expression "(uint *)(puVar6 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 4)" ( (binary_expression "puVar6 + 4" identifier + number_literal) ))))) ;) (if_statement "if (uVar22 == 0) goto LAB_0028c898;" if (parenthesized_expression "(uVar22 == 0)" ( (binary_expression "uVar22 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0028c898;" goto statement_identifier ;)) (expression_statement "uVar11 = uVar12 & uVar22;" (assignment_expression "uVar11 = uVar12 & uVar22" identifier = (binary_expression "uVar12 & uVar22" identifier & identifier)) ;) }))) (expression_statement "pcVar13 = (code *)(ulong)uVar11;" (assignment_expression "pcVar13 = (code *)(ulong)uVar11" identifier = (cast_expression "(code *)(ulong)uVar11" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)uVar11" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) (if_statement "if (uVar11 != 0xffffffff) {\n        local_d0 = (code *)puVar6[8];\n        uVar11 = (uint)(*(byte *)(puVar6 + 7) >> 4);\n        lVar15 = *(long *)(PTR_DAT_0045c708 + 0x10);\n        if (lVar15 == 0) goto LAB_0028c8d7;\n        bVar8 = *(byte *)((long)puVar6 + 0x3a);\n        uVar10 = bVar8 & 7;\n        bVar7 = (byte)uVar10;\n        pcVar14 = local_d0;\n        if ((*(char *)(lVar15 + 0x7739) != '\0') && (uVar11 == 1)) {\n          if (bVar7 == 0) {\n            if ((*(int *)(puVar6 + 3) == 0) && ((*(byte *)((long)puVar6 + 0x3b) >> 5 & 1) != 0)) {\n                    /* WARNING: Could not recover jumptable at 0x0028c651. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pcVar13 = (code *)(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return pcVar13;\n            }\n                    /* WARNING: Could not recover jumptable at 0x0028c32a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            pcVar13 = (code *)(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();\n            return pcVar13;\n          }\n          if (bVar7 == 4) {\n                    /* WARNING: Could not recover jumptable at 0x0028c569. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            pcVar13 = (code *)(*(code *)(&DAT_003a0b64 + lVar20))();\n            return pcVar13;\n          }\n          if (4 < bVar7) goto LAB_0028c8b0;\n          pcVar13 = (code *)((long)&switchD_0028c5a7::switchdataD_003a0b78 +\n                            (long)(int)(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10]);\n                    /* WARNING: Could not find normalized switch variable to match jumptable */\n          switch(uVar10) {\n          case 0:\nswitchD_0028c5a7_caseD_0:\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.h",0xaa,"shndx");\n          case 1:\n            uVar11 = 1;\n            goto LAB_0028c1cb;\n          case 2:\n            uVar11 = 1;\n            goto LAB_0028c143;\n          case 3:\n            uVar11 = 1;\n            uVar10 = 0xfff1;\n            break;\n          case 4:\n                    /* WARNING: This code block may not be properly labeled as switch case */\n            uVar11 = 1;\n            uVar10 = 0;\n          }\n          goto LAB_0028bf30;\n        }\n        if ((uVar11 == 10) && (*(char *)(lVar15 + 0x2999) == '\0')) {\n          uVar11 = 1;\n        }\n        if (4 < bVar7) {\nLAB_0028c8b0:\n                    /* WARNING: Subroutine does not return */\n          FUN_0018ff20("../../gold/symtab.cc",0xc9b,"sized_write_globals");\n        }\n        pcVar13 = (code *)((long)&switchD_0028bebe::switchdataD_003a0b3c +\n                          (long)(int)(&switchD_0028bebe::switchdataD_003a0b3c)[uVar10]);\n        switch(uVar10) {\n        case 0:\n          if ((bVar8 & 7) != 0) goto switchD_0028c5a7_caseD_0;\n          uVar10 = *(uint *)(puVar6 + 3);\n          bVar8 = *(byte *)((long)puVar6 + 0x3b) >> 5;\n          if (((bVar8 & 1) != 1) && (uVar10 != 0xfff1)) {\n            cVar9 = FUN_00284a00(uVar10);\n            if (cVar9 == '\0') {\n              FUN_00285b30(&local_58,*puVar6);\n              uVar25 = CONCAT44(uStack_54,local_58);\n              uVar16 = gettext("%s: unsupported symbol section 0x%x");\n                    /* try { // try from 0028c69d to 0028c6a1 has its CatchHandler @ 0028ca50 */\n              FUN_001878b0(uVar16,uVar25,uVar10);\n              pcVar13 = (code *)auStack_48;\n              if ((code *)CONCAT44(uStack_54,local_58) != pcVar13) {\n                pcVar13 = (code *)FUN_002f1e60();\n              }\n              break;\n            }\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) {\nLAB_0028c752:\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/symtab.h",0xa1,"object");\n            }\n          }\n          plVar17 = (long *)puVar6[2];\n          if ((*(byte *)((long)plVar17 + 0x3c) & 1) == 0) {\n            pcVar13 = (code *)(**(code **)(*plVar17 + 0x28))(plVar17);\n            if ((pcVar13 != (code *)0x0) || (uVar10 == 0)) goto switchD_0028bebe_caseD_4;\n            if (((bVar8 & 1) != 0) ||\n               ((uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')\n                ))) {\n              uVar19 = (ulong)uVar10;\n              if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;\n                plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n              }\n              else {\n                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);\n              }\n              cVar9 = FUN_00284da0(param_1,plVar17,uVar19);\n              if (cVar9 == '\0') {\n                if (plVar18 == (long *)0x0) goto LAB_0028c9cd;\n              }\n              else {\n                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);\n                plVar17 = auVar26._0_8_;\n                if (plVar17 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }\n                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    /* WARNING: Subroutine does not return */\n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }\n                if (plVar18 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }\n              }\n              if (*(code **)(*plVar18 + 0x58) == FUN_0019a160) {\n                uVar10 = *(uint *)((long)plVar18 + 0x7c);\n                if (uVar10 == 0xffffffff) goto LAB_0028ca38;\n              }\n              else {\n                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);\n              }\n              if (0xfeff < uVar10) {\n                if (uVar12 != 0xffffffff) {\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }\n                if (uVar22 == 0xffffffff) {\n                  uVar10 = 0xffff;\n                }\n                else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }\n              }\n              pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n              if (pcVar13 == (code *)0x0) goto LAB_0028c8d7;\n              if (pcVar13[0x5051] != (code)0x0) {\n                if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;\n                pcVar13 = local_d0 + -plVar18[1];\n                local_d0 = pcVar13;\n              }\n            }\n          }\n          else {\n            if ((*(byte *)((long)puVar6 + 0x3b) & 2) != 0) {\n              pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6);\n            }\n            uVar10 = 0;\n            uVar11 = *(byte *)((long)puVar6 + 0x3c) >> 1 & 1;\n            pcVar13 = (code *)(ulong)uVar11;\n            uVar11 = 2 - ((char)uVar11 == '\0');\n          }\n          break;\n        case 1:\nLAB_0028c1cb:\n          if ((bVar8 & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.h",0xb5,"output_data");\n          }\n          plVar17 = (long *)puVar6[2];\n          uVar10 = (**(code **)(*plVar17 + 0x58))(plVar17);\n          if (0xfeff < uVar10) {\n            if (uVar12 != 0xffffffff) {\n              local_58 = uVar12;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_4 + 0x38,&local_58);\n            }\n            if (uVar22 == 0xffffffff) {\n              uVar10 = 0xffff;\n            }\n            else {\n              local_58 = uVar22;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_5 + 0x38,&local_58);\n              uVar10 = 0xffff;\n            }\n          }\n          pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n          if (pcVar13 == (code *)0x0) {\nLAB_0028c8d7:\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if (pcVar13[0x5051] != (code)0x0) {\n            lVar15 = (**(code **)(*plVar17 + 0x48))(plVar17);\n            if (lVar15 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/symtab.cc",0xc81,"sized_write_globals");\n            }\n            if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/output.h",0xc5,"address");\n            }\n            pcVar13 = *(code **)(lVar15 + 8);\n            local_d0 = local_d0 + -(long)pcVar13;\n          }\n          break;\n        case 2:\n          uVar10 = bVar8 & 7;\nLAB_0028c143:\n          if ((char)uVar10 != '\x02') {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.h",200,"output_segment");\n          }\n          pcVar13 = (code *)FUN_0020de20(puVar6[2]);\n          if (pcVar13 == (code *)0x0) goto switchD_0028bebe_caseD_3;\n          if (*(code **)(*(long *)pcVar13 + 0x58) == FUN_0019a160) {\n            uVar10 = *(uint *)(pcVar13 + 0x7c);\n            pcVar13 = (code *)(ulong)uVar10;\n            if (uVar10 == 0xffffffff) {\nLAB_0028ca38:\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx");\n            }\n          }\n          else {\n            pcVar13 = (code *)(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13);\n            uVar10 = (uint)pcVar13;\n          }\n          break;\n        case 3:\nswitchD_0028bebe_caseD_3:\n          uVar10 = 0xfff1;\n          break;\n        case 4:\nswitchD_0028bebe_caseD_4:\n          uVar10 = 0;\n        }\nLAB_0028bf30:\n        if (uVar12 != 0xffffffff) {\n          uVar12 = uVar12 - iVar1;\n          if (uVar2 <= uVar12) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.cc",0xca1,"sized_write_globals");\n          }\n          pcVar13 = (code *)FUN_00289ee0(param_1,puVar6,local_d0,uVar10,uVar11,param_2,\n                                         (ulong)(uVar12 * 0x18) + local_98);\n        }\n        if (uVar22 != 0xffffffff) {\n          uVar22 = uVar22 - iVar3;\n          if (uVar4 <= uVar22) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.cc",0xcaa,"sized_write_globals");\n          }\n          FUN_00289ee0(param_1,puVar6,pcVar14,uVar10,uVar11,param_3);\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          pcVar13 = *(code **)(*plVar17 + 0x138);\n          if (pcVar13 != FUN_00172ba0) {\n            pcVar13 = (code *)(*pcVar13)(plVar17,puVar6,local_c0 + uVar22 * 0x18);\n          }\n        }\n      }" if (parenthesized_expression "(uVar11 != 0xffffffff)" ( (binary_expression "uVar11 != 0xffffffff" identifier != number_literal) )) (compound_statement "{\n        local_d0 = (code *)puVar6[8];\n        uVar11 = (uint)(*(byte *)(puVar6 + 7) >> 4);\n        lVar15 = *(long *)(PTR_DAT_0045c708 + 0x10);\n        if (lVar15 == 0) goto LAB_0028c8d7;\n        bVar8 = *(byte *)((long)puVar6 + 0x3a);\n        uVar10 = bVar8 & 7;\n        bVar7 = (byte)uVar10;\n        pcVar14 = local_d0;\n        if ((*(char *)(lVar15 + 0x7739) != '\0') && (uVar11 == 1)) {\n          if (bVar7 == 0) {\n            if ((*(int *)(puVar6 + 3) == 0) && ((*(byte *)((long)puVar6 + 0x3b) >> 5 & 1) != 0)) {\n                    /* WARNING: Could not recover jumptable at 0x0028c651. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pcVar13 = (code *)(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return pcVar13;\n            }\n                    /* WARNING: Could not recover jumptable at 0x0028c32a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            pcVar13 = (code *)(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();\n            return pcVar13;\n          }\n          if (bVar7 == 4) {\n                    /* WARNING: Could not recover jumptable at 0x0028c569. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            pcVar13 = (code *)(*(code *)(&DAT_003a0b64 + lVar20))();\n            return pcVar13;\n          }\n          if (4 < bVar7) goto LAB_0028c8b0;\n          pcVar13 = (code *)((long)&switchD_0028c5a7::switchdataD_003a0b78 +\n                            (long)(int)(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10]);\n                    /* WARNING: Could not find normalized switch variable to match jumptable */\n          switch(uVar10) {\n          case 0:\nswitchD_0028c5a7_caseD_0:\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.h",0xaa,"shndx");\n          case 1:\n            uVar11 = 1;\n            goto LAB_0028c1cb;\n          case 2:\n            uVar11 = 1;\n            goto LAB_0028c143;\n          case 3:\n            uVar11 = 1;\n            uVar10 = 0xfff1;\n            break;\n          case 4:\n                    /* WARNING: This code block may not be properly labeled as switch case */\n            uVar11 = 1;\n            uVar10 = 0;\n          }\n          goto LAB_0028bf30;\n        }\n        if ((uVar11 == 10) && (*(char *)(lVar15 + 0x2999) == '\0')) {\n          uVar11 = 1;\n        }\n        if (4 < bVar7) {\nLAB_0028c8b0:\n                    /* WARNING: Subroutine does not return */\n          FUN_0018ff20("../../gold/symtab.cc",0xc9b,"sized_write_globals");\n        }\n        pcVar13 = (code *)((long)&switchD_0028bebe::switchdataD_003a0b3c +\n                          (long)(int)(&switchD_0028bebe::switchdataD_003a0b3c)[uVar10]);\n        switch(uVar10) {\n        case 0:\n          if ((bVar8 & 7) != 0) goto switchD_0028c5a7_caseD_0;\n          uVar10 = *(uint *)(puVar6 + 3);\n          bVar8 = *(byte *)((long)puVar6 + 0x3b) >> 5;\n          if (((bVar8 & 1) != 1) && (uVar10 != 0xfff1)) {\n            cVar9 = FUN_00284a00(uVar10);\n            if (cVar9 == '\0') {\n              FUN_00285b30(&local_58,*puVar6);\n              uVar25 = CONCAT44(uStack_54,local_58);\n              uVar16 = gettext("%s: unsupported symbol section 0x%x");\n                    /* try { // try from 0028c69d to 0028c6a1 has its CatchHandler @ 0028ca50 */\n              FUN_001878b0(uVar16,uVar25,uVar10);\n              pcVar13 = (code *)auStack_48;\n              if ((code *)CONCAT44(uStack_54,local_58) != pcVar13) {\n                pcVar13 = (code *)FUN_002f1e60();\n              }\n              break;\n            }\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) {\nLAB_0028c752:\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/symtab.h",0xa1,"object");\n            }\n          }\n          plVar17 = (long *)puVar6[2];\n          if ((*(byte *)((long)plVar17 + 0x3c) & 1) == 0) {\n            pcVar13 = (code *)(**(code **)(*plVar17 + 0x28))(plVar17);\n            if ((pcVar13 != (code *)0x0) || (uVar10 == 0)) goto switchD_0028bebe_caseD_4;\n            if (((bVar8 & 1) != 0) ||\n               ((uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')\n                ))) {\n              uVar19 = (ulong)uVar10;\n              if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;\n                plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n              }\n              else {\n                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);\n              }\n              cVar9 = FUN_00284da0(param_1,plVar17,uVar19);\n              if (cVar9 == '\0') {\n                if (plVar18 == (long *)0x0) goto LAB_0028c9cd;\n              }\n              else {\n                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);\n                plVar17 = auVar26._0_8_;\n                if (plVar17 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }\n                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    /* WARNING: Subroutine does not return */\n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }\n                if (plVar18 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }\n              }\n              if (*(code **)(*plVar18 + 0x58) == FUN_0019a160) {\n                uVar10 = *(uint *)((long)plVar18 + 0x7c);\n                if (uVar10 == 0xffffffff) goto LAB_0028ca38;\n              }\n              else {\n                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);\n              }\n              if (0xfeff < uVar10) {\n                if (uVar12 != 0xffffffff) {\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }\n                if (uVar22 == 0xffffffff) {\n                  uVar10 = 0xffff;\n                }\n                else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }\n              }\n              pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n              if (pcVar13 == (code *)0x0) goto LAB_0028c8d7;\n              if (pcVar13[0x5051] != (code)0x0) {\n                if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;\n                pcVar13 = local_d0 + -plVar18[1];\n                local_d0 = pcVar13;\n              }\n            }\n          }\n          else {\n            if ((*(byte *)((long)puVar6 + 0x3b) & 2) != 0) {\n              pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6);\n            }\n            uVar10 = 0;\n            uVar11 = *(byte *)((long)puVar6 + 0x3c) >> 1 & 1;\n            pcVar13 = (code *)(ulong)uVar11;\n            uVar11 = 2 - ((char)uVar11 == '\0');\n          }\n          break;\n        case 1:\nLAB_0028c1cb:\n          if ((bVar8 & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.h",0xb5,"output_data");\n          }\n          plVar17 = (long *)puVar6[2];\n          uVar10 = (**(code **)(*plVar17 + 0x58))(plVar17);\n          if (0xfeff < uVar10) {\n            if (uVar12 != 0xffffffff) {\n              local_58 = uVar12;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_4 + 0x38,&local_58);\n            }\n            if (uVar22 == 0xffffffff) {\n              uVar10 = 0xffff;\n            }\n            else {\n              local_58 = uVar22;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_5 + 0x38,&local_58);\n              uVar10 = 0xffff;\n            }\n          }\n          pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n          if (pcVar13 == (code *)0x0) {\nLAB_0028c8d7:\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if (pcVar13[0x5051] != (code)0x0) {\n            lVar15 = (**(code **)(*plVar17 + 0x48))(plVar17);\n            if (lVar15 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/symtab.cc",0xc81,"sized_write_globals");\n            }\n            if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/output.h",0xc5,"address");\n            }\n            pcVar13 = *(code **)(lVar15 + 8);\n            local_d0 = local_d0 + -(long)pcVar13;\n          }\n          break;\n        case 2:\n          uVar10 = bVar8 & 7;\nLAB_0028c143:\n          if ((char)uVar10 != '\x02') {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.h",200,"output_segment");\n          }\n          pcVar13 = (code *)FUN_0020de20(puVar6[2]);\n          if (pcVar13 == (code *)0x0) goto switchD_0028bebe_caseD_3;\n          if (*(code **)(*(long *)pcVar13 + 0x58) == FUN_0019a160) {\n            uVar10 = *(uint *)(pcVar13 + 0x7c);\n            pcVar13 = (code *)(ulong)uVar10;\n            if (uVar10 == 0xffffffff) {\nLAB_0028ca38:\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx");\n            }\n          }\n          else {\n            pcVar13 = (code *)(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13);\n            uVar10 = (uint)pcVar13;\n          }\n          break;\n        case 3:\nswitchD_0028bebe_caseD_3:\n          uVar10 = 0xfff1;\n          break;\n        case 4:\nswitchD_0028bebe_caseD_4:\n          uVar10 = 0;\n        }\nLAB_0028bf30:\n        if (uVar12 != 0xffffffff) {\n          uVar12 = uVar12 - iVar1;\n          if (uVar2 <= uVar12) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.cc",0xca1,"sized_write_globals");\n          }\n          pcVar13 = (code *)FUN_00289ee0(param_1,puVar6,local_d0,uVar10,uVar11,param_2,\n                                         (ulong)(uVar12 * 0x18) + local_98);\n        }\n        if (uVar22 != 0xffffffff) {\n          uVar22 = uVar22 - iVar3;\n          if (uVar4 <= uVar22) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.cc",0xcaa,"sized_write_globals");\n          }\n          FUN_00289ee0(param_1,puVar6,pcVar14,uVar10,uVar11,param_3);\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          pcVar13 = *(code **)(*plVar17 + 0x138);\n          if (pcVar13 != FUN_00172ba0) {\n            pcVar13 = (code *)(*pcVar13)(plVar17,puVar6,local_c0 + uVar22 * 0x18);\n          }\n        }\n      }" { (expression_statement "local_d0 = (code *)puVar6[8];" (assignment_expression "local_d0 = (code *)puVar6[8]" identifier = (cast_expression "(code *)puVar6[8]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[8]" identifier [ number_literal ]))) ;) (expression_statement "uVar11 = (uint)(*(byte *)(puVar6 + 7) >> 4);" (assignment_expression "uVar11 = (uint)(*(byte *)(puVar6 + 7) >> 4)" identifier = (call_expression "(uint)(*(byte *)(puVar6 + 7) >> 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(byte *)(puVar6 + 7) >> 4)" ( (binary_expression "*(byte *)(puVar6 + 7) >> 4" (pointer_expression "*(byte *)(puVar6 + 7)" * (cast_expression "(byte *)(puVar6 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 7)" ( (binary_expression "puVar6 + 7" identifier + number_literal) )))) >> number_literal) )))) ;) (expression_statement "lVar15 = *(long *)(PTR_DAT_0045c708 + 0x10);" (assignment_expression "lVar15 = *(long *)(PTR_DAT_0045c708 + 0x10)" identifier = (pointer_expression "*(long *)(PTR_DAT_0045c708 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0045c708 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0045c708 + 0x10)" ( (binary_expression "PTR_DAT_0045c708 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (lVar15 == 0) goto LAB_0028c8d7;" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0028c8d7;" goto statement_identifier ;)) (expression_statement "bVar8 = *(byte *)((long)puVar6 + 0x3a);" (assignment_expression "bVar8 = *(byte *)((long)puVar6 + 0x3a)" identifier = (pointer_expression "*(byte *)((long)puVar6 + 0x3a)" * (cast_expression "(byte *)((long)puVar6 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar6 + 0x3a)" ( (binary_expression "(long)puVar6 + 0x3a" (cast_expression "(long)puVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar10 = bVar8 & 7;" (assignment_expression "uVar10 = bVar8 & 7" identifier = (binary_expression "bVar8 & 7" identifier & number_literal)) ;) (expression_statement "bVar7 = (byte)uVar10;" (assignment_expression "bVar7 = (byte)uVar10" identifier = (cast_expression "(byte)uVar10" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pcVar14 = local_d0;" (assignment_expression "pcVar14 = local_d0" identifier = identifier) ;) (if_statement "if ((*(char *)(lVar15 + 0x7739) != '\0') && (uVar11 == 1)) {\n          if (bVar7 == 0) {\n            if ((*(int *)(puVar6 + 3) == 0) && ((*(byte *)((long)puVar6 + 0x3b) >> 5 & 1) != 0)) {\n                    /* WARNING: Could not recover jumptable at 0x0028c651. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pcVar13 = (code *)(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return pcVar13;\n            }\n                    /* WARNING: Could not recover jumptable at 0x0028c32a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            pcVar13 = (code *)(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();\n            return pcVar13;\n          }\n          if (bVar7 == 4) {\n                    /* WARNING: Could not recover jumptable at 0x0028c569. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            pcVar13 = (code *)(*(code *)(&DAT_003a0b64 + lVar20))();\n            return pcVar13;\n          }\n          if (4 < bVar7) goto LAB_0028c8b0;\n          pcVar13 = (code *)((long)&switchD_0028c5a7::switchdataD_003a0b78 +\n                            (long)(int)(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10]);\n                    /* WARNING: Could not find normalized switch variable to match jumptable */\n          switch(uVar10) {\n          case 0:\nswitchD_0028c5a7_caseD_0:\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.h",0xaa,"shndx");\n          case 1:\n            uVar11 = 1;\n            goto LAB_0028c1cb;\n          case 2:\n            uVar11 = 1;\n            goto LAB_0028c143;\n          case 3:\n            uVar11 = 1;\n            uVar10 = 0xfff1;\n            break;\n          case 4:\n                    /* WARNING: This code block may not be properly labeled as switch case */\n            uVar11 = 1;\n            uVar10 = 0;\n          }\n          goto LAB_0028bf30;\n        }" if (parenthesized_expression "((*(char *)(lVar15 + 0x7739) != '\0') && (uVar11 == 1))" ( (binary_expression "(*(char *)(lVar15 + 0x7739) != '\0') && (uVar11 == 1)" (parenthesized_expression "(*(char *)(lVar15 + 0x7739) != '\0')" ( (binary_expression "*(char *)(lVar15 + 0x7739) != '\0'" (pointer_expression "*(char *)(lVar15 + 0x7739)" * (cast_expression "(char *)(lVar15 + 0x7739)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x7739)" ( (binary_expression "lVar15 + 0x7739" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(uVar11 == 1)" ( (binary_expression "uVar11 == 1" identifier == number_literal) ))) )) (compound_statement "{\n          if (bVar7 == 0) {\n            if ((*(int *)(puVar6 + 3) == 0) && ((*(byte *)((long)puVar6 + 0x3b) >> 5 & 1) != 0)) {\n                    /* WARNING: Could not recover jumptable at 0x0028c651. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pcVar13 = (code *)(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return pcVar13;\n            }\n                    /* WARNING: Could not recover jumptable at 0x0028c32a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            pcVar13 = (code *)(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();\n            return pcVar13;\n          }\n          if (bVar7 == 4) {\n                    /* WARNING: Could not recover jumptable at 0x0028c569. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            pcVar13 = (code *)(*(code *)(&DAT_003a0b64 + lVar20))();\n            return pcVar13;\n          }\n          if (4 < bVar7) goto LAB_0028c8b0;\n          pcVar13 = (code *)((long)&switchD_0028c5a7::switchdataD_003a0b78 +\n                            (long)(int)(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10]);\n                    /* WARNING: Could not find normalized switch variable to match jumptable */\n          switch(uVar10) {\n          case 0:\nswitchD_0028c5a7_caseD_0:\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.h",0xaa,"shndx");\n          case 1:\n            uVar11 = 1;\n            goto LAB_0028c1cb;\n          case 2:\n            uVar11 = 1;\n            goto LAB_0028c143;\n          case 3:\n            uVar11 = 1;\n            uVar10 = 0xfff1;\n            break;\n          case 4:\n                    /* WARNING: This code block may not be properly labeled as switch case */\n            uVar11 = 1;\n            uVar10 = 0;\n          }\n          goto LAB_0028bf30;\n        }" { (if_statement "if (bVar7 == 0) {\n            if ((*(int *)(puVar6 + 3) == 0) && ((*(byte *)((long)puVar6 + 0x3b) >> 5 & 1) != 0)) {\n                    /* WARNING: Could not recover jumptable at 0x0028c651. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pcVar13 = (code *)(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return pcVar13;\n            }\n                    /* WARNING: Could not recover jumptable at 0x0028c32a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            pcVar13 = (code *)(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();\n            return pcVar13;\n          }" if (parenthesized_expression "(bVar7 == 0)" ( (binary_expression "bVar7 == 0" identifier == number_literal) )) (compound_statement "{\n            if ((*(int *)(puVar6 + 3) == 0) && ((*(byte *)((long)puVar6 + 0x3b) >> 5 & 1) != 0)) {\n                    /* WARNING: Could not recover jumptable at 0x0028c651. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pcVar13 = (code *)(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return pcVar13;\n            }\n                    /* WARNING: Could not recover jumptable at 0x0028c32a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            pcVar13 = (code *)(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();\n            return pcVar13;\n          }" { (if_statement "if ((*(int *)(puVar6 + 3) == 0) && ((*(byte *)((long)puVar6 + 0x3b) >> 5 & 1) != 0)) {\n                    /* WARNING: Could not recover jumptable at 0x0028c651. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pcVar13 = (code *)(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return pcVar13;\n            }" if (parenthesized_expression "((*(int *)(puVar6 + 3) == 0) && ((*(byte *)((long)puVar6 + 0x3b) >> 5 & 1) != 0))" ( (binary_expression "(*(int *)(puVar6 + 3) == 0) && ((*(byte *)((long)puVar6 + 0x3b) >> 5 & 1) != 0)" (parenthesized_expression "(*(int *)(puVar6 + 3) == 0)" ( (binary_expression "*(int *)(puVar6 + 3) == 0" (pointer_expression "*(int *)(puVar6 + 3)" * (cast_expression "(int *)(puVar6 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 3)" ( (binary_expression "puVar6 + 3" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "((*(byte *)((long)puVar6 + 0x3b) >> 5 & 1) != 0)" ( (binary_expression "(*(byte *)((long)puVar6 + 0x3b) >> 5 & 1) != 0" (parenthesized_expression "(*(byte *)((long)puVar6 + 0x3b) >> 5 & 1)" ( (binary_expression "*(byte *)((long)puVar6 + 0x3b) >> 5 & 1" (binary_expression "*(byte *)((long)puVar6 + 0x3b) >> 5" (pointer_expression "*(byte *)((long)puVar6 + 0x3b)" * (cast_expression "(byte *)((long)puVar6 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar6 + 0x3b)" ( (binary_expression "(long)puVar6 + 0x3b" (cast_expression "(long)puVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) >> number_literal) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0028c651. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pcVar13 = (code *)(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return pcVar13;\n            }" { comment comment (expression_statement "pcVar13 = (code *)(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();" (assignment_expression "pcVar13 = (code *)(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))()" identifier = (cast_expression "(code *)(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))()" (parenthesized_expression "(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))" ( (pointer_expression "*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c)" * (cast_expression "(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&DAT_003a0b8c + (long)DAT_003a0b8c)" ( (binary_expression "(long)&DAT_003a0b8c + (long)DAT_003a0b8c" (cast_expression "(long)&DAT_003a0b8c" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&DAT_003a0b8c" & identifier)) + (cast_expression "(long)DAT_003a0b8c" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) )) (argument_list "()" ( ))))) ;) (return_statement "return pcVar13;" return identifier ;) })) comment comment (expression_statement "pcVar13 = (code *)(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();" (assignment_expression "pcVar13 = (code *)(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))()" identifier = (cast_expression "(code *)(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))()" (parenthesized_expression "(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))" ( (pointer_expression "*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50)" * (cast_expression "(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&DAT_003a0b50 + (long)DAT_003a0b50)" ( (binary_expression "(long)&DAT_003a0b50 + (long)DAT_003a0b50" (cast_expression "(long)&DAT_003a0b50" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&DAT_003a0b50" & identifier)) + (cast_expression "(long)DAT_003a0b50" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) )) (argument_list "()" ( ))))) ;) (return_statement "return pcVar13;" return identifier ;) })) (if_statement "if (bVar7 == 4) {\n                    /* WARNING: Could not recover jumptable at 0x0028c569. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            pcVar13 = (code *)(*(code *)(&DAT_003a0b64 + lVar20))();\n            return pcVar13;\n          }" if (parenthesized_expression "(bVar7 == 4)" ( (binary_expression "bVar7 == 4" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0028c569. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            pcVar13 = (code *)(*(code *)(&DAT_003a0b64 + lVar20))();\n            return pcVar13;\n          }" { comment comment (expression_statement "pcVar13 = (code *)(*(code *)(&DAT_003a0b64 + lVar20))();" (assignment_expression "pcVar13 = (code *)(*(code *)(&DAT_003a0b64 + lVar20))()" identifier = (cast_expression "(code *)(*(code *)(&DAT_003a0b64 + lVar20))()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(&DAT_003a0b64 + lVar20))()" (parenthesized_expression "(*(code *)(&DAT_003a0b64 + lVar20))" ( (pointer_expression "*(code *)(&DAT_003a0b64 + lVar20)" * (cast_expression "(code *)(&DAT_003a0b64 + lVar20)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_003a0b64 + lVar20)" ( (binary_expression "&DAT_003a0b64 + lVar20" (pointer_expression "&DAT_003a0b64" & identifier) + identifier) )))) )) (argument_list "()" ( ))))) ;) (return_statement "return pcVar13;" return identifier ;) })) (if_statement "if (4 < bVar7) goto LAB_0028c8b0;" if (parenthesized_expression "(4 < bVar7)" ( (binary_expression "4 < bVar7" number_literal < identifier) )) (goto_statement "goto LAB_0028c8b0;" goto statement_identifier ;)) (expression_statement "pcVar13 = (code *)((long)&switchD_0028c5a7::switchdataD_003a0b78 +\n                            (long)(int)(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10]);" (assignment_expression "pcVar13 = (code *)((long)&switchD_0028c5a7::switchdataD_003a0b78 +\n                            (long)(int)(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10])" identifier = (cast_expression "(code *)((long)&switchD_0028c5a7::switchdataD_003a0b78 +\n                            (long)(int)(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10])" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&switchD_0028c5a7::switchdataD_003a0b78 +\n                            (long)(int)(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10])" ( (binary_expression "(long)&switchD_0028c5a7::switchdataD_003a0b78 +\n                            (long)(int)(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10]" (cast_expression "(long)&switchD_0028c5a7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&switchD_0028c5a7" & identifier)) (ERROR "::switchdataD_003a0b78" : : identifier) + (cast_expression "(long)(int)(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10]" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10]" (parenthesized_expression "(&switchD_0028c5a7::switchdataD_003a0b78)" ( (ERROR "&switchD_0028c5a7::" (pointer_expression "&switchD_0028c5a7" & identifier) : :) identifier )) [ identifier ])))) )))) ;) comment (switch_statement "switch(uVar10) {\n          case 0:\nswitchD_0028c5a7_caseD_0:\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.h",0xaa,"shndx");\n          case 1:\n            uVar11 = 1;\n            goto LAB_0028c1cb;\n          case 2:\n            uVar11 = 1;\n            goto LAB_0028c143;\n          case 3:\n            uVar11 = 1;\n            uVar10 = 0xfff1;\n            break;\n          case 4:\n                    /* WARNING: This code block may not be properly labeled as switch case */\n            uVar11 = 1;\n            uVar10 = 0;\n          }" switch (parenthesized_expression "(uVar10)" ( identifier )) (compound_statement "{\n          case 0:\nswitchD_0028c5a7_caseD_0:\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.h",0xaa,"shndx");\n          case 1:\n            uVar11 = 1;\n            goto LAB_0028c1cb;\n          case 2:\n            uVar11 = 1;\n            goto LAB_0028c143;\n          case 3:\n            uVar11 = 1;\n            uVar10 = 0xfff1;\n            break;\n          case 4:\n                    /* WARNING: This code block may not be properly labeled as switch case */\n            uVar11 = 1;\n            uVar10 = 0;\n          }" { (case_statement "case 0:\nswitchD_0028c5a7_caseD_0:\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.h",0xaa,"shndx");" case number_literal : (labeled_statement "switchD_0028c5a7_caseD_0:\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.h",0xaa,"shndx");" statement_identifier : comment (expression_statement "FUN_0018ff20("../../gold/symtab.h",0xaa,"shndx");" (call_expression "FUN_0018ff20("../../gold/symtab.h",0xaa,"shndx")" identifier (argument_list "("../../gold/symtab.h",0xaa,"shndx")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""shndx"" " string_content ") ))) ;))) (case_statement "case 1:\n            uVar11 = 1;\n            goto LAB_0028c1cb;" case number_literal : (expression_statement "uVar11 = 1;" (assignment_expression "uVar11 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0028c1cb;" goto statement_identifier ;)) (case_statement "case 2:\n            uVar11 = 1;\n            goto LAB_0028c143;" case number_literal : (expression_statement "uVar11 = 1;" (assignment_expression "uVar11 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0028c143;" goto statement_identifier ;)) (case_statement "case 3:\n            uVar11 = 1;\n            uVar10 = 0xfff1;\n            break;" case number_literal : (expression_statement "uVar11 = 1;" (assignment_expression "uVar11 = 1" identifier = number_literal) ;) (expression_statement "uVar10 = 0xfff1;" (assignment_expression "uVar10 = 0xfff1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n                    /* WARNING: This code block may not be properly labeled as switch case */\n            uVar11 = 1;\n            uVar10 = 0;" case number_literal : comment (expression_statement "uVar11 = 1;" (assignment_expression "uVar11 = 1" identifier = number_literal) ;) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;)) })) (goto_statement "goto LAB_0028bf30;" goto statement_identifier ;) })) (if_statement "if ((uVar11 == 10) && (*(char *)(lVar15 + 0x2999) == '\0')) {\n          uVar11 = 1;\n        }" if (parenthesized_expression "((uVar11 == 10) && (*(char *)(lVar15 + 0x2999) == '\0'))" ( (binary_expression "(uVar11 == 10) && (*(char *)(lVar15 + 0x2999) == '\0')" (parenthesized_expression "(uVar11 == 10)" ( (binary_expression "uVar11 == 10" identifier == number_literal) )) && (parenthesized_expression "(*(char *)(lVar15 + 0x2999) == '\0')" ( (binary_expression "*(char *)(lVar15 + 0x2999) == '\0'" (pointer_expression "*(char *)(lVar15 + 0x2999)" * (cast_expression "(char *)(lVar15 + 0x2999)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x2999)" ( (binary_expression "lVar15 + 0x2999" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n          uVar11 = 1;\n        }" { (expression_statement "uVar11 = 1;" (assignment_expression "uVar11 = 1" identifier = number_literal) ;) })) (if_statement "if (4 < bVar7) {\nLAB_0028c8b0:\n                    /* WARNING: Subroutine does not return */\n          FUN_0018ff20("../../gold/symtab.cc",0xc9b,"sized_write_globals");\n        }" if (parenthesized_expression "(4 < bVar7)" ( (binary_expression "4 < bVar7" number_literal < identifier) )) (compound_statement "{\nLAB_0028c8b0:\n                    /* WARNING: Subroutine does not return */\n          FUN_0018ff20("../../gold/symtab.cc",0xc9b,"sized_write_globals");\n        }" { (labeled_statement "LAB_0028c8b0:\n                    /* WARNING: Subroutine does not return */\n          FUN_0018ff20("../../gold/symtab.cc",0xc9b,"sized_write_globals");" statement_identifier : comment (expression_statement "FUN_0018ff20("../../gold/symtab.cc",0xc9b,"sized_write_globals");" (call_expression "FUN_0018ff20("../../gold/symtab.cc",0xc9b,"sized_write_globals")" identifier (argument_list "("../../gold/symtab.cc",0xc9b,"sized_write_globals")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""sized_write_globals"" " string_content ") ))) ;)) })) (expression_statement "pcVar13 = (code *)((long)&switchD_0028bebe::switchdataD_003a0b3c +\n                          (long)(int)(&switchD_0028bebe::switchdataD_003a0b3c)[uVar10]);" (assignment_expression "pcVar13 = (code *)((long)&switchD_0028bebe::switchdataD_003a0b3c +\n                          (long)(int)(&switchD_0028bebe::switchdataD_003a0b3c)[uVar10])" identifier = (cast_expression "(code *)((long)&switchD_0028bebe::switchdataD_003a0b3c +\n                          (long)(int)(&switchD_0028bebe::switchdataD_003a0b3c)[uVar10])" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&switchD_0028bebe::switchdataD_003a0b3c +\n                          (long)(int)(&switchD_0028bebe::switchdataD_003a0b3c)[uVar10])" ( (binary_expression "(long)&switchD_0028bebe::switchdataD_003a0b3c +\n                          (long)(int)(&switchD_0028bebe::switchdataD_003a0b3c)[uVar10]" (cast_expression "(long)&switchD_0028bebe" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&switchD_0028bebe" & identifier)) (ERROR "::switchdataD_003a0b3c" : : identifier) + (cast_expression "(long)(int)(&switchD_0028bebe::switchdataD_003a0b3c)[uVar10]" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)(&switchD_0028bebe::switchdataD_003a0b3c)[uVar10]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "(&switchD_0028bebe::switchdataD_003a0b3c)[uVar10]" (parenthesized_expression "(&switchD_0028bebe::switchdataD_003a0b3c)" ( (ERROR "&switchD_0028bebe::" (pointer_expression "&switchD_0028bebe" & identifier) : :) identifier )) [ identifier ])))) )))) ;) (switch_statement "switch(uVar10) {\n        case 0:\n          if ((bVar8 & 7) != 0) goto switchD_0028c5a7_caseD_0;\n          uVar10 = *(uint *)(puVar6 + 3);\n          bVar8 = *(byte *)((long)puVar6 + 0x3b) >> 5;\n          if (((bVar8 & 1) != 1) && (uVar10 != 0xfff1)) {\n            cVar9 = FUN_00284a00(uVar10);\n            if (cVar9 == '\0') {\n              FUN_00285b30(&local_58,*puVar6);\n              uVar25 = CONCAT44(uStack_54,local_58);\n              uVar16 = gettext("%s: unsupported symbol section 0x%x");\n                    /* try { // try from 0028c69d to 0028c6a1 has its CatchHandler @ 0028ca50 */\n              FUN_001878b0(uVar16,uVar25,uVar10);\n              pcVar13 = (code *)auStack_48;\n              if ((code *)CONCAT44(uStack_54,local_58) != pcVar13) {\n                pcVar13 = (code *)FUN_002f1e60();\n              }\n              break;\n            }\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) {\nLAB_0028c752:\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/symtab.h",0xa1,"object");\n            }\n          }\n          plVar17 = (long *)puVar6[2];\n          if ((*(byte *)((long)plVar17 + 0x3c) & 1) == 0) {\n            pcVar13 = (code *)(**(code **)(*plVar17 + 0x28))(plVar17);\n            if ((pcVar13 != (code *)0x0) || (uVar10 == 0)) goto switchD_0028bebe_caseD_4;\n            if (((bVar8 & 1) != 0) ||\n               ((uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')\n                ))) {\n              uVar19 = (ulong)uVar10;\n              if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;\n                plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n              }\n              else {\n                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);\n              }\n              cVar9 = FUN_00284da0(param_1,plVar17,uVar19);\n              if (cVar9 == '\0') {\n                if (plVar18 == (long *)0x0) goto LAB_0028c9cd;\n              }\n              else {\n                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);\n                plVar17 = auVar26._0_8_;\n                if (plVar17 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }\n                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    /* WARNING: Subroutine does not return */\n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }\n                if (plVar18 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }\n              }\n              if (*(code **)(*plVar18 + 0x58) == FUN_0019a160) {\n                uVar10 = *(uint *)((long)plVar18 + 0x7c);\n                if (uVar10 == 0xffffffff) goto LAB_0028ca38;\n              }\n              else {\n                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);\n              }\n              if (0xfeff < uVar10) {\n                if (uVar12 != 0xffffffff) {\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }\n                if (uVar22 == 0xffffffff) {\n                  uVar10 = 0xffff;\n                }\n                else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }\n              }\n              pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n              if (pcVar13 == (code *)0x0) goto LAB_0028c8d7;\n              if (pcVar13[0x5051] != (code)0x0) {\n                if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;\n                pcVar13 = local_d0 + -plVar18[1];\n                local_d0 = pcVar13;\n              }\n            }\n          }\n          else {\n            if ((*(byte *)((long)puVar6 + 0x3b) & 2) != 0) {\n              pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6);\n            }\n            uVar10 = 0;\n            uVar11 = *(byte *)((long)puVar6 + 0x3c) >> 1 & 1;\n            pcVar13 = (code *)(ulong)uVar11;\n            uVar11 = 2 - ((char)uVar11 == '\0');\n          }\n          break;\n        case 1:\nLAB_0028c1cb:\n          if ((bVar8 & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.h",0xb5,"output_data");\n          }\n          plVar17 = (long *)puVar6[2];\n          uVar10 = (**(code **)(*plVar17 + 0x58))(plVar17);\n          if (0xfeff < uVar10) {\n            if (uVar12 != 0xffffffff) {\n              local_58 = uVar12;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_4 + 0x38,&local_58);\n            }\n            if (uVar22 == 0xffffffff) {\n              uVar10 = 0xffff;\n            }\n            else {\n              local_58 = uVar22;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_5 + 0x38,&local_58);\n              uVar10 = 0xffff;\n            }\n          }\n          pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n          if (pcVar13 == (code *)0x0) {\nLAB_0028c8d7:\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if (pcVar13[0x5051] != (code)0x0) {\n            lVar15 = (**(code **)(*plVar17 + 0x48))(plVar17);\n            if (lVar15 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/symtab.cc",0xc81,"sized_write_globals");\n            }\n            if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/output.h",0xc5,"address");\n            }\n            pcVar13 = *(code **)(lVar15 + 8);\n            local_d0 = local_d0 + -(long)pcVar13;\n          }\n          break;\n        case 2:\n          uVar10 = bVar8 & 7;\nLAB_0028c143:\n          if ((char)uVar10 != '\x02') {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.h",200,"output_segment");\n          }\n          pcVar13 = (code *)FUN_0020de20(puVar6[2]);\n          if (pcVar13 == (code *)0x0) goto switchD_0028bebe_caseD_3;\n          if (*(code **)(*(long *)pcVar13 + 0x58) == FUN_0019a160) {\n            uVar10 = *(uint *)(pcVar13 + 0x7c);\n            pcVar13 = (code *)(ulong)uVar10;\n            if (uVar10 == 0xffffffff) {\nLAB_0028ca38:\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx");\n            }\n          }\n          else {\n            pcVar13 = (code *)(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13);\n            uVar10 = (uint)pcVar13;\n          }\n          break;\n        case 3:\nswitchD_0028bebe_caseD_3:\n          uVar10 = 0xfff1;\n          break;\n        case 4:\nswitchD_0028bebe_caseD_4:\n          uVar10 = 0;\n        }" switch (parenthesized_expression "(uVar10)" ( identifier )) (compound_statement "{\n        case 0:\n          if ((bVar8 & 7) != 0) goto switchD_0028c5a7_caseD_0;\n          uVar10 = *(uint *)(puVar6 + 3);\n          bVar8 = *(byte *)((long)puVar6 + 0x3b) >> 5;\n          if (((bVar8 & 1) != 1) && (uVar10 != 0xfff1)) {\n            cVar9 = FUN_00284a00(uVar10);\n            if (cVar9 == '\0') {\n              FUN_00285b30(&local_58,*puVar6);\n              uVar25 = CONCAT44(uStack_54,local_58);\n              uVar16 = gettext("%s: unsupported symbol section 0x%x");\n                    /* try { // try from 0028c69d to 0028c6a1 has its CatchHandler @ 0028ca50 */\n              FUN_001878b0(uVar16,uVar25,uVar10);\n              pcVar13 = (code *)auStack_48;\n              if ((code *)CONCAT44(uStack_54,local_58) != pcVar13) {\n                pcVar13 = (code *)FUN_002f1e60();\n              }\n              break;\n            }\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) {\nLAB_0028c752:\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/symtab.h",0xa1,"object");\n            }\n          }\n          plVar17 = (long *)puVar6[2];\n          if ((*(byte *)((long)plVar17 + 0x3c) & 1) == 0) {\n            pcVar13 = (code *)(**(code **)(*plVar17 + 0x28))(plVar17);\n            if ((pcVar13 != (code *)0x0) || (uVar10 == 0)) goto switchD_0028bebe_caseD_4;\n            if (((bVar8 & 1) != 0) ||\n               ((uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')\n                ))) {\n              uVar19 = (ulong)uVar10;\n              if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;\n                plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n              }\n              else {\n                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);\n              }\n              cVar9 = FUN_00284da0(param_1,plVar17,uVar19);\n              if (cVar9 == '\0') {\n                if (plVar18 == (long *)0x0) goto LAB_0028c9cd;\n              }\n              else {\n                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);\n                plVar17 = auVar26._0_8_;\n                if (plVar17 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }\n                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    /* WARNING: Subroutine does not return */\n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }\n                if (plVar18 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }\n              }\n              if (*(code **)(*plVar18 + 0x58) == FUN_0019a160) {\n                uVar10 = *(uint *)((long)plVar18 + 0x7c);\n                if (uVar10 == 0xffffffff) goto LAB_0028ca38;\n              }\n              else {\n                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);\n              }\n              if (0xfeff < uVar10) {\n                if (uVar12 != 0xffffffff) {\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }\n                if (uVar22 == 0xffffffff) {\n                  uVar10 = 0xffff;\n                }\n                else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }\n              }\n              pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n              if (pcVar13 == (code *)0x0) goto LAB_0028c8d7;\n              if (pcVar13[0x5051] != (code)0x0) {\n                if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;\n                pcVar13 = local_d0 + -plVar18[1];\n                local_d0 = pcVar13;\n              }\n            }\n          }\n          else {\n            if ((*(byte *)((long)puVar6 + 0x3b) & 2) != 0) {\n              pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6);\n            }\n            uVar10 = 0;\n            uVar11 = *(byte *)((long)puVar6 + 0x3c) >> 1 & 1;\n            pcVar13 = (code *)(ulong)uVar11;\n            uVar11 = 2 - ((char)uVar11 == '\0');\n          }\n          break;\n        case 1:\nLAB_0028c1cb:\n          if ((bVar8 & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.h",0xb5,"output_data");\n          }\n          plVar17 = (long *)puVar6[2];\n          uVar10 = (**(code **)(*plVar17 + 0x58))(plVar17);\n          if (0xfeff < uVar10) {\n            if (uVar12 != 0xffffffff) {\n              local_58 = uVar12;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_4 + 0x38,&local_58);\n            }\n            if (uVar22 == 0xffffffff) {\n              uVar10 = 0xffff;\n            }\n            else {\n              local_58 = uVar22;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_5 + 0x38,&local_58);\n              uVar10 = 0xffff;\n            }\n          }\n          pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n          if (pcVar13 == (code *)0x0) {\nLAB_0028c8d7:\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if (pcVar13[0x5051] != (code)0x0) {\n            lVar15 = (**(code **)(*plVar17 + 0x48))(plVar17);\n            if (lVar15 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/symtab.cc",0xc81,"sized_write_globals");\n            }\n            if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/output.h",0xc5,"address");\n            }\n            pcVar13 = *(code **)(lVar15 + 8);\n            local_d0 = local_d0 + -(long)pcVar13;\n          }\n          break;\n        case 2:\n          uVar10 = bVar8 & 7;\nLAB_0028c143:\n          if ((char)uVar10 != '\x02') {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.h",200,"output_segment");\n          }\n          pcVar13 = (code *)FUN_0020de20(puVar6[2]);\n          if (pcVar13 == (code *)0x0) goto switchD_0028bebe_caseD_3;\n          if (*(code **)(*(long *)pcVar13 + 0x58) == FUN_0019a160) {\n            uVar10 = *(uint *)(pcVar13 + 0x7c);\n            pcVar13 = (code *)(ulong)uVar10;\n            if (uVar10 == 0xffffffff) {\nLAB_0028ca38:\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx");\n            }\n          }\n          else {\n            pcVar13 = (code *)(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13);\n            uVar10 = (uint)pcVar13;\n          }\n          break;\n        case 3:\nswitchD_0028bebe_caseD_3:\n          uVar10 = 0xfff1;\n          break;\n        case 4:\nswitchD_0028bebe_caseD_4:\n          uVar10 = 0;\n        }" { (case_statement "case 0:\n          if ((bVar8 & 7) != 0) goto switchD_0028c5a7_caseD_0;\n          uVar10 = *(uint *)(puVar6 + 3);\n          bVar8 = *(byte *)((long)puVar6 + 0x3b) >> 5;\n          if (((bVar8 & 1) != 1) && (uVar10 != 0xfff1)) {\n            cVar9 = FUN_00284a00(uVar10);\n            if (cVar9 == '\0') {\n              FUN_00285b30(&local_58,*puVar6);\n              uVar25 = CONCAT44(uStack_54,local_58);\n              uVar16 = gettext("%s: unsupported symbol section 0x%x");\n                    /* try { // try from 0028c69d to 0028c6a1 has its CatchHandler @ 0028ca50 */\n              FUN_001878b0(uVar16,uVar25,uVar10);\n              pcVar13 = (code *)auStack_48;\n              if ((code *)CONCAT44(uStack_54,local_58) != pcVar13) {\n                pcVar13 = (code *)FUN_002f1e60();\n              }\n              break;\n            }\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) {\nLAB_0028c752:\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/symtab.h",0xa1,"object");\n            }\n          }\n          plVar17 = (long *)puVar6[2];\n          if ((*(byte *)((long)plVar17 + 0x3c) & 1) == 0) {\n            pcVar13 = (code *)(**(code **)(*plVar17 + 0x28))(plVar17);\n            if ((pcVar13 != (code *)0x0) || (uVar10 == 0)) goto switchD_0028bebe_caseD_4;\n            if (((bVar8 & 1) != 0) ||\n               ((uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')\n                ))) {\n              uVar19 = (ulong)uVar10;\n              if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;\n                plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n              }\n              else {\n                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);\n              }\n              cVar9 = FUN_00284da0(param_1,plVar17,uVar19);\n              if (cVar9 == '\0') {\n                if (plVar18 == (long *)0x0) goto LAB_0028c9cd;\n              }\n              else {\n                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);\n                plVar17 = auVar26._0_8_;\n                if (plVar17 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }\n                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    /* WARNING: Subroutine does not return */\n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }\n                if (plVar18 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }\n              }\n              if (*(code **)(*plVar18 + 0x58) == FUN_0019a160) {\n                uVar10 = *(uint *)((long)plVar18 + 0x7c);\n                if (uVar10 == 0xffffffff) goto LAB_0028ca38;\n              }\n              else {\n                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);\n              }\n              if (0xfeff < uVar10) {\n                if (uVar12 != 0xffffffff) {\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }\n                if (uVar22 == 0xffffffff) {\n                  uVar10 = 0xffff;\n                }\n                else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }\n              }\n              pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n              if (pcVar13 == (code *)0x0) goto LAB_0028c8d7;\n              if (pcVar13[0x5051] != (code)0x0) {\n                if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;\n                pcVar13 = local_d0 + -plVar18[1];\n                local_d0 = pcVar13;\n              }\n            }\n          }\n          else {\n            if ((*(byte *)((long)puVar6 + 0x3b) & 2) != 0) {\n              pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6);\n            }\n            uVar10 = 0;\n            uVar11 = *(byte *)((long)puVar6 + 0x3c) >> 1 & 1;\n            pcVar13 = (code *)(ulong)uVar11;\n            uVar11 = 2 - ((char)uVar11 == '\0');\n          }\n          break;" case number_literal : (if_statement "if ((bVar8 & 7) != 0) goto switchD_0028c5a7_caseD_0;" if (parenthesized_expression "((bVar8 & 7) != 0)" ( (binary_expression "(bVar8 & 7) != 0" (parenthesized_expression "(bVar8 & 7)" ( (binary_expression "bVar8 & 7" identifier & number_literal) )) != number_literal) )) (goto_statement "goto switchD_0028c5a7_caseD_0;" goto statement_identifier ;)) (expression_statement "uVar10 = *(uint *)(puVar6 + 3);" (assignment_expression "uVar10 = *(uint *)(puVar6 + 3)" identifier = (pointer_expression "*(uint *)(puVar6 + 3)" * (cast_expression "(uint *)(puVar6 + 3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 3)" ( (binary_expression "puVar6 + 3" identifier + number_literal) ))))) ;) (expression_statement "bVar8 = *(byte *)((long)puVar6 + 0x3b) >> 5;" (assignment_expression "bVar8 = *(byte *)((long)puVar6 + 0x3b) >> 5" identifier = (binary_expression "*(byte *)((long)puVar6 + 0x3b) >> 5" (pointer_expression "*(byte *)((long)puVar6 + 0x3b)" * (cast_expression "(byte *)((long)puVar6 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar6 + 0x3b)" ( (binary_expression "(long)puVar6 + 0x3b" (cast_expression "(long)puVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) >> number_literal)) ;) (if_statement "if (((bVar8 & 1) != 1) && (uVar10 != 0xfff1)) {\n            cVar9 = FUN_00284a00(uVar10);\n            if (cVar9 == '\0') {\n              FUN_00285b30(&local_58,*puVar6);\n              uVar25 = CONCAT44(uStack_54,local_58);\n              uVar16 = gettext("%s: unsupported symbol section 0x%x");\n                    /* try { // try from 0028c69d to 0028c6a1 has its CatchHandler @ 0028ca50 */\n              FUN_001878b0(uVar16,uVar25,uVar10);\n              pcVar13 = (code *)auStack_48;\n              if ((code *)CONCAT44(uStack_54,local_58) != pcVar13) {\n                pcVar13 = (code *)FUN_002f1e60();\n              }\n              break;\n            }\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) {\nLAB_0028c752:\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/symtab.h",0xa1,"object");\n            }\n          }" if (parenthesized_expression "(((bVar8 & 1) != 1) && (uVar10 != 0xfff1))" ( (binary_expression "((bVar8 & 1) != 1) && (uVar10 != 0xfff1)" (parenthesized_expression "((bVar8 & 1) != 1)" ( (binary_expression "(bVar8 & 1) != 1" (parenthesized_expression "(bVar8 & 1)" ( (binary_expression "bVar8 & 1" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(uVar10 != 0xfff1)" ( (binary_expression "uVar10 != 0xfff1" identifier != number_literal) ))) )) (compound_statement "{\n            cVar9 = FUN_00284a00(uVar10);\n            if (cVar9 == '\0') {\n              FUN_00285b30(&local_58,*puVar6);\n              uVar25 = CONCAT44(uStack_54,local_58);\n              uVar16 = gettext("%s: unsupported symbol section 0x%x");\n                    /* try { // try from 0028c69d to 0028c6a1 has its CatchHandler @ 0028ca50 */\n              FUN_001878b0(uVar16,uVar25,uVar10);\n              pcVar13 = (code *)auStack_48;\n              if ((code *)CONCAT44(uStack_54,local_58) != pcVar13) {\n                pcVar13 = (code *)FUN_002f1e60();\n              }\n              break;\n            }\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) {\nLAB_0028c752:\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/symtab.h",0xa1,"object");\n            }\n          }" { (expression_statement "cVar9 = FUN_00284a00(uVar10);" (assignment_expression "cVar9 = FUN_00284a00(uVar10)" identifier = (call_expression "FUN_00284a00(uVar10)" identifier (argument_list "(uVar10)" ( identifier )))) ;) (if_statement "if (cVar9 == '\0') {\n              FUN_00285b30(&local_58,*puVar6);\n              uVar25 = CONCAT44(uStack_54,local_58);\n              uVar16 = gettext("%s: unsupported symbol section 0x%x");\n                    /* try { // try from 0028c69d to 0028c6a1 has its CatchHandler @ 0028ca50 */\n              FUN_001878b0(uVar16,uVar25,uVar10);\n              pcVar13 = (code *)auStack_48;\n              if ((code *)CONCAT44(uStack_54,local_58) != pcVar13) {\n                pcVar13 = (code *)FUN_002f1e60();\n              }\n              break;\n            }" if (parenthesized_expression "(cVar9 == '\0')" ( (binary_expression "cVar9 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              FUN_00285b30(&local_58,*puVar6);\n              uVar25 = CONCAT44(uStack_54,local_58);\n              uVar16 = gettext("%s: unsupported symbol section 0x%x");\n                    /* try { // try from 0028c69d to 0028c6a1 has its CatchHandler @ 0028ca50 */\n              FUN_001878b0(uVar16,uVar25,uVar10);\n              pcVar13 = (code *)auStack_48;\n              if ((code *)CONCAT44(uStack_54,local_58) != pcVar13) {\n                pcVar13 = (code *)FUN_002f1e60();\n              }\n              break;\n            }" { (expression_statement "FUN_00285b30(&local_58,*puVar6);" (call_expression "FUN_00285b30(&local_58,*puVar6)" identifier (argument_list "(&local_58,*puVar6)" ( (pointer_expression "&local_58" & identifier) , (pointer_expression "*puVar6" * identifier) ))) ;) (expression_statement "uVar25 = CONCAT44(uStack_54,local_58);" (assignment_expression "uVar25 = CONCAT44(uStack_54,local_58)" identifier = (call_expression "CONCAT44(uStack_54,local_58)" identifier (argument_list "(uStack_54,local_58)" ( identifier , identifier )))) ;) (expression_statement "uVar16 = gettext("%s: unsupported symbol section 0x%x");" (assignment_expression "uVar16 = gettext("%s: unsupported symbol section 0x%x")" identifier = (call_expression "gettext("%s: unsupported symbol section 0x%x")" identifier (argument_list "("%s: unsupported symbol section 0x%x")" ( (string_literal ""%s: unsupported symbol section 0x%x"" " string_content ") )))) ;) comment (expression_statement "FUN_001878b0(uVar16,uVar25,uVar10);" (call_expression "FUN_001878b0(uVar16,uVar25,uVar10)" identifier (argument_list "(uVar16,uVar25,uVar10)" ( identifier , identifier , identifier ))) ;) (expression_statement "pcVar13 = (code *)auStack_48;" (assignment_expression "pcVar13 = (code *)auStack_48" identifier = (cast_expression "(code *)auStack_48" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((code *)CONCAT44(uStack_54,local_58) != pcVar13) {\n                pcVar13 = (code *)FUN_002f1e60();\n              }" if (parenthesized_expression "((code *)CONCAT44(uStack_54,local_58) != pcVar13)" ( (binary_expression "(code *)CONCAT44(uStack_54,local_58) != pcVar13" (cast_expression "(code *)CONCAT44(uStack_54,local_58)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT44(uStack_54,local_58)" identifier (argument_list "(uStack_54,local_58)" ( identifier , identifier )))) != identifier) )) (compound_statement "{\n                pcVar13 = (code *)FUN_002f1e60();\n              }" { (expression_statement "pcVar13 = (code *)FUN_002f1e60();" (assignment_expression "pcVar13 = (code *)FUN_002f1e60()" identifier = (cast_expression "(code *)FUN_002f1e60()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_002f1e60()" identifier (argument_list "()" ( ))))) ;) })) (break_statement "break;" break ;) })) (if_statement "if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) {\nLAB_0028c752:\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/symtab.h",0xa1,"object");\n            }" if (parenthesized_expression "((*(byte *)((long)puVar6 + 0x3a) & 7) != 0)" ( (binary_expression "(*(byte *)((long)puVar6 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)((long)puVar6 + 0x3a) & 7)" ( (binary_expression "*(byte *)((long)puVar6 + 0x3a) & 7" (pointer_expression "*(byte *)((long)puVar6 + 0x3a)" * (cast_expression "(byte *)((long)puVar6 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar6 + 0x3a)" ( (binary_expression "(long)puVar6 + 0x3a" (cast_expression "(long)puVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_0028c752:\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/symtab.h",0xa1,"object");\n            }" { (labeled_statement "LAB_0028c752:\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/symtab.h",0xa1,"object");" statement_identifier : comment (expression_statement "FUN_0018ff20("../../gold/symtab.h",0xa1,"object");" (call_expression "FUN_0018ff20("../../gold/symtab.h",0xa1,"object")" identifier (argument_list "("../../gold/symtab.h",0xa1,"object")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""object"" " string_content ") ))) ;)) })) })) (expression_statement "plVar17 = (long *)puVar6[2];" (assignment_expression "plVar17 = (long *)puVar6[2]" identifier = (cast_expression "(long *)puVar6[2]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[2]" identifier [ number_literal ]))) ;) (if_statement "if ((*(byte *)((long)plVar17 + 0x3c) & 1) == 0) {\n            pcVar13 = (code *)(**(code **)(*plVar17 + 0x28))(plVar17);\n            if ((pcVar13 != (code *)0x0) || (uVar10 == 0)) goto switchD_0028bebe_caseD_4;\n            if (((bVar8 & 1) != 0) ||\n               ((uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')\n                ))) {\n              uVar19 = (ulong)uVar10;\n              if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;\n                plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n              }\n              else {\n                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);\n              }\n              cVar9 = FUN_00284da0(param_1,plVar17,uVar19);\n              if (cVar9 == '\0') {\n                if (plVar18 == (long *)0x0) goto LAB_0028c9cd;\n              }\n              else {\n                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);\n                plVar17 = auVar26._0_8_;\n                if (plVar17 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }\n                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    /* WARNING: Subroutine does not return */\n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }\n                if (plVar18 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }\n              }\n              if (*(code **)(*plVar18 + 0x58) == FUN_0019a160) {\n                uVar10 = *(uint *)((long)plVar18 + 0x7c);\n                if (uVar10 == 0xffffffff) goto LAB_0028ca38;\n              }\n              else {\n                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);\n              }\n              if (0xfeff < uVar10) {\n                if (uVar12 != 0xffffffff) {\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }\n                if (uVar22 == 0xffffffff) {\n                  uVar10 = 0xffff;\n                }\n                else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }\n              }\n              pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n              if (pcVar13 == (code *)0x0) goto LAB_0028c8d7;\n              if (pcVar13[0x5051] != (code)0x0) {\n                if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;\n                pcVar13 = local_d0 + -plVar18[1];\n                local_d0 = pcVar13;\n              }\n            }\n          }\n          else {\n            if ((*(byte *)((long)puVar6 + 0x3b) & 2) != 0) {\n              pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6);\n            }\n            uVar10 = 0;\n            uVar11 = *(byte *)((long)puVar6 + 0x3c) >> 1 & 1;\n            pcVar13 = (code *)(ulong)uVar11;\n            uVar11 = 2 - ((char)uVar11 == '\0');\n          }" if (parenthesized_expression "((*(byte *)((long)plVar17 + 0x3c) & 1) == 0)" ( (binary_expression "(*(byte *)((long)plVar17 + 0x3c) & 1) == 0" (parenthesized_expression "(*(byte *)((long)plVar17 + 0x3c) & 1)" ( (binary_expression "*(byte *)((long)plVar17 + 0x3c) & 1" (pointer_expression "*(byte *)((long)plVar17 + 0x3c)" * (cast_expression "(byte *)((long)plVar17 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar17 + 0x3c)" ( (binary_expression "(long)plVar17 + 0x3c" (cast_expression "(long)plVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n            pcVar13 = (code *)(**(code **)(*plVar17 + 0x28))(plVar17);\n            if ((pcVar13 != (code *)0x0) || (uVar10 == 0)) goto switchD_0028bebe_caseD_4;\n            if (((bVar8 & 1) != 0) ||\n               ((uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')\n                ))) {\n              uVar19 = (ulong)uVar10;\n              if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;\n                plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n              }\n              else {\n                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);\n              }\n              cVar9 = FUN_00284da0(param_1,plVar17,uVar19);\n              if (cVar9 == '\0') {\n                if (plVar18 == (long *)0x0) goto LAB_0028c9cd;\n              }\n              else {\n                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);\n                plVar17 = auVar26._0_8_;\n                if (plVar17 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }\n                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    /* WARNING: Subroutine does not return */\n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }\n                if (plVar18 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }\n              }\n              if (*(code **)(*plVar18 + 0x58) == FUN_0019a160) {\n                uVar10 = *(uint *)((long)plVar18 + 0x7c);\n                if (uVar10 == 0xffffffff) goto LAB_0028ca38;\n              }\n              else {\n                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);\n              }\n              if (0xfeff < uVar10) {\n                if (uVar12 != 0xffffffff) {\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }\n                if (uVar22 == 0xffffffff) {\n                  uVar10 = 0xffff;\n                }\n                else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }\n              }\n              pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n              if (pcVar13 == (code *)0x0) goto LAB_0028c8d7;\n              if (pcVar13[0x5051] != (code)0x0) {\n                if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;\n                pcVar13 = local_d0 + -plVar18[1];\n                local_d0 = pcVar13;\n              }\n            }\n          }" { (expression_statement "pcVar13 = (code *)(**(code **)(*plVar17 + 0x28))(plVar17);" (assignment_expression "pcVar13 = (code *)(**(code **)(*plVar17 + 0x28))(plVar17)" identifier = (cast_expression "(code *)(**(code **)(*plVar17 + 0x28))(plVar17)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*plVar17 + 0x28))(plVar17)" (parenthesized_expression "(**(code **)(*plVar17 + 0x28))" ( (pointer_expression "**(code **)(*plVar17 + 0x28)" * (pointer_expression "*(code **)(*plVar17 + 0x28)" * (cast_expression "(code **)(*plVar17 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar17 + 0x28)" ( (binary_expression "*plVar17 + 0x28" (pointer_expression "*plVar17" * identifier) + number_literal) ))))) )) (argument_list "(plVar17)" ( identifier ))))) ;) (if_statement "if ((pcVar13 != (code *)0x0) || (uVar10 == 0)) goto switchD_0028bebe_caseD_4;" if (parenthesized_expression "((pcVar13 != (code *)0x0) || (uVar10 == 0))" ( (binary_expression "(pcVar13 != (code *)0x0) || (uVar10 == 0)" (parenthesized_expression "(pcVar13 != (code *)0x0)" ( (binary_expression "pcVar13 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(uVar10 == 0)" ( (binary_expression "uVar10 == 0" identifier == number_literal) ))) )) (goto_statement "goto switchD_0028bebe_caseD_4;" goto statement_identifier ;)) (if_statement "if (((bVar8 & 1) != 0) ||\n               ((uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')\n                ))) {\n              uVar19 = (ulong)uVar10;\n              if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;\n                plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n              }\n              else {\n                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);\n              }\n              cVar9 = FUN_00284da0(param_1,plVar17,uVar19);\n              if (cVar9 == '\0') {\n                if (plVar18 == (long *)0x0) goto LAB_0028c9cd;\n              }\n              else {\n                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);\n                plVar17 = auVar26._0_8_;\n                if (plVar17 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }\n                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    /* WARNING: Subroutine does not return */\n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }\n                if (plVar18 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }\n              }\n              if (*(code **)(*plVar18 + 0x58) == FUN_0019a160) {\n                uVar10 = *(uint *)((long)plVar18 + 0x7c);\n                if (uVar10 == 0xffffffff) goto LAB_0028ca38;\n              }\n              else {\n                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);\n              }\n              if (0xfeff < uVar10) {\n                if (uVar12 != 0xffffffff) {\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }\n                if (uVar22 == 0xffffffff) {\n                  uVar10 = 0xffff;\n                }\n                else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }\n              }\n              pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n              if (pcVar13 == (code *)0x0) goto LAB_0028c8d7;\n              if (pcVar13[0x5051] != (code)0x0) {\n                if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;\n                pcVar13 = local_d0 + -plVar18[1];\n                local_d0 = pcVar13;\n              }\n            }" if (parenthesized_expression "(((bVar8 & 1) != 0) ||\n               ((uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')\n                )))" ( (binary_expression "((bVar8 & 1) != 0) ||\n               ((uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')\n                ))" (parenthesized_expression "((bVar8 & 1) != 0)" ( (binary_expression "(bVar8 & 1) != 0" (parenthesized_expression "(bVar8 & 1)" ( (binary_expression "bVar8 & 1" identifier & number_literal) )) != number_literal) )) || (parenthesized_expression "((uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')\n                ))" ( (parenthesized_expression "(uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')\n                )" ( (binary_expression "uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')" (binary_expression "uVar10 != 0xfff1" identifier != number_literal) && (parenthesized_expression "(pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')" ( (comma_expression "pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0'" (assignment_expression "pcVar13 = (code *)FUN_00284a00(uVar10)" identifier = (cast_expression "(code *)FUN_00284a00(uVar10)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00284a00(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))))) , (binary_expression "(char)pcVar13 == '\0'" (cast_expression "(char)pcVar13" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence '))) ))) )) ))) )) (compound_statement "{\n              uVar19 = (ulong)uVar10;\n              if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;\n                plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n              }\n              else {\n                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);\n              }\n              cVar9 = FUN_00284da0(param_1,plVar17,uVar19);\n              if (cVar9 == '\0') {\n                if (plVar18 == (long *)0x0) goto LAB_0028c9cd;\n              }\n              else {\n                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);\n                plVar17 = auVar26._0_8_;\n                if (plVar17 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }\n                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    /* WARNING: Subroutine does not return */\n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }\n                if (plVar18 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }\n              }\n              if (*(code **)(*plVar18 + 0x58) == FUN_0019a160) {\n                uVar10 = *(uint *)((long)plVar18 + 0x7c);\n                if (uVar10 == 0xffffffff) goto LAB_0028ca38;\n              }\n              else {\n                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);\n              }\n              if (0xfeff < uVar10) {\n                if (uVar12 != 0xffffffff) {\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }\n                if (uVar22 == 0xffffffff) {\n                  uVar10 = 0xffff;\n                }\n                else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }\n              }\n              pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n              if (pcVar13 == (code *)0x0) goto LAB_0028c8d7;\n              if (pcVar13[0x5051] != (code)0x0) {\n                if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;\n                pcVar13 = local_d0 + -plVar18[1];\n                local_d0 = pcVar13;\n              }\n            }" { (expression_statement "uVar19 = (ulong)uVar10;" (assignment_expression "uVar19 = (ulong)uVar10" identifier = (cast_expression "(ulong)uVar10" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;\n                plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n              }\n              else {\n                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);\n              }" if (parenthesized_expression "(*(code **)(*plVar17 + 0xc0) == FUN_00173380)" ( (binary_expression "*(code **)(*plVar17 + 0xc0) == FUN_00173380" (pointer_expression "*(code **)(*plVar17 + 0xc0)" * (cast_expression "(code **)(*plVar17 + 0xc0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar17 + 0xc0)" ( (binary_expression "*plVar17 + 0xc0" (pointer_expression "*plVar17" * identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n                if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;\n                plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n              }" { (if_statement "if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;" if (parenthesized_expression "((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19)" ( (binary_expression "(ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19" (call_expression "(ulong)(plVar17[0xb] - plVar17[10] >> 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(plVar17[0xb] - plVar17[10] >> 3)" ( (binary_expression "plVar17[0xb] - plVar17[10] >> 3" (binary_expression "plVar17[0xb] - plVar17[10]" (subscript_expression "plVar17[0xb]" identifier [ number_literal ]) - (subscript_expression "plVar17[10]" identifier [ number_literal ])) >> number_literal) ))) <= identifier) )) (goto_statement "goto LAB_0028ca08;" goto statement_identifier ;)) (expression_statement "plVar18 = *(long **)(plVar17[10] + uVar19 * 8);" (assignment_expression "plVar18 = *(long **)(plVar17[10] + uVar19 * 8)" identifier = (pointer_expression "*(long **)(plVar17[10] + uVar19 * 8)" * (cast_expression "(long **)(plVar17[10] + uVar19 * 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(plVar17[10] + uVar19 * 8)" ( (binary_expression "plVar17[10] + uVar19 * 8" (subscript_expression "plVar17[10]" identifier [ number_literal ]) + (binary_expression "uVar19 * 8" identifier * number_literal)) ))))) ;) }) (else_clause "else {\n                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);\n              }" else (compound_statement "{\n                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);\n              }" { (expression_statement "plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);" (assignment_expression "plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19)" identifier = (cast_expression "(long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19)" (parenthesized_expression "(**(code **)(*plVar17 + 0xc0))" ( (pointer_expression "**(code **)(*plVar17 + 0xc0)" * (pointer_expression "*(code **)(*plVar17 + 0xc0)" * (cast_expression "(code **)(*plVar17 + 0xc0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar17 + 0xc0)" ( (binary_expression "*plVar17 + 0xc0" (pointer_expression "*plVar17" * identifier) + number_literal) ))))) )) (argument_list "(plVar17,uVar19)" ( identifier , identifier ))))) ;) }))) (expression_statement "cVar9 = FUN_00284da0(param_1,plVar17,uVar19);" (assignment_expression "cVar9 = FUN_00284da0(param_1,plVar17,uVar19)" identifier = (call_expression "FUN_00284da0(param_1,plVar17,uVar19)" identifier (argument_list "(param_1,plVar17,uVar19)" ( identifier , identifier , identifier )))) ;) (if_statement "if (cVar9 == '\0') {\n                if (plVar18 == (long *)0x0) goto LAB_0028c9cd;\n              }\n              else {\n                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);\n                plVar17 = auVar26._0_8_;\n                if (plVar17 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }\n                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    /* WARNING: Subroutine does not return */\n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }\n                if (plVar18 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }\n              }" if (parenthesized_expression "(cVar9 == '\0')" ( (binary_expression "cVar9 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                if (plVar18 == (long *)0x0) goto LAB_0028c9cd;\n              }" { (if_statement "if (plVar18 == (long *)0x0) goto LAB_0028c9cd;" if (parenthesized_expression "(plVar18 == (long *)0x0)" ( (binary_expression "plVar18 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0028c9cd;" goto statement_identifier ;)) }) (else_clause "else {\n                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);\n                plVar17 = auVar26._0_8_;\n                if (plVar17 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }\n                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    /* WARNING: Subroutine does not return */\n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }\n                if (plVar18 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }\n              }" else (compound_statement "{\n                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);\n                plVar17 = auVar26._0_8_;\n                if (plVar17 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }\n                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    /* WARNING: Subroutine does not return */\n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }\n                if (plVar18 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }\n              }" { (expression_statement "auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);" (assignment_expression "auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10)" identifier = (call_expression "FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x298)" * (cast_expression "(undefined8 *)(param_1 + 0x298)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) , identifier , identifier )))) ;) (expression_statement "plVar17 = auVar26._0_8_;" (assignment_expression "plVar17 = auVar26._0_8_" identifier = (field_expression "auVar26._0_8_" identifier . field_identifier)) ;) (if_statement "if (plVar17 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }" if (parenthesized_expression "(plVar17 == (long *)0x0)" ( (binary_expression "plVar17 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }" { comment (expression_statement "FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");" (call_expression "FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals")" identifier (argument_list "("../../gold/symtab.cc",0xc53,"sized_write_globals")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""sized_write_globals"" " string_content ") ))) ;) })) (if_statement "if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    /* WARNING: Subroutine does not return */\n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }" if (parenthesized_expression "(*(code **)(*plVar17 + 0xc0) == FUN_00173380)" ( (binary_expression "*(code **)(*plVar17 + 0xc0) == FUN_00173380" (pointer_expression "*(code **)(*plVar17 + 0xc0)" * (cast_expression "(code **)(*plVar17 + 0xc0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar17 + 0xc0)" ( (binary_expression "*plVar17 + 0xc0" (pointer_expression "*plVar17" * identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    /* WARNING: Subroutine does not return */\n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }" { (expression_statement "uVar19 = auVar26._8_8_ & 0xffffffff;" (assignment_expression "uVar19 = auVar26._8_8_ & 0xffffffff" identifier = (binary_expression "auVar26._8_8_ & 0xffffffff" (field_expression "auVar26._8_8_" identifier . field_identifier) & number_literal)) ;) (if_statement "if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    /* WARNING: Subroutine does not return */\n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }" if (parenthesized_expression "((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19)" ( (binary_expression "(ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19" (call_expression "(ulong)(plVar17[0xb] - plVar17[10] >> 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(plVar17[0xb] - plVar17[10] >> 3)" ( (binary_expression "plVar17[0xb] - plVar17[10] >> 3" (binary_expression "plVar17[0xb] - plVar17[10]" (subscript_expression "plVar17[0xb]" identifier [ number_literal ]) - (subscript_expression "plVar17[10]" identifier [ number_literal ])) >> number_literal) ))) <= identifier) )) (compound_statement "{\nLAB_0028ca08:\n                    /* WARNING: Subroutine does not return */\n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }" { (labeled_statement "LAB_0028ca08:\n                    /* WARNING: Subroutine does not return */\n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");" statement_identifier : comment (expression_statement "FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");" (call_expression "FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section")" identifier (argument_list "("../../gold/object.h",0x5c8,"do_output_section")" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""do_output_section"" " string_content ") ))) ;)) })) (expression_statement "plVar18 = *(long **)(plVar17[10] + uVar19 * 8);" (assignment_expression "plVar18 = *(long **)(plVar17[10] + uVar19 * 8)" identifier = (pointer_expression "*(long **)(plVar17[10] + uVar19 * 8)" * (cast_expression "(long **)(plVar17[10] + uVar19 * 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(plVar17[10] + uVar19 * 8)" ( (binary_expression "plVar17[10] + uVar19 * 8" (subscript_expression "plVar17[10]" identifier [ number_literal ]) + (binary_expression "uVar19 * 8" identifier * number_literal)) ))))) ;) }) (else_clause "else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }" else (compound_statement "{\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }" { (expression_statement "plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);" (assignment_expression "plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff)" identifier = (cast_expression "(long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff)" (parenthesized_expression "(**(code **)(*plVar17 + 0xc0))" ( (pointer_expression "**(code **)(*plVar17 + 0xc0)" * (pointer_expression "*(code **)(*plVar17 + 0xc0)" * (cast_expression "(code **)(*plVar17 + 0xc0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar17 + 0xc0)" ( (binary_expression "*plVar17 + 0xc0" (pointer_expression "*plVar17" * identifier) + number_literal) ))))) )) (argument_list "(plVar17,auVar26._8_8_ & 0xffffffff)" ( identifier , (binary_expression "auVar26._8_8_ & 0xffffffff" (field_expression "auVar26._8_8_" identifier . field_identifier) & number_literal) ))))) ;) }))) (if_statement "if (plVar18 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }" if (parenthesized_expression "(plVar18 == (long *)0x0)" ( (binary_expression "plVar18 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }" { comment (expression_statement "FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");" (call_expression "FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals")" identifier (argument_list "("../../gold/symtab.cc",0xc57,"sized_write_globals")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""sized_write_globals"" " string_content ") ))) ;) })) }))) (if_statement "if (*(code **)(*plVar18 + 0x58) == FUN_0019a160) {\n                uVar10 = *(uint *)((long)plVar18 + 0x7c);\n                if (uVar10 == 0xffffffff) goto LAB_0028ca38;\n              }\n              else {\n                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);\n              }" if (parenthesized_expression "(*(code **)(*plVar18 + 0x58) == FUN_0019a160)" ( (binary_expression "*(code **)(*plVar18 + 0x58) == FUN_0019a160" (pointer_expression "*(code **)(*plVar18 + 0x58)" * (cast_expression "(code **)(*plVar18 + 0x58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar18 + 0x58)" ( (binary_expression "*plVar18 + 0x58" (pointer_expression "*plVar18" * identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n                uVar10 = *(uint *)((long)plVar18 + 0x7c);\n                if (uVar10 == 0xffffffff) goto LAB_0028ca38;\n              }" { (expression_statement "uVar10 = *(uint *)((long)plVar18 + 0x7c);" (assignment_expression "uVar10 = *(uint *)((long)plVar18 + 0x7c)" identifier = (pointer_expression "*(uint *)((long)plVar18 + 0x7c)" * (cast_expression "(uint *)((long)plVar18 + 0x7c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar18 + 0x7c)" ( (binary_expression "(long)plVar18 + 0x7c" (cast_expression "(long)plVar18" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (if_statement "if (uVar10 == 0xffffffff) goto LAB_0028ca38;" if (parenthesized_expression "(uVar10 == 0xffffffff)" ( (binary_expression "uVar10 == 0xffffffff" identifier == number_literal) )) (goto_statement "goto LAB_0028ca38;" goto statement_identifier ;)) }) (else_clause "else {\n                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);\n              }" else (compound_statement "{\n                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);\n              }" { (expression_statement "uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);" (assignment_expression "uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18)" identifier = (call_expression "(**(code **)(*plVar18 + 0x58))(plVar18)" (parenthesized_expression "(**(code **)(*plVar18 + 0x58))" ( (pointer_expression "**(code **)(*plVar18 + 0x58)" * (pointer_expression "*(code **)(*plVar18 + 0x58)" * (cast_expression "(code **)(*plVar18 + 0x58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar18 + 0x58)" ( (binary_expression "*plVar18 + 0x58" (pointer_expression "*plVar18" * identifier) + number_literal) ))))) )) (argument_list "(plVar18)" ( identifier )))) ;) }))) (if_statement "if (0xfeff < uVar10) {\n                if (uVar12 != 0xffffffff) {\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }\n                if (uVar22 == 0xffffffff) {\n                  uVar10 = 0xffff;\n                }\n                else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }\n              }" if (parenthesized_expression "(0xfeff < uVar10)" ( (binary_expression "0xfeff < uVar10" number_literal < identifier) )) (compound_statement "{\n                if (uVar12 != 0xffffffff) {\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }\n                if (uVar22 == 0xffffffff) {\n                  uVar10 = 0xffff;\n                }\n                else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }\n              }" { (if_statement "if (uVar12 != 0xffffffff) {\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }" if (parenthesized_expression "(uVar12 != 0xffffffff)" ( (binary_expression "uVar12 != 0xffffffff" identifier != number_literal) )) (compound_statement "{\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }" { (expression_statement "local_58 = uVar12;" (assignment_expression "local_58 = uVar12" identifier = identifier) ;) (expression_statement "uStack_54 = uVar10;" (assignment_expression "uStack_54 = uVar10" identifier = identifier) ;) (expression_statement "FUN_001a3810(param_4 + 0x38,&local_58);" (call_expression "FUN_001a3810(param_4 + 0x38,&local_58)" identifier (argument_list "(param_4 + 0x38,&local_58)" ( (binary_expression "param_4 + 0x38" identifier + number_literal) , (pointer_expression "&local_58" & identifier) ))) ;) })) (if_statement "if (uVar22 == 0xffffffff) {\n                  uVar10 = 0xffff;\n                }\n                else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }" if (parenthesized_expression "(uVar22 == 0xffffffff)" ( (binary_expression "uVar22 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n                  uVar10 = 0xffff;\n                }" { (expression_statement "uVar10 = 0xffff;" (assignment_expression "uVar10 = 0xffff" identifier = number_literal) ;) }) (else_clause "else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }" else (compound_statement "{\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }" { (expression_statement "local_58 = uVar22;" (assignment_expression "local_58 = uVar22" identifier = identifier) ;) (expression_statement "uStack_54 = uVar10;" (assignment_expression "uStack_54 = uVar10" identifier = identifier) ;) (expression_statement "FUN_001a3810(param_5 + 0x38,&local_58);" (call_expression "FUN_001a3810(param_5 + 0x38,&local_58)" identifier (argument_list "(param_5 + 0x38,&local_58)" ( (binary_expression "param_5 + 0x38" identifier + number_literal) , (pointer_expression "&local_58" & identifier) ))) ;) (expression_statement "uVar10 = 0xffff;" (assignment_expression "uVar10 = 0xffff" identifier = number_literal) ;) }))) })) (expression_statement "pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);" (assignment_expression "pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10)" identifier = (pointer_expression "*(code **)(PTR_DAT_0045c708 + 0x10)" * (cast_expression "(code **)(PTR_DAT_0045c708 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_0045c708 + 0x10)" ( (binary_expression "PTR_DAT_0045c708 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (pcVar13 == (code *)0x0) goto LAB_0028c8d7;" if (parenthesized_expression "(pcVar13 == (code *)0x0)" ( (binary_expression "pcVar13 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0028c8d7;" goto statement_identifier ;)) (if_statement "if (pcVar13[0x5051] != (code)0x0) {\n                if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;\n                pcVar13 = local_d0 + -plVar18[1];\n                local_d0 = pcVar13;\n              }" if (parenthesized_expression "(pcVar13[0x5051] != (code)0x0)" ( (binary_expression "pcVar13[0x5051] != (code)0x0" (subscript_expression "pcVar13[0x5051]" identifier [ number_literal ]) != (cast_expression "(code)0x0" ( (type_descriptor "code" type_identifier) ) number_literal)) )) (compound_statement "{\n                if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;\n                pcVar13 = local_d0 + -plVar18[1];\n                local_d0 = pcVar13;\n              }" { (if_statement "if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;" if (parenthesized_expression "((*(byte *)(plVar18 + 4) & 1) == 0)" ( (binary_expression "(*(byte *)(plVar18 + 4) & 1) == 0" (parenthesized_expression "(*(byte *)(plVar18 + 4) & 1)" ( (binary_expression "*(byte *)(plVar18 + 4) & 1" (pointer_expression "*(byte *)(plVar18 + 4)" * (cast_expression "(byte *)(plVar18 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar18 + 4)" ( (binary_expression "plVar18 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0028c9b0;" goto statement_identifier ;)) (expression_statement "pcVar13 = local_d0 + -plVar18[1];" (assignment_expression "pcVar13 = local_d0 + -plVar18[1]" identifier = (binary_expression "local_d0 + -plVar18[1]" identifier + (unary_expression "-plVar18[1]" - (subscript_expression "plVar18[1]" identifier [ number_literal ])))) ;) (expression_statement "local_d0 = pcVar13;" (assignment_expression "local_d0 = pcVar13" identifier = identifier) ;) })) })) }) (else_clause "else {\n            if ((*(byte *)((long)puVar6 + 0x3b) & 2) != 0) {\n              pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6);\n            }\n            uVar10 = 0;\n            uVar11 = *(byte *)((long)puVar6 + 0x3c) >> 1 & 1;\n            pcVar13 = (code *)(ulong)uVar11;\n            uVar11 = 2 - ((char)uVar11 == '\0');\n          }" else (compound_statement "{\n            if ((*(byte *)((long)puVar6 + 0x3b) & 2) != 0) {\n              pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6);\n            }\n            uVar10 = 0;\n            uVar11 = *(byte *)((long)puVar6 + 0x3c) >> 1 & 1;\n            pcVar13 = (code *)(ulong)uVar11;\n            uVar11 = 2 - ((char)uVar11 == '\0');\n          }" { (if_statement "if ((*(byte *)((long)puVar6 + 0x3b) & 2) != 0) {\n              pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6);\n            }" if (parenthesized_expression "((*(byte *)((long)puVar6 + 0x3b) & 2) != 0)" ( (binary_expression "(*(byte *)((long)puVar6 + 0x3b) & 2) != 0" (parenthesized_expression "(*(byte *)((long)puVar6 + 0x3b) & 2)" ( (binary_expression "*(byte *)((long)puVar6 + 0x3b) & 2" (pointer_expression "*(byte *)((long)puVar6 + 0x3b)" * (cast_expression "(byte *)((long)puVar6 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar6 + 0x3b)" ( (binary_expression "(long)puVar6 + 0x3b" (cast_expression "(long)puVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n              pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6);\n            }" { (expression_statement "pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6);" (assignment_expression "pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6)" identifier = (cast_expression "(code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*plVar23 + 0x28))(plVar23,puVar6)" (parenthesized_expression "(**(code **)(*plVar23 + 0x28))" ( (pointer_expression "**(code **)(*plVar23 + 0x28)" * (pointer_expression "*(code **)(*plVar23 + 0x28)" * (cast_expression "(code **)(*plVar23 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar23 + 0x28)" ( (binary_expression "*plVar23 + 0x28" (pointer_expression "*plVar23" * identifier) + number_literal) ))))) )) (argument_list "(plVar23,puVar6)" ( identifier , identifier ))))) ;) })) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (expression_statement "uVar11 = *(byte *)((long)puVar6 + 0x3c) >> 1 & 1;" (assignment_expression "uVar11 = *(byte *)((long)puVar6 + 0x3c) >> 1 & 1" identifier = (binary_expression "*(byte *)((long)puVar6 + 0x3c) >> 1 & 1" (binary_expression "*(byte *)((long)puVar6 + 0x3c) >> 1" (pointer_expression "*(byte *)((long)puVar6 + 0x3c)" * (cast_expression "(byte *)((long)puVar6 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar6 + 0x3c)" ( (binary_expression "(long)puVar6 + 0x3c" (cast_expression "(long)puVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) >> number_literal) & number_literal)) ;) (expression_statement "pcVar13 = (code *)(ulong)uVar11;" (assignment_expression "pcVar13 = (code *)(ulong)uVar11" identifier = (cast_expression "(code *)(ulong)uVar11" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)uVar11" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) (expression_statement "uVar11 = 2 - ((char)uVar11 == '\0');" (assignment_expression "uVar11 = 2 - ((char)uVar11 == '\0')" identifier = (binary_expression "2 - ((char)uVar11 == '\0')" number_literal - (parenthesized_expression "((char)uVar11 == '\0')" ( (binary_expression "(char)uVar11 == '\0'" (cast_expression "(char)uVar11" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )))) ;) }))) (break_statement "break;" break ;)) (case_statement "case 1:\nLAB_0028c1cb:\n          if ((bVar8 & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.h",0xb5,"output_data");\n          }\n          plVar17 = (long *)puVar6[2];\n          uVar10 = (**(code **)(*plVar17 + 0x58))(plVar17);\n          if (0xfeff < uVar10) {\n            if (uVar12 != 0xffffffff) {\n              local_58 = uVar12;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_4 + 0x38,&local_58);\n            }\n            if (uVar22 == 0xffffffff) {\n              uVar10 = 0xffff;\n            }\n            else {\n              local_58 = uVar22;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_5 + 0x38,&local_58);\n              uVar10 = 0xffff;\n            }\n          }\n          pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n          if (pcVar13 == (code *)0x0) {\nLAB_0028c8d7:\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if (pcVar13[0x5051] != (code)0x0) {\n            lVar15 = (**(code **)(*plVar17 + 0x48))(plVar17);\n            if (lVar15 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/symtab.cc",0xc81,"sized_write_globals");\n            }\n            if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/output.h",0xc5,"address");\n            }\n            pcVar13 = *(code **)(lVar15 + 8);\n            local_d0 = local_d0 + -(long)pcVar13;\n          }\n          break;" case number_literal : (labeled_statement "LAB_0028c1cb:\n          if ((bVar8 & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.h",0xb5,"output_data");\n          }" statement_identifier : (if_statement "if ((bVar8 & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.h",0xb5,"output_data");\n          }" if (parenthesized_expression "((bVar8 & 7) != 1)" ( (binary_expression "(bVar8 & 7) != 1" (parenthesized_expression "(bVar8 & 7)" ( (binary_expression "bVar8 & 7" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.h",0xb5,"output_data");\n          }" { comment (expression_statement "FUN_0018ff20("../../gold/symtab.h",0xb5,"output_data");" (call_expression "FUN_0018ff20("../../gold/symtab.h",0xb5,"output_data")" identifier (argument_list "("../../gold/symtab.h",0xb5,"output_data")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""output_data"" " string_content ") ))) ;) }))) (expression_statement "plVar17 = (long *)puVar6[2];" (assignment_expression "plVar17 = (long *)puVar6[2]" identifier = (cast_expression "(long *)puVar6[2]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[2]" identifier [ number_literal ]))) ;) (expression_statement "uVar10 = (**(code **)(*plVar17 + 0x58))(plVar17);" (assignment_expression "uVar10 = (**(code **)(*plVar17 + 0x58))(plVar17)" identifier = (call_expression "(**(code **)(*plVar17 + 0x58))(plVar17)" (parenthesized_expression "(**(code **)(*plVar17 + 0x58))" ( (pointer_expression "**(code **)(*plVar17 + 0x58)" * (pointer_expression "*(code **)(*plVar17 + 0x58)" * (cast_expression "(code **)(*plVar17 + 0x58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar17 + 0x58)" ( (binary_expression "*plVar17 + 0x58" (pointer_expression "*plVar17" * identifier) + number_literal) ))))) )) (argument_list "(plVar17)" ( identifier )))) ;) (if_statement "if (0xfeff < uVar10) {\n            if (uVar12 != 0xffffffff) {\n              local_58 = uVar12;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_4 + 0x38,&local_58);\n            }\n            if (uVar22 == 0xffffffff) {\n              uVar10 = 0xffff;\n            }\n            else {\n              local_58 = uVar22;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_5 + 0x38,&local_58);\n              uVar10 = 0xffff;\n            }\n          }" if (parenthesized_expression "(0xfeff < uVar10)" ( (binary_expression "0xfeff < uVar10" number_literal < identifier) )) (compound_statement "{\n            if (uVar12 != 0xffffffff) {\n              local_58 = uVar12;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_4 + 0x38,&local_58);\n            }\n            if (uVar22 == 0xffffffff) {\n              uVar10 = 0xffff;\n            }\n            else {\n              local_58 = uVar22;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_5 + 0x38,&local_58);\n              uVar10 = 0xffff;\n            }\n          }" { (if_statement "if (uVar12 != 0xffffffff) {\n              local_58 = uVar12;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_4 + 0x38,&local_58);\n            }" if (parenthesized_expression "(uVar12 != 0xffffffff)" ( (binary_expression "uVar12 != 0xffffffff" identifier != number_literal) )) (compound_statement "{\n              local_58 = uVar12;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_4 + 0x38,&local_58);\n            }" { (expression_statement "local_58 = uVar12;" (assignment_expression "local_58 = uVar12" identifier = identifier) ;) (expression_statement "uStack_54 = uVar10;" (assignment_expression "uStack_54 = uVar10" identifier = identifier) ;) (expression_statement "FUN_001a3810(param_4 + 0x38,&local_58);" (call_expression "FUN_001a3810(param_4 + 0x38,&local_58)" identifier (argument_list "(param_4 + 0x38,&local_58)" ( (binary_expression "param_4 + 0x38" identifier + number_literal) , (pointer_expression "&local_58" & identifier) ))) ;) })) (if_statement "if (uVar22 == 0xffffffff) {\n              uVar10 = 0xffff;\n            }\n            else {\n              local_58 = uVar22;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_5 + 0x38,&local_58);\n              uVar10 = 0xffff;\n            }" if (parenthesized_expression "(uVar22 == 0xffffffff)" ( (binary_expression "uVar22 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n              uVar10 = 0xffff;\n            }" { (expression_statement "uVar10 = 0xffff;" (assignment_expression "uVar10 = 0xffff" identifier = number_literal) ;) }) (else_clause "else {\n              local_58 = uVar22;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_5 + 0x38,&local_58);\n              uVar10 = 0xffff;\n            }" else (compound_statement "{\n              local_58 = uVar22;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_5 + 0x38,&local_58);\n              uVar10 = 0xffff;\n            }" { (expression_statement "local_58 = uVar22;" (assignment_expression "local_58 = uVar22" identifier = identifier) ;) (expression_statement "uStack_54 = uVar10;" (assignment_expression "uStack_54 = uVar10" identifier = identifier) ;) (expression_statement "FUN_001a3810(param_5 + 0x38,&local_58);" (call_expression "FUN_001a3810(param_5 + 0x38,&local_58)" identifier (argument_list "(param_5 + 0x38,&local_58)" ( (binary_expression "param_5 + 0x38" identifier + number_literal) , (pointer_expression "&local_58" & identifier) ))) ;) (expression_statement "uVar10 = 0xffff;" (assignment_expression "uVar10 = 0xffff" identifier = number_literal) ;) }))) })) (expression_statement "pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);" (assignment_expression "pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10)" identifier = (pointer_expression "*(code **)(PTR_DAT_0045c708 + 0x10)" * (cast_expression "(code **)(PTR_DAT_0045c708 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_0045c708 + 0x10)" ( (binary_expression "PTR_DAT_0045c708 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (pcVar13 == (code *)0x0) {\nLAB_0028c8d7:\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }" if (parenthesized_expression "(pcVar13 == (code *)0x0)" ( (binary_expression "pcVar13 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0028c8d7:\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }" { (labeled_statement "LAB_0028c8d7:\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");" statement_identifier : comment (expression_statement "FUN_0018ff20("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_0018ff20("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;)) })) (if_statement "if (pcVar13[0x5051] != (code)0x0) {\n            lVar15 = (**(code **)(*plVar17 + 0x48))(plVar17);\n            if (lVar15 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/symtab.cc",0xc81,"sized_write_globals");\n            }\n            if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/output.h",0xc5,"address");\n            }\n            pcVar13 = *(code **)(lVar15 + 8);\n            local_d0 = local_d0 + -(long)pcVar13;\n          }" if (parenthesized_expression "(pcVar13[0x5051] != (code)0x0)" ( (binary_expression "pcVar13[0x5051] != (code)0x0" (subscript_expression "pcVar13[0x5051]" identifier [ number_literal ]) != (cast_expression "(code)0x0" ( (type_descriptor "code" type_identifier) ) number_literal)) )) (compound_statement "{\n            lVar15 = (**(code **)(*plVar17 + 0x48))(plVar17);\n            if (lVar15 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/symtab.cc",0xc81,"sized_write_globals");\n            }\n            if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/output.h",0xc5,"address");\n            }\n            pcVar13 = *(code **)(lVar15 + 8);\n            local_d0 = local_d0 + -(long)pcVar13;\n          }" { (expression_statement "lVar15 = (**(code **)(*plVar17 + 0x48))(plVar17);" (assignment_expression "lVar15 = (**(code **)(*plVar17 + 0x48))(plVar17)" identifier = (call_expression "(**(code **)(*plVar17 + 0x48))(plVar17)" (parenthesized_expression "(**(code **)(*plVar17 + 0x48))" ( (pointer_expression "**(code **)(*plVar17 + 0x48)" * (pointer_expression "*(code **)(*plVar17 + 0x48)" * (cast_expression "(code **)(*plVar17 + 0x48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar17 + 0x48)" ( (binary_expression "*plVar17 + 0x48" (pointer_expression "*plVar17" * identifier) + number_literal) ))))) )) (argument_list "(plVar17)" ( identifier )))) ;) (if_statement "if (lVar15 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/symtab.cc",0xc81,"sized_write_globals");\n            }" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/symtab.cc",0xc81,"sized_write_globals");\n            }" { comment (expression_statement "FUN_0018ff20("../../gold/symtab.cc",0xc81,"sized_write_globals");" (call_expression "FUN_0018ff20("../../gold/symtab.cc",0xc81,"sized_write_globals")" identifier (argument_list "("../../gold/symtab.cc",0xc81,"sized_write_globals")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""sized_write_globals"" " string_content ") ))) ;) })) (if_statement "if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/output.h",0xc5,"address");\n            }" if (parenthesized_expression "((*(byte *)(lVar15 + 0x20) & 1) == 0)" ( (binary_expression "(*(byte *)(lVar15 + 0x20) & 1) == 0" (parenthesized_expression "(*(byte *)(lVar15 + 0x20) & 1)" ( (binary_expression "*(byte *)(lVar15 + 0x20) & 1" (pointer_expression "*(byte *)(lVar15 + 0x20)" * (cast_expression "(byte *)(lVar15 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x20)" ( (binary_expression "lVar15 + 0x20" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_0028c9b0:\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/output.h",0xc5,"address");\n            }" { (labeled_statement "LAB_0028c9b0:\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/output.h",0xc5,"address");" statement_identifier : comment (expression_statement "FUN_0018ff20("../../gold/output.h",0xc5,"address");" (call_expression "FUN_0018ff20("../../gold/output.h",0xc5,"address")" identifier (argument_list "("../../gold/output.h",0xc5,"address")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""address"" " string_content ") ))) ;)) })) (expression_statement "pcVar13 = *(code **)(lVar15 + 8);" (assignment_expression "pcVar13 = *(code **)(lVar15 + 8)" identifier = (pointer_expression "*(code **)(lVar15 + 8)" * (cast_expression "(code **)(lVar15 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar15 + 8)" ( (binary_expression "lVar15 + 8" identifier + number_literal) ))))) ;) (expression_statement "local_d0 = local_d0 + -(long)pcVar13;" (assignment_expression "local_d0 = local_d0 + -(long)pcVar13" identifier = (binary_expression "local_d0 + -(long)pcVar13" identifier + (unary_expression "-(long)pcVar13" - (cast_expression "(long)pcVar13" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)))) ;) })) (break_statement "break;" break ;)) (case_statement "case 2:\n          uVar10 = bVar8 & 7;\nLAB_0028c143:\n          if ((char)uVar10 != '\x02') {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.h",200,"output_segment");\n          }\n          pcVar13 = (code *)FUN_0020de20(puVar6[2]);\n          if (pcVar13 == (code *)0x0) goto switchD_0028bebe_caseD_3;\n          if (*(code **)(*(long *)pcVar13 + 0x58) == FUN_0019a160) {\n            uVar10 = *(uint *)(pcVar13 + 0x7c);\n            pcVar13 = (code *)(ulong)uVar10;\n            if (uVar10 == 0xffffffff) {\nLAB_0028ca38:\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx");\n            }\n          }\n          else {\n            pcVar13 = (code *)(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13);\n            uVar10 = (uint)pcVar13;\n          }\n          break;" case number_literal : (expression_statement "uVar10 = bVar8 & 7;" (assignment_expression "uVar10 = bVar8 & 7" identifier = (binary_expression "bVar8 & 7" identifier & number_literal)) ;) (labeled_statement "LAB_0028c143:\n          if ((char)uVar10 != '\x02') {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.h",200,"output_segment");\n          }" statement_identifier : (if_statement "if ((char)uVar10 != '\x02') {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.h",200,"output_segment");\n          }" if (parenthesized_expression "((char)uVar10 != '\x02')" ( (binary_expression "(char)uVar10 != '\x02'" (cast_expression "(char)uVar10" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.h",200,"output_segment");\n          }" { comment (expression_statement "FUN_0018ff20("../../gold/symtab.h",200,"output_segment");" (call_expression "FUN_0018ff20("../../gold/symtab.h",200,"output_segment")" identifier (argument_list "("../../gold/symtab.h",200,"output_segment")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""output_segment"" " string_content ") ))) ;) }))) (expression_statement "pcVar13 = (code *)FUN_0020de20(puVar6[2]);" (assignment_expression "pcVar13 = (code *)FUN_0020de20(puVar6[2])" identifier = (cast_expression "(code *)FUN_0020de20(puVar6[2])" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0020de20(puVar6[2])" identifier (argument_list "(puVar6[2])" ( (subscript_expression "puVar6[2]" identifier [ number_literal ]) ))))) ;) (if_statement "if (pcVar13 == (code *)0x0) goto switchD_0028bebe_caseD_3;" if (parenthesized_expression "(pcVar13 == (code *)0x0)" ( (binary_expression "pcVar13 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto switchD_0028bebe_caseD_3;" goto statement_identifier ;)) (if_statement "if (*(code **)(*(long *)pcVar13 + 0x58) == FUN_0019a160) {\n            uVar10 = *(uint *)(pcVar13 + 0x7c);\n            pcVar13 = (code *)(ulong)uVar10;\n            if (uVar10 == 0xffffffff) {\nLAB_0028ca38:\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx");\n            }\n          }\n          else {\n            pcVar13 = (code *)(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13);\n            uVar10 = (uint)pcVar13;\n          }" if (parenthesized_expression "(*(code **)(*(long *)pcVar13 + 0x58) == FUN_0019a160)" ( (binary_expression "*(code **)(*(long *)pcVar13 + 0x58) == FUN_0019a160" (pointer_expression "*(code **)(*(long *)pcVar13 + 0x58)" * (cast_expression "(code **)(*(long *)pcVar13 + 0x58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)pcVar13 + 0x58)" ( (binary_expression "*(long *)pcVar13 + 0x58" (pointer_expression "*(long *)pcVar13" * (cast_expression "(long *)pcVar13" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == identifier) )) (compound_statement "{\n            uVar10 = *(uint *)(pcVar13 + 0x7c);\n            pcVar13 = (code *)(ulong)uVar10;\n            if (uVar10 == 0xffffffff) {\nLAB_0028ca38:\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx");\n            }\n          }" { (expression_statement "uVar10 = *(uint *)(pcVar13 + 0x7c);" (assignment_expression "uVar10 = *(uint *)(pcVar13 + 0x7c)" identifier = (pointer_expression "*(uint *)(pcVar13 + 0x7c)" * (cast_expression "(uint *)(pcVar13 + 0x7c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x7c)" ( (binary_expression "pcVar13 + 0x7c" identifier + number_literal) ))))) ;) (expression_statement "pcVar13 = (code *)(ulong)uVar10;" (assignment_expression "pcVar13 = (code *)(ulong)uVar10" identifier = (cast_expression "(code *)(ulong)uVar10" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)uVar10" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) (if_statement "if (uVar10 == 0xffffffff) {\nLAB_0028ca38:\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx");\n            }" if (parenthesized_expression "(uVar10 == 0xffffffff)" ( (binary_expression "uVar10 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\nLAB_0028ca38:\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx");\n            }" { (labeled_statement "LAB_0028ca38:\n                    /* WARNING: Subroutine does not return */\n              FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx");" statement_identifier : comment (expression_statement "FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx");" (call_expression "FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx")" identifier (argument_list "("../../gold/output.h",0x1043,"do_out_shndx")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""do_out_shndx"" " string_content ") ))) ;)) })) }) (else_clause "else {\n            pcVar13 = (code *)(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13);\n            uVar10 = (uint)pcVar13;\n          }" else (compound_statement "{\n            pcVar13 = (code *)(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13);\n            uVar10 = (uint)pcVar13;\n          }" { (expression_statement "pcVar13 = (code *)(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13);" (assignment_expression "pcVar13 = (code *)(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13)" identifier = (cast_expression "(code *)(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13)" (parenthesized_expression "(**(code **)(*(long *)pcVar13 + 0x58))" ( (pointer_expression "**(code **)(*(long *)pcVar13 + 0x58)" * (pointer_expression "*(code **)(*(long *)pcVar13 + 0x58)" * (cast_expression "(code **)(*(long *)pcVar13 + 0x58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)pcVar13 + 0x58)" ( (binary_expression "*(long *)pcVar13 + 0x58" (pointer_expression "*(long *)pcVar13" * (cast_expression "(long *)pcVar13" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar13)" ( identifier ))))) ;) (expression_statement "uVar10 = (uint)pcVar13;" (assignment_expression "uVar10 = (uint)pcVar13" identifier = (cast_expression "(uint)pcVar13" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }))) (break_statement "break;" break ;)) (case_statement "case 3:\nswitchD_0028bebe_caseD_3:\n          uVar10 = 0xfff1;\n          break;" case number_literal : (labeled_statement "switchD_0028bebe_caseD_3:\n          uVar10 = 0xfff1;" statement_identifier : (expression_statement "uVar10 = 0xfff1;" (assignment_expression "uVar10 = 0xfff1" identifier = number_literal) ;)) (break_statement "break;" break ;)) (case_statement "case 4:\nswitchD_0028bebe_caseD_4:\n          uVar10 = 0;" case number_literal : (labeled_statement "switchD_0028bebe_caseD_4:\n          uVar10 = 0;" statement_identifier : (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;))) })) (labeled_statement "LAB_0028bf30:\n        if (uVar12 != 0xffffffff) {\n          uVar12 = uVar12 - iVar1;\n          if (uVar2 <= uVar12) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.cc",0xca1,"sized_write_globals");\n          }\n          pcVar13 = (code *)FUN_00289ee0(param_1,puVar6,local_d0,uVar10,uVar11,param_2,\n                                         (ulong)(uVar12 * 0x18) + local_98);\n        }" statement_identifier : (if_statement "if (uVar12 != 0xffffffff) {\n          uVar12 = uVar12 - iVar1;\n          if (uVar2 <= uVar12) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.cc",0xca1,"sized_write_globals");\n          }\n          pcVar13 = (code *)FUN_00289ee0(param_1,puVar6,local_d0,uVar10,uVar11,param_2,\n                                         (ulong)(uVar12 * 0x18) + local_98);\n        }" if (parenthesized_expression "(uVar12 != 0xffffffff)" ( (binary_expression "uVar12 != 0xffffffff" identifier != number_literal) )) (compound_statement "{\n          uVar12 = uVar12 - iVar1;\n          if (uVar2 <= uVar12) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.cc",0xca1,"sized_write_globals");\n          }\n          pcVar13 = (code *)FUN_00289ee0(param_1,puVar6,local_d0,uVar10,uVar11,param_2,\n                                         (ulong)(uVar12 * 0x18) + local_98);\n        }" { (expression_statement "uVar12 = uVar12 - iVar1;" (assignment_expression "uVar12 = uVar12 - iVar1" identifier = (binary_expression "uVar12 - iVar1" identifier - identifier)) ;) (if_statement "if (uVar2 <= uVar12) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.cc",0xca1,"sized_write_globals");\n          }" if (parenthesized_expression "(uVar2 <= uVar12)" ( (binary_expression "uVar2 <= uVar12" identifier <= identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.cc",0xca1,"sized_write_globals");\n          }" { comment (expression_statement "FUN_0018ff20("../../gold/symtab.cc",0xca1,"sized_write_globals");" (call_expression "FUN_0018ff20("../../gold/symtab.cc",0xca1,"sized_write_globals")" identifier (argument_list "("../../gold/symtab.cc",0xca1,"sized_write_globals")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""sized_write_globals"" " string_content ") ))) ;) })) (expression_statement "pcVar13 = (code *)FUN_00289ee0(param_1,puVar6,local_d0,uVar10,uVar11,param_2,\n                                         (ulong)(uVar12 * 0x18) + local_98);" (assignment_expression "pcVar13 = (code *)FUN_00289ee0(param_1,puVar6,local_d0,uVar10,uVar11,param_2,\n                                         (ulong)(uVar12 * 0x18) + local_98)" identifier = (cast_expression "(code *)FUN_00289ee0(param_1,puVar6,local_d0,uVar10,uVar11,param_2,\n                                         (ulong)(uVar12 * 0x18) + local_98)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00289ee0(param_1,puVar6,local_d0,uVar10,uVar11,param_2,\n                                         (ulong)(uVar12 * 0x18) + local_98)" identifier (argument_list "(param_1,puVar6,local_d0,uVar10,uVar11,param_2,\n                                         (ulong)(uVar12 * 0x18) + local_98)" ( identifier , identifier , identifier , identifier , identifier , identifier , (binary_expression "(ulong)(uVar12 * 0x18) + local_98" (call_expression "(ulong)(uVar12 * 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar12 * 0x18)" ( (binary_expression "uVar12 * 0x18" identifier * number_literal) ))) + identifier) ))))) ;) }))) (if_statement "if (uVar22 != 0xffffffff) {\n          uVar22 = uVar22 - iVar3;\n          if (uVar4 <= uVar22) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.cc",0xcaa,"sized_write_globals");\n          }\n          FUN_00289ee0(param_1,puVar6,pcVar14,uVar10,uVar11,param_3);\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          pcVar13 = *(code **)(*plVar17 + 0x138);\n          if (pcVar13 != FUN_00172ba0) {\n            pcVar13 = (code *)(*pcVar13)(plVar17,puVar6,local_c0 + uVar22 * 0x18);\n          }\n        }" if (parenthesized_expression "(uVar22 != 0xffffffff)" ( (binary_expression "uVar22 != 0xffffffff" identifier != number_literal) )) (compound_statement "{\n          uVar22 = uVar22 - iVar3;\n          if (uVar4 <= uVar22) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.cc",0xcaa,"sized_write_globals");\n          }\n          FUN_00289ee0(param_1,puVar6,pcVar14,uVar10,uVar11,param_3);\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          pcVar13 = *(code **)(*plVar17 + 0x138);\n          if (pcVar13 != FUN_00172ba0) {\n            pcVar13 = (code *)(*pcVar13)(plVar17,puVar6,local_c0 + uVar22 * 0x18);\n          }\n        }" { (expression_statement "uVar22 = uVar22 - iVar3;" (assignment_expression "uVar22 = uVar22 - iVar3" identifier = (binary_expression "uVar22 - iVar3" identifier - identifier)) ;) (if_statement "if (uVar4 <= uVar22) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.cc",0xcaa,"sized_write_globals");\n          }" if (parenthesized_expression "(uVar4 <= uVar22)" ( (binary_expression "uVar4 <= uVar22" identifier <= identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            FUN_0018ff20("../../gold/symtab.cc",0xcaa,"sized_write_globals");\n          }" { comment (expression_statement "FUN_0018ff20("../../gold/symtab.cc",0xcaa,"sized_write_globals");" (call_expression "FUN_0018ff20("../../gold/symtab.cc",0xcaa,"sized_write_globals")" identifier (argument_list "("../../gold/symtab.cc",0xcaa,"sized_write_globals")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""sized_write_globals"" " string_content ") ))) ;) })) (expression_statement "FUN_00289ee0(param_1,puVar6,pcVar14,uVar10,uVar11,param_3);" (call_expression "FUN_00289ee0(param_1,puVar6,pcVar14,uVar10,uVar11,param_3)" identifier (argument_list "(param_1,puVar6,pcVar14,uVar10,uVar11,param_3)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);" (assignment_expression "plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18)" identifier = (pointer_expression "*(long **)(PTR_DAT_0045c708 + 0x18)" * (cast_expression "(long **)(PTR_DAT_0045c708 + 0x18)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_0045c708 + 0x18)" ( (binary_expression "PTR_DAT_0045c708 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (plVar17 == (long *)0x0) goto LAB_0028c91f;" if (parenthesized_expression "(plVar17 == (long *)0x0)" ( (binary_expression "plVar17 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0028c91f;" goto statement_identifier ;)) (expression_statement "pcVar13 = *(code **)(*plVar17 + 0x138);" (assignment_expression "pcVar13 = *(code **)(*plVar17 + 0x138)" identifier = (pointer_expression "*(code **)(*plVar17 + 0x138)" * (cast_expression "(code **)(*plVar17 + 0x138)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar17 + 0x138)" ( (binary_expression "*plVar17 + 0x138" (pointer_expression "*plVar17" * identifier) + number_literal) ))))) ;) (if_statement "if (pcVar13 != FUN_00172ba0) {\n            pcVar13 = (code *)(*pcVar13)(plVar17,puVar6,local_c0 + uVar22 * 0x18);\n          }" if (parenthesized_expression "(pcVar13 != FUN_00172ba0)" ( (binary_expression "pcVar13 != FUN_00172ba0" identifier != identifier) )) (compound_statement "{\n            pcVar13 = (code *)(*pcVar13)(plVar17,puVar6,local_c0 + uVar22 * 0x18);\n          }" { (expression_statement "pcVar13 = (code *)(*pcVar13)(plVar17,puVar6,local_c0 + uVar22 * 0x18);" (assignment_expression "pcVar13 = (code *)(*pcVar13)(plVar17,puVar6,local_c0 + uVar22 * 0x18)" identifier = (cast_expression "(code *)(*pcVar13)(plVar17,puVar6,local_c0 + uVar22 * 0x18)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar13)(plVar17,puVar6,local_c0 + uVar22 * 0x18)" (parenthesized_expression "(*pcVar13)" ( (pointer_expression "*pcVar13" * identifier) )) (argument_list "(plVar17,puVar6,local_c0 + uVar22 * 0x18)" ( identifier , identifier , (binary_expression "local_c0 + uVar22 * 0x18" identifier + (binary_expression "uVar22 * 0x18" identifier * number_literal)) ))))) ;) })) })) })) (expression_statement "plVar24 = (long *)*plVar24;" (assignment_expression "plVar24 = (long *)*plVar24" identifier = (cast_expression "(long *)*plVar24" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar24" * identifier))) ;) }) while (parenthesized_expression "(plVar24 != (long *)0x0)" ( (binary_expression "plVar24 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "plVar23 = *(long **)(param_1 + 0x2a0);" (assignment_expression "plVar23 = *(long **)(param_1 + 0x2a0)" identifier = (pointer_expression "*(long **)(param_1 + 0x2a0)" * (cast_expression "(long **)(param_1 + 0x2a0)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x2a0)" ( (binary_expression "param_1 + 0x2a0" identifier + number_literal) ))))) ;) (if_statement "if (plVar23 == *(long **)(param_1 + 0x2a8)) {\n    return pcVar13;\n  }" if (parenthesized_expression "(plVar23 == *(long **)(param_1 + 0x2a8))" ( (binary_expression "plVar23 == *(long **)(param_1 + 0x2a8)" identifier == (pointer_expression "*(long **)(param_1 + 0x2a8)" * (cast_expression "(long **)(param_1 + 0x2a8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) ))))) )) (compound_statement "{\n    return pcVar13;\n  }" { (return_statement "return pcVar13;" return identifier ;) })) (expression_statement "lVar20 = *plVar23;" (assignment_expression "lVar20 = *plVar23" identifier = (pointer_expression "*plVar23" * identifier)) ;) (expression_statement "iVar5 = *(int *)(lVar20 + 0x1c);" (assignment_expression "iVar5 = *(int *)(lVar20 + 0x1c)" identifier = (pointer_expression "*(int *)(lVar20 + 0x1c)" * (cast_expression "(int *)(lVar20 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar20 + 0x1c)" ( (binary_expression "lVar20 + 0x1c" identifier + number_literal) ))))) ;) (while_statement "while (iVar5 != 0) {\n    plVar23 = plVar23 + 1;\n    if (local_c0 == (code *)0x0) {\n      iVar21 = -1;\n    }\n    else {\n      iVar21 = *(int *)(lVar20 + 0x20);\n      if (iVar21 == 0) {\nLAB_0028c898:\n                    /* WARNING: Subroutine does not return */\n        FUN_0018ff20("../../gold/symtab.h",0x19a,"dynsym_index");\n      }\n    }\n    uVar12 = *(byte *)(lVar20 + 0x3a) & 7;\n    pcVar13 = (code *)(ulong)uVar12;\n    cVar9 = (char)uVar12;\n    if (cVar9 == '\x03') {\n      uVar25 = 0xfff1;\n    }\n    else {\n      if (cVar9 != '\x04') {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018ff20("../../gold/symtab.cc",0xccb,"sized_write_globals");\n      }\n      uVar25 = 0;\n    }\n    if (iVar5 != -1) {\n      uVar12 = iVar5 - iVar1;\n      if (uVar2 <= uVar12) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018ff20("../../gold/symtab.cc",0xcd1,"sized_write_globals");\n      }\n      pcVar13 = (code *)FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                                     *(byte *)(lVar20 + 0x38) >> 4,param_2,\n                                     (ulong)(uVar12 * 0x18) + local_98);\n    }\n    if (iVar21 != -1) {\n      uVar12 = iVar21 - iVar3;\n      if (uVar4 <= uVar12) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018ff20("../../gold/symtab.cc",0xcdb,"sized_write_globals");\n      }\n      pcVar13 = local_c0 + uVar12 * 0x18;\n      FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                   *(byte *)(lVar20 + 0x38) >> 4,param_3);\n    }\n    if (*(long **)(param_1 + 0x2a8) == plVar23) {\n      return pcVar13;\n    }\n    lVar20 = *plVar23;\n    iVar5 = *(int *)(lVar20 + 0x1c);\n  }" while (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n    plVar23 = plVar23 + 1;\n    if (local_c0 == (code *)0x0) {\n      iVar21 = -1;\n    }\n    else {\n      iVar21 = *(int *)(lVar20 + 0x20);\n      if (iVar21 == 0) {\nLAB_0028c898:\n                    /* WARNING: Subroutine does not return */\n        FUN_0018ff20("../../gold/symtab.h",0x19a,"dynsym_index");\n      }\n    }\n    uVar12 = *(byte *)(lVar20 + 0x3a) & 7;\n    pcVar13 = (code *)(ulong)uVar12;\n    cVar9 = (char)uVar12;\n    if (cVar9 == '\x03') {\n      uVar25 = 0xfff1;\n    }\n    else {\n      if (cVar9 != '\x04') {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018ff20("../../gold/symtab.cc",0xccb,"sized_write_globals");\n      }\n      uVar25 = 0;\n    }\n    if (iVar5 != -1) {\n      uVar12 = iVar5 - iVar1;\n      if (uVar2 <= uVar12) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018ff20("../../gold/symtab.cc",0xcd1,"sized_write_globals");\n      }\n      pcVar13 = (code *)FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                                     *(byte *)(lVar20 + 0x38) >> 4,param_2,\n                                     (ulong)(uVar12 * 0x18) + local_98);\n    }\n    if (iVar21 != -1) {\n      uVar12 = iVar21 - iVar3;\n      if (uVar4 <= uVar12) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018ff20("../../gold/symtab.cc",0xcdb,"sized_write_globals");\n      }\n      pcVar13 = local_c0 + uVar12 * 0x18;\n      FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                   *(byte *)(lVar20 + 0x38) >> 4,param_3);\n    }\n    if (*(long **)(param_1 + 0x2a8) == plVar23) {\n      return pcVar13;\n    }\n    lVar20 = *plVar23;\n    iVar5 = *(int *)(lVar20 + 0x1c);\n  }" { (expression_statement "plVar23 = plVar23 + 1;" (assignment_expression "plVar23 = plVar23 + 1" identifier = (binary_expression "plVar23 + 1" identifier + number_literal)) ;) (if_statement "if (local_c0 == (code *)0x0) {\n      iVar21 = -1;\n    }\n    else {\n      iVar21 = *(int *)(lVar20 + 0x20);\n      if (iVar21 == 0) {\nLAB_0028c898:\n                    /* WARNING: Subroutine does not return */\n        FUN_0018ff20("../../gold/symtab.h",0x19a,"dynsym_index");\n      }\n    }" if (parenthesized_expression "(local_c0 == (code *)0x0)" ( (binary_expression "local_c0 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar21 = -1;\n    }" { (expression_statement "iVar21 = -1;" (assignment_expression "iVar21 = -1" identifier = number_literal) ;) }) (else_clause "else {\n      iVar21 = *(int *)(lVar20 + 0x20);\n      if (iVar21 == 0) {\nLAB_0028c898:\n                    /* WARNING: Subroutine does not return */\n        FUN_0018ff20("../../gold/symtab.h",0x19a,"dynsym_index");\n      }\n    }" else (compound_statement "{\n      iVar21 = *(int *)(lVar20 + 0x20);\n      if (iVar21 == 0) {\nLAB_0028c898:\n                    /* WARNING: Subroutine does not return */\n        FUN_0018ff20("../../gold/symtab.h",0x19a,"dynsym_index");\n      }\n    }" { (expression_statement "iVar21 = *(int *)(lVar20 + 0x20);" (assignment_expression "iVar21 = *(int *)(lVar20 + 0x20)" identifier = (pointer_expression "*(int *)(lVar20 + 0x20)" * (cast_expression "(int *)(lVar20 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar20 + 0x20)" ( (binary_expression "lVar20 + 0x20" identifier + number_literal) ))))) ;) (if_statement "if (iVar21 == 0) {\nLAB_0028c898:\n                    /* WARNING: Subroutine does not return */\n        FUN_0018ff20("../../gold/symtab.h",0x19a,"dynsym_index");\n      }" if (parenthesized_expression "(iVar21 == 0)" ( (binary_expression "iVar21 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0028c898:\n                    /* WARNING: Subroutine does not return */\n        FUN_0018ff20("../../gold/symtab.h",0x19a,"dynsym_index");\n      }" { (labeled_statement "LAB_0028c898:\n                    /* WARNING: Subroutine does not return */\n        FUN_0018ff20("../../gold/symtab.h",0x19a,"dynsym_index");" statement_identifier : comment (expression_statement "FUN_0018ff20("../../gold/symtab.h",0x19a,"dynsym_index");" (call_expression "FUN_0018ff20("../../gold/symtab.h",0x19a,"dynsym_index")" identifier (argument_list "("../../gold/symtab.h",0x19a,"dynsym_index")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""dynsym_index"" " string_content ") ))) ;)) })) }))) (expression_statement "uVar12 = *(byte *)(lVar20 + 0x3a) & 7;" (assignment_expression "uVar12 = *(byte *)(lVar20 + 0x3a) & 7" identifier = (binary_expression "*(byte *)(lVar20 + 0x3a) & 7" (pointer_expression "*(byte *)(lVar20 + 0x3a)" * (cast_expression "(byte *)(lVar20 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar20 + 0x3a)" ( (binary_expression "lVar20 + 0x3a" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "pcVar13 = (code *)(ulong)uVar12;" (assignment_expression "pcVar13 = (code *)(ulong)uVar12" identifier = (cast_expression "(code *)(ulong)uVar12" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)uVar12" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) (expression_statement "cVar9 = (char)uVar12;" (assignment_expression "cVar9 = (char)uVar12" identifier = (cast_expression "(char)uVar12" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (cVar9 == '\x03') {\n      uVar25 = 0xfff1;\n    }\n    else {\n      if (cVar9 != '\x04') {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018ff20("../../gold/symtab.cc",0xccb,"sized_write_globals");\n      }\n      uVar25 = 0;\n    }" if (parenthesized_expression "(cVar9 == '\x03')" ( (binary_expression "cVar9 == '\x03'" identifier == (char_literal "'\x03'" ' escape_sequence ')) )) (compound_statement "{\n      uVar25 = 0xfff1;\n    }" { (expression_statement "uVar25 = 0xfff1;" (assignment_expression "uVar25 = 0xfff1" identifier = number_literal) ;) }) (else_clause "else {\n      if (cVar9 != '\x04') {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018ff20("../../gold/symtab.cc",0xccb,"sized_write_globals");\n      }\n      uVar25 = 0;\n    }" else (compound_statement "{\n      if (cVar9 != '\x04') {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018ff20("../../gold/symtab.cc",0xccb,"sized_write_globals");\n      }\n      uVar25 = 0;\n    }" { (if_statement "if (cVar9 != '\x04') {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018ff20("../../gold/symtab.cc",0xccb,"sized_write_globals");\n      }" if (parenthesized_expression "(cVar9 != '\x04')" ( (binary_expression "cVar9 != '\x04'" identifier != (char_literal "'\x04'" ' escape_sequence ')) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_0018ff20("../../gold/symtab.cc",0xccb,"sized_write_globals");\n      }" { comment (expression_statement "FUN_0018ff20("../../gold/symtab.cc",0xccb,"sized_write_globals");" (call_expression "FUN_0018ff20("../../gold/symtab.cc",0xccb,"sized_write_globals")" identifier (argument_list "("../../gold/symtab.cc",0xccb,"sized_write_globals")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""sized_write_globals"" " string_content ") ))) ;) })) (expression_statement "uVar25 = 0;" (assignment_expression "uVar25 = 0" identifier = number_literal) ;) }))) (if_statement "if (iVar5 != -1) {\n      uVar12 = iVar5 - iVar1;\n      if (uVar2 <= uVar12) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018ff20("../../gold/symtab.cc",0xcd1,"sized_write_globals");\n      }\n      pcVar13 = (code *)FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                                     *(byte *)(lVar20 + 0x38) >> 4,param_2,\n                                     (ulong)(uVar12 * 0x18) + local_98);\n    }" if (parenthesized_expression "(iVar5 != -1)" ( (binary_expression "iVar5 != -1" identifier != number_literal) )) (compound_statement "{\n      uVar12 = iVar5 - iVar1;\n      if (uVar2 <= uVar12) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018ff20("../../gold/symtab.cc",0xcd1,"sized_write_globals");\n      }\n      pcVar13 = (code *)FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                                     *(byte *)(lVar20 + 0x38) >> 4,param_2,\n                                     (ulong)(uVar12 * 0x18) + local_98);\n    }" { (expression_statement "uVar12 = iVar5 - iVar1;" (assignment_expression "uVar12 = iVar5 - iVar1" identifier = (binary_expression "iVar5 - iVar1" identifier - identifier)) ;) (if_statement "if (uVar2 <= uVar12) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018ff20("../../gold/symtab.cc",0xcd1,"sized_write_globals");\n      }" if (parenthesized_expression "(uVar2 <= uVar12)" ( (binary_expression "uVar2 <= uVar12" identifier <= identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_0018ff20("../../gold/symtab.cc",0xcd1,"sized_write_globals");\n      }" { comment (expression_statement "FUN_0018ff20("../../gold/symtab.cc",0xcd1,"sized_write_globals");" (call_expression "FUN_0018ff20("../../gold/symtab.cc",0xcd1,"sized_write_globals")" identifier (argument_list "("../../gold/symtab.cc",0xcd1,"sized_write_globals")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""sized_write_globals"" " string_content ") ))) ;) })) (expression_statement "pcVar13 = (code *)FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                                     *(byte *)(lVar20 + 0x38) >> 4,param_2,\n                                     (ulong)(uVar12 * 0x18) + local_98);" (assignment_expression "pcVar13 = (code *)FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                                     *(byte *)(lVar20 + 0x38) >> 4,param_2,\n                                     (ulong)(uVar12 * 0x18) + local_98)" identifier = (cast_expression "(code *)FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                                     *(byte *)(lVar20 + 0x38) >> 4,param_2,\n                                     (ulong)(uVar12 * 0x18) + local_98)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                                     *(byte *)(lVar20 + 0x38) >> 4,param_2,\n                                     (ulong)(uVar12 * 0x18) + local_98)" identifier (argument_list "(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                                     *(byte *)(lVar20 + 0x38) >> 4,param_2,\n                                     (ulong)(uVar12 * 0x18) + local_98)" ( identifier , identifier , (pointer_expression "*(undefined8 *)(lVar20 + 0x40)" * (cast_expression "(undefined8 *)(lVar20 + 0x40)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar20 + 0x40)" ( (binary_expression "lVar20 + 0x40" identifier + number_literal) )))) , identifier , (binary_expression "*(byte *)(lVar20 + 0x38) >> 4" (pointer_expression "*(byte *)(lVar20 + 0x38)" * (cast_expression "(byte *)(lVar20 + 0x38)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar20 + 0x38)" ( (binary_expression "lVar20 + 0x38" identifier + number_literal) )))) >> number_literal) , identifier , (binary_expression "(ulong)(uVar12 * 0x18) + local_98" (call_expression "(ulong)(uVar12 * 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar12 * 0x18)" ( (binary_expression "uVar12 * 0x18" identifier * number_literal) ))) + identifier) ))))) ;) })) (if_statement "if (iVar21 != -1) {\n      uVar12 = iVar21 - iVar3;\n      if (uVar4 <= uVar12) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018ff20("../../gold/symtab.cc",0xcdb,"sized_write_globals");\n      }\n      pcVar13 = local_c0 + uVar12 * 0x18;\n      FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                   *(byte *)(lVar20 + 0x38) >> 4,param_3);\n    }" if (parenthesized_expression "(iVar21 != -1)" ( (binary_expression "iVar21 != -1" identifier != number_literal) )) (compound_statement "{\n      uVar12 = iVar21 - iVar3;\n      if (uVar4 <= uVar12) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018ff20("../../gold/symtab.cc",0xcdb,"sized_write_globals");\n      }\n      pcVar13 = local_c0 + uVar12 * 0x18;\n      FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                   *(byte *)(lVar20 + 0x38) >> 4,param_3);\n    }" { (expression_statement "uVar12 = iVar21 - iVar3;" (assignment_expression "uVar12 = iVar21 - iVar3" identifier = (binary_expression "iVar21 - iVar3" identifier - identifier)) ;) (if_statement "if (uVar4 <= uVar12) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018ff20("../../gold/symtab.cc",0xcdb,"sized_write_globals");\n      }" if (parenthesized_expression "(uVar4 <= uVar12)" ( (binary_expression "uVar4 <= uVar12" identifier <= identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_0018ff20("../../gold/symtab.cc",0xcdb,"sized_write_globals");\n      }" { comment (expression_statement "FUN_0018ff20("../../gold/symtab.cc",0xcdb,"sized_write_globals");" (call_expression "FUN_0018ff20("../../gold/symtab.cc",0xcdb,"sized_write_globals")" identifier (argument_list "("../../gold/symtab.cc",0xcdb,"sized_write_globals")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""sized_write_globals"" " string_content ") ))) ;) })) (expression_statement "pcVar13 = local_c0 + uVar12 * 0x18;" (assignment_expression "pcVar13 = local_c0 + uVar12 * 0x18" identifier = (binary_expression "local_c0 + uVar12 * 0x18" identifier + (binary_expression "uVar12 * 0x18" identifier * number_literal))) ;) (expression_statement "FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                   *(byte *)(lVar20 + 0x38) >> 4,param_3);" (call_expression "FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                   *(byte *)(lVar20 + 0x38) >> 4,param_3)" identifier (argument_list "(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                   *(byte *)(lVar20 + 0x38) >> 4,param_3)" ( identifier , identifier , (pointer_expression "*(undefined8 *)(lVar20 + 0x40)" * (cast_expression "(undefined8 *)(lVar20 + 0x40)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar20 + 0x40)" ( (binary_expression "lVar20 + 0x40" identifier + number_literal) )))) , identifier , (binary_expression "*(byte *)(lVar20 + 0x38) >> 4" (pointer_expression "*(byte *)(lVar20 + 0x38)" * (cast_expression "(byte *)(lVar20 + 0x38)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar20 + 0x38)" ( (binary_expression "lVar20 + 0x38" identifier + number_literal) )))) >> number_literal) , identifier ))) ;) })) (if_statement "if (*(long **)(param_1 + 0x2a8) == plVar23) {\n      return pcVar13;\n    }" if (parenthesized_expression "(*(long **)(param_1 + 0x2a8) == plVar23)" ( (binary_expression "*(long **)(param_1 + 0x2a8) == plVar23" (pointer_expression "*(long **)(param_1 + 0x2a8)" * (cast_expression "(long **)(param_1 + 0x2a8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n      return pcVar13;\n    }" { (return_statement "return pcVar13;" return identifier ;) })) (expression_statement "lVar20 = *plVar23;" (assignment_expression "lVar20 = *plVar23" identifier = (pointer_expression "*plVar23" * identifier)) ;) (expression_statement "iVar5 = *(int *)(lVar20 + 0x1c);" (assignment_expression "iVar5 = *(int *)(lVar20 + 0x1c)" identifier = (pointer_expression "*(int *)(lVar20 + 0x1c)" * (cast_expression "(int *)(lVar20 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar20 + 0x1c)" ( (binary_expression "lVar20 + 0x1c" identifier + number_literal) ))))) ;) })) (labeled_statement "LAB_0028c880:\n                    /* WARNING: Subroutine does not return */\n  FUN_0018ff20("../../gold/symtab.h",0x180,"symtab_index");" statement_identifier : comment (expression_statement "FUN_0018ff20("../../gold/symtab.h",0x180,"symtab_index");" (call_expression "FUN_0018ff20("../../gold/symtab.h",0x180,"symtab_index")" identifier (argument_list "("../../gold/symtab.h",0x180,"symtab_index")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""symtab_index"" " string_content ") ))) ;)) })))
(translation_unit "/* WARNING: Enum "DT": Some values do not have unique names */\n/* WARNING: Enum "ELFOSABI": Some values do not have unique names */\n/* WARNING: Enum "STB": Some values do not have unique names */\n/* DWARF original name: sized_write_globals<64, false>\n   DWARF original prototype: void sized_write_globals<64,_false>(Symbol_table * this, Stringpool *\n   sympool, Stringpool * dynpool, Output_symtab_xindex * symtab_xindex, Output_symtab_xindex *\n   dynsym_xindex, Output_file * of) */\n\nvoid __thiscall\ngold::Symbol_table::sized_write_globals<64,_false>\n          (Symbol_table *this,Stringpool *sympool,Stringpool *dynpool,\n          Output_symtab_xindex *symtab_xindex,Output_symtab_xindex *dynsym_xindex,Output_file *of)\n\n{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  Target *pTVar5;\n  Sized_symbol<64> *pSVar6;\n  Target *pTVar7;\n  General_options *pGVar8;\n  _func_int_varargs *p_Var9;\n  Object *pOVar10;\n  Output_data *pOVar11;\n  pointer ppOVar12;\n  pointer ppOVar13;\n  undefined8 uVar14;\n  byte bVar15;\n  byte bVar16;\n  bool bVar17;\n  uint uVar18;\n  int iVar19;\n  Output_segment *pOVar20;\n  Value_type VVar21;\n  Output_section *pOVar22;\n  undefined4 extraout_var_00;\n  long lVar23;\n  char *format;\n  Relobj *pRVar24;\n  undefined4 extraout_var_01;\n  ulong uVar25;\n  uint uVar26;\n  long lVar27;\n  Stringpool *pSVar28;\n  STB binding;\n  uint uVar29;\n  pointer ppSVar30;\n  _Hash_node_base *p_Var31;\n  Section_id SVar32;\n  Elf_Addr local_d0;\n  uchar *local_c0;\n  uchar *local_98;\n  string local_58;\n  undefined4 extraout_var;\n  \n  pTVar5 = parameters->target_;\n  if (pTVar5 == (Target *)0x0) {\nLAB_0028c91f:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n  }\n  uVar1 = this->first_global_index_;\n  uVar2 = this->output_count_;\n  uVar25 = (ulong)uVar2;\n  lVar27 = this->offset_;\n  pSVar28 = dynpool;\n  if ((uVar2 == 0) || (lVar27 == 0)) {\n    local_98 = (uchar *)0x0;\n  }\n  else {\n    if ((lVar27 < 0) ||\n       (pSVar28 = (Stringpool *)((ulong)(uVar2 * 0x18) + lVar27), of->file_size_ < (long)pSVar28))\n    goto LAB_0028c9c8;\n    local_98 = of->base_ + lVar27;\n  }\n  uVar3 = this->first_dynamic_global_index_;\n  uVar4 = this->dynamic_count_;\n  uVar25 = (ulong)uVar4;\n  lVar27 = this->dynamic_offset_;\n  if ((lVar27 == 0) || (uVar4 == 0)) {\n    local_c0 = (uchar *)0x0;\n  }\n  else {\n    if ((lVar27 < 0) ||\n       (pSVar28 = (Stringpool *)((ulong)(uVar4 * 0x18) + lVar27), of->file_size_ < (long)pSVar28)) {\nLAB_0028c9c8:\n      Output_file::get_output_view\n                ((Output_file *)this,uVar25,(size_t)pSVar28,(Output_file *)symtab_xindex);\nLAB_0028c9cd:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/symtab.cc",0xc59,"sized_write_globals");\n    }\n    local_c0 = of->base_ + lVar27;\n  }\n  p_Var31 = (this->table_)._M_h._M_before_begin._M_nxt;\n  if (p_Var31 != (_Hash_node_base *)0x0) {\n    lVar27 = (long)DAT_003a0b74;\n    do {\n      pSVar6 = (Sized_symbol<64> *)p_Var31[3]._M_nxt;\n      if ((((((pSVar6->super_Symbol).field_0x3a & 7) == 0) &&\n           (pOVar20 = (pSVar6->super_Symbol).u1_.output_segment,\n           ((ulong)pOVar20->output_lists_[2].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl._M_finish & 0x100000000) != 0)) &&\n          ((pSVar6->super_Symbol).u2_.shndx == 0)) &&\n         ((byte)(pSVar6->super_Symbol).field_0x38 >> 4 != 2)) {\n        if (parameters->options_ == (General_options *)0x0) goto LAB_0028c8d7;\n        if ((parameters->options_->allow_shlib_undefined_).value == false) {\n          pTVar7 = parameters->target_;\n          if (pTVar7 == (Target *)0x0) goto LAB_0028c91f;\n          if (pTVar7->_vptr_Target[7] != Target::do_is_defined_by_abi) {\n            iVar19 = (*pTVar7->_vptr_Target[7])(pTVar7,pSVar6);\n            if ((char)iVar19 != '\0') goto LAB_0028be18;\n            if (((pSVar6->super_Symbol).field_0x3a & 7) != 0) goto LAB_0028c752;\n            pOVar20 = (pSVar6->super_Symbol).u1_.output_segment;\n          }\n          if (((ulong)pOVar20->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish & 0x2000000000) == 0) {\n            iVar19 = *(int *)&pOVar20->output_lists_[5].\n                              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                              ._M_impl._M_end_of_storage;\n            if (iVar19 == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }\n            if (iVar19 != 1) {\n              gold_undefined_symbol((Symbol *)pSVar6);\n            }\n          }\n        }\n      }\nLAB_0028be18:\n      uVar26 = (pSVar6->super_Symbol).symtab_index_;\n      if (uVar26 == 0) goto LAB_0028c880;\n      if (local_c0 == (uchar *)0x0) {\n        uVar29 = 0xffffffff;\n        uVar18 = uVar26;\n      }\n      else {\n        uVar29 = (pSVar6->super_Symbol).dynsym_index_;\n        if (uVar29 == 0) goto LAB_0028c898;\n        uVar18 = uVar26 & uVar29;\n      }\n      if (uVar18 != 0xffffffff) {\n        local_d0 = pSVar6->value_;\n        binding = (STB)((byte)(pSVar6->super_Symbol).field_0x38 >> 4);\n        pGVar8 = parameters->options_;\n        if (pGVar8 == (General_options *)0x0) goto LAB_0028c8d7;\n        bVar16 = (pSVar6->super_Symbol).field_0x3a;\n        bVar15 = bVar16 & 7;\n        VVar21 = local_d0;\n        if (((pGVar8->weak_unresolved_symbols_).value == false) || (binding != STB_GLOBAL)) {\n          if ((binding == STB_GNU_UNIQUE) && ((pGVar8->gnu_unique_).value == false)) {\n            binding = STB_GLOBAL;\n          }\n          switch(bVar15) {\n          case 0:\n            if ((bVar16 & 7) != 0) goto switchD_0028c5a7_caseD_0;\n            uVar18 = (pSVar6->super_Symbol).u2_.shndx;\n            bVar16 = (byte)(pSVar6->super_Symbol).field_0x3b >> 5;\n            if (((bVar16 & 1) != 1) && (uVar18 != 0xfff1)) {\n              bVar17 = Symbol::is_common_shndx(uVar18);\n              if (!bVar17) {\n                demangle(&local_58,(pSVar6->super_Symbol).name_);\n                uVar14 = CONCAT44(local_58._M_dataplus._M_p._4_4_,(uint)local_58._M_dataplus._M_p);\n                format = (char *)gettext("%s: unsupported symbol section 0x%x");\n                    /* try { // try from 0028c69d to 0028c6a1 has its CatchHandler @ 0028ca50 */\n                gold_error(format,uVar14,(ulong)uVar18);\n                if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)CONCAT44(local_58._M_dataplus._M_p._4_4_,(uint)local_58._M_dataplus._M_p) !=\n                    &local_58.field_2) {\n                  operator_delete((undefined1 *)\n                                  CONCAT44(local_58._M_dataplus._M_p._4_4_,\n                                           (uint)local_58._M_dataplus._M_p));\n                }\n                break;\n              }\n              if (((pSVar6->super_Symbol).field_0x3a & 7) != 0) {\nLAB_0028c752:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n              }\n            }\n            pOVar20 = (pSVar6->super_Symbol).u1_.output_segment;\n            if (((ulong)pOVar20->output_lists_[2].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_finish & 0x100000000) == 0) {\n              lVar23 = (*(code *)pOVar20->output_lists_[0].\n                                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                 ._M_impl._M_start[5])(pOVar20);\n              if ((lVar23 != 0) || (uVar18 == 0)) goto switchD_0028bebe_caseD_4;\n              if (((bVar16 & 1) != 0) ||\n                 ((uVar18 != 0xfff1 && (bVar17 = Symbol::is_common_shndx(uVar18), !bVar17)))) {\n                uVar25 = (ulong)uVar18;\n                pOVar11 = pOVar20->output_lists_[0].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_start[0x18];\n                if (pOVar11 == (Output_data *)Relobj::do_output_section) {\n                  ppOVar12 = pOVar20->output_lists_[3].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_finish;\n                  if ((ulong)((long)pOVar20->output_lists_[3].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_end_of_storage - (long)ppOVar12 >> 3) <= uVar25)\n                  goto LAB_0028ca08;\n                  pOVar22 = (Output_section *)ppOVar12[uVar25];\n                }\n                else {\n                  pOVar22 = (Output_section *)(*(code *)pOVar11)(pOVar20,uVar25);\n                }\n                bVar17 = is_section_folded(this,(Relobj *)pOVar20,uVar18);\n                if (bVar17) {\n                  SVar32 = Icf::get_folded_section(this->icf_,(Relobj *)pOVar20,uVar18);\n                  pRVar24 = SVar32.first;\n                  if (pRVar24 == (Relobj *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                  }\n                  p_Var9 = (pRVar24->super_Object)._vptr_Object[0x18];\n                  if (p_Var9 == Relobj::do_output_section) {\n                    ppOVar13 = (pRVar24->output_sections_).\n                               super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                               ._M_impl._M_start;\n                    uVar25 = SVar32._8_8_ & 0xffffffff;\n                    if ((ulong)((long)(pRVar24->output_sections_).\n                                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                      ._M_impl._M_finish - (long)ppOVar13 >> 3) <= uVar25) {\nLAB_0028ca08:\n                    /* WARNING: Subroutine does not return */\n                      do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n                    }\n                    pOVar22 = ppOVar13[uVar25];\n                  }\n                  else {\n                    iVar19 = (*p_Var9)(pRVar24,SVar32._8_8_ & 0xffffffff);\n                    pOVar22 = (Output_section *)CONCAT44(extraout_var_01,iVar19);\n                  }\n                  if (pOVar22 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                  }\n                }\n                else if (pOVar22 == (Output_section *)0x0) goto LAB_0028c9cd;\n                p_Var9 = (pOVar22->super_Output_data)._vptr_Output_data[0xb];\n                if (p_Var9 == Output_section::do_out_shndx) {\n                  uVar18 = pOVar22->out_shndx_;\n                  if (uVar18 == 0xffffffff) goto LAB_0028ca38;\n                }\n                else {\n                  uVar18 = (*p_Var9)(pOVar22);\n                }\n                if (0xfeff < uVar18) {\n                  if (uVar26 != 0xffffffff) {\n                    local_58._M_dataplus._M_p._0_4_ = uVar26;\n                    local_58._M_dataplus._M_p._4_4_ = uVar18;\n                    std::\n                    vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                    ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                              (&symtab_xindex->entries_,\n                               (pair<unsigned_int,_unsigned_int> *)&local_58);\n                  }\n                  if (uVar29 == 0xffffffff) {\n                    uVar18 = 0xffff;\n                  }\n                  else {\n                    local_58._M_dataplus._M_p._0_4_ = uVar29;\n                    local_58._M_dataplus._M_p._4_4_ = uVar18;\n                    std::\n                    vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                    ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                              (&dynsym_xindex->entries_,\n                               (pair<unsigned_int,_unsigned_int> *)&local_58);\n                    uVar18 = 0xffff;\n                  }\n                }\n                if (parameters->options_ == (General_options *)0x0) goto LAB_0028c8d7;\n                if ((parameters->options_->relocatable_).value != false) {\n                  if (((pOVar22->super_Output_data).field_0x20 & 1) == 0) goto LAB_0028c9b0;\n                  local_d0 = local_d0 - (pOVar22->super_Output_data).address_;\n                }\n              }\n            }\n            else {\n              if (((pSVar6->super_Symbol).field_0x3b & 2) != 0) {\n                iVar19 = (*pTVar5->_vptr_Target[5])(pTVar5,pSVar6);\n                VVar21 = CONCAT44(extraout_var,iVar19);\n              }\n              uVar18 = 0;\n              binding = STB_WEAK - (((byte)(pSVar6->super_Symbol).field_0x3c >> 1 & 1) == 0);\n            }\n            break;\n          case 1:\n            goto LAB_0028c1cb;\n          case 2:\n            goto LAB_0028c143;\n          case 3:\nswitchD_0028bebe_caseD_3:\n            uVar18 = 0xfff1;\n            break;\n          case 4:\nswitchD_0028bebe_caseD_4:\n            uVar18 = 0;\n            break;\n          default:\n            goto switchD_0028bebe_caseD_5;\n          }\n        }\n        else {\n          if (bVar15 == 0) {\n            if (((pSVar6->super_Symbol).u2_.shndx == 0) &&\n               (((byte)(pSVar6->super_Symbol).field_0x3b >> 5 & 1) != 0)) {\n                    /* WARNING: Could not recover jumptable at 0x0028c651. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return;\n            }\n                    /* WARNING: Could not recover jumptable at 0x0028c32a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();\n            return;\n          }\n          if (bVar15 == 4) {\n                    /* WARNING: Could not recover jumptable at 0x0028c569. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(&DAT_003a0b64 + lVar27))();\n            return;\n          }\n                    /* WARNING: Could not find normalized switch variable to match jumptable */\n          switch(bVar15) {\n          case 0:\nswitchD_0028c5a7_caseD_0:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");\n          case 1:\n            binding = STB_GLOBAL;\nLAB_0028c1cb:\n            if ((bVar16 & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.h",0xb5,"output_data");\n            }\n            pOVar10 = (pSVar6->super_Symbol).u1_.object;\n            uVar18 = (*pOVar10->_vptr_Object[0xb])(pOVar10);\n            if (0xfeff < uVar18) {\n              if (uVar26 != 0xffffffff) {\n                local_58._M_dataplus._M_p._0_4_ = uVar26;\n                local_58._M_dataplus._M_p._4_4_ = uVar18;\n                std::\n                vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                          (&symtab_xindex->entries_,(pair<unsigned_int,_unsigned_int> *)&local_58);\n              }\n              if (uVar29 == 0xffffffff) {\n                uVar18 = 0xffff;\n              }\n              else {\n                local_58._M_dataplus._M_p._0_4_ = uVar29;\n                local_58._M_dataplus._M_p._4_4_ = uVar18;\n                std::\n                vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                          (&dynsym_xindex->entries_,(pair<unsigned_int,_unsigned_int> *)&local_58);\n                uVar18 = 0xffff;\n              }\n            }\n            if (parameters->options_ == (General_options *)0x0) {\nLAB_0028c8d7:\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n            }\n            if ((parameters->options_->relocatable_).value != false) {\n              iVar19 = (*pOVar10->_vptr_Object[9])(pOVar10);\n              lVar23 = CONCAT44(extraout_var_00,iVar19);\n              if (lVar23 == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.cc",0xc81,"sized_write_globals");\n              }\n              if ((*(byte *)(lVar23 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xc5,"address");\n              }\n              local_d0 = local_d0 - *(long *)(lVar23 + 8);\n            }\n            break;\n          case 2:\n            binding = STB_GLOBAL;\nLAB_0028c143:\n            if ((bVar16 & 7) != 2) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.h",200,"output_segment");\n            }\n            pOVar22 = Output_segment::first_section((pSVar6->super_Symbol).u1_.output_segment);\n            if (pOVar22 == (Output_section *)0x0) goto switchD_0028bebe_caseD_3;\n            p_Var9 = (pOVar22->super_Output_data)._vptr_Output_data[0xb];\n            if (p_Var9 == Output_section::do_out_shndx) {\n              uVar18 = pOVar22->out_shndx_;\n              if (uVar18 == 0xffffffff) {\nLAB_0028ca38:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar18 = (*p_Var9)(pOVar22);\n            }\n            break;\n          case 3:\n            binding = STB_GLOBAL;\n            uVar18 = 0xfff1;\n            break;\n          case 4:\n                    /* WARNING: This code block may not be properly labeled as switch case */\n            binding = STB_GLOBAL;\n            uVar18 = 0;\n            break;\n          default:\nswitchD_0028bebe_caseD_5:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.cc",0xc9b,"sized_write_globals");\n          }\n        }\n        if (uVar26 != 0xffffffff) {\n          uVar26 = uVar26 - uVar1;\n          if (uVar2 <= uVar26) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.cc",0xca1,"sized_write_globals");\n          }\n          sized_write_symbol<64,_false>\n                    (this,pSVar6,local_d0,uVar18,binding,sympool,local_98 + uVar26 * 0x18);\n        }\n        if (uVar29 != 0xffffffff) {\n          uVar29 = uVar29 - uVar3;\n          if (uVar4 <= uVar29) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.cc",0xcaa,"sized_write_globals");\n          }\n          sized_write_symbol<64,_false>\n                    (this,pSVar6,VVar21,uVar18,binding,dynpool,local_c0 + uVar29 * 0x18);\n          pTVar7 = parameters->target_;\n          if (pTVar7 == (Target *)0x0) goto LAB_0028c91f;\n          if (pTVar7->_vptr_Target[0x27] != Target::do_adjust_dyn_symbol) {\n            (*pTVar7->_vptr_Target[0x27])(pTVar7,pSVar6,local_c0 + uVar29 * 0x18);\n          }\n        }\n      }\n      p_Var31 = p_Var31->_M_nxt;\n    } while (p_Var31 != (_Hash_node_base *)0x0);\n  }\n  ppSVar30 = (this->target_symbols_).\n             super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start;\n  if (ppSVar30 ==\n      (this->target_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n      _M_impl._M_finish) {\n    return;\n  }\n  pSVar6 = (Sized_symbol<64> *)*ppSVar30;\n  uVar26 = (pSVar6->super_Symbol).symtab_index_;\n  while (uVar26 != 0) {\n    ppSVar30 = ppSVar30 + 1;\n    if (local_c0 == (uchar *)0x0) {\n      uVar29 = 0xffffffff;\n    }\n    else {\n      uVar29 = (pSVar6->super_Symbol).dynsym_index_;\n      if (uVar29 == 0) {\nLAB_0028c898:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.h",0x19a,"dynsym_index");\n      }\n    }\n    bVar16 = (pSVar6->super_Symbol).field_0x3a & 7;\n    if (bVar16 == 3) {\n      uVar18 = 0xfff1;\n    }\n    else {\n      if (bVar16 != 4) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0xccb,"sized_write_globals");\n      }\n      uVar18 = 0;\n    }\n    if (uVar26 != 0xffffffff) {\n      uVar26 = uVar26 - uVar1;\n      if (uVar2 <= uVar26) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0xcd1,"sized_write_globals");\n      }\n      sized_write_symbol<64,_false>\n                (this,pSVar6,pSVar6->value_,uVar18,\n                 (uint)((byte)(pSVar6->super_Symbol).field_0x38 >> 4),sympool,\n                 local_98 + uVar26 * 0x18);\n    }\n    if (uVar29 != 0xffffffff) {\n      uVar29 = uVar29 - uVar3;\n      if (uVar4 <= uVar29) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0xcdb,"sized_write_globals");\n      }\n      sized_write_symbol<64,_false>\n                (this,pSVar6,pSVar6->value_,uVar18,\n                 (uint)((byte)(pSVar6->super_Symbol).field_0x38 >> 4),dynpool,\n                 local_c0 + uVar29 * 0x18);\n    }\n    if ((this->target_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n        _M_impl._M_finish == ppSVar30) {\n      return;\n    }\n    pSVar6 = (Sized_symbol<64> *)*ppSVar30;\n    uVar26 = (pSVar6->super_Symbol).symtab_index_;\n  }\nLAB_0028c880:\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/symtab.h",0x180,"symtab_index");\n}\n\n" comment comment comment comment (declaration "void __thiscall\ngold::Symbol_table::sized_write_globals<64,_false>\n          (Symbol_table *this,Stringpool *sympool,Stringpool *dynpool,\n          Output_symtab_xindex *symtab_xindex,Output_symtab_xindex *dynsym_xindex,Output_file *of)\n\n{\n  uint uVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Symbol_table::" identifier : : identifier : :) identifier (ERROR "<64" < number_literal) , (ERROR "_false>\n          (Symbol_table *this,Stringpool *sympool,Stringpool *dynpool,\n          Output_symtab_xindex *symtab_xindex,Output_symtab_xindex *dynsym_xindex,Output_file *of)\n\n{\n  uint" (function_declarator "_false>\n          (Symbol_table *this,Stringpool *sympool,Stringpool *dynpool,\n          Output_symtab_xindex *symtab_xindex,Output_symtab_xindex *dynsym_xindex,Output_file *of)" identifier (ERROR ">" >) (parameter_list "(Symbol_table *this,Stringpool *sympool,Stringpool *dynpool,\n          Output_symtab_xindex *symtab_xindex,Output_symtab_xindex *dynsym_xindex,Output_file *of)" ( (parameter_declaration "Symbol_table *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Stringpool *sympool" type_identifier (pointer_declarator "*sympool" * identifier)) , (parameter_declaration "Stringpool *dynpool" type_identifier (pointer_declarator "*dynpool" * identifier)) , (parameter_declaration "Output_symtab_xindex *symtab_xindex" type_identifier (pointer_declarator "*symtab_xindex" * identifier)) , (parameter_declaration "Output_symtab_xindex *dynsym_xindex" type_identifier (pointer_declarator "*dynsym_xindex" * identifier)) , (parameter_declaration "Output_file *of" type_identifier (pointer_declarator "*of" * identifier)) ))) { identifier) identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "Target *pTVar5;" type_identifier (pointer_declarator "*pTVar5" * identifier) ;) (expression_statement "Sized_symbol<64> *pSVar6;" (update_expression "Sized_symbol<64> *pSVar6" (binary_expression "Sized_symbol<64> *pSVar6" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "*pSVar6" * identifier)) --) ;) (declaration "Target *pTVar7;" type_identifier (pointer_declarator "*pTVar7" * identifier) ;) (declaration "General_options *pGVar8;" type_identifier (pointer_declarator "*pGVar8" * identifier) ;) (declaration "_func_int_varargs *p_Var9;" type_identifier (pointer_declarator "*p_Var9" * identifier) ;) (declaration "Object *pOVar10;" type_identifier (pointer_declarator "*pOVar10" * identifier) ;) (declaration "Output_data *pOVar11;" type_identifier (pointer_declarator "*pOVar11" * identifier) ;) (declaration "pointer ppOVar12;" type_identifier identifier ;) (declaration "pointer ppOVar13;" type_identifier identifier ;) (declaration "undefined8 uVar14;" type_identifier identifier ;) (declaration "byte bVar15;" type_identifier identifier ;) (declaration "byte bVar16;" type_identifier identifier ;) (declaration "bool bVar17;" primitive_type identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "Output_segment *pOVar20;" type_identifier (pointer_declarator "*pOVar20" * identifier) ;) (declaration "Value_type VVar21;" type_identifier identifier ;) (declaration "Output_section *pOVar22;" type_identifier (pointer_declarator "*pOVar22" * identifier) ;) (declaration "undefined4 extraout_var_00;" type_identifier identifier ;) (declaration "long lVar23;" (sized_type_specifier "long" long) identifier ;) (declaration "char *format;" primitive_type (pointer_declarator "*format" * identifier) ;) (declaration "Relobj *pRVar24;" type_identifier (pointer_declarator "*pRVar24" * identifier) ;) (declaration "undefined4 extraout_var_01;" type_identifier identifier ;) (declaration "ulong uVar25;" type_identifier identifier ;) (declaration "uint uVar26;" type_identifier identifier ;) (declaration "long lVar27;" (sized_type_specifier "long" long) identifier ;) (declaration "Stringpool *pSVar28;" type_identifier (pointer_declarator "*pSVar28" * identifier) ;) (declaration "STB binding;" type_identifier identifier ;) (declaration "uint uVar29;" type_identifier identifier ;) (declaration "pointer ppSVar30;" type_identifier identifier ;) (declaration "_Hash_node_base *p_Var31;" type_identifier (pointer_declarator "*p_Var31" * identifier) ;) (declaration "Section_id SVar32;" type_identifier identifier ;) (declaration "Elf_Addr local_d0;" type_identifier identifier ;) (declaration "uchar *local_c0;" type_identifier (pointer_declarator "*local_c0" * identifier) ;) (declaration "uchar *local_98;" type_identifier (pointer_declarator "*local_98" * identifier) ;) (declaration "string local_58;" type_identifier identifier ;) (declaration "undefined4 extraout_var;" type_identifier identifier ;) (expression_statement "pTVar5 = parameters->target_;" (assignment_expression "pTVar5 = parameters->target_" identifier = (field_expression "parameters->target_" identifier -> field_identifier)) ;) (if_statement "if (pTVar5 == (Target *)0x0) {\nLAB_0028c91f:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n  }" if (parenthesized_expression "(pTVar5 == (Target *)0x0)" ( (binary_expression "pTVar5 == (Target *)0x0" identifier == (cast_expression "(Target *)0x0" ( (type_descriptor "Target *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0028c91f:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n  }" { (labeled_statement "LAB_0028c91f:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x69,"target");" statement_identifier : 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 ") ))) ;)) })) (expression_statement "uVar1 = this->first_global_index_;" (assignment_expression "uVar1 = this->first_global_index_" identifier = (field_expression "this->first_global_index_" identifier -> field_identifier)) ;) (expression_statement "uVar2 = this->output_count_;" (assignment_expression "uVar2 = this->output_count_" identifier = (field_expression "this->output_count_" identifier -> field_identifier)) ;) (expression_statement "uVar25 = (ulong)uVar2;" (assignment_expression "uVar25 = (ulong)uVar2" identifier = (cast_expression "(ulong)uVar2" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "lVar27 = this->offset_;" (assignment_expression "lVar27 = this->offset_" identifier = (field_expression "this->offset_" identifier -> field_identifier)) ;) (expression_statement "pSVar28 = dynpool;" (assignment_expression "pSVar28 = dynpool" identifier = identifier) ;) (if_statement "if ((uVar2 == 0) || (lVar27 == 0)) {\n    local_98 = (uchar *)0x0;\n  }\n  else {\n    if ((lVar27 < 0) ||\n       (pSVar28 = (Stringpool *)((ulong)(uVar2 * 0x18) + lVar27), of->file_size_ < (long)pSVar28))\n    goto LAB_0028c9c8;\n    local_98 = of->base_ + lVar27;\n  }" if (parenthesized_expression "((uVar2 == 0) || (lVar27 == 0))" ( (binary_expression "(uVar2 == 0) || (lVar27 == 0)" (parenthesized_expression "(uVar2 == 0)" ( (binary_expression "uVar2 == 0" identifier == number_literal) )) || (parenthesized_expression "(lVar27 == 0)" ( (binary_expression "lVar27 == 0" identifier == number_literal) ))) )) (compound_statement "{\n    local_98 = (uchar *)0x0;\n  }" { (expression_statement "local_98 = (uchar *)0x0;" (assignment_expression "local_98 = (uchar *)0x0" identifier = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    if ((lVar27 < 0) ||\n       (pSVar28 = (Stringpool *)((ulong)(uVar2 * 0x18) + lVar27), of->file_size_ < (long)pSVar28))\n    goto LAB_0028c9c8;\n    local_98 = of->base_ + lVar27;\n  }" else (compound_statement "{\n    if ((lVar27 < 0) ||\n       (pSVar28 = (Stringpool *)((ulong)(uVar2 * 0x18) + lVar27), of->file_size_ < (long)pSVar28))\n    goto LAB_0028c9c8;\n    local_98 = of->base_ + lVar27;\n  }" { (if_statement "if ((lVar27 < 0) ||\n       (pSVar28 = (Stringpool *)((ulong)(uVar2 * 0x18) + lVar27), of->file_size_ < (long)pSVar28))\n    goto LAB_0028c9c8;" if (parenthesized_expression "((lVar27 < 0) ||\n       (pSVar28 = (Stringpool *)((ulong)(uVar2 * 0x18) + lVar27), of->file_size_ < (long)pSVar28))" ( (binary_expression "(lVar27 < 0) ||\n       (pSVar28 = (Stringpool *)((ulong)(uVar2 * 0x18) + lVar27), of->file_size_ < (long)pSVar28)" (parenthesized_expression "(lVar27 < 0)" ( (binary_expression "lVar27 < 0" identifier < number_literal) )) || (parenthesized_expression "(pSVar28 = (Stringpool *)((ulong)(uVar2 * 0x18) + lVar27), of->file_size_ < (long)pSVar28)" ( (comma_expression "pSVar28 = (Stringpool *)((ulong)(uVar2 * 0x18) + lVar27), of->file_size_ < (long)pSVar28" (assignment_expression "pSVar28 = (Stringpool *)((ulong)(uVar2 * 0x18) + lVar27)" identifier = (cast_expression "(Stringpool *)((ulong)(uVar2 * 0x18) + lVar27)" ( (type_descriptor "Stringpool *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)(uVar2 * 0x18) + lVar27)" ( (binary_expression "(ulong)(uVar2 * 0x18) + lVar27" (call_expression "(ulong)(uVar2 * 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar2 * 0x18)" ( (binary_expression "uVar2 * 0x18" identifier * number_literal) ))) + identifier) )))) , (binary_expression "of->file_size_ < (long)pSVar28" (field_expression "of->file_size_" identifier -> field_identifier) < (cast_expression "(long)pSVar28" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ))) )) (goto_statement "goto LAB_0028c9c8;" goto statement_identifier ;)) (expression_statement "local_98 = of->base_ + lVar27;" (assignment_expression "local_98 = of->base_ + lVar27" identifier = (binary_expression "of->base_ + lVar27" (field_expression "of->base_" identifier -> field_identifier) + identifier)) ;) }))) (expression_statement "uVar3 = this->first_dynamic_global_index_;" (assignment_expression "uVar3 = this->first_dynamic_global_index_" identifier = (field_expression "this->first_dynamic_global_index_" identifier -> field_identifier)) ;) (expression_statement "uVar4 = this->dynamic_count_;" (assignment_expression "uVar4 = this->dynamic_count_" identifier = (field_expression "this->dynamic_count_" identifier -> field_identifier)) ;) (expression_statement "uVar25 = (ulong)uVar4;" (assignment_expression "uVar25 = (ulong)uVar4" identifier = (cast_expression "(ulong)uVar4" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "lVar27 = this->dynamic_offset_;" (assignment_expression "lVar27 = this->dynamic_offset_" identifier = (field_expression "this->dynamic_offset_" identifier -> field_identifier)) ;) (if_statement "if ((lVar27 == 0) || (uVar4 == 0)) {\n    local_c0 = (uchar *)0x0;\n  }\n  else {\n    if ((lVar27 < 0) ||\n       (pSVar28 = (Stringpool *)((ulong)(uVar4 * 0x18) + lVar27), of->file_size_ < (long)pSVar28)) {\nLAB_0028c9c8:\n      Output_file::get_output_view\n                ((Output_file *)this,uVar25,(size_t)pSVar28,(Output_file *)symtab_xindex);\nLAB_0028c9cd:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/symtab.cc",0xc59,"sized_write_globals");\n    }\n    local_c0 = of->base_ + lVar27;\n  }" if (parenthesized_expression "((lVar27 == 0) || (uVar4 == 0))" ( (binary_expression "(lVar27 == 0) || (uVar4 == 0)" (parenthesized_expression "(lVar27 == 0)" ( (binary_expression "lVar27 == 0" identifier == number_literal) )) || (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) ))) )) (compound_statement "{\n    local_c0 = (uchar *)0x0;\n  }" { (expression_statement "local_c0 = (uchar *)0x0;" (assignment_expression "local_c0 = (uchar *)0x0" identifier = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    if ((lVar27 < 0) ||\n       (pSVar28 = (Stringpool *)((ulong)(uVar4 * 0x18) + lVar27), of->file_size_ < (long)pSVar28)) {\nLAB_0028c9c8:\n      Output_file::get_output_view\n                ((Output_file *)this,uVar25,(size_t)pSVar28,(Output_file *)symtab_xindex);\nLAB_0028c9cd:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/symtab.cc",0xc59,"sized_write_globals");\n    }\n    local_c0 = of->base_ + lVar27;\n  }" else (compound_statement "{\n    if ((lVar27 < 0) ||\n       (pSVar28 = (Stringpool *)((ulong)(uVar4 * 0x18) + lVar27), of->file_size_ < (long)pSVar28)) {\nLAB_0028c9c8:\n      Output_file::get_output_view\n                ((Output_file *)this,uVar25,(size_t)pSVar28,(Output_file *)symtab_xindex);\nLAB_0028c9cd:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/symtab.cc",0xc59,"sized_write_globals");\n    }\n    local_c0 = of->base_ + lVar27;\n  }" { (if_statement "if ((lVar27 < 0) ||\n       (pSVar28 = (Stringpool *)((ulong)(uVar4 * 0x18) + lVar27), of->file_size_ < (long)pSVar28)) {\nLAB_0028c9c8:\n      Output_file::get_output_view\n                ((Output_file *)this,uVar25,(size_t)pSVar28,(Output_file *)symtab_xindex);\nLAB_0028c9cd:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/symtab.cc",0xc59,"sized_write_globals");\n    }" if (parenthesized_expression "((lVar27 < 0) ||\n       (pSVar28 = (Stringpool *)((ulong)(uVar4 * 0x18) + lVar27), of->file_size_ < (long)pSVar28))" ( (binary_expression "(lVar27 < 0) ||\n       (pSVar28 = (Stringpool *)((ulong)(uVar4 * 0x18) + lVar27), of->file_size_ < (long)pSVar28)" (parenthesized_expression "(lVar27 < 0)" ( (binary_expression "lVar27 < 0" identifier < number_literal) )) || (parenthesized_expression "(pSVar28 = (Stringpool *)((ulong)(uVar4 * 0x18) + lVar27), of->file_size_ < (long)pSVar28)" ( (comma_expression "pSVar28 = (Stringpool *)((ulong)(uVar4 * 0x18) + lVar27), of->file_size_ < (long)pSVar28" (assignment_expression "pSVar28 = (Stringpool *)((ulong)(uVar4 * 0x18) + lVar27)" identifier = (cast_expression "(Stringpool *)((ulong)(uVar4 * 0x18) + lVar27)" ( (type_descriptor "Stringpool *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)(uVar4 * 0x18) + lVar27)" ( (binary_expression "(ulong)(uVar4 * 0x18) + lVar27" (call_expression "(ulong)(uVar4 * 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar4 * 0x18)" ( (binary_expression "uVar4 * 0x18" identifier * number_literal) ))) + identifier) )))) , (binary_expression "of->file_size_ < (long)pSVar28" (field_expression "of->file_size_" identifier -> field_identifier) < (cast_expression "(long)pSVar28" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ))) )) (compound_statement "{\nLAB_0028c9c8:\n      Output_file::get_output_view\n                ((Output_file *)this,uVar25,(size_t)pSVar28,(Output_file *)symtab_xindex);\nLAB_0028c9cd:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/symtab.cc",0xc59,"sized_write_globals");\n    }" { (labeled_statement "LAB_0028c9c8:\n      Output_file::get_output_view\n                ((Output_file *)this,uVar25,(size_t)pSVar28,(Output_file *)symtab_xindex);" statement_identifier : (labeled_statement "Output_file::get_output_view\n                ((Output_file *)this,uVar25,(size_t)pSVar28,(Output_file *)symtab_xindex);" statement_identifier : (ERROR ":" :) (expression_statement "get_output_view\n                ((Output_file *)this,uVar25,(size_t)pSVar28,(Output_file *)symtab_xindex);" (call_expression "get_output_view\n                ((Output_file *)this,uVar25,(size_t)pSVar28,(Output_file *)symtab_xindex)" identifier (argument_list "((Output_file *)this,uVar25,(size_t)pSVar28,(Output_file *)symtab_xindex)" ( (cast_expression "(Output_file *)this" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (cast_expression "(size_t)pSVar28" ( (type_descriptor "size_t" primitive_type) ) identifier) , (cast_expression "(Output_file *)symtab_xindex" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;))) (labeled_statement "LAB_0028c9cd:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/symtab.cc",0xc59,"sized_write_globals");" statement_identifier : comment (expression_statement "do_gold_unreachable("../../gold/symtab.cc",0xc59,"sized_write_globals");" (call_expression "do_gold_unreachable("../../gold/symtab.cc",0xc59,"sized_write_globals")" identifier (argument_list "("../../gold/symtab.cc",0xc59,"sized_write_globals")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""sized_write_globals"" " string_content ") ))) ;)) })) (expression_statement "local_c0 = of->base_ + lVar27;" (assignment_expression "local_c0 = of->base_ + lVar27" identifier = (binary_expression "of->base_ + lVar27" (field_expression "of->base_" identifier -> field_identifier) + identifier)) ;) }))) (expression_statement "p_Var31 = (this->table_)._M_h._M_before_begin._M_nxt;" (assignment_expression "p_Var31 = (this->table_)._M_h._M_before_begin._M_nxt" identifier = (field_expression "(this->table_)._M_h._M_before_begin._M_nxt" (field_expression "(this->table_)._M_h._M_before_begin" (field_expression "(this->table_)._M_h" (parenthesized_expression "(this->table_)" ( (field_expression "this->table_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier)) ;) (if_statement "if (p_Var31 != (_Hash_node_base *)0x0) {\n    lVar27 = (long)DAT_003a0b74;\n    do {\n      pSVar6 = (Sized_symbol<64> *)p_Var31[3]._M_nxt;\n      if ((((((pSVar6->super_Symbol).field_0x3a & 7) == 0) &&\n           (pOVar20 = (pSVar6->super_Symbol).u1_.output_segment,\n           ((ulong)pOVar20->output_lists_[2].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl._M_finish & 0x100000000) != 0)) &&\n          ((pSVar6->super_Symbol).u2_.shndx == 0)) &&\n         ((byte)(pSVar6->super_Symbol).field_0x38 >> 4 != 2)) {\n        if (parameters->options_ == (General_options *)0x0) goto LAB_0028c8d7;\n        if ((parameters->options_->allow_shlib_undefined_).value == false) {\n          pTVar7 = parameters->target_;\n          if (pTVar7 == (Target *)0x0) goto LAB_0028c91f;\n          if (pTVar7->_vptr_Target[7] != Target::do_is_defined_by_abi) {\n            iVar19 = (*pTVar7->_vptr_Target[7])(pTVar7,pSVar6);\n            if ((char)iVar19 != '\0') goto LAB_0028be18;\n            if (((pSVar6->super_Symbol).field_0x3a & 7) != 0) goto LAB_0028c752;\n            pOVar20 = (pSVar6->super_Symbol).u1_.output_segment;\n          }\n          if (((ulong)pOVar20->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish & 0x2000000000) == 0) {\n            iVar19 = *(int *)&pOVar20->output_lists_[5].\n                              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                              ._M_impl._M_end_of_storage;\n            if (iVar19 == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }\n            if (iVar19 != 1) {\n              gold_undefined_symbol((Symbol *)pSVar6);\n            }\n          }\n        }\n      }\nLAB_0028be18:\n      uVar26 = (pSVar6->super_Symbol).symtab_index_;\n      if (uVar26 == 0) goto LAB_0028c880;\n      if (local_c0 == (uchar *)0x0) {\n        uVar29 = 0xffffffff;\n        uVar18 = uVar26;\n      }\n      else {\n        uVar29 = (pSVar6->super_Symbol).dynsym_index_;\n        if (uVar29 == 0) goto LAB_0028c898;\n        uVar18 = uVar26 & uVar29;\n      }\n      if (uVar18 != 0xffffffff) {\n        local_d0 = pSVar6->value_;\n        binding = (STB)((byte)(pSVar6->super_Symbol).field_0x38 >> 4);\n        pGVar8 = parameters->options_;\n        if (pGVar8 == (General_options *)0x0) goto LAB_0028c8d7;\n        bVar16 = (pSVar6->super_Symbol).field_0x3a;\n        bVar15 = bVar16 & 7;\n        VVar21 = local_d0;\n        if (((pGVar8->weak_unresolved_symbols_).value == false) || (binding != STB_GLOBAL)) {\n          if ((binding == STB_GNU_UNIQUE) && ((pGVar8->gnu_unique_).value == false)) {\n            binding = STB_GLOBAL;\n          }\n          switch(bVar15) {\n          case 0:\n            if ((bVar16 & 7) != 0) goto switchD_0028c5a7_caseD_0;\n            uVar18 = (pSVar6->super_Symbol).u2_.shndx;\n            bVar16 = (byte)(pSVar6->super_Symbol).field_0x3b >> 5;\n            if (((bVar16 & 1) != 1) && (uVar18 != 0xfff1)) {\n              bVar17 = Symbol::is_common_shndx(uVar18);\n              if (!bVar17) {\n                demangle(&local_58,(pSVar6->super_Symbol).name_);\n                uVar14 = CONCAT44(local_58._M_dataplus._M_p._4_4_,(uint)local_58._M_dataplus._M_p);\n                format = (char *)gettext("%s: unsupported symbol section 0x%x");\n                    /* try { // try from 0028c69d to 0028c6a1 has its CatchHandler @ 0028ca50 */\n                gold_error(format,uVar14,(ulong)uVar18);\n                if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)CONCAT44(local_58._M_dataplus._M_p._4_4_,(uint)local_58._M_dataplus._M_p) !=\n                    &local_58.field_2) {\n                  operator_delete((undefined1 *)\n                                  CONCAT44(local_58._M_dataplus._M_p._4_4_,\n                                           (uint)local_58._M_dataplus._M_p));\n                }\n                break;\n              }\n              if (((pSVar6->super_Symbol).field_0x3a & 7) != 0) {\nLAB_0028c752:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n              }\n            }\n            pOVar20 = (pSVar6->super_Symbol).u1_.output_segment;\n            if (((ulong)pOVar20->output_lists_[2].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_finish & 0x100000000) == 0) {\n              lVar23 = (*(code *)pOVar20->output_lists_[0].\n                                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                 ._M_impl._M_start[5])(pOVar20);\n              if ((lVar23 != 0) || (uVar18 == 0)) goto switchD_0028bebe_caseD_4;\n              if (((bVar16 & 1) != 0) ||\n                 ((uVar18 != 0xfff1 && (bVar17 = Symbol::is_common_shndx(uVar18), !bVar17)))) {\n                uVar25 = (ulong)uVar18;\n                pOVar11 = pOVar20->output_lists_[0].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_start[0x18];\n                if (pOVar11 == (Output_data *)Relobj::do_output_section) {\n                  ppOVar12 = pOVar20->output_lists_[3].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_finish;\n                  if ((ulong)((long)pOVar20->output_lists_[3].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_end_of_storage - (long)ppOVar12 >> 3) <= uVar25)\n                  goto LAB_0028ca08;\n                  pOVar22 = (Output_section *)ppOVar12[uVar25];\n                }\n                else {\n                  pOVar22 = (Output_section *)(*(code *)pOVar11)(pOVar20,uVar25);\n                }\n                bVar17 = is_section_folded(this,(Relobj *)pOVar20,uVar18);\n                if (bVar17) {\n                  SVar32 = Icf::get_folded_section(this->icf_,(Relobj *)pOVar20,uVar18);\n                  pRVar24 = SVar32.first;\n                  if (pRVar24 == (Relobj *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                  }\n                  p_Var9 = (pRVar24->super_Object)._vptr_Object[0x18];\n                  if (p_Var9 == Relobj::do_output_section) {\n                    ppOVar13 = (pRVar24->output_sections_).\n                               super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                               ._M_impl._M_start;\n                    uVar25 = SVar32._8_8_ & 0xffffffff;\n                    if ((ulong)((long)(pRVar24->output_sections_).\n                                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                      ._M_impl._M_finish - (long)ppOVar13 >> 3) <= uVar25) {\nLAB_0028ca08:\n                    /* WARNING: Subroutine does not return */\n                      do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n                    }\n                    pOVar22 = ppOVar13[uVar25];\n                  }\n                  else {\n                    iVar19 = (*p_Var9)(pRVar24,SVar32._8_8_ & 0xffffffff);\n                    pOVar22 = (Output_section *)CONCAT44(extraout_var_01,iVar19);\n                  }\n                  if (pOVar22 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                  }\n                }\n                else if (pOVar22 == (Output_section *)0x0) goto LAB_0028c9cd;\n                p_Var9 = (pOVar22->super_Output_data)._vptr_Output_data[0xb];\n                if (p_Var9 == Output_section::do_out_shndx) {\n                  uVar18 = pOVar22->out_shndx_;\n                  if (uVar18 == 0xffffffff) goto LAB_0028ca38;\n                }\n                else {\n                  uVar18 = (*p_Var9)(pOVar22);\n                }\n                if (0xfeff < uVar18) {\n                  if (uVar26 != 0xffffffff) {\n                    local_58._M_dataplus._M_p._0_4_ = uVar26;\n                    local_58._M_dataplus._M_p._4_4_ = uVar18;\n                    std::\n                    vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                    ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                              (&symtab_xindex->entries_,\n                               (pair<unsigned_int,_unsigned_int> *)&local_58);\n                  }\n                  if (uVar29 == 0xffffffff) {\n                    uVar18 = 0xffff;\n                  }\n                  else {\n                    local_58._M_dataplus._M_p._0_4_ = uVar29;\n                    local_58._M_dataplus._M_p._4_4_ = uVar18;\n                    std::\n                    vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                    ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                              (&dynsym_xindex->entries_,\n                               (pair<unsigned_int,_unsigned_int> *)&local_58);\n                    uVar18 = 0xffff;\n                  }\n                }\n                if (parameters->options_ == (General_options *)0x0) goto LAB_0028c8d7;\n                if ((parameters->options_->relocatable_).value != false) {\n                  if (((pOVar22->super_Output_data).field_0x20 & 1) == 0) goto LAB_0028c9b0;\n                  local_d0 = local_d0 - (pOVar22->super_Output_data).address_;\n                }\n              }\n            }\n            else {\n              if (((pSVar6->super_Symbol).field_0x3b & 2) != 0) {\n                iVar19 = (*pTVar5->_vptr_Target[5])(pTVar5,pSVar6);\n                VVar21 = CONCAT44(extraout_var,iVar19);\n              }\n              uVar18 = 0;\n              binding = STB_WEAK - (((byte)(pSVar6->super_Symbol).field_0x3c >> 1 & 1) == 0);\n            }\n            break;\n          case 1:\n            goto LAB_0028c1cb;\n          case 2:\n            goto LAB_0028c143;\n          case 3:\nswitchD_0028bebe_caseD_3:\n            uVar18 = 0xfff1;\n            break;\n          case 4:\nswitchD_0028bebe_caseD_4:\n            uVar18 = 0;\n            break;\n          default:\n            goto switchD_0028bebe_caseD_5;\n          }\n        }\n        else {\n          if (bVar15 == 0) {\n            if (((pSVar6->super_Symbol).u2_.shndx == 0) &&\n               (((byte)(pSVar6->super_Symbol).field_0x3b >> 5 & 1) != 0)) {\n                    /* WARNING: Could not recover jumptable at 0x0028c651. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return;\n            }\n                    /* WARNING: Could not recover jumptable at 0x0028c32a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();\n            return;\n          }\n          if (bVar15 == 4) {\n                    /* WARNING: Could not recover jumptable at 0x0028c569. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(&DAT_003a0b64 + lVar27))();\n            return;\n          }\n                    /* WARNING: Could not find normalized switch variable to match jumptable */\n          switch(bVar15) {\n          case 0:\nswitchD_0028c5a7_caseD_0:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");\n          case 1:\n            binding = STB_GLOBAL;\nLAB_0028c1cb:\n            if ((bVar16 & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.h",0xb5,"output_data");\n            }\n            pOVar10 = (pSVar6->super_Symbol).u1_.object;\n            uVar18 = (*pOVar10->_vptr_Object[0xb])(pOVar10);\n            if (0xfeff < uVar18) {\n              if (uVar26 != 0xffffffff) {\n                local_58._M_dataplus._M_p._0_4_ = uVar26;\n                local_58._M_dataplus._M_p._4_4_ = uVar18;\n                std::\n                vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                          (&symtab_xindex->entries_,(pair<unsigned_int,_unsigned_int> *)&local_58);\n              }\n              if (uVar29 == 0xffffffff) {\n                uVar18 = 0xffff;\n              }\n              else {\n                local_58._M_dataplus._M_p._0_4_ = uVar29;\n                local_58._M_dataplus._M_p._4_4_ = uVar18;\n                std::\n                vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                          (&dynsym_xindex->entries_,(pair<unsigned_int,_unsigned_int> *)&local_58);\n                uVar18 = 0xffff;\n              }\n            }\n            if (parameters->options_ == (General_options *)0x0) {\nLAB_0028c8d7:\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n            }\n            if ((parameters->options_->relocatable_).value != false) {\n              iVar19 = (*pOVar10->_vptr_Object[9])(pOVar10);\n              lVar23 = CONCAT44(extraout_var_00,iVar19);\n              if (lVar23 == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.cc",0xc81,"sized_write_globals");\n              }\n              if ((*(byte *)(lVar23 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xc5,"address");\n              }\n              local_d0 = local_d0 - *(long *)(lVar23 + 8);\n            }\n            break;\n          case 2:\n            binding = STB_GLOBAL;\nLAB_0028c143:\n            if ((bVar16 & 7) != 2) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.h",200,"output_segment");\n            }\n            pOVar22 = Output_segment::first_section((pSVar6->super_Symbol).u1_.output_segment);\n            if (pOVar22 == (Output_section *)0x0) goto switchD_0028bebe_caseD_3;\n            p_Var9 = (pOVar22->super_Output_data)._vptr_Output_data[0xb];\n            if (p_Var9 == Output_section::do_out_shndx) {\n              uVar18 = pOVar22->out_shndx_;\n              if (uVar18 == 0xffffffff) {\nLAB_0028ca38:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar18 = (*p_Var9)(pOVar22);\n            }\n            break;\n          case 3:\n            binding = STB_GLOBAL;\n            uVar18 = 0xfff1;\n            break;\n          case 4:\n                    /* WARNING: This code block may not be properly labeled as switch case */\n            binding = STB_GLOBAL;\n            uVar18 = 0;\n            break;\n          default:\nswitchD_0028bebe_caseD_5:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.cc",0xc9b,"sized_write_globals");\n          }\n        }\n        if (uVar26 != 0xffffffff) {\n          uVar26 = uVar26 - uVar1;\n          if (uVar2 <= uVar26) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.cc",0xca1,"sized_write_globals");\n          }\n          sized_write_symbol<64,_false>\n                    (this,pSVar6,local_d0,uVar18,binding,sympool,local_98 + uVar26 * 0x18);\n        }\n        if (uVar29 != 0xffffffff) {\n          uVar29 = uVar29 - uVar3;\n          if (uVar4 <= uVar29) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.cc",0xcaa,"sized_write_globals");\n          }\n          sized_write_symbol<64,_false>\n                    (this,pSVar6,VVar21,uVar18,binding,dynpool,local_c0 + uVar29 * 0x18);\n          pTVar7 = parameters->target_;\n          if (pTVar7 == (Target *)0x0) goto LAB_0028c91f;\n          if (pTVar7->_vptr_Target[0x27] != Target::do_adjust_dyn_symbol) {\n            (*pTVar7->_vptr_Target[0x27])(pTVar7,pSVar6,local_c0 + uVar29 * 0x18);\n          }\n        }\n      }\n      p_Var31 = p_Var31->_M_nxt;\n    } while (p_Var31 != (_Hash_node_base *)0x0);\n  }" if (parenthesized_expression "(p_Var31 != (_Hash_node_base *)0x0)" ( (binary_expression "p_Var31 != (_Hash_node_base *)0x0" identifier != (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    lVar27 = (long)DAT_003a0b74;\n    do {\n      pSVar6 = (Sized_symbol<64> *)p_Var31[3]._M_nxt;\n      if ((((((pSVar6->super_Symbol).field_0x3a & 7) == 0) &&\n           (pOVar20 = (pSVar6->super_Symbol).u1_.output_segment,\n           ((ulong)pOVar20->output_lists_[2].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl._M_finish & 0x100000000) != 0)) &&\n          ((pSVar6->super_Symbol).u2_.shndx == 0)) &&\n         ((byte)(pSVar6->super_Symbol).field_0x38 >> 4 != 2)) {\n        if (parameters->options_ == (General_options *)0x0) goto LAB_0028c8d7;\n        if ((parameters->options_->allow_shlib_undefined_).value == false) {\n          pTVar7 = parameters->target_;\n          if (pTVar7 == (Target *)0x0) goto LAB_0028c91f;\n          if (pTVar7->_vptr_Target[7] != Target::do_is_defined_by_abi) {\n            iVar19 = (*pTVar7->_vptr_Target[7])(pTVar7,pSVar6);\n            if ((char)iVar19 != '\0') goto LAB_0028be18;\n            if (((pSVar6->super_Symbol).field_0x3a & 7) != 0) goto LAB_0028c752;\n            pOVar20 = (pSVar6->super_Symbol).u1_.output_segment;\n          }\n          if (((ulong)pOVar20->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish & 0x2000000000) == 0) {\n            iVar19 = *(int *)&pOVar20->output_lists_[5].\n                              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                              ._M_impl._M_end_of_storage;\n            if (iVar19 == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }\n            if (iVar19 != 1) {\n              gold_undefined_symbol((Symbol *)pSVar6);\n            }\n          }\n        }\n      }\nLAB_0028be18:\n      uVar26 = (pSVar6->super_Symbol).symtab_index_;\n      if (uVar26 == 0) goto LAB_0028c880;\n      if (local_c0 == (uchar *)0x0) {\n        uVar29 = 0xffffffff;\n        uVar18 = uVar26;\n      }\n      else {\n        uVar29 = (pSVar6->super_Symbol).dynsym_index_;\n        if (uVar29 == 0) goto LAB_0028c898;\n        uVar18 = uVar26 & uVar29;\n      }\n      if (uVar18 != 0xffffffff) {\n        local_d0 = pSVar6->value_;\n        binding = (STB)((byte)(pSVar6->super_Symbol).field_0x38 >> 4);\n        pGVar8 = parameters->options_;\n        if (pGVar8 == (General_options *)0x0) goto LAB_0028c8d7;\n        bVar16 = (pSVar6->super_Symbol).field_0x3a;\n        bVar15 = bVar16 & 7;\n        VVar21 = local_d0;\n        if (((pGVar8->weak_unresolved_symbols_).value == false) || (binding != STB_GLOBAL)) {\n          if ((binding == STB_GNU_UNIQUE) && ((pGVar8->gnu_unique_).value == false)) {\n            binding = STB_GLOBAL;\n          }\n          switch(bVar15) {\n          case 0:\n            if ((bVar16 & 7) != 0) goto switchD_0028c5a7_caseD_0;\n            uVar18 = (pSVar6->super_Symbol).u2_.shndx;\n            bVar16 = (byte)(pSVar6->super_Symbol).field_0x3b >> 5;\n            if (((bVar16 & 1) != 1) && (uVar18 != 0xfff1)) {\n              bVar17 = Symbol::is_common_shndx(uVar18);\n              if (!bVar17) {\n                demangle(&local_58,(pSVar6->super_Symbol).name_);\n                uVar14 = CONCAT44(local_58._M_dataplus._M_p._4_4_,(uint)local_58._M_dataplus._M_p);\n                format = (char *)gettext("%s: unsupported symbol section 0x%x");\n                    /* try { // try from 0028c69d to 0028c6a1 has its CatchHandler @ 0028ca50 */\n                gold_error(format,uVar14,(ulong)uVar18);\n                if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)CONCAT44(local_58._M_dataplus._M_p._4_4_,(uint)local_58._M_dataplus._M_p) !=\n                    &local_58.field_2) {\n                  operator_delete((undefined1 *)\n                                  CONCAT44(local_58._M_dataplus._M_p._4_4_,\n                                           (uint)local_58._M_dataplus._M_p));\n                }\n                break;\n              }\n              if (((pSVar6->super_Symbol).field_0x3a & 7) != 0) {\nLAB_0028c752:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n              }\n            }\n            pOVar20 = (pSVar6->super_Symbol).u1_.output_segment;\n            if (((ulong)pOVar20->output_lists_[2].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_finish & 0x100000000) == 0) {\n              lVar23 = (*(code *)pOVar20->output_lists_[0].\n                                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                 ._M_impl._M_start[5])(pOVar20);\n              if ((lVar23 != 0) || (uVar18 == 0)) goto switchD_0028bebe_caseD_4;\n              if (((bVar16 & 1) != 0) ||\n                 ((uVar18 != 0xfff1 && (bVar17 = Symbol::is_common_shndx(uVar18), !bVar17)))) {\n                uVar25 = (ulong)uVar18;\n                pOVar11 = pOVar20->output_lists_[0].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_start[0x18];\n                if (pOVar11 == (Output_data *)Relobj::do_output_section) {\n                  ppOVar12 = pOVar20->output_lists_[3].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_finish;\n                  if ((ulong)((long)pOVar20->output_lists_[3].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_end_of_storage - (long)ppOVar12 >> 3) <= uVar25)\n                  goto LAB_0028ca08;\n                  pOVar22 = (Output_section *)ppOVar12[uVar25];\n                }\n                else {\n                  pOVar22 = (Output_section *)(*(code *)pOVar11)(pOVar20,uVar25);\n                }\n                bVar17 = is_section_folded(this,(Relobj *)pOVar20,uVar18);\n                if (bVar17) {\n                  SVar32 = Icf::get_folded_section(this->icf_,(Relobj *)pOVar20,uVar18);\n                  pRVar24 = SVar32.first;\n                  if (pRVar24 == (Relobj *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                  }\n                  p_Var9 = (pRVar24->super_Object)._vptr_Object[0x18];\n                  if (p_Var9 == Relobj::do_output_section) {\n                    ppOVar13 = (pRVar24->output_sections_).\n                               super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                               ._M_impl._M_start;\n                    uVar25 = SVar32._8_8_ & 0xffffffff;\n                    if ((ulong)((long)(pRVar24->output_sections_).\n                                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                      ._M_impl._M_finish - (long)ppOVar13 >> 3) <= uVar25) {\nLAB_0028ca08:\n                    /* WARNING: Subroutine does not return */\n                      do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n                    }\n                    pOVar22 = ppOVar13[uVar25];\n                  }\n                  else {\n                    iVar19 = (*p_Var9)(pRVar24,SVar32._8_8_ & 0xffffffff);\n                    pOVar22 = (Output_section *)CONCAT44(extraout_var_01,iVar19);\n                  }\n                  if (pOVar22 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                  }\n                }\n                else if (pOVar22 == (Output_section *)0x0) goto LAB_0028c9cd;\n                p_Var9 = (pOVar22->super_Output_data)._vptr_Output_data[0xb];\n                if (p_Var9 == Output_section::do_out_shndx) {\n                  uVar18 = pOVar22->out_shndx_;\n                  if (uVar18 == 0xffffffff) goto LAB_0028ca38;\n                }\n                else {\n                  uVar18 = (*p_Var9)(pOVar22);\n                }\n                if (0xfeff < uVar18) {\n                  if (uVar26 != 0xffffffff) {\n                    local_58._M_dataplus._M_p._0_4_ = uVar26;\n                    local_58._M_dataplus._M_p._4_4_ = uVar18;\n                    std::\n                    vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                    ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                              (&symtab_xindex->entries_,\n                               (pair<unsigned_int,_unsigned_int> *)&local_58);\n                  }\n                  if (uVar29 == 0xffffffff) {\n                    uVar18 = 0xffff;\n                  }\n                  else {\n                    local_58._M_dataplus._M_p._0_4_ = uVar29;\n                    local_58._M_dataplus._M_p._4_4_ = uVar18;\n                    std::\n                    vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                    ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                              (&dynsym_xindex->entries_,\n                               (pair<unsigned_int,_unsigned_int> *)&local_58);\n                    uVar18 = 0xffff;\n                  }\n                }\n                if (parameters->options_ == (General_options *)0x0) goto LAB_0028c8d7;\n                if ((parameters->options_->relocatable_).value != false) {\n                  if (((pOVar22->super_Output_data).field_0x20 & 1) == 0) goto LAB_0028c9b0;\n                  local_d0 = local_d0 - (pOVar22->super_Output_data).address_;\n                }\n              }\n            }\n            else {\n              if (((pSVar6->super_Symbol).field_0x3b & 2) != 0) {\n                iVar19 = (*pTVar5->_vptr_Target[5])(pTVar5,pSVar6);\n                VVar21 = CONCAT44(extraout_var,iVar19);\n              }\n              uVar18 = 0;\n              binding = STB_WEAK - (((byte)(pSVar6->super_Symbol).field_0x3c >> 1 & 1) == 0);\n            }\n            break;\n          case 1:\n            goto LAB_0028c1cb;\n          case 2:\n            goto LAB_0028c143;\n          case 3:\nswitchD_0028bebe_caseD_3:\n            uVar18 = 0xfff1;\n            break;\n          case 4:\nswitchD_0028bebe_caseD_4:\n            uVar18 = 0;\n            break;\n          default:\n            goto switchD_0028bebe_caseD_5;\n          }\n        }\n        else {\n          if (bVar15 == 0) {\n            if (((pSVar6->super_Symbol).u2_.shndx == 0) &&\n               (((byte)(pSVar6->super_Symbol).field_0x3b >> 5 & 1) != 0)) {\n                    /* WARNING: Could not recover jumptable at 0x0028c651. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return;\n            }\n                    /* WARNING: Could not recover jumptable at 0x0028c32a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();\n            return;\n          }\n          if (bVar15 == 4) {\n                    /* WARNING: Could not recover jumptable at 0x0028c569. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(&DAT_003a0b64 + lVar27))();\n            return;\n          }\n                    /* WARNING: Could not find normalized switch variable to match jumptable */\n          switch(bVar15) {\n          case 0:\nswitchD_0028c5a7_caseD_0:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");\n          case 1:\n            binding = STB_GLOBAL;\nLAB_0028c1cb:\n            if ((bVar16 & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.h",0xb5,"output_data");\n            }\n            pOVar10 = (pSVar6->super_Symbol).u1_.object;\n            uVar18 = (*pOVar10->_vptr_Object[0xb])(pOVar10);\n            if (0xfeff < uVar18) {\n              if (uVar26 != 0xffffffff) {\n                local_58._M_dataplus._M_p._0_4_ = uVar26;\n                local_58._M_dataplus._M_p._4_4_ = uVar18;\n                std::\n                vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                          (&symtab_xindex->entries_,(pair<unsigned_int,_unsigned_int> *)&local_58);\n              }\n              if (uVar29 == 0xffffffff) {\n                uVar18 = 0xffff;\n              }\n              else {\n                local_58._M_dataplus._M_p._0_4_ = uVar29;\n                local_58._M_dataplus._M_p._4_4_ = uVar18;\n                std::\n                vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                          (&dynsym_xindex->entries_,(pair<unsigned_int,_unsigned_int> *)&local_58);\n                uVar18 = 0xffff;\n              }\n            }\n            if (parameters->options_ == (General_options *)0x0) {\nLAB_0028c8d7:\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n            }\n            if ((parameters->options_->relocatable_).value != false) {\n              iVar19 = (*pOVar10->_vptr_Object[9])(pOVar10);\n              lVar23 = CONCAT44(extraout_var_00,iVar19);\n              if (lVar23 == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.cc",0xc81,"sized_write_globals");\n              }\n              if ((*(byte *)(lVar23 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xc5,"address");\n              }\n              local_d0 = local_d0 - *(long *)(lVar23 + 8);\n            }\n            break;\n          case 2:\n            binding = STB_GLOBAL;\nLAB_0028c143:\n            if ((bVar16 & 7) != 2) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.h",200,"output_segment");\n            }\n            pOVar22 = Output_segment::first_section((pSVar6->super_Symbol).u1_.output_segment);\n            if (pOVar22 == (Output_section *)0x0) goto switchD_0028bebe_caseD_3;\n            p_Var9 = (pOVar22->super_Output_data)._vptr_Output_data[0xb];\n            if (p_Var9 == Output_section::do_out_shndx) {\n              uVar18 = pOVar22->out_shndx_;\n              if (uVar18 == 0xffffffff) {\nLAB_0028ca38:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar18 = (*p_Var9)(pOVar22);\n            }\n            break;\n          case 3:\n            binding = STB_GLOBAL;\n            uVar18 = 0xfff1;\n            break;\n          case 4:\n                    /* WARNING: This code block may not be properly labeled as switch case */\n            binding = STB_GLOBAL;\n            uVar18 = 0;\n            break;\n          default:\nswitchD_0028bebe_caseD_5:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.cc",0xc9b,"sized_write_globals");\n          }\n        }\n        if (uVar26 != 0xffffffff) {\n          uVar26 = uVar26 - uVar1;\n          if (uVar2 <= uVar26) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.cc",0xca1,"sized_write_globals");\n          }\n          sized_write_symbol<64,_false>\n                    (this,pSVar6,local_d0,uVar18,binding,sympool,local_98 + uVar26 * 0x18);\n        }\n        if (uVar29 != 0xffffffff) {\n          uVar29 = uVar29 - uVar3;\n          if (uVar4 <= uVar29) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.cc",0xcaa,"sized_write_globals");\n          }\n          sized_write_symbol<64,_false>\n                    (this,pSVar6,VVar21,uVar18,binding,dynpool,local_c0 + uVar29 * 0x18);\n          pTVar7 = parameters->target_;\n          if (pTVar7 == (Target *)0x0) goto LAB_0028c91f;\n          if (pTVar7->_vptr_Target[0x27] != Target::do_adjust_dyn_symbol) {\n            (*pTVar7->_vptr_Target[0x27])(pTVar7,pSVar6,local_c0 + uVar29 * 0x18);\n          }\n        }\n      }\n      p_Var31 = p_Var31->_M_nxt;\n    } while (p_Var31 != (_Hash_node_base *)0x0);\n  }" { (expression_statement "lVar27 = (long)DAT_003a0b74;" (assignment_expression "lVar27 = (long)DAT_003a0b74" identifier = (cast_expression "(long)DAT_003a0b74" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (do_statement "do {\n      pSVar6 = (Sized_symbol<64> *)p_Var31[3]._M_nxt;\n      if ((((((pSVar6->super_Symbol).field_0x3a & 7) == 0) &&\n           (pOVar20 = (pSVar6->super_Symbol).u1_.output_segment,\n           ((ulong)pOVar20->output_lists_[2].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl._M_finish & 0x100000000) != 0)) &&\n          ((pSVar6->super_Symbol).u2_.shndx == 0)) &&\n         ((byte)(pSVar6->super_Symbol).field_0x38 >> 4 != 2)) {\n        if (parameters->options_ == (General_options *)0x0) goto LAB_0028c8d7;\n        if ((parameters->options_->allow_shlib_undefined_).value == false) {\n          pTVar7 = parameters->target_;\n          if (pTVar7 == (Target *)0x0) goto LAB_0028c91f;\n          if (pTVar7->_vptr_Target[7] != Target::do_is_defined_by_abi) {\n            iVar19 = (*pTVar7->_vptr_Target[7])(pTVar7,pSVar6);\n            if ((char)iVar19 != '\0') goto LAB_0028be18;\n            if (((pSVar6->super_Symbol).field_0x3a & 7) != 0) goto LAB_0028c752;\n            pOVar20 = (pSVar6->super_Symbol).u1_.output_segment;\n          }\n          if (((ulong)pOVar20->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish & 0x2000000000) == 0) {\n            iVar19 = *(int *)&pOVar20->output_lists_[5].\n                              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                              ._M_impl._M_end_of_storage;\n            if (iVar19 == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }\n            if (iVar19 != 1) {\n              gold_undefined_symbol((Symbol *)pSVar6);\n            }\n          }\n        }\n      }\nLAB_0028be18:\n      uVar26 = (pSVar6->super_Symbol).symtab_index_;\n      if (uVar26 == 0) goto LAB_0028c880;\n      if (local_c0 == (uchar *)0x0) {\n        uVar29 = 0xffffffff;\n        uVar18 = uVar26;\n      }\n      else {\n        uVar29 = (pSVar6->super_Symbol).dynsym_index_;\n        if (uVar29 == 0) goto LAB_0028c898;\n        uVar18 = uVar26 & uVar29;\n      }\n      if (uVar18 != 0xffffffff) {\n        local_d0 = pSVar6->value_;\n        binding = (STB)((byte)(pSVar6->super_Symbol).field_0x38 >> 4);\n        pGVar8 = parameters->options_;\n        if (pGVar8 == (General_options *)0x0) goto LAB_0028c8d7;\n        bVar16 = (pSVar6->super_Symbol).field_0x3a;\n        bVar15 = bVar16 & 7;\n        VVar21 = local_d0;\n        if (((pGVar8->weak_unresolved_symbols_).value == false) || (binding != STB_GLOBAL)) {\n          if ((binding == STB_GNU_UNIQUE) && ((pGVar8->gnu_unique_).value == false)) {\n            binding = STB_GLOBAL;\n          }\n          switch(bVar15) {\n          case 0:\n            if ((bVar16 & 7) != 0) goto switchD_0028c5a7_caseD_0;\n            uVar18 = (pSVar6->super_Symbol).u2_.shndx;\n            bVar16 = (byte)(pSVar6->super_Symbol).field_0x3b >> 5;\n            if (((bVar16 & 1) != 1) && (uVar18 != 0xfff1)) {\n              bVar17 = Symbol::is_common_shndx(uVar18);\n              if (!bVar17) {\n                demangle(&local_58,(pSVar6->super_Symbol).name_);\n                uVar14 = CONCAT44(local_58._M_dataplus._M_p._4_4_,(uint)local_58._M_dataplus._M_p);\n                format = (char *)gettext("%s: unsupported symbol section 0x%x");\n                    /* try { // try from 0028c69d to 0028c6a1 has its CatchHandler @ 0028ca50 */\n                gold_error(format,uVar14,(ulong)uVar18);\n                if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)CONCAT44(local_58._M_dataplus._M_p._4_4_,(uint)local_58._M_dataplus._M_p) !=\n                    &local_58.field_2) {\n                  operator_delete((undefined1 *)\n                                  CONCAT44(local_58._M_dataplus._M_p._4_4_,\n                                           (uint)local_58._M_dataplus._M_p));\n                }\n                break;\n              }\n              if (((pSVar6->super_Symbol).field_0x3a & 7) != 0) {\nLAB_0028c752:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n              }\n            }\n            pOVar20 = (pSVar6->super_Symbol).u1_.output_segment;\n            if (((ulong)pOVar20->output_lists_[2].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_finish & 0x100000000) == 0) {\n              lVar23 = (*(code *)pOVar20->output_lists_[0].\n                                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                 ._M_impl._M_start[5])(pOVar20);\n              if ((lVar23 != 0) || (uVar18 == 0)) goto switchD_0028bebe_caseD_4;\n              if (((bVar16 & 1) != 0) ||\n                 ((uVar18 != 0xfff1 && (bVar17 = Symbol::is_common_shndx(uVar18), !bVar17)))) {\n                uVar25 = (ulong)uVar18;\n                pOVar11 = pOVar20->output_lists_[0].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_start[0x18];\n                if (pOVar11 == (Output_data *)Relobj::do_output_section) {\n                  ppOVar12 = pOVar20->output_lists_[3].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_finish;\n                  if ((ulong)((long)pOVar20->output_lists_[3].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_end_of_storage - (long)ppOVar12 >> 3) <= uVar25)\n                  goto LAB_0028ca08;\n                  pOVar22 = (Output_section *)ppOVar12[uVar25];\n                }\n                else {\n                  pOVar22 = (Output_section *)(*(code *)pOVar11)(pOVar20,uVar25);\n                }\n                bVar17 = is_section_folded(this,(Relobj *)pOVar20,uVar18);\n                if (bVar17) {\n                  SVar32 = Icf::get_folded_section(this->icf_,(Relobj *)pOVar20,uVar18);\n                  pRVar24 = SVar32.first;\n                  if (pRVar24 == (Relobj *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                  }\n                  p_Var9 = (pRVar24->super_Object)._vptr_Object[0x18];\n                  if (p_Var9 == Relobj::do_output_section) {\n                    ppOVar13 = (pRVar24->output_sections_).\n                               super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                               ._M_impl._M_start;\n                    uVar25 = SVar32._8_8_ & 0xffffffff;\n                    if ((ulong)((long)(pRVar24->output_sections_).\n                                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                      ._M_impl._M_finish - (long)ppOVar13 >> 3) <= uVar25) {\nLAB_0028ca08:\n                    /* WARNING: Subroutine does not return */\n                      do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n                    }\n                    pOVar22 = ppOVar13[uVar25];\n                  }\n                  else {\n                    iVar19 = (*p_Var9)(pRVar24,SVar32._8_8_ & 0xffffffff);\n                    pOVar22 = (Output_section *)CONCAT44(extraout_var_01,iVar19);\n                  }\n                  if (pOVar22 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                  }\n                }\n                else if (pOVar22 == (Output_section *)0x0) goto LAB_0028c9cd;\n                p_Var9 = (pOVar22->super_Output_data)._vptr_Output_data[0xb];\n                if (p_Var9 == Output_section::do_out_shndx) {\n                  uVar18 = pOVar22->out_shndx_;\n                  if (uVar18 == 0xffffffff) goto LAB_0028ca38;\n                }\n                else {\n                  uVar18 = (*p_Var9)(pOVar22);\n                }\n                if (0xfeff < uVar18) {\n                  if (uVar26 != 0xffffffff) {\n                    local_58._M_dataplus._M_p._0_4_ = uVar26;\n                    local_58._M_dataplus._M_p._4_4_ = uVar18;\n                    std::\n                    vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                    ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                              (&symtab_xindex->entries_,\n                               (pair<unsigned_int,_unsigned_int> *)&local_58);\n                  }\n                  if (uVar29 == 0xffffffff) {\n                    uVar18 = 0xffff;\n                  }\n                  else {\n                    local_58._M_dataplus._M_p._0_4_ = uVar29;\n                    local_58._M_dataplus._M_p._4_4_ = uVar18;\n                    std::\n                    vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                    ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                              (&dynsym_xindex->entries_,\n                               (pair<unsigned_int,_unsigned_int> *)&local_58);\n                    uVar18 = 0xffff;\n                  }\n                }\n                if (parameters->options_ == (General_options *)0x0) goto LAB_0028c8d7;\n                if ((parameters->options_->relocatable_).value != false) {\n                  if (((pOVar22->super_Output_data).field_0x20 & 1) == 0) goto LAB_0028c9b0;\n                  local_d0 = local_d0 - (pOVar22->super_Output_data).address_;\n                }\n              }\n            }\n            else {\n              if (((pSVar6->super_Symbol).field_0x3b & 2) != 0) {\n                iVar19 = (*pTVar5->_vptr_Target[5])(pTVar5,pSVar6);\n                VVar21 = CONCAT44(extraout_var,iVar19);\n              }\n              uVar18 = 0;\n              binding = STB_WEAK - (((byte)(pSVar6->super_Symbol).field_0x3c >> 1 & 1) == 0);\n            }\n            break;\n          case 1:\n            goto LAB_0028c1cb;\n          case 2:\n            goto LAB_0028c143;\n          case 3:\nswitchD_0028bebe_caseD_3:\n            uVar18 = 0xfff1;\n            break;\n          case 4:\nswitchD_0028bebe_caseD_4:\n            uVar18 = 0;\n            break;\n          default:\n            goto switchD_0028bebe_caseD_5;\n          }\n        }\n        else {\n          if (bVar15 == 0) {\n            if (((pSVar6->super_Symbol).u2_.shndx == 0) &&\n               (((byte)(pSVar6->super_Symbol).field_0x3b >> 5 & 1) != 0)) {\n                    /* WARNING: Could not recover jumptable at 0x0028c651. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return;\n            }\n                    /* WARNING: Could not recover jumptable at 0x0028c32a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();\n            return;\n          }\n          if (bVar15 == 4) {\n                    /* WARNING: Could not recover jumptable at 0x0028c569. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(&DAT_003a0b64 + lVar27))();\n            return;\n          }\n                    /* WARNING: Could not find normalized switch variable to match jumptable */\n          switch(bVar15) {\n          case 0:\nswitchD_0028c5a7_caseD_0:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");\n          case 1:\n            binding = STB_GLOBAL;\nLAB_0028c1cb:\n            if ((bVar16 & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.h",0xb5,"output_data");\n            }\n            pOVar10 = (pSVar6->super_Symbol).u1_.object;\n            uVar18 = (*pOVar10->_vptr_Object[0xb])(pOVar10);\n            if (0xfeff < uVar18) {\n              if (uVar26 != 0xffffffff) {\n                local_58._M_dataplus._M_p._0_4_ = uVar26;\n                local_58._M_dataplus._M_p._4_4_ = uVar18;\n                std::\n                vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                          (&symtab_xindex->entries_,(pair<unsigned_int,_unsigned_int> *)&local_58);\n              }\n              if (uVar29 == 0xffffffff) {\n                uVar18 = 0xffff;\n              }\n              else {\n                local_58._M_dataplus._M_p._0_4_ = uVar29;\n                local_58._M_dataplus._M_p._4_4_ = uVar18;\n                std::\n                vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                          (&dynsym_xindex->entries_,(pair<unsigned_int,_unsigned_int> *)&local_58);\n                uVar18 = 0xffff;\n              }\n            }\n            if (parameters->options_ == (General_options *)0x0) {\nLAB_0028c8d7:\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n            }\n            if ((parameters->options_->relocatable_).value != false) {\n              iVar19 = (*pOVar10->_vptr_Object[9])(pOVar10);\n              lVar23 = CONCAT44(extraout_var_00,iVar19);\n              if (lVar23 == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.cc",0xc81,"sized_write_globals");\n              }\n              if ((*(byte *)(lVar23 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xc5,"address");\n              }\n              local_d0 = local_d0 - *(long *)(lVar23 + 8);\n            }\n            break;\n          case 2:\n            binding = STB_GLOBAL;\nLAB_0028c143:\n            if ((bVar16 & 7) != 2) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.h",200,"output_segment");\n            }\n            pOVar22 = Output_segment::first_section((pSVar6->super_Symbol).u1_.output_segment);\n            if (pOVar22 == (Output_section *)0x0) goto switchD_0028bebe_caseD_3;\n            p_Var9 = (pOVar22->super_Output_data)._vptr_Output_data[0xb];\n            if (p_Var9 == Output_section::do_out_shndx) {\n              uVar18 = pOVar22->out_shndx_;\n              if (uVar18 == 0xffffffff) {\nLAB_0028ca38:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar18 = (*p_Var9)(pOVar22);\n            }\n            break;\n          case 3:\n            binding = STB_GLOBAL;\n            uVar18 = 0xfff1;\n            break;\n          case 4:\n                    /* WARNING: This code block may not be properly labeled as switch case */\n            binding = STB_GLOBAL;\n            uVar18 = 0;\n            break;\n          default:\nswitchD_0028bebe_caseD_5:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.cc",0xc9b,"sized_write_globals");\n          }\n        }\n        if (uVar26 != 0xffffffff) {\n          uVar26 = uVar26 - uVar1;\n          if (uVar2 <= uVar26) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.cc",0xca1,"sized_write_globals");\n          }\n          sized_write_symbol<64,_false>\n                    (this,pSVar6,local_d0,uVar18,binding,sympool,local_98 + uVar26 * 0x18);\n        }\n        if (uVar29 != 0xffffffff) {\n          uVar29 = uVar29 - uVar3;\n          if (uVar4 <= uVar29) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.cc",0xcaa,"sized_write_globals");\n          }\n          sized_write_symbol<64,_false>\n                    (this,pSVar6,VVar21,uVar18,binding,dynpool,local_c0 + uVar29 * 0x18);\n          pTVar7 = parameters->target_;\n          if (pTVar7 == (Target *)0x0) goto LAB_0028c91f;\n          if (pTVar7->_vptr_Target[0x27] != Target::do_adjust_dyn_symbol) {\n            (*pTVar7->_vptr_Target[0x27])(pTVar7,pSVar6,local_c0 + uVar29 * 0x18);\n          }\n        }\n      }\n      p_Var31 = p_Var31->_M_nxt;\n    } while (p_Var31 != (_Hash_node_base *)0x0);" do (compound_statement "{\n      pSVar6 = (Sized_symbol<64> *)p_Var31[3]._M_nxt;\n      if ((((((pSVar6->super_Symbol).field_0x3a & 7) == 0) &&\n           (pOVar20 = (pSVar6->super_Symbol).u1_.output_segment,\n           ((ulong)pOVar20->output_lists_[2].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl._M_finish & 0x100000000) != 0)) &&\n          ((pSVar6->super_Symbol).u2_.shndx == 0)) &&\n         ((byte)(pSVar6->super_Symbol).field_0x38 >> 4 != 2)) {\n        if (parameters->options_ == (General_options *)0x0) goto LAB_0028c8d7;\n        if ((parameters->options_->allow_shlib_undefined_).value == false) {\n          pTVar7 = parameters->target_;\n          if (pTVar7 == (Target *)0x0) goto LAB_0028c91f;\n          if (pTVar7->_vptr_Target[7] != Target::do_is_defined_by_abi) {\n            iVar19 = (*pTVar7->_vptr_Target[7])(pTVar7,pSVar6);\n            if ((char)iVar19 != '\0') goto LAB_0028be18;\n            if (((pSVar6->super_Symbol).field_0x3a & 7) != 0) goto LAB_0028c752;\n            pOVar20 = (pSVar6->super_Symbol).u1_.output_segment;\n          }\n          if (((ulong)pOVar20->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish & 0x2000000000) == 0) {\n            iVar19 = *(int *)&pOVar20->output_lists_[5].\n                              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                              ._M_impl._M_end_of_storage;\n            if (iVar19 == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }\n            if (iVar19 != 1) {\n              gold_undefined_symbol((Symbol *)pSVar6);\n            }\n          }\n        }\n      }\nLAB_0028be18:\n      uVar26 = (pSVar6->super_Symbol).symtab_index_;\n      if (uVar26 == 0) goto LAB_0028c880;\n      if (local_c0 == (uchar *)0x0) {\n        uVar29 = 0xffffffff;\n        uVar18 = uVar26;\n      }\n      else {\n        uVar29 = (pSVar6->super_Symbol).dynsym_index_;\n        if (uVar29 == 0) goto LAB_0028c898;\n        uVar18 = uVar26 & uVar29;\n      }\n      if (uVar18 != 0xffffffff) {\n        local_d0 = pSVar6->value_;\n        binding = (STB)((byte)(pSVar6->super_Symbol).field_0x38 >> 4);\n        pGVar8 = parameters->options_;\n        if (pGVar8 == (General_options *)0x0) goto LAB_0028c8d7;\n        bVar16 = (pSVar6->super_Symbol).field_0x3a;\n        bVar15 = bVar16 & 7;\n        VVar21 = local_d0;\n        if (((pGVar8->weak_unresolved_symbols_).value == false) || (binding != STB_GLOBAL)) {\n          if ((binding == STB_GNU_UNIQUE) && ((pGVar8->gnu_unique_).value == false)) {\n            binding = STB_GLOBAL;\n          }\n          switch(bVar15) {\n          case 0:\n            if ((bVar16 & 7) != 0) goto switchD_0028c5a7_caseD_0;\n            uVar18 = (pSVar6->super_Symbol).u2_.shndx;\n            bVar16 = (byte)(pSVar6->super_Symbol).field_0x3b >> 5;\n            if (((bVar16 & 1) != 1) && (uVar18 != 0xfff1)) {\n              bVar17 = Symbol::is_common_shndx(uVar18);\n              if (!bVar17) {\n                demangle(&local_58,(pSVar6->super_Symbol).name_);\n                uVar14 = CONCAT44(local_58._M_dataplus._M_p._4_4_,(uint)local_58._M_dataplus._M_p);\n                format = (char *)gettext("%s: unsupported symbol section 0x%x");\n                    /* try { // try from 0028c69d to 0028c6a1 has its CatchHandler @ 0028ca50 */\n                gold_error(format,uVar14,(ulong)uVar18);\n                if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)CONCAT44(local_58._M_dataplus._M_p._4_4_,(uint)local_58._M_dataplus._M_p) !=\n                    &local_58.field_2) {\n                  operator_delete((undefined1 *)\n                                  CONCAT44(local_58._M_dataplus._M_p._4_4_,\n                                           (uint)local_58._M_dataplus._M_p));\n                }\n                break;\n              }\n              if (((pSVar6->super_Symbol).field_0x3a & 7) != 0) {\nLAB_0028c752:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n              }\n            }\n            pOVar20 = (pSVar6->super_Symbol).u1_.output_segment;\n            if (((ulong)pOVar20->output_lists_[2].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_finish & 0x100000000) == 0) {\n              lVar23 = (*(code *)pOVar20->output_lists_[0].\n                                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                 ._M_impl._M_start[5])(pOVar20);\n              if ((lVar23 != 0) || (uVar18 == 0)) goto switchD_0028bebe_caseD_4;\n              if (((bVar16 & 1) != 0) ||\n                 ((uVar18 != 0xfff1 && (bVar17 = Symbol::is_common_shndx(uVar18), !bVar17)))) {\n                uVar25 = (ulong)uVar18;\n                pOVar11 = pOVar20->output_lists_[0].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_start[0x18];\n                if (pOVar11 == (Output_data *)Relobj::do_output_section) {\n                  ppOVar12 = pOVar20->output_lists_[3].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_finish;\n                  if ((ulong)((long)pOVar20->output_lists_[3].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_end_of_storage - (long)ppOVar12 >> 3) <= uVar25)\n                  goto LAB_0028ca08;\n                  pOVar22 = (Output_section *)ppOVar12[uVar25];\n                }\n                else {\n                  pOVar22 = (Output_section *)(*(code *)pOVar11)(pOVar20,uVar25);\n                }\n                bVar17 = is_section_folded(this,(Relobj *)pOVar20,uVar18);\n                if (bVar17) {\n                  SVar32 = Icf::get_folded_section(this->icf_,(Relobj *)pOVar20,uVar18);\n                  pRVar24 = SVar32.first;\n                  if (pRVar24 == (Relobj *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                  }\n                  p_Var9 = (pRVar24->super_Object)._vptr_Object[0x18];\n                  if (p_Var9 == Relobj::do_output_section) {\n                    ppOVar13 = (pRVar24->output_sections_).\n                               super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                               ._M_impl._M_start;\n                    uVar25 = SVar32._8_8_ & 0xffffffff;\n                    if ((ulong)((long)(pRVar24->output_sections_).\n                                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                      ._M_impl._M_finish - (long)ppOVar13 >> 3) <= uVar25) {\nLAB_0028ca08:\n                    /* WARNING: Subroutine does not return */\n                      do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n                    }\n                    pOVar22 = ppOVar13[uVar25];\n                  }\n                  else {\n                    iVar19 = (*p_Var9)(pRVar24,SVar32._8_8_ & 0xffffffff);\n                    pOVar22 = (Output_section *)CONCAT44(extraout_var_01,iVar19);\n                  }\n                  if (pOVar22 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                  }\n                }\n                else if (pOVar22 == (Output_section *)0x0) goto LAB_0028c9cd;\n                p_Var9 = (pOVar22->super_Output_data)._vptr_Output_data[0xb];\n                if (p_Var9 == Output_section::do_out_shndx) {\n                  uVar18 = pOVar22->out_shndx_;\n                  if (uVar18 == 0xffffffff) goto LAB_0028ca38;\n                }\n                else {\n                  uVar18 = (*p_Var9)(pOVar22);\n                }\n                if (0xfeff < uVar18) {\n                  if (uVar26 != 0xffffffff) {\n                    local_58._M_dataplus._M_p._0_4_ = uVar26;\n                    local_58._M_dataplus._M_p._4_4_ = uVar18;\n                    std::\n                    vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                    ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                              (&symtab_xindex->entries_,\n                               (pair<unsigned_int,_unsigned_int> *)&local_58);\n                  }\n                  if (uVar29 == 0xffffffff) {\n                    uVar18 = 0xffff;\n                  }\n                  else {\n                    local_58._M_dataplus._M_p._0_4_ = uVar29;\n                    local_58._M_dataplus._M_p._4_4_ = uVar18;\n                    std::\n                    vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                    ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                              (&dynsym_xindex->entries_,\n                               (pair<unsigned_int,_unsigned_int> *)&local_58);\n                    uVar18 = 0xffff;\n                  }\n                }\n                if (parameters->options_ == (General_options *)0x0) goto LAB_0028c8d7;\n                if ((parameters->options_->relocatable_).value != false) {\n                  if (((pOVar22->super_Output_data).field_0x20 & 1) == 0) goto LAB_0028c9b0;\n                  local_d0 = local_d0 - (pOVar22->super_Output_data).address_;\n                }\n              }\n            }\n            else {\n              if (((pSVar6->super_Symbol).field_0x3b & 2) != 0) {\n                iVar19 = (*pTVar5->_vptr_Target[5])(pTVar5,pSVar6);\n                VVar21 = CONCAT44(extraout_var,iVar19);\n              }\n              uVar18 = 0;\n              binding = STB_WEAK - (((byte)(pSVar6->super_Symbol).field_0x3c >> 1 & 1) == 0);\n            }\n            break;\n          case 1:\n            goto LAB_0028c1cb;\n          case 2:\n            goto LAB_0028c143;\n          case 3:\nswitchD_0028bebe_caseD_3:\n            uVar18 = 0xfff1;\n            break;\n          case 4:\nswitchD_0028bebe_caseD_4:\n            uVar18 = 0;\n            break;\n          default:\n            goto switchD_0028bebe_caseD_5;\n          }\n        }\n        else {\n          if (bVar15 == 0) {\n            if (((pSVar6->super_Symbol).u2_.shndx == 0) &&\n               (((byte)(pSVar6->super_Symbol).field_0x3b >> 5 & 1) != 0)) {\n                    /* WARNING: Could not recover jumptable at 0x0028c651. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return;\n            }\n                    /* WARNING: Could not recover jumptable at 0x0028c32a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();\n            return;\n          }\n          if (bVar15 == 4) {\n                    /* WARNING: Could not recover jumptable at 0x0028c569. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(&DAT_003a0b64 + lVar27))();\n            return;\n          }\n                    /* WARNING: Could not find normalized switch variable to match jumptable */\n          switch(bVar15) {\n          case 0:\nswitchD_0028c5a7_caseD_0:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");\n          case 1:\n            binding = STB_GLOBAL;\nLAB_0028c1cb:\n            if ((bVar16 & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.h",0xb5,"output_data");\n            }\n            pOVar10 = (pSVar6->super_Symbol).u1_.object;\n            uVar18 = (*pOVar10->_vptr_Object[0xb])(pOVar10);\n            if (0xfeff < uVar18) {\n              if (uVar26 != 0xffffffff) {\n                local_58._M_dataplus._M_p._0_4_ = uVar26;\n                local_58._M_dataplus._M_p._4_4_ = uVar18;\n                std::\n                vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                          (&symtab_xindex->entries_,(pair<unsigned_int,_unsigned_int> *)&local_58);\n              }\n              if (uVar29 == 0xffffffff) {\n                uVar18 = 0xffff;\n              }\n              else {\n                local_58._M_dataplus._M_p._0_4_ = uVar29;\n                local_58._M_dataplus._M_p._4_4_ = uVar18;\n                std::\n                vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                          (&dynsym_xindex->entries_,(pair<unsigned_int,_unsigned_int> *)&local_58);\n                uVar18 = 0xffff;\n              }\n            }\n            if (parameters->options_ == (General_options *)0x0) {\nLAB_0028c8d7:\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n            }\n            if ((parameters->options_->relocatable_).value != false) {\n              iVar19 = (*pOVar10->_vptr_Object[9])(pOVar10);\n              lVar23 = CONCAT44(extraout_var_00,iVar19);\n              if (lVar23 == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.cc",0xc81,"sized_write_globals");\n              }\n              if ((*(byte *)(lVar23 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xc5,"address");\n              }\n              local_d0 = local_d0 - *(long *)(lVar23 + 8);\n            }\n            break;\n          case 2:\n            binding = STB_GLOBAL;\nLAB_0028c143:\n            if ((bVar16 & 7) != 2) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.h",200,"output_segment");\n            }\n            pOVar22 = Output_segment::first_section((pSVar6->super_Symbol).u1_.output_segment);\n            if (pOVar22 == (Output_section *)0x0) goto switchD_0028bebe_caseD_3;\n            p_Var9 = (pOVar22->super_Output_data)._vptr_Output_data[0xb];\n            if (p_Var9 == Output_section::do_out_shndx) {\n              uVar18 = pOVar22->out_shndx_;\n              if (uVar18 == 0xffffffff) {\nLAB_0028ca38:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar18 = (*p_Var9)(pOVar22);\n            }\n            break;\n          case 3:\n            binding = STB_GLOBAL;\n            uVar18 = 0xfff1;\n            break;\n          case 4:\n                    /* WARNING: This code block may not be properly labeled as switch case */\n            binding = STB_GLOBAL;\n            uVar18 = 0;\n            break;\n          default:\nswitchD_0028bebe_caseD_5:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.cc",0xc9b,"sized_write_globals");\n          }\n        }\n        if (uVar26 != 0xffffffff) {\n          uVar26 = uVar26 - uVar1;\n          if (uVar2 <= uVar26) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.cc",0xca1,"sized_write_globals");\n          }\n          sized_write_symbol<64,_false>\n                    (this,pSVar6,local_d0,uVar18,binding,sympool,local_98 + uVar26 * 0x18);\n        }\n        if (uVar29 != 0xffffffff) {\n          uVar29 = uVar29 - uVar3;\n          if (uVar4 <= uVar29) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.cc",0xcaa,"sized_write_globals");\n          }\n          sized_write_symbol<64,_false>\n                    (this,pSVar6,VVar21,uVar18,binding,dynpool,local_c0 + uVar29 * 0x18);\n          pTVar7 = parameters->target_;\n          if (pTVar7 == (Target *)0x0) goto LAB_0028c91f;\n          if (pTVar7->_vptr_Target[0x27] != Target::do_adjust_dyn_symbol) {\n            (*pTVar7->_vptr_Target[0x27])(pTVar7,pSVar6,local_c0 + uVar29 * 0x18);\n          }\n        }\n      }\n      p_Var31 = p_Var31->_M_nxt;\n    }" { (expression_statement "pSVar6 = (Sized_symbol<64> *)p_Var31[3]._M_nxt;" (assignment_expression "pSVar6 = (Sized_symbol<64> *)p_Var31[3]._M_nxt" identifier = (parenthesized_expression "(Sized_symbol<64> *)p_Var31[3]._M_nxt" ( (binary_expression "Sized_symbol<64> *)p_Var31[3]._M_nxt" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "*)p_Var31[3]._M_nxt" * (ERROR ")" )) (field_expression "p_Var31[3]._M_nxt" (subscript_expression "p_Var31[3]" identifier [ number_literal ]) . field_identifier))) ))) ;) (if_statement "if ((((((pSVar6->super_Symbol).field_0x3a & 7) == 0) &&\n           (pOVar20 = (pSVar6->super_Symbol).u1_.output_segment,\n           ((ulong)pOVar20->output_lists_[2].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl._M_finish & 0x100000000) != 0)) &&\n          ((pSVar6->super_Symbol).u2_.shndx == 0)) &&\n         ((byte)(pSVar6->super_Symbol).field_0x38 >> 4 != 2)) {\n        if (parameters->options_ == (General_options *)0x0) goto LAB_0028c8d7;\n        if ((parameters->options_->allow_shlib_undefined_).value == false) {\n          pTVar7 = parameters->target_;\n          if (pTVar7 == (Target *)0x0) goto LAB_0028c91f;\n          if (pTVar7->_vptr_Target[7] != Target::do_is_defined_by_abi) {\n            iVar19 = (*pTVar7->_vptr_Target[7])(pTVar7,pSVar6);\n            if ((char)iVar19 != '\0') goto LAB_0028be18;\n            if (((pSVar6->super_Symbol).field_0x3a & 7) != 0) goto LAB_0028c752;\n            pOVar20 = (pSVar6->super_Symbol).u1_.output_segment;\n          }\n          if (((ulong)pOVar20->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish & 0x2000000000) == 0) {\n            iVar19 = *(int *)&pOVar20->output_lists_[5].\n                              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                              ._M_impl._M_end_of_storage;\n            if (iVar19 == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }\n            if (iVar19 != 1) {\n              gold_undefined_symbol((Symbol *)pSVar6);\n            }\n          }\n        }\n      }" if (parenthesized_expression "((((((pSVar6->super_Symbol).field_0x3a & 7) == 0) &&\n           (pOVar20 = (pSVar6->super_Symbol).u1_.output_segment,\n           ((ulong)pOVar20->output_lists_[2].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl._M_finish & 0x100000000) != 0)) &&\n          ((pSVar6->super_Symbol).u2_.shndx == 0)) &&\n         ((byte)(pSVar6->super_Symbol).field_0x38 >> 4 != 2))" ( (binary_expression "(((((pSVar6->super_Symbol).field_0x3a & 7) == 0) &&\n           (pOVar20 = (pSVar6->super_Symbol).u1_.output_segment,\n           ((ulong)pOVar20->output_lists_[2].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl._M_finish & 0x100000000) != 0)) &&\n          ((pSVar6->super_Symbol).u2_.shndx == 0)) &&\n         ((byte)(pSVar6->super_Symbol).field_0x38 >> 4 != 2)" (parenthesized_expression "(((((pSVar6->super_Symbol).field_0x3a & 7) == 0) &&\n           (pOVar20 = (pSVar6->super_Symbol).u1_.output_segment,\n           ((ulong)pOVar20->output_lists_[2].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl._M_finish & 0x100000000) != 0)) &&\n          ((pSVar6->super_Symbol).u2_.shndx == 0))" ( (binary_expression "((((pSVar6->super_Symbol).field_0x3a & 7) == 0) &&\n           (pOVar20 = (pSVar6->super_Symbol).u1_.output_segment,\n           ((ulong)pOVar20->output_lists_[2].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl._M_finish & 0x100000000) != 0)) &&\n          ((pSVar6->super_Symbol).u2_.shndx == 0)" (parenthesized_expression "((((pSVar6->super_Symbol).field_0x3a & 7) == 0) &&\n           (pOVar20 = (pSVar6->super_Symbol).u1_.output_segment,\n           ((ulong)pOVar20->output_lists_[2].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl._M_finish & 0x100000000) != 0))" ( (binary_expression "(((pSVar6->super_Symbol).field_0x3a & 7) == 0) &&\n           (pOVar20 = (pSVar6->super_Symbol).u1_.output_segment,\n           ((ulong)pOVar20->output_lists_[2].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl._M_finish & 0x100000000) != 0)" (parenthesized_expression "(((pSVar6->super_Symbol).field_0x3a & 7) == 0)" ( (binary_expression "((pSVar6->super_Symbol).field_0x3a & 7) == 0" (parenthesized_expression "((pSVar6->super_Symbol).field_0x3a & 7)" ( (binary_expression "(pSVar6->super_Symbol).field_0x3a & 7" (field_expression "(pSVar6->super_Symbol).field_0x3a" (parenthesized_expression "(pSVar6->super_Symbol)" ( (field_expression "pSVar6->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal) )) && (parenthesized_expression "(pOVar20 = (pSVar6->super_Symbol).u1_.output_segment,\n           ((ulong)pOVar20->output_lists_[2].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl._M_finish & 0x100000000) != 0)" ( (comma_expression "pOVar20 = (pSVar6->super_Symbol).u1_.output_segment,\n           ((ulong)pOVar20->output_lists_[2].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl._M_finish & 0x100000000) != 0" (assignment_expression "pOVar20 = (pSVar6->super_Symbol).u1_.output_segment" identifier = (field_expression "(pSVar6->super_Symbol).u1_.output_segment" (field_expression "(pSVar6->super_Symbol).u1_" (parenthesized_expression "(pSVar6->super_Symbol)" ( (field_expression "pSVar6->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier)) , (binary_expression "((ulong)pOVar20->output_lists_[2].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl._M_finish & 0x100000000) != 0" (parenthesized_expression "((ulong)pOVar20->output_lists_[2].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl._M_finish & 0x100000000)" ( (binary_expression "(ulong)pOVar20->output_lists_[2].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl._M_finish & 0x100000000" (field_expression "(ulong)pOVar20->output_lists_[2].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl._M_finish" (field_expression "(ulong)pOVar20->output_lists_[2].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl" (binary_expression "(ulong)pOVar20->output_lists_[2].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "(ulong)pOVar20->output_lists_[2].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "(ulong)pOVar20->output_lists_[2].\n                   super__Vector_base<gold::Output_data*,_std" (binary_expression "(ulong)pOVar20->output_lists_[2].\n                   super__Vector_base<gold" (cast_expression "(ulong)pOVar20->output_lists_[2].\n                   super__Vector_base" ( (type_descriptor "ulong" type_identifier) ) (field_expression "pOVar20->output_lists_[2].\n                   super__Vector_base" (subscript_expression "pOVar20->output_lists_[2]" (field_expression "pOVar20->output_lists_" identifier -> field_identifier) [ number_literal ]) . field_identifier)) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) & number_literal) )) != number_literal)) ))) )) && (parenthesized_expression "((pSVar6->super_Symbol).u2_.shndx == 0)" ( (binary_expression "(pSVar6->super_Symbol).u2_.shndx == 0" (field_expression "(pSVar6->super_Symbol).u2_.shndx" (field_expression "(pSVar6->super_Symbol).u2_" (parenthesized_expression "(pSVar6->super_Symbol)" ( (field_expression "pSVar6->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier) == number_literal) ))) )) && (parenthesized_expression "((byte)(pSVar6->super_Symbol).field_0x38 >> 4 != 2)" ( (binary_expression "(byte)(pSVar6->super_Symbol).field_0x38 >> 4 != 2" (binary_expression "(byte)(pSVar6->super_Symbol).field_0x38 >> 4" (field_expression "(byte)(pSVar6->super_Symbol).field_0x38" (call_expression "(byte)(pSVar6->super_Symbol)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(pSVar6->super_Symbol)" ( (field_expression "pSVar6->super_Symbol" identifier -> field_identifier) ))) . field_identifier) >> number_literal) != number_literal) ))) )) (compound_statement "{\n        if (parameters->options_ == (General_options *)0x0) goto LAB_0028c8d7;\n        if ((parameters->options_->allow_shlib_undefined_).value == false) {\n          pTVar7 = parameters->target_;\n          if (pTVar7 == (Target *)0x0) goto LAB_0028c91f;\n          if (pTVar7->_vptr_Target[7] != Target::do_is_defined_by_abi) {\n            iVar19 = (*pTVar7->_vptr_Target[7])(pTVar7,pSVar6);\n            if ((char)iVar19 != '\0') goto LAB_0028be18;\n            if (((pSVar6->super_Symbol).field_0x3a & 7) != 0) goto LAB_0028c752;\n            pOVar20 = (pSVar6->super_Symbol).u1_.output_segment;\n          }\n          if (((ulong)pOVar20->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish & 0x2000000000) == 0) {\n            iVar19 = *(int *)&pOVar20->output_lists_[5].\n                              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                              ._M_impl._M_end_of_storage;\n            if (iVar19 == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }\n            if (iVar19 != 1) {\n              gold_undefined_symbol((Symbol *)pSVar6);\n            }\n          }\n        }\n      }" { (if_statement "if (parameters->options_ == (General_options *)0x0) goto LAB_0028c8d7;" if (parenthesized_expression "(parameters->options_ == (General_options *)0x0)" ( (binary_expression "parameters->options_ == (General_options *)0x0" (field_expression "parameters->options_" identifier -> field_identifier) == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0028c8d7;" goto statement_identifier ;)) (if_statement "if ((parameters->options_->allow_shlib_undefined_).value == false) {\n          pTVar7 = parameters->target_;\n          if (pTVar7 == (Target *)0x0) goto LAB_0028c91f;\n          if (pTVar7->_vptr_Target[7] != Target::do_is_defined_by_abi) {\n            iVar19 = (*pTVar7->_vptr_Target[7])(pTVar7,pSVar6);\n            if ((char)iVar19 != '\0') goto LAB_0028be18;\n            if (((pSVar6->super_Symbol).field_0x3a & 7) != 0) goto LAB_0028c752;\n            pOVar20 = (pSVar6->super_Symbol).u1_.output_segment;\n          }\n          if (((ulong)pOVar20->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish & 0x2000000000) == 0) {\n            iVar19 = *(int *)&pOVar20->output_lists_[5].\n                              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                              ._M_impl._M_end_of_storage;\n            if (iVar19 == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }\n            if (iVar19 != 1) {\n              gold_undefined_symbol((Symbol *)pSVar6);\n            }\n          }\n        }" if (parenthesized_expression "((parameters->options_->allow_shlib_undefined_).value == false)" ( (binary_expression "(parameters->options_->allow_shlib_undefined_).value == false" (field_expression "(parameters->options_->allow_shlib_undefined_).value" (parenthesized_expression "(parameters->options_->allow_shlib_undefined_)" ( (field_expression "parameters->options_->allow_shlib_undefined_" (field_expression "parameters->options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) == false) )) (compound_statement "{\n          pTVar7 = parameters->target_;\n          if (pTVar7 == (Target *)0x0) goto LAB_0028c91f;\n          if (pTVar7->_vptr_Target[7] != Target::do_is_defined_by_abi) {\n            iVar19 = (*pTVar7->_vptr_Target[7])(pTVar7,pSVar6);\n            if ((char)iVar19 != '\0') goto LAB_0028be18;\n            if (((pSVar6->super_Symbol).field_0x3a & 7) != 0) goto LAB_0028c752;\n            pOVar20 = (pSVar6->super_Symbol).u1_.output_segment;\n          }\n          if (((ulong)pOVar20->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish & 0x2000000000) == 0) {\n            iVar19 = *(int *)&pOVar20->output_lists_[5].\n                              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                              ._M_impl._M_end_of_storage;\n            if (iVar19 == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }\n            if (iVar19 != 1) {\n              gold_undefined_symbol((Symbol *)pSVar6);\n            }\n          }\n        }" { (expression_statement "pTVar7 = parameters->target_;" (assignment_expression "pTVar7 = parameters->target_" identifier = (field_expression "parameters->target_" identifier -> field_identifier)) ;) (if_statement "if (pTVar7 == (Target *)0x0) goto LAB_0028c91f;" if (parenthesized_expression "(pTVar7 == (Target *)0x0)" ( (binary_expression "pTVar7 == (Target *)0x0" identifier == (cast_expression "(Target *)0x0" ( (type_descriptor "Target *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0028c91f;" goto statement_identifier ;)) (if_statement "if (pTVar7->_vptr_Target[7] != Target::do_is_defined_by_abi) {\n            iVar19 = (*pTVar7->_vptr_Target[7])(pTVar7,pSVar6);\n            if ((char)iVar19 != '\0') goto LAB_0028be18;\n            if (((pSVar6->super_Symbol).field_0x3a & 7) != 0) goto LAB_0028c752;\n            pOVar20 = (pSVar6->super_Symbol).u1_.output_segment;\n          }" if (parenthesized_expression "(pTVar7->_vptr_Target[7] != Target::do_is_defined_by_abi)" ( (binary_expression "pTVar7->_vptr_Target[7] != Target" (subscript_expression "pTVar7->_vptr_Target[7]" (field_expression "pTVar7->_vptr_Target" identifier -> field_identifier) [ number_literal ]) != identifier) (ERROR "::do_is_defined_by_abi" : : identifier) )) (compound_statement "{\n            iVar19 = (*pTVar7->_vptr_Target[7])(pTVar7,pSVar6);\n            if ((char)iVar19 != '\0') goto LAB_0028be18;\n            if (((pSVar6->super_Symbol).field_0x3a & 7) != 0) goto LAB_0028c752;\n            pOVar20 = (pSVar6->super_Symbol).u1_.output_segment;\n          }" { (expression_statement "iVar19 = (*pTVar7->_vptr_Target[7])(pTVar7,pSVar6);" (assignment_expression "iVar19 = (*pTVar7->_vptr_Target[7])(pTVar7,pSVar6)" identifier = (call_expression "(*pTVar7->_vptr_Target[7])(pTVar7,pSVar6)" (parenthesized_expression "(*pTVar7->_vptr_Target[7])" ( (pointer_expression "*pTVar7->_vptr_Target[7]" * (subscript_expression "pTVar7->_vptr_Target[7]" (field_expression "pTVar7->_vptr_Target" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(pTVar7,pSVar6)" ( identifier , identifier )))) ;) (if_statement "if ((char)iVar19 != '\0') goto LAB_0028be18;" if (parenthesized_expression "((char)iVar19 != '\0')" ( (binary_expression "(char)iVar19 != '\0'" (cast_expression "(char)iVar19" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0028be18;" goto statement_identifier ;)) (if_statement "if (((pSVar6->super_Symbol).field_0x3a & 7) != 0) goto LAB_0028c752;" if (parenthesized_expression "(((pSVar6->super_Symbol).field_0x3a & 7) != 0)" ( (binary_expression "((pSVar6->super_Symbol).field_0x3a & 7) != 0" (parenthesized_expression "((pSVar6->super_Symbol).field_0x3a & 7)" ( (binary_expression "(pSVar6->super_Symbol).field_0x3a & 7" (field_expression "(pSVar6->super_Symbol).field_0x3a" (parenthesized_expression "(pSVar6->super_Symbol)" ( (field_expression "pSVar6->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0028c752;" goto statement_identifier ;)) (expression_statement "pOVar20 = (pSVar6->super_Symbol).u1_.output_segment;" (assignment_expression "pOVar20 = (pSVar6->super_Symbol).u1_.output_segment" identifier = (field_expression "(pSVar6->super_Symbol).u1_.output_segment" (field_expression "(pSVar6->super_Symbol).u1_" (parenthesized_expression "(pSVar6->super_Symbol)" ( (field_expression "pSVar6->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) })) (if_statement "if (((ulong)pOVar20->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish & 0x2000000000) == 0) {\n            iVar19 = *(int *)&pOVar20->output_lists_[5].\n                              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                              ._M_impl._M_end_of_storage;\n            if (iVar19 == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }\n            if (iVar19 != 1) {\n              gold_undefined_symbol((Symbol *)pSVar6);\n            }\n          }" if (parenthesized_expression "(((ulong)pOVar20->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish & 0x2000000000) == 0)" ( (binary_expression "((ulong)pOVar20->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish & 0x2000000000) == 0" (parenthesized_expression "((ulong)pOVar20->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish & 0x2000000000)" ( (binary_expression "(ulong)pOVar20->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish & 0x2000000000" (field_expression "(ulong)pOVar20->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish" (field_expression "(ulong)pOVar20->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl" (binary_expression "(ulong)pOVar20->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "(ulong)pOVar20->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "(ulong)pOVar20->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std" (binary_expression "(ulong)pOVar20->output_lists_[2].\n                      super__Vector_base<gold" (cast_expression "(ulong)pOVar20->output_lists_[2].\n                      super__Vector_base" ( (type_descriptor "ulong" type_identifier) ) (field_expression "pOVar20->output_lists_[2].\n                      super__Vector_base" (subscript_expression "pOVar20->output_lists_[2]" (field_expression "pOVar20->output_lists_" identifier -> field_identifier) [ number_literal ]) . field_identifier)) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n            iVar19 = *(int *)&pOVar20->output_lists_[5].\n                              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                              ._M_impl._M_end_of_storage;\n            if (iVar19 == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }\n            if (iVar19 != 1) {\n              gold_undefined_symbol((Symbol *)pSVar6);\n            }\n          }" { (expression_statement "iVar19 = *(int *)&pOVar20->output_lists_[5].\n                              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                              ._M_impl._M_end_of_storage;" (field_expression "iVar19 = *(int *)&pOVar20->output_lists_[5].\n                              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                              ._M_impl._M_end_of_storage" (field_expression "iVar19 = *(int *)&pOVar20->output_lists_[5].\n                              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                              ._M_impl" (binary_expression "iVar19 = *(int *)&pOVar20->output_lists_[5].\n                              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "iVar19 = *(int *)&pOVar20->output_lists_[5].\n                              super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "iVar19 = *(int *)&pOVar20->output_lists_[5].\n                              super__Vector_base<gold::Output_data*,_std" (assignment_expression "iVar19 = *(int *)&pOVar20->output_lists_[5].\n                              super__Vector_base<gold" identifier = (binary_expression "*(int *)&pOVar20->output_lists_[5].\n                              super__Vector_base<gold" (pointer_expression "*(int *)&pOVar20->output_lists_[5].\n                              super__Vector_base" * (cast_expression "(int *)&pOVar20->output_lists_[5].\n                              super__Vector_base" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar20->output_lists_[5].\n                              super__Vector_base" & (field_expression "pOVar20->output_lists_[5].\n                              super__Vector_base" (subscript_expression "pOVar20->output_lists_[5]" (field_expression "pOVar20->output_lists_" identifier -> field_identifier) [ number_literal ]) . field_identifier)))) < identifier)) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if (iVar19 == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }" { comment (expression_statement "do_gold_unreachable("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");" (call_expression "do_gold_unreachable("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries")" identifier (argument_list "("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries")" ( (string_literal ""../../gold/dynobj.h"" " string_content ") , number_literal , (string_literal ""has_unknown_needed_entries"" " string_content ") ))) ;) })) (if_statement "if (iVar19 != 1) {\n              gold_undefined_symbol((Symbol *)pSVar6);\n            }" if (parenthesized_expression "(iVar19 != 1)" ( (binary_expression "iVar19 != 1" identifier != number_literal) )) (compound_statement "{\n              gold_undefined_symbol((Symbol *)pSVar6);\n            }" { (expression_statement "gold_undefined_symbol((Symbol *)pSVar6);" (call_expression "gold_undefined_symbol((Symbol *)pSVar6)" identifier (argument_list "((Symbol *)pSVar6)" ( (cast_expression "(Symbol *)pSVar6" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) })) })) })) })) (labeled_statement "LAB_0028be18:\n      uVar26 = (pSVar6->super_Symbol).symtab_index_;" statement_identifier : (expression_statement "uVar26 = (pSVar6->super_Symbol).symtab_index_;" (assignment_expression "uVar26 = (pSVar6->super_Symbol).symtab_index_" identifier = (field_expression "(pSVar6->super_Symbol).symtab_index_" (parenthesized_expression "(pSVar6->super_Symbol)" ( (field_expression "pSVar6->super_Symbol" identifier -> field_identifier) )) . field_identifier)) ;)) (if_statement "if (uVar26 == 0) goto LAB_0028c880;" if (parenthesized_expression "(uVar26 == 0)" ( (binary_expression "uVar26 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0028c880;" goto statement_identifier ;)) (if_statement "if (local_c0 == (uchar *)0x0) {\n        uVar29 = 0xffffffff;\n        uVar18 = uVar26;\n      }\n      else {\n        uVar29 = (pSVar6->super_Symbol).dynsym_index_;\n        if (uVar29 == 0) goto LAB_0028c898;\n        uVar18 = uVar26 & uVar29;\n      }" if (parenthesized_expression "(local_c0 == (uchar *)0x0)" ( (binary_expression "local_c0 == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar29 = 0xffffffff;\n        uVar18 = uVar26;\n      }" { (expression_statement "uVar29 = 0xffffffff;" (assignment_expression "uVar29 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uVar18 = uVar26;" (assignment_expression "uVar18 = uVar26" identifier = identifier) ;) }) (else_clause "else {\n        uVar29 = (pSVar6->super_Symbol).dynsym_index_;\n        if (uVar29 == 0) goto LAB_0028c898;\n        uVar18 = uVar26 & uVar29;\n      }" else (compound_statement "{\n        uVar29 = (pSVar6->super_Symbol).dynsym_index_;\n        if (uVar29 == 0) goto LAB_0028c898;\n        uVar18 = uVar26 & uVar29;\n      }" { (expression_statement "uVar29 = (pSVar6->super_Symbol).dynsym_index_;" (assignment_expression "uVar29 = (pSVar6->super_Symbol).dynsym_index_" identifier = (field_expression "(pSVar6->super_Symbol).dynsym_index_" (parenthesized_expression "(pSVar6->super_Symbol)" ( (field_expression "pSVar6->super_Symbol" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (uVar29 == 0) goto LAB_0028c898;" if (parenthesized_expression "(uVar29 == 0)" ( (binary_expression "uVar29 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0028c898;" goto statement_identifier ;)) (expression_statement "uVar18 = uVar26 & uVar29;" (assignment_expression "uVar18 = uVar26 & uVar29" identifier = (binary_expression "uVar26 & uVar29" identifier & identifier)) ;) }))) (if_statement "if (uVar18 != 0xffffffff) {\n        local_d0 = pSVar6->value_;\n        binding = (STB)((byte)(pSVar6->super_Symbol).field_0x38 >> 4);\n        pGVar8 = parameters->options_;\n        if (pGVar8 == (General_options *)0x0) goto LAB_0028c8d7;\n        bVar16 = (pSVar6->super_Symbol).field_0x3a;\n        bVar15 = bVar16 & 7;\n        VVar21 = local_d0;\n        if (((pGVar8->weak_unresolved_symbols_).value == false) || (binding != STB_GLOBAL)) {\n          if ((binding == STB_GNU_UNIQUE) && ((pGVar8->gnu_unique_).value == false)) {\n            binding = STB_GLOBAL;\n          }\n          switch(bVar15) {\n          case 0:\n            if ((bVar16 & 7) != 0) goto switchD_0028c5a7_caseD_0;\n            uVar18 = (pSVar6->super_Symbol).u2_.shndx;\n            bVar16 = (byte)(pSVar6->super_Symbol).field_0x3b >> 5;\n            if (((bVar16 & 1) != 1) && (uVar18 != 0xfff1)) {\n              bVar17 = Symbol::is_common_shndx(uVar18);\n              if (!bVar17) {\n                demangle(&local_58,(pSVar6->super_Symbol).name_);\n                uVar14 = CONCAT44(local_58._M_dataplus._M_p._4_4_,(uint)local_58._M_dataplus._M_p);\n                format = (char *)gettext("%s: unsupported symbol section 0x%x");\n                    /* try { // try from 0028c69d to 0028c6a1 has its CatchHandler @ 0028ca50 */\n                gold_error(format,uVar14,(ulong)uVar18);\n                if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)CONCAT44(local_58._M_dataplus._M_p._4_4_,(uint)local_58._M_dataplus._M_p) !=\n                    &local_58.field_2) {\n                  operator_delete((undefined1 *)\n                                  CONCAT44(local_58._M_dataplus._M_p._4_4_,\n                                           (uint)local_58._M_dataplus._M_p));\n                }\n                break;\n              }\n              if (((pSVar6->super_Symbol).field_0x3a & 7) != 0) {\nLAB_0028c752:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n              }\n            }\n            pOVar20 = (pSVar6->super_Symbol).u1_.output_segment;\n            if (((ulong)pOVar20->output_lists_[2].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_finish & 0x100000000) == 0) {\n              lVar23 = (*(code *)pOVar20->output_lists_[0].\n                                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                 ._M_impl._M_start[5])(pOVar20);\n              if ((lVar23 != 0) || (uVar18 == 0)) goto switchD_0028bebe_caseD_4;\n              if (((bVar16 & 1) != 0) ||\n                 ((uVar18 != 0xfff1 && (bVar17 = Symbol::is_common_shndx(uVar18), !bVar17)))) {\n                uVar25 = (ulong)uVar18;\n                pOVar11 = pOVar20->output_lists_[0].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_start[0x18];\n                if (pOVar11 == (Output_data *)Relobj::do_output_section) {\n                  ppOVar12 = pOVar20->output_lists_[3].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_finish;\n                  if ((ulong)((long)pOVar20->output_lists_[3].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_end_of_storage - (long)ppOVar12 >> 3) <= uVar25)\n                  goto LAB_0028ca08;\n                  pOVar22 = (Output_section *)ppOVar12[uVar25];\n                }\n                else {\n                  pOVar22 = (Output_section *)(*(code *)pOVar11)(pOVar20,uVar25);\n                }\n                bVar17 = is_section_folded(this,(Relobj *)pOVar20,uVar18);\n                if (bVar17) {\n                  SVar32 = Icf::get_folded_section(this->icf_,(Relobj *)pOVar20,uVar18);\n                  pRVar24 = SVar32.first;\n                  if (pRVar24 == (Relobj *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                  }\n                  p_Var9 = (pRVar24->super_Object)._vptr_Object[0x18];\n                  if (p_Var9 == Relobj::do_output_section) {\n                    ppOVar13 = (pRVar24->output_sections_).\n                               super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                               ._M_impl._M_start;\n                    uVar25 = SVar32._8_8_ & 0xffffffff;\n                    if ((ulong)((long)(pRVar24->output_sections_).\n                                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                      ._M_impl._M_finish - (long)ppOVar13 >> 3) <= uVar25) {\nLAB_0028ca08:\n                    /* WARNING: Subroutine does not return */\n                      do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n                    }\n                    pOVar22 = ppOVar13[uVar25];\n                  }\n                  else {\n                    iVar19 = (*p_Var9)(pRVar24,SVar32._8_8_ & 0xffffffff);\n                    pOVar22 = (Output_section *)CONCAT44(extraout_var_01,iVar19);\n                  }\n                  if (pOVar22 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                  }\n                }\n                else if (pOVar22 == (Output_section *)0x0) goto LAB_0028c9cd;\n                p_Var9 = (pOVar22->super_Output_data)._vptr_Output_data[0xb];\n                if (p_Var9 == Output_section::do_out_shndx) {\n                  uVar18 = pOVar22->out_shndx_;\n                  if (uVar18 == 0xffffffff) goto LAB_0028ca38;\n                }\n                else {\n                  uVar18 = (*p_Var9)(pOVar22);\n                }\n                if (0xfeff < uVar18) {\n                  if (uVar26 != 0xffffffff) {\n                    local_58._M_dataplus._M_p._0_4_ = uVar26;\n                    local_58._M_dataplus._M_p._4_4_ = uVar18;\n                    std::\n                    vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                    ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                              (&symtab_xindex->entries_,\n                               (pair<unsigned_int,_unsigned_int> *)&local_58);\n                  }\n                  if (uVar29 == 0xffffffff) {\n                    uVar18 = 0xffff;\n                  }\n                  else {\n                    local_58._M_dataplus._M_p._0_4_ = uVar29;\n                    local_58._M_dataplus._M_p._4_4_ = uVar18;\n                    std::\n                    vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                    ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                              (&dynsym_xindex->entries_,\n                               (pair<unsigned_int,_unsigned_int> *)&local_58);\n                    uVar18 = 0xffff;\n                  }\n                }\n                if (parameters->options_ == (General_options *)0x0) goto LAB_0028c8d7;\n                if ((parameters->options_->relocatable_).value != false) {\n                  if (((pOVar22->super_Output_data).field_0x20 & 1) == 0) goto LAB_0028c9b0;\n                  local_d0 = local_d0 - (pOVar22->super_Output_data).address_;\n                }\n              }\n            }\n            else {\n              if (((pSVar6->super_Symbol).field_0x3b & 2) != 0) {\n                iVar19 = (*pTVar5->_vptr_Target[5])(pTVar5,pSVar6);\n                VVar21 = CONCAT44(extraout_var,iVar19);\n              }\n              uVar18 = 0;\n              binding = STB_WEAK - (((byte)(pSVar6->super_Symbol).field_0x3c >> 1 & 1) == 0);\n            }\n            break;\n          case 1:\n            goto LAB_0028c1cb;\n          case 2:\n            goto LAB_0028c143;\n          case 3:\nswitchD_0028bebe_caseD_3:\n            uVar18 = 0xfff1;\n            break;\n          case 4:\nswitchD_0028bebe_caseD_4:\n            uVar18 = 0;\n            break;\n          default:\n            goto switchD_0028bebe_caseD_5;\n          }\n        }\n        else {\n          if (bVar15 == 0) {\n            if (((pSVar6->super_Symbol).u2_.shndx == 0) &&\n               (((byte)(pSVar6->super_Symbol).field_0x3b >> 5 & 1) != 0)) {\n                    /* WARNING: Could not recover jumptable at 0x0028c651. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return;\n            }\n                    /* WARNING: Could not recover jumptable at 0x0028c32a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();\n            return;\n          }\n          if (bVar15 == 4) {\n                    /* WARNING: Could not recover jumptable at 0x0028c569. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(&DAT_003a0b64 + lVar27))();\n            return;\n          }\n                    /* WARNING: Could not find normalized switch variable to match jumptable */\n          switch(bVar15) {\n          case 0:\nswitchD_0028c5a7_caseD_0:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");\n          case 1:\n            binding = STB_GLOBAL;\nLAB_0028c1cb:\n            if ((bVar16 & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.h",0xb5,"output_data");\n            }\n            pOVar10 = (pSVar6->super_Symbol).u1_.object;\n            uVar18 = (*pOVar10->_vptr_Object[0xb])(pOVar10);\n            if (0xfeff < uVar18) {\n              if (uVar26 != 0xffffffff) {\n                local_58._M_dataplus._M_p._0_4_ = uVar26;\n                local_58._M_dataplus._M_p._4_4_ = uVar18;\n                std::\n                vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                          (&symtab_xindex->entries_,(pair<unsigned_int,_unsigned_int> *)&local_58);\n              }\n              if (uVar29 == 0xffffffff) {\n                uVar18 = 0xffff;\n              }\n              else {\n                local_58._M_dataplus._M_p._0_4_ = uVar29;\n                local_58._M_dataplus._M_p._4_4_ = uVar18;\n                std::\n                vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                          (&dynsym_xindex->entries_,(pair<unsigned_int,_unsigned_int> *)&local_58);\n                uVar18 = 0xffff;\n              }\n            }\n            if (parameters->options_ == (General_options *)0x0) {\nLAB_0028c8d7:\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n            }\n            if ((parameters->options_->relocatable_).value != false) {\n              iVar19 = (*pOVar10->_vptr_Object[9])(pOVar10);\n              lVar23 = CONCAT44(extraout_var_00,iVar19);\n              if (lVar23 == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.cc",0xc81,"sized_write_globals");\n              }\n              if ((*(byte *)(lVar23 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xc5,"address");\n              }\n              local_d0 = local_d0 - *(long *)(lVar23 + 8);\n            }\n            break;\n          case 2:\n            binding = STB_GLOBAL;\nLAB_0028c143:\n            if ((bVar16 & 7) != 2) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.h",200,"output_segment");\n            }\n            pOVar22 = Output_segment::first_section((pSVar6->super_Symbol).u1_.output_segment);\n            if (pOVar22 == (Output_section *)0x0) goto switchD_0028bebe_caseD_3;\n            p_Var9 = (pOVar22->super_Output_data)._vptr_Output_data[0xb];\n            if (p_Var9 == Output_section::do_out_shndx) {\n              uVar18 = pOVar22->out_shndx_;\n              if (uVar18 == 0xffffffff) {\nLAB_0028ca38:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar18 = (*p_Var9)(pOVar22);\n            }\n            break;\n          case 3:\n            binding = STB_GLOBAL;\n            uVar18 = 0xfff1;\n            break;\n          case 4:\n                    /* WARNING: This code block may not be properly labeled as switch case */\n            binding = STB_GLOBAL;\n            uVar18 = 0;\n            break;\n          default:\nswitchD_0028bebe_caseD_5:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.cc",0xc9b,"sized_write_globals");\n          }\n        }\n        if (uVar26 != 0xffffffff) {\n          uVar26 = uVar26 - uVar1;\n          if (uVar2 <= uVar26) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.cc",0xca1,"sized_write_globals");\n          }\n          sized_write_symbol<64,_false>\n                    (this,pSVar6,local_d0,uVar18,binding,sympool,local_98 + uVar26 * 0x18);\n        }\n        if (uVar29 != 0xffffffff) {\n          uVar29 = uVar29 - uVar3;\n          if (uVar4 <= uVar29) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.cc",0xcaa,"sized_write_globals");\n          }\n          sized_write_symbol<64,_false>\n                    (this,pSVar6,VVar21,uVar18,binding,dynpool,local_c0 + uVar29 * 0x18);\n          pTVar7 = parameters->target_;\n          if (pTVar7 == (Target *)0x0) goto LAB_0028c91f;\n          if (pTVar7->_vptr_Target[0x27] != Target::do_adjust_dyn_symbol) {\n            (*pTVar7->_vptr_Target[0x27])(pTVar7,pSVar6,local_c0 + uVar29 * 0x18);\n          }\n        }\n      }" if (parenthesized_expression "(uVar18 != 0xffffffff)" ( (binary_expression "uVar18 != 0xffffffff" identifier != number_literal) )) (compound_statement "{\n        local_d0 = pSVar6->value_;\n        binding = (STB)((byte)(pSVar6->super_Symbol).field_0x38 >> 4);\n        pGVar8 = parameters->options_;\n        if (pGVar8 == (General_options *)0x0) goto LAB_0028c8d7;\n        bVar16 = (pSVar6->super_Symbol).field_0x3a;\n        bVar15 = bVar16 & 7;\n        VVar21 = local_d0;\n        if (((pGVar8->weak_unresolved_symbols_).value == false) || (binding != STB_GLOBAL)) {\n          if ((binding == STB_GNU_UNIQUE) && ((pGVar8->gnu_unique_).value == false)) {\n            binding = STB_GLOBAL;\n          }\n          switch(bVar15) {\n          case 0:\n            if ((bVar16 & 7) != 0) goto switchD_0028c5a7_caseD_0;\n            uVar18 = (pSVar6->super_Symbol).u2_.shndx;\n            bVar16 = (byte)(pSVar6->super_Symbol).field_0x3b >> 5;\n            if (((bVar16 & 1) != 1) && (uVar18 != 0xfff1)) {\n              bVar17 = Symbol::is_common_shndx(uVar18);\n              if (!bVar17) {\n                demangle(&local_58,(pSVar6->super_Symbol).name_);\n                uVar14 = CONCAT44(local_58._M_dataplus._M_p._4_4_,(uint)local_58._M_dataplus._M_p);\n                format = (char *)gettext("%s: unsupported symbol section 0x%x");\n                    /* try { // try from 0028c69d to 0028c6a1 has its CatchHandler @ 0028ca50 */\n                gold_error(format,uVar14,(ulong)uVar18);\n                if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)CONCAT44(local_58._M_dataplus._M_p._4_4_,(uint)local_58._M_dataplus._M_p) !=\n                    &local_58.field_2) {\n                  operator_delete((undefined1 *)\n                                  CONCAT44(local_58._M_dataplus._M_p._4_4_,\n                                           (uint)local_58._M_dataplus._M_p));\n                }\n                break;\n              }\n              if (((pSVar6->super_Symbol).field_0x3a & 7) != 0) {\nLAB_0028c752:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n              }\n            }\n            pOVar20 = (pSVar6->super_Symbol).u1_.output_segment;\n            if (((ulong)pOVar20->output_lists_[2].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_finish & 0x100000000) == 0) {\n              lVar23 = (*(code *)pOVar20->output_lists_[0].\n                                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                 ._M_impl._M_start[5])(pOVar20);\n              if ((lVar23 != 0) || (uVar18 == 0)) goto switchD_0028bebe_caseD_4;\n              if (((bVar16 & 1) != 0) ||\n                 ((uVar18 != 0xfff1 && (bVar17 = Symbol::is_common_shndx(uVar18), !bVar17)))) {\n                uVar25 = (ulong)uVar18;\n                pOVar11 = pOVar20->output_lists_[0].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_start[0x18];\n                if (pOVar11 == (Output_data *)Relobj::do_output_section) {\n                  ppOVar12 = pOVar20->output_lists_[3].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_finish;\n                  if ((ulong)((long)pOVar20->output_lists_[3].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_end_of_storage - (long)ppOVar12 >> 3) <= uVar25)\n                  goto LAB_0028ca08;\n                  pOVar22 = (Output_section *)ppOVar12[uVar25];\n                }\n                else {\n                  pOVar22 = (Output_section *)(*(code *)pOVar11)(pOVar20,uVar25);\n                }\n                bVar17 = is_section_folded(this,(Relobj *)pOVar20,uVar18);\n                if (bVar17) {\n                  SVar32 = Icf::get_folded_section(this->icf_,(Relobj *)pOVar20,uVar18);\n                  pRVar24 = SVar32.first;\n                  if (pRVar24 == (Relobj *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                  }\n                  p_Var9 = (pRVar24->super_Object)._vptr_Object[0x18];\n                  if (p_Var9 == Relobj::do_output_section) {\n                    ppOVar13 = (pRVar24->output_sections_).\n                               super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                               ._M_impl._M_start;\n                    uVar25 = SVar32._8_8_ & 0xffffffff;\n                    if ((ulong)((long)(pRVar24->output_sections_).\n                                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                      ._M_impl._M_finish - (long)ppOVar13 >> 3) <= uVar25) {\nLAB_0028ca08:\n                    /* WARNING: Subroutine does not return */\n                      do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n                    }\n                    pOVar22 = ppOVar13[uVar25];\n                  }\n                  else {\n                    iVar19 = (*p_Var9)(pRVar24,SVar32._8_8_ & 0xffffffff);\n                    pOVar22 = (Output_section *)CONCAT44(extraout_var_01,iVar19);\n                  }\n                  if (pOVar22 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                  }\n                }\n                else if (pOVar22 == (Output_section *)0x0) goto LAB_0028c9cd;\n                p_Var9 = (pOVar22->super_Output_data)._vptr_Output_data[0xb];\n                if (p_Var9 == Output_section::do_out_shndx) {\n                  uVar18 = pOVar22->out_shndx_;\n                  if (uVar18 == 0xffffffff) goto LAB_0028ca38;\n                }\n                else {\n                  uVar18 = (*p_Var9)(pOVar22);\n                }\n                if (0xfeff < uVar18) {\n                  if (uVar26 != 0xffffffff) {\n                    local_58._M_dataplus._M_p._0_4_ = uVar26;\n                    local_58._M_dataplus._M_p._4_4_ = uVar18;\n                    std::\n                    vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                    ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                              (&symtab_xindex->entries_,\n                               (pair<unsigned_int,_unsigned_int> *)&local_58);\n                  }\n                  if (uVar29 == 0xffffffff) {\n                    uVar18 = 0xffff;\n                  }\n                  else {\n                    local_58._M_dataplus._M_p._0_4_ = uVar29;\n                    local_58._M_dataplus._M_p._4_4_ = uVar18;\n                    std::\n                    vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                    ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                              (&dynsym_xindex->entries_,\n                               (pair<unsigned_int,_unsigned_int> *)&local_58);\n                    uVar18 = 0xffff;\n                  }\n                }\n                if (parameters->options_ == (General_options *)0x0) goto LAB_0028c8d7;\n                if ((parameters->options_->relocatable_).value != false) {\n                  if (((pOVar22->super_Output_data).field_0x20 & 1) == 0) goto LAB_0028c9b0;\n                  local_d0 = local_d0 - (pOVar22->super_Output_data).address_;\n                }\n              }\n            }\n            else {\n              if (((pSVar6->super_Symbol).field_0x3b & 2) != 0) {\n                iVar19 = (*pTVar5->_vptr_Target[5])(pTVar5,pSVar6);\n                VVar21 = CONCAT44(extraout_var,iVar19);\n              }\n              uVar18 = 0;\n              binding = STB_WEAK - (((byte)(pSVar6->super_Symbol).field_0x3c >> 1 & 1) == 0);\n            }\n            break;\n          case 1:\n            goto LAB_0028c1cb;\n          case 2:\n            goto LAB_0028c143;\n          case 3:\nswitchD_0028bebe_caseD_3:\n            uVar18 = 0xfff1;\n            break;\n          case 4:\nswitchD_0028bebe_caseD_4:\n            uVar18 = 0;\n            break;\n          default:\n            goto switchD_0028bebe_caseD_5;\n          }\n        }\n        else {\n          if (bVar15 == 0) {\n            if (((pSVar6->super_Symbol).u2_.shndx == 0) &&\n               (((byte)(pSVar6->super_Symbol).field_0x3b >> 5 & 1) != 0)) {\n                    /* WARNING: Could not recover jumptable at 0x0028c651. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return;\n            }\n                    /* WARNING: Could not recover jumptable at 0x0028c32a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();\n            return;\n          }\n          if (bVar15 == 4) {\n                    /* WARNING: Could not recover jumptable at 0x0028c569. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(&DAT_003a0b64 + lVar27))();\n            return;\n          }\n                    /* WARNING: Could not find normalized switch variable to match jumptable */\n          switch(bVar15) {\n          case 0:\nswitchD_0028c5a7_caseD_0:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");\n          case 1:\n            binding = STB_GLOBAL;\nLAB_0028c1cb:\n            if ((bVar16 & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.h",0xb5,"output_data");\n            }\n            pOVar10 = (pSVar6->super_Symbol).u1_.object;\n            uVar18 = (*pOVar10->_vptr_Object[0xb])(pOVar10);\n            if (0xfeff < uVar18) {\n              if (uVar26 != 0xffffffff) {\n                local_58._M_dataplus._M_p._0_4_ = uVar26;\n                local_58._M_dataplus._M_p._4_4_ = uVar18;\n                std::\n                vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                          (&symtab_xindex->entries_,(pair<unsigned_int,_unsigned_int> *)&local_58);\n              }\n              if (uVar29 == 0xffffffff) {\n                uVar18 = 0xffff;\n              }\n              else {\n                local_58._M_dataplus._M_p._0_4_ = uVar29;\n                local_58._M_dataplus._M_p._4_4_ = uVar18;\n                std::\n                vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                          (&dynsym_xindex->entries_,(pair<unsigned_int,_unsigned_int> *)&local_58);\n                uVar18 = 0xffff;\n              }\n            }\n            if (parameters->options_ == (General_options *)0x0) {\nLAB_0028c8d7:\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n            }\n            if ((parameters->options_->relocatable_).value != false) {\n              iVar19 = (*pOVar10->_vptr_Object[9])(pOVar10);\n              lVar23 = CONCAT44(extraout_var_00,iVar19);\n              if (lVar23 == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.cc",0xc81,"sized_write_globals");\n              }\n              if ((*(byte *)(lVar23 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xc5,"address");\n              }\n              local_d0 = local_d0 - *(long *)(lVar23 + 8);\n            }\n            break;\n          case 2:\n            binding = STB_GLOBAL;\nLAB_0028c143:\n            if ((bVar16 & 7) != 2) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.h",200,"output_segment");\n            }\n            pOVar22 = Output_segment::first_section((pSVar6->super_Symbol).u1_.output_segment);\n            if (pOVar22 == (Output_section *)0x0) goto switchD_0028bebe_caseD_3;\n            p_Var9 = (pOVar22->super_Output_data)._vptr_Output_data[0xb];\n            if (p_Var9 == Output_section::do_out_shndx) {\n              uVar18 = pOVar22->out_shndx_;\n              if (uVar18 == 0xffffffff) {\nLAB_0028ca38:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar18 = (*p_Var9)(pOVar22);\n            }\n            break;\n          case 3:\n            binding = STB_GLOBAL;\n            uVar18 = 0xfff1;\n            break;\n          case 4:\n                    /* WARNING: This code block may not be properly labeled as switch case */\n            binding = STB_GLOBAL;\n            uVar18 = 0;\n            break;\n          default:\nswitchD_0028bebe_caseD_5:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.cc",0xc9b,"sized_write_globals");\n          }\n        }\n        if (uVar26 != 0xffffffff) {\n          uVar26 = uVar26 - uVar1;\n          if (uVar2 <= uVar26) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.cc",0xca1,"sized_write_globals");\n          }\n          sized_write_symbol<64,_false>\n                    (this,pSVar6,local_d0,uVar18,binding,sympool,local_98 + uVar26 * 0x18);\n        }\n        if (uVar29 != 0xffffffff) {\n          uVar29 = uVar29 - uVar3;\n          if (uVar4 <= uVar29) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.cc",0xcaa,"sized_write_globals");\n          }\n          sized_write_symbol<64,_false>\n                    (this,pSVar6,VVar21,uVar18,binding,dynpool,local_c0 + uVar29 * 0x18);\n          pTVar7 = parameters->target_;\n          if (pTVar7 == (Target *)0x0) goto LAB_0028c91f;\n          if (pTVar7->_vptr_Target[0x27] != Target::do_adjust_dyn_symbol) {\n            (*pTVar7->_vptr_Target[0x27])(pTVar7,pSVar6,local_c0 + uVar29 * 0x18);\n          }\n        }\n      }" { (expression_statement "local_d0 = pSVar6->value_;" (assignment_expression "local_d0 = pSVar6->value_" identifier = (field_expression "pSVar6->value_" identifier -> field_identifier)) ;) (expression_statement "binding = (STB)((byte)(pSVar6->super_Symbol).field_0x38 >> 4);" (assignment_expression "binding = (STB)((byte)(pSVar6->super_Symbol).field_0x38 >> 4)" identifier = (call_expression "(STB)((byte)(pSVar6->super_Symbol).field_0x38 >> 4)" (parenthesized_expression "(STB)" ( identifier )) (argument_list "((byte)(pSVar6->super_Symbol).field_0x38 >> 4)" ( (binary_expression "(byte)(pSVar6->super_Symbol).field_0x38 >> 4" (field_expression "(byte)(pSVar6->super_Symbol).field_0x38" (call_expression "(byte)(pSVar6->super_Symbol)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(pSVar6->super_Symbol)" ( (field_expression "pSVar6->super_Symbol" identifier -> field_identifier) ))) . field_identifier) >> number_literal) )))) ;) (expression_statement "pGVar8 = parameters->options_;" (assignment_expression "pGVar8 = parameters->options_" identifier = (field_expression "parameters->options_" identifier -> field_identifier)) ;) (if_statement "if (pGVar8 == (General_options *)0x0) goto LAB_0028c8d7;" if (parenthesized_expression "(pGVar8 == (General_options *)0x0)" ( (binary_expression "pGVar8 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0028c8d7;" goto statement_identifier ;)) (expression_statement "bVar16 = (pSVar6->super_Symbol).field_0x3a;" (assignment_expression "bVar16 = (pSVar6->super_Symbol).field_0x3a" identifier = (field_expression "(pSVar6->super_Symbol).field_0x3a" (parenthesized_expression "(pSVar6->super_Symbol)" ( (field_expression "pSVar6->super_Symbol" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "bVar15 = bVar16 & 7;" (assignment_expression "bVar15 = bVar16 & 7" identifier = (binary_expression "bVar16 & 7" identifier & number_literal)) ;) (expression_statement "VVar21 = local_d0;" (assignment_expression "VVar21 = local_d0" identifier = identifier) ;) (if_statement "if (((pGVar8->weak_unresolved_symbols_).value == false) || (binding != STB_GLOBAL)) {\n          if ((binding == STB_GNU_UNIQUE) && ((pGVar8->gnu_unique_).value == false)) {\n            binding = STB_GLOBAL;\n          }\n          switch(bVar15) {\n          case 0:\n            if ((bVar16 & 7) != 0) goto switchD_0028c5a7_caseD_0;\n            uVar18 = (pSVar6->super_Symbol).u2_.shndx;\n            bVar16 = (byte)(pSVar6->super_Symbol).field_0x3b >> 5;\n            if (((bVar16 & 1) != 1) && (uVar18 != 0xfff1)) {\n              bVar17 = Symbol::is_common_shndx(uVar18);\n              if (!bVar17) {\n                demangle(&local_58,(pSVar6->super_Symbol).name_);\n                uVar14 = CONCAT44(local_58._M_dataplus._M_p._4_4_,(uint)local_58._M_dataplus._M_p);\n                format = (char *)gettext("%s: unsupported symbol section 0x%x");\n                    /* try { // try from 0028c69d to 0028c6a1 has its CatchHandler @ 0028ca50 */\n                gold_error(format,uVar14,(ulong)uVar18);\n                if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)CONCAT44(local_58._M_dataplus._M_p._4_4_,(uint)local_58._M_dataplus._M_p) !=\n                    &local_58.field_2) {\n                  operator_delete((undefined1 *)\n                                  CONCAT44(local_58._M_dataplus._M_p._4_4_,\n                                           (uint)local_58._M_dataplus._M_p));\n                }\n                break;\n              }\n              if (((pSVar6->super_Symbol).field_0x3a & 7) != 0) {\nLAB_0028c752:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n              }\n            }\n            pOVar20 = (pSVar6->super_Symbol).u1_.output_segment;\n            if (((ulong)pOVar20->output_lists_[2].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_finish & 0x100000000) == 0) {\n              lVar23 = (*(code *)pOVar20->output_lists_[0].\n                                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                 ._M_impl._M_start[5])(pOVar20);\n              if ((lVar23 != 0) || (uVar18 == 0)) goto switchD_0028bebe_caseD_4;\n              if (((bVar16 & 1) != 0) ||\n                 ((uVar18 != 0xfff1 && (bVar17 = Symbol::is_common_shndx(uVar18), !bVar17)))) {\n                uVar25 = (ulong)uVar18;\n                pOVar11 = pOVar20->output_lists_[0].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_start[0x18];\n                if (pOVar11 == (Output_data *)Relobj::do_output_section) {\n                  ppOVar12 = pOVar20->output_lists_[3].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_finish;\n                  if ((ulong)((long)pOVar20->output_lists_[3].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_end_of_storage - (long)ppOVar12 >> 3) <= uVar25)\n                  goto LAB_0028ca08;\n                  pOVar22 = (Output_section *)ppOVar12[uVar25];\n                }\n                else {\n                  pOVar22 = (Output_section *)(*(code *)pOVar11)(pOVar20,uVar25);\n                }\n                bVar17 = is_section_folded(this,(Relobj *)pOVar20,uVar18);\n                if (bVar17) {\n                  SVar32 = Icf::get_folded_section(this->icf_,(Relobj *)pOVar20,uVar18);\n                  pRVar24 = SVar32.first;\n                  if (pRVar24 == (Relobj *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                  }\n                  p_Var9 = (pRVar24->super_Object)._vptr_Object[0x18];\n                  if (p_Var9 == Relobj::do_output_section) {\n                    ppOVar13 = (pRVar24->output_sections_).\n                               super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                               ._M_impl._M_start;\n                    uVar25 = SVar32._8_8_ & 0xffffffff;\n                    if ((ulong)((long)(pRVar24->output_sections_).\n                                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                      ._M_impl._M_finish - (long)ppOVar13 >> 3) <= uVar25) {\nLAB_0028ca08:\n                    /* WARNING: Subroutine does not return */\n                      do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n                    }\n                    pOVar22 = ppOVar13[uVar25];\n                  }\n                  else {\n                    iVar19 = (*p_Var9)(pRVar24,SVar32._8_8_ & 0xffffffff);\n                    pOVar22 = (Output_section *)CONCAT44(extraout_var_01,iVar19);\n                  }\n                  if (pOVar22 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                  }\n                }\n                else if (pOVar22 == (Output_section *)0x0) goto LAB_0028c9cd;\n                p_Var9 = (pOVar22->super_Output_data)._vptr_Output_data[0xb];\n                if (p_Var9 == Output_section::do_out_shndx) {\n                  uVar18 = pOVar22->out_shndx_;\n                  if (uVar18 == 0xffffffff) goto LAB_0028ca38;\n                }\n                else {\n                  uVar18 = (*p_Var9)(pOVar22);\n                }\n                if (0xfeff < uVar18) {\n                  if (uVar26 != 0xffffffff) {\n                    local_58._M_dataplus._M_p._0_4_ = uVar26;\n                    local_58._M_dataplus._M_p._4_4_ = uVar18;\n                    std::\n                    vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                    ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                              (&symtab_xindex->entries_,\n                               (pair<unsigned_int,_unsigned_int> *)&local_58);\n                  }\n                  if (uVar29 == 0xffffffff) {\n                    uVar18 = 0xffff;\n                  }\n                  else {\n                    local_58._M_dataplus._M_p._0_4_ = uVar29;\n                    local_58._M_dataplus._M_p._4_4_ = uVar18;\n                    std::\n                    vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                    ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                              (&dynsym_xindex->entries_,\n                               (pair<unsigned_int,_unsigned_int> *)&local_58);\n                    uVar18 = 0xffff;\n                  }\n                }\n                if (parameters->options_ == (General_options *)0x0) goto LAB_0028c8d7;\n                if ((parameters->options_->relocatable_).value != false) {\n                  if (((pOVar22->super_Output_data).field_0x20 & 1) == 0) goto LAB_0028c9b0;\n                  local_d0 = local_d0 - (pOVar22->super_Output_data).address_;\n                }\n              }\n            }\n            else {\n              if (((pSVar6->super_Symbol).field_0x3b & 2) != 0) {\n                iVar19 = (*pTVar5->_vptr_Target[5])(pTVar5,pSVar6);\n                VVar21 = CONCAT44(extraout_var,iVar19);\n              }\n              uVar18 = 0;\n              binding = STB_WEAK - (((byte)(pSVar6->super_Symbol).field_0x3c >> 1 & 1) == 0);\n            }\n            break;\n          case 1:\n            goto LAB_0028c1cb;\n          case 2:\n            goto LAB_0028c143;\n          case 3:\nswitchD_0028bebe_caseD_3:\n            uVar18 = 0xfff1;\n            break;\n          case 4:\nswitchD_0028bebe_caseD_4:\n            uVar18 = 0;\n            break;\n          default:\n            goto switchD_0028bebe_caseD_5;\n          }\n        }\n        else {\n          if (bVar15 == 0) {\n            if (((pSVar6->super_Symbol).u2_.shndx == 0) &&\n               (((byte)(pSVar6->super_Symbol).field_0x3b >> 5 & 1) != 0)) {\n                    /* WARNING: Could not recover jumptable at 0x0028c651. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return;\n            }\n                    /* WARNING: Could not recover jumptable at 0x0028c32a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();\n            return;\n          }\n          if (bVar15 == 4) {\n                    /* WARNING: Could not recover jumptable at 0x0028c569. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(&DAT_003a0b64 + lVar27))();\n            return;\n          }\n                    /* WARNING: Could not find normalized switch variable to match jumptable */\n          switch(bVar15) {\n          case 0:\nswitchD_0028c5a7_caseD_0:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");\n          case 1:\n            binding = STB_GLOBAL;\nLAB_0028c1cb:\n            if ((bVar16 & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.h",0xb5,"output_data");\n            }\n            pOVar10 = (pSVar6->super_Symbol).u1_.object;\n            uVar18 = (*pOVar10->_vptr_Object[0xb])(pOVar10);\n            if (0xfeff < uVar18) {\n              if (uVar26 != 0xffffffff) {\n                local_58._M_dataplus._M_p._0_4_ = uVar26;\n                local_58._M_dataplus._M_p._4_4_ = uVar18;\n                std::\n                vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                          (&symtab_xindex->entries_,(pair<unsigned_int,_unsigned_int> *)&local_58);\n              }\n              if (uVar29 == 0xffffffff) {\n                uVar18 = 0xffff;\n              }\n              else {\n                local_58._M_dataplus._M_p._0_4_ = uVar29;\n                local_58._M_dataplus._M_p._4_4_ = uVar18;\n                std::\n                vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                          (&dynsym_xindex->entries_,(pair<unsigned_int,_unsigned_int> *)&local_58);\n                uVar18 = 0xffff;\n              }\n            }\n            if (parameters->options_ == (General_options *)0x0) {\nLAB_0028c8d7:\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n            }\n            if ((parameters->options_->relocatable_).value != false) {\n              iVar19 = (*pOVar10->_vptr_Object[9])(pOVar10);\n              lVar23 = CONCAT44(extraout_var_00,iVar19);\n              if (lVar23 == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.cc",0xc81,"sized_write_globals");\n              }\n              if ((*(byte *)(lVar23 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xc5,"address");\n              }\n              local_d0 = local_d0 - *(long *)(lVar23 + 8);\n            }\n            break;\n          case 2:\n            binding = STB_GLOBAL;\nLAB_0028c143:\n            if ((bVar16 & 7) != 2) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.h",200,"output_segment");\n            }\n            pOVar22 = Output_segment::first_section((pSVar6->super_Symbol).u1_.output_segment);\n            if (pOVar22 == (Output_section *)0x0) goto switchD_0028bebe_caseD_3;\n            p_Var9 = (pOVar22->super_Output_data)._vptr_Output_data[0xb];\n            if (p_Var9 == Output_section::do_out_shndx) {\n              uVar18 = pOVar22->out_shndx_;\n              if (uVar18 == 0xffffffff) {\nLAB_0028ca38:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar18 = (*p_Var9)(pOVar22);\n            }\n            break;\n          case 3:\n            binding = STB_GLOBAL;\n            uVar18 = 0xfff1;\n            break;\n          case 4:\n                    /* WARNING: This code block may not be properly labeled as switch case */\n            binding = STB_GLOBAL;\n            uVar18 = 0;\n            break;\n          default:\nswitchD_0028bebe_caseD_5:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.cc",0xc9b,"sized_write_globals");\n          }\n        }" if (parenthesized_expression "(((pGVar8->weak_unresolved_symbols_).value == false) || (binding != STB_GLOBAL))" ( (binary_expression "((pGVar8->weak_unresolved_symbols_).value == false) || (binding != STB_GLOBAL)" (parenthesized_expression "((pGVar8->weak_unresolved_symbols_).value == false)" ( (binary_expression "(pGVar8->weak_unresolved_symbols_).value == false" (field_expression "(pGVar8->weak_unresolved_symbols_).value" (parenthesized_expression "(pGVar8->weak_unresolved_symbols_)" ( (field_expression "pGVar8->weak_unresolved_symbols_" identifier -> field_identifier) )) . field_identifier) == false) )) || (parenthesized_expression "(binding != STB_GLOBAL)" ( (binary_expression "binding != STB_GLOBAL" identifier != identifier) ))) )) (compound_statement "{\n          if ((binding == STB_GNU_UNIQUE) && ((pGVar8->gnu_unique_).value == false)) {\n            binding = STB_GLOBAL;\n          }\n          switch(bVar15) {\n          case 0:\n            if ((bVar16 & 7) != 0) goto switchD_0028c5a7_caseD_0;\n            uVar18 = (pSVar6->super_Symbol).u2_.shndx;\n            bVar16 = (byte)(pSVar6->super_Symbol).field_0x3b >> 5;\n            if (((bVar16 & 1) != 1) && (uVar18 != 0xfff1)) {\n              bVar17 = Symbol::is_common_shndx(uVar18);\n              if (!bVar17) {\n                demangle(&local_58,(pSVar6->super_Symbol).name_);\n                uVar14 = CONCAT44(local_58._M_dataplus._M_p._4_4_,(uint)local_58._M_dataplus._M_p);\n                format = (char *)gettext("%s: unsupported symbol section 0x%x");\n                    /* try { // try from 0028c69d to 0028c6a1 has its CatchHandler @ 0028ca50 */\n                gold_error(format,uVar14,(ulong)uVar18);\n                if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)CONCAT44(local_58._M_dataplus._M_p._4_4_,(uint)local_58._M_dataplus._M_p) !=\n                    &local_58.field_2) {\n                  operator_delete((undefined1 *)\n                                  CONCAT44(local_58._M_dataplus._M_p._4_4_,\n                                           (uint)local_58._M_dataplus._M_p));\n                }\n                break;\n              }\n              if (((pSVar6->super_Symbol).field_0x3a & 7) != 0) {\nLAB_0028c752:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n              }\n            }\n            pOVar20 = (pSVar6->super_Symbol).u1_.output_segment;\n            if (((ulong)pOVar20->output_lists_[2].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_finish & 0x100000000) == 0) {\n              lVar23 = (*(code *)pOVar20->output_lists_[0].\n                                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                 ._M_impl._M_start[5])(pOVar20);\n              if ((lVar23 != 0) || (uVar18 == 0)) goto switchD_0028bebe_caseD_4;\n              if (((bVar16 & 1) != 0) ||\n                 ((uVar18 != 0xfff1 && (bVar17 = Symbol::is_common_shndx(uVar18), !bVar17)))) {\n                uVar25 = (ulong)uVar18;\n                pOVar11 = pOVar20->output_lists_[0].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_start[0x18];\n                if (pOVar11 == (Output_data *)Relobj::do_output_section) {\n                  ppOVar12 = pOVar20->output_lists_[3].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_finish;\n                  if ((ulong)((long)pOVar20->output_lists_[3].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_end_of_storage - (long)ppOVar12 >> 3) <= uVar25)\n                  goto LAB_0028ca08;\n                  pOVar22 = (Output_section *)ppOVar12[uVar25];\n                }\n                else {\n                  pOVar22 = (Output_section *)(*(code *)pOVar11)(pOVar20,uVar25);\n                }\n                bVar17 = is_section_folded(this,(Relobj *)pOVar20,uVar18);\n                if (bVar17) {\n                  SVar32 = Icf::get_folded_section(this->icf_,(Relobj *)pOVar20,uVar18);\n                  pRVar24 = SVar32.first;\n                  if (pRVar24 == (Relobj *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                  }\n                  p_Var9 = (pRVar24->super_Object)._vptr_Object[0x18];\n                  if (p_Var9 == Relobj::do_output_section) {\n                    ppOVar13 = (pRVar24->output_sections_).\n                               super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                               ._M_impl._M_start;\n                    uVar25 = SVar32._8_8_ & 0xffffffff;\n                    if ((ulong)((long)(pRVar24->output_sections_).\n                                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                      ._M_impl._M_finish - (long)ppOVar13 >> 3) <= uVar25) {\nLAB_0028ca08:\n                    /* WARNING: Subroutine does not return */\n                      do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n                    }\n                    pOVar22 = ppOVar13[uVar25];\n                  }\n                  else {\n                    iVar19 = (*p_Var9)(pRVar24,SVar32._8_8_ & 0xffffffff);\n                    pOVar22 = (Output_section *)CONCAT44(extraout_var_01,iVar19);\n                  }\n                  if (pOVar22 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                  }\n                }\n                else if (pOVar22 == (Output_section *)0x0) goto LAB_0028c9cd;\n                p_Var9 = (pOVar22->super_Output_data)._vptr_Output_data[0xb];\n                if (p_Var9 == Output_section::do_out_shndx) {\n                  uVar18 = pOVar22->out_shndx_;\n                  if (uVar18 == 0xffffffff) goto LAB_0028ca38;\n                }\n                else {\n                  uVar18 = (*p_Var9)(pOVar22);\n                }\n                if (0xfeff < uVar18) {\n                  if (uVar26 != 0xffffffff) {\n                    local_58._M_dataplus._M_p._0_4_ = uVar26;\n                    local_58._M_dataplus._M_p._4_4_ = uVar18;\n                    std::\n                    vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                    ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                              (&symtab_xindex->entries_,\n                               (pair<unsigned_int,_unsigned_int> *)&local_58);\n                  }\n                  if (uVar29 == 0xffffffff) {\n                    uVar18 = 0xffff;\n                  }\n                  else {\n                    local_58._M_dataplus._M_p._0_4_ = uVar29;\n                    local_58._M_dataplus._M_p._4_4_ = uVar18;\n                    std::\n                    vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                    ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                              (&dynsym_xindex->entries_,\n                               (pair<unsigned_int,_unsigned_int> *)&local_58);\n                    uVar18 = 0xffff;\n                  }\n                }\n                if (parameters->options_ == (General_options *)0x0) goto LAB_0028c8d7;\n                if ((parameters->options_->relocatable_).value != false) {\n                  if (((pOVar22->super_Output_data).field_0x20 & 1) == 0) goto LAB_0028c9b0;\n                  local_d0 = local_d0 - (pOVar22->super_Output_data).address_;\n                }\n              }\n            }\n            else {\n              if (((pSVar6->super_Symbol).field_0x3b & 2) != 0) {\n                iVar19 = (*pTVar5->_vptr_Target[5])(pTVar5,pSVar6);\n                VVar21 = CONCAT44(extraout_var,iVar19);\n              }\n              uVar18 = 0;\n              binding = STB_WEAK - (((byte)(pSVar6->super_Symbol).field_0x3c >> 1 & 1) == 0);\n            }\n            break;\n          case 1:\n            goto LAB_0028c1cb;\n          case 2:\n            goto LAB_0028c143;\n          case 3:\nswitchD_0028bebe_caseD_3:\n            uVar18 = 0xfff1;\n            break;\n          case 4:\nswitchD_0028bebe_caseD_4:\n            uVar18 = 0;\n            break;\n          default:\n            goto switchD_0028bebe_caseD_5;\n          }\n        }" { (if_statement "if ((binding == STB_GNU_UNIQUE) && ((pGVar8->gnu_unique_).value == false)) {\n            binding = STB_GLOBAL;\n          }" if (parenthesized_expression "((binding == STB_GNU_UNIQUE) && ((pGVar8->gnu_unique_).value == false))" ( (binary_expression "(binding == STB_GNU_UNIQUE) && ((pGVar8->gnu_unique_).value == false)" (parenthesized_expression "(binding == STB_GNU_UNIQUE)" ( (binary_expression "binding == STB_GNU_UNIQUE" identifier == identifier) )) && (parenthesized_expression "((pGVar8->gnu_unique_).value == false)" ( (binary_expression "(pGVar8->gnu_unique_).value == false" (field_expression "(pGVar8->gnu_unique_).value" (parenthesized_expression "(pGVar8->gnu_unique_)" ( (field_expression "pGVar8->gnu_unique_" identifier -> field_identifier) )) . field_identifier) == false) ))) )) (compound_statement "{\n            binding = STB_GLOBAL;\n          }" { (expression_statement "binding = STB_GLOBAL;" (assignment_expression "binding = STB_GLOBAL" identifier = identifier) ;) })) (switch_statement "switch(bVar15) {\n          case 0:\n            if ((bVar16 & 7) != 0) goto switchD_0028c5a7_caseD_0;\n            uVar18 = (pSVar6->super_Symbol).u2_.shndx;\n            bVar16 = (byte)(pSVar6->super_Symbol).field_0x3b >> 5;\n            if (((bVar16 & 1) != 1) && (uVar18 != 0xfff1)) {\n              bVar17 = Symbol::is_common_shndx(uVar18);\n              if (!bVar17) {\n                demangle(&local_58,(pSVar6->super_Symbol).name_);\n                uVar14 = CONCAT44(local_58._M_dataplus._M_p._4_4_,(uint)local_58._M_dataplus._M_p);\n                format = (char *)gettext("%s: unsupported symbol section 0x%x");\n                    /* try { // try from 0028c69d to 0028c6a1 has its CatchHandler @ 0028ca50 */\n                gold_error(format,uVar14,(ulong)uVar18);\n                if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)CONCAT44(local_58._M_dataplus._M_p._4_4_,(uint)local_58._M_dataplus._M_p) !=\n                    &local_58.field_2) {\n                  operator_delete((undefined1 *)\n                                  CONCAT44(local_58._M_dataplus._M_p._4_4_,\n                                           (uint)local_58._M_dataplus._M_p));\n                }\n                break;\n              }\n              if (((pSVar6->super_Symbol).field_0x3a & 7) != 0) {\nLAB_0028c752:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n              }\n            }\n            pOVar20 = (pSVar6->super_Symbol).u1_.output_segment;\n            if (((ulong)pOVar20->output_lists_[2].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_finish & 0x100000000) == 0) {\n              lVar23 = (*(code *)pOVar20->output_lists_[0].\n                                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                 ._M_impl._M_start[5])(pOVar20);\n              if ((lVar23 != 0) || (uVar18 == 0)) goto switchD_0028bebe_caseD_4;\n              if (((bVar16 & 1) != 0) ||\n                 ((uVar18 != 0xfff1 && (bVar17 = Symbol::is_common_shndx(uVar18), !bVar17)))) {\n                uVar25 = (ulong)uVar18;\n                pOVar11 = pOVar20->output_lists_[0].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_start[0x18];\n                if (pOVar11 == (Output_data *)Relobj::do_output_section) {\n                  ppOVar12 = pOVar20->output_lists_[3].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_finish;\n                  if ((ulong)((long)pOVar20->output_lists_[3].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_end_of_storage - (long)ppOVar12 >> 3) <= uVar25)\n                  goto LAB_0028ca08;\n                  pOVar22 = (Output_section *)ppOVar12[uVar25];\n                }\n                else {\n                  pOVar22 = (Output_section *)(*(code *)pOVar11)(pOVar20,uVar25);\n                }\n                bVar17 = is_section_folded(this,(Relobj *)pOVar20,uVar18);\n                if (bVar17) {\n                  SVar32 = Icf::get_folded_section(this->icf_,(Relobj *)pOVar20,uVar18);\n                  pRVar24 = SVar32.first;\n                  if (pRVar24 == (Relobj *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                  }\n                  p_Var9 = (pRVar24->super_Object)._vptr_Object[0x18];\n                  if (p_Var9 == Relobj::do_output_section) {\n                    ppOVar13 = (pRVar24->output_sections_).\n                               super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                               ._M_impl._M_start;\n                    uVar25 = SVar32._8_8_ & 0xffffffff;\n                    if ((ulong)((long)(pRVar24->output_sections_).\n                                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                      ._M_impl._M_finish - (long)ppOVar13 >> 3) <= uVar25) {\nLAB_0028ca08:\n                    /* WARNING: Subroutine does not return */\n                      do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n                    }\n                    pOVar22 = ppOVar13[uVar25];\n                  }\n                  else {\n                    iVar19 = (*p_Var9)(pRVar24,SVar32._8_8_ & 0xffffffff);\n                    pOVar22 = (Output_section *)CONCAT44(extraout_var_01,iVar19);\n                  }\n                  if (pOVar22 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                  }\n                }\n                else if (pOVar22 == (Output_section *)0x0) goto LAB_0028c9cd;\n                p_Var9 = (pOVar22->super_Output_data)._vptr_Output_data[0xb];\n                if (p_Var9 == Output_section::do_out_shndx) {\n                  uVar18 = pOVar22->out_shndx_;\n                  if (uVar18 == 0xffffffff) goto LAB_0028ca38;\n                }\n                else {\n                  uVar18 = (*p_Var9)(pOVar22);\n                }\n                if (0xfeff < uVar18) {\n                  if (uVar26 != 0xffffffff) {\n                    local_58._M_dataplus._M_p._0_4_ = uVar26;\n                    local_58._M_dataplus._M_p._4_4_ = uVar18;\n                    std::\n                    vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                    ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                              (&symtab_xindex->entries_,\n                               (pair<unsigned_int,_unsigned_int> *)&local_58);\n                  }\n                  if (uVar29 == 0xffffffff) {\n                    uVar18 = 0xffff;\n                  }\n                  else {\n                    local_58._M_dataplus._M_p._0_4_ = uVar29;\n                    local_58._M_dataplus._M_p._4_4_ = uVar18;\n                    std::\n                    vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                    ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                              (&dynsym_xindex->entries_,\n                               (pair<unsigned_int,_unsigned_int> *)&local_58);\n                    uVar18 = 0xffff;\n                  }\n                }\n                if (parameters->options_ == (General_options *)0x0) goto LAB_0028c8d7;\n                if ((parameters->options_->relocatable_).value != false) {\n                  if (((pOVar22->super_Output_data).field_0x20 & 1) == 0) goto LAB_0028c9b0;\n                  local_d0 = local_d0 - (pOVar22->super_Output_data).address_;\n                }\n              }\n            }\n            else {\n              if (((pSVar6->super_Symbol).field_0x3b & 2) != 0) {\n                iVar19 = (*pTVar5->_vptr_Target[5])(pTVar5,pSVar6);\n                VVar21 = CONCAT44(extraout_var,iVar19);\n              }\n              uVar18 = 0;\n              binding = STB_WEAK - (((byte)(pSVar6->super_Symbol).field_0x3c >> 1 & 1) == 0);\n            }\n            break;\n          case 1:\n            goto LAB_0028c1cb;\n          case 2:\n            goto LAB_0028c143;\n          case 3:\nswitchD_0028bebe_caseD_3:\n            uVar18 = 0xfff1;\n            break;\n          case 4:\nswitchD_0028bebe_caseD_4:\n            uVar18 = 0;\n            break;\n          default:\n            goto switchD_0028bebe_caseD_5;\n          }" switch (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\n          case 0:\n            if ((bVar16 & 7) != 0) goto switchD_0028c5a7_caseD_0;\n            uVar18 = (pSVar6->super_Symbol).u2_.shndx;\n            bVar16 = (byte)(pSVar6->super_Symbol).field_0x3b >> 5;\n            if (((bVar16 & 1) != 1) && (uVar18 != 0xfff1)) {\n              bVar17 = Symbol::is_common_shndx(uVar18);\n              if (!bVar17) {\n                demangle(&local_58,(pSVar6->super_Symbol).name_);\n                uVar14 = CONCAT44(local_58._M_dataplus._M_p._4_4_,(uint)local_58._M_dataplus._M_p);\n                format = (char *)gettext("%s: unsupported symbol section 0x%x");\n                    /* try { // try from 0028c69d to 0028c6a1 has its CatchHandler @ 0028ca50 */\n                gold_error(format,uVar14,(ulong)uVar18);\n                if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)CONCAT44(local_58._M_dataplus._M_p._4_4_,(uint)local_58._M_dataplus._M_p) !=\n                    &local_58.field_2) {\n                  operator_delete((undefined1 *)\n                                  CONCAT44(local_58._M_dataplus._M_p._4_4_,\n                                           (uint)local_58._M_dataplus._M_p));\n                }\n                break;\n              }\n              if (((pSVar6->super_Symbol).field_0x3a & 7) != 0) {\nLAB_0028c752:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n              }\n            }\n            pOVar20 = (pSVar6->super_Symbol).u1_.output_segment;\n            if (((ulong)pOVar20->output_lists_[2].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_finish & 0x100000000) == 0) {\n              lVar23 = (*(code *)pOVar20->output_lists_[0].\n                                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                 ._M_impl._M_start[5])(pOVar20);\n              if ((lVar23 != 0) || (uVar18 == 0)) goto switchD_0028bebe_caseD_4;\n              if (((bVar16 & 1) != 0) ||\n                 ((uVar18 != 0xfff1 && (bVar17 = Symbol::is_common_shndx(uVar18), !bVar17)))) {\n                uVar25 = (ulong)uVar18;\n                pOVar11 = pOVar20->output_lists_[0].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_start[0x18];\n                if (pOVar11 == (Output_data *)Relobj::do_output_section) {\n                  ppOVar12 = pOVar20->output_lists_[3].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_finish;\n                  if ((ulong)((long)pOVar20->output_lists_[3].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_end_of_storage - (long)ppOVar12 >> 3) <= uVar25)\n                  goto LAB_0028ca08;\n                  pOVar22 = (Output_section *)ppOVar12[uVar25];\n                }\n                else {\n                  pOVar22 = (Output_section *)(*(code *)pOVar11)(pOVar20,uVar25);\n                }\n                bVar17 = is_section_folded(this,(Relobj *)pOVar20,uVar18);\n                if (bVar17) {\n                  SVar32 = Icf::get_folded_section(this->icf_,(Relobj *)pOVar20,uVar18);\n                  pRVar24 = SVar32.first;\n                  if (pRVar24 == (Relobj *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                  }\n                  p_Var9 = (pRVar24->super_Object)._vptr_Object[0x18];\n                  if (p_Var9 == Relobj::do_output_section) {\n                    ppOVar13 = (pRVar24->output_sections_).\n                               super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                               ._M_impl._M_start;\n                    uVar25 = SVar32._8_8_ & 0xffffffff;\n                    if ((ulong)((long)(pRVar24->output_sections_).\n                                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                      ._M_impl._M_finish - (long)ppOVar13 >> 3) <= uVar25) {\nLAB_0028ca08:\n                    /* WARNING: Subroutine does not return */\n                      do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n                    }\n                    pOVar22 = ppOVar13[uVar25];\n                  }\n                  else {\n                    iVar19 = (*p_Var9)(pRVar24,SVar32._8_8_ & 0xffffffff);\n                    pOVar22 = (Output_section *)CONCAT44(extraout_var_01,iVar19);\n                  }\n                  if (pOVar22 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                  }\n                }\n                else if (pOVar22 == (Output_section *)0x0) goto LAB_0028c9cd;\n                p_Var9 = (pOVar22->super_Output_data)._vptr_Output_data[0xb];\n                if (p_Var9 == Output_section::do_out_shndx) {\n                  uVar18 = pOVar22->out_shndx_;\n                  if (uVar18 == 0xffffffff) goto LAB_0028ca38;\n                }\n                else {\n                  uVar18 = (*p_Var9)(pOVar22);\n                }\n                if (0xfeff < uVar18) {\n                  if (uVar26 != 0xffffffff) {\n                    local_58._M_dataplus._M_p._0_4_ = uVar26;\n                    local_58._M_dataplus._M_p._4_4_ = uVar18;\n                    std::\n                    vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                    ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                              (&symtab_xindex->entries_,\n                               (pair<unsigned_int,_unsigned_int> *)&local_58);\n                  }\n                  if (uVar29 == 0xffffffff) {\n                    uVar18 = 0xffff;\n                  }\n                  else {\n                    local_58._M_dataplus._M_p._0_4_ = uVar29;\n                    local_58._M_dataplus._M_p._4_4_ = uVar18;\n                    std::\n                    vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                    ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                              (&dynsym_xindex->entries_,\n                               (pair<unsigned_int,_unsigned_int> *)&local_58);\n                    uVar18 = 0xffff;\n                  }\n                }\n                if (parameters->options_ == (General_options *)0x0) goto LAB_0028c8d7;\n                if ((parameters->options_->relocatable_).value != false) {\n                  if (((pOVar22->super_Output_data).field_0x20 & 1) == 0) goto LAB_0028c9b0;\n                  local_d0 = local_d0 - (pOVar22->super_Output_data).address_;\n                }\n              }\n            }\n            else {\n              if (((pSVar6->super_Symbol).field_0x3b & 2) != 0) {\n                iVar19 = (*pTVar5->_vptr_Target[5])(pTVar5,pSVar6);\n                VVar21 = CONCAT44(extraout_var,iVar19);\n              }\n              uVar18 = 0;\n              binding = STB_WEAK - (((byte)(pSVar6->super_Symbol).field_0x3c >> 1 & 1) == 0);\n            }\n            break;\n          case 1:\n            goto LAB_0028c1cb;\n          case 2:\n            goto LAB_0028c143;\n          case 3:\nswitchD_0028bebe_caseD_3:\n            uVar18 = 0xfff1;\n            break;\n          case 4:\nswitchD_0028bebe_caseD_4:\n            uVar18 = 0;\n            break;\n          default:\n            goto switchD_0028bebe_caseD_5;\n          }" { (case_statement "case 0:\n            if ((bVar16 & 7) != 0) goto switchD_0028c5a7_caseD_0;\n            uVar18 = (pSVar6->super_Symbol).u2_.shndx;\n            bVar16 = (byte)(pSVar6->super_Symbol).field_0x3b >> 5;\n            if (((bVar16 & 1) != 1) && (uVar18 != 0xfff1)) {\n              bVar17 = Symbol::is_common_shndx(uVar18);\n              if (!bVar17) {\n                demangle(&local_58,(pSVar6->super_Symbol).name_);\n                uVar14 = CONCAT44(local_58._M_dataplus._M_p._4_4_,(uint)local_58._M_dataplus._M_p);\n                format = (char *)gettext("%s: unsupported symbol section 0x%x");\n                    /* try { // try from 0028c69d to 0028c6a1 has its CatchHandler @ 0028ca50 */\n                gold_error(format,uVar14,(ulong)uVar18);\n                if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)CONCAT44(local_58._M_dataplus._M_p._4_4_,(uint)local_58._M_dataplus._M_p) !=\n                    &local_58.field_2) {\n                  operator_delete((undefined1 *)\n                                  CONCAT44(local_58._M_dataplus._M_p._4_4_,\n                                           (uint)local_58._M_dataplus._M_p));\n                }\n                break;\n              }\n              if (((pSVar6->super_Symbol).field_0x3a & 7) != 0) {\nLAB_0028c752:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n              }\n            }\n            pOVar20 = (pSVar6->super_Symbol).u1_.output_segment;\n            if (((ulong)pOVar20->output_lists_[2].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_finish & 0x100000000) == 0) {\n              lVar23 = (*(code *)pOVar20->output_lists_[0].\n                                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                 ._M_impl._M_start[5])(pOVar20);\n              if ((lVar23 != 0) || (uVar18 == 0)) goto switchD_0028bebe_caseD_4;\n              if (((bVar16 & 1) != 0) ||\n                 ((uVar18 != 0xfff1 && (bVar17 = Symbol::is_common_shndx(uVar18), !bVar17)))) {\n                uVar25 = (ulong)uVar18;\n                pOVar11 = pOVar20->output_lists_[0].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_start[0x18];\n                if (pOVar11 == (Output_data *)Relobj::do_output_section) {\n                  ppOVar12 = pOVar20->output_lists_[3].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_finish;\n                  if ((ulong)((long)pOVar20->output_lists_[3].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_end_of_storage - (long)ppOVar12 >> 3) <= uVar25)\n                  goto LAB_0028ca08;\n                  pOVar22 = (Output_section *)ppOVar12[uVar25];\n                }\n                else {\n                  pOVar22 = (Output_section *)(*(code *)pOVar11)(pOVar20,uVar25);\n                }\n                bVar17 = is_section_folded(this,(Relobj *)pOVar20,uVar18);\n                if (bVar17) {\n                  SVar32 = Icf::get_folded_section(this->icf_,(Relobj *)pOVar20,uVar18);\n                  pRVar24 = SVar32.first;\n                  if (pRVar24 == (Relobj *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                  }\n                  p_Var9 = (pRVar24->super_Object)._vptr_Object[0x18];\n                  if (p_Var9 == Relobj::do_output_section) {\n                    ppOVar13 = (pRVar24->output_sections_).\n                               super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                               ._M_impl._M_start;\n                    uVar25 = SVar32._8_8_ & 0xffffffff;\n                    if ((ulong)((long)(pRVar24->output_sections_).\n                                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                      ._M_impl._M_finish - (long)ppOVar13 >> 3) <= uVar25) {\nLAB_0028ca08:\n                    /* WARNING: Subroutine does not return */\n                      do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n                    }\n                    pOVar22 = ppOVar13[uVar25];\n                  }\n                  else {\n                    iVar19 = (*p_Var9)(pRVar24,SVar32._8_8_ & 0xffffffff);\n                    pOVar22 = (Output_section *)CONCAT44(extraout_var_01,iVar19);\n                  }\n                  if (pOVar22 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                  }\n                }\n                else if (pOVar22 == (Output_section *)0x0) goto LAB_0028c9cd;\n                p_Var9 = (pOVar22->super_Output_data)._vptr_Output_data[0xb];\n                if (p_Var9 == Output_section::do_out_shndx) {\n                  uVar18 = pOVar22->out_shndx_;\n                  if (uVar18 == 0xffffffff) goto LAB_0028ca38;\n                }\n                else {\n                  uVar18 = (*p_Var9)(pOVar22);\n                }\n                if (0xfeff < uVar18) {\n                  if (uVar26 != 0xffffffff) {\n                    local_58._M_dataplus._M_p._0_4_ = uVar26;\n                    local_58._M_dataplus._M_p._4_4_ = uVar18;\n                    std::\n                    vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                    ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                              (&symtab_xindex->entries_,\n                               (pair<unsigned_int,_unsigned_int> *)&local_58);\n                  }\n                  if (uVar29 == 0xffffffff) {\n                    uVar18 = 0xffff;\n                  }\n                  else {\n                    local_58._M_dataplus._M_p._0_4_ = uVar29;\n                    local_58._M_dataplus._M_p._4_4_ = uVar18;\n                    std::\n                    vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                    ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                              (&dynsym_xindex->entries_,\n                               (pair<unsigned_int,_unsigned_int> *)&local_58);\n                    uVar18 = 0xffff;\n                  }\n                }\n                if (parameters->options_ == (General_options *)0x0) goto LAB_0028c8d7;\n                if ((parameters->options_->relocatable_).value != false) {\n                  if (((pOVar22->super_Output_data).field_0x20 & 1) == 0) goto LAB_0028c9b0;\n                  local_d0 = local_d0 - (pOVar22->super_Output_data).address_;\n                }\n              }\n            }\n            else {\n              if (((pSVar6->super_Symbol).field_0x3b & 2) != 0) {\n                iVar19 = (*pTVar5->_vptr_Target[5])(pTVar5,pSVar6);\n                VVar21 = CONCAT44(extraout_var,iVar19);\n              }\n              uVar18 = 0;\n              binding = STB_WEAK - (((byte)(pSVar6->super_Symbol).field_0x3c >> 1 & 1) == 0);\n            }\n            break;" case number_literal : (if_statement "if ((bVar16 & 7) != 0) goto switchD_0028c5a7_caseD_0;" if (parenthesized_expression "((bVar16 & 7) != 0)" ( (binary_expression "(bVar16 & 7) != 0" (parenthesized_expression "(bVar16 & 7)" ( (binary_expression "bVar16 & 7" identifier & number_literal) )) != number_literal) )) (goto_statement "goto switchD_0028c5a7_caseD_0;" goto statement_identifier ;)) (expression_statement "uVar18 = (pSVar6->super_Symbol).u2_.shndx;" (assignment_expression "uVar18 = (pSVar6->super_Symbol).u2_.shndx" identifier = (field_expression "(pSVar6->super_Symbol).u2_.shndx" (field_expression "(pSVar6->super_Symbol).u2_" (parenthesized_expression "(pSVar6->super_Symbol)" ( (field_expression "pSVar6->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "bVar16 = (byte)(pSVar6->super_Symbol).field_0x3b >> 5;" (assignment_expression "bVar16 = (byte)(pSVar6->super_Symbol).field_0x3b >> 5" identifier = (binary_expression "(byte)(pSVar6->super_Symbol).field_0x3b >> 5" (field_expression "(byte)(pSVar6->super_Symbol).field_0x3b" (call_expression "(byte)(pSVar6->super_Symbol)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(pSVar6->super_Symbol)" ( (field_expression "pSVar6->super_Symbol" identifier -> field_identifier) ))) . field_identifier) >> number_literal)) ;) (if_statement "if (((bVar16 & 1) != 1) && (uVar18 != 0xfff1)) {\n              bVar17 = Symbol::is_common_shndx(uVar18);\n              if (!bVar17) {\n                demangle(&local_58,(pSVar6->super_Symbol).name_);\n                uVar14 = CONCAT44(local_58._M_dataplus._M_p._4_4_,(uint)local_58._M_dataplus._M_p);\n                format = (char *)gettext("%s: unsupported symbol section 0x%x");\n                    /* try { // try from 0028c69d to 0028c6a1 has its CatchHandler @ 0028ca50 */\n                gold_error(format,uVar14,(ulong)uVar18);\n                if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)CONCAT44(local_58._M_dataplus._M_p._4_4_,(uint)local_58._M_dataplus._M_p) !=\n                    &local_58.field_2) {\n                  operator_delete((undefined1 *)\n                                  CONCAT44(local_58._M_dataplus._M_p._4_4_,\n                                           (uint)local_58._M_dataplus._M_p));\n                }\n                break;\n              }\n              if (((pSVar6->super_Symbol).field_0x3a & 7) != 0) {\nLAB_0028c752:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n              }\n            }" if (parenthesized_expression "(((bVar16 & 1) != 1) && (uVar18 != 0xfff1))" ( (binary_expression "((bVar16 & 1) != 1) && (uVar18 != 0xfff1)" (parenthesized_expression "((bVar16 & 1) != 1)" ( (binary_expression "(bVar16 & 1) != 1" (parenthesized_expression "(bVar16 & 1)" ( (binary_expression "bVar16 & 1" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(uVar18 != 0xfff1)" ( (binary_expression "uVar18 != 0xfff1" identifier != number_literal) ))) )) (compound_statement "{\n              bVar17 = Symbol::is_common_shndx(uVar18);\n              if (!bVar17) {\n                demangle(&local_58,(pSVar6->super_Symbol).name_);\n                uVar14 = CONCAT44(local_58._M_dataplus._M_p._4_4_,(uint)local_58._M_dataplus._M_p);\n                format = (char *)gettext("%s: unsupported symbol section 0x%x");\n                    /* try { // try from 0028c69d to 0028c6a1 has its CatchHandler @ 0028ca50 */\n                gold_error(format,uVar14,(ulong)uVar18);\n                if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)CONCAT44(local_58._M_dataplus._M_p._4_4_,(uint)local_58._M_dataplus._M_p) !=\n                    &local_58.field_2) {\n                  operator_delete((undefined1 *)\n                                  CONCAT44(local_58._M_dataplus._M_p._4_4_,\n                                           (uint)local_58._M_dataplus._M_p));\n                }\n                break;\n              }\n              if (((pSVar6->super_Symbol).field_0x3a & 7) != 0) {\nLAB_0028c752:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n              }\n            }" { (ERROR "bVar17 = Symbol::" (assignment_expression "bVar17 = Symbol" identifier = identifier) : :) (expression_statement "is_common_shndx(uVar18);" (call_expression "is_common_shndx(uVar18)" identifier (argument_list "(uVar18)" ( identifier ))) ;) (if_statement "if (!bVar17) {\n                demangle(&local_58,(pSVar6->super_Symbol).name_);\n                uVar14 = CONCAT44(local_58._M_dataplus._M_p._4_4_,(uint)local_58._M_dataplus._M_p);\n                format = (char *)gettext("%s: unsupported symbol section 0x%x");\n                    /* try { // try from 0028c69d to 0028c6a1 has its CatchHandler @ 0028ca50 */\n                gold_error(format,uVar14,(ulong)uVar18);\n                if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)CONCAT44(local_58._M_dataplus._M_p._4_4_,(uint)local_58._M_dataplus._M_p) !=\n                    &local_58.field_2) {\n                  operator_delete((undefined1 *)\n                                  CONCAT44(local_58._M_dataplus._M_p._4_4_,\n                                           (uint)local_58._M_dataplus._M_p));\n                }\n                break;\n              }" if (parenthesized_expression "(!bVar17)" ( (unary_expression "!bVar17" ! identifier) )) (compound_statement "{\n                demangle(&local_58,(pSVar6->super_Symbol).name_);\n                uVar14 = CONCAT44(local_58._M_dataplus._M_p._4_4_,(uint)local_58._M_dataplus._M_p);\n                format = (char *)gettext("%s: unsupported symbol section 0x%x");\n                    /* try { // try from 0028c69d to 0028c6a1 has its CatchHandler @ 0028ca50 */\n                gold_error(format,uVar14,(ulong)uVar18);\n                if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)CONCAT44(local_58._M_dataplus._M_p._4_4_,(uint)local_58._M_dataplus._M_p) !=\n                    &local_58.field_2) {\n                  operator_delete((undefined1 *)\n                                  CONCAT44(local_58._M_dataplus._M_p._4_4_,\n                                           (uint)local_58._M_dataplus._M_p));\n                }\n                break;\n              }" { (expression_statement "demangle(&local_58,(pSVar6->super_Symbol).name_);" (call_expression "demangle(&local_58,(pSVar6->super_Symbol).name_)" identifier (argument_list "(&local_58,(pSVar6->super_Symbol).name_)" ( (pointer_expression "&local_58" & identifier) , (field_expression "(pSVar6->super_Symbol).name_" (parenthesized_expression "(pSVar6->super_Symbol)" ( (field_expression "pSVar6->super_Symbol" identifier -> field_identifier) )) . field_identifier) ))) ;) (expression_statement "uVar14 = CONCAT44(local_58._M_dataplus._M_p._4_4_,(uint)local_58._M_dataplus._M_p);" (assignment_expression "uVar14 = CONCAT44(local_58._M_dataplus._M_p._4_4_,(uint)local_58._M_dataplus._M_p)" identifier = (call_expression "CONCAT44(local_58._M_dataplus._M_p._4_4_,(uint)local_58._M_dataplus._M_p)" identifier (argument_list "(local_58._M_dataplus._M_p._4_4_,(uint)local_58._M_dataplus._M_p)" ( (field_expression "local_58._M_dataplus._M_p._4_4_" (field_expression "local_58._M_dataplus._M_p" (field_expression "local_58._M_dataplus" identifier . field_identifier) . field_identifier) . field_identifier) , (cast_expression "(uint)local_58._M_dataplus._M_p" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_58._M_dataplus._M_p" (field_expression "local_58._M_dataplus" identifier . field_identifier) . field_identifier)) )))) ;) (expression_statement "format = (char *)gettext("%s: unsupported symbol section 0x%x");" (assignment_expression "format = (char *)gettext("%s: unsupported symbol section 0x%x")" identifier = (cast_expression "(char *)gettext("%s: unsupported symbol section 0x%x")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("%s: unsupported symbol section 0x%x")" identifier (argument_list "("%s: unsupported symbol section 0x%x")" ( (string_literal ""%s: unsupported symbol section 0x%x"" " string_content ") ))))) ;) comment (expression_statement "gold_error(format,uVar14,(ulong)uVar18);" (call_expression "gold_error(format,uVar14,(ulong)uVar18)" identifier (argument_list "(format,uVar14,(ulong)uVar18)" ( identifier , identifier , (cast_expression "(ulong)uVar18" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)CONCAT44(local_58._M_dataplus._M_p._4_4_,(uint)local_58._M_dataplus._M_p) !=\n                    &local_58.field_2) {\n                  operator_delete((undefined1 *)\n                                  CONCAT44(local_58._M_dataplus._M_p._4_4_,\n                                           (uint)local_58._M_dataplus._M_p));\n                }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)CONCAT44(local_58._M_dataplus._M_p._4_4_,(uint)local_58._M_dataplus._M_p) !=\n                    &local_58.field_2)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)CONCAT44(local_58._M_dataplus._M_p._4_4_,(uint)local_58._M_dataplus._M_p) !=\n                    &local_58.field_2)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n                     *)CONCAT44(local_58._M_dataplus._M_p._4_4_,(uint)local_58._M_dataplus._M_p) !=\n                    &local_58.field_2" (binary_expression "allocator<char>_>_9\n                     *)CONCAT44(local_58._M_dataplus._M_p._4_4_,(uint)local_58._M_dataplus._M_p)" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n                     *)CONCAT44(local_58._M_dataplus._M_p._4_4_,(uint)local_58._M_dataplus._M_p)" identifier * (ERROR ")" )) (call_expression "CONCAT44(local_58._M_dataplus._M_p._4_4_,(uint)local_58._M_dataplus._M_p)" identifier (argument_list "(local_58._M_dataplus._M_p._4_4_,(uint)local_58._M_dataplus._M_p)" ( (field_expression "local_58._M_dataplus._M_p._4_4_" (field_expression "local_58._M_dataplus._M_p" (field_expression "local_58._M_dataplus" identifier . field_identifier) . field_identifier) . field_identifier) , (cast_expression "(uint)local_58._M_dataplus._M_p" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_58._M_dataplus._M_p" (field_expression "local_58._M_dataplus" identifier . field_identifier) . field_identifier)) ))))) != (pointer_expression "&local_58.field_2" & (field_expression "local_58.field_2" identifier . field_identifier))) )) )) (compound_statement "{\n                  operator_delete((undefined1 *)\n                                  CONCAT44(local_58._M_dataplus._M_p._4_4_,\n                                           (uint)local_58._M_dataplus._M_p));\n                }" { (expression_statement "operator_delete((undefined1 *)\n                                  CONCAT44(local_58._M_dataplus._M_p._4_4_,\n                                           (uint)local_58._M_dataplus._M_p));" (call_expression "operator_delete((undefined1 *)\n                                  CONCAT44(local_58._M_dataplus._M_p._4_4_,\n                                           (uint)local_58._M_dataplus._M_p))" identifier (argument_list "((undefined1 *)\n                                  CONCAT44(local_58._M_dataplus._M_p._4_4_,\n                                           (uint)local_58._M_dataplus._M_p))" ( (cast_expression "(undefined1 *)\n                                  CONCAT44(local_58._M_dataplus._M_p._4_4_,\n                                           (uint)local_58._M_dataplus._M_p)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT44(local_58._M_dataplus._M_p._4_4_,\n                                           (uint)local_58._M_dataplus._M_p)" identifier (argument_list "(local_58._M_dataplus._M_p._4_4_,\n                                           (uint)local_58._M_dataplus._M_p)" ( (field_expression "local_58._M_dataplus._M_p._4_4_" (field_expression "local_58._M_dataplus._M_p" (field_expression "local_58._M_dataplus" identifier . field_identifier) . field_identifier) . field_identifier) , (cast_expression "(uint)local_58._M_dataplus._M_p" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_58._M_dataplus._M_p" (field_expression "local_58._M_dataplus" identifier . field_identifier) . field_identifier)) )))) ))) ;) })) (break_statement "break;" break ;) })) (if_statement "if (((pSVar6->super_Symbol).field_0x3a & 7) != 0) {\nLAB_0028c752:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n              }" if (parenthesized_expression "(((pSVar6->super_Symbol).field_0x3a & 7) != 0)" ( (binary_expression "((pSVar6->super_Symbol).field_0x3a & 7) != 0" (parenthesized_expression "((pSVar6->super_Symbol).field_0x3a & 7)" ( (binary_expression "(pSVar6->super_Symbol).field_0x3a & 7" (field_expression "(pSVar6->super_Symbol).field_0x3a" (parenthesized_expression "(pSVar6->super_Symbol)" ( (field_expression "pSVar6->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_0028c752:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n              }" { (labeled_statement "LAB_0028c752:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.h",0xa1,"object");" statement_identifier : comment (expression_statement "do_gold_unreachable("../../gold/symtab.h",0xa1,"object");" (call_expression "do_gold_unreachable("../../gold/symtab.h",0xa1,"object")" identifier (argument_list "("../../gold/symtab.h",0xa1,"object")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""object"" " string_content ") ))) ;)) })) })) (expression_statement "pOVar20 = (pSVar6->super_Symbol).u1_.output_segment;" (assignment_expression "pOVar20 = (pSVar6->super_Symbol).u1_.output_segment" identifier = (field_expression "(pSVar6->super_Symbol).u1_.output_segment" (field_expression "(pSVar6->super_Symbol).u1_" (parenthesized_expression "(pSVar6->super_Symbol)" ( (field_expression "pSVar6->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if (((ulong)pOVar20->output_lists_[2].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_finish & 0x100000000) == 0) {\n              lVar23 = (*(code *)pOVar20->output_lists_[0].\n                                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                 ._M_impl._M_start[5])(pOVar20);\n              if ((lVar23 != 0) || (uVar18 == 0)) goto switchD_0028bebe_caseD_4;\n              if (((bVar16 & 1) != 0) ||\n                 ((uVar18 != 0xfff1 && (bVar17 = Symbol::is_common_shndx(uVar18), !bVar17)))) {\n                uVar25 = (ulong)uVar18;\n                pOVar11 = pOVar20->output_lists_[0].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_start[0x18];\n                if (pOVar11 == (Output_data *)Relobj::do_output_section) {\n                  ppOVar12 = pOVar20->output_lists_[3].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_finish;\n                  if ((ulong)((long)pOVar20->output_lists_[3].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_end_of_storage - (long)ppOVar12 >> 3) <= uVar25)\n                  goto LAB_0028ca08;\n                  pOVar22 = (Output_section *)ppOVar12[uVar25];\n                }\n                else {\n                  pOVar22 = (Output_section *)(*(code *)pOVar11)(pOVar20,uVar25);\n                }\n                bVar17 = is_section_folded(this,(Relobj *)pOVar20,uVar18);\n                if (bVar17) {\n                  SVar32 = Icf::get_folded_section(this->icf_,(Relobj *)pOVar20,uVar18);\n                  pRVar24 = SVar32.first;\n                  if (pRVar24 == (Relobj *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                  }\n                  p_Var9 = (pRVar24->super_Object)._vptr_Object[0x18];\n                  if (p_Var9 == Relobj::do_output_section) {\n                    ppOVar13 = (pRVar24->output_sections_).\n                               super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                               ._M_impl._M_start;\n                    uVar25 = SVar32._8_8_ & 0xffffffff;\n                    if ((ulong)((long)(pRVar24->output_sections_).\n                                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                      ._M_impl._M_finish - (long)ppOVar13 >> 3) <= uVar25) {\nLAB_0028ca08:\n                    /* WARNING: Subroutine does not return */\n                      do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n                    }\n                    pOVar22 = ppOVar13[uVar25];\n                  }\n                  else {\n                    iVar19 = (*p_Var9)(pRVar24,SVar32._8_8_ & 0xffffffff);\n                    pOVar22 = (Output_section *)CONCAT44(extraout_var_01,iVar19);\n                  }\n                  if (pOVar22 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                  }\n                }\n                else if (pOVar22 == (Output_section *)0x0) goto LAB_0028c9cd;\n                p_Var9 = (pOVar22->super_Output_data)._vptr_Output_data[0xb];\n                if (p_Var9 == Output_section::do_out_shndx) {\n                  uVar18 = pOVar22->out_shndx_;\n                  if (uVar18 == 0xffffffff) goto LAB_0028ca38;\n                }\n                else {\n                  uVar18 = (*p_Var9)(pOVar22);\n                }\n                if (0xfeff < uVar18) {\n                  if (uVar26 != 0xffffffff) {\n                    local_58._M_dataplus._M_p._0_4_ = uVar26;\n                    local_58._M_dataplus._M_p._4_4_ = uVar18;\n                    std::\n                    vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                    ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                              (&symtab_xindex->entries_,\n                               (pair<unsigned_int,_unsigned_int> *)&local_58);\n                  }\n                  if (uVar29 == 0xffffffff) {\n                    uVar18 = 0xffff;\n                  }\n                  else {\n                    local_58._M_dataplus._M_p._0_4_ = uVar29;\n                    local_58._M_dataplus._M_p._4_4_ = uVar18;\n                    std::\n                    vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                    ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                              (&dynsym_xindex->entries_,\n                               (pair<unsigned_int,_unsigned_int> *)&local_58);\n                    uVar18 = 0xffff;\n                  }\n                }\n                if (parameters->options_ == (General_options *)0x0) goto LAB_0028c8d7;\n                if ((parameters->options_->relocatable_).value != false) {\n                  if (((pOVar22->super_Output_data).field_0x20 & 1) == 0) goto LAB_0028c9b0;\n                  local_d0 = local_d0 - (pOVar22->super_Output_data).address_;\n                }\n              }\n            }\n            else {\n              if (((pSVar6->super_Symbol).field_0x3b & 2) != 0) {\n                iVar19 = (*pTVar5->_vptr_Target[5])(pTVar5,pSVar6);\n                VVar21 = CONCAT44(extraout_var,iVar19);\n              }\n              uVar18 = 0;\n              binding = STB_WEAK - (((byte)(pSVar6->super_Symbol).field_0x3c >> 1 & 1) == 0);\n            }" if (parenthesized_expression "(((ulong)pOVar20->output_lists_[2].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_finish & 0x100000000) == 0)" ( (binary_expression "((ulong)pOVar20->output_lists_[2].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_finish & 0x100000000) == 0" (parenthesized_expression "((ulong)pOVar20->output_lists_[2].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_finish & 0x100000000)" ( (binary_expression "(ulong)pOVar20->output_lists_[2].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_finish & 0x100000000" (field_expression "(ulong)pOVar20->output_lists_[2].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_finish" (field_expression "(ulong)pOVar20->output_lists_[2].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl" (binary_expression "(ulong)pOVar20->output_lists_[2].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "(ulong)pOVar20->output_lists_[2].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "(ulong)pOVar20->output_lists_[2].\n                        super__Vector_base<gold::Output_data*,_std" (binary_expression "(ulong)pOVar20->output_lists_[2].\n                        super__Vector_base<gold" (cast_expression "(ulong)pOVar20->output_lists_[2].\n                        super__Vector_base" ( (type_descriptor "ulong" type_identifier) ) (field_expression "pOVar20->output_lists_[2].\n                        super__Vector_base" (subscript_expression "pOVar20->output_lists_[2]" (field_expression "pOVar20->output_lists_" identifier -> field_identifier) [ number_literal ]) . field_identifier)) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n              lVar23 = (*(code *)pOVar20->output_lists_[0].\n                                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                 ._M_impl._M_start[5])(pOVar20);\n              if ((lVar23 != 0) || (uVar18 == 0)) goto switchD_0028bebe_caseD_4;\n              if (((bVar16 & 1) != 0) ||\n                 ((uVar18 != 0xfff1 && (bVar17 = Symbol::is_common_shndx(uVar18), !bVar17)))) {\n                uVar25 = (ulong)uVar18;\n                pOVar11 = pOVar20->output_lists_[0].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_start[0x18];\n                if (pOVar11 == (Output_data *)Relobj::do_output_section) {\n                  ppOVar12 = pOVar20->output_lists_[3].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_finish;\n                  if ((ulong)((long)pOVar20->output_lists_[3].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_end_of_storage - (long)ppOVar12 >> 3) <= uVar25)\n                  goto LAB_0028ca08;\n                  pOVar22 = (Output_section *)ppOVar12[uVar25];\n                }\n                else {\n                  pOVar22 = (Output_section *)(*(code *)pOVar11)(pOVar20,uVar25);\n                }\n                bVar17 = is_section_folded(this,(Relobj *)pOVar20,uVar18);\n                if (bVar17) {\n                  SVar32 = Icf::get_folded_section(this->icf_,(Relobj *)pOVar20,uVar18);\n                  pRVar24 = SVar32.first;\n                  if (pRVar24 == (Relobj *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                  }\n                  p_Var9 = (pRVar24->super_Object)._vptr_Object[0x18];\n                  if (p_Var9 == Relobj::do_output_section) {\n                    ppOVar13 = (pRVar24->output_sections_).\n                               super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                               ._M_impl._M_start;\n                    uVar25 = SVar32._8_8_ & 0xffffffff;\n                    if ((ulong)((long)(pRVar24->output_sections_).\n                                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                      ._M_impl._M_finish - (long)ppOVar13 >> 3) <= uVar25) {\nLAB_0028ca08:\n                    /* WARNING: Subroutine does not return */\n                      do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n                    }\n                    pOVar22 = ppOVar13[uVar25];\n                  }\n                  else {\n                    iVar19 = (*p_Var9)(pRVar24,SVar32._8_8_ & 0xffffffff);\n                    pOVar22 = (Output_section *)CONCAT44(extraout_var_01,iVar19);\n                  }\n                  if (pOVar22 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                  }\n                }\n                else if (pOVar22 == (Output_section *)0x0) goto LAB_0028c9cd;\n                p_Var9 = (pOVar22->super_Output_data)._vptr_Output_data[0xb];\n                if (p_Var9 == Output_section::do_out_shndx) {\n                  uVar18 = pOVar22->out_shndx_;\n                  if (uVar18 == 0xffffffff) goto LAB_0028ca38;\n                }\n                else {\n                  uVar18 = (*p_Var9)(pOVar22);\n                }\n                if (0xfeff < uVar18) {\n                  if (uVar26 != 0xffffffff) {\n                    local_58._M_dataplus._M_p._0_4_ = uVar26;\n                    local_58._M_dataplus._M_p._4_4_ = uVar18;\n                    std::\n                    vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                    ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                              (&symtab_xindex->entries_,\n                               (pair<unsigned_int,_unsigned_int> *)&local_58);\n                  }\n                  if (uVar29 == 0xffffffff) {\n                    uVar18 = 0xffff;\n                  }\n                  else {\n                    local_58._M_dataplus._M_p._0_4_ = uVar29;\n                    local_58._M_dataplus._M_p._4_4_ = uVar18;\n                    std::\n                    vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                    ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                              (&dynsym_xindex->entries_,\n                               (pair<unsigned_int,_unsigned_int> *)&local_58);\n                    uVar18 = 0xffff;\n                  }\n                }\n                if (parameters->options_ == (General_options *)0x0) goto LAB_0028c8d7;\n                if ((parameters->options_->relocatable_).value != false) {\n                  if (((pOVar22->super_Output_data).field_0x20 & 1) == 0) goto LAB_0028c9b0;\n                  local_d0 = local_d0 - (pOVar22->super_Output_data).address_;\n                }\n              }\n            }" { (expression_statement "lVar23 = (*(code *)pOVar20->output_lists_[0].\n                                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                 ._M_impl._M_start[5])(pOVar20);" (assignment_expression "lVar23 = (*(code *)pOVar20->output_lists_[0].\n                                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                 ._M_impl._M_start[5])(pOVar20)" identifier = (call_expression "(*(code *)pOVar20->output_lists_[0].\n                                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                 ._M_impl._M_start[5])(pOVar20)" (parenthesized_expression "(*(code *)pOVar20->output_lists_[0].\n                                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                 ._M_impl._M_start[5])" ( (ERROR "*(code *)pOVar20->output_lists_[0].\n                                 super__Vector_base<gold::Output_data*,_std::allocator<gold::" (comma_expression "*(code *)pOVar20->output_lists_[0].\n                                 super__Vector_base<gold::Output_data*,_std" (binary_expression "*(code *)pOVar20->output_lists_[0].\n                                 super__Vector_base<gold::Output_data*" (binary_expression "*(code *)pOVar20->output_lists_[0].\n                                 super__Vector_base<gold" (pointer_expression "*(code *)pOVar20->output_lists_[0].\n                                 super__Vector_base" * (cast_expression "(code *)pOVar20->output_lists_[0].\n                                 super__Vector_base" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pOVar20->output_lists_[0].\n                                 super__Vector_base" (subscript_expression "pOVar20->output_lists_[0]" (field_expression "pOVar20->output_lists_" identifier -> field_identifier) [ number_literal ]) . field_identifier))) < identifier) (ERROR "::Output_data" : : identifier) * identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (subscript_expression "Output_data*>_>\n                                 ._M_impl._M_start[5]" (field_expression "Output_data*>_>\n                                 ._M_impl._M_start" (field_expression "Output_data*>_>\n                                 ._M_impl" (binary_expression "Output_data*>_" identifier * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) [ number_literal ]) )) (argument_list "(pOVar20)" ( identifier )))) ;) (if_statement "if ((lVar23 != 0) || (uVar18 == 0)) goto switchD_0028bebe_caseD_4;" if (parenthesized_expression "((lVar23 != 0) || (uVar18 == 0))" ( (binary_expression "(lVar23 != 0) || (uVar18 == 0)" (parenthesized_expression "(lVar23 != 0)" ( (binary_expression "lVar23 != 0" identifier != number_literal) )) || (parenthesized_expression "(uVar18 == 0)" ( (binary_expression "uVar18 == 0" identifier == number_literal) ))) )) (goto_statement "goto switchD_0028bebe_caseD_4;" goto statement_identifier ;)) (if_statement "if (((bVar16 & 1) != 0) ||\n                 ((uVar18 != 0xfff1 && (bVar17 = Symbol::is_common_shndx(uVar18), !bVar17)))) {\n                uVar25 = (ulong)uVar18;\n                pOVar11 = pOVar20->output_lists_[0].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_start[0x18];\n                if (pOVar11 == (Output_data *)Relobj::do_output_section) {\n                  ppOVar12 = pOVar20->output_lists_[3].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_finish;\n                  if ((ulong)((long)pOVar20->output_lists_[3].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_end_of_storage - (long)ppOVar12 >> 3) <= uVar25)\n                  goto LAB_0028ca08;\n                  pOVar22 = (Output_section *)ppOVar12[uVar25];\n                }\n                else {\n                  pOVar22 = (Output_section *)(*(code *)pOVar11)(pOVar20,uVar25);\n                }\n                bVar17 = is_section_folded(this,(Relobj *)pOVar20,uVar18);\n                if (bVar17) {\n                  SVar32 = Icf::get_folded_section(this->icf_,(Relobj *)pOVar20,uVar18);\n                  pRVar24 = SVar32.first;\n                  if (pRVar24 == (Relobj *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                  }\n                  p_Var9 = (pRVar24->super_Object)._vptr_Object[0x18];\n                  if (p_Var9 == Relobj::do_output_section) {\n                    ppOVar13 = (pRVar24->output_sections_).\n                               super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                               ._M_impl._M_start;\n                    uVar25 = SVar32._8_8_ & 0xffffffff;\n                    if ((ulong)((long)(pRVar24->output_sections_).\n                                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                      ._M_impl._M_finish - (long)ppOVar13 >> 3) <= uVar25) {\nLAB_0028ca08:\n                    /* WARNING: Subroutine does not return */\n                      do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n                    }\n                    pOVar22 = ppOVar13[uVar25];\n                  }\n                  else {\n                    iVar19 = (*p_Var9)(pRVar24,SVar32._8_8_ & 0xffffffff);\n                    pOVar22 = (Output_section *)CONCAT44(extraout_var_01,iVar19);\n                  }\n                  if (pOVar22 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                  }\n                }\n                else if (pOVar22 == (Output_section *)0x0) goto LAB_0028c9cd;\n                p_Var9 = (pOVar22->super_Output_data)._vptr_Output_data[0xb];\n                if (p_Var9 == Output_section::do_out_shndx) {\n                  uVar18 = pOVar22->out_shndx_;\n                  if (uVar18 == 0xffffffff) goto LAB_0028ca38;\n                }\n                else {\n                  uVar18 = (*p_Var9)(pOVar22);\n                }\n                if (0xfeff < uVar18) {\n                  if (uVar26 != 0xffffffff) {\n                    local_58._M_dataplus._M_p._0_4_ = uVar26;\n                    local_58._M_dataplus._M_p._4_4_ = uVar18;\n                    std::\n                    vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                    ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                              (&symtab_xindex->entries_,\n                               (pair<unsigned_int,_unsigned_int> *)&local_58);\n                  }\n                  if (uVar29 == 0xffffffff) {\n                    uVar18 = 0xffff;\n                  }\n                  else {\n                    local_58._M_dataplus._M_p._0_4_ = uVar29;\n                    local_58._M_dataplus._M_p._4_4_ = uVar18;\n                    std::\n                    vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                    ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                              (&dynsym_xindex->entries_,\n                               (pair<unsigned_int,_unsigned_int> *)&local_58);\n                    uVar18 = 0xffff;\n                  }\n                }\n                if (parameters->options_ == (General_options *)0x0) goto LAB_0028c8d7;\n                if ((parameters->options_->relocatable_).value != false) {\n                  if (((pOVar22->super_Output_data).field_0x20 & 1) == 0) goto LAB_0028c9b0;\n                  local_d0 = local_d0 - (pOVar22->super_Output_data).address_;\n                }\n              }" if (parenthesized_expression "(((bVar16 & 1) != 0) ||\n                 ((uVar18 != 0xfff1 && (bVar17 = Symbol::is_common_shndx(uVar18), !bVar17))))" ( (binary_expression "((bVar16 & 1) != 0) ||\n                 ((uVar18 != 0xfff1 && (bVar17 = Symbol::is_common_shndx(uVar18), !bVar17)))" (parenthesized_expression "((bVar16 & 1) != 0)" ( (binary_expression "(bVar16 & 1) != 0" (parenthesized_expression "(bVar16 & 1)" ( (binary_expression "bVar16 & 1" identifier & number_literal) )) != number_literal) )) || (parenthesized_expression "((uVar18 != 0xfff1 && (bVar17 = Symbol::is_common_shndx(uVar18), !bVar17)))" ( (parenthesized_expression "(uVar18 != 0xfff1 && (bVar17 = Symbol::is_common_shndx(uVar18), !bVar17))" ( (binary_expression "uVar18 != 0xfff1 && (bVar17 = Symbol::is_common_shndx(uVar18), !bVar17)" (binary_expression "uVar18 != 0xfff1" identifier != number_literal) && (parenthesized_expression "(bVar17 = Symbol::is_common_shndx(uVar18), !bVar17)" ( (ERROR "bVar17 = Symbol::" (assignment_expression "bVar17 = Symbol" identifier = identifier) : :) (comma_expression "is_common_shndx(uVar18), !bVar17" (call_expression "is_common_shndx(uVar18)" identifier (argument_list "(uVar18)" ( identifier ))) , (unary_expression "!bVar17" ! identifier)) ))) )) ))) )) (compound_statement "{\n                uVar25 = (ulong)uVar18;\n                pOVar11 = pOVar20->output_lists_[0].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_start[0x18];\n                if (pOVar11 == (Output_data *)Relobj::do_output_section) {\n                  ppOVar12 = pOVar20->output_lists_[3].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_finish;\n                  if ((ulong)((long)pOVar20->output_lists_[3].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_end_of_storage - (long)ppOVar12 >> 3) <= uVar25)\n                  goto LAB_0028ca08;\n                  pOVar22 = (Output_section *)ppOVar12[uVar25];\n                }\n                else {\n                  pOVar22 = (Output_section *)(*(code *)pOVar11)(pOVar20,uVar25);\n                }\n                bVar17 = is_section_folded(this,(Relobj *)pOVar20,uVar18);\n                if (bVar17) {\n                  SVar32 = Icf::get_folded_section(this->icf_,(Relobj *)pOVar20,uVar18);\n                  pRVar24 = SVar32.first;\n                  if (pRVar24 == (Relobj *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                  }\n                  p_Var9 = (pRVar24->super_Object)._vptr_Object[0x18];\n                  if (p_Var9 == Relobj::do_output_section) {\n                    ppOVar13 = (pRVar24->output_sections_).\n                               super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                               ._M_impl._M_start;\n                    uVar25 = SVar32._8_8_ & 0xffffffff;\n                    if ((ulong)((long)(pRVar24->output_sections_).\n                                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                      ._M_impl._M_finish - (long)ppOVar13 >> 3) <= uVar25) {\nLAB_0028ca08:\n                    /* WARNING: Subroutine does not return */\n                      do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n                    }\n                    pOVar22 = ppOVar13[uVar25];\n                  }\n                  else {\n                    iVar19 = (*p_Var9)(pRVar24,SVar32._8_8_ & 0xffffffff);\n                    pOVar22 = (Output_section *)CONCAT44(extraout_var_01,iVar19);\n                  }\n                  if (pOVar22 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                  }\n                }\n                else if (pOVar22 == (Output_section *)0x0) goto LAB_0028c9cd;\n                p_Var9 = (pOVar22->super_Output_data)._vptr_Output_data[0xb];\n                if (p_Var9 == Output_section::do_out_shndx) {\n                  uVar18 = pOVar22->out_shndx_;\n                  if (uVar18 == 0xffffffff) goto LAB_0028ca38;\n                }\n                else {\n                  uVar18 = (*p_Var9)(pOVar22);\n                }\n                if (0xfeff < uVar18) {\n                  if (uVar26 != 0xffffffff) {\n                    local_58._M_dataplus._M_p._0_4_ = uVar26;\n                    local_58._M_dataplus._M_p._4_4_ = uVar18;\n                    std::\n                    vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                    ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                              (&symtab_xindex->entries_,\n                               (pair<unsigned_int,_unsigned_int> *)&local_58);\n                  }\n                  if (uVar29 == 0xffffffff) {\n                    uVar18 = 0xffff;\n                  }\n                  else {\n                    local_58._M_dataplus._M_p._0_4_ = uVar29;\n                    local_58._M_dataplus._M_p._4_4_ = uVar18;\n                    std::\n                    vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                    ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                              (&dynsym_xindex->entries_,\n                               (pair<unsigned_int,_unsigned_int> *)&local_58);\n                    uVar18 = 0xffff;\n                  }\n                }\n                if (parameters->options_ == (General_options *)0x0) goto LAB_0028c8d7;\n                if ((parameters->options_->relocatable_).value != false) {\n                  if (((pOVar22->super_Output_data).field_0x20 & 1) == 0) goto LAB_0028c9b0;\n                  local_d0 = local_d0 - (pOVar22->super_Output_data).address_;\n                }\n              }" { (expression_statement "uVar25 = (ulong)uVar18;" (assignment_expression "uVar25 = (ulong)uVar18" identifier = (cast_expression "(ulong)uVar18" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "pOVar11 = pOVar20->output_lists_[0].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_start[0x18];" (subscript_expression "pOVar11 = pOVar20->output_lists_[0].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_start[0x18]" (field_expression "pOVar11 = pOVar20->output_lists_[0].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_start" (field_expression "pOVar11 = pOVar20->output_lists_[0].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl" (binary_expression "pOVar11 = pOVar20->output_lists_[0].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "pOVar11 = pOVar20->output_lists_[0].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "pOVar11 = pOVar20->output_lists_[0].\n                          super__Vector_base<gold::Output_data*,_std" (assignment_expression "pOVar11 = pOVar20->output_lists_[0].\n                          super__Vector_base<gold" identifier = (binary_expression "pOVar20->output_lists_[0].\n                          super__Vector_base<gold" (field_expression "pOVar20->output_lists_[0].\n                          super__Vector_base" (subscript_expression "pOVar20->output_lists_[0]" (field_expression "pOVar20->output_lists_" identifier -> field_identifier) [ number_literal ]) . field_identifier) < identifier)) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) [ number_literal ]) ;) (if_statement "if (pOVar11 == (Output_data *)Relobj::do_output_section) {\n                  ppOVar12 = pOVar20->output_lists_[3].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_finish;\n                  if ((ulong)((long)pOVar20->output_lists_[3].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_end_of_storage - (long)ppOVar12 >> 3) <= uVar25)\n                  goto LAB_0028ca08;\n                  pOVar22 = (Output_section *)ppOVar12[uVar25];\n                }\n                else {\n                  pOVar22 = (Output_section *)(*(code *)pOVar11)(pOVar20,uVar25);\n                }" if (parenthesized_expression "(pOVar11 == (Output_data *)Relobj::do_output_section)" ( (binary_expression "pOVar11 == (Output_data *)Relobj" identifier == (cast_expression "(Output_data *)Relobj" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) (ERROR "::do_output_section" : : identifier) )) (compound_statement "{\n                  ppOVar12 = pOVar20->output_lists_[3].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_finish;\n                  if ((ulong)((long)pOVar20->output_lists_[3].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_end_of_storage - (long)ppOVar12 >> 3) <= uVar25)\n                  goto LAB_0028ca08;\n                  pOVar22 = (Output_section *)ppOVar12[uVar25];\n                }" { (expression_statement "ppOVar12 = pOVar20->output_lists_[3].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_finish;" (field_expression "ppOVar12 = pOVar20->output_lists_[3].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_finish" (field_expression "ppOVar12 = pOVar20->output_lists_[3].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl" (binary_expression "ppOVar12 = pOVar20->output_lists_[3].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "ppOVar12 = pOVar20->output_lists_[3].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "ppOVar12 = pOVar20->output_lists_[3].\n                             super__Vector_base<gold::Output_data*,_std" (assignment_expression "ppOVar12 = pOVar20->output_lists_[3].\n                             super__Vector_base<gold" identifier = (binary_expression "pOVar20->output_lists_[3].\n                             super__Vector_base<gold" (field_expression "pOVar20->output_lists_[3].\n                             super__Vector_base" (subscript_expression "pOVar20->output_lists_[3]" (field_expression "pOVar20->output_lists_" identifier -> field_identifier) [ number_literal ]) . field_identifier) < identifier)) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if ((ulong)((long)pOVar20->output_lists_[3].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_end_of_storage - (long)ppOVar12 >> 3) <= uVar25)\n                  goto LAB_0028ca08;" if (parenthesized_expression "((ulong)((long)pOVar20->output_lists_[3].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_end_of_storage - (long)ppOVar12 >> 3) <= uVar25)" ( (binary_expression "(ulong)((long)pOVar20->output_lists_[3].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_end_of_storage - (long)ppOVar12 >> 3) <= uVar25" (call_expression "(ulong)((long)pOVar20->output_lists_[3].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_end_of_storage - (long)ppOVar12 >> 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((long)pOVar20->output_lists_[3].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_end_of_storage - (long)ppOVar12 >> 3)" ( (binary_expression "(long)pOVar20->output_lists_[3].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_end_of_storage - (long)ppOVar12 >> 3" (binary_expression "(long)pOVar20->output_lists_[3].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_end_of_storage - (long)ppOVar12" (field_expression "(long)pOVar20->output_lists_[3].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_end_of_storage" (field_expression "(long)pOVar20->output_lists_[3].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl" (binary_expression "(long)pOVar20->output_lists_[3].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "(long)pOVar20->output_lists_[3].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "(long)pOVar20->output_lists_[3].\n                                    super__Vector_base<gold::Output_data*,_std" (binary_expression "(long)pOVar20->output_lists_[3].\n                                    super__Vector_base<gold" (cast_expression "(long)pOVar20->output_lists_[3].\n                                    super__Vector_base" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "pOVar20->output_lists_[3].\n                                    super__Vector_base" (subscript_expression "pOVar20->output_lists_[3]" (field_expression "pOVar20->output_lists_" identifier -> field_identifier) [ number_literal ]) . field_identifier)) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) - (cast_expression "(long)ppOVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) >> number_literal) ))) <= identifier) )) (goto_statement "goto LAB_0028ca08;" goto statement_identifier ;)) (expression_statement "pOVar22 = (Output_section *)ppOVar12[uVar25];" (assignment_expression "pOVar22 = (Output_section *)ppOVar12[uVar25]" identifier = (cast_expression "(Output_section *)ppOVar12[uVar25]" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppOVar12[uVar25]" identifier [ identifier ]))) ;) }) (else_clause "else {\n                  pOVar22 = (Output_section *)(*(code *)pOVar11)(pOVar20,uVar25);\n                }" else (compound_statement "{\n                  pOVar22 = (Output_section *)(*(code *)pOVar11)(pOVar20,uVar25);\n                }" { (expression_statement "pOVar22 = (Output_section *)(*(code *)pOVar11)(pOVar20,uVar25);" (assignment_expression "pOVar22 = (Output_section *)(*(code *)pOVar11)(pOVar20,uVar25)" identifier = (cast_expression "(Output_section *)(*(code *)pOVar11)(pOVar20,uVar25)" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)pOVar11)(pOVar20,uVar25)" (parenthesized_expression "(*(code *)pOVar11)" ( (pointer_expression "*(code *)pOVar11" * (cast_expression "(code *)pOVar11" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pOVar20,uVar25)" ( identifier , identifier ))))) ;) }))) (expression_statement "bVar17 = is_section_folded(this,(Relobj *)pOVar20,uVar18);" (assignment_expression "bVar17 = is_section_folded(this,(Relobj *)pOVar20,uVar18)" identifier = (call_expression "is_section_folded(this,(Relobj *)pOVar20,uVar18)" identifier (argument_list "(this,(Relobj *)pOVar20,uVar18)" ( identifier , (cast_expression "(Relobj *)pOVar20" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (if_statement "if (bVar17) {\n                  SVar32 = Icf::get_folded_section(this->icf_,(Relobj *)pOVar20,uVar18);\n                  pRVar24 = SVar32.first;\n                  if (pRVar24 == (Relobj *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                  }\n                  p_Var9 = (pRVar24->super_Object)._vptr_Object[0x18];\n                  if (p_Var9 == Relobj::do_output_section) {\n                    ppOVar13 = (pRVar24->output_sections_).\n                               super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                               ._M_impl._M_start;\n                    uVar25 = SVar32._8_8_ & 0xffffffff;\n                    if ((ulong)((long)(pRVar24->output_sections_).\n                                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                      ._M_impl._M_finish - (long)ppOVar13 >> 3) <= uVar25) {\nLAB_0028ca08:\n                    /* WARNING: Subroutine does not return */\n                      do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n                    }\n                    pOVar22 = ppOVar13[uVar25];\n                  }\n                  else {\n                    iVar19 = (*p_Var9)(pRVar24,SVar32._8_8_ & 0xffffffff);\n                    pOVar22 = (Output_section *)CONCAT44(extraout_var_01,iVar19);\n                  }\n                  if (pOVar22 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                  }\n                }\n                else if (pOVar22 == (Output_section *)0x0) goto LAB_0028c9cd;" if (parenthesized_expression "(bVar17)" ( identifier )) (compound_statement "{\n                  SVar32 = Icf::get_folded_section(this->icf_,(Relobj *)pOVar20,uVar18);\n                  pRVar24 = SVar32.first;\n                  if (pRVar24 == (Relobj *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                  }\n                  p_Var9 = (pRVar24->super_Object)._vptr_Object[0x18];\n                  if (p_Var9 == Relobj::do_output_section) {\n                    ppOVar13 = (pRVar24->output_sections_).\n                               super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                               ._M_impl._M_start;\n                    uVar25 = SVar32._8_8_ & 0xffffffff;\n                    if ((ulong)((long)(pRVar24->output_sections_).\n                                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                      ._M_impl._M_finish - (long)ppOVar13 >> 3) <= uVar25) {\nLAB_0028ca08:\n                    /* WARNING: Subroutine does not return */\n                      do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n                    }\n                    pOVar22 = ppOVar13[uVar25];\n                  }\n                  else {\n                    iVar19 = (*p_Var9)(pRVar24,SVar32._8_8_ & 0xffffffff);\n                    pOVar22 = (Output_section *)CONCAT44(extraout_var_01,iVar19);\n                  }\n                  if (pOVar22 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                  }\n                }" { (ERROR "SVar32 = Icf::" (assignment_expression "SVar32 = Icf" identifier = identifier) : :) (expression_statement "get_folded_section(this->icf_,(Relobj *)pOVar20,uVar18);" (call_expression "get_folded_section(this->icf_,(Relobj *)pOVar20,uVar18)" identifier (argument_list "(this->icf_,(Relobj *)pOVar20,uVar18)" ( (field_expression "this->icf_" identifier -> field_identifier) , (cast_expression "(Relobj *)pOVar20" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (expression_statement "pRVar24 = SVar32.first;" (assignment_expression "pRVar24 = SVar32.first" identifier = (field_expression "SVar32.first" identifier . field_identifier)) ;) (if_statement "if (pRVar24 == (Relobj *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                  }" if (parenthesized_expression "(pRVar24 == (Relobj *)0x0)" ( (binary_expression "pRVar24 == (Relobj *)0x0" identifier == (cast_expression "(Relobj *)0x0" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                  }" { comment (expression_statement "do_gold_unreachable("../../gold/symtab.cc",0xc53,"sized_write_globals");" (call_expression "do_gold_unreachable("../../gold/symtab.cc",0xc53,"sized_write_globals")" identifier (argument_list "("../../gold/symtab.cc",0xc53,"sized_write_globals")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""sized_write_globals"" " string_content ") ))) ;) })) (expression_statement "p_Var9 = (pRVar24->super_Object)._vptr_Object[0x18];" (assignment_expression "p_Var9 = (pRVar24->super_Object)._vptr_Object[0x18]" identifier = (subscript_expression "(pRVar24->super_Object)._vptr_Object[0x18]" (field_expression "(pRVar24->super_Object)._vptr_Object" (parenthesized_expression "(pRVar24->super_Object)" ( (field_expression "pRVar24->super_Object" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (if_statement "if (p_Var9 == Relobj::do_output_section) {\n                    ppOVar13 = (pRVar24->output_sections_).\n                               super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                               ._M_impl._M_start;\n                    uVar25 = SVar32._8_8_ & 0xffffffff;\n                    if ((ulong)((long)(pRVar24->output_sections_).\n                                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                      ._M_impl._M_finish - (long)ppOVar13 >> 3) <= uVar25) {\nLAB_0028ca08:\n                    /* WARNING: Subroutine does not return */\n                      do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n                    }\n                    pOVar22 = ppOVar13[uVar25];\n                  }\n                  else {\n                    iVar19 = (*p_Var9)(pRVar24,SVar32._8_8_ & 0xffffffff);\n                    pOVar22 = (Output_section *)CONCAT44(extraout_var_01,iVar19);\n                  }" if (parenthesized_expression "(p_Var9 == Relobj::do_output_section)" ( (ERROR "p_Var9 == Relobj::" (binary_expression "p_Var9 == Relobj" identifier == identifier) : :) identifier )) (compound_statement "{\n                    ppOVar13 = (pRVar24->output_sections_).\n                               super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                               ._M_impl._M_start;\n                    uVar25 = SVar32._8_8_ & 0xffffffff;\n                    if ((ulong)((long)(pRVar24->output_sections_).\n                                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                      ._M_impl._M_finish - (long)ppOVar13 >> 3) <= uVar25) {\nLAB_0028ca08:\n                    /* WARNING: Subroutine does not return */\n                      do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n                    }\n                    pOVar22 = ppOVar13[uVar25];\n                  }" { (expression_statement "ppOVar13 = (pRVar24->output_sections_).\n                               super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                               ._M_impl._M_start;" (field_expression "ppOVar13 = (pRVar24->output_sections_).\n                               super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                               ._M_impl._M_start" (field_expression "ppOVar13 = (pRVar24->output_sections_).\n                               super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                               ._M_impl" (binary_expression "ppOVar13 = (pRVar24->output_sections_).\n                               super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "ppOVar13 = (pRVar24->output_sections_).\n                               super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "ppOVar13 = (pRVar24->output_sections_).\n                               super__Vector_base<gold::Output_section*,_std" (assignment_expression "ppOVar13 = (pRVar24->output_sections_).\n                               super__Vector_base<gold" identifier = (binary_expression "(pRVar24->output_sections_).\n                               super__Vector_base<gold" (field_expression "(pRVar24->output_sections_).\n                               super__Vector_base" (parenthesized_expression "(pRVar24->output_sections_)" ( (field_expression "pRVar24->output_sections_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "uVar25 = SVar32._8_8_ & 0xffffffff;" (assignment_expression "uVar25 = SVar32._8_8_ & 0xffffffff" identifier = (binary_expression "SVar32._8_8_ & 0xffffffff" (field_expression "SVar32._8_8_" identifier . field_identifier) & number_literal)) ;) (if_statement "if ((ulong)((long)(pRVar24->output_sections_).\n                                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                      ._M_impl._M_finish - (long)ppOVar13 >> 3) <= uVar25) {\nLAB_0028ca08:\n                    /* WARNING: Subroutine does not return */\n                      do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n                    }" if (parenthesized_expression "((ulong)((long)(pRVar24->output_sections_).\n                                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                      ._M_impl._M_finish - (long)ppOVar13 >> 3) <= uVar25)" ( (binary_expression "(ulong)((long)(pRVar24->output_sections_).\n                                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                      ._M_impl._M_finish - (long)ppOVar13 >> 3) <= uVar25" (call_expression "(ulong)((long)(pRVar24->output_sections_).\n                                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                      ._M_impl._M_finish - (long)ppOVar13 >> 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((long)(pRVar24->output_sections_).\n                                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                      ._M_impl._M_finish - (long)ppOVar13 >> 3)" ( (binary_expression "(long)(pRVar24->output_sections_).\n                                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                      ._M_impl._M_finish - (long)ppOVar13 >> 3" (binary_expression "(long)(pRVar24->output_sections_).\n                                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                      ._M_impl._M_finish - (long)ppOVar13" (field_expression "(long)(pRVar24->output_sections_).\n                                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                      ._M_impl._M_finish" (field_expression "(long)(pRVar24->output_sections_).\n                                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                      ._M_impl" (binary_expression "(long)(pRVar24->output_sections_).\n                                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "(long)(pRVar24->output_sections_).\n                                      super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "(long)(pRVar24->output_sections_).\n                                      super__Vector_base<gold::Output_section*,_std" (binary_expression "(long)(pRVar24->output_sections_).\n                                      super__Vector_base<gold" (cast_expression "(long)(pRVar24->output_sections_).\n                                      super__Vector_base" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "(pRVar24->output_sections_).\n                                      super__Vector_base" (parenthesized_expression "(pRVar24->output_sections_)" ( (field_expression "pRVar24->output_sections_" identifier -> field_identifier) )) . field_identifier)) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) - (cast_expression "(long)ppOVar13" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) >> number_literal) ))) <= identifier) )) (compound_statement "{\nLAB_0028ca08:\n                    /* WARNING: Subroutine does not return */\n                      do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n                    }" { (labeled_statement "LAB_0028ca08:\n                    /* WARNING: Subroutine does not return */\n                      do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");" statement_identifier : comment (expression_statement "do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");" (call_expression "do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section")" identifier (argument_list "("../../gold/object.h",0x5c8,"do_output_section")" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""do_output_section"" " string_content ") ))) ;)) })) (expression_statement "pOVar22 = ppOVar13[uVar25];" (assignment_expression "pOVar22 = ppOVar13[uVar25]" identifier = (subscript_expression "ppOVar13[uVar25]" identifier [ identifier ])) ;) }) (else_clause "else {\n                    iVar19 = (*p_Var9)(pRVar24,SVar32._8_8_ & 0xffffffff);\n                    pOVar22 = (Output_section *)CONCAT44(extraout_var_01,iVar19);\n                  }" else (compound_statement "{\n                    iVar19 = (*p_Var9)(pRVar24,SVar32._8_8_ & 0xffffffff);\n                    pOVar22 = (Output_section *)CONCAT44(extraout_var_01,iVar19);\n                  }" { (expression_statement "iVar19 = (*p_Var9)(pRVar24,SVar32._8_8_ & 0xffffffff);" (assignment_expression "iVar19 = (*p_Var9)(pRVar24,SVar32._8_8_ & 0xffffffff)" identifier = (call_expression "(*p_Var9)(pRVar24,SVar32._8_8_ & 0xffffffff)" (parenthesized_expression "(*p_Var9)" ( (pointer_expression "*p_Var9" * identifier) )) (argument_list "(pRVar24,SVar32._8_8_ & 0xffffffff)" ( identifier , (binary_expression "SVar32._8_8_ & 0xffffffff" (field_expression "SVar32._8_8_" identifier . field_identifier) & number_literal) )))) ;) (expression_statement "pOVar22 = (Output_section *)CONCAT44(extraout_var_01,iVar19);" (assignment_expression "pOVar22 = (Output_section *)CONCAT44(extraout_var_01,iVar19)" identifier = (cast_expression "(Output_section *)CONCAT44(extraout_var_01,iVar19)" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT44(extraout_var_01,iVar19)" identifier (argument_list "(extraout_var_01,iVar19)" ( identifier , identifier ))))) ;) }))) (if_statement "if (pOVar22 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                  }" if (parenthesized_expression "(pOVar22 == (Output_section *)0x0)" ( (binary_expression "pOVar22 == (Output_section *)0x0" identifier == (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                  }" { comment (expression_statement "do_gold_unreachable("../../gold/symtab.cc",0xc57,"sized_write_globals");" (call_expression "do_gold_unreachable("../../gold/symtab.cc",0xc57,"sized_write_globals")" identifier (argument_list "("../../gold/symtab.cc",0xc57,"sized_write_globals")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""sized_write_globals"" " string_content ") ))) ;) })) }) (else_clause "else if (pOVar22 == (Output_section *)0x0) goto LAB_0028c9cd;" else (if_statement "if (pOVar22 == (Output_section *)0x0) goto LAB_0028c9cd;" if (parenthesized_expression "(pOVar22 == (Output_section *)0x0)" ( (binary_expression "pOVar22 == (Output_section *)0x0" identifier == (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0028c9cd;" goto statement_identifier ;)))) (expression_statement "p_Var9 = (pOVar22->super_Output_data)._vptr_Output_data[0xb];" (assignment_expression "p_Var9 = (pOVar22->super_Output_data)._vptr_Output_data[0xb]" identifier = (subscript_expression "(pOVar22->super_Output_data)._vptr_Output_data[0xb]" (field_expression "(pOVar22->super_Output_data)._vptr_Output_data" (parenthesized_expression "(pOVar22->super_Output_data)" ( (field_expression "pOVar22->super_Output_data" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (if_statement "if (p_Var9 == Output_section::do_out_shndx) {\n                  uVar18 = pOVar22->out_shndx_;\n                  if (uVar18 == 0xffffffff) goto LAB_0028ca38;\n                }\n                else {\n                  uVar18 = (*p_Var9)(pOVar22);\n                }" if (parenthesized_expression "(p_Var9 == Output_section::do_out_shndx)" ( (binary_expression "p_Var9 == Output_section" identifier == identifier) (ERROR "::do_out_shndx" : : identifier) )) (compound_statement "{\n                  uVar18 = pOVar22->out_shndx_;\n                  if (uVar18 == 0xffffffff) goto LAB_0028ca38;\n                }" { (expression_statement "uVar18 = pOVar22->out_shndx_;" (assignment_expression "uVar18 = pOVar22->out_shndx_" identifier = (field_expression "pOVar22->out_shndx_" identifier -> field_identifier)) ;) (if_statement "if (uVar18 == 0xffffffff) goto LAB_0028ca38;" if (parenthesized_expression "(uVar18 == 0xffffffff)" ( (binary_expression "uVar18 == 0xffffffff" identifier == number_literal) )) (goto_statement "goto LAB_0028ca38;" goto statement_identifier ;)) }) (else_clause "else {\n                  uVar18 = (*p_Var9)(pOVar22);\n                }" else (compound_statement "{\n                  uVar18 = (*p_Var9)(pOVar22);\n                }" { (expression_statement "uVar18 = (*p_Var9)(pOVar22);" (assignment_expression "uVar18 = (*p_Var9)(pOVar22)" identifier = (call_expression "(*p_Var9)(pOVar22)" (parenthesized_expression "(*p_Var9)" ( (pointer_expression "*p_Var9" * identifier) )) (argument_list "(pOVar22)" ( identifier )))) ;) }))) (if_statement "if (0xfeff < uVar18) {\n                  if (uVar26 != 0xffffffff) {\n                    local_58._M_dataplus._M_p._0_4_ = uVar26;\n                    local_58._M_dataplus._M_p._4_4_ = uVar18;\n                    std::\n                    vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                    ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                              (&symtab_xindex->entries_,\n                               (pair<unsigned_int,_unsigned_int> *)&local_58);\n                  }\n                  if (uVar29 == 0xffffffff) {\n                    uVar18 = 0xffff;\n                  }\n                  else {\n                    local_58._M_dataplus._M_p._0_4_ = uVar29;\n                    local_58._M_dataplus._M_p._4_4_ = uVar18;\n                    std::\n                    vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                    ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                              (&dynsym_xindex->entries_,\n                               (pair<unsigned_int,_unsigned_int> *)&local_58);\n                    uVar18 = 0xffff;\n                  }\n                }" if (parenthesized_expression "(0xfeff < uVar18)" ( (binary_expression "0xfeff < uVar18" number_literal < identifier) )) (compound_statement "{\n                  if (uVar26 != 0xffffffff) {\n                    local_58._M_dataplus._M_p._0_4_ = uVar26;\n                    local_58._M_dataplus._M_p._4_4_ = uVar18;\n                    std::\n                    vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                    ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                              (&symtab_xindex->entries_,\n                               (pair<unsigned_int,_unsigned_int> *)&local_58);\n                  }\n                  if (uVar29 == 0xffffffff) {\n                    uVar18 = 0xffff;\n                  }\n                  else {\n                    local_58._M_dataplus._M_p._0_4_ = uVar29;\n                    local_58._M_dataplus._M_p._4_4_ = uVar18;\n                    std::\n                    vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                    ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                              (&dynsym_xindex->entries_,\n                               (pair<unsigned_int,_unsigned_int> *)&local_58);\n                    uVar18 = 0xffff;\n                  }\n                }" { (if_statement "if (uVar26 != 0xffffffff) {\n                    local_58._M_dataplus._M_p._0_4_ = uVar26;\n                    local_58._M_dataplus._M_p._4_4_ = uVar18;\n                    std::\n                    vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                    ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                              (&symtab_xindex->entries_,\n                               (pair<unsigned_int,_unsigned_int> *)&local_58);\n                  }" if (parenthesized_expression "(uVar26 != 0xffffffff)" ( (binary_expression "uVar26 != 0xffffffff" identifier != number_literal) )) (compound_statement "{\n                    local_58._M_dataplus._M_p._0_4_ = uVar26;\n                    local_58._M_dataplus._M_p._4_4_ = uVar18;\n                    std::\n                    vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                    ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                              (&symtab_xindex->entries_,\n                               (pair<unsigned_int,_unsigned_int> *)&local_58);\n                  }" { (expression_statement "local_58._M_dataplus._M_p._0_4_ = uVar26;" (assignment_expression "local_58._M_dataplus._M_p._0_4_ = uVar26" (field_expression "local_58._M_dataplus._M_p._0_4_" (field_expression "local_58._M_dataplus._M_p" (field_expression "local_58._M_dataplus" identifier . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "local_58._M_dataplus._M_p._4_4_ = uVar18;" (assignment_expression "local_58._M_dataplus._M_p._4_4_ = uVar18" (field_expression "local_58._M_dataplus._M_p._4_4_" (field_expression "local_58._M_dataplus._M_p" (field_expression "local_58._M_dataplus" identifier . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (labeled_statement "std::\n                    vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                    ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                              (&symtab_xindex->entries_,\n                               (pair<unsigned_int,_unsigned_int> *)&local_58);" statement_identifier (ERROR "::\n                    vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                    ::emplace_back<std:" : : (binary_expression "vector<std" identifier < identifier) : : (comma_expression "pair<unsigned_int,_unsigned_int>,_std" (binary_expression "pair<unsigned_int" identifier < identifier) , (binary_expression "_unsigned_int>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<unsigned_int,_unsigned_int>_>_>\n                    ::emplace_back<std" (binary_expression "pair<unsigned_int" identifier < identifier) , (binary_expression "_unsigned_int>_>_>\n                    ::emplace_back<std" (binary_expression "_unsigned_int>_>_>\n                    ::emplace_back" (binary_expression "_unsigned_int>_>_" (binary_expression "_unsigned_int>_" identifier > identifier) > identifier) > (ERROR "::" : :) identifier) < identifier)) :) : (expression_statement "pair<unsigned_int,_unsigned_int>_>\n                              (&symtab_xindex->entries_,\n                               (pair<unsigned_int,_unsigned_int> *)&local_58);" (comma_expression "pair<unsigned_int,_unsigned_int>_>\n                              (&symtab_xindex->entries_,\n                               (pair<unsigned_int,_unsigned_int> *)&local_58)" (binary_expression "pair<unsigned_int" identifier < identifier) , (binary_expression "_unsigned_int>_>\n                              (&symtab_xindex->entries_,\n                               (pair<unsigned_int,_unsigned_int> *)&local_58)" (binary_expression "_unsigned_int>_" identifier > identifier) > (parenthesized_expression "(&symtab_xindex->entries_,\n                               (pair<unsigned_int,_unsigned_int> *)&local_58)" ( (comma_expression "&symtab_xindex->entries_,\n                               (pair<unsigned_int,_unsigned_int> *)&local_58" (pointer_expression "&symtab_xindex->entries_" & (field_expression "symtab_xindex->entries_" identifier -> field_identifier)) , (binary_expression "(pair<unsigned_int,_unsigned_int> *)&local_58" (parenthesized_expression "(pair<unsigned_int,_unsigned_int> *)" ( (comma_expression "pair<unsigned_int,_unsigned_int> *" (binary_expression "pair<unsigned_int" identifier < identifier) , (binary_expression "_unsigned_int> *" identifier > (pointer_expression "*" * identifier))) )) & identifier)) )))) ;)) })) (if_statement "if (uVar29 == 0xffffffff) {\n                    uVar18 = 0xffff;\n                  }\n                  else {\n                    local_58._M_dataplus._M_p._0_4_ = uVar29;\n                    local_58._M_dataplus._M_p._4_4_ = uVar18;\n                    std::\n                    vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                    ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                              (&dynsym_xindex->entries_,\n                               (pair<unsigned_int,_unsigned_int> *)&local_58);\n                    uVar18 = 0xffff;\n                  }" if (parenthesized_expression "(uVar29 == 0xffffffff)" ( (binary_expression "uVar29 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n                    uVar18 = 0xffff;\n                  }" { (expression_statement "uVar18 = 0xffff;" (assignment_expression "uVar18 = 0xffff" identifier = number_literal) ;) }) (else_clause "else {\n                    local_58._M_dataplus._M_p._0_4_ = uVar29;\n                    local_58._M_dataplus._M_p._4_4_ = uVar18;\n                    std::\n                    vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                    ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                              (&dynsym_xindex->entries_,\n                               (pair<unsigned_int,_unsigned_int> *)&local_58);\n                    uVar18 = 0xffff;\n                  }" else (compound_statement "{\n                    local_58._M_dataplus._M_p._0_4_ = uVar29;\n                    local_58._M_dataplus._M_p._4_4_ = uVar18;\n                    std::\n                    vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                    ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                              (&dynsym_xindex->entries_,\n                               (pair<unsigned_int,_unsigned_int> *)&local_58);\n                    uVar18 = 0xffff;\n                  }" { (expression_statement "local_58._M_dataplus._M_p._0_4_ = uVar29;" (assignment_expression "local_58._M_dataplus._M_p._0_4_ = uVar29" (field_expression "local_58._M_dataplus._M_p._0_4_" (field_expression "local_58._M_dataplus._M_p" (field_expression "local_58._M_dataplus" identifier . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "local_58._M_dataplus._M_p._4_4_ = uVar18;" (assignment_expression "local_58._M_dataplus._M_p._4_4_ = uVar18" (field_expression "local_58._M_dataplus._M_p._4_4_" (field_expression "local_58._M_dataplus._M_p" (field_expression "local_58._M_dataplus" identifier . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (labeled_statement "std::\n                    vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                    ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                              (&dynsym_xindex->entries_,\n                               (pair<unsigned_int,_unsigned_int> *)&local_58);" statement_identifier (ERROR "::\n                    vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                    ::emplace_back<std:" : : (binary_expression "vector<std" identifier < identifier) : : (comma_expression "pair<unsigned_int,_unsigned_int>,_std" (binary_expression "pair<unsigned_int" identifier < identifier) , (binary_expression "_unsigned_int>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<unsigned_int,_unsigned_int>_>_>\n                    ::emplace_back<std" (binary_expression "pair<unsigned_int" identifier < identifier) , (binary_expression "_unsigned_int>_>_>\n                    ::emplace_back<std" (binary_expression "_unsigned_int>_>_>\n                    ::emplace_back" (binary_expression "_unsigned_int>_>_" (binary_expression "_unsigned_int>_" identifier > identifier) > identifier) > (ERROR "::" : :) identifier) < identifier)) :) : (expression_statement "pair<unsigned_int,_unsigned_int>_>\n                              (&dynsym_xindex->entries_,\n                               (pair<unsigned_int,_unsigned_int> *)&local_58);" (comma_expression "pair<unsigned_int,_unsigned_int>_>\n                              (&dynsym_xindex->entries_,\n                               (pair<unsigned_int,_unsigned_int> *)&local_58)" (binary_expression "pair<unsigned_int" identifier < identifier) , (binary_expression "_unsigned_int>_>\n                              (&dynsym_xindex->entries_,\n                               (pair<unsigned_int,_unsigned_int> *)&local_58)" (binary_expression "_unsigned_int>_" identifier > identifier) > (parenthesized_expression "(&dynsym_xindex->entries_,\n                               (pair<unsigned_int,_unsigned_int> *)&local_58)" ( (comma_expression "&dynsym_xindex->entries_,\n                               (pair<unsigned_int,_unsigned_int> *)&local_58" (pointer_expression "&dynsym_xindex->entries_" & (field_expression "dynsym_xindex->entries_" identifier -> field_identifier)) , (binary_expression "(pair<unsigned_int,_unsigned_int> *)&local_58" (parenthesized_expression "(pair<unsigned_int,_unsigned_int> *)" ( (comma_expression "pair<unsigned_int,_unsigned_int> *" (binary_expression "pair<unsigned_int" identifier < identifier) , (binary_expression "_unsigned_int> *" identifier > (pointer_expression "*" * identifier))) )) & identifier)) )))) ;)) (expression_statement "uVar18 = 0xffff;" (assignment_expression "uVar18 = 0xffff" identifier = number_literal) ;) }))) })) (if_statement "if (parameters->options_ == (General_options *)0x0) goto LAB_0028c8d7;" if (parenthesized_expression "(parameters->options_ == (General_options *)0x0)" ( (binary_expression "parameters->options_ == (General_options *)0x0" (field_expression "parameters->options_" identifier -> field_identifier) == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0028c8d7;" goto statement_identifier ;)) (if_statement "if ((parameters->options_->relocatable_).value != false) {\n                  if (((pOVar22->super_Output_data).field_0x20 & 1) == 0) goto LAB_0028c9b0;\n                  local_d0 = local_d0 - (pOVar22->super_Output_data).address_;\n                }" if (parenthesized_expression "((parameters->options_->relocatable_).value != false)" ( (binary_expression "(parameters->options_->relocatable_).value != false" (field_expression "(parameters->options_->relocatable_).value" (parenthesized_expression "(parameters->options_->relocatable_)" ( (field_expression "parameters->options_->relocatable_" (field_expression "parameters->options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) != false) )) (compound_statement "{\n                  if (((pOVar22->super_Output_data).field_0x20 & 1) == 0) goto LAB_0028c9b0;\n                  local_d0 = local_d0 - (pOVar22->super_Output_data).address_;\n                }" { (if_statement "if (((pOVar22->super_Output_data).field_0x20 & 1) == 0) goto LAB_0028c9b0;" if (parenthesized_expression "(((pOVar22->super_Output_data).field_0x20 & 1) == 0)" ( (binary_expression "((pOVar22->super_Output_data).field_0x20 & 1) == 0" (parenthesized_expression "((pOVar22->super_Output_data).field_0x20 & 1)" ( (binary_expression "(pOVar22->super_Output_data).field_0x20 & 1" (field_expression "(pOVar22->super_Output_data).field_0x20" (parenthesized_expression "(pOVar22->super_Output_data)" ( (field_expression "pOVar22->super_Output_data" identifier -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0028c9b0;" goto statement_identifier ;)) (expression_statement "local_d0 = local_d0 - (pOVar22->super_Output_data).address_;" (assignment_expression "local_d0 = local_d0 - (pOVar22->super_Output_data).address_" identifier = (binary_expression "local_d0 - (pOVar22->super_Output_data).address_" identifier - (field_expression "(pOVar22->super_Output_data).address_" (parenthesized_expression "(pOVar22->super_Output_data)" ( (field_expression "pOVar22->super_Output_data" identifier -> field_identifier) )) . field_identifier))) ;) })) })) }) (else_clause "else {\n              if (((pSVar6->super_Symbol).field_0x3b & 2) != 0) {\n                iVar19 = (*pTVar5->_vptr_Target[5])(pTVar5,pSVar6);\n                VVar21 = CONCAT44(extraout_var,iVar19);\n              }\n              uVar18 = 0;\n              binding = STB_WEAK - (((byte)(pSVar6->super_Symbol).field_0x3c >> 1 & 1) == 0);\n            }" else (compound_statement "{\n              if (((pSVar6->super_Symbol).field_0x3b & 2) != 0) {\n                iVar19 = (*pTVar5->_vptr_Target[5])(pTVar5,pSVar6);\n                VVar21 = CONCAT44(extraout_var,iVar19);\n              }\n              uVar18 = 0;\n              binding = STB_WEAK - (((byte)(pSVar6->super_Symbol).field_0x3c >> 1 & 1) == 0);\n            }" { (if_statement "if (((pSVar6->super_Symbol).field_0x3b & 2) != 0) {\n                iVar19 = (*pTVar5->_vptr_Target[5])(pTVar5,pSVar6);\n                VVar21 = CONCAT44(extraout_var,iVar19);\n              }" if (parenthesized_expression "(((pSVar6->super_Symbol).field_0x3b & 2) != 0)" ( (binary_expression "((pSVar6->super_Symbol).field_0x3b & 2) != 0" (parenthesized_expression "((pSVar6->super_Symbol).field_0x3b & 2)" ( (binary_expression "(pSVar6->super_Symbol).field_0x3b & 2" (field_expression "(pSVar6->super_Symbol).field_0x3b" (parenthesized_expression "(pSVar6->super_Symbol)" ( (field_expression "pSVar6->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                iVar19 = (*pTVar5->_vptr_Target[5])(pTVar5,pSVar6);\n                VVar21 = CONCAT44(extraout_var,iVar19);\n              }" { (expression_statement "iVar19 = (*pTVar5->_vptr_Target[5])(pTVar5,pSVar6);" (assignment_expression "iVar19 = (*pTVar5->_vptr_Target[5])(pTVar5,pSVar6)" identifier = (call_expression "(*pTVar5->_vptr_Target[5])(pTVar5,pSVar6)" (parenthesized_expression "(*pTVar5->_vptr_Target[5])" ( (pointer_expression "*pTVar5->_vptr_Target[5]" * (subscript_expression "pTVar5->_vptr_Target[5]" (field_expression "pTVar5->_vptr_Target" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(pTVar5,pSVar6)" ( identifier , identifier )))) ;) (expression_statement "VVar21 = CONCAT44(extraout_var,iVar19);" (assignment_expression "VVar21 = CONCAT44(extraout_var,iVar19)" identifier = (call_expression "CONCAT44(extraout_var,iVar19)" identifier (argument_list "(extraout_var,iVar19)" ( identifier , identifier )))) ;) })) (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (expression_statement "binding = STB_WEAK - (((byte)(pSVar6->super_Symbol).field_0x3c >> 1 & 1) == 0);" (assignment_expression "binding = STB_WEAK - (((byte)(pSVar6->super_Symbol).field_0x3c >> 1 & 1) == 0)" identifier = (binary_expression "STB_WEAK - (((byte)(pSVar6->super_Symbol).field_0x3c >> 1 & 1) == 0)" identifier - (parenthesized_expression "(((byte)(pSVar6->super_Symbol).field_0x3c >> 1 & 1) == 0)" ( (binary_expression "((byte)(pSVar6->super_Symbol).field_0x3c >> 1 & 1) == 0" (parenthesized_expression "((byte)(pSVar6->super_Symbol).field_0x3c >> 1 & 1)" ( (binary_expression "(byte)(pSVar6->super_Symbol).field_0x3c >> 1 & 1" (binary_expression "(byte)(pSVar6->super_Symbol).field_0x3c >> 1" (field_expression "(byte)(pSVar6->super_Symbol).field_0x3c" (call_expression "(byte)(pSVar6->super_Symbol)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(pSVar6->super_Symbol)" ( (field_expression "pSVar6->super_Symbol" identifier -> field_identifier) ))) . field_identifier) >> number_literal) & number_literal) )) == number_literal) )))) ;) }))) (break_statement "break;" break ;)) (case_statement "case 1:\n            goto LAB_0028c1cb;" case number_literal : (goto_statement "goto LAB_0028c1cb;" goto statement_identifier ;)) (case_statement "case 2:\n            goto LAB_0028c143;" case number_literal : (goto_statement "goto LAB_0028c143;" goto statement_identifier ;)) (case_statement "case 3:\nswitchD_0028bebe_caseD_3:\n            uVar18 = 0xfff1;\n            break;" case number_literal : (labeled_statement "switchD_0028bebe_caseD_3:\n            uVar18 = 0xfff1;" statement_identifier : (expression_statement "uVar18 = 0xfff1;" (assignment_expression "uVar18 = 0xfff1" identifier = number_literal) ;)) (break_statement "break;" break ;)) (case_statement "case 4:\nswitchD_0028bebe_caseD_4:\n            uVar18 = 0;\n            break;" case number_literal : (labeled_statement "switchD_0028bebe_caseD_4:\n            uVar18 = 0;" statement_identifier : (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;)) (break_statement "break;" break ;)) (case_statement "default:\n            goto switchD_0028bebe_caseD_5;" default : (goto_statement "goto switchD_0028bebe_caseD_5;" goto statement_identifier ;)) })) }) (else_clause "else {\n          if (bVar15 == 0) {\n            if (((pSVar6->super_Symbol).u2_.shndx == 0) &&\n               (((byte)(pSVar6->super_Symbol).field_0x3b >> 5 & 1) != 0)) {\n                    /* WARNING: Could not recover jumptable at 0x0028c651. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return;\n            }\n                    /* WARNING: Could not recover jumptable at 0x0028c32a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();\n            return;\n          }\n          if (bVar15 == 4) {\n                    /* WARNING: Could not recover jumptable at 0x0028c569. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(&DAT_003a0b64 + lVar27))();\n            return;\n          }\n                    /* WARNING: Could not find normalized switch variable to match jumptable */\n          switch(bVar15) {\n          case 0:\nswitchD_0028c5a7_caseD_0:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");\n          case 1:\n            binding = STB_GLOBAL;\nLAB_0028c1cb:\n            if ((bVar16 & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.h",0xb5,"output_data");\n            }\n            pOVar10 = (pSVar6->super_Symbol).u1_.object;\n            uVar18 = (*pOVar10->_vptr_Object[0xb])(pOVar10);\n            if (0xfeff < uVar18) {\n              if (uVar26 != 0xffffffff) {\n                local_58._M_dataplus._M_p._0_4_ = uVar26;\n                local_58._M_dataplus._M_p._4_4_ = uVar18;\n                std::\n                vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                          (&symtab_xindex->entries_,(pair<unsigned_int,_unsigned_int> *)&local_58);\n              }\n              if (uVar29 == 0xffffffff) {\n                uVar18 = 0xffff;\n              }\n              else {\n                local_58._M_dataplus._M_p._0_4_ = uVar29;\n                local_58._M_dataplus._M_p._4_4_ = uVar18;\n                std::\n                vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                          (&dynsym_xindex->entries_,(pair<unsigned_int,_unsigned_int> *)&local_58);\n                uVar18 = 0xffff;\n              }\n            }\n            if (parameters->options_ == (General_options *)0x0) {\nLAB_0028c8d7:\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n            }\n            if ((parameters->options_->relocatable_).value != false) {\n              iVar19 = (*pOVar10->_vptr_Object[9])(pOVar10);\n              lVar23 = CONCAT44(extraout_var_00,iVar19);\n              if (lVar23 == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.cc",0xc81,"sized_write_globals");\n              }\n              if ((*(byte *)(lVar23 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xc5,"address");\n              }\n              local_d0 = local_d0 - *(long *)(lVar23 + 8);\n            }\n            break;\n          case 2:\n            binding = STB_GLOBAL;\nLAB_0028c143:\n            if ((bVar16 & 7) != 2) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.h",200,"output_segment");\n            }\n            pOVar22 = Output_segment::first_section((pSVar6->super_Symbol).u1_.output_segment);\n            if (pOVar22 == (Output_section *)0x0) goto switchD_0028bebe_caseD_3;\n            p_Var9 = (pOVar22->super_Output_data)._vptr_Output_data[0xb];\n            if (p_Var9 == Output_section::do_out_shndx) {\n              uVar18 = pOVar22->out_shndx_;\n              if (uVar18 == 0xffffffff) {\nLAB_0028ca38:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar18 = (*p_Var9)(pOVar22);\n            }\n            break;\n          case 3:\n            binding = STB_GLOBAL;\n            uVar18 = 0xfff1;\n            break;\n          case 4:\n                    /* WARNING: This code block may not be properly labeled as switch case */\n            binding = STB_GLOBAL;\n            uVar18 = 0;\n            break;\n          default:\nswitchD_0028bebe_caseD_5:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.cc",0xc9b,"sized_write_globals");\n          }\n        }" else (compound_statement "{\n          if (bVar15 == 0) {\n            if (((pSVar6->super_Symbol).u2_.shndx == 0) &&\n               (((byte)(pSVar6->super_Symbol).field_0x3b >> 5 & 1) != 0)) {\n                    /* WARNING: Could not recover jumptable at 0x0028c651. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return;\n            }\n                    /* WARNING: Could not recover jumptable at 0x0028c32a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();\n            return;\n          }\n          if (bVar15 == 4) {\n                    /* WARNING: Could not recover jumptable at 0x0028c569. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(&DAT_003a0b64 + lVar27))();\n            return;\n          }\n                    /* WARNING: Could not find normalized switch variable to match jumptable */\n          switch(bVar15) {\n          case 0:\nswitchD_0028c5a7_caseD_0:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");\n          case 1:\n            binding = STB_GLOBAL;\nLAB_0028c1cb:\n            if ((bVar16 & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.h",0xb5,"output_data");\n            }\n            pOVar10 = (pSVar6->super_Symbol).u1_.object;\n            uVar18 = (*pOVar10->_vptr_Object[0xb])(pOVar10);\n            if (0xfeff < uVar18) {\n              if (uVar26 != 0xffffffff) {\n                local_58._M_dataplus._M_p._0_4_ = uVar26;\n                local_58._M_dataplus._M_p._4_4_ = uVar18;\n                std::\n                vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                          (&symtab_xindex->entries_,(pair<unsigned_int,_unsigned_int> *)&local_58);\n              }\n              if (uVar29 == 0xffffffff) {\n                uVar18 = 0xffff;\n              }\n              else {\n                local_58._M_dataplus._M_p._0_4_ = uVar29;\n                local_58._M_dataplus._M_p._4_4_ = uVar18;\n                std::\n                vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                          (&dynsym_xindex->entries_,(pair<unsigned_int,_unsigned_int> *)&local_58);\n                uVar18 = 0xffff;\n              }\n            }\n            if (parameters->options_ == (General_options *)0x0) {\nLAB_0028c8d7:\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n            }\n            if ((parameters->options_->relocatable_).value != false) {\n              iVar19 = (*pOVar10->_vptr_Object[9])(pOVar10);\n              lVar23 = CONCAT44(extraout_var_00,iVar19);\n              if (lVar23 == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.cc",0xc81,"sized_write_globals");\n              }\n              if ((*(byte *)(lVar23 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xc5,"address");\n              }\n              local_d0 = local_d0 - *(long *)(lVar23 + 8);\n            }\n            break;\n          case 2:\n            binding = STB_GLOBAL;\nLAB_0028c143:\n            if ((bVar16 & 7) != 2) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.h",200,"output_segment");\n            }\n            pOVar22 = Output_segment::first_section((pSVar6->super_Symbol).u1_.output_segment);\n            if (pOVar22 == (Output_section *)0x0) goto switchD_0028bebe_caseD_3;\n            p_Var9 = (pOVar22->super_Output_data)._vptr_Output_data[0xb];\n            if (p_Var9 == Output_section::do_out_shndx) {\n              uVar18 = pOVar22->out_shndx_;\n              if (uVar18 == 0xffffffff) {\nLAB_0028ca38:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar18 = (*p_Var9)(pOVar22);\n            }\n            break;\n          case 3:\n            binding = STB_GLOBAL;\n            uVar18 = 0xfff1;\n            break;\n          case 4:\n                    /* WARNING: This code block may not be properly labeled as switch case */\n            binding = STB_GLOBAL;\n            uVar18 = 0;\n            break;\n          default:\nswitchD_0028bebe_caseD_5:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.cc",0xc9b,"sized_write_globals");\n          }\n        }" { (if_statement "if (bVar15 == 0) {\n            if (((pSVar6->super_Symbol).u2_.shndx == 0) &&\n               (((byte)(pSVar6->super_Symbol).field_0x3b >> 5 & 1) != 0)) {\n                    /* WARNING: Could not recover jumptable at 0x0028c651. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return;\n            }\n                    /* WARNING: Could not recover jumptable at 0x0028c32a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();\n            return;\n          }" if (parenthesized_expression "(bVar15 == 0)" ( (binary_expression "bVar15 == 0" identifier == number_literal) )) (compound_statement "{\n            if (((pSVar6->super_Symbol).u2_.shndx == 0) &&\n               (((byte)(pSVar6->super_Symbol).field_0x3b >> 5 & 1) != 0)) {\n                    /* WARNING: Could not recover jumptable at 0x0028c651. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return;\n            }\n                    /* WARNING: Could not recover jumptable at 0x0028c32a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();\n            return;\n          }" { (if_statement "if (((pSVar6->super_Symbol).u2_.shndx == 0) &&\n               (((byte)(pSVar6->super_Symbol).field_0x3b >> 5 & 1) != 0)) {\n                    /* WARNING: Could not recover jumptable at 0x0028c651. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return;\n            }" if (parenthesized_expression "(((pSVar6->super_Symbol).u2_.shndx == 0) &&\n               (((byte)(pSVar6->super_Symbol).field_0x3b >> 5 & 1) != 0))" ( (binary_expression "((pSVar6->super_Symbol).u2_.shndx == 0) &&\n               (((byte)(pSVar6->super_Symbol).field_0x3b >> 5 & 1) != 0)" (parenthesized_expression "((pSVar6->super_Symbol).u2_.shndx == 0)" ( (binary_expression "(pSVar6->super_Symbol).u2_.shndx == 0" (field_expression "(pSVar6->super_Symbol).u2_.shndx" (field_expression "(pSVar6->super_Symbol).u2_" (parenthesized_expression "(pSVar6->super_Symbol)" ( (field_expression "pSVar6->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier) == number_literal) )) && (parenthesized_expression "(((byte)(pSVar6->super_Symbol).field_0x3b >> 5 & 1) != 0)" ( (binary_expression "((byte)(pSVar6->super_Symbol).field_0x3b >> 5 & 1) != 0" (parenthesized_expression "((byte)(pSVar6->super_Symbol).field_0x3b >> 5 & 1)" ( (binary_expression "(byte)(pSVar6->super_Symbol).field_0x3b >> 5 & 1" (binary_expression "(byte)(pSVar6->super_Symbol).field_0x3b >> 5" (field_expression "(byte)(pSVar6->super_Symbol).field_0x3b" (call_expression "(byte)(pSVar6->super_Symbol)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(pSVar6->super_Symbol)" ( (field_expression "pSVar6->super_Symbol" identifier -> field_identifier) ))) . field_identifier) >> number_literal) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0028c651. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              (*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return;\n            }" { comment comment (expression_statement "(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();" (call_expression "(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))()" (parenthesized_expression "(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))" ( (pointer_expression "*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c)" * (cast_expression "(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&DAT_003a0b8c + (long)DAT_003a0b8c)" ( (binary_expression "(long)&DAT_003a0b8c + (long)DAT_003a0b8c" (cast_expression "(long)&DAT_003a0b8c" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&DAT_003a0b8c" & identifier)) + (cast_expression "(long)DAT_003a0b8c" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) comment comment (expression_statement "(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();" (call_expression "(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))()" (parenthesized_expression "(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))" ( (pointer_expression "*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50)" * (cast_expression "(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&DAT_003a0b50 + (long)DAT_003a0b50)" ( (binary_expression "(long)&DAT_003a0b50 + (long)DAT_003a0b50" (cast_expression "(long)&DAT_003a0b50" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&DAT_003a0b50" & identifier)) + (cast_expression "(long)DAT_003a0b50" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (if_statement "if (bVar15 == 4) {\n                    /* WARNING: Could not recover jumptable at 0x0028c569. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(&DAT_003a0b64 + lVar27))();\n            return;\n          }" if (parenthesized_expression "(bVar15 == 4)" ( (binary_expression "bVar15 == 4" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0028c569. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(&DAT_003a0b64 + lVar27))();\n            return;\n          }" { comment comment (expression_statement "(*(code *)(&DAT_003a0b64 + lVar27))();" (call_expression "(*(code *)(&DAT_003a0b64 + lVar27))()" (parenthesized_expression "(*(code *)(&DAT_003a0b64 + lVar27))" ( (pointer_expression "*(code *)(&DAT_003a0b64 + lVar27)" * (cast_expression "(code *)(&DAT_003a0b64 + lVar27)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_003a0b64 + lVar27)" ( (binary_expression "&DAT_003a0b64 + lVar27" (pointer_expression "&DAT_003a0b64" & identifier) + identifier) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) comment (switch_statement "switch(bVar15) {\n          case 0:\nswitchD_0028c5a7_caseD_0:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");\n          case 1:\n            binding = STB_GLOBAL;\nLAB_0028c1cb:\n            if ((bVar16 & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.h",0xb5,"output_data");\n            }\n            pOVar10 = (pSVar6->super_Symbol).u1_.object;\n            uVar18 = (*pOVar10->_vptr_Object[0xb])(pOVar10);\n            if (0xfeff < uVar18) {\n              if (uVar26 != 0xffffffff) {\n                local_58._M_dataplus._M_p._0_4_ = uVar26;\n                local_58._M_dataplus._M_p._4_4_ = uVar18;\n                std::\n                vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                          (&symtab_xindex->entries_,(pair<unsigned_int,_unsigned_int> *)&local_58);\n              }\n              if (uVar29 == 0xffffffff) {\n                uVar18 = 0xffff;\n              }\n              else {\n                local_58._M_dataplus._M_p._0_4_ = uVar29;\n                local_58._M_dataplus._M_p._4_4_ = uVar18;\n                std::\n                vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                          (&dynsym_xindex->entries_,(pair<unsigned_int,_unsigned_int> *)&local_58);\n                uVar18 = 0xffff;\n              }\n            }\n            if (parameters->options_ == (General_options *)0x0) {\nLAB_0028c8d7:\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n            }\n            if ((parameters->options_->relocatable_).value != false) {\n              iVar19 = (*pOVar10->_vptr_Object[9])(pOVar10);\n              lVar23 = CONCAT44(extraout_var_00,iVar19);\n              if (lVar23 == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.cc",0xc81,"sized_write_globals");\n              }\n              if ((*(byte *)(lVar23 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xc5,"address");\n              }\n              local_d0 = local_d0 - *(long *)(lVar23 + 8);\n            }\n            break;\n          case 2:\n            binding = STB_GLOBAL;\nLAB_0028c143:\n            if ((bVar16 & 7) != 2) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.h",200,"output_segment");\n            }\n            pOVar22 = Output_segment::first_section((pSVar6->super_Symbol).u1_.output_segment);\n            if (pOVar22 == (Output_section *)0x0) goto switchD_0028bebe_caseD_3;\n            p_Var9 = (pOVar22->super_Output_data)._vptr_Output_data[0xb];\n            if (p_Var9 == Output_section::do_out_shndx) {\n              uVar18 = pOVar22->out_shndx_;\n              if (uVar18 == 0xffffffff) {\nLAB_0028ca38:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar18 = (*p_Var9)(pOVar22);\n            }\n            break;\n          case 3:\n            binding = STB_GLOBAL;\n            uVar18 = 0xfff1;\n            break;\n          case 4:\n                    /* WARNING: This code block may not be properly labeled as switch case */\n            binding = STB_GLOBAL;\n            uVar18 = 0;\n            break;\n          default:\nswitchD_0028bebe_caseD_5:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.cc",0xc9b,"sized_write_globals");\n          }" switch (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\n          case 0:\nswitchD_0028c5a7_caseD_0:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");\n          case 1:\n            binding = STB_GLOBAL;\nLAB_0028c1cb:\n            if ((bVar16 & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.h",0xb5,"output_data");\n            }\n            pOVar10 = (pSVar6->super_Symbol).u1_.object;\n            uVar18 = (*pOVar10->_vptr_Object[0xb])(pOVar10);\n            if (0xfeff < uVar18) {\n              if (uVar26 != 0xffffffff) {\n                local_58._M_dataplus._M_p._0_4_ = uVar26;\n                local_58._M_dataplus._M_p._4_4_ = uVar18;\n                std::\n                vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                          (&symtab_xindex->entries_,(pair<unsigned_int,_unsigned_int> *)&local_58);\n              }\n              if (uVar29 == 0xffffffff) {\n                uVar18 = 0xffff;\n              }\n              else {\n                local_58._M_dataplus._M_p._0_4_ = uVar29;\n                local_58._M_dataplus._M_p._4_4_ = uVar18;\n                std::\n                vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                          (&dynsym_xindex->entries_,(pair<unsigned_int,_unsigned_int> *)&local_58);\n                uVar18 = 0xffff;\n              }\n            }\n            if (parameters->options_ == (General_options *)0x0) {\nLAB_0028c8d7:\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n            }\n            if ((parameters->options_->relocatable_).value != false) {\n              iVar19 = (*pOVar10->_vptr_Object[9])(pOVar10);\n              lVar23 = CONCAT44(extraout_var_00,iVar19);\n              if (lVar23 == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.cc",0xc81,"sized_write_globals");\n              }\n              if ((*(byte *)(lVar23 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xc5,"address");\n              }\n              local_d0 = local_d0 - *(long *)(lVar23 + 8);\n            }\n            break;\n          case 2:\n            binding = STB_GLOBAL;\nLAB_0028c143:\n            if ((bVar16 & 7) != 2) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.h",200,"output_segment");\n            }\n            pOVar22 = Output_segment::first_section((pSVar6->super_Symbol).u1_.output_segment);\n            if (pOVar22 == (Output_section *)0x0) goto switchD_0028bebe_caseD_3;\n            p_Var9 = (pOVar22->super_Output_data)._vptr_Output_data[0xb];\n            if (p_Var9 == Output_section::do_out_shndx) {\n              uVar18 = pOVar22->out_shndx_;\n              if (uVar18 == 0xffffffff) {\nLAB_0028ca38:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar18 = (*p_Var9)(pOVar22);\n            }\n            break;\n          case 3:\n            binding = STB_GLOBAL;\n            uVar18 = 0xfff1;\n            break;\n          case 4:\n                    /* WARNING: This code block may not be properly labeled as switch case */\n            binding = STB_GLOBAL;\n            uVar18 = 0;\n            break;\n          default:\nswitchD_0028bebe_caseD_5:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.cc",0xc9b,"sized_write_globals");\n          }" { (case_statement "case 0:\nswitchD_0028c5a7_caseD_0:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");" case number_literal : (labeled_statement "switchD_0028c5a7_caseD_0:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");" statement_identifier : comment (expression_statement "do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");" (call_expression "do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx")" identifier (argument_list "("../../gold/symtab.h",0xaa,"shndx")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""shndx"" " string_content ") ))) ;))) (case_statement "case 1:\n            binding = STB_GLOBAL;\nLAB_0028c1cb:\n            if ((bVar16 & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.h",0xb5,"output_data");\n            }\n            pOVar10 = (pSVar6->super_Symbol).u1_.object;\n            uVar18 = (*pOVar10->_vptr_Object[0xb])(pOVar10);\n            if (0xfeff < uVar18) {\n              if (uVar26 != 0xffffffff) {\n                local_58._M_dataplus._M_p._0_4_ = uVar26;\n                local_58._M_dataplus._M_p._4_4_ = uVar18;\n                std::\n                vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                          (&symtab_xindex->entries_,(pair<unsigned_int,_unsigned_int> *)&local_58);\n              }\n              if (uVar29 == 0xffffffff) {\n                uVar18 = 0xffff;\n              }\n              else {\n                local_58._M_dataplus._M_p._0_4_ = uVar29;\n                local_58._M_dataplus._M_p._4_4_ = uVar18;\n                std::\n                vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                          (&dynsym_xindex->entries_,(pair<unsigned_int,_unsigned_int> *)&local_58);\n                uVar18 = 0xffff;\n              }\n            }\n            if (parameters->options_ == (General_options *)0x0) {\nLAB_0028c8d7:\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n            }\n            if ((parameters->options_->relocatable_).value != false) {\n              iVar19 = (*pOVar10->_vptr_Object[9])(pOVar10);\n              lVar23 = CONCAT44(extraout_var_00,iVar19);\n              if (lVar23 == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.cc",0xc81,"sized_write_globals");\n              }\n              if ((*(byte *)(lVar23 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xc5,"address");\n              }\n              local_d0 = local_d0 - *(long *)(lVar23 + 8);\n            }\n            break;" case number_literal : (expression_statement "binding = STB_GLOBAL;" (assignment_expression "binding = STB_GLOBAL" identifier = identifier) ;) (labeled_statement "LAB_0028c1cb:\n            if ((bVar16 & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.h",0xb5,"output_data");\n            }" statement_identifier : (if_statement "if ((bVar16 & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.h",0xb5,"output_data");\n            }" if (parenthesized_expression "((bVar16 & 7) != 1)" ( (binary_expression "(bVar16 & 7) != 1" (parenthesized_expression "(bVar16 & 7)" ( (binary_expression "bVar16 & 7" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.h",0xb5,"output_data");\n            }" { comment (expression_statement "do_gold_unreachable("../../gold/symtab.h",0xb5,"output_data");" (call_expression "do_gold_unreachable("../../gold/symtab.h",0xb5,"output_data")" identifier (argument_list "("../../gold/symtab.h",0xb5,"output_data")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""output_data"" " string_content ") ))) ;) }))) (expression_statement "pOVar10 = (pSVar6->super_Symbol).u1_.object;" (assignment_expression "pOVar10 = (pSVar6->super_Symbol).u1_.object" identifier = (field_expression "(pSVar6->super_Symbol).u1_.object" (field_expression "(pSVar6->super_Symbol).u1_" (parenthesized_expression "(pSVar6->super_Symbol)" ( (field_expression "pSVar6->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "uVar18 = (*pOVar10->_vptr_Object[0xb])(pOVar10);" (assignment_expression "uVar18 = (*pOVar10->_vptr_Object[0xb])(pOVar10)" identifier = (call_expression "(*pOVar10->_vptr_Object[0xb])(pOVar10)" (parenthesized_expression "(*pOVar10->_vptr_Object[0xb])" ( (pointer_expression "*pOVar10->_vptr_Object[0xb]" * (subscript_expression "pOVar10->_vptr_Object[0xb]" (field_expression "pOVar10->_vptr_Object" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(pOVar10)" ( identifier )))) ;) (if_statement "if (0xfeff < uVar18) {\n              if (uVar26 != 0xffffffff) {\n                local_58._M_dataplus._M_p._0_4_ = uVar26;\n                local_58._M_dataplus._M_p._4_4_ = uVar18;\n                std::\n                vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                          (&symtab_xindex->entries_,(pair<unsigned_int,_unsigned_int> *)&local_58);\n              }\n              if (uVar29 == 0xffffffff) {\n                uVar18 = 0xffff;\n              }\n              else {\n                local_58._M_dataplus._M_p._0_4_ = uVar29;\n                local_58._M_dataplus._M_p._4_4_ = uVar18;\n                std::\n                vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                          (&dynsym_xindex->entries_,(pair<unsigned_int,_unsigned_int> *)&local_58);\n                uVar18 = 0xffff;\n              }\n            }" if (parenthesized_expression "(0xfeff < uVar18)" ( (binary_expression "0xfeff < uVar18" number_literal < identifier) )) (compound_statement "{\n              if (uVar26 != 0xffffffff) {\n                local_58._M_dataplus._M_p._0_4_ = uVar26;\n                local_58._M_dataplus._M_p._4_4_ = uVar18;\n                std::\n                vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                          (&symtab_xindex->entries_,(pair<unsigned_int,_unsigned_int> *)&local_58);\n              }\n              if (uVar29 == 0xffffffff) {\n                uVar18 = 0xffff;\n              }\n              else {\n                local_58._M_dataplus._M_p._0_4_ = uVar29;\n                local_58._M_dataplus._M_p._4_4_ = uVar18;\n                std::\n                vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                          (&dynsym_xindex->entries_,(pair<unsigned_int,_unsigned_int> *)&local_58);\n                uVar18 = 0xffff;\n              }\n            }" { (if_statement "if (uVar26 != 0xffffffff) {\n                local_58._M_dataplus._M_p._0_4_ = uVar26;\n                local_58._M_dataplus._M_p._4_4_ = uVar18;\n                std::\n                vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                          (&symtab_xindex->entries_,(pair<unsigned_int,_unsigned_int> *)&local_58);\n              }" if (parenthesized_expression "(uVar26 != 0xffffffff)" ( (binary_expression "uVar26 != 0xffffffff" identifier != number_literal) )) (compound_statement "{\n                local_58._M_dataplus._M_p._0_4_ = uVar26;\n                local_58._M_dataplus._M_p._4_4_ = uVar18;\n                std::\n                vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                          (&symtab_xindex->entries_,(pair<unsigned_int,_unsigned_int> *)&local_58);\n              }" { (expression_statement "local_58._M_dataplus._M_p._0_4_ = uVar26;" (assignment_expression "local_58._M_dataplus._M_p._0_4_ = uVar26" (field_expression "local_58._M_dataplus._M_p._0_4_" (field_expression "local_58._M_dataplus._M_p" (field_expression "local_58._M_dataplus" identifier . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "local_58._M_dataplus._M_p._4_4_ = uVar18;" (assignment_expression "local_58._M_dataplus._M_p._4_4_ = uVar18" (field_expression "local_58._M_dataplus._M_p._4_4_" (field_expression "local_58._M_dataplus._M_p" (field_expression "local_58._M_dataplus" identifier . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (labeled_statement "std::\n                vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                          (&symtab_xindex->entries_,(pair<unsigned_int,_unsigned_int> *)&local_58);" statement_identifier (ERROR "::\n                vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                ::emplace_back<std:" : : (binary_expression "vector<std" identifier < identifier) : : (comma_expression "pair<unsigned_int,_unsigned_int>,_std" (binary_expression "pair<unsigned_int" identifier < identifier) , (binary_expression "_unsigned_int>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<unsigned_int,_unsigned_int>_>_>\n                ::emplace_back<std" (binary_expression "pair<unsigned_int" identifier < identifier) , (binary_expression "_unsigned_int>_>_>\n                ::emplace_back<std" (binary_expression "_unsigned_int>_>_>\n                ::emplace_back" (binary_expression "_unsigned_int>_>_" (binary_expression "_unsigned_int>_" identifier > identifier) > identifier) > (ERROR "::" : :) identifier) < identifier)) :) : (expression_statement "pair<unsigned_int,_unsigned_int>_>\n                          (&symtab_xindex->entries_,(pair<unsigned_int,_unsigned_int> *)&local_58);" (comma_expression "pair<unsigned_int,_unsigned_int>_>\n                          (&symtab_xindex->entries_,(pair<unsigned_int,_unsigned_int> *)&local_58)" (binary_expression "pair<unsigned_int" identifier < identifier) , (binary_expression "_unsigned_int>_>\n                          (&symtab_xindex->entries_,(pair<unsigned_int,_unsigned_int> *)&local_58)" (binary_expression "_unsigned_int>_" identifier > identifier) > (parenthesized_expression "(&symtab_xindex->entries_,(pair<unsigned_int,_unsigned_int> *)&local_58)" ( (comma_expression "&symtab_xindex->entries_,(pair<unsigned_int,_unsigned_int> *)&local_58" (pointer_expression "&symtab_xindex->entries_" & (field_expression "symtab_xindex->entries_" identifier -> field_identifier)) , (binary_expression "(pair<unsigned_int,_unsigned_int> *)&local_58" (parenthesized_expression "(pair<unsigned_int,_unsigned_int> *)" ( (comma_expression "pair<unsigned_int,_unsigned_int> *" (binary_expression "pair<unsigned_int" identifier < identifier) , (binary_expression "_unsigned_int> *" identifier > (pointer_expression "*" * identifier))) )) & identifier)) )))) ;)) })) (if_statement "if (uVar29 == 0xffffffff) {\n                uVar18 = 0xffff;\n              }\n              else {\n                local_58._M_dataplus._M_p._0_4_ = uVar29;\n                local_58._M_dataplus._M_p._4_4_ = uVar18;\n                std::\n                vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                          (&dynsym_xindex->entries_,(pair<unsigned_int,_unsigned_int> *)&local_58);\n                uVar18 = 0xffff;\n              }" if (parenthesized_expression "(uVar29 == 0xffffffff)" ( (binary_expression "uVar29 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n                uVar18 = 0xffff;\n              }" { (expression_statement "uVar18 = 0xffff;" (assignment_expression "uVar18 = 0xffff" identifier = number_literal) ;) }) (else_clause "else {\n                local_58._M_dataplus._M_p._0_4_ = uVar29;\n                local_58._M_dataplus._M_p._4_4_ = uVar18;\n                std::\n                vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                          (&dynsym_xindex->entries_,(pair<unsigned_int,_unsigned_int> *)&local_58);\n                uVar18 = 0xffff;\n              }" else (compound_statement "{\n                local_58._M_dataplus._M_p._0_4_ = uVar29;\n                local_58._M_dataplus._M_p._4_4_ = uVar18;\n                std::\n                vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                          (&dynsym_xindex->entries_,(pair<unsigned_int,_unsigned_int> *)&local_58);\n                uVar18 = 0xffff;\n              }" { (expression_statement "local_58._M_dataplus._M_p._0_4_ = uVar29;" (assignment_expression "local_58._M_dataplus._M_p._0_4_ = uVar29" (field_expression "local_58._M_dataplus._M_p._0_4_" (field_expression "local_58._M_dataplus._M_p" (field_expression "local_58._M_dataplus" identifier . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "local_58._M_dataplus._M_p._4_4_ = uVar18;" (assignment_expression "local_58._M_dataplus._M_p._4_4_ = uVar18" (field_expression "local_58._M_dataplus._M_p._4_4_" (field_expression "local_58._M_dataplus._M_p" (field_expression "local_58._M_dataplus" identifier . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (labeled_statement "std::\n                vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>\n                          (&dynsym_xindex->entries_,(pair<unsigned_int,_unsigned_int> *)&local_58);" statement_identifier (ERROR "::\n                vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n                ::emplace_back<std:" : : (binary_expression "vector<std" identifier < identifier) : : (comma_expression "pair<unsigned_int,_unsigned_int>,_std" (binary_expression "pair<unsigned_int" identifier < identifier) , (binary_expression "_unsigned_int>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<unsigned_int,_unsigned_int>_>_>\n                ::emplace_back<std" (binary_expression "pair<unsigned_int" identifier < identifier) , (binary_expression "_unsigned_int>_>_>\n                ::emplace_back<std" (binary_expression "_unsigned_int>_>_>\n                ::emplace_back" (binary_expression "_unsigned_int>_>_" (binary_expression "_unsigned_int>_" identifier > identifier) > identifier) > (ERROR "::" : :) identifier) < identifier)) :) : (expression_statement "pair<unsigned_int,_unsigned_int>_>\n                          (&dynsym_xindex->entries_,(pair<unsigned_int,_unsigned_int> *)&local_58);" (comma_expression "pair<unsigned_int,_unsigned_int>_>\n                          (&dynsym_xindex->entries_,(pair<unsigned_int,_unsigned_int> *)&local_58)" (binary_expression "pair<unsigned_int" identifier < identifier) , (binary_expression "_unsigned_int>_>\n                          (&dynsym_xindex->entries_,(pair<unsigned_int,_unsigned_int> *)&local_58)" (binary_expression "_unsigned_int>_" identifier > identifier) > (parenthesized_expression "(&dynsym_xindex->entries_,(pair<unsigned_int,_unsigned_int> *)&local_58)" ( (comma_expression "&dynsym_xindex->entries_,(pair<unsigned_int,_unsigned_int> *)&local_58" (pointer_expression "&dynsym_xindex->entries_" & (field_expression "dynsym_xindex->entries_" identifier -> field_identifier)) , (binary_expression "(pair<unsigned_int,_unsigned_int> *)&local_58" (parenthesized_expression "(pair<unsigned_int,_unsigned_int> *)" ( (comma_expression "pair<unsigned_int,_unsigned_int> *" (binary_expression "pair<unsigned_int" identifier < identifier) , (binary_expression "_unsigned_int> *" identifier > (pointer_expression "*" * identifier))) )) & identifier)) )))) ;)) (expression_statement "uVar18 = 0xffff;" (assignment_expression "uVar18 = 0xffff" identifier = number_literal) ;) }))) })) (if_statement "if (parameters->options_ == (General_options *)0x0) {\nLAB_0028c8d7:\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n            }" if (parenthesized_expression "(parameters->options_ == (General_options *)0x0)" ( (binary_expression "parameters->options_ == (General_options *)0x0" (field_expression "parameters->options_" identifier -> field_identifier) == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0028c8d7:\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n            }" { (labeled_statement "LAB_0028c8d7:\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" statement_identifier : comment (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;)) })) (if_statement "if ((parameters->options_->relocatable_).value != false) {\n              iVar19 = (*pOVar10->_vptr_Object[9])(pOVar10);\n              lVar23 = CONCAT44(extraout_var_00,iVar19);\n              if (lVar23 == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.cc",0xc81,"sized_write_globals");\n              }\n              if ((*(byte *)(lVar23 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xc5,"address");\n              }\n              local_d0 = local_d0 - *(long *)(lVar23 + 8);\n            }" if (parenthesized_expression "((parameters->options_->relocatable_).value != false)" ( (binary_expression "(parameters->options_->relocatable_).value != false" (field_expression "(parameters->options_->relocatable_).value" (parenthesized_expression "(parameters->options_->relocatable_)" ( (field_expression "parameters->options_->relocatable_" (field_expression "parameters->options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) != false) )) (compound_statement "{\n              iVar19 = (*pOVar10->_vptr_Object[9])(pOVar10);\n              lVar23 = CONCAT44(extraout_var_00,iVar19);\n              if (lVar23 == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.cc",0xc81,"sized_write_globals");\n              }\n              if ((*(byte *)(lVar23 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xc5,"address");\n              }\n              local_d0 = local_d0 - *(long *)(lVar23 + 8);\n            }" { (expression_statement "iVar19 = (*pOVar10->_vptr_Object[9])(pOVar10);" (assignment_expression "iVar19 = (*pOVar10->_vptr_Object[9])(pOVar10)" identifier = (call_expression "(*pOVar10->_vptr_Object[9])(pOVar10)" (parenthesized_expression "(*pOVar10->_vptr_Object[9])" ( (pointer_expression "*pOVar10->_vptr_Object[9]" * (subscript_expression "pOVar10->_vptr_Object[9]" (field_expression "pOVar10->_vptr_Object" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(pOVar10)" ( identifier )))) ;) (expression_statement "lVar23 = CONCAT44(extraout_var_00,iVar19);" (assignment_expression "lVar23 = CONCAT44(extraout_var_00,iVar19)" identifier = (call_expression "CONCAT44(extraout_var_00,iVar19)" identifier (argument_list "(extraout_var_00,iVar19)" ( identifier , identifier )))) ;) (if_statement "if (lVar23 == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.cc",0xc81,"sized_write_globals");\n              }" if (parenthesized_expression "(lVar23 == 0)" ( (binary_expression "lVar23 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.cc",0xc81,"sized_write_globals");\n              }" { comment (expression_statement "do_gold_unreachable("../../gold/symtab.cc",0xc81,"sized_write_globals");" (call_expression "do_gold_unreachable("../../gold/symtab.cc",0xc81,"sized_write_globals")" identifier (argument_list "("../../gold/symtab.cc",0xc81,"sized_write_globals")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""sized_write_globals"" " string_content ") ))) ;) })) (if_statement "if ((*(byte *)(lVar23 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xc5,"address");\n              }" if (parenthesized_expression "((*(byte *)(lVar23 + 0x20) & 1) == 0)" ( (binary_expression "(*(byte *)(lVar23 + 0x20) & 1) == 0" (parenthesized_expression "(*(byte *)(lVar23 + 0x20) & 1)" ( (binary_expression "*(byte *)(lVar23 + 0x20) & 1" (pointer_expression "*(byte *)(lVar23 + 0x20)" * (cast_expression "(byte *)(lVar23 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar23 + 0x20)" ( (binary_expression "lVar23 + 0x20" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_0028c9b0:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xc5,"address");\n              }" { (labeled_statement "LAB_0028c9b0:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xc5,"address");" statement_identifier : comment (expression_statement "do_gold_unreachable("../../gold/output.h",0xc5,"address");" (call_expression "do_gold_unreachable("../../gold/output.h",0xc5,"address")" identifier (argument_list "("../../gold/output.h",0xc5,"address")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""address"" " string_content ") ))) ;)) })) (expression_statement "local_d0 = local_d0 - *(long *)(lVar23 + 8);" (assignment_expression "local_d0 = local_d0 - *(long *)(lVar23 + 8)" identifier = (binary_expression "local_d0 - *(long *)(lVar23 + 8)" identifier - (pointer_expression "*(long *)(lVar23 + 8)" * (cast_expression "(long *)(lVar23 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar23 + 8)" ( (binary_expression "lVar23 + 8" identifier + number_literal) )))))) ;) })) (break_statement "break;" break ;)) (case_statement "case 2:\n            binding = STB_GLOBAL;\nLAB_0028c143:\n            if ((bVar16 & 7) != 2) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.h",200,"output_segment");\n            }\n            pOVar22 = Output_segment::first_section((pSVar6->super_Symbol).u1_.output_segment);\n            if (pOVar22 == (Output_section *)0x0) goto switchD_0028bebe_caseD_3;\n            p_Var9 = (pOVar22->super_Output_data)._vptr_Output_data[0xb];\n            if (p_Var9 == Output_section::do_out_shndx) {\n              uVar18 = pOVar22->out_shndx_;\n              if (uVar18 == 0xffffffff) {\nLAB_0028ca38:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar18 = (*p_Var9)(pOVar22);\n            }\n            break;" case number_literal : (expression_statement "binding = STB_GLOBAL;" (assignment_expression "binding = STB_GLOBAL" identifier = identifier) ;) (labeled_statement "LAB_0028c143:\n            if ((bVar16 & 7) != 2) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.h",200,"output_segment");\n            }" statement_identifier : (if_statement "if ((bVar16 & 7) != 2) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.h",200,"output_segment");\n            }" if (parenthesized_expression "((bVar16 & 7) != 2)" ( (binary_expression "(bVar16 & 7) != 2" (parenthesized_expression "(bVar16 & 7)" ( (binary_expression "bVar16 & 7" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.h",200,"output_segment");\n            }" { comment (expression_statement "do_gold_unreachable("../../gold/symtab.h",200,"output_segment");" (call_expression "do_gold_unreachable("../../gold/symtab.h",200,"output_segment")" identifier (argument_list "("../../gold/symtab.h",200,"output_segment")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""output_segment"" " string_content ") ))) ;) }))) (ERROR "pOVar22 = Output_segment::" (assignment_expression "pOVar22 = Output_segment" identifier = identifier) : :) (expression_statement "first_section((pSVar6->super_Symbol).u1_.output_segment);" (call_expression "first_section((pSVar6->super_Symbol).u1_.output_segment)" identifier (argument_list "((pSVar6->super_Symbol).u1_.output_segment)" ( (field_expression "(pSVar6->super_Symbol).u1_.output_segment" (field_expression "(pSVar6->super_Symbol).u1_" (parenthesized_expression "(pSVar6->super_Symbol)" ( (field_expression "pSVar6->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier) ))) ;) (if_statement "if (pOVar22 == (Output_section *)0x0) goto switchD_0028bebe_caseD_3;" if (parenthesized_expression "(pOVar22 == (Output_section *)0x0)" ( (binary_expression "pOVar22 == (Output_section *)0x0" identifier == (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto switchD_0028bebe_caseD_3;" goto statement_identifier ;)) (expression_statement "p_Var9 = (pOVar22->super_Output_data)._vptr_Output_data[0xb];" (assignment_expression "p_Var9 = (pOVar22->super_Output_data)._vptr_Output_data[0xb]" identifier = (subscript_expression "(pOVar22->super_Output_data)._vptr_Output_data[0xb]" (field_expression "(pOVar22->super_Output_data)._vptr_Output_data" (parenthesized_expression "(pOVar22->super_Output_data)" ( (field_expression "pOVar22->super_Output_data" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (if_statement "if (p_Var9 == Output_section::do_out_shndx) {\n              uVar18 = pOVar22->out_shndx_;\n              if (uVar18 == 0xffffffff) {\nLAB_0028ca38:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar18 = (*p_Var9)(pOVar22);\n            }" if (parenthesized_expression "(p_Var9 == Output_section::do_out_shndx)" ( (binary_expression "p_Var9 == Output_section" identifier == identifier) (ERROR "::do_out_shndx" : : identifier) )) (compound_statement "{\n              uVar18 = pOVar22->out_shndx_;\n              if (uVar18 == 0xffffffff) {\nLAB_0028ca38:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }" { (expression_statement "uVar18 = pOVar22->out_shndx_;" (assignment_expression "uVar18 = pOVar22->out_shndx_" identifier = (field_expression "pOVar22->out_shndx_" identifier -> field_identifier)) ;) (if_statement "if (uVar18 == 0xffffffff) {\nLAB_0028ca38:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");\n              }" if (parenthesized_expression "(uVar18 == 0xffffffff)" ( (binary_expression "uVar18 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\nLAB_0028ca38:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");\n              }" { (labeled_statement "LAB_0028ca38:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");" statement_identifier : comment (expression_statement "do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");" (call_expression "do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx")" identifier (argument_list "("../../gold/output.h",0x1043,"do_out_shndx")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""do_out_shndx"" " string_content ") ))) ;)) })) }) (else_clause "else {\n              uVar18 = (*p_Var9)(pOVar22);\n            }" else (compound_statement "{\n              uVar18 = (*p_Var9)(pOVar22);\n            }" { (expression_statement "uVar18 = (*p_Var9)(pOVar22);" (assignment_expression "uVar18 = (*p_Var9)(pOVar22)" identifier = (call_expression "(*p_Var9)(pOVar22)" (parenthesized_expression "(*p_Var9)" ( (pointer_expression "*p_Var9" * identifier) )) (argument_list "(pOVar22)" ( identifier )))) ;) }))) (break_statement "break;" break ;)) (case_statement "case 3:\n            binding = STB_GLOBAL;\n            uVar18 = 0xfff1;\n            break;" case number_literal : (expression_statement "binding = STB_GLOBAL;" (assignment_expression "binding = STB_GLOBAL" identifier = identifier) ;) (expression_statement "uVar18 = 0xfff1;" (assignment_expression "uVar18 = 0xfff1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n                    /* WARNING: This code block may not be properly labeled as switch case */\n            binding = STB_GLOBAL;\n            uVar18 = 0;\n            break;" case number_literal : comment (expression_statement "binding = STB_GLOBAL;" (assignment_expression "binding = STB_GLOBAL" identifier = identifier) ;) (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "default:\nswitchD_0028bebe_caseD_5:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.cc",0xc9b,"sized_write_globals");" default : (labeled_statement "switchD_0028bebe_caseD_5:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.cc",0xc9b,"sized_write_globals");" statement_identifier : comment (expression_statement "do_gold_unreachable("../../gold/symtab.cc",0xc9b,"sized_write_globals");" (call_expression "do_gold_unreachable("../../gold/symtab.cc",0xc9b,"sized_write_globals")" identifier (argument_list "("../../gold/symtab.cc",0xc9b,"sized_write_globals")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""sized_write_globals"" " string_content ") ))) ;))) })) }))) (if_statement "if (uVar26 != 0xffffffff) {\n          uVar26 = uVar26 - uVar1;\n          if (uVar2 <= uVar26) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.cc",0xca1,"sized_write_globals");\n          }\n          sized_write_symbol<64,_false>\n                    (this,pSVar6,local_d0,uVar18,binding,sympool,local_98 + uVar26 * 0x18);\n        }" if (parenthesized_expression "(uVar26 != 0xffffffff)" ( (binary_expression "uVar26 != 0xffffffff" identifier != number_literal) )) (compound_statement "{\n          uVar26 = uVar26 - uVar1;\n          if (uVar2 <= uVar26) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.cc",0xca1,"sized_write_globals");\n          }\n          sized_write_symbol<64,_false>\n                    (this,pSVar6,local_d0,uVar18,binding,sympool,local_98 + uVar26 * 0x18);\n        }" { (expression_statement "uVar26 = uVar26 - uVar1;" (assignment_expression "uVar26 = uVar26 - uVar1" identifier = (binary_expression "uVar26 - uVar1" identifier - identifier)) ;) (if_statement "if (uVar2 <= uVar26) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.cc",0xca1,"sized_write_globals");\n          }" if (parenthesized_expression "(uVar2 <= uVar26)" ( (binary_expression "uVar2 <= uVar26" identifier <= identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.cc",0xca1,"sized_write_globals");\n          }" { comment (expression_statement "do_gold_unreachable("../../gold/symtab.cc",0xca1,"sized_write_globals");" (call_expression "do_gold_unreachable("../../gold/symtab.cc",0xca1,"sized_write_globals")" identifier (argument_list "("../../gold/symtab.cc",0xca1,"sized_write_globals")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""sized_write_globals"" " string_content ") ))) ;) })) (expression_statement "sized_write_symbol<64,_false>\n                    (this,pSVar6,local_d0,uVar18,binding,sympool,local_98 + uVar26 * 0x18);" (comma_expression "sized_write_symbol<64,_false>\n                    (this,pSVar6,local_d0,uVar18,binding,sympool,local_98 + uVar26 * 0x18)" (binary_expression "sized_write_symbol<64" identifier < number_literal) , (binary_expression "_false>\n                    (this,pSVar6,local_d0,uVar18,binding,sympool,local_98 + uVar26 * 0x18)" identifier > (parenthesized_expression "(this,pSVar6,local_d0,uVar18,binding,sympool,local_98 + uVar26 * 0x18)" ( (comma_expression "this,pSVar6,local_d0,uVar18,binding,sympool,local_98 + uVar26 * 0x18" identifier , (comma_expression "pSVar6,local_d0,uVar18,binding,sympool,local_98 + uVar26 * 0x18" identifier , (comma_expression "local_d0,uVar18,binding,sympool,local_98 + uVar26 * 0x18" identifier , (comma_expression "uVar18,binding,sympool,local_98 + uVar26 * 0x18" identifier , (comma_expression "binding,sympool,local_98 + uVar26 * 0x18" identifier , (comma_expression "sympool,local_98 + uVar26 * 0x18" identifier , (binary_expression "local_98 + uVar26 * 0x18" identifier + (binary_expression "uVar26 * 0x18" identifier * number_literal)))))))) )))) ;) })) (if_statement "if (uVar29 != 0xffffffff) {\n          uVar29 = uVar29 - uVar3;\n          if (uVar4 <= uVar29) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.cc",0xcaa,"sized_write_globals");\n          }\n          sized_write_symbol<64,_false>\n                    (this,pSVar6,VVar21,uVar18,binding,dynpool,local_c0 + uVar29 * 0x18);\n          pTVar7 = parameters->target_;\n          if (pTVar7 == (Target *)0x0) goto LAB_0028c91f;\n          if (pTVar7->_vptr_Target[0x27] != Target::do_adjust_dyn_symbol) {\n            (*pTVar7->_vptr_Target[0x27])(pTVar7,pSVar6,local_c0 + uVar29 * 0x18);\n          }\n        }" if (parenthesized_expression "(uVar29 != 0xffffffff)" ( (binary_expression "uVar29 != 0xffffffff" identifier != number_literal) )) (compound_statement "{\n          uVar29 = uVar29 - uVar3;\n          if (uVar4 <= uVar29) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.cc",0xcaa,"sized_write_globals");\n          }\n          sized_write_symbol<64,_false>\n                    (this,pSVar6,VVar21,uVar18,binding,dynpool,local_c0 + uVar29 * 0x18);\n          pTVar7 = parameters->target_;\n          if (pTVar7 == (Target *)0x0) goto LAB_0028c91f;\n          if (pTVar7->_vptr_Target[0x27] != Target::do_adjust_dyn_symbol) {\n            (*pTVar7->_vptr_Target[0x27])(pTVar7,pSVar6,local_c0 + uVar29 * 0x18);\n          }\n        }" { (expression_statement "uVar29 = uVar29 - uVar3;" (assignment_expression "uVar29 = uVar29 - uVar3" identifier = (binary_expression "uVar29 - uVar3" identifier - identifier)) ;) (if_statement "if (uVar4 <= uVar29) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.cc",0xcaa,"sized_write_globals");\n          }" if (parenthesized_expression "(uVar4 <= uVar29)" ( (binary_expression "uVar4 <= uVar29" identifier <= identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.cc",0xcaa,"sized_write_globals");\n          }" { comment (expression_statement "do_gold_unreachable("../../gold/symtab.cc",0xcaa,"sized_write_globals");" (call_expression "do_gold_unreachable("../../gold/symtab.cc",0xcaa,"sized_write_globals")" identifier (argument_list "("../../gold/symtab.cc",0xcaa,"sized_write_globals")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""sized_write_globals"" " string_content ") ))) ;) })) (expression_statement "sized_write_symbol<64,_false>\n                    (this,pSVar6,VVar21,uVar18,binding,dynpool,local_c0 + uVar29 * 0x18);" (comma_expression "sized_write_symbol<64,_false>\n                    (this,pSVar6,VVar21,uVar18,binding,dynpool,local_c0 + uVar29 * 0x18)" (binary_expression "sized_write_symbol<64" identifier < number_literal) , (binary_expression "_false>\n                    (this,pSVar6,VVar21,uVar18,binding,dynpool,local_c0 + uVar29 * 0x18)" identifier > (parenthesized_expression "(this,pSVar6,VVar21,uVar18,binding,dynpool,local_c0 + uVar29 * 0x18)" ( (comma_expression "this,pSVar6,VVar21,uVar18,binding,dynpool,local_c0 + uVar29 * 0x18" identifier , (comma_expression "pSVar6,VVar21,uVar18,binding,dynpool,local_c0 + uVar29 * 0x18" identifier , (comma_expression "VVar21,uVar18,binding,dynpool,local_c0 + uVar29 * 0x18" identifier , (comma_expression "uVar18,binding,dynpool,local_c0 + uVar29 * 0x18" identifier , (comma_expression "binding,dynpool,local_c0 + uVar29 * 0x18" identifier , (comma_expression "dynpool,local_c0 + uVar29 * 0x18" identifier , (binary_expression "local_c0 + uVar29 * 0x18" identifier + (binary_expression "uVar29 * 0x18" identifier * number_literal)))))))) )))) ;) (expression_statement "pTVar7 = parameters->target_;" (assignment_expression "pTVar7 = parameters->target_" identifier = (field_expression "parameters->target_" identifier -> field_identifier)) ;) (if_statement "if (pTVar7 == (Target *)0x0) goto LAB_0028c91f;" if (parenthesized_expression "(pTVar7 == (Target *)0x0)" ( (binary_expression "pTVar7 == (Target *)0x0" identifier == (cast_expression "(Target *)0x0" ( (type_descriptor "Target *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0028c91f;" goto statement_identifier ;)) (if_statement "if (pTVar7->_vptr_Target[0x27] != Target::do_adjust_dyn_symbol) {\n            (*pTVar7->_vptr_Target[0x27])(pTVar7,pSVar6,local_c0 + uVar29 * 0x18);\n          }" if (parenthesized_expression "(pTVar7->_vptr_Target[0x27] != Target::do_adjust_dyn_symbol)" ( (binary_expression "pTVar7->_vptr_Target[0x27] != Target" (subscript_expression "pTVar7->_vptr_Target[0x27]" (field_expression "pTVar7->_vptr_Target" identifier -> field_identifier) [ number_literal ]) != identifier) (ERROR "::do_adjust_dyn_symbol" : : identifier) )) (compound_statement "{\n            (*pTVar7->_vptr_Target[0x27])(pTVar7,pSVar6,local_c0 + uVar29 * 0x18);\n          }" { (expression_statement "(*pTVar7->_vptr_Target[0x27])(pTVar7,pSVar6,local_c0 + uVar29 * 0x18);" (call_expression "(*pTVar7->_vptr_Target[0x27])(pTVar7,pSVar6,local_c0 + uVar29 * 0x18)" (parenthesized_expression "(*pTVar7->_vptr_Target[0x27])" ( (pointer_expression "*pTVar7->_vptr_Target[0x27]" * (subscript_expression "pTVar7->_vptr_Target[0x27]" (field_expression "pTVar7->_vptr_Target" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(pTVar7,pSVar6,local_c0 + uVar29 * 0x18)" ( identifier , identifier , (binary_expression "local_c0 + uVar29 * 0x18" identifier + (binary_expression "uVar29 * 0x18" identifier * number_literal)) ))) ;) })) })) })) (expression_statement "p_Var31 = p_Var31->_M_nxt;" (assignment_expression "p_Var31 = p_Var31->_M_nxt" identifier = (field_expression "p_Var31->_M_nxt" identifier -> field_identifier)) ;) }) while (parenthesized_expression "(p_Var31 != (_Hash_node_base *)0x0)" ( (binary_expression "p_Var31 != (_Hash_node_base *)0x0" identifier != (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "ppSVar30 = (this->target_symbols_).\n             super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start;" (field_expression "ppSVar30 = (this->target_symbols_).\n             super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start" (field_expression "ppSVar30 = (this->target_symbols_).\n             super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl" (binary_expression "ppSVar30 = (this->target_symbols_).\n             super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "ppSVar30 = (this->target_symbols_).\n             super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "ppSVar30 = (this->target_symbols_).\n             super__Vector_base<gold::Symbol*,_std" (assignment_expression "ppSVar30 = (this->target_symbols_).\n             super__Vector_base<gold" identifier = (binary_expression "(this->target_symbols_).\n             super__Vector_base<gold" (field_expression "(this->target_symbols_).\n             super__Vector_base" (parenthesized_expression "(this->target_symbols_)" ( (field_expression "this->target_symbols_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Symbol" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if (ppSVar30 ==\n      (this->target_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n      _M_impl._M_finish) {\n    return;\n  }" if (parenthesized_expression "(ppSVar30 ==\n      (this->target_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n      _M_impl._M_finish)" ( (field_expression "ppSVar30 ==\n      (this->target_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n      _M_impl._M_finish" (field_expression "ppSVar30 ==\n      (this->target_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n      _M_impl" (binary_expression "ppSVar30 ==\n      (this->target_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "ppSVar30 ==\n      (this->target_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "ppSVar30 ==\n      (this->target_symbols_).super__Vector_base<gold::Symbol*,_std" (binary_expression "ppSVar30 ==\n      (this->target_symbols_).super__Vector_base<gold" identifier == (binary_expression "(this->target_symbols_).super__Vector_base<gold" (field_expression "(this->target_symbols_).super__Vector_base" (parenthesized_expression "(this->target_symbols_)" ( (field_expression "this->target_symbols_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Symbol" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pSVar6 = (Sized_symbol<64> *)*ppSVar30;" (assignment_expression "pSVar6 = (Sized_symbol<64> *)*ppSVar30" identifier = (binary_expression "(Sized_symbol<64> *)*ppSVar30" (parenthesized_expression "(Sized_symbol<64> *)" ( (binary_expression "Sized_symbol<64> *" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "*" * identifier)) )) * identifier)) ;) (expression_statement "uVar26 = (pSVar6->super_Symbol).symtab_index_;" (assignment_expression "uVar26 = (pSVar6->super_Symbol).symtab_index_" identifier = (field_expression "(pSVar6->super_Symbol).symtab_index_" (parenthesized_expression "(pSVar6->super_Symbol)" ( (field_expression "pSVar6->super_Symbol" identifier -> field_identifier) )) . field_identifier)) ;) (while_statement "while (uVar26 != 0) {\n    ppSVar30 = ppSVar30 + 1;\n    if (local_c0 == (uchar *)0x0) {\n      uVar29 = 0xffffffff;\n    }\n    else {\n      uVar29 = (pSVar6->super_Symbol).dynsym_index_;\n      if (uVar29 == 0) {\nLAB_0028c898:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.h",0x19a,"dynsym_index");\n      }\n    }\n    bVar16 = (pSVar6->super_Symbol).field_0x3a & 7;\n    if (bVar16 == 3) {\n      uVar18 = 0xfff1;\n    }\n    else {\n      if (bVar16 != 4) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0xccb,"sized_write_globals");\n      }\n      uVar18 = 0;\n    }\n    if (uVar26 != 0xffffffff) {\n      uVar26 = uVar26 - uVar1;\n      if (uVar2 <= uVar26) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0xcd1,"sized_write_globals");\n      }\n      sized_write_symbol<64,_false>\n                (this,pSVar6,pSVar6->value_,uVar18,\n                 (uint)((byte)(pSVar6->super_Symbol).field_0x38 >> 4),sympool,\n                 local_98 + uVar26 * 0x18);\n    }\n    if (uVar29 != 0xffffffff) {\n      uVar29 = uVar29 - uVar3;\n      if (uVar4 <= uVar29) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0xcdb,"sized_write_globals");\n      }\n      sized_write_symbol<64,_false>\n                (this,pSVar6,pSVar6->value_,uVar18,\n                 (uint)((byte)(pSVar6->super_Symbol).field_0x38 >> 4),dynpool,\n                 local_c0 + uVar29 * 0x18);\n    }\n    if ((this->target_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n        _M_impl._M_finish == ppSVar30) {\n      return;\n    }\n    pSVar6 = (Sized_symbol<64> *)*ppSVar30;\n    uVar26 = (pSVar6->super_Symbol).symtab_index_;\n  }" while (parenthesized_expression "(uVar26 != 0)" ( (binary_expression "uVar26 != 0" identifier != number_literal) )) (compound_statement "{\n    ppSVar30 = ppSVar30 + 1;\n    if (local_c0 == (uchar *)0x0) {\n      uVar29 = 0xffffffff;\n    }\n    else {\n      uVar29 = (pSVar6->super_Symbol).dynsym_index_;\n      if (uVar29 == 0) {\nLAB_0028c898:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.h",0x19a,"dynsym_index");\n      }\n    }\n    bVar16 = (pSVar6->super_Symbol).field_0x3a & 7;\n    if (bVar16 == 3) {\n      uVar18 = 0xfff1;\n    }\n    else {\n      if (bVar16 != 4) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0xccb,"sized_write_globals");\n      }\n      uVar18 = 0;\n    }\n    if (uVar26 != 0xffffffff) {\n      uVar26 = uVar26 - uVar1;\n      if (uVar2 <= uVar26) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0xcd1,"sized_write_globals");\n      }\n      sized_write_symbol<64,_false>\n                (this,pSVar6,pSVar6->value_,uVar18,\n                 (uint)((byte)(pSVar6->super_Symbol).field_0x38 >> 4),sympool,\n                 local_98 + uVar26 * 0x18);\n    }\n    if (uVar29 != 0xffffffff) {\n      uVar29 = uVar29 - uVar3;\n      if (uVar4 <= uVar29) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0xcdb,"sized_write_globals");\n      }\n      sized_write_symbol<64,_false>\n                (this,pSVar6,pSVar6->value_,uVar18,\n                 (uint)((byte)(pSVar6->super_Symbol).field_0x38 >> 4),dynpool,\n                 local_c0 + uVar29 * 0x18);\n    }\n    if ((this->target_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n        _M_impl._M_finish == ppSVar30) {\n      return;\n    }\n    pSVar6 = (Sized_symbol<64> *)*ppSVar30;\n    uVar26 = (pSVar6->super_Symbol).symtab_index_;\n  }" { (expression_statement "ppSVar30 = ppSVar30 + 1;" (assignment_expression "ppSVar30 = ppSVar30 + 1" identifier = (binary_expression "ppSVar30 + 1" identifier + number_literal)) ;) (if_statement "if (local_c0 == (uchar *)0x0) {\n      uVar29 = 0xffffffff;\n    }\n    else {\n      uVar29 = (pSVar6->super_Symbol).dynsym_index_;\n      if (uVar29 == 0) {\nLAB_0028c898:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.h",0x19a,"dynsym_index");\n      }\n    }" if (parenthesized_expression "(local_c0 == (uchar *)0x0)" ( (binary_expression "local_c0 == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar29 = 0xffffffff;\n    }" { (expression_statement "uVar29 = 0xffffffff;" (assignment_expression "uVar29 = 0xffffffff" identifier = number_literal) ;) }) (else_clause "else {\n      uVar29 = (pSVar6->super_Symbol).dynsym_index_;\n      if (uVar29 == 0) {\nLAB_0028c898:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.h",0x19a,"dynsym_index");\n      }\n    }" else (compound_statement "{\n      uVar29 = (pSVar6->super_Symbol).dynsym_index_;\n      if (uVar29 == 0) {\nLAB_0028c898:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.h",0x19a,"dynsym_index");\n      }\n    }" { (expression_statement "uVar29 = (pSVar6->super_Symbol).dynsym_index_;" (assignment_expression "uVar29 = (pSVar6->super_Symbol).dynsym_index_" identifier = (field_expression "(pSVar6->super_Symbol).dynsym_index_" (parenthesized_expression "(pSVar6->super_Symbol)" ( (field_expression "pSVar6->super_Symbol" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (uVar29 == 0) {\nLAB_0028c898:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.h",0x19a,"dynsym_index");\n      }" if (parenthesized_expression "(uVar29 == 0)" ( (binary_expression "uVar29 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0028c898:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.h",0x19a,"dynsym_index");\n      }" { (labeled_statement "LAB_0028c898:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.h",0x19a,"dynsym_index");" statement_identifier : comment (expression_statement "do_gold_unreachable("../../gold/symtab.h",0x19a,"dynsym_index");" (call_expression "do_gold_unreachable("../../gold/symtab.h",0x19a,"dynsym_index")" identifier (argument_list "("../../gold/symtab.h",0x19a,"dynsym_index")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""dynsym_index"" " string_content ") ))) ;)) })) }))) (expression_statement "bVar16 = (pSVar6->super_Symbol).field_0x3a & 7;" (assignment_expression "bVar16 = (pSVar6->super_Symbol).field_0x3a & 7" identifier = (binary_expression "(pSVar6->super_Symbol).field_0x3a & 7" (field_expression "(pSVar6->super_Symbol).field_0x3a" (parenthesized_expression "(pSVar6->super_Symbol)" ( (field_expression "pSVar6->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal)) ;) (if_statement "if (bVar16 == 3) {\n      uVar18 = 0xfff1;\n    }\n    else {\n      if (bVar16 != 4) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0xccb,"sized_write_globals");\n      }\n      uVar18 = 0;\n    }" if (parenthesized_expression "(bVar16 == 3)" ( (binary_expression "bVar16 == 3" identifier == number_literal) )) (compound_statement "{\n      uVar18 = 0xfff1;\n    }" { (expression_statement "uVar18 = 0xfff1;" (assignment_expression "uVar18 = 0xfff1" identifier = number_literal) ;) }) (else_clause "else {\n      if (bVar16 != 4) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0xccb,"sized_write_globals");\n      }\n      uVar18 = 0;\n    }" else (compound_statement "{\n      if (bVar16 != 4) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0xccb,"sized_write_globals");\n      }\n      uVar18 = 0;\n    }" { (if_statement "if (bVar16 != 4) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0xccb,"sized_write_globals");\n      }" if (parenthesized_expression "(bVar16 != 4)" ( (binary_expression "bVar16 != 4" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0xccb,"sized_write_globals");\n      }" { comment (expression_statement "do_gold_unreachable("../../gold/symtab.cc",0xccb,"sized_write_globals");" (call_expression "do_gold_unreachable("../../gold/symtab.cc",0xccb,"sized_write_globals")" identifier (argument_list "("../../gold/symtab.cc",0xccb,"sized_write_globals")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""sized_write_globals"" " string_content ") ))) ;) })) (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) }))) (if_statement "if (uVar26 != 0xffffffff) {\n      uVar26 = uVar26 - uVar1;\n      if (uVar2 <= uVar26) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0xcd1,"sized_write_globals");\n      }\n      sized_write_symbol<64,_false>\n                (this,pSVar6,pSVar6->value_,uVar18,\n                 (uint)((byte)(pSVar6->super_Symbol).field_0x38 >> 4),sympool,\n                 local_98 + uVar26 * 0x18);\n    }" if (parenthesized_expression "(uVar26 != 0xffffffff)" ( (binary_expression "uVar26 != 0xffffffff" identifier != number_literal) )) (compound_statement "{\n      uVar26 = uVar26 - uVar1;\n      if (uVar2 <= uVar26) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0xcd1,"sized_write_globals");\n      }\n      sized_write_symbol<64,_false>\n                (this,pSVar6,pSVar6->value_,uVar18,\n                 (uint)((byte)(pSVar6->super_Symbol).field_0x38 >> 4),sympool,\n                 local_98 + uVar26 * 0x18);\n    }" { (expression_statement "uVar26 = uVar26 - uVar1;" (assignment_expression "uVar26 = uVar26 - uVar1" identifier = (binary_expression "uVar26 - uVar1" identifier - identifier)) ;) (if_statement "if (uVar2 <= uVar26) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0xcd1,"sized_write_globals");\n      }" if (parenthesized_expression "(uVar2 <= uVar26)" ( (binary_expression "uVar2 <= uVar26" identifier <= identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0xcd1,"sized_write_globals");\n      }" { comment (expression_statement "do_gold_unreachable("../../gold/symtab.cc",0xcd1,"sized_write_globals");" (call_expression "do_gold_unreachable("../../gold/symtab.cc",0xcd1,"sized_write_globals")" identifier (argument_list "("../../gold/symtab.cc",0xcd1,"sized_write_globals")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""sized_write_globals"" " string_content ") ))) ;) })) (expression_statement "sized_write_symbol<64,_false>\n                (this,pSVar6,pSVar6->value_,uVar18,\n                 (uint)((byte)(pSVar6->super_Symbol).field_0x38 >> 4),sympool,\n                 local_98 + uVar26 * 0x18);" (comma_expression "sized_write_symbol<64,_false>\n                (this,pSVar6,pSVar6->value_,uVar18,\n                 (uint)((byte)(pSVar6->super_Symbol).field_0x38 >> 4),sympool,\n                 local_98 + uVar26 * 0x18)" (binary_expression "sized_write_symbol<64" identifier < number_literal) , (binary_expression "_false>\n                (this,pSVar6,pSVar6->value_,uVar18,\n                 (uint)((byte)(pSVar6->super_Symbol).field_0x38 >> 4),sympool,\n                 local_98 + uVar26 * 0x18)" identifier > (parenthesized_expression "(this,pSVar6,pSVar6->value_,uVar18,\n                 (uint)((byte)(pSVar6->super_Symbol).field_0x38 >> 4),sympool,\n                 local_98 + uVar26 * 0x18)" ( (comma_expression "this,pSVar6,pSVar6->value_,uVar18,\n                 (uint)((byte)(pSVar6->super_Symbol).field_0x38 >> 4),sympool,\n                 local_98 + uVar26 * 0x18" identifier , (comma_expression "pSVar6,pSVar6->value_,uVar18,\n                 (uint)((byte)(pSVar6->super_Symbol).field_0x38 >> 4),sympool,\n                 local_98 + uVar26 * 0x18" identifier , (comma_expression "pSVar6->value_,uVar18,\n                 (uint)((byte)(pSVar6->super_Symbol).field_0x38 >> 4),sympool,\n                 local_98 + uVar26 * 0x18" (field_expression "pSVar6->value_" identifier -> field_identifier) , (comma_expression "uVar18,\n                 (uint)((byte)(pSVar6->super_Symbol).field_0x38 >> 4),sympool,\n                 local_98 + uVar26 * 0x18" identifier , (comma_expression "(uint)((byte)(pSVar6->super_Symbol).field_0x38 >> 4),sympool,\n                 local_98 + uVar26 * 0x18" (call_expression "(uint)((byte)(pSVar6->super_Symbol).field_0x38 >> 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((byte)(pSVar6->super_Symbol).field_0x38 >> 4)" ( (binary_expression "(byte)(pSVar6->super_Symbol).field_0x38 >> 4" (field_expression "(byte)(pSVar6->super_Symbol).field_0x38" (call_expression "(byte)(pSVar6->super_Symbol)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(pSVar6->super_Symbol)" ( (field_expression "pSVar6->super_Symbol" identifier -> field_identifier) ))) . field_identifier) >> number_literal) ))) , (comma_expression "sympool,\n                 local_98 + uVar26 * 0x18" identifier , (binary_expression "local_98 + uVar26 * 0x18" identifier + (binary_expression "uVar26 * 0x18" identifier * number_literal)))))))) )))) ;) })) (if_statement "if (uVar29 != 0xffffffff) {\n      uVar29 = uVar29 - uVar3;\n      if (uVar4 <= uVar29) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0xcdb,"sized_write_globals");\n      }\n      sized_write_symbol<64,_false>\n                (this,pSVar6,pSVar6->value_,uVar18,\n                 (uint)((byte)(pSVar6->super_Symbol).field_0x38 >> 4),dynpool,\n                 local_c0 + uVar29 * 0x18);\n    }" if (parenthesized_expression "(uVar29 != 0xffffffff)" ( (binary_expression "uVar29 != 0xffffffff" identifier != number_literal) )) (compound_statement "{\n      uVar29 = uVar29 - uVar3;\n      if (uVar4 <= uVar29) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0xcdb,"sized_write_globals");\n      }\n      sized_write_symbol<64,_false>\n                (this,pSVar6,pSVar6->value_,uVar18,\n                 (uint)((byte)(pSVar6->super_Symbol).field_0x38 >> 4),dynpool,\n                 local_c0 + uVar29 * 0x18);\n    }" { (expression_statement "uVar29 = uVar29 - uVar3;" (assignment_expression "uVar29 = uVar29 - uVar3" identifier = (binary_expression "uVar29 - uVar3" identifier - identifier)) ;) (if_statement "if (uVar4 <= uVar29) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0xcdb,"sized_write_globals");\n      }" if (parenthesized_expression "(uVar4 <= uVar29)" ( (binary_expression "uVar4 <= uVar29" identifier <= identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0xcdb,"sized_write_globals");\n      }" { comment (expression_statement "do_gold_unreachable("../../gold/symtab.cc",0xcdb,"sized_write_globals");" (call_expression "do_gold_unreachable("../../gold/symtab.cc",0xcdb,"sized_write_globals")" identifier (argument_list "("../../gold/symtab.cc",0xcdb,"sized_write_globals")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""sized_write_globals"" " string_content ") ))) ;) })) (expression_statement "sized_write_symbol<64,_false>\n                (this,pSVar6,pSVar6->value_,uVar18,\n                 (uint)((byte)(pSVar6->super_Symbol).field_0x38 >> 4),dynpool,\n                 local_c0 + uVar29 * 0x18);" (comma_expression "sized_write_symbol<64,_false>\n                (this,pSVar6,pSVar6->value_,uVar18,\n                 (uint)((byte)(pSVar6->super_Symbol).field_0x38 >> 4),dynpool,\n                 local_c0 + uVar29 * 0x18)" (binary_expression "sized_write_symbol<64" identifier < number_literal) , (binary_expression "_false>\n                (this,pSVar6,pSVar6->value_,uVar18,\n                 (uint)((byte)(pSVar6->super_Symbol).field_0x38 >> 4),dynpool,\n                 local_c0 + uVar29 * 0x18)" identifier > (parenthesized_expression "(this,pSVar6,pSVar6->value_,uVar18,\n                 (uint)((byte)(pSVar6->super_Symbol).field_0x38 >> 4),dynpool,\n                 local_c0 + uVar29 * 0x18)" ( (comma_expression "this,pSVar6,pSVar6->value_,uVar18,\n                 (uint)((byte)(pSVar6->super_Symbol).field_0x38 >> 4),dynpool,\n                 local_c0 + uVar29 * 0x18" identifier , (comma_expression "pSVar6,pSVar6->value_,uVar18,\n                 (uint)((byte)(pSVar6->super_Symbol).field_0x38 >> 4),dynpool,\n                 local_c0 + uVar29 * 0x18" identifier , (comma_expression "pSVar6->value_,uVar18,\n                 (uint)((byte)(pSVar6->super_Symbol).field_0x38 >> 4),dynpool,\n                 local_c0 + uVar29 * 0x18" (field_expression "pSVar6->value_" identifier -> field_identifier) , (comma_expression "uVar18,\n                 (uint)((byte)(pSVar6->super_Symbol).field_0x38 >> 4),dynpool,\n                 local_c0 + uVar29 * 0x18" identifier , (comma_expression "(uint)((byte)(pSVar6->super_Symbol).field_0x38 >> 4),dynpool,\n                 local_c0 + uVar29 * 0x18" (call_expression "(uint)((byte)(pSVar6->super_Symbol).field_0x38 >> 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((byte)(pSVar6->super_Symbol).field_0x38 >> 4)" ( (binary_expression "(byte)(pSVar6->super_Symbol).field_0x38 >> 4" (field_expression "(byte)(pSVar6->super_Symbol).field_0x38" (call_expression "(byte)(pSVar6->super_Symbol)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(pSVar6->super_Symbol)" ( (field_expression "pSVar6->super_Symbol" identifier -> field_identifier) ))) . field_identifier) >> number_literal) ))) , (comma_expression "dynpool,\n                 local_c0 + uVar29 * 0x18" identifier , (binary_expression "local_c0 + uVar29 * 0x18" identifier + (binary_expression "uVar29 * 0x18" identifier * number_literal)))))))) )))) ;) })) (if_statement "if ((this->target_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n        _M_impl._M_finish == ppSVar30) {\n      return;\n    }" if (parenthesized_expression "((this->target_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n        _M_impl._M_finish == ppSVar30)" ( (binary_expression "(this->target_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n        _M_impl._M_finish == ppSVar30" (field_expression "(this->target_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n        _M_impl._M_finish" (field_expression "(this->target_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n        _M_impl" (binary_expression "(this->target_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "(this->target_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "(this->target_symbols_).super__Vector_base<gold::Symbol*,_std" (binary_expression "(this->target_symbols_).super__Vector_base<gold" (field_expression "(this->target_symbols_).super__Vector_base" (parenthesized_expression "(this->target_symbols_)" ( (field_expression "this->target_symbols_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) == identifier) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "pSVar6 = (Sized_symbol<64> *)*ppSVar30;" (assignment_expression "pSVar6 = (Sized_symbol<64> *)*ppSVar30" identifier = (binary_expression "(Sized_symbol<64> *)*ppSVar30" (parenthesized_expression "(Sized_symbol<64> *)" ( (binary_expression "Sized_symbol<64> *" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "*" * identifier)) )) * identifier)) ;) (expression_statement "uVar26 = (pSVar6->super_Symbol).symtab_index_;" (assignment_expression "uVar26 = (pSVar6->super_Symbol).symtab_index_" identifier = (field_expression "(pSVar6->super_Symbol).symtab_index_" (parenthesized_expression "(pSVar6->super_Symbol)" ( (field_expression "pSVar6->super_Symbol" identifier -> field_identifier) )) . field_identifier)) ;) })) (labeled_statement "LAB_0028c880:\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/symtab.h",0x180,"symtab_index");" statement_identifier : comment (expression_statement "do_gold_unreachable("../../gold/symtab.h",0x180,"symtab_index");" (call_expression "do_gold_unreachable("../../gold/symtab.h",0x180,"symtab_index")" identifier (argument_list "("../../gold/symtab.h",0x180,"symtab_index")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""symtab_index"" " string_content ") ))) ;)) (ERROR "}" }))
(translation_unit "code * FUN_0028bce0(long param_1,undefined8 param_2,undefined8 param_3,long param_4,long param_5,\n                   long param_6)\n\n{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  undefined8 *puVar6;\n  byte bVar7;\n  byte bVar8;\n  char cVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  code *pcVar13;\n  code *pcVar14;\n  long lVar15;\n  undefined8 uVar16;\n  long *plVar17;\n  long *plVar18;\n  ulong uVar19;\n  long lVar20;\n  int iVar21;\n  uint uVar22;\n  long *plVar23;\n  long *plVar24;\n  undefined8 uVar25;\n  undefined1 auVar26 [16];\n  code *local_d0;\n  code *local_c0;\n  long local_98;\n  uint local_58;\n  uint uStack_54;\n  undefined1 auStack_48 [24];\n  \n  plVar23 = *(long **)(PTR_DAT_0045c708 + 0x18);\n  if (plVar23 == (long *)0x0) {\nLAB_0028c91f:\n                    \n    FUN_0018ff20("../../gold/parameters.h",0x69,"target");\n  }\n  iVar1 = *(int *)(param_1 + 8);\n  uVar2 = *(uint *)(param_1 + 0x18);\n  local_98 = *(long *)(param_1 + 0x10);\n  if ((uVar2 == 0) || (local_98 == 0)) {\n    local_98 = 0;\n  }\n  else {\n    if ((local_98 < 0) || (*(long *)(param_6 + 0x10) < (long)((ulong)(uVar2 * 0x18) + local_98)))\n    goto LAB_0028c9c8;\n    local_98 = local_98 + *(long *)(param_6 + 0x18);\n  }\n  iVar3 = *(int *)(param_1 + 0x28);\n  uVar4 = *(uint *)(param_1 + 0x2c);\n  pcVar13 = *(code **)(param_1 + 0x20);\n  if ((pcVar13 == (code *)0x0) || (uVar4 == 0)) {\n    local_c0 = (code *)0x0;\n  }\n  else {\n    if (((long)pcVar13 < 0) || (*(long *)(param_6 + 0x10) < (long)(pcVar13 + uVar4 * 0x18))) {\nLAB_0028c9c8:\n      FUN_00284650();\nLAB_0028c9cd:\n                    \n      FUN_0018ff20("../../gold/symtab.cc",0xc59,"sized_write_globals");\n    }\n    pcVar13 = pcVar13 + *(long *)(param_6 + 0x18);\n    local_c0 = pcVar13;\n  }\n  plVar24 = *(long **)(param_1 + 0x40);\n  if (plVar24 != (long *)0x0) {\n    lVar20 = (long)DAT_003a0b74;\n    do {\n      puVar6 = (undefined8 *)plVar24[3];\n      if (((((*(byte *)((long)puVar6 + 0x3a) & 7) == 0) &&\n           (lVar15 = puVar6[2], (*(byte *)(lVar15 + 0x3c) & 1) != 0)) && (*(int *)(puVar6 + 3) == 0)\n          ) && (*(byte *)(puVar6 + 7) >> 4 != 2)) {\n        if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) goto LAB_0028c8d7;\n        if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x339) == '\0') {\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          if (*(code **)(*plVar17 + 0x38) != FUN_00172b10) {\n            cVar9 = (**(code **)(*plVar17 + 0x38))(plVar17,puVar6);\n            if (cVar9 != '\0') goto LAB_0028be18;\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) goto LAB_0028c752;\n            lVar15 = puVar6[2];\n          }\n          if ((*(byte *)(lVar15 + 0x3c) & 0x20) == 0) {\n            if (*(int *)(lVar15 + 0x88) == 0) {\n                    \n              FUN_0018ff20("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }\n            if (*(int *)(lVar15 + 0x88) != 1) {\n              FUN_00187dc0(puVar6);\n            }\n          }\n        }\n      }\nLAB_0028be18:\n      uVar12 = *(uint *)((long)puVar6 + 0x1c);\n      if (uVar12 == 0) goto LAB_0028c880;\n      if (local_c0 == (code *)0x0) {\n        uVar22 = 0xffffffff;\n        uVar11 = uVar12;\n      }\n      else {\n        uVar22 = *(uint *)(puVar6 + 4);\n        if (uVar22 == 0) goto LAB_0028c898;\n        uVar11 = uVar12 & uVar22;\n      }\n      pcVar13 = (code *)(ulong)uVar11;\n      if (uVar11 != 0xffffffff) {\n        local_d0 = (code *)puVar6[8];\n        uVar11 = (uint)(*(byte *)(puVar6 + 7) >> 4);\n        lVar15 = *(long *)(PTR_DAT_0045c708 + 0x10);\n        if (lVar15 == 0) goto LAB_0028c8d7;\n        bVar8 = *(byte *)((long)puVar6 + 0x3a);\n        uVar10 = bVar8 & 7;\n        bVar7 = (byte)uVar10;\n        pcVar14 = local_d0;\n        if ((*(char *)(lVar15 + 0x7739) != '\0') && (uVar11 == 1)) {\n          if (bVar7 == 0) {\n            if ((*(int *)(puVar6 + 3) == 0) && ((*(byte *)((long)puVar6 + 0x3b) >> 5 & 1) != 0)) {\n                    \n                    \n              pcVar13 = (code *)(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return pcVar13;\n            }\n                    \n                    \n            pcVar13 = (code *)(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();\n            return pcVar13;\n          }\n          if (bVar7 == 4) {\n                    \n                    \n            pcVar13 = (code *)(*(code *)(&DAT_003a0b64 + lVar20))();\n            return pcVar13;\n          }\n          if (4 < bVar7) goto LAB_0028c8b0;\n          pcVar13 = (code *)((long)&switchD_0028c5a7::switchdataD_003a0b78 +\n                            (long)(int)(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10]);\n                    \n          switch(uVar10) {\n          case 0:\nswitchD_0028c5a7_caseD_0:\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xaa,"shndx");\n          case 1:\n            uVar11 = 1;\n            goto LAB_0028c1cb;\n          case 2:\n            uVar11 = 1;\n            goto LAB_0028c143;\n          case 3:\n            uVar11 = 1;\n            uVar10 = 0xfff1;\n            break;\n          case 4:\n                    \n            uVar11 = 1;\n            uVar10 = 0;\n          }\n          goto LAB_0028bf30;\n        }\n        if ((uVar11 == 10) && (*(char *)(lVar15 + 0x2999) == '\0')) {\n          uVar11 = 1;\n        }\n        if (4 < bVar7) {\nLAB_0028c8b0:\n                    \n          FUN_0018ff20("../../gold/symtab.cc",0xc9b,"sized_write_globals");\n        }\n        pcVar13 = (code *)((long)&switchD_0028bebe::switchdataD_003a0b3c +\n                          (long)(int)(&switchD_0028bebe::switchdataD_003a0b3c)[uVar10]);\n        switch(uVar10) {\n        case 0:\n          if ((bVar8 & 7) != 0) goto switchD_0028c5a7_caseD_0;\n          uVar10 = *(uint *)(puVar6 + 3);\n          bVar8 = *(byte *)((long)puVar6 + 0x3b) >> 5;\n          if (((bVar8 & 1) != 1) && (uVar10 != 0xfff1)) {\n            cVar9 = FUN_00284a00(uVar10);\n            if (cVar9 == '\0') {\n              FUN_00285b30(&local_58,*puVar6);\n              uVar25 = CONCAT44(uStack_54,local_58);\n              uVar16 = gettext("%s: unsupported symbol section 0x%x");\n                    \n              FUN_001878b0(uVar16,uVar25,uVar10);\n              pcVar13 = (code *)auStack_48;\n              if ((code *)CONCAT44(uStack_54,local_58) != pcVar13) {\n                pcVar13 = (code *)FUN_002f1e60();\n              }\n              break;\n            }\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) {\nLAB_0028c752:\n                    \n              FUN_0018ff20("../../gold/symtab.h",0xa1,"object");\n            }\n          }\n          plVar17 = (long *)puVar6[2];\n          if ((*(byte *)((long)plVar17 + 0x3c) & 1) == 0) {\n            pcVar13 = (code *)(**(code **)(*plVar17 + 0x28))(plVar17);\n            if ((pcVar13 != (code *)0x0) || (uVar10 == 0)) goto switchD_0028bebe_caseD_4;\n            if (((bVar8 & 1) != 0) ||\n               ((uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')\n                ))) {\n              uVar19 = (ulong)uVar10;\n              if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;\n                plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n              }\n              else {\n                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);\n              }\n              cVar9 = FUN_00284da0(param_1,plVar17,uVar19);\n              if (cVar9 == '\0') {\n                if (plVar18 == (long *)0x0) goto LAB_0028c9cd;\n              }\n              else {\n                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);\n                plVar17 = auVar26._0_8_;\n                if (plVar17 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }\n                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    \n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }\n                if (plVar18 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }\n              }\n              if (*(code **)(*plVar18 + 0x58) == FUN_0019a160) {\n                uVar10 = *(uint *)((long)plVar18 + 0x7c);\n                if (uVar10 == 0xffffffff) goto LAB_0028ca38;\n              }\n              else {\n                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);\n              }\n              if (0xfeff < uVar10) {\n                if (uVar12 != 0xffffffff) {\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }\n                if (uVar22 == 0xffffffff) {\n                  uVar10 = 0xffff;\n                }\n                else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }\n              }\n              pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n              if (pcVar13 == (code *)0x0) goto LAB_0028c8d7;\n              if (pcVar13[0x5051] != (code)0x0) {\n                if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;\n                pcVar13 = local_d0 + -plVar18[1];\n                local_d0 = pcVar13;\n              }\n            }\n          }\n          else {\n            if ((*(byte *)((long)puVar6 + 0x3b) & 2) != 0) {\n              pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6);\n            }\n            uVar10 = 0;\n            uVar11 = *(byte *)((long)puVar6 + 0x3c) >> 1 & 1;\n            pcVar13 = (code *)(ulong)uVar11;\n            uVar11 = 2 - ((char)uVar11 == '\0');\n          }\n          break;\n        case 1:\nLAB_0028c1cb:\n          if ((bVar8 & 7) != 1) {\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xb5,"output_data");\n          }\n          plVar17 = (long *)puVar6[2];\n          uVar10 = (**(code **)(*plVar17 + 0x58))(plVar17);\n          if (0xfeff < uVar10) {\n            if (uVar12 != 0xffffffff) {\n              local_58 = uVar12;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_4 + 0x38,&local_58);\n            }\n            if (uVar22 == 0xffffffff) {\n              uVar10 = 0xffff;\n            }\n            else {\n              local_58 = uVar22;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_5 + 0x38,&local_58);\n              uVar10 = 0xffff;\n            }\n          }\n          pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n          if (pcVar13 == (code *)0x0) {\nLAB_0028c8d7:\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if (pcVar13[0x5051] != (code)0x0) {\n            lVar15 = (**(code **)(*plVar17 + 0x48))(plVar17);\n            if (lVar15 == 0) {\n                    \n              FUN_0018ff20("../../gold/symtab.cc",0xc81,"sized_write_globals");\n            }\n            if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    \n              FUN_0018ff20("../../gold/output.h",0xc5,"address");\n            }\n            pcVar13 = *(code **)(lVar15 + 8);\n            local_d0 = local_d0 + -(long)pcVar13;\n          }\n          break;\n        case 2:\n          uVar10 = bVar8 & 7;\nLAB_0028c143:\n          if ((char)uVar10 != '\x02') {\n                    \n            FUN_0018ff20("../../gold/symtab.h",200,"output_segment");\n          }\n          pcVar13 = (code *)FUN_0020de20(puVar6[2]);\n          if (pcVar13 == (code *)0x0) goto switchD_0028bebe_caseD_3;\n          if (*(code **)(*(long *)pcVar13 + 0x58) == FUN_0019a160) {\n            uVar10 = *(uint *)(pcVar13 + 0x7c);\n            pcVar13 = (code *)(ulong)uVar10;\n            if (uVar10 == 0xffffffff) {\nLAB_0028ca38:\n                    \n              FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx");\n            }\n          }\n          else {\n            pcVar13 = (code *)(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13);\n            uVar10 = (uint)pcVar13;\n          }\n          break;\n        case 3:\nswitchD_0028bebe_caseD_3:\n          uVar10 = 0xfff1;\n          break;\n        case 4:\nswitchD_0028bebe_caseD_4:\n          uVar10 = 0;\n        }\nLAB_0028bf30:\n        if (uVar12 != 0xffffffff) {\n          uVar12 = uVar12 - iVar1;\n          if (uVar2 <= uVar12) {\n                    \n            FUN_0018ff20("../../gold/symtab.cc",0xca1,"sized_write_globals");\n          }\n          pcVar13 = (code *)FUN_00289ee0(param_1,puVar6,local_d0,uVar10,uVar11,param_2,\n                                         (ulong)(uVar12 * 0x18) + local_98);\n        }\n        if (uVar22 != 0xffffffff) {\n          uVar22 = uVar22 - iVar3;\n          if (uVar4 <= uVar22) {\n                    \n            FUN_0018ff20("../../gold/symtab.cc",0xcaa,"sized_write_globals");\n          }\n          FUN_00289ee0(param_1,puVar6,pcVar14,uVar10,uVar11,param_3);\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          pcVar13 = *(code **)(*plVar17 + 0x138);\n          if (pcVar13 != FUN_00172ba0) {\n            pcVar13 = (code *)(*pcVar13)(plVar17,puVar6,local_c0 + uVar22 * 0x18);\n          }\n        }\n      }\n      plVar24 = (long *)*plVar24;\n    } while (plVar24 != (long *)0x0);\n  }\n  plVar23 = *(long **)(param_1 + 0x2a0);\n  if (plVar23 == *(long **)(param_1 + 0x2a8)) {\n    return pcVar13;\n  }\n  lVar20 = *plVar23;\n  iVar5 = *(int *)(lVar20 + 0x1c);\n  while (iVar5 != 0) {\n    plVar23 = plVar23 + 1;\n    if (local_c0 == (code *)0x0) {\n      iVar21 = -1;\n    }\n    else {\n      iVar21 = *(int *)(lVar20 + 0x20);\n      if (iVar21 == 0) {\nLAB_0028c898:\n                    \n        FUN_0018ff20("../../gold/symtab.h",0x19a,"dynsym_index");\n      }\n    }\n    uVar12 = *(byte *)(lVar20 + 0x3a) & 7;\n    pcVar13 = (code *)(ulong)uVar12;\n    cVar9 = (char)uVar12;\n    if (cVar9 == '\x03') {\n      uVar25 = 0xfff1;\n    }\n    else {\n      if (cVar9 != '\x04') {\n                    \n        FUN_0018ff20("../../gold/symtab.cc",0xccb,"sized_write_globals");\n      }\n      uVar25 = 0;\n    }\n    if (iVar5 != -1) {\n      uVar12 = iVar5 - iVar1;\n      if (uVar2 <= uVar12) {\n                    \n        FUN_0018ff20("../../gold/symtab.cc",0xcd1,"sized_write_globals");\n      }\n      pcVar13 = (code *)FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                                     *(byte *)(lVar20 + 0x38) >> 4,param_2,\n                                     (ulong)(uVar12 * 0x18) + local_98);\n    }\n    if (iVar21 != -1) {\n      uVar12 = iVar21 - iVar3;\n      if (uVar4 <= uVar12) {\n                    \n        FUN_0018ff20("../../gold/symtab.cc",0xcdb,"sized_write_globals");\n      }\n      pcVar13 = local_c0 + uVar12 * 0x18;\n      FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                   *(byte *)(lVar20 + 0x38) >> 4,param_3);\n    }\n    if (*(long **)(param_1 + 0x2a8) == plVar23) {\n      return pcVar13;\n    }\n    lVar20 = *plVar23;\n    iVar5 = *(int *)(lVar20 + 0x1c);\n  }\nLAB_0028c880:\n                    \n  FUN_0018ff20("../../gold/symtab.h",0x180,"symtab_index");\n}\n\n" (function_definition "code * FUN_0028bce0(long param_1,undefined8 param_2,undefined8 param_3,long param_4,long param_5,\n                   long param_6)\n\n{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  undefined8 *puVar6;\n  byte bVar7;\n  byte bVar8;\n  char cVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  code *pcVar13;\n  code *pcVar14;\n  long lVar15;\n  undefined8 uVar16;\n  long *plVar17;\n  long *plVar18;\n  ulong uVar19;\n  long lVar20;\n  int iVar21;\n  uint uVar22;\n  long *plVar23;\n  long *plVar24;\n  undefined8 uVar25;\n  undefined1 auVar26 [16];\n  code *local_d0;\n  code *local_c0;\n  long local_98;\n  uint local_58;\n  uint uStack_54;\n  undefined1 auStack_48 [24];\n  \n  plVar23 = *(long **)(PTR_DAT_0045c708 + 0x18);\n  if (plVar23 == (long *)0x0) {\nLAB_0028c91f:\n                    \n    FUN_0018ff20("../../gold/parameters.h",0x69,"target");\n  }\n  iVar1 = *(int *)(param_1 + 8);\n  uVar2 = *(uint *)(param_1 + 0x18);\n  local_98 = *(long *)(param_1 + 0x10);\n  if ((uVar2 == 0) || (local_98 == 0)) {\n    local_98 = 0;\n  }\n  else {\n    if ((local_98 < 0) || (*(long *)(param_6 + 0x10) < (long)((ulong)(uVar2 * 0x18) + local_98)))\n    goto LAB_0028c9c8;\n    local_98 = local_98 + *(long *)(param_6 + 0x18);\n  }\n  iVar3 = *(int *)(param_1 + 0x28);\n  uVar4 = *(uint *)(param_1 + 0x2c);\n  pcVar13 = *(code **)(param_1 + 0x20);\n  if ((pcVar13 == (code *)0x0) || (uVar4 == 0)) {\n    local_c0 = (code *)0x0;\n  }\n  else {\n    if (((long)pcVar13 < 0) || (*(long *)(param_6 + 0x10) < (long)(pcVar13 + uVar4 * 0x18))) {\nLAB_0028c9c8:\n      FUN_00284650();\nLAB_0028c9cd:\n                    \n      FUN_0018ff20("../../gold/symtab.cc",0xc59,"sized_write_globals");\n    }\n    pcVar13 = pcVar13 + *(long *)(param_6 + 0x18);\n    local_c0 = pcVar13;\n  }\n  plVar24 = *(long **)(param_1 + 0x40);\n  if (plVar24 != (long *)0x0) {\n    lVar20 = (long)DAT_003a0b74;\n    do {\n      puVar6 = (undefined8 *)plVar24[3];\n      if (((((*(byte *)((long)puVar6 + 0x3a) & 7) == 0) &&\n           (lVar15 = puVar6[2], (*(byte *)(lVar15 + 0x3c) & 1) != 0)) && (*(int *)(puVar6 + 3) == 0)\n          ) && (*(byte *)(puVar6 + 7) >> 4 != 2)) {\n        if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) goto LAB_0028c8d7;\n        if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x339) == '\0') {\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          if (*(code **)(*plVar17 + 0x38) != FUN_00172b10) {\n            cVar9 = (**(code **)(*plVar17 + 0x38))(plVar17,puVar6);\n            if (cVar9 != '\0') goto LAB_0028be18;\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) goto LAB_0028c752;\n            lVar15 = puVar6[2];\n          }\n          if ((*(byte *)(lVar15 + 0x3c) & 0x20) == 0) {\n            if (*(int *)(lVar15 + 0x88) == 0) {\n                    \n              FUN_0018ff20("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }\n            if (*(int *)(lVar15 + 0x88) != 1) {\n              FUN_00187dc0(puVar6);\n            }\n          }\n        }\n      }\nLAB_0028be18:\n      uVar12 = *(uint *)((long)puVar6 + 0x1c);\n      if (uVar12 == 0) goto LAB_0028c880;\n      if (local_c0 == (code *)0x0) {\n        uVar22 = 0xffffffff;\n        uVar11 = uVar12;\n      }\n      else {\n        uVar22 = *(uint *)(puVar6 + 4);\n        if (uVar22 == 0) goto LAB_0028c898;\n        uVar11 = uVar12 & uVar22;\n      }\n      pcVar13 = (code *)(ulong)uVar11;\n      if (uVar11 != 0xffffffff) {\n        local_d0 = (code *)puVar6[8];\n        uVar11 = (uint)(*(byte *)(puVar6 + 7) >> 4);\n        lVar15 = *(long *)(PTR_DAT_0045c708 + 0x10);\n        if (lVar15 == 0) goto LAB_0028c8d7;\n        bVar8 = *(byte *)((long)puVar6 + 0x3a);\n        uVar10 = bVar8 & 7;\n        bVar7 = (byte)uVar10;\n        pcVar14 = local_d0;\n        if ((*(char *)(lVar15 + 0x7739) != '\0') && (uVar11 == 1)) {\n          if (bVar7 == 0) {\n            if ((*(int *)(puVar6 + 3) == 0) && ((*(byte *)((long)puVar6 + 0x3b) >> 5 & 1) != 0)) {\n                    \n                    \n              pcVar13 = (code *)(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return pcVar13;\n            }\n                    \n                    \n            pcVar13 = (code *)(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();\n            return pcVar13;\n          }\n          if (bVar7 == 4) {\n                    \n                    \n            pcVar13 = (code *)(*(code *)(&DAT_003a0b64 + lVar20))();\n            return pcVar13;\n          }\n          if (4 < bVar7) goto LAB_0028c8b0;\n          pcVar13 = (code *)((long)&switchD_0028c5a7::switchdataD_003a0b78 +\n                            (long)(int)(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10]);\n                    \n          switch(uVar10) {\n          case 0:\nswitchD_0028c5a7_caseD_0:\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xaa,"shndx");\n          case 1:\n            uVar11 = 1;\n            goto LAB_0028c1cb;\n          case 2:\n            uVar11 = 1;\n            goto LAB_0028c143;\n          case 3:\n            uVar11 = 1;\n            uVar10 = 0xfff1;\n            break;\n          case 4:\n                    \n            uVar11 = 1;\n            uVar10 = 0;\n          }\n          goto LAB_0028bf30;\n        }\n        if ((uVar11 == 10) && (*(char *)(lVar15 + 0x2999) == '\0')) {\n          uVar11 = 1;\n        }\n        if (4 < bVar7) {\nLAB_0028c8b0:\n                    \n          FUN_0018ff20("../../gold/symtab.cc",0xc9b,"sized_write_globals");\n        }\n        pcVar13 = (code *)((long)&switchD_0028bebe::switchdataD_003a0b3c +\n                          (long)(int)(&switchD_0028bebe::switchdataD_003a0b3c)[uVar10]);\n        switch(uVar10) {\n        case 0:\n          if ((bVar8 & 7) != 0) goto switchD_0028c5a7_caseD_0;\n          uVar10 = *(uint *)(puVar6 + 3);\n          bVar8 = *(byte *)((long)puVar6 + 0x3b) >> 5;\n          if (((bVar8 & 1) != 1) && (uVar10 != 0xfff1)) {\n            cVar9 = FUN_00284a00(uVar10);\n            if (cVar9 == '\0') {\n              FUN_00285b30(&local_58,*puVar6);\n              uVar25 = CONCAT44(uStack_54,local_58);\n              uVar16 = gettext("%s: unsupported symbol section 0x%x");\n                    \n              FUN_001878b0(uVar16,uVar25,uVar10);\n              pcVar13 = (code *)auStack_48;\n              if ((code *)CONCAT44(uStack_54,local_58) != pcVar13) {\n                pcVar13 = (code *)FUN_002f1e60();\n              }\n              break;\n            }\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) {\nLAB_0028c752:\n                    \n              FUN_0018ff20("../../gold/symtab.h",0xa1,"object");\n            }\n          }\n          plVar17 = (long *)puVar6[2];\n          if ((*(byte *)((long)plVar17 + 0x3c) & 1) == 0) {\n            pcVar13 = (code *)(**(code **)(*plVar17 + 0x28))(plVar17);\n            if ((pcVar13 != (code *)0x0) || (uVar10 == 0)) goto switchD_0028bebe_caseD_4;\n            if (((bVar8 & 1) != 0) ||\n               ((uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')\n                ))) {\n              uVar19 = (ulong)uVar10;\n              if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;\n                plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n              }\n              else {\n                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);\n              }\n              cVar9 = FUN_00284da0(param_1,plVar17,uVar19);\n              if (cVar9 == '\0') {\n                if (plVar18 == (long *)0x0) goto LAB_0028c9cd;\n              }\n              else {\n                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);\n                plVar17 = auVar26._0_8_;\n                if (plVar17 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }\n                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    \n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }\n                if (plVar18 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }\n              }\n              if (*(code **)(*plVar18 + 0x58) == FUN_0019a160) {\n                uVar10 = *(uint *)((long)plVar18 + 0x7c);\n                if (uVar10 == 0xffffffff) goto LAB_0028ca38;\n              }\n              else {\n                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);\n              }\n              if (0xfeff < uVar10) {\n                if (uVar12 != 0xffffffff) {\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }\n                if (uVar22 == 0xffffffff) {\n                  uVar10 = 0xffff;\n                }\n                else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }\n              }\n              pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n              if (pcVar13 == (code *)0x0) goto LAB_0028c8d7;\n              if (pcVar13[0x5051] != (code)0x0) {\n                if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;\n                pcVar13 = local_d0 + -plVar18[1];\n                local_d0 = pcVar13;\n              }\n            }\n          }\n          else {\n            if ((*(byte *)((long)puVar6 + 0x3b) & 2) != 0) {\n              pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6);\n            }\n            uVar10 = 0;\n            uVar11 = *(byte *)((long)puVar6 + 0x3c) >> 1 & 1;\n            pcVar13 = (code *)(ulong)uVar11;\n            uVar11 = 2 - ((char)uVar11 == '\0');\n          }\n          break;\n        case 1:\nLAB_0028c1cb:\n          if ((bVar8 & 7) != 1) {\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xb5,"output_data");\n          }\n          plVar17 = (long *)puVar6[2];\n          uVar10 = (**(code **)(*plVar17 + 0x58))(plVar17);\n          if (0xfeff < uVar10) {\n            if (uVar12 != 0xffffffff) {\n              local_58 = uVar12;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_4 + 0x38,&local_58);\n            }\n            if (uVar22 == 0xffffffff) {\n              uVar10 = 0xffff;\n            }\n            else {\n              local_58 = uVar22;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_5 + 0x38,&local_58);\n              uVar10 = 0xffff;\n            }\n          }\n          pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n          if (pcVar13 == (code *)0x0) {\nLAB_0028c8d7:\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if (pcVar13[0x5051] != (code)0x0) {\n            lVar15 = (**(code **)(*plVar17 + 0x48))(plVar17);\n            if (lVar15 == 0) {\n                    \n              FUN_0018ff20("../../gold/symtab.cc",0xc81,"sized_write_globals");\n            }\n            if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    \n              FUN_0018ff20("../../gold/output.h",0xc5,"address");\n            }\n            pcVar13 = *(code **)(lVar15 + 8);\n            local_d0 = local_d0 + -(long)pcVar13;\n          }\n          break;\n        case 2:\n          uVar10 = bVar8 & 7;\nLAB_0028c143:\n          if ((char)uVar10 != '\x02') {\n                    \n            FUN_0018ff20("../../gold/symtab.h",200,"output_segment");\n          }\n          pcVar13 = (code *)FUN_0020de20(puVar6[2]);\n          if (pcVar13 == (code *)0x0) goto switchD_0028bebe_caseD_3;\n          if (*(code **)(*(long *)pcVar13 + 0x58) == FUN_0019a160) {\n            uVar10 = *(uint *)(pcVar13 + 0x7c);\n            pcVar13 = (code *)(ulong)uVar10;\n            if (uVar10 == 0xffffffff) {\nLAB_0028ca38:\n                    \n              FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx");\n            }\n          }\n          else {\n            pcVar13 = (code *)(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13);\n            uVar10 = (uint)pcVar13;\n          }\n          break;\n        case 3:\nswitchD_0028bebe_caseD_3:\n          uVar10 = 0xfff1;\n          break;\n        case 4:\nswitchD_0028bebe_caseD_4:\n          uVar10 = 0;\n        }\nLAB_0028bf30:\n        if (uVar12 != 0xffffffff) {\n          uVar12 = uVar12 - iVar1;\n          if (uVar2 <= uVar12) {\n                    \n            FUN_0018ff20("../../gold/symtab.cc",0xca1,"sized_write_globals");\n          }\n          pcVar13 = (code *)FUN_00289ee0(param_1,puVar6,local_d0,uVar10,uVar11,param_2,\n                                         (ulong)(uVar12 * 0x18) + local_98);\n        }\n        if (uVar22 != 0xffffffff) {\n          uVar22 = uVar22 - iVar3;\n          if (uVar4 <= uVar22) {\n                    \n            FUN_0018ff20("../../gold/symtab.cc",0xcaa,"sized_write_globals");\n          }\n          FUN_00289ee0(param_1,puVar6,pcVar14,uVar10,uVar11,param_3);\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          pcVar13 = *(code **)(*plVar17 + 0x138);\n          if (pcVar13 != FUN_00172ba0) {\n            pcVar13 = (code *)(*pcVar13)(plVar17,puVar6,local_c0 + uVar22 * 0x18);\n          }\n        }\n      }\n      plVar24 = (long *)*plVar24;\n    } while (plVar24 != (long *)0x0);\n  }\n  plVar23 = *(long **)(param_1 + 0x2a0);\n  if (plVar23 == *(long **)(param_1 + 0x2a8)) {\n    return pcVar13;\n  }\n  lVar20 = *plVar23;\n  iVar5 = *(int *)(lVar20 + 0x1c);\n  while (iVar5 != 0) {\n    plVar23 = plVar23 + 1;\n    if (local_c0 == (code *)0x0) {\n      iVar21 = -1;\n    }\n    else {\n      iVar21 = *(int *)(lVar20 + 0x20);\n      if (iVar21 == 0) {\nLAB_0028c898:\n                    \n        FUN_0018ff20("../../gold/symtab.h",0x19a,"dynsym_index");\n      }\n    }\n    uVar12 = *(byte *)(lVar20 + 0x3a) & 7;\n    pcVar13 = (code *)(ulong)uVar12;\n    cVar9 = (char)uVar12;\n    if (cVar9 == '\x03') {\n      uVar25 = 0xfff1;\n    }\n    else {\n      if (cVar9 != '\x04') {\n                    \n        FUN_0018ff20("../../gold/symtab.cc",0xccb,"sized_write_globals");\n      }\n      uVar25 = 0;\n    }\n    if (iVar5 != -1) {\n      uVar12 = iVar5 - iVar1;\n      if (uVar2 <= uVar12) {\n                    \n        FUN_0018ff20("../../gold/symtab.cc",0xcd1,"sized_write_globals");\n      }\n      pcVar13 = (code *)FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                                     *(byte *)(lVar20 + 0x38) >> 4,param_2,\n                                     (ulong)(uVar12 * 0x18) + local_98);\n    }\n    if (iVar21 != -1) {\n      uVar12 = iVar21 - iVar3;\n      if (uVar4 <= uVar12) {\n                    \n        FUN_0018ff20("../../gold/symtab.cc",0xcdb,"sized_write_globals");\n      }\n      pcVar13 = local_c0 + uVar12 * 0x18;\n      FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                   *(byte *)(lVar20 + 0x38) >> 4,param_3);\n    }\n    if (*(long **)(param_1 + 0x2a8) == plVar23) {\n      return pcVar13;\n    }\n    lVar20 = *plVar23;\n    iVar5 = *(int *)(lVar20 + 0x1c);\n  }\nLAB_0028c880:\n                    \n  FUN_0018ff20("../../gold/symtab.h",0x180,"symtab_index");\n}" type_identifier (pointer_declarator "* FUN_0028bce0(long param_1,undefined8 param_2,undefined8 param_3,long param_4,long param_5,\n                   long param_6)" * (function_declarator "FUN_0028bce0(long param_1,undefined8 param_2,undefined8 param_3,long param_4,long param_5,\n                   long param_6)" identifier (parameter_list "(long param_1,undefined8 param_2,undefined8 param_3,long param_4,long param_5,\n                   long param_6)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "undefined8 param_3" type_identifier identifier) , (parameter_declaration "long param_4" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_5" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_6" (sized_type_specifier "long" long) identifier) )))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  undefined8 *puVar6;\n  byte bVar7;\n  byte bVar8;\n  char cVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  code *pcVar13;\n  code *pcVar14;\n  long lVar15;\n  undefined8 uVar16;\n  long *plVar17;\n  long *plVar18;\n  ulong uVar19;\n  long lVar20;\n  int iVar21;\n  uint uVar22;\n  long *plVar23;\n  long *plVar24;\n  undefined8 uVar25;\n  undefined1 auVar26 [16];\n  code *local_d0;\n  code *local_c0;\n  long local_98;\n  uint local_58;\n  uint uStack_54;\n  undefined1 auStack_48 [24];\n  \n  plVar23 = *(long **)(PTR_DAT_0045c708 + 0x18);\n  if (plVar23 == (long *)0x0) {\nLAB_0028c91f:\n                    \n    FUN_0018ff20("../../gold/parameters.h",0x69,"target");\n  }\n  iVar1 = *(int *)(param_1 + 8);\n  uVar2 = *(uint *)(param_1 + 0x18);\n  local_98 = *(long *)(param_1 + 0x10);\n  if ((uVar2 == 0) || (local_98 == 0)) {\n    local_98 = 0;\n  }\n  else {\n    if ((local_98 < 0) || (*(long *)(param_6 + 0x10) < (long)((ulong)(uVar2 * 0x18) + local_98)))\n    goto LAB_0028c9c8;\n    local_98 = local_98 + *(long *)(param_6 + 0x18);\n  }\n  iVar3 = *(int *)(param_1 + 0x28);\n  uVar4 = *(uint *)(param_1 + 0x2c);\n  pcVar13 = *(code **)(param_1 + 0x20);\n  if ((pcVar13 == (code *)0x0) || (uVar4 == 0)) {\n    local_c0 = (code *)0x0;\n  }\n  else {\n    if (((long)pcVar13 < 0) || (*(long *)(param_6 + 0x10) < (long)(pcVar13 + uVar4 * 0x18))) {\nLAB_0028c9c8:\n      FUN_00284650();\nLAB_0028c9cd:\n                    \n      FUN_0018ff20("../../gold/symtab.cc",0xc59,"sized_write_globals");\n    }\n    pcVar13 = pcVar13 + *(long *)(param_6 + 0x18);\n    local_c0 = pcVar13;\n  }\n  plVar24 = *(long **)(param_1 + 0x40);\n  if (plVar24 != (long *)0x0) {\n    lVar20 = (long)DAT_003a0b74;\n    do {\n      puVar6 = (undefined8 *)plVar24[3];\n      if (((((*(byte *)((long)puVar6 + 0x3a) & 7) == 0) &&\n           (lVar15 = puVar6[2], (*(byte *)(lVar15 + 0x3c) & 1) != 0)) && (*(int *)(puVar6 + 3) == 0)\n          ) && (*(byte *)(puVar6 + 7) >> 4 != 2)) {\n        if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) goto LAB_0028c8d7;\n        if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x339) == '\0') {\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          if (*(code **)(*plVar17 + 0x38) != FUN_00172b10) {\n            cVar9 = (**(code **)(*plVar17 + 0x38))(plVar17,puVar6);\n            if (cVar9 != '\0') goto LAB_0028be18;\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) goto LAB_0028c752;\n            lVar15 = puVar6[2];\n          }\n          if ((*(byte *)(lVar15 + 0x3c) & 0x20) == 0) {\n            if (*(int *)(lVar15 + 0x88) == 0) {\n                    \n              FUN_0018ff20("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }\n            if (*(int *)(lVar15 + 0x88) != 1) {\n              FUN_00187dc0(puVar6);\n            }\n          }\n        }\n      }\nLAB_0028be18:\n      uVar12 = *(uint *)((long)puVar6 + 0x1c);\n      if (uVar12 == 0) goto LAB_0028c880;\n      if (local_c0 == (code *)0x0) {\n        uVar22 = 0xffffffff;\n        uVar11 = uVar12;\n      }\n      else {\n        uVar22 = *(uint *)(puVar6 + 4);\n        if (uVar22 == 0) goto LAB_0028c898;\n        uVar11 = uVar12 & uVar22;\n      }\n      pcVar13 = (code *)(ulong)uVar11;\n      if (uVar11 != 0xffffffff) {\n        local_d0 = (code *)puVar6[8];\n        uVar11 = (uint)(*(byte *)(puVar6 + 7) >> 4);\n        lVar15 = *(long *)(PTR_DAT_0045c708 + 0x10);\n        if (lVar15 == 0) goto LAB_0028c8d7;\n        bVar8 = *(byte *)((long)puVar6 + 0x3a);\n        uVar10 = bVar8 & 7;\n        bVar7 = (byte)uVar10;\n        pcVar14 = local_d0;\n        if ((*(char *)(lVar15 + 0x7739) != '\0') && (uVar11 == 1)) {\n          if (bVar7 == 0) {\n            if ((*(int *)(puVar6 + 3) == 0) && ((*(byte *)((long)puVar6 + 0x3b) >> 5 & 1) != 0)) {\n                    \n                    \n              pcVar13 = (code *)(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return pcVar13;\n            }\n                    \n                    \n            pcVar13 = (code *)(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();\n            return pcVar13;\n          }\n          if (bVar7 == 4) {\n                    \n                    \n            pcVar13 = (code *)(*(code *)(&DAT_003a0b64 + lVar20))();\n            return pcVar13;\n          }\n          if (4 < bVar7) goto LAB_0028c8b0;\n          pcVar13 = (code *)((long)&switchD_0028c5a7::switchdataD_003a0b78 +\n                            (long)(int)(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10]);\n                    \n          switch(uVar10) {\n          case 0:\nswitchD_0028c5a7_caseD_0:\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xaa,"shndx");\n          case 1:\n            uVar11 = 1;\n            goto LAB_0028c1cb;\n          case 2:\n            uVar11 = 1;\n            goto LAB_0028c143;\n          case 3:\n            uVar11 = 1;\n            uVar10 = 0xfff1;\n            break;\n          case 4:\n                    \n            uVar11 = 1;\n            uVar10 = 0;\n          }\n          goto LAB_0028bf30;\n        }\n        if ((uVar11 == 10) && (*(char *)(lVar15 + 0x2999) == '\0')) {\n          uVar11 = 1;\n        }\n        if (4 < bVar7) {\nLAB_0028c8b0:\n                    \n          FUN_0018ff20("../../gold/symtab.cc",0xc9b,"sized_write_globals");\n        }\n        pcVar13 = (code *)((long)&switchD_0028bebe::switchdataD_003a0b3c +\n                          (long)(int)(&switchD_0028bebe::switchdataD_003a0b3c)[uVar10]);\n        switch(uVar10) {\n        case 0:\n          if ((bVar8 & 7) != 0) goto switchD_0028c5a7_caseD_0;\n          uVar10 = *(uint *)(puVar6 + 3);\n          bVar8 = *(byte *)((long)puVar6 + 0x3b) >> 5;\n          if (((bVar8 & 1) != 1) && (uVar10 != 0xfff1)) {\n            cVar9 = FUN_00284a00(uVar10);\n            if (cVar9 == '\0') {\n              FUN_00285b30(&local_58,*puVar6);\n              uVar25 = CONCAT44(uStack_54,local_58);\n              uVar16 = gettext("%s: unsupported symbol section 0x%x");\n                    \n              FUN_001878b0(uVar16,uVar25,uVar10);\n              pcVar13 = (code *)auStack_48;\n              if ((code *)CONCAT44(uStack_54,local_58) != pcVar13) {\n                pcVar13 = (code *)FUN_002f1e60();\n              }\n              break;\n            }\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) {\nLAB_0028c752:\n                    \n              FUN_0018ff20("../../gold/symtab.h",0xa1,"object");\n            }\n          }\n          plVar17 = (long *)puVar6[2];\n          if ((*(byte *)((long)plVar17 + 0x3c) & 1) == 0) {\n            pcVar13 = (code *)(**(code **)(*plVar17 + 0x28))(plVar17);\n            if ((pcVar13 != (code *)0x0) || (uVar10 == 0)) goto switchD_0028bebe_caseD_4;\n            if (((bVar8 & 1) != 0) ||\n               ((uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')\n                ))) {\n              uVar19 = (ulong)uVar10;\n              if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;\n                plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n              }\n              else {\n                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);\n              }\n              cVar9 = FUN_00284da0(param_1,plVar17,uVar19);\n              if (cVar9 == '\0') {\n                if (plVar18 == (long *)0x0) goto LAB_0028c9cd;\n              }\n              else {\n                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);\n                plVar17 = auVar26._0_8_;\n                if (plVar17 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }\n                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    \n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }\n                if (plVar18 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }\n              }\n              if (*(code **)(*plVar18 + 0x58) == FUN_0019a160) {\n                uVar10 = *(uint *)((long)plVar18 + 0x7c);\n                if (uVar10 == 0xffffffff) goto LAB_0028ca38;\n              }\n              else {\n                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);\n              }\n              if (0xfeff < uVar10) {\n                if (uVar12 != 0xffffffff) {\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }\n                if (uVar22 == 0xffffffff) {\n                  uVar10 = 0xffff;\n                }\n                else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }\n              }\n              pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n              if (pcVar13 == (code *)0x0) goto LAB_0028c8d7;\n              if (pcVar13[0x5051] != (code)0x0) {\n                if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;\n                pcVar13 = local_d0 + -plVar18[1];\n                local_d0 = pcVar13;\n              }\n            }\n          }\n          else {\n            if ((*(byte *)((long)puVar6 + 0x3b) & 2) != 0) {\n              pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6);\n            }\n            uVar10 = 0;\n            uVar11 = *(byte *)((long)puVar6 + 0x3c) >> 1 & 1;\n            pcVar13 = (code *)(ulong)uVar11;\n            uVar11 = 2 - ((char)uVar11 == '\0');\n          }\n          break;\n        case 1:\nLAB_0028c1cb:\n          if ((bVar8 & 7) != 1) {\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xb5,"output_data");\n          }\n          plVar17 = (long *)puVar6[2];\n          uVar10 = (**(code **)(*plVar17 + 0x58))(plVar17);\n          if (0xfeff < uVar10) {\n            if (uVar12 != 0xffffffff) {\n              local_58 = uVar12;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_4 + 0x38,&local_58);\n            }\n            if (uVar22 == 0xffffffff) {\n              uVar10 = 0xffff;\n            }\n            else {\n              local_58 = uVar22;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_5 + 0x38,&local_58);\n              uVar10 = 0xffff;\n            }\n          }\n          pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n          if (pcVar13 == (code *)0x0) {\nLAB_0028c8d7:\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if (pcVar13[0x5051] != (code)0x0) {\n            lVar15 = (**(code **)(*plVar17 + 0x48))(plVar17);\n            if (lVar15 == 0) {\n                    \n              FUN_0018ff20("../../gold/symtab.cc",0xc81,"sized_write_globals");\n            }\n            if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    \n              FUN_0018ff20("../../gold/output.h",0xc5,"address");\n            }\n            pcVar13 = *(code **)(lVar15 + 8);\n            local_d0 = local_d0 + -(long)pcVar13;\n          }\n          break;\n        case 2:\n          uVar10 = bVar8 & 7;\nLAB_0028c143:\n          if ((char)uVar10 != '\x02') {\n                    \n            FUN_0018ff20("../../gold/symtab.h",200,"output_segment");\n          }\n          pcVar13 = (code *)FUN_0020de20(puVar6[2]);\n          if (pcVar13 == (code *)0x0) goto switchD_0028bebe_caseD_3;\n          if (*(code **)(*(long *)pcVar13 + 0x58) == FUN_0019a160) {\n            uVar10 = *(uint *)(pcVar13 + 0x7c);\n            pcVar13 = (code *)(ulong)uVar10;\n            if (uVar10 == 0xffffffff) {\nLAB_0028ca38:\n                    \n              FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx");\n            }\n          }\n          else {\n            pcVar13 = (code *)(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13);\n            uVar10 = (uint)pcVar13;\n          }\n          break;\n        case 3:\nswitchD_0028bebe_caseD_3:\n          uVar10 = 0xfff1;\n          break;\n        case 4:\nswitchD_0028bebe_caseD_4:\n          uVar10 = 0;\n        }\nLAB_0028bf30:\n        if (uVar12 != 0xffffffff) {\n          uVar12 = uVar12 - iVar1;\n          if (uVar2 <= uVar12) {\n                    \n            FUN_0018ff20("../../gold/symtab.cc",0xca1,"sized_write_globals");\n          }\n          pcVar13 = (code *)FUN_00289ee0(param_1,puVar6,local_d0,uVar10,uVar11,param_2,\n                                         (ulong)(uVar12 * 0x18) + local_98);\n        }\n        if (uVar22 != 0xffffffff) {\n          uVar22 = uVar22 - iVar3;\n          if (uVar4 <= uVar22) {\n                    \n            FUN_0018ff20("../../gold/symtab.cc",0xcaa,"sized_write_globals");\n          }\n          FUN_00289ee0(param_1,puVar6,pcVar14,uVar10,uVar11,param_3);\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          pcVar13 = *(code **)(*plVar17 + 0x138);\n          if (pcVar13 != FUN_00172ba0) {\n            pcVar13 = (code *)(*pcVar13)(plVar17,puVar6,local_c0 + uVar22 * 0x18);\n          }\n        }\n      }\n      plVar24 = (long *)*plVar24;\n    } while (plVar24 != (long *)0x0);\n  }\n  plVar23 = *(long **)(param_1 + 0x2a0);\n  if (plVar23 == *(long **)(param_1 + 0x2a8)) {\n    return pcVar13;\n  }\n  lVar20 = *plVar23;\n  iVar5 = *(int *)(lVar20 + 0x1c);\n  while (iVar5 != 0) {\n    plVar23 = plVar23 + 1;\n    if (local_c0 == (code *)0x0) {\n      iVar21 = -1;\n    }\n    else {\n      iVar21 = *(int *)(lVar20 + 0x20);\n      if (iVar21 == 0) {\nLAB_0028c898:\n                    \n        FUN_0018ff20("../../gold/symtab.h",0x19a,"dynsym_index");\n      }\n    }\n    uVar12 = *(byte *)(lVar20 + 0x3a) & 7;\n    pcVar13 = (code *)(ulong)uVar12;\n    cVar9 = (char)uVar12;\n    if (cVar9 == '\x03') {\n      uVar25 = 0xfff1;\n    }\n    else {\n      if (cVar9 != '\x04') {\n                    \n        FUN_0018ff20("../../gold/symtab.cc",0xccb,"sized_write_globals");\n      }\n      uVar25 = 0;\n    }\n    if (iVar5 != -1) {\n      uVar12 = iVar5 - iVar1;\n      if (uVar2 <= uVar12) {\n                    \n        FUN_0018ff20("../../gold/symtab.cc",0xcd1,"sized_write_globals");\n      }\n      pcVar13 = (code *)FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                                     *(byte *)(lVar20 + 0x38) >> 4,param_2,\n                                     (ulong)(uVar12 * 0x18) + local_98);\n    }\n    if (iVar21 != -1) {\n      uVar12 = iVar21 - iVar3;\n      if (uVar4 <= uVar12) {\n                    \n        FUN_0018ff20("../../gold/symtab.cc",0xcdb,"sized_write_globals");\n      }\n      pcVar13 = local_c0 + uVar12 * 0x18;\n      FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                   *(byte *)(lVar20 + 0x38) >> 4,param_3);\n    }\n    if (*(long **)(param_1 + 0x2a8) == plVar23) {\n      return pcVar13;\n    }\n    lVar20 = *plVar23;\n    iVar5 = *(int *)(lVar20 + 0x1c);\n  }\nLAB_0028c880:\n                    \n  FUN_0018ff20("../../gold/symtab.h",0x180,"symtab_index");\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined8 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "byte bVar7;" type_identifier identifier ;) (declaration "byte bVar8;" type_identifier identifier ;) (declaration "char cVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "code *pcVar13;" type_identifier (pointer_declarator "*pcVar13" * identifier) ;) (declaration "code *pcVar14;" type_identifier (pointer_declarator "*pcVar14" * identifier) ;) (declaration "long lVar15;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar16;" type_identifier identifier ;) (declaration "long *plVar17;" (sized_type_specifier "long" long) (pointer_declarator "*plVar17" * identifier) ;) (declaration "long *plVar18;" (sized_type_specifier "long" long) (pointer_declarator "*plVar18" * identifier) ;) (declaration "ulong uVar19;" type_identifier identifier ;) (declaration "long lVar20;" (sized_type_specifier "long" long) identifier ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "long *plVar23;" (sized_type_specifier "long" long) (pointer_declarator "*plVar23" * identifier) ;) (declaration "long *plVar24;" (sized_type_specifier "long" long) (pointer_declarator "*plVar24" * identifier) ;) (declaration "undefined8 uVar25;" type_identifier identifier ;) (declaration "undefined1 auVar26 [16];" type_identifier (array_declarator "auVar26 [16]" identifier [ number_literal ]) ;) (declaration "code *local_d0;" type_identifier (pointer_declarator "*local_d0" * identifier) ;) (declaration "code *local_c0;" type_identifier (pointer_declarator "*local_c0" * identifier) ;) (declaration "long local_98;" (sized_type_specifier "long" long) identifier ;) (declaration "uint local_58;" type_identifier identifier ;) (declaration "uint uStack_54;" type_identifier identifier ;) (declaration "undefined1 auStack_48 [24];" type_identifier (array_declarator "auStack_48 [24]" identifier [ number_literal ]) ;) (expression_statement "plVar23 = *(long **)(PTR_DAT_0045c708 + 0x18);" (assignment_expression "plVar23 = *(long **)(PTR_DAT_0045c708 + 0x18)" identifier = (pointer_expression "*(long **)(PTR_DAT_0045c708 + 0x18)" * (cast_expression "(long **)(PTR_DAT_0045c708 + 0x18)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_0045c708 + 0x18)" ( (binary_expression "PTR_DAT_0045c708 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (plVar23 == (long *)0x0) {\nLAB_0028c91f:\n                    \n    FUN_0018ff20("../../gold/parameters.h",0x69,"target");\n  }" if (parenthesized_expression "(plVar23 == (long *)0x0)" ( (binary_expression "plVar23 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0028c91f:\n                    \n    FUN_0018ff20("../../gold/parameters.h",0x69,"target");\n  }" { (labeled_statement "LAB_0028c91f:\n                    \n    FUN_0018ff20("../../gold/parameters.h",0x69,"target");" statement_identifier : (expression_statement "FUN_0018ff20("../../gold/parameters.h",0x69,"target");" (call_expression "FUN_0018ff20("../../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 ") ))) ;)) })) (expression_statement "iVar1 = *(int *)(param_1 + 8);" (assignment_expression "iVar1 = *(int *)(param_1 + 8)" identifier = (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = *(uint *)(param_1 + 0x18);" (assignment_expression "uVar2 = *(uint *)(param_1 + 0x18)" identifier = (pointer_expression "*(uint *)(param_1 + 0x18)" * (cast_expression "(uint *)(param_1 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "local_98 = *(long *)(param_1 + 0x10);" (assignment_expression "local_98 = *(long *)(param_1 + 0x10)" identifier = (pointer_expression "*(long *)(param_1 + 0x10)" * (cast_expression "(long *)(param_1 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if ((uVar2 == 0) || (local_98 == 0)) {\n    local_98 = 0;\n  }\n  else {\n    if ((local_98 < 0) || (*(long *)(param_6 + 0x10) < (long)((ulong)(uVar2 * 0x18) + local_98)))\n    goto LAB_0028c9c8;\n    local_98 = local_98 + *(long *)(param_6 + 0x18);\n  }" if (parenthesized_expression "((uVar2 == 0) || (local_98 == 0))" ( (binary_expression "(uVar2 == 0) || (local_98 == 0)" (parenthesized_expression "(uVar2 == 0)" ( (binary_expression "uVar2 == 0" identifier == number_literal) )) || (parenthesized_expression "(local_98 == 0)" ( (binary_expression "local_98 == 0" identifier == number_literal) ))) )) (compound_statement "{\n    local_98 = 0;\n  }" { (expression_statement "local_98 = 0;" (assignment_expression "local_98 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    if ((local_98 < 0) || (*(long *)(param_6 + 0x10) < (long)((ulong)(uVar2 * 0x18) + local_98)))\n    goto LAB_0028c9c8;\n    local_98 = local_98 + *(long *)(param_6 + 0x18);\n  }" else (compound_statement "{\n    if ((local_98 < 0) || (*(long *)(param_6 + 0x10) < (long)((ulong)(uVar2 * 0x18) + local_98)))\n    goto LAB_0028c9c8;\n    local_98 = local_98 + *(long *)(param_6 + 0x18);\n  }" { (if_statement "if ((local_98 < 0) || (*(long *)(param_6 + 0x10) < (long)((ulong)(uVar2 * 0x18) + local_98)))\n    goto LAB_0028c9c8;" if (parenthesized_expression "((local_98 < 0) || (*(long *)(param_6 + 0x10) < (long)((ulong)(uVar2 * 0x18) + local_98)))" ( (binary_expression "(local_98 < 0) || (*(long *)(param_6 + 0x10) < (long)((ulong)(uVar2 * 0x18) + local_98))" (parenthesized_expression "(local_98 < 0)" ( (binary_expression "local_98 < 0" identifier < number_literal) )) || (parenthesized_expression "(*(long *)(param_6 + 0x10) < (long)((ulong)(uVar2 * 0x18) + local_98))" ( (binary_expression "*(long *)(param_6 + 0x10) < (long)((ulong)(uVar2 * 0x18) + local_98)" (pointer_expression "*(long *)(param_6 + 0x10)" * (cast_expression "(long *)(param_6 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x10)" ( (binary_expression "param_6 + 0x10" identifier + number_literal) )))) < (cast_expression "(long)((ulong)(uVar2 * 0x18) + local_98)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "((ulong)(uVar2 * 0x18) + local_98)" ( (binary_expression "(ulong)(uVar2 * 0x18) + local_98" (call_expression "(ulong)(uVar2 * 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar2 * 0x18)" ( (binary_expression "uVar2 * 0x18" identifier * number_literal) ))) + identifier) )))) ))) )) (goto_statement "goto LAB_0028c9c8;" goto statement_identifier ;)) (expression_statement "local_98 = local_98 + *(long *)(param_6 + 0x18);" (assignment_expression "local_98 = local_98 + *(long *)(param_6 + 0x18)" identifier = (binary_expression "local_98 + *(long *)(param_6 + 0x18)" identifier + (pointer_expression "*(long *)(param_6 + 0x18)" * (cast_expression "(long *)(param_6 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x18)" ( (binary_expression "param_6 + 0x18" identifier + number_literal) )))))) ;) }))) (expression_statement "iVar3 = *(int *)(param_1 + 0x28);" (assignment_expression "iVar3 = *(int *)(param_1 + 0x28)" identifier = (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(uint *)(param_1 + 0x2c);" (assignment_expression "uVar4 = *(uint *)(param_1 + 0x2c)" identifier = (pointer_expression "*(uint *)(param_1 + 0x2c)" * (cast_expression "(uint *)(param_1 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "pcVar13 = *(code **)(param_1 + 0x20);" (assignment_expression "pcVar13 = *(code **)(param_1 + 0x20)" identifier = (pointer_expression "*(code **)(param_1 + 0x20)" * (cast_expression "(code **)(param_1 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (if_statement "if ((pcVar13 == (code *)0x0) || (uVar4 == 0)) {\n    local_c0 = (code *)0x0;\n  }\n  else {\n    if (((long)pcVar13 < 0) || (*(long *)(param_6 + 0x10) < (long)(pcVar13 + uVar4 * 0x18))) {\nLAB_0028c9c8:\n      FUN_00284650();\nLAB_0028c9cd:\n                    \n      FUN_0018ff20("../../gold/symtab.cc",0xc59,"sized_write_globals");\n    }\n    pcVar13 = pcVar13 + *(long *)(param_6 + 0x18);\n    local_c0 = pcVar13;\n  }" if (parenthesized_expression "((pcVar13 == (code *)0x0) || (uVar4 == 0))" ( (binary_expression "(pcVar13 == (code *)0x0) || (uVar4 == 0)" (parenthesized_expression "(pcVar13 == (code *)0x0)" ( (binary_expression "pcVar13 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) ))) )) (compound_statement "{\n    local_c0 = (code *)0x0;\n  }" { (expression_statement "local_c0 = (code *)0x0;" (assignment_expression "local_c0 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    if (((long)pcVar13 < 0) || (*(long *)(param_6 + 0x10) < (long)(pcVar13 + uVar4 * 0x18))) {\nLAB_0028c9c8:\n      FUN_00284650();\nLAB_0028c9cd:\n                    \n      FUN_0018ff20("../../gold/symtab.cc",0xc59,"sized_write_globals");\n    }\n    pcVar13 = pcVar13 + *(long *)(param_6 + 0x18);\n    local_c0 = pcVar13;\n  }" else (compound_statement "{\n    if (((long)pcVar13 < 0) || (*(long *)(param_6 + 0x10) < (long)(pcVar13 + uVar4 * 0x18))) {\nLAB_0028c9c8:\n      FUN_00284650();\nLAB_0028c9cd:\n                    \n      FUN_0018ff20("../../gold/symtab.cc",0xc59,"sized_write_globals");\n    }\n    pcVar13 = pcVar13 + *(long *)(param_6 + 0x18);\n    local_c0 = pcVar13;\n  }" { (if_statement "if (((long)pcVar13 < 0) || (*(long *)(param_6 + 0x10) < (long)(pcVar13 + uVar4 * 0x18))) {\nLAB_0028c9c8:\n      FUN_00284650();\nLAB_0028c9cd:\n                    \n      FUN_0018ff20("../../gold/symtab.cc",0xc59,"sized_write_globals");\n    }" if (parenthesized_expression "(((long)pcVar13 < 0) || (*(long *)(param_6 + 0x10) < (long)(pcVar13 + uVar4 * 0x18)))" ( (binary_expression "((long)pcVar13 < 0) || (*(long *)(param_6 + 0x10) < (long)(pcVar13 + uVar4 * 0x18))" (parenthesized_expression "((long)pcVar13 < 0)" ( (binary_expression "(long)pcVar13 < 0" (cast_expression "(long)pcVar13" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < number_literal) )) || (parenthesized_expression "(*(long *)(param_6 + 0x10) < (long)(pcVar13 + uVar4 * 0x18))" ( (binary_expression "*(long *)(param_6 + 0x10) < (long)(pcVar13 + uVar4 * 0x18)" (pointer_expression "*(long *)(param_6 + 0x10)" * (cast_expression "(long *)(param_6 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x10)" ( (binary_expression "param_6 + 0x10" identifier + number_literal) )))) < (cast_expression "(long)(pcVar13 + uVar4 * 0x18)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(pcVar13 + uVar4 * 0x18)" ( (binary_expression "pcVar13 + uVar4 * 0x18" identifier + (binary_expression "uVar4 * 0x18" identifier * number_literal)) )))) ))) )) (compound_statement "{\nLAB_0028c9c8:\n      FUN_00284650();\nLAB_0028c9cd:\n                    \n      FUN_0018ff20("../../gold/symtab.cc",0xc59,"sized_write_globals");\n    }" { (labeled_statement "LAB_0028c9c8:\n      FUN_00284650();" statement_identifier : (expression_statement "FUN_00284650();" (call_expression "FUN_00284650()" identifier (argument_list "()" ( ))) ;)) (labeled_statement "LAB_0028c9cd:\n                    \n      FUN_0018ff20("../../gold/symtab.cc",0xc59,"sized_write_globals");" statement_identifier : (expression_statement "FUN_0018ff20("../../gold/symtab.cc",0xc59,"sized_write_globals");" (call_expression "FUN_0018ff20("../../gold/symtab.cc",0xc59,"sized_write_globals")" identifier (argument_list "("../../gold/symtab.cc",0xc59,"sized_write_globals")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""sized_write_globals"" " string_content ") ))) ;)) })) (expression_statement "pcVar13 = pcVar13 + *(long *)(param_6 + 0x18);" (assignment_expression "pcVar13 = pcVar13 + *(long *)(param_6 + 0x18)" identifier = (binary_expression "pcVar13 + *(long *)(param_6 + 0x18)" identifier + (pointer_expression "*(long *)(param_6 + 0x18)" * (cast_expression "(long *)(param_6 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x18)" ( (binary_expression "param_6 + 0x18" identifier + number_literal) )))))) ;) (expression_statement "local_c0 = pcVar13;" (assignment_expression "local_c0 = pcVar13" identifier = identifier) ;) }))) (expression_statement "plVar24 = *(long **)(param_1 + 0x40);" (assignment_expression "plVar24 = *(long **)(param_1 + 0x40)" identifier = (pointer_expression "*(long **)(param_1 + 0x40)" * (cast_expression "(long **)(param_1 + 0x40)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) ))))) ;) (if_statement "if (plVar24 != (long *)0x0) {\n    lVar20 = (long)DAT_003a0b74;\n    do {\n      puVar6 = (undefined8 *)plVar24[3];\n      if (((((*(byte *)((long)puVar6 + 0x3a) & 7) == 0) &&\n           (lVar15 = puVar6[2], (*(byte *)(lVar15 + 0x3c) & 1) != 0)) && (*(int *)(puVar6 + 3) == 0)\n          ) && (*(byte *)(puVar6 + 7) >> 4 != 2)) {\n        if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) goto LAB_0028c8d7;\n        if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x339) == '\0') {\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          if (*(code **)(*plVar17 + 0x38) != FUN_00172b10) {\n            cVar9 = (**(code **)(*plVar17 + 0x38))(plVar17,puVar6);\n            if (cVar9 != '\0') goto LAB_0028be18;\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) goto LAB_0028c752;\n            lVar15 = puVar6[2];\n          }\n          if ((*(byte *)(lVar15 + 0x3c) & 0x20) == 0) {\n            if (*(int *)(lVar15 + 0x88) == 0) {\n                    \n              FUN_0018ff20("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }\n            if (*(int *)(lVar15 + 0x88) != 1) {\n              FUN_00187dc0(puVar6);\n            }\n          }\n        }\n      }\nLAB_0028be18:\n      uVar12 = *(uint *)((long)puVar6 + 0x1c);\n      if (uVar12 == 0) goto LAB_0028c880;\n      if (local_c0 == (code *)0x0) {\n        uVar22 = 0xffffffff;\n        uVar11 = uVar12;\n      }\n      else {\n        uVar22 = *(uint *)(puVar6 + 4);\n        if (uVar22 == 0) goto LAB_0028c898;\n        uVar11 = uVar12 & uVar22;\n      }\n      pcVar13 = (code *)(ulong)uVar11;\n      if (uVar11 != 0xffffffff) {\n        local_d0 = (code *)puVar6[8];\n        uVar11 = (uint)(*(byte *)(puVar6 + 7) >> 4);\n        lVar15 = *(long *)(PTR_DAT_0045c708 + 0x10);\n        if (lVar15 == 0) goto LAB_0028c8d7;\n        bVar8 = *(byte *)((long)puVar6 + 0x3a);\n        uVar10 = bVar8 & 7;\n        bVar7 = (byte)uVar10;\n        pcVar14 = local_d0;\n        if ((*(char *)(lVar15 + 0x7739) != '\0') && (uVar11 == 1)) {\n          if (bVar7 == 0) {\n            if ((*(int *)(puVar6 + 3) == 0) && ((*(byte *)((long)puVar6 + 0x3b) >> 5 & 1) != 0)) {\n                    \n                    \n              pcVar13 = (code *)(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return pcVar13;\n            }\n                    \n                    \n            pcVar13 = (code *)(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();\n            return pcVar13;\n          }\n          if (bVar7 == 4) {\n                    \n                    \n            pcVar13 = (code *)(*(code *)(&DAT_003a0b64 + lVar20))();\n            return pcVar13;\n          }\n          if (4 < bVar7) goto LAB_0028c8b0;\n          pcVar13 = (code *)((long)&switchD_0028c5a7::switchdataD_003a0b78 +\n                            (long)(int)(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10]);\n                    \n          switch(uVar10) {\n          case 0:\nswitchD_0028c5a7_caseD_0:\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xaa,"shndx");\n          case 1:\n            uVar11 = 1;\n            goto LAB_0028c1cb;\n          case 2:\n            uVar11 = 1;\n            goto LAB_0028c143;\n          case 3:\n            uVar11 = 1;\n            uVar10 = 0xfff1;\n            break;\n          case 4:\n                    \n            uVar11 = 1;\n            uVar10 = 0;\n          }\n          goto LAB_0028bf30;\n        }\n        if ((uVar11 == 10) && (*(char *)(lVar15 + 0x2999) == '\0')) {\n          uVar11 = 1;\n        }\n        if (4 < bVar7) {\nLAB_0028c8b0:\n                    \n          FUN_0018ff20("../../gold/symtab.cc",0xc9b,"sized_write_globals");\n        }\n        pcVar13 = (code *)((long)&switchD_0028bebe::switchdataD_003a0b3c +\n                          (long)(int)(&switchD_0028bebe::switchdataD_003a0b3c)[uVar10]);\n        switch(uVar10) {\n        case 0:\n          if ((bVar8 & 7) != 0) goto switchD_0028c5a7_caseD_0;\n          uVar10 = *(uint *)(puVar6 + 3);\n          bVar8 = *(byte *)((long)puVar6 + 0x3b) >> 5;\n          if (((bVar8 & 1) != 1) && (uVar10 != 0xfff1)) {\n            cVar9 = FUN_00284a00(uVar10);\n            if (cVar9 == '\0') {\n              FUN_00285b30(&local_58,*puVar6);\n              uVar25 = CONCAT44(uStack_54,local_58);\n              uVar16 = gettext("%s: unsupported symbol section 0x%x");\n                    \n              FUN_001878b0(uVar16,uVar25,uVar10);\n              pcVar13 = (code *)auStack_48;\n              if ((code *)CONCAT44(uStack_54,local_58) != pcVar13) {\n                pcVar13 = (code *)FUN_002f1e60();\n              }\n              break;\n            }\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) {\nLAB_0028c752:\n                    \n              FUN_0018ff20("../../gold/symtab.h",0xa1,"object");\n            }\n          }\n          plVar17 = (long *)puVar6[2];\n          if ((*(byte *)((long)plVar17 + 0x3c) & 1) == 0) {\n            pcVar13 = (code *)(**(code **)(*plVar17 + 0x28))(plVar17);\n            if ((pcVar13 != (code *)0x0) || (uVar10 == 0)) goto switchD_0028bebe_caseD_4;\n            if (((bVar8 & 1) != 0) ||\n               ((uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')\n                ))) {\n              uVar19 = (ulong)uVar10;\n              if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;\n                plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n              }\n              else {\n                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);\n              }\n              cVar9 = FUN_00284da0(param_1,plVar17,uVar19);\n              if (cVar9 == '\0') {\n                if (plVar18 == (long *)0x0) goto LAB_0028c9cd;\n              }\n              else {\n                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);\n                plVar17 = auVar26._0_8_;\n                if (plVar17 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }\n                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    \n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }\n                if (plVar18 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }\n              }\n              if (*(code **)(*plVar18 + 0x58) == FUN_0019a160) {\n                uVar10 = *(uint *)((long)plVar18 + 0x7c);\n                if (uVar10 == 0xffffffff) goto LAB_0028ca38;\n              }\n              else {\n                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);\n              }\n              if (0xfeff < uVar10) {\n                if (uVar12 != 0xffffffff) {\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }\n                if (uVar22 == 0xffffffff) {\n                  uVar10 = 0xffff;\n                }\n                else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }\n              }\n              pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n              if (pcVar13 == (code *)0x0) goto LAB_0028c8d7;\n              if (pcVar13[0x5051] != (code)0x0) {\n                if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;\n                pcVar13 = local_d0 + -plVar18[1];\n                local_d0 = pcVar13;\n              }\n            }\n          }\n          else {\n            if ((*(byte *)((long)puVar6 + 0x3b) & 2) != 0) {\n              pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6);\n            }\n            uVar10 = 0;\n            uVar11 = *(byte *)((long)puVar6 + 0x3c) >> 1 & 1;\n            pcVar13 = (code *)(ulong)uVar11;\n            uVar11 = 2 - ((char)uVar11 == '\0');\n          }\n          break;\n        case 1:\nLAB_0028c1cb:\n          if ((bVar8 & 7) != 1) {\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xb5,"output_data");\n          }\n          plVar17 = (long *)puVar6[2];\n          uVar10 = (**(code **)(*plVar17 + 0x58))(plVar17);\n          if (0xfeff < uVar10) {\n            if (uVar12 != 0xffffffff) {\n              local_58 = uVar12;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_4 + 0x38,&local_58);\n            }\n            if (uVar22 == 0xffffffff) {\n              uVar10 = 0xffff;\n            }\n            else {\n              local_58 = uVar22;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_5 + 0x38,&local_58);\n              uVar10 = 0xffff;\n            }\n          }\n          pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n          if (pcVar13 == (code *)0x0) {\nLAB_0028c8d7:\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if (pcVar13[0x5051] != (code)0x0) {\n            lVar15 = (**(code **)(*plVar17 + 0x48))(plVar17);\n            if (lVar15 == 0) {\n                    \n              FUN_0018ff20("../../gold/symtab.cc",0xc81,"sized_write_globals");\n            }\n            if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    \n              FUN_0018ff20("../../gold/output.h",0xc5,"address");\n            }\n            pcVar13 = *(code **)(lVar15 + 8);\n            local_d0 = local_d0 + -(long)pcVar13;\n          }\n          break;\n        case 2:\n          uVar10 = bVar8 & 7;\nLAB_0028c143:\n          if ((char)uVar10 != '\x02') {\n                    \n            FUN_0018ff20("../../gold/symtab.h",200,"output_segment");\n          }\n          pcVar13 = (code *)FUN_0020de20(puVar6[2]);\n          if (pcVar13 == (code *)0x0) goto switchD_0028bebe_caseD_3;\n          if (*(code **)(*(long *)pcVar13 + 0x58) == FUN_0019a160) {\n            uVar10 = *(uint *)(pcVar13 + 0x7c);\n            pcVar13 = (code *)(ulong)uVar10;\n            if (uVar10 == 0xffffffff) {\nLAB_0028ca38:\n                    \n              FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx");\n            }\n          }\n          else {\n            pcVar13 = (code *)(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13);\n            uVar10 = (uint)pcVar13;\n          }\n          break;\n        case 3:\nswitchD_0028bebe_caseD_3:\n          uVar10 = 0xfff1;\n          break;\n        case 4:\nswitchD_0028bebe_caseD_4:\n          uVar10 = 0;\n        }\nLAB_0028bf30:\n        if (uVar12 != 0xffffffff) {\n          uVar12 = uVar12 - iVar1;\n          if (uVar2 <= uVar12) {\n                    \n            FUN_0018ff20("../../gold/symtab.cc",0xca1,"sized_write_globals");\n          }\n          pcVar13 = (code *)FUN_00289ee0(param_1,puVar6,local_d0,uVar10,uVar11,param_2,\n                                         (ulong)(uVar12 * 0x18) + local_98);\n        }\n        if (uVar22 != 0xffffffff) {\n          uVar22 = uVar22 - iVar3;\n          if (uVar4 <= uVar22) {\n                    \n            FUN_0018ff20("../../gold/symtab.cc",0xcaa,"sized_write_globals");\n          }\n          FUN_00289ee0(param_1,puVar6,pcVar14,uVar10,uVar11,param_3);\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          pcVar13 = *(code **)(*plVar17 + 0x138);\n          if (pcVar13 != FUN_00172ba0) {\n            pcVar13 = (code *)(*pcVar13)(plVar17,puVar6,local_c0 + uVar22 * 0x18);\n          }\n        }\n      }\n      plVar24 = (long *)*plVar24;\n    } while (plVar24 != (long *)0x0);\n  }" if (parenthesized_expression "(plVar24 != (long *)0x0)" ( (binary_expression "plVar24 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    lVar20 = (long)DAT_003a0b74;\n    do {\n      puVar6 = (undefined8 *)plVar24[3];\n      if (((((*(byte *)((long)puVar6 + 0x3a) & 7) == 0) &&\n           (lVar15 = puVar6[2], (*(byte *)(lVar15 + 0x3c) & 1) != 0)) && (*(int *)(puVar6 + 3) == 0)\n          ) && (*(byte *)(puVar6 + 7) >> 4 != 2)) {\n        if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) goto LAB_0028c8d7;\n        if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x339) == '\0') {\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          if (*(code **)(*plVar17 + 0x38) != FUN_00172b10) {\n            cVar9 = (**(code **)(*plVar17 + 0x38))(plVar17,puVar6);\n            if (cVar9 != '\0') goto LAB_0028be18;\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) goto LAB_0028c752;\n            lVar15 = puVar6[2];\n          }\n          if ((*(byte *)(lVar15 + 0x3c) & 0x20) == 0) {\n            if (*(int *)(lVar15 + 0x88) == 0) {\n                    \n              FUN_0018ff20("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }\n            if (*(int *)(lVar15 + 0x88) != 1) {\n              FUN_00187dc0(puVar6);\n            }\n          }\n        }\n      }\nLAB_0028be18:\n      uVar12 = *(uint *)((long)puVar6 + 0x1c);\n      if (uVar12 == 0) goto LAB_0028c880;\n      if (local_c0 == (code *)0x0) {\n        uVar22 = 0xffffffff;\n        uVar11 = uVar12;\n      }\n      else {\n        uVar22 = *(uint *)(puVar6 + 4);\n        if (uVar22 == 0) goto LAB_0028c898;\n        uVar11 = uVar12 & uVar22;\n      }\n      pcVar13 = (code *)(ulong)uVar11;\n      if (uVar11 != 0xffffffff) {\n        local_d0 = (code *)puVar6[8];\n        uVar11 = (uint)(*(byte *)(puVar6 + 7) >> 4);\n        lVar15 = *(long *)(PTR_DAT_0045c708 + 0x10);\n        if (lVar15 == 0) goto LAB_0028c8d7;\n        bVar8 = *(byte *)((long)puVar6 + 0x3a);\n        uVar10 = bVar8 & 7;\n        bVar7 = (byte)uVar10;\n        pcVar14 = local_d0;\n        if ((*(char *)(lVar15 + 0x7739) != '\0') && (uVar11 == 1)) {\n          if (bVar7 == 0) {\n            if ((*(int *)(puVar6 + 3) == 0) && ((*(byte *)((long)puVar6 + 0x3b) >> 5 & 1) != 0)) {\n                    \n                    \n              pcVar13 = (code *)(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return pcVar13;\n            }\n                    \n                    \n            pcVar13 = (code *)(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();\n            return pcVar13;\n          }\n          if (bVar7 == 4) {\n                    \n                    \n            pcVar13 = (code *)(*(code *)(&DAT_003a0b64 + lVar20))();\n            return pcVar13;\n          }\n          if (4 < bVar7) goto LAB_0028c8b0;\n          pcVar13 = (code *)((long)&switchD_0028c5a7::switchdataD_003a0b78 +\n                            (long)(int)(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10]);\n                    \n          switch(uVar10) {\n          case 0:\nswitchD_0028c5a7_caseD_0:\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xaa,"shndx");\n          case 1:\n            uVar11 = 1;\n            goto LAB_0028c1cb;\n          case 2:\n            uVar11 = 1;\n            goto LAB_0028c143;\n          case 3:\n            uVar11 = 1;\n            uVar10 = 0xfff1;\n            break;\n          case 4:\n                    \n            uVar11 = 1;\n            uVar10 = 0;\n          }\n          goto LAB_0028bf30;\n        }\n        if ((uVar11 == 10) && (*(char *)(lVar15 + 0x2999) == '\0')) {\n          uVar11 = 1;\n        }\n        if (4 < bVar7) {\nLAB_0028c8b0:\n                    \n          FUN_0018ff20("../../gold/symtab.cc",0xc9b,"sized_write_globals");\n        }\n        pcVar13 = (code *)((long)&switchD_0028bebe::switchdataD_003a0b3c +\n                          (long)(int)(&switchD_0028bebe::switchdataD_003a0b3c)[uVar10]);\n        switch(uVar10) {\n        case 0:\n          if ((bVar8 & 7) != 0) goto switchD_0028c5a7_caseD_0;\n          uVar10 = *(uint *)(puVar6 + 3);\n          bVar8 = *(byte *)((long)puVar6 + 0x3b) >> 5;\n          if (((bVar8 & 1) != 1) && (uVar10 != 0xfff1)) {\n            cVar9 = FUN_00284a00(uVar10);\n            if (cVar9 == '\0') {\n              FUN_00285b30(&local_58,*puVar6);\n              uVar25 = CONCAT44(uStack_54,local_58);\n              uVar16 = gettext("%s: unsupported symbol section 0x%x");\n                    \n              FUN_001878b0(uVar16,uVar25,uVar10);\n              pcVar13 = (code *)auStack_48;\n              if ((code *)CONCAT44(uStack_54,local_58) != pcVar13) {\n                pcVar13 = (code *)FUN_002f1e60();\n              }\n              break;\n            }\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) {\nLAB_0028c752:\n                    \n              FUN_0018ff20("../../gold/symtab.h",0xa1,"object");\n            }\n          }\n          plVar17 = (long *)puVar6[2];\n          if ((*(byte *)((long)plVar17 + 0x3c) & 1) == 0) {\n            pcVar13 = (code *)(**(code **)(*plVar17 + 0x28))(plVar17);\n            if ((pcVar13 != (code *)0x0) || (uVar10 == 0)) goto switchD_0028bebe_caseD_4;\n            if (((bVar8 & 1) != 0) ||\n               ((uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')\n                ))) {\n              uVar19 = (ulong)uVar10;\n              if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;\n                plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n              }\n              else {\n                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);\n              }\n              cVar9 = FUN_00284da0(param_1,plVar17,uVar19);\n              if (cVar9 == '\0') {\n                if (plVar18 == (long *)0x0) goto LAB_0028c9cd;\n              }\n              else {\n                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);\n                plVar17 = auVar26._0_8_;\n                if (plVar17 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }\n                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    \n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }\n                if (plVar18 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }\n              }\n              if (*(code **)(*plVar18 + 0x58) == FUN_0019a160) {\n                uVar10 = *(uint *)((long)plVar18 + 0x7c);\n                if (uVar10 == 0xffffffff) goto LAB_0028ca38;\n              }\n              else {\n                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);\n              }\n              if (0xfeff < uVar10) {\n                if (uVar12 != 0xffffffff) {\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }\n                if (uVar22 == 0xffffffff) {\n                  uVar10 = 0xffff;\n                }\n                else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }\n              }\n              pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n              if (pcVar13 == (code *)0x0) goto LAB_0028c8d7;\n              if (pcVar13[0x5051] != (code)0x0) {\n                if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;\n                pcVar13 = local_d0 + -plVar18[1];\n                local_d0 = pcVar13;\n              }\n            }\n          }\n          else {\n            if ((*(byte *)((long)puVar6 + 0x3b) & 2) != 0) {\n              pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6);\n            }\n            uVar10 = 0;\n            uVar11 = *(byte *)((long)puVar6 + 0x3c) >> 1 & 1;\n            pcVar13 = (code *)(ulong)uVar11;\n            uVar11 = 2 - ((char)uVar11 == '\0');\n          }\n          break;\n        case 1:\nLAB_0028c1cb:\n          if ((bVar8 & 7) != 1) {\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xb5,"output_data");\n          }\n          plVar17 = (long *)puVar6[2];\n          uVar10 = (**(code **)(*plVar17 + 0x58))(plVar17);\n          if (0xfeff < uVar10) {\n            if (uVar12 != 0xffffffff) {\n              local_58 = uVar12;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_4 + 0x38,&local_58);\n            }\n            if (uVar22 == 0xffffffff) {\n              uVar10 = 0xffff;\n            }\n            else {\n              local_58 = uVar22;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_5 + 0x38,&local_58);\n              uVar10 = 0xffff;\n            }\n          }\n          pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n          if (pcVar13 == (code *)0x0) {\nLAB_0028c8d7:\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if (pcVar13[0x5051] != (code)0x0) {\n            lVar15 = (**(code **)(*plVar17 + 0x48))(plVar17);\n            if (lVar15 == 0) {\n                    \n              FUN_0018ff20("../../gold/symtab.cc",0xc81,"sized_write_globals");\n            }\n            if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    \n              FUN_0018ff20("../../gold/output.h",0xc5,"address");\n            }\n            pcVar13 = *(code **)(lVar15 + 8);\n            local_d0 = local_d0 + -(long)pcVar13;\n          }\n          break;\n        case 2:\n          uVar10 = bVar8 & 7;\nLAB_0028c143:\n          if ((char)uVar10 != '\x02') {\n                    \n            FUN_0018ff20("../../gold/symtab.h",200,"output_segment");\n          }\n          pcVar13 = (code *)FUN_0020de20(puVar6[2]);\n          if (pcVar13 == (code *)0x0) goto switchD_0028bebe_caseD_3;\n          if (*(code **)(*(long *)pcVar13 + 0x58) == FUN_0019a160) {\n            uVar10 = *(uint *)(pcVar13 + 0x7c);\n            pcVar13 = (code *)(ulong)uVar10;\n            if (uVar10 == 0xffffffff) {\nLAB_0028ca38:\n                    \n              FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx");\n            }\n          }\n          else {\n            pcVar13 = (code *)(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13);\n            uVar10 = (uint)pcVar13;\n          }\n          break;\n        case 3:\nswitchD_0028bebe_caseD_3:\n          uVar10 = 0xfff1;\n          break;\n        case 4:\nswitchD_0028bebe_caseD_4:\n          uVar10 = 0;\n        }\nLAB_0028bf30:\n        if (uVar12 != 0xffffffff) {\n          uVar12 = uVar12 - iVar1;\n          if (uVar2 <= uVar12) {\n                    \n            FUN_0018ff20("../../gold/symtab.cc",0xca1,"sized_write_globals");\n          }\n          pcVar13 = (code *)FUN_00289ee0(param_1,puVar6,local_d0,uVar10,uVar11,param_2,\n                                         (ulong)(uVar12 * 0x18) + local_98);\n        }\n        if (uVar22 != 0xffffffff) {\n          uVar22 = uVar22 - iVar3;\n          if (uVar4 <= uVar22) {\n                    \n            FUN_0018ff20("../../gold/symtab.cc",0xcaa,"sized_write_globals");\n          }\n          FUN_00289ee0(param_1,puVar6,pcVar14,uVar10,uVar11,param_3);\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          pcVar13 = *(code **)(*plVar17 + 0x138);\n          if (pcVar13 != FUN_00172ba0) {\n            pcVar13 = (code *)(*pcVar13)(plVar17,puVar6,local_c0 + uVar22 * 0x18);\n          }\n        }\n      }\n      plVar24 = (long *)*plVar24;\n    } while (plVar24 != (long *)0x0);\n  }" { (expression_statement "lVar20 = (long)DAT_003a0b74;" (assignment_expression "lVar20 = (long)DAT_003a0b74" identifier = (cast_expression "(long)DAT_003a0b74" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (do_statement "do {\n      puVar6 = (undefined8 *)plVar24[3];\n      if (((((*(byte *)((long)puVar6 + 0x3a) & 7) == 0) &&\n           (lVar15 = puVar6[2], (*(byte *)(lVar15 + 0x3c) & 1) != 0)) && (*(int *)(puVar6 + 3) == 0)\n          ) && (*(byte *)(puVar6 + 7) >> 4 != 2)) {\n        if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) goto LAB_0028c8d7;\n        if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x339) == '\0') {\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          if (*(code **)(*plVar17 + 0x38) != FUN_00172b10) {\n            cVar9 = (**(code **)(*plVar17 + 0x38))(plVar17,puVar6);\n            if (cVar9 != '\0') goto LAB_0028be18;\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) goto LAB_0028c752;\n            lVar15 = puVar6[2];\n          }\n          if ((*(byte *)(lVar15 + 0x3c) & 0x20) == 0) {\n            if (*(int *)(lVar15 + 0x88) == 0) {\n                    \n              FUN_0018ff20("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }\n            if (*(int *)(lVar15 + 0x88) != 1) {\n              FUN_00187dc0(puVar6);\n            }\n          }\n        }\n      }\nLAB_0028be18:\n      uVar12 = *(uint *)((long)puVar6 + 0x1c);\n      if (uVar12 == 0) goto LAB_0028c880;\n      if (local_c0 == (code *)0x0) {\n        uVar22 = 0xffffffff;\n        uVar11 = uVar12;\n      }\n      else {\n        uVar22 = *(uint *)(puVar6 + 4);\n        if (uVar22 == 0) goto LAB_0028c898;\n        uVar11 = uVar12 & uVar22;\n      }\n      pcVar13 = (code *)(ulong)uVar11;\n      if (uVar11 != 0xffffffff) {\n        local_d0 = (code *)puVar6[8];\n        uVar11 = (uint)(*(byte *)(puVar6 + 7) >> 4);\n        lVar15 = *(long *)(PTR_DAT_0045c708 + 0x10);\n        if (lVar15 == 0) goto LAB_0028c8d7;\n        bVar8 = *(byte *)((long)puVar6 + 0x3a);\n        uVar10 = bVar8 & 7;\n        bVar7 = (byte)uVar10;\n        pcVar14 = local_d0;\n        if ((*(char *)(lVar15 + 0x7739) != '\0') && (uVar11 == 1)) {\n          if (bVar7 == 0) {\n            if ((*(int *)(puVar6 + 3) == 0) && ((*(byte *)((long)puVar6 + 0x3b) >> 5 & 1) != 0)) {\n                    \n                    \n              pcVar13 = (code *)(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return pcVar13;\n            }\n                    \n                    \n            pcVar13 = (code *)(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();\n            return pcVar13;\n          }\n          if (bVar7 == 4) {\n                    \n                    \n            pcVar13 = (code *)(*(code *)(&DAT_003a0b64 + lVar20))();\n            return pcVar13;\n          }\n          if (4 < bVar7) goto LAB_0028c8b0;\n          pcVar13 = (code *)((long)&switchD_0028c5a7::switchdataD_003a0b78 +\n                            (long)(int)(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10]);\n                    \n          switch(uVar10) {\n          case 0:\nswitchD_0028c5a7_caseD_0:\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xaa,"shndx");\n          case 1:\n            uVar11 = 1;\n            goto LAB_0028c1cb;\n          case 2:\n            uVar11 = 1;\n            goto LAB_0028c143;\n          case 3:\n            uVar11 = 1;\n            uVar10 = 0xfff1;\n            break;\n          case 4:\n                    \n            uVar11 = 1;\n            uVar10 = 0;\n          }\n          goto LAB_0028bf30;\n        }\n        if ((uVar11 == 10) && (*(char *)(lVar15 + 0x2999) == '\0')) {\n          uVar11 = 1;\n        }\n        if (4 < bVar7) {\nLAB_0028c8b0:\n                    \n          FUN_0018ff20("../../gold/symtab.cc",0xc9b,"sized_write_globals");\n        }\n        pcVar13 = (code *)((long)&switchD_0028bebe::switchdataD_003a0b3c +\n                          (long)(int)(&switchD_0028bebe::switchdataD_003a0b3c)[uVar10]);\n        switch(uVar10) {\n        case 0:\n          if ((bVar8 & 7) != 0) goto switchD_0028c5a7_caseD_0;\n          uVar10 = *(uint *)(puVar6 + 3);\n          bVar8 = *(byte *)((long)puVar6 + 0x3b) >> 5;\n          if (((bVar8 & 1) != 1) && (uVar10 != 0xfff1)) {\n            cVar9 = FUN_00284a00(uVar10);\n            if (cVar9 == '\0') {\n              FUN_00285b30(&local_58,*puVar6);\n              uVar25 = CONCAT44(uStack_54,local_58);\n              uVar16 = gettext("%s: unsupported symbol section 0x%x");\n                    \n              FUN_001878b0(uVar16,uVar25,uVar10);\n              pcVar13 = (code *)auStack_48;\n              if ((code *)CONCAT44(uStack_54,local_58) != pcVar13) {\n                pcVar13 = (code *)FUN_002f1e60();\n              }\n              break;\n            }\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) {\nLAB_0028c752:\n                    \n              FUN_0018ff20("../../gold/symtab.h",0xa1,"object");\n            }\n          }\n          plVar17 = (long *)puVar6[2];\n          if ((*(byte *)((long)plVar17 + 0x3c) & 1) == 0) {\n            pcVar13 = (code *)(**(code **)(*plVar17 + 0x28))(plVar17);\n            if ((pcVar13 != (code *)0x0) || (uVar10 == 0)) goto switchD_0028bebe_caseD_4;\n            if (((bVar8 & 1) != 0) ||\n               ((uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')\n                ))) {\n              uVar19 = (ulong)uVar10;\n              if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;\n                plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n              }\n              else {\n                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);\n              }\n              cVar9 = FUN_00284da0(param_1,plVar17,uVar19);\n              if (cVar9 == '\0') {\n                if (plVar18 == (long *)0x0) goto LAB_0028c9cd;\n              }\n              else {\n                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);\n                plVar17 = auVar26._0_8_;\n                if (plVar17 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }\n                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    \n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }\n                if (plVar18 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }\n              }\n              if (*(code **)(*plVar18 + 0x58) == FUN_0019a160) {\n                uVar10 = *(uint *)((long)plVar18 + 0x7c);\n                if (uVar10 == 0xffffffff) goto LAB_0028ca38;\n              }\n              else {\n                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);\n              }\n              if (0xfeff < uVar10) {\n                if (uVar12 != 0xffffffff) {\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }\n                if (uVar22 == 0xffffffff) {\n                  uVar10 = 0xffff;\n                }\n                else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }\n              }\n              pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n              if (pcVar13 == (code *)0x0) goto LAB_0028c8d7;\n              if (pcVar13[0x5051] != (code)0x0) {\n                if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;\n                pcVar13 = local_d0 + -plVar18[1];\n                local_d0 = pcVar13;\n              }\n            }\n          }\n          else {\n            if ((*(byte *)((long)puVar6 + 0x3b) & 2) != 0) {\n              pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6);\n            }\n            uVar10 = 0;\n            uVar11 = *(byte *)((long)puVar6 + 0x3c) >> 1 & 1;\n            pcVar13 = (code *)(ulong)uVar11;\n            uVar11 = 2 - ((char)uVar11 == '\0');\n          }\n          break;\n        case 1:\nLAB_0028c1cb:\n          if ((bVar8 & 7) != 1) {\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xb5,"output_data");\n          }\n          plVar17 = (long *)puVar6[2];\n          uVar10 = (**(code **)(*plVar17 + 0x58))(plVar17);\n          if (0xfeff < uVar10) {\n            if (uVar12 != 0xffffffff) {\n              local_58 = uVar12;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_4 + 0x38,&local_58);\n            }\n            if (uVar22 == 0xffffffff) {\n              uVar10 = 0xffff;\n            }\n            else {\n              local_58 = uVar22;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_5 + 0x38,&local_58);\n              uVar10 = 0xffff;\n            }\n          }\n          pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n          if (pcVar13 == (code *)0x0) {\nLAB_0028c8d7:\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if (pcVar13[0x5051] != (code)0x0) {\n            lVar15 = (**(code **)(*plVar17 + 0x48))(plVar17);\n            if (lVar15 == 0) {\n                    \n              FUN_0018ff20("../../gold/symtab.cc",0xc81,"sized_write_globals");\n            }\n            if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    \n              FUN_0018ff20("../../gold/output.h",0xc5,"address");\n            }\n            pcVar13 = *(code **)(lVar15 + 8);\n            local_d0 = local_d0 + -(long)pcVar13;\n          }\n          break;\n        case 2:\n          uVar10 = bVar8 & 7;\nLAB_0028c143:\n          if ((char)uVar10 != '\x02') {\n                    \n            FUN_0018ff20("../../gold/symtab.h",200,"output_segment");\n          }\n          pcVar13 = (code *)FUN_0020de20(puVar6[2]);\n          if (pcVar13 == (code *)0x0) goto switchD_0028bebe_caseD_3;\n          if (*(code **)(*(long *)pcVar13 + 0x58) == FUN_0019a160) {\n            uVar10 = *(uint *)(pcVar13 + 0x7c);\n            pcVar13 = (code *)(ulong)uVar10;\n            if (uVar10 == 0xffffffff) {\nLAB_0028ca38:\n                    \n              FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx");\n            }\n          }\n          else {\n            pcVar13 = (code *)(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13);\n            uVar10 = (uint)pcVar13;\n          }\n          break;\n        case 3:\nswitchD_0028bebe_caseD_3:\n          uVar10 = 0xfff1;\n          break;\n        case 4:\nswitchD_0028bebe_caseD_4:\n          uVar10 = 0;\n        }\nLAB_0028bf30:\n        if (uVar12 != 0xffffffff) {\n          uVar12 = uVar12 - iVar1;\n          if (uVar2 <= uVar12) {\n                    \n            FUN_0018ff20("../../gold/symtab.cc",0xca1,"sized_write_globals");\n          }\n          pcVar13 = (code *)FUN_00289ee0(param_1,puVar6,local_d0,uVar10,uVar11,param_2,\n                                         (ulong)(uVar12 * 0x18) + local_98);\n        }\n        if (uVar22 != 0xffffffff) {\n          uVar22 = uVar22 - iVar3;\n          if (uVar4 <= uVar22) {\n                    \n            FUN_0018ff20("../../gold/symtab.cc",0xcaa,"sized_write_globals");\n          }\n          FUN_00289ee0(param_1,puVar6,pcVar14,uVar10,uVar11,param_3);\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          pcVar13 = *(code **)(*plVar17 + 0x138);\n          if (pcVar13 != FUN_00172ba0) {\n            pcVar13 = (code *)(*pcVar13)(plVar17,puVar6,local_c0 + uVar22 * 0x18);\n          }\n        }\n      }\n      plVar24 = (long *)*plVar24;\n    } while (plVar24 != (long *)0x0);" do (compound_statement "{\n      puVar6 = (undefined8 *)plVar24[3];\n      if (((((*(byte *)((long)puVar6 + 0x3a) & 7) == 0) &&\n           (lVar15 = puVar6[2], (*(byte *)(lVar15 + 0x3c) & 1) != 0)) && (*(int *)(puVar6 + 3) == 0)\n          ) && (*(byte *)(puVar6 + 7) >> 4 != 2)) {\n        if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) goto LAB_0028c8d7;\n        if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x339) == '\0') {\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          if (*(code **)(*plVar17 + 0x38) != FUN_00172b10) {\n            cVar9 = (**(code **)(*plVar17 + 0x38))(plVar17,puVar6);\n            if (cVar9 != '\0') goto LAB_0028be18;\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) goto LAB_0028c752;\n            lVar15 = puVar6[2];\n          }\n          if ((*(byte *)(lVar15 + 0x3c) & 0x20) == 0) {\n            if (*(int *)(lVar15 + 0x88) == 0) {\n                    \n              FUN_0018ff20("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }\n            if (*(int *)(lVar15 + 0x88) != 1) {\n              FUN_00187dc0(puVar6);\n            }\n          }\n        }\n      }\nLAB_0028be18:\n      uVar12 = *(uint *)((long)puVar6 + 0x1c);\n      if (uVar12 == 0) goto LAB_0028c880;\n      if (local_c0 == (code *)0x0) {\n        uVar22 = 0xffffffff;\n        uVar11 = uVar12;\n      }\n      else {\n        uVar22 = *(uint *)(puVar6 + 4);\n        if (uVar22 == 0) goto LAB_0028c898;\n        uVar11 = uVar12 & uVar22;\n      }\n      pcVar13 = (code *)(ulong)uVar11;\n      if (uVar11 != 0xffffffff) {\n        local_d0 = (code *)puVar6[8];\n        uVar11 = (uint)(*(byte *)(puVar6 + 7) >> 4);\n        lVar15 = *(long *)(PTR_DAT_0045c708 + 0x10);\n        if (lVar15 == 0) goto LAB_0028c8d7;\n        bVar8 = *(byte *)((long)puVar6 + 0x3a);\n        uVar10 = bVar8 & 7;\n        bVar7 = (byte)uVar10;\n        pcVar14 = local_d0;\n        if ((*(char *)(lVar15 + 0x7739) != '\0') && (uVar11 == 1)) {\n          if (bVar7 == 0) {\n            if ((*(int *)(puVar6 + 3) == 0) && ((*(byte *)((long)puVar6 + 0x3b) >> 5 & 1) != 0)) {\n                    \n                    \n              pcVar13 = (code *)(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return pcVar13;\n            }\n                    \n                    \n            pcVar13 = (code *)(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();\n            return pcVar13;\n          }\n          if (bVar7 == 4) {\n                    \n                    \n            pcVar13 = (code *)(*(code *)(&DAT_003a0b64 + lVar20))();\n            return pcVar13;\n          }\n          if (4 < bVar7) goto LAB_0028c8b0;\n          pcVar13 = (code *)((long)&switchD_0028c5a7::switchdataD_003a0b78 +\n                            (long)(int)(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10]);\n                    \n          switch(uVar10) {\n          case 0:\nswitchD_0028c5a7_caseD_0:\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xaa,"shndx");\n          case 1:\n            uVar11 = 1;\n            goto LAB_0028c1cb;\n          case 2:\n            uVar11 = 1;\n            goto LAB_0028c143;\n          case 3:\n            uVar11 = 1;\n            uVar10 = 0xfff1;\n            break;\n          case 4:\n                    \n            uVar11 = 1;\n            uVar10 = 0;\n          }\n          goto LAB_0028bf30;\n        }\n        if ((uVar11 == 10) && (*(char *)(lVar15 + 0x2999) == '\0')) {\n          uVar11 = 1;\n        }\n        if (4 < bVar7) {\nLAB_0028c8b0:\n                    \n          FUN_0018ff20("../../gold/symtab.cc",0xc9b,"sized_write_globals");\n        }\n        pcVar13 = (code *)((long)&switchD_0028bebe::switchdataD_003a0b3c +\n                          (long)(int)(&switchD_0028bebe::switchdataD_003a0b3c)[uVar10]);\n        switch(uVar10) {\n        case 0:\n          if ((bVar8 & 7) != 0) goto switchD_0028c5a7_caseD_0;\n          uVar10 = *(uint *)(puVar6 + 3);\n          bVar8 = *(byte *)((long)puVar6 + 0x3b) >> 5;\n          if (((bVar8 & 1) != 1) && (uVar10 != 0xfff1)) {\n            cVar9 = FUN_00284a00(uVar10);\n            if (cVar9 == '\0') {\n              FUN_00285b30(&local_58,*puVar6);\n              uVar25 = CONCAT44(uStack_54,local_58);\n              uVar16 = gettext("%s: unsupported symbol section 0x%x");\n                    \n              FUN_001878b0(uVar16,uVar25,uVar10);\n              pcVar13 = (code *)auStack_48;\n              if ((code *)CONCAT44(uStack_54,local_58) != pcVar13) {\n                pcVar13 = (code *)FUN_002f1e60();\n              }\n              break;\n            }\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) {\nLAB_0028c752:\n                    \n              FUN_0018ff20("../../gold/symtab.h",0xa1,"object");\n            }\n          }\n          plVar17 = (long *)puVar6[2];\n          if ((*(byte *)((long)plVar17 + 0x3c) & 1) == 0) {\n            pcVar13 = (code *)(**(code **)(*plVar17 + 0x28))(plVar17);\n            if ((pcVar13 != (code *)0x0) || (uVar10 == 0)) goto switchD_0028bebe_caseD_4;\n            if (((bVar8 & 1) != 0) ||\n               ((uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')\n                ))) {\n              uVar19 = (ulong)uVar10;\n              if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;\n                plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n              }\n              else {\n                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);\n              }\n              cVar9 = FUN_00284da0(param_1,plVar17,uVar19);\n              if (cVar9 == '\0') {\n                if (plVar18 == (long *)0x0) goto LAB_0028c9cd;\n              }\n              else {\n                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);\n                plVar17 = auVar26._0_8_;\n                if (plVar17 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }\n                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    \n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }\n                if (plVar18 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }\n              }\n              if (*(code **)(*plVar18 + 0x58) == FUN_0019a160) {\n                uVar10 = *(uint *)((long)plVar18 + 0x7c);\n                if (uVar10 == 0xffffffff) goto LAB_0028ca38;\n              }\n              else {\n                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);\n              }\n              if (0xfeff < uVar10) {\n                if (uVar12 != 0xffffffff) {\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }\n                if (uVar22 == 0xffffffff) {\n                  uVar10 = 0xffff;\n                }\n                else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }\n              }\n              pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n              if (pcVar13 == (code *)0x0) goto LAB_0028c8d7;\n              if (pcVar13[0x5051] != (code)0x0) {\n                if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;\n                pcVar13 = local_d0 + -plVar18[1];\n                local_d0 = pcVar13;\n              }\n            }\n          }\n          else {\n            if ((*(byte *)((long)puVar6 + 0x3b) & 2) != 0) {\n              pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6);\n            }\n            uVar10 = 0;\n            uVar11 = *(byte *)((long)puVar6 + 0x3c) >> 1 & 1;\n            pcVar13 = (code *)(ulong)uVar11;\n            uVar11 = 2 - ((char)uVar11 == '\0');\n          }\n          break;\n        case 1:\nLAB_0028c1cb:\n          if ((bVar8 & 7) != 1) {\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xb5,"output_data");\n          }\n          plVar17 = (long *)puVar6[2];\n          uVar10 = (**(code **)(*plVar17 + 0x58))(plVar17);\n          if (0xfeff < uVar10) {\n            if (uVar12 != 0xffffffff) {\n              local_58 = uVar12;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_4 + 0x38,&local_58);\n            }\n            if (uVar22 == 0xffffffff) {\n              uVar10 = 0xffff;\n            }\n            else {\n              local_58 = uVar22;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_5 + 0x38,&local_58);\n              uVar10 = 0xffff;\n            }\n          }\n          pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n          if (pcVar13 == (code *)0x0) {\nLAB_0028c8d7:\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if (pcVar13[0x5051] != (code)0x0) {\n            lVar15 = (**(code **)(*plVar17 + 0x48))(plVar17);\n            if (lVar15 == 0) {\n                    \n              FUN_0018ff20("../../gold/symtab.cc",0xc81,"sized_write_globals");\n            }\n            if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    \n              FUN_0018ff20("../../gold/output.h",0xc5,"address");\n            }\n            pcVar13 = *(code **)(lVar15 + 8);\n            local_d0 = local_d0 + -(long)pcVar13;\n          }\n          break;\n        case 2:\n          uVar10 = bVar8 & 7;\nLAB_0028c143:\n          if ((char)uVar10 != '\x02') {\n                    \n            FUN_0018ff20("../../gold/symtab.h",200,"output_segment");\n          }\n          pcVar13 = (code *)FUN_0020de20(puVar6[2]);\n          if (pcVar13 == (code *)0x0) goto switchD_0028bebe_caseD_3;\n          if (*(code **)(*(long *)pcVar13 + 0x58) == FUN_0019a160) {\n            uVar10 = *(uint *)(pcVar13 + 0x7c);\n            pcVar13 = (code *)(ulong)uVar10;\n            if (uVar10 == 0xffffffff) {\nLAB_0028ca38:\n                    \n              FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx");\n            }\n          }\n          else {\n            pcVar13 = (code *)(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13);\n            uVar10 = (uint)pcVar13;\n          }\n          break;\n        case 3:\nswitchD_0028bebe_caseD_3:\n          uVar10 = 0xfff1;\n          break;\n        case 4:\nswitchD_0028bebe_caseD_4:\n          uVar10 = 0;\n        }\nLAB_0028bf30:\n        if (uVar12 != 0xffffffff) {\n          uVar12 = uVar12 - iVar1;\n          if (uVar2 <= uVar12) {\n                    \n            FUN_0018ff20("../../gold/symtab.cc",0xca1,"sized_write_globals");\n          }\n          pcVar13 = (code *)FUN_00289ee0(param_1,puVar6,local_d0,uVar10,uVar11,param_2,\n                                         (ulong)(uVar12 * 0x18) + local_98);\n        }\n        if (uVar22 != 0xffffffff) {\n          uVar22 = uVar22 - iVar3;\n          if (uVar4 <= uVar22) {\n                    \n            FUN_0018ff20("../../gold/symtab.cc",0xcaa,"sized_write_globals");\n          }\n          FUN_00289ee0(param_1,puVar6,pcVar14,uVar10,uVar11,param_3);\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          pcVar13 = *(code **)(*plVar17 + 0x138);\n          if (pcVar13 != FUN_00172ba0) {\n            pcVar13 = (code *)(*pcVar13)(plVar17,puVar6,local_c0 + uVar22 * 0x18);\n          }\n        }\n      }\n      plVar24 = (long *)*plVar24;\n    }" { (expression_statement "puVar6 = (undefined8 *)plVar24[3];" (assignment_expression "puVar6 = (undefined8 *)plVar24[3]" identifier = (cast_expression "(undefined8 *)plVar24[3]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar24[3]" identifier [ number_literal ]))) ;) (if_statement "if (((((*(byte *)((long)puVar6 + 0x3a) & 7) == 0) &&\n           (lVar15 = puVar6[2], (*(byte *)(lVar15 + 0x3c) & 1) != 0)) && (*(int *)(puVar6 + 3) == 0)\n          ) && (*(byte *)(puVar6 + 7) >> 4 != 2)) {\n        if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) goto LAB_0028c8d7;\n        if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x339) == '\0') {\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          if (*(code **)(*plVar17 + 0x38) != FUN_00172b10) {\n            cVar9 = (**(code **)(*plVar17 + 0x38))(plVar17,puVar6);\n            if (cVar9 != '\0') goto LAB_0028be18;\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) goto LAB_0028c752;\n            lVar15 = puVar6[2];\n          }\n          if ((*(byte *)(lVar15 + 0x3c) & 0x20) == 0) {\n            if (*(int *)(lVar15 + 0x88) == 0) {\n                    \n              FUN_0018ff20("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }\n            if (*(int *)(lVar15 + 0x88) != 1) {\n              FUN_00187dc0(puVar6);\n            }\n          }\n        }\n      }" if (parenthesized_expression "(((((*(byte *)((long)puVar6 + 0x3a) & 7) == 0) &&\n           (lVar15 = puVar6[2], (*(byte *)(lVar15 + 0x3c) & 1) != 0)) && (*(int *)(puVar6 + 3) == 0)\n          ) && (*(byte *)(puVar6 + 7) >> 4 != 2))" ( (binary_expression "((((*(byte *)((long)puVar6 + 0x3a) & 7) == 0) &&\n           (lVar15 = puVar6[2], (*(byte *)(lVar15 + 0x3c) & 1) != 0)) && (*(int *)(puVar6 + 3) == 0)\n          ) && (*(byte *)(puVar6 + 7) >> 4 != 2)" (parenthesized_expression "((((*(byte *)((long)puVar6 + 0x3a) & 7) == 0) &&\n           (lVar15 = puVar6[2], (*(byte *)(lVar15 + 0x3c) & 1) != 0)) && (*(int *)(puVar6 + 3) == 0)\n          )" ( (binary_expression "(((*(byte *)((long)puVar6 + 0x3a) & 7) == 0) &&\n           (lVar15 = puVar6[2], (*(byte *)(lVar15 + 0x3c) & 1) != 0)) && (*(int *)(puVar6 + 3) == 0)" (parenthesized_expression "(((*(byte *)((long)puVar6 + 0x3a) & 7) == 0) &&\n           (lVar15 = puVar6[2], (*(byte *)(lVar15 + 0x3c) & 1) != 0))" ( (binary_expression "((*(byte *)((long)puVar6 + 0x3a) & 7) == 0) &&\n           (lVar15 = puVar6[2], (*(byte *)(lVar15 + 0x3c) & 1) != 0)" (parenthesized_expression "((*(byte *)((long)puVar6 + 0x3a) & 7) == 0)" ( (binary_expression "(*(byte *)((long)puVar6 + 0x3a) & 7) == 0" (parenthesized_expression "(*(byte *)((long)puVar6 + 0x3a) & 7)" ( (binary_expression "*(byte *)((long)puVar6 + 0x3a) & 7" (pointer_expression "*(byte *)((long)puVar6 + 0x3a)" * (cast_expression "(byte *)((long)puVar6 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar6 + 0x3a)" ( (binary_expression "(long)puVar6 + 0x3a" (cast_expression "(long)puVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "(lVar15 = puVar6[2], (*(byte *)(lVar15 + 0x3c) & 1) != 0)" ( (comma_expression "lVar15 = puVar6[2], (*(byte *)(lVar15 + 0x3c) & 1) != 0" (assignment_expression "lVar15 = puVar6[2]" identifier = (subscript_expression "puVar6[2]" identifier [ number_literal ])) , (binary_expression "(*(byte *)(lVar15 + 0x3c) & 1) != 0" (parenthesized_expression "(*(byte *)(lVar15 + 0x3c) & 1)" ( (binary_expression "*(byte *)(lVar15 + 0x3c) & 1" (pointer_expression "*(byte *)(lVar15 + 0x3c)" * (cast_expression "(byte *)(lVar15 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x3c)" ( (binary_expression "lVar15 + 0x3c" identifier + number_literal) )))) & number_literal) )) != number_literal)) ))) )) && (parenthesized_expression "(*(int *)(puVar6 + 3) == 0)" ( (binary_expression "*(int *)(puVar6 + 3) == 0" (pointer_expression "*(int *)(puVar6 + 3)" * (cast_expression "(int *)(puVar6 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 3)" ( (binary_expression "puVar6 + 3" identifier + number_literal) )))) == number_literal) ))) )) && (parenthesized_expression "(*(byte *)(puVar6 + 7) >> 4 != 2)" ( (binary_expression "*(byte *)(puVar6 + 7) >> 4 != 2" (binary_expression "*(byte *)(puVar6 + 7) >> 4" (pointer_expression "*(byte *)(puVar6 + 7)" * (cast_expression "(byte *)(puVar6 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 7)" ( (binary_expression "puVar6 + 7" identifier + number_literal) )))) >> number_literal) != number_literal) ))) )) (compound_statement "{\n        if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) goto LAB_0028c8d7;\n        if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x339) == '\0') {\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          if (*(code **)(*plVar17 + 0x38) != FUN_00172b10) {\n            cVar9 = (**(code **)(*plVar17 + 0x38))(plVar17,puVar6);\n            if (cVar9 != '\0') goto LAB_0028be18;\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) goto LAB_0028c752;\n            lVar15 = puVar6[2];\n          }\n          if ((*(byte *)(lVar15 + 0x3c) & 0x20) == 0) {\n            if (*(int *)(lVar15 + 0x88) == 0) {\n                    \n              FUN_0018ff20("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }\n            if (*(int *)(lVar15 + 0x88) != 1) {\n              FUN_00187dc0(puVar6);\n            }\n          }\n        }\n      }" { (if_statement "if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) goto LAB_0028c8d7;" if (parenthesized_expression "(*(long *)(PTR_DAT_0045c708 + 0x10) == 0)" ( (binary_expression "*(long *)(PTR_DAT_0045c708 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_0045c708 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0045c708 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0045c708 + 0x10)" ( (binary_expression "PTR_DAT_0045c708 + 0x10" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0028c8d7;" goto statement_identifier ;)) (if_statement "if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x339) == '\0') {\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          if (*(code **)(*plVar17 + 0x38) != FUN_00172b10) {\n            cVar9 = (**(code **)(*plVar17 + 0x38))(plVar17,puVar6);\n            if (cVar9 != '\0') goto LAB_0028be18;\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) goto LAB_0028c752;\n            lVar15 = puVar6[2];\n          }\n          if ((*(byte *)(lVar15 + 0x3c) & 0x20) == 0) {\n            if (*(int *)(lVar15 + 0x88) == 0) {\n                    \n              FUN_0018ff20("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }\n            if (*(int *)(lVar15 + 0x88) != 1) {\n              FUN_00187dc0(puVar6);\n            }\n          }\n        }" if (parenthesized_expression "(*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x339) == '\0')" ( (binary_expression "*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x339) == '\0'" (pointer_expression "*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x339)" * (cast_expression "(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x339)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x339)" ( (binary_expression "*(long *)(PTR_DAT_0045c708 + 0x10) + 0x339" (pointer_expression "*(long *)(PTR_DAT_0045c708 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0045c708 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0045c708 + 0x10)" ( (binary_expression "PTR_DAT_0045c708 + 0x10" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          if (*(code **)(*plVar17 + 0x38) != FUN_00172b10) {\n            cVar9 = (**(code **)(*plVar17 + 0x38))(plVar17,puVar6);\n            if (cVar9 != '\0') goto LAB_0028be18;\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) goto LAB_0028c752;\n            lVar15 = puVar6[2];\n          }\n          if ((*(byte *)(lVar15 + 0x3c) & 0x20) == 0) {\n            if (*(int *)(lVar15 + 0x88) == 0) {\n                    \n              FUN_0018ff20("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }\n            if (*(int *)(lVar15 + 0x88) != 1) {\n              FUN_00187dc0(puVar6);\n            }\n          }\n        }" { (expression_statement "plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);" (assignment_expression "plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18)" identifier = (pointer_expression "*(long **)(PTR_DAT_0045c708 + 0x18)" * (cast_expression "(long **)(PTR_DAT_0045c708 + 0x18)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_0045c708 + 0x18)" ( (binary_expression "PTR_DAT_0045c708 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (plVar17 == (long *)0x0) goto LAB_0028c91f;" if (parenthesized_expression "(plVar17 == (long *)0x0)" ( (binary_expression "plVar17 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0028c91f;" goto statement_identifier ;)) (if_statement "if (*(code **)(*plVar17 + 0x38) != FUN_00172b10) {\n            cVar9 = (**(code **)(*plVar17 + 0x38))(plVar17,puVar6);\n            if (cVar9 != '\0') goto LAB_0028be18;\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) goto LAB_0028c752;\n            lVar15 = puVar6[2];\n          }" if (parenthesized_expression "(*(code **)(*plVar17 + 0x38) != FUN_00172b10)" ( (binary_expression "*(code **)(*plVar17 + 0x38) != FUN_00172b10" (pointer_expression "*(code **)(*plVar17 + 0x38)" * (cast_expression "(code **)(*plVar17 + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar17 + 0x38)" ( (binary_expression "*plVar17 + 0x38" (pointer_expression "*plVar17" * identifier) + number_literal) )))) != identifier) )) (compound_statement "{\n            cVar9 = (**(code **)(*plVar17 + 0x38))(plVar17,puVar6);\n            if (cVar9 != '\0') goto LAB_0028be18;\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) goto LAB_0028c752;\n            lVar15 = puVar6[2];\n          }" { (expression_statement "cVar9 = (**(code **)(*plVar17 + 0x38))(plVar17,puVar6);" (assignment_expression "cVar9 = (**(code **)(*plVar17 + 0x38))(plVar17,puVar6)" identifier = (call_expression "(**(code **)(*plVar17 + 0x38))(plVar17,puVar6)" (parenthesized_expression "(**(code **)(*plVar17 + 0x38))" ( (pointer_expression "**(code **)(*plVar17 + 0x38)" * (pointer_expression "*(code **)(*plVar17 + 0x38)" * (cast_expression "(code **)(*plVar17 + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar17 + 0x38)" ( (binary_expression "*plVar17 + 0x38" (pointer_expression "*plVar17" * identifier) + number_literal) ))))) )) (argument_list "(plVar17,puVar6)" ( identifier , identifier )))) ;) (if_statement "if (cVar9 != '\0') goto LAB_0028be18;" if (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0028be18;" goto statement_identifier ;)) (if_statement "if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) goto LAB_0028c752;" if (parenthesized_expression "((*(byte *)((long)puVar6 + 0x3a) & 7) != 0)" ( (binary_expression "(*(byte *)((long)puVar6 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)((long)puVar6 + 0x3a) & 7)" ( (binary_expression "*(byte *)((long)puVar6 + 0x3a) & 7" (pointer_expression "*(byte *)((long)puVar6 + 0x3a)" * (cast_expression "(byte *)((long)puVar6 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar6 + 0x3a)" ( (binary_expression "(long)puVar6 + 0x3a" (cast_expression "(long)puVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0028c752;" goto statement_identifier ;)) (expression_statement "lVar15 = puVar6[2];" (assignment_expression "lVar15 = puVar6[2]" identifier = (subscript_expression "puVar6[2]" identifier [ number_literal ])) ;) })) (if_statement "if ((*(byte *)(lVar15 + 0x3c) & 0x20) == 0) {\n            if (*(int *)(lVar15 + 0x88) == 0) {\n                    \n              FUN_0018ff20("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }\n            if (*(int *)(lVar15 + 0x88) != 1) {\n              FUN_00187dc0(puVar6);\n            }\n          }" if (parenthesized_expression "((*(byte *)(lVar15 + 0x3c) & 0x20) == 0)" ( (binary_expression "(*(byte *)(lVar15 + 0x3c) & 0x20) == 0" (parenthesized_expression "(*(byte *)(lVar15 + 0x3c) & 0x20)" ( (binary_expression "*(byte *)(lVar15 + 0x3c) & 0x20" (pointer_expression "*(byte *)(lVar15 + 0x3c)" * (cast_expression "(byte *)(lVar15 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x3c)" ( (binary_expression "lVar15 + 0x3c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n            if (*(int *)(lVar15 + 0x88) == 0) {\n                    \n              FUN_0018ff20("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }\n            if (*(int *)(lVar15 + 0x88) != 1) {\n              FUN_00187dc0(puVar6);\n            }\n          }" { (if_statement "if (*(int *)(lVar15 + 0x88) == 0) {\n                    \n              FUN_0018ff20("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }" if (parenthesized_expression "(*(int *)(lVar15 + 0x88) == 0)" ( (binary_expression "*(int *)(lVar15 + 0x88) == 0" (pointer_expression "*(int *)(lVar15 + 0x88)" * (cast_expression "(int *)(lVar15 + 0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x88)" ( (binary_expression "lVar15 + 0x88" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    \n              FUN_0018ff20("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }" { (expression_statement "FUN_0018ff20("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");" (call_expression "FUN_0018ff20("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries")" identifier (argument_list "("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries")" ( (string_literal ""../../gold/dynobj.h"" " string_content ") , number_literal , (string_literal ""has_unknown_needed_entries"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(lVar15 + 0x88) != 1) {\n              FUN_00187dc0(puVar6);\n            }" if (parenthesized_expression "(*(int *)(lVar15 + 0x88) != 1)" ( (binary_expression "*(int *)(lVar15 + 0x88) != 1" (pointer_expression "*(int *)(lVar15 + 0x88)" * (cast_expression "(int *)(lVar15 + 0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x88)" ( (binary_expression "lVar15 + 0x88" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              FUN_00187dc0(puVar6);\n            }" { (expression_statement "FUN_00187dc0(puVar6);" (call_expression "FUN_00187dc0(puVar6)" identifier (argument_list "(puVar6)" ( identifier ))) ;) })) })) })) })) (labeled_statement "LAB_0028be18:\n      uVar12 = *(uint *)((long)puVar6 + 0x1c);" statement_identifier : (expression_statement "uVar12 = *(uint *)((long)puVar6 + 0x1c);" (assignment_expression "uVar12 = *(uint *)((long)puVar6 + 0x1c)" identifier = (pointer_expression "*(uint *)((long)puVar6 + 0x1c)" * (cast_expression "(uint *)((long)puVar6 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar6 + 0x1c)" ( (binary_expression "(long)puVar6 + 0x1c" (cast_expression "(long)puVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;)) (if_statement "if (uVar12 == 0) goto LAB_0028c880;" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0028c880;" goto statement_identifier ;)) (if_statement "if (local_c0 == (code *)0x0) {\n        uVar22 = 0xffffffff;\n        uVar11 = uVar12;\n      }\n      else {\n        uVar22 = *(uint *)(puVar6 + 4);\n        if (uVar22 == 0) goto LAB_0028c898;\n        uVar11 = uVar12 & uVar22;\n      }" if (parenthesized_expression "(local_c0 == (code *)0x0)" ( (binary_expression "local_c0 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar22 = 0xffffffff;\n        uVar11 = uVar12;\n      }" { (expression_statement "uVar22 = 0xffffffff;" (assignment_expression "uVar22 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uVar11 = uVar12;" (assignment_expression "uVar11 = uVar12" identifier = identifier) ;) }) (else_clause "else {\n        uVar22 = *(uint *)(puVar6 + 4);\n        if (uVar22 == 0) goto LAB_0028c898;\n        uVar11 = uVar12 & uVar22;\n      }" else (compound_statement "{\n        uVar22 = *(uint *)(puVar6 + 4);\n        if (uVar22 == 0) goto LAB_0028c898;\n        uVar11 = uVar12 & uVar22;\n      }" { (expression_statement "uVar22 = *(uint *)(puVar6 + 4);" (assignment_expression "uVar22 = *(uint *)(puVar6 + 4)" identifier = (pointer_expression "*(uint *)(puVar6 + 4)" * (cast_expression "(uint *)(puVar6 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 4)" ( (binary_expression "puVar6 + 4" identifier + number_literal) ))))) ;) (if_statement "if (uVar22 == 0) goto LAB_0028c898;" if (parenthesized_expression "(uVar22 == 0)" ( (binary_expression "uVar22 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0028c898;" goto statement_identifier ;)) (expression_statement "uVar11 = uVar12 & uVar22;" (assignment_expression "uVar11 = uVar12 & uVar22" identifier = (binary_expression "uVar12 & uVar22" identifier & identifier)) ;) }))) (expression_statement "pcVar13 = (code *)(ulong)uVar11;" (assignment_expression "pcVar13 = (code *)(ulong)uVar11" identifier = (cast_expression "(code *)(ulong)uVar11" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)uVar11" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) (if_statement "if (uVar11 != 0xffffffff) {\n        local_d0 = (code *)puVar6[8];\n        uVar11 = (uint)(*(byte *)(puVar6 + 7) >> 4);\n        lVar15 = *(long *)(PTR_DAT_0045c708 + 0x10);\n        if (lVar15 == 0) goto LAB_0028c8d7;\n        bVar8 = *(byte *)((long)puVar6 + 0x3a);\n        uVar10 = bVar8 & 7;\n        bVar7 = (byte)uVar10;\n        pcVar14 = local_d0;\n        if ((*(char *)(lVar15 + 0x7739) != '\0') && (uVar11 == 1)) {\n          if (bVar7 == 0) {\n            if ((*(int *)(puVar6 + 3) == 0) && ((*(byte *)((long)puVar6 + 0x3b) >> 5 & 1) != 0)) {\n                    \n                    \n              pcVar13 = (code *)(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return pcVar13;\n            }\n                    \n                    \n            pcVar13 = (code *)(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();\n            return pcVar13;\n          }\n          if (bVar7 == 4) {\n                    \n                    \n            pcVar13 = (code *)(*(code *)(&DAT_003a0b64 + lVar20))();\n            return pcVar13;\n          }\n          if (4 < bVar7) goto LAB_0028c8b0;\n          pcVar13 = (code *)((long)&switchD_0028c5a7::switchdataD_003a0b78 +\n                            (long)(int)(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10]);\n                    \n          switch(uVar10) {\n          case 0:\nswitchD_0028c5a7_caseD_0:\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xaa,"shndx");\n          case 1:\n            uVar11 = 1;\n            goto LAB_0028c1cb;\n          case 2:\n            uVar11 = 1;\n            goto LAB_0028c143;\n          case 3:\n            uVar11 = 1;\n            uVar10 = 0xfff1;\n            break;\n          case 4:\n                    \n            uVar11 = 1;\n            uVar10 = 0;\n          }\n          goto LAB_0028bf30;\n        }\n        if ((uVar11 == 10) && (*(char *)(lVar15 + 0x2999) == '\0')) {\n          uVar11 = 1;\n        }\n        if (4 < bVar7) {\nLAB_0028c8b0:\n                    \n          FUN_0018ff20("../../gold/symtab.cc",0xc9b,"sized_write_globals");\n        }\n        pcVar13 = (code *)((long)&switchD_0028bebe::switchdataD_003a0b3c +\n                          (long)(int)(&switchD_0028bebe::switchdataD_003a0b3c)[uVar10]);\n        switch(uVar10) {\n        case 0:\n          if ((bVar8 & 7) != 0) goto switchD_0028c5a7_caseD_0;\n          uVar10 = *(uint *)(puVar6 + 3);\n          bVar8 = *(byte *)((long)puVar6 + 0x3b) >> 5;\n          if (((bVar8 & 1) != 1) && (uVar10 != 0xfff1)) {\n            cVar9 = FUN_00284a00(uVar10);\n            if (cVar9 == '\0') {\n              FUN_00285b30(&local_58,*puVar6);\n              uVar25 = CONCAT44(uStack_54,local_58);\n              uVar16 = gettext("%s: unsupported symbol section 0x%x");\n                    \n              FUN_001878b0(uVar16,uVar25,uVar10);\n              pcVar13 = (code *)auStack_48;\n              if ((code *)CONCAT44(uStack_54,local_58) != pcVar13) {\n                pcVar13 = (code *)FUN_002f1e60();\n              }\n              break;\n            }\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) {\nLAB_0028c752:\n                    \n              FUN_0018ff20("../../gold/symtab.h",0xa1,"object");\n            }\n          }\n          plVar17 = (long *)puVar6[2];\n          if ((*(byte *)((long)plVar17 + 0x3c) & 1) == 0) {\n            pcVar13 = (code *)(**(code **)(*plVar17 + 0x28))(plVar17);\n            if ((pcVar13 != (code *)0x0) || (uVar10 == 0)) goto switchD_0028bebe_caseD_4;\n            if (((bVar8 & 1) != 0) ||\n               ((uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')\n                ))) {\n              uVar19 = (ulong)uVar10;\n              if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;\n                plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n              }\n              else {\n                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);\n              }\n              cVar9 = FUN_00284da0(param_1,plVar17,uVar19);\n              if (cVar9 == '\0') {\n                if (plVar18 == (long *)0x0) goto LAB_0028c9cd;\n              }\n              else {\n                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);\n                plVar17 = auVar26._0_8_;\n                if (plVar17 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }\n                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    \n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }\n                if (plVar18 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }\n              }\n              if (*(code **)(*plVar18 + 0x58) == FUN_0019a160) {\n                uVar10 = *(uint *)((long)plVar18 + 0x7c);\n                if (uVar10 == 0xffffffff) goto LAB_0028ca38;\n              }\n              else {\n                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);\n              }\n              if (0xfeff < uVar10) {\n                if (uVar12 != 0xffffffff) {\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }\n                if (uVar22 == 0xffffffff) {\n                  uVar10 = 0xffff;\n                }\n                else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }\n              }\n              pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n              if (pcVar13 == (code *)0x0) goto LAB_0028c8d7;\n              if (pcVar13[0x5051] != (code)0x0) {\n                if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;\n                pcVar13 = local_d0 + -plVar18[1];\n                local_d0 = pcVar13;\n              }\n            }\n          }\n          else {\n            if ((*(byte *)((long)puVar6 + 0x3b) & 2) != 0) {\n              pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6);\n            }\n            uVar10 = 0;\n            uVar11 = *(byte *)((long)puVar6 + 0x3c) >> 1 & 1;\n            pcVar13 = (code *)(ulong)uVar11;\n            uVar11 = 2 - ((char)uVar11 == '\0');\n          }\n          break;\n        case 1:\nLAB_0028c1cb:\n          if ((bVar8 & 7) != 1) {\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xb5,"output_data");\n          }\n          plVar17 = (long *)puVar6[2];\n          uVar10 = (**(code **)(*plVar17 + 0x58))(plVar17);\n          if (0xfeff < uVar10) {\n            if (uVar12 != 0xffffffff) {\n              local_58 = uVar12;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_4 + 0x38,&local_58);\n            }\n            if (uVar22 == 0xffffffff) {\n              uVar10 = 0xffff;\n            }\n            else {\n              local_58 = uVar22;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_5 + 0x38,&local_58);\n              uVar10 = 0xffff;\n            }\n          }\n          pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n          if (pcVar13 == (code *)0x0) {\nLAB_0028c8d7:\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if (pcVar13[0x5051] != (code)0x0) {\n            lVar15 = (**(code **)(*plVar17 + 0x48))(plVar17);\n            if (lVar15 == 0) {\n                    \n              FUN_0018ff20("../../gold/symtab.cc",0xc81,"sized_write_globals");\n            }\n            if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    \n              FUN_0018ff20("../../gold/output.h",0xc5,"address");\n            }\n            pcVar13 = *(code **)(lVar15 + 8);\n            local_d0 = local_d0 + -(long)pcVar13;\n          }\n          break;\n        case 2:\n          uVar10 = bVar8 & 7;\nLAB_0028c143:\n          if ((char)uVar10 != '\x02') {\n                    \n            FUN_0018ff20("../../gold/symtab.h",200,"output_segment");\n          }\n          pcVar13 = (code *)FUN_0020de20(puVar6[2]);\n          if (pcVar13 == (code *)0x0) goto switchD_0028bebe_caseD_3;\n          if (*(code **)(*(long *)pcVar13 + 0x58) == FUN_0019a160) {\n            uVar10 = *(uint *)(pcVar13 + 0x7c);\n            pcVar13 = (code *)(ulong)uVar10;\n            if (uVar10 == 0xffffffff) {\nLAB_0028ca38:\n                    \n              FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx");\n            }\n          }\n          else {\n            pcVar13 = (code *)(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13);\n            uVar10 = (uint)pcVar13;\n          }\n          break;\n        case 3:\nswitchD_0028bebe_caseD_3:\n          uVar10 = 0xfff1;\n          break;\n        case 4:\nswitchD_0028bebe_caseD_4:\n          uVar10 = 0;\n        }\nLAB_0028bf30:\n        if (uVar12 != 0xffffffff) {\n          uVar12 = uVar12 - iVar1;\n          if (uVar2 <= uVar12) {\n                    \n            FUN_0018ff20("../../gold/symtab.cc",0xca1,"sized_write_globals");\n          }\n          pcVar13 = (code *)FUN_00289ee0(param_1,puVar6,local_d0,uVar10,uVar11,param_2,\n                                         (ulong)(uVar12 * 0x18) + local_98);\n        }\n        if (uVar22 != 0xffffffff) {\n          uVar22 = uVar22 - iVar3;\n          if (uVar4 <= uVar22) {\n                    \n            FUN_0018ff20("../../gold/symtab.cc",0xcaa,"sized_write_globals");\n          }\n          FUN_00289ee0(param_1,puVar6,pcVar14,uVar10,uVar11,param_3);\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          pcVar13 = *(code **)(*plVar17 + 0x138);\n          if (pcVar13 != FUN_00172ba0) {\n            pcVar13 = (code *)(*pcVar13)(plVar17,puVar6,local_c0 + uVar22 * 0x18);\n          }\n        }\n      }" if (parenthesized_expression "(uVar11 != 0xffffffff)" ( (binary_expression "uVar11 != 0xffffffff" identifier != number_literal) )) (compound_statement "{\n        local_d0 = (code *)puVar6[8];\n        uVar11 = (uint)(*(byte *)(puVar6 + 7) >> 4);\n        lVar15 = *(long *)(PTR_DAT_0045c708 + 0x10);\n        if (lVar15 == 0) goto LAB_0028c8d7;\n        bVar8 = *(byte *)((long)puVar6 + 0x3a);\n        uVar10 = bVar8 & 7;\n        bVar7 = (byte)uVar10;\n        pcVar14 = local_d0;\n        if ((*(char *)(lVar15 + 0x7739) != '\0') && (uVar11 == 1)) {\n          if (bVar7 == 0) {\n            if ((*(int *)(puVar6 + 3) == 0) && ((*(byte *)((long)puVar6 + 0x3b) >> 5 & 1) != 0)) {\n                    \n                    \n              pcVar13 = (code *)(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return pcVar13;\n            }\n                    \n                    \n            pcVar13 = (code *)(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();\n            return pcVar13;\n          }\n          if (bVar7 == 4) {\n                    \n                    \n            pcVar13 = (code *)(*(code *)(&DAT_003a0b64 + lVar20))();\n            return pcVar13;\n          }\n          if (4 < bVar7) goto LAB_0028c8b0;\n          pcVar13 = (code *)((long)&switchD_0028c5a7::switchdataD_003a0b78 +\n                            (long)(int)(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10]);\n                    \n          switch(uVar10) {\n          case 0:\nswitchD_0028c5a7_caseD_0:\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xaa,"shndx");\n          case 1:\n            uVar11 = 1;\n            goto LAB_0028c1cb;\n          case 2:\n            uVar11 = 1;\n            goto LAB_0028c143;\n          case 3:\n            uVar11 = 1;\n            uVar10 = 0xfff1;\n            break;\n          case 4:\n                    \n            uVar11 = 1;\n            uVar10 = 0;\n          }\n          goto LAB_0028bf30;\n        }\n        if ((uVar11 == 10) && (*(char *)(lVar15 + 0x2999) == '\0')) {\n          uVar11 = 1;\n        }\n        if (4 < bVar7) {\nLAB_0028c8b0:\n                    \n          FUN_0018ff20("../../gold/symtab.cc",0xc9b,"sized_write_globals");\n        }\n        pcVar13 = (code *)((long)&switchD_0028bebe::switchdataD_003a0b3c +\n                          (long)(int)(&switchD_0028bebe::switchdataD_003a0b3c)[uVar10]);\n        switch(uVar10) {\n        case 0:\n          if ((bVar8 & 7) != 0) goto switchD_0028c5a7_caseD_0;\n          uVar10 = *(uint *)(puVar6 + 3);\n          bVar8 = *(byte *)((long)puVar6 + 0x3b) >> 5;\n          if (((bVar8 & 1) != 1) && (uVar10 != 0xfff1)) {\n            cVar9 = FUN_00284a00(uVar10);\n            if (cVar9 == '\0') {\n              FUN_00285b30(&local_58,*puVar6);\n              uVar25 = CONCAT44(uStack_54,local_58);\n              uVar16 = gettext("%s: unsupported symbol section 0x%x");\n                    \n              FUN_001878b0(uVar16,uVar25,uVar10);\n              pcVar13 = (code *)auStack_48;\n              if ((code *)CONCAT44(uStack_54,local_58) != pcVar13) {\n                pcVar13 = (code *)FUN_002f1e60();\n              }\n              break;\n            }\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) {\nLAB_0028c752:\n                    \n              FUN_0018ff20("../../gold/symtab.h",0xa1,"object");\n            }\n          }\n          plVar17 = (long *)puVar6[2];\n          if ((*(byte *)((long)plVar17 + 0x3c) & 1) == 0) {\n            pcVar13 = (code *)(**(code **)(*plVar17 + 0x28))(plVar17);\n            if ((pcVar13 != (code *)0x0) || (uVar10 == 0)) goto switchD_0028bebe_caseD_4;\n            if (((bVar8 & 1) != 0) ||\n               ((uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')\n                ))) {\n              uVar19 = (ulong)uVar10;\n              if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;\n                plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n              }\n              else {\n                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);\n              }\n              cVar9 = FUN_00284da0(param_1,plVar17,uVar19);\n              if (cVar9 == '\0') {\n                if (plVar18 == (long *)0x0) goto LAB_0028c9cd;\n              }\n              else {\n                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);\n                plVar17 = auVar26._0_8_;\n                if (plVar17 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }\n                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    \n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }\n                if (plVar18 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }\n              }\n              if (*(code **)(*plVar18 + 0x58) == FUN_0019a160) {\n                uVar10 = *(uint *)((long)plVar18 + 0x7c);\n                if (uVar10 == 0xffffffff) goto LAB_0028ca38;\n              }\n              else {\n                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);\n              }\n              if (0xfeff < uVar10) {\n                if (uVar12 != 0xffffffff) {\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }\n                if (uVar22 == 0xffffffff) {\n                  uVar10 = 0xffff;\n                }\n                else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }\n              }\n              pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n              if (pcVar13 == (code *)0x0) goto LAB_0028c8d7;\n              if (pcVar13[0x5051] != (code)0x0) {\n                if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;\n                pcVar13 = local_d0 + -plVar18[1];\n                local_d0 = pcVar13;\n              }\n            }\n          }\n          else {\n            if ((*(byte *)((long)puVar6 + 0x3b) & 2) != 0) {\n              pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6);\n            }\n            uVar10 = 0;\n            uVar11 = *(byte *)((long)puVar6 + 0x3c) >> 1 & 1;\n            pcVar13 = (code *)(ulong)uVar11;\n            uVar11 = 2 - ((char)uVar11 == '\0');\n          }\n          break;\n        case 1:\nLAB_0028c1cb:\n          if ((bVar8 & 7) != 1) {\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xb5,"output_data");\n          }\n          plVar17 = (long *)puVar6[2];\n          uVar10 = (**(code **)(*plVar17 + 0x58))(plVar17);\n          if (0xfeff < uVar10) {\n            if (uVar12 != 0xffffffff) {\n              local_58 = uVar12;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_4 + 0x38,&local_58);\n            }\n            if (uVar22 == 0xffffffff) {\n              uVar10 = 0xffff;\n            }\n            else {\n              local_58 = uVar22;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_5 + 0x38,&local_58);\n              uVar10 = 0xffff;\n            }\n          }\n          pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n          if (pcVar13 == (code *)0x0) {\nLAB_0028c8d7:\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if (pcVar13[0x5051] != (code)0x0) {\n            lVar15 = (**(code **)(*plVar17 + 0x48))(plVar17);\n            if (lVar15 == 0) {\n                    \n              FUN_0018ff20("../../gold/symtab.cc",0xc81,"sized_write_globals");\n            }\n            if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    \n              FUN_0018ff20("../../gold/output.h",0xc5,"address");\n            }\n            pcVar13 = *(code **)(lVar15 + 8);\n            local_d0 = local_d0 + -(long)pcVar13;\n          }\n          break;\n        case 2:\n          uVar10 = bVar8 & 7;\nLAB_0028c143:\n          if ((char)uVar10 != '\x02') {\n                    \n            FUN_0018ff20("../../gold/symtab.h",200,"output_segment");\n          }\n          pcVar13 = (code *)FUN_0020de20(puVar6[2]);\n          if (pcVar13 == (code *)0x0) goto switchD_0028bebe_caseD_3;\n          if (*(code **)(*(long *)pcVar13 + 0x58) == FUN_0019a160) {\n            uVar10 = *(uint *)(pcVar13 + 0x7c);\n            pcVar13 = (code *)(ulong)uVar10;\n            if (uVar10 == 0xffffffff) {\nLAB_0028ca38:\n                    \n              FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx");\n            }\n          }\n          else {\n            pcVar13 = (code *)(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13);\n            uVar10 = (uint)pcVar13;\n          }\n          break;\n        case 3:\nswitchD_0028bebe_caseD_3:\n          uVar10 = 0xfff1;\n          break;\n        case 4:\nswitchD_0028bebe_caseD_4:\n          uVar10 = 0;\n        }\nLAB_0028bf30:\n        if (uVar12 != 0xffffffff) {\n          uVar12 = uVar12 - iVar1;\n          if (uVar2 <= uVar12) {\n                    \n            FUN_0018ff20("../../gold/symtab.cc",0xca1,"sized_write_globals");\n          }\n          pcVar13 = (code *)FUN_00289ee0(param_1,puVar6,local_d0,uVar10,uVar11,param_2,\n                                         (ulong)(uVar12 * 0x18) + local_98);\n        }\n        if (uVar22 != 0xffffffff) {\n          uVar22 = uVar22 - iVar3;\n          if (uVar4 <= uVar22) {\n                    \n            FUN_0018ff20("../../gold/symtab.cc",0xcaa,"sized_write_globals");\n          }\n          FUN_00289ee0(param_1,puVar6,pcVar14,uVar10,uVar11,param_3);\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          pcVar13 = *(code **)(*plVar17 + 0x138);\n          if (pcVar13 != FUN_00172ba0) {\n            pcVar13 = (code *)(*pcVar13)(plVar17,puVar6,local_c0 + uVar22 * 0x18);\n          }\n        }\n      }" { (expression_statement "local_d0 = (code *)puVar6[8];" (assignment_expression "local_d0 = (code *)puVar6[8]" identifier = (cast_expression "(code *)puVar6[8]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[8]" identifier [ number_literal ]))) ;) (expression_statement "uVar11 = (uint)(*(byte *)(puVar6 + 7) >> 4);" (assignment_expression "uVar11 = (uint)(*(byte *)(puVar6 + 7) >> 4)" identifier = (call_expression "(uint)(*(byte *)(puVar6 + 7) >> 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(byte *)(puVar6 + 7) >> 4)" ( (binary_expression "*(byte *)(puVar6 + 7) >> 4" (pointer_expression "*(byte *)(puVar6 + 7)" * (cast_expression "(byte *)(puVar6 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 7)" ( (binary_expression "puVar6 + 7" identifier + number_literal) )))) >> number_literal) )))) ;) (expression_statement "lVar15 = *(long *)(PTR_DAT_0045c708 + 0x10);" (assignment_expression "lVar15 = *(long *)(PTR_DAT_0045c708 + 0x10)" identifier = (pointer_expression "*(long *)(PTR_DAT_0045c708 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0045c708 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0045c708 + 0x10)" ( (binary_expression "PTR_DAT_0045c708 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (lVar15 == 0) goto LAB_0028c8d7;" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0028c8d7;" goto statement_identifier ;)) (expression_statement "bVar8 = *(byte *)((long)puVar6 + 0x3a);" (assignment_expression "bVar8 = *(byte *)((long)puVar6 + 0x3a)" identifier = (pointer_expression "*(byte *)((long)puVar6 + 0x3a)" * (cast_expression "(byte *)((long)puVar6 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar6 + 0x3a)" ( (binary_expression "(long)puVar6 + 0x3a" (cast_expression "(long)puVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar10 = bVar8 & 7;" (assignment_expression "uVar10 = bVar8 & 7" identifier = (binary_expression "bVar8 & 7" identifier & number_literal)) ;) (expression_statement "bVar7 = (byte)uVar10;" (assignment_expression "bVar7 = (byte)uVar10" identifier = (cast_expression "(byte)uVar10" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pcVar14 = local_d0;" (assignment_expression "pcVar14 = local_d0" identifier = identifier) ;) (if_statement "if ((*(char *)(lVar15 + 0x7739) != '\0') && (uVar11 == 1)) {\n          if (bVar7 == 0) {\n            if ((*(int *)(puVar6 + 3) == 0) && ((*(byte *)((long)puVar6 + 0x3b) >> 5 & 1) != 0)) {\n                    \n                    \n              pcVar13 = (code *)(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return pcVar13;\n            }\n                    \n                    \n            pcVar13 = (code *)(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();\n            return pcVar13;\n          }\n          if (bVar7 == 4) {\n                    \n                    \n            pcVar13 = (code *)(*(code *)(&DAT_003a0b64 + lVar20))();\n            return pcVar13;\n          }\n          if (4 < bVar7) goto LAB_0028c8b0;\n          pcVar13 = (code *)((long)&switchD_0028c5a7::switchdataD_003a0b78 +\n                            (long)(int)(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10]);\n                    \n          switch(uVar10) {\n          case 0:\nswitchD_0028c5a7_caseD_0:\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xaa,"shndx");\n          case 1:\n            uVar11 = 1;\n            goto LAB_0028c1cb;\n          case 2:\n            uVar11 = 1;\n            goto LAB_0028c143;\n          case 3:\n            uVar11 = 1;\n            uVar10 = 0xfff1;\n            break;\n          case 4:\n                    \n            uVar11 = 1;\n            uVar10 = 0;\n          }\n          goto LAB_0028bf30;\n        }" if (parenthesized_expression "((*(char *)(lVar15 + 0x7739) != '\0') && (uVar11 == 1))" ( (binary_expression "(*(char *)(lVar15 + 0x7739) != '\0') && (uVar11 == 1)" (parenthesized_expression "(*(char *)(lVar15 + 0x7739) != '\0')" ( (binary_expression "*(char *)(lVar15 + 0x7739) != '\0'" (pointer_expression "*(char *)(lVar15 + 0x7739)" * (cast_expression "(char *)(lVar15 + 0x7739)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x7739)" ( (binary_expression "lVar15 + 0x7739" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(uVar11 == 1)" ( (binary_expression "uVar11 == 1" identifier == number_literal) ))) )) (compound_statement "{\n          if (bVar7 == 0) {\n            if ((*(int *)(puVar6 + 3) == 0) && ((*(byte *)((long)puVar6 + 0x3b) >> 5 & 1) != 0)) {\n                    \n                    \n              pcVar13 = (code *)(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return pcVar13;\n            }\n                    \n                    \n            pcVar13 = (code *)(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();\n            return pcVar13;\n          }\n          if (bVar7 == 4) {\n                    \n                    \n            pcVar13 = (code *)(*(code *)(&DAT_003a0b64 + lVar20))();\n            return pcVar13;\n          }\n          if (4 < bVar7) goto LAB_0028c8b0;\n          pcVar13 = (code *)((long)&switchD_0028c5a7::switchdataD_003a0b78 +\n                            (long)(int)(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10]);\n                    \n          switch(uVar10) {\n          case 0:\nswitchD_0028c5a7_caseD_0:\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xaa,"shndx");\n          case 1:\n            uVar11 = 1;\n            goto LAB_0028c1cb;\n          case 2:\n            uVar11 = 1;\n            goto LAB_0028c143;\n          case 3:\n            uVar11 = 1;\n            uVar10 = 0xfff1;\n            break;\n          case 4:\n                    \n            uVar11 = 1;\n            uVar10 = 0;\n          }\n          goto LAB_0028bf30;\n        }" { (if_statement "if (bVar7 == 0) {\n            if ((*(int *)(puVar6 + 3) == 0) && ((*(byte *)((long)puVar6 + 0x3b) >> 5 & 1) != 0)) {\n                    \n                    \n              pcVar13 = (code *)(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return pcVar13;\n            }\n                    \n                    \n            pcVar13 = (code *)(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();\n            return pcVar13;\n          }" if (parenthesized_expression "(bVar7 == 0)" ( (binary_expression "bVar7 == 0" identifier == number_literal) )) (compound_statement "{\n            if ((*(int *)(puVar6 + 3) == 0) && ((*(byte *)((long)puVar6 + 0x3b) >> 5 & 1) != 0)) {\n                    \n                    \n              pcVar13 = (code *)(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return pcVar13;\n            }\n                    \n                    \n            pcVar13 = (code *)(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();\n            return pcVar13;\n          }" { (if_statement "if ((*(int *)(puVar6 + 3) == 0) && ((*(byte *)((long)puVar6 + 0x3b) >> 5 & 1) != 0)) {\n                    \n                    \n              pcVar13 = (code *)(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return pcVar13;\n            }" if (parenthesized_expression "((*(int *)(puVar6 + 3) == 0) && ((*(byte *)((long)puVar6 + 0x3b) >> 5 & 1) != 0))" ( (binary_expression "(*(int *)(puVar6 + 3) == 0) && ((*(byte *)((long)puVar6 + 0x3b) >> 5 & 1) != 0)" (parenthesized_expression "(*(int *)(puVar6 + 3) == 0)" ( (binary_expression "*(int *)(puVar6 + 3) == 0" (pointer_expression "*(int *)(puVar6 + 3)" * (cast_expression "(int *)(puVar6 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 3)" ( (binary_expression "puVar6 + 3" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "((*(byte *)((long)puVar6 + 0x3b) >> 5 & 1) != 0)" ( (binary_expression "(*(byte *)((long)puVar6 + 0x3b) >> 5 & 1) != 0" (parenthesized_expression "(*(byte *)((long)puVar6 + 0x3b) >> 5 & 1)" ( (binary_expression "*(byte *)((long)puVar6 + 0x3b) >> 5 & 1" (binary_expression "*(byte *)((long)puVar6 + 0x3b) >> 5" (pointer_expression "*(byte *)((long)puVar6 + 0x3b)" * (cast_expression "(byte *)((long)puVar6 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar6 + 0x3b)" ( (binary_expression "(long)puVar6 + 0x3b" (cast_expression "(long)puVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) >> number_literal) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n                    \n                    \n              pcVar13 = (code *)(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return pcVar13;\n            }" { (expression_statement "pcVar13 = (code *)(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();" (assignment_expression "pcVar13 = (code *)(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))()" identifier = (cast_expression "(code *)(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))()" (parenthesized_expression "(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))" ( (pointer_expression "*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c)" * (cast_expression "(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&DAT_003a0b8c + (long)DAT_003a0b8c)" ( (binary_expression "(long)&DAT_003a0b8c + (long)DAT_003a0b8c" (cast_expression "(long)&DAT_003a0b8c" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&DAT_003a0b8c" & identifier)) + (cast_expression "(long)DAT_003a0b8c" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) )) (argument_list "()" ( ))))) ;) (return_statement "return pcVar13;" return identifier ;) })) (expression_statement "pcVar13 = (code *)(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();" (assignment_expression "pcVar13 = (code *)(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))()" identifier = (cast_expression "(code *)(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))()" (parenthesized_expression "(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))" ( (pointer_expression "*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50)" * (cast_expression "(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&DAT_003a0b50 + (long)DAT_003a0b50)" ( (binary_expression "(long)&DAT_003a0b50 + (long)DAT_003a0b50" (cast_expression "(long)&DAT_003a0b50" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&DAT_003a0b50" & identifier)) + (cast_expression "(long)DAT_003a0b50" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) )) (argument_list "()" ( ))))) ;) (return_statement "return pcVar13;" return identifier ;) })) (if_statement "if (bVar7 == 4) {\n                    \n                    \n            pcVar13 = (code *)(*(code *)(&DAT_003a0b64 + lVar20))();\n            return pcVar13;\n          }" if (parenthesized_expression "(bVar7 == 4)" ( (binary_expression "bVar7 == 4" identifier == number_literal) )) (compound_statement "{\n                    \n                    \n            pcVar13 = (code *)(*(code *)(&DAT_003a0b64 + lVar20))();\n            return pcVar13;\n          }" { (expression_statement "pcVar13 = (code *)(*(code *)(&DAT_003a0b64 + lVar20))();" (assignment_expression "pcVar13 = (code *)(*(code *)(&DAT_003a0b64 + lVar20))()" identifier = (cast_expression "(code *)(*(code *)(&DAT_003a0b64 + lVar20))()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(&DAT_003a0b64 + lVar20))()" (parenthesized_expression "(*(code *)(&DAT_003a0b64 + lVar20))" ( (pointer_expression "*(code *)(&DAT_003a0b64 + lVar20)" * (cast_expression "(code *)(&DAT_003a0b64 + lVar20)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_003a0b64 + lVar20)" ( (binary_expression "&DAT_003a0b64 + lVar20" (pointer_expression "&DAT_003a0b64" & identifier) + identifier) )))) )) (argument_list "()" ( ))))) ;) (return_statement "return pcVar13;" return identifier ;) })) (if_statement "if (4 < bVar7) goto LAB_0028c8b0;" if (parenthesized_expression "(4 < bVar7)" ( (binary_expression "4 < bVar7" number_literal < identifier) )) (goto_statement "goto LAB_0028c8b0;" goto statement_identifier ;)) (expression_statement "pcVar13 = (code *)((long)&switchD_0028c5a7::switchdataD_003a0b78 +\n                            (long)(int)(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10]);" (assignment_expression "pcVar13 = (code *)((long)&switchD_0028c5a7::switchdataD_003a0b78 +\n                            (long)(int)(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10])" identifier = (cast_expression "(code *)((long)&switchD_0028c5a7::switchdataD_003a0b78 +\n                            (long)(int)(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10])" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&switchD_0028c5a7::switchdataD_003a0b78 +\n                            (long)(int)(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10])" ( (binary_expression "(long)&switchD_0028c5a7::switchdataD_003a0b78 +\n                            (long)(int)(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10]" (cast_expression "(long)&switchD_0028c5a7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&switchD_0028c5a7" & identifier)) (ERROR "::switchdataD_003a0b78" : : identifier) + (cast_expression "(long)(int)(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10]" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10]" (parenthesized_expression "(&switchD_0028c5a7::switchdataD_003a0b78)" ( (ERROR "&switchD_0028c5a7::" (pointer_expression "&switchD_0028c5a7" & identifier) : :) identifier )) [ identifier ])))) )))) ;) (switch_statement "switch(uVar10) {\n          case 0:\nswitchD_0028c5a7_caseD_0:\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xaa,"shndx");\n          case 1:\n            uVar11 = 1;\n            goto LAB_0028c1cb;\n          case 2:\n            uVar11 = 1;\n            goto LAB_0028c143;\n          case 3:\n            uVar11 = 1;\n            uVar10 = 0xfff1;\n            break;\n          case 4:\n                    \n            uVar11 = 1;\n            uVar10 = 0;\n          }" switch (parenthesized_expression "(uVar10)" ( identifier )) (compound_statement "{\n          case 0:\nswitchD_0028c5a7_caseD_0:\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xaa,"shndx");\n          case 1:\n            uVar11 = 1;\n            goto LAB_0028c1cb;\n          case 2:\n            uVar11 = 1;\n            goto LAB_0028c143;\n          case 3:\n            uVar11 = 1;\n            uVar10 = 0xfff1;\n            break;\n          case 4:\n                    \n            uVar11 = 1;\n            uVar10 = 0;\n          }" { (case_statement "case 0:\nswitchD_0028c5a7_caseD_0:\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xaa,"shndx");" case number_literal : (labeled_statement "switchD_0028c5a7_caseD_0:\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xaa,"shndx");" statement_identifier : (expression_statement "FUN_0018ff20("../../gold/symtab.h",0xaa,"shndx");" (call_expression "FUN_0018ff20("../../gold/symtab.h",0xaa,"shndx")" identifier (argument_list "("../../gold/symtab.h",0xaa,"shndx")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""shndx"" " string_content ") ))) ;))) (case_statement "case 1:\n            uVar11 = 1;\n            goto LAB_0028c1cb;" case number_literal : (expression_statement "uVar11 = 1;" (assignment_expression "uVar11 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0028c1cb;" goto statement_identifier ;)) (case_statement "case 2:\n            uVar11 = 1;\n            goto LAB_0028c143;" case number_literal : (expression_statement "uVar11 = 1;" (assignment_expression "uVar11 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0028c143;" goto statement_identifier ;)) (case_statement "case 3:\n            uVar11 = 1;\n            uVar10 = 0xfff1;\n            break;" case number_literal : (expression_statement "uVar11 = 1;" (assignment_expression "uVar11 = 1" identifier = number_literal) ;) (expression_statement "uVar10 = 0xfff1;" (assignment_expression "uVar10 = 0xfff1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n                    \n            uVar11 = 1;\n            uVar10 = 0;" case number_literal : (expression_statement "uVar11 = 1;" (assignment_expression "uVar11 = 1" identifier = number_literal) ;) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;)) })) (goto_statement "goto LAB_0028bf30;" goto statement_identifier ;) })) (if_statement "if ((uVar11 == 10) && (*(char *)(lVar15 + 0x2999) == '\0')) {\n          uVar11 = 1;\n        }" if (parenthesized_expression "((uVar11 == 10) && (*(char *)(lVar15 + 0x2999) == '\0'))" ( (binary_expression "(uVar11 == 10) && (*(char *)(lVar15 + 0x2999) == '\0')" (parenthesized_expression "(uVar11 == 10)" ( (binary_expression "uVar11 == 10" identifier == number_literal) )) && (parenthesized_expression "(*(char *)(lVar15 + 0x2999) == '\0')" ( (binary_expression "*(char *)(lVar15 + 0x2999) == '\0'" (pointer_expression "*(char *)(lVar15 + 0x2999)" * (cast_expression "(char *)(lVar15 + 0x2999)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x2999)" ( (binary_expression "lVar15 + 0x2999" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n          uVar11 = 1;\n        }" { (expression_statement "uVar11 = 1;" (assignment_expression "uVar11 = 1" identifier = number_literal) ;) })) (if_statement "if (4 < bVar7) {\nLAB_0028c8b0:\n                    \n          FUN_0018ff20("../../gold/symtab.cc",0xc9b,"sized_write_globals");\n        }" if (parenthesized_expression "(4 < bVar7)" ( (binary_expression "4 < bVar7" number_literal < identifier) )) (compound_statement "{\nLAB_0028c8b0:\n                    \n          FUN_0018ff20("../../gold/symtab.cc",0xc9b,"sized_write_globals");\n        }" { (labeled_statement "LAB_0028c8b0:\n                    \n          FUN_0018ff20("../../gold/symtab.cc",0xc9b,"sized_write_globals");" statement_identifier : (expression_statement "FUN_0018ff20("../../gold/symtab.cc",0xc9b,"sized_write_globals");" (call_expression "FUN_0018ff20("../../gold/symtab.cc",0xc9b,"sized_write_globals")" identifier (argument_list "("../../gold/symtab.cc",0xc9b,"sized_write_globals")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""sized_write_globals"" " string_content ") ))) ;)) })) (expression_statement "pcVar13 = (code *)((long)&switchD_0028bebe::switchdataD_003a0b3c +\n                          (long)(int)(&switchD_0028bebe::switchdataD_003a0b3c)[uVar10]);" (assignment_expression "pcVar13 = (code *)((long)&switchD_0028bebe::switchdataD_003a0b3c +\n                          (long)(int)(&switchD_0028bebe::switchdataD_003a0b3c)[uVar10])" identifier = (cast_expression "(code *)((long)&switchD_0028bebe::switchdataD_003a0b3c +\n                          (long)(int)(&switchD_0028bebe::switchdataD_003a0b3c)[uVar10])" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&switchD_0028bebe::switchdataD_003a0b3c +\n                          (long)(int)(&switchD_0028bebe::switchdataD_003a0b3c)[uVar10])" ( (binary_expression "(long)&switchD_0028bebe::switchdataD_003a0b3c +\n                          (long)(int)(&switchD_0028bebe::switchdataD_003a0b3c)[uVar10]" (cast_expression "(long)&switchD_0028bebe" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&switchD_0028bebe" & identifier)) (ERROR "::switchdataD_003a0b3c" : : identifier) + (cast_expression "(long)(int)(&switchD_0028bebe::switchdataD_003a0b3c)[uVar10]" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)(&switchD_0028bebe::switchdataD_003a0b3c)[uVar10]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "(&switchD_0028bebe::switchdataD_003a0b3c)[uVar10]" (parenthesized_expression "(&switchD_0028bebe::switchdataD_003a0b3c)" ( (ERROR "&switchD_0028bebe::" (pointer_expression "&switchD_0028bebe" & identifier) : :) identifier )) [ identifier ])))) )))) ;) (switch_statement "switch(uVar10) {\n        case 0:\n          if ((bVar8 & 7) != 0) goto switchD_0028c5a7_caseD_0;\n          uVar10 = *(uint *)(puVar6 + 3);\n          bVar8 = *(byte *)((long)puVar6 + 0x3b) >> 5;\n          if (((bVar8 & 1) != 1) && (uVar10 != 0xfff1)) {\n            cVar9 = FUN_00284a00(uVar10);\n            if (cVar9 == '\0') {\n              FUN_00285b30(&local_58,*puVar6);\n              uVar25 = CONCAT44(uStack_54,local_58);\n              uVar16 = gettext("%s: unsupported symbol section 0x%x");\n                    \n              FUN_001878b0(uVar16,uVar25,uVar10);\n              pcVar13 = (code *)auStack_48;\n              if ((code *)CONCAT44(uStack_54,local_58) != pcVar13) {\n                pcVar13 = (code *)FUN_002f1e60();\n              }\n              break;\n            }\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) {\nLAB_0028c752:\n                    \n              FUN_0018ff20("../../gold/symtab.h",0xa1,"object");\n            }\n          }\n          plVar17 = (long *)puVar6[2];\n          if ((*(byte *)((long)plVar17 + 0x3c) & 1) == 0) {\n            pcVar13 = (code *)(**(code **)(*plVar17 + 0x28))(plVar17);\n            if ((pcVar13 != (code *)0x0) || (uVar10 == 0)) goto switchD_0028bebe_caseD_4;\n            if (((bVar8 & 1) != 0) ||\n               ((uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')\n                ))) {\n              uVar19 = (ulong)uVar10;\n              if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;\n                plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n              }\n              else {\n                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);\n              }\n              cVar9 = FUN_00284da0(param_1,plVar17,uVar19);\n              if (cVar9 == '\0') {\n                if (plVar18 == (long *)0x0) goto LAB_0028c9cd;\n              }\n              else {\n                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);\n                plVar17 = auVar26._0_8_;\n                if (plVar17 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }\n                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    \n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }\n                if (plVar18 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }\n              }\n              if (*(code **)(*plVar18 + 0x58) == FUN_0019a160) {\n                uVar10 = *(uint *)((long)plVar18 + 0x7c);\n                if (uVar10 == 0xffffffff) goto LAB_0028ca38;\n              }\n              else {\n                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);\n              }\n              if (0xfeff < uVar10) {\n                if (uVar12 != 0xffffffff) {\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }\n                if (uVar22 == 0xffffffff) {\n                  uVar10 = 0xffff;\n                }\n                else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }\n              }\n              pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n              if (pcVar13 == (code *)0x0) goto LAB_0028c8d7;\n              if (pcVar13[0x5051] != (code)0x0) {\n                if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;\n                pcVar13 = local_d0 + -plVar18[1];\n                local_d0 = pcVar13;\n              }\n            }\n          }\n          else {\n            if ((*(byte *)((long)puVar6 + 0x3b) & 2) != 0) {\n              pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6);\n            }\n            uVar10 = 0;\n            uVar11 = *(byte *)((long)puVar6 + 0x3c) >> 1 & 1;\n            pcVar13 = (code *)(ulong)uVar11;\n            uVar11 = 2 - ((char)uVar11 == '\0');\n          }\n          break;\n        case 1:\nLAB_0028c1cb:\n          if ((bVar8 & 7) != 1) {\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xb5,"output_data");\n          }\n          plVar17 = (long *)puVar6[2];\n          uVar10 = (**(code **)(*plVar17 + 0x58))(plVar17);\n          if (0xfeff < uVar10) {\n            if (uVar12 != 0xffffffff) {\n              local_58 = uVar12;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_4 + 0x38,&local_58);\n            }\n            if (uVar22 == 0xffffffff) {\n              uVar10 = 0xffff;\n            }\n            else {\n              local_58 = uVar22;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_5 + 0x38,&local_58);\n              uVar10 = 0xffff;\n            }\n          }\n          pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n          if (pcVar13 == (code *)0x0) {\nLAB_0028c8d7:\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if (pcVar13[0x5051] != (code)0x0) {\n            lVar15 = (**(code **)(*plVar17 + 0x48))(plVar17);\n            if (lVar15 == 0) {\n                    \n              FUN_0018ff20("../../gold/symtab.cc",0xc81,"sized_write_globals");\n            }\n            if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    \n              FUN_0018ff20("../../gold/output.h",0xc5,"address");\n            }\n            pcVar13 = *(code **)(lVar15 + 8);\n            local_d0 = local_d0 + -(long)pcVar13;\n          }\n          break;\n        case 2:\n          uVar10 = bVar8 & 7;\nLAB_0028c143:\n          if ((char)uVar10 != '\x02') {\n                    \n            FUN_0018ff20("../../gold/symtab.h",200,"output_segment");\n          }\n          pcVar13 = (code *)FUN_0020de20(puVar6[2]);\n          if (pcVar13 == (code *)0x0) goto switchD_0028bebe_caseD_3;\n          if (*(code **)(*(long *)pcVar13 + 0x58) == FUN_0019a160) {\n            uVar10 = *(uint *)(pcVar13 + 0x7c);\n            pcVar13 = (code *)(ulong)uVar10;\n            if (uVar10 == 0xffffffff) {\nLAB_0028ca38:\n                    \n              FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx");\n            }\n          }\n          else {\n            pcVar13 = (code *)(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13);\n            uVar10 = (uint)pcVar13;\n          }\n          break;\n        case 3:\nswitchD_0028bebe_caseD_3:\n          uVar10 = 0xfff1;\n          break;\n        case 4:\nswitchD_0028bebe_caseD_4:\n          uVar10 = 0;\n        }" switch (parenthesized_expression "(uVar10)" ( identifier )) (compound_statement "{\n        case 0:\n          if ((bVar8 & 7) != 0) goto switchD_0028c5a7_caseD_0;\n          uVar10 = *(uint *)(puVar6 + 3);\n          bVar8 = *(byte *)((long)puVar6 + 0x3b) >> 5;\n          if (((bVar8 & 1) != 1) && (uVar10 != 0xfff1)) {\n            cVar9 = FUN_00284a00(uVar10);\n            if (cVar9 == '\0') {\n              FUN_00285b30(&local_58,*puVar6);\n              uVar25 = CONCAT44(uStack_54,local_58);\n              uVar16 = gettext("%s: unsupported symbol section 0x%x");\n                    \n              FUN_001878b0(uVar16,uVar25,uVar10);\n              pcVar13 = (code *)auStack_48;\n              if ((code *)CONCAT44(uStack_54,local_58) != pcVar13) {\n                pcVar13 = (code *)FUN_002f1e60();\n              }\n              break;\n            }\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) {\nLAB_0028c752:\n                    \n              FUN_0018ff20("../../gold/symtab.h",0xa1,"object");\n            }\n          }\n          plVar17 = (long *)puVar6[2];\n          if ((*(byte *)((long)plVar17 + 0x3c) & 1) == 0) {\n            pcVar13 = (code *)(**(code **)(*plVar17 + 0x28))(plVar17);\n            if ((pcVar13 != (code *)0x0) || (uVar10 == 0)) goto switchD_0028bebe_caseD_4;\n            if (((bVar8 & 1) != 0) ||\n               ((uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')\n                ))) {\n              uVar19 = (ulong)uVar10;\n              if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;\n                plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n              }\n              else {\n                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);\n              }\n              cVar9 = FUN_00284da0(param_1,plVar17,uVar19);\n              if (cVar9 == '\0') {\n                if (plVar18 == (long *)0x0) goto LAB_0028c9cd;\n              }\n              else {\n                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);\n                plVar17 = auVar26._0_8_;\n                if (plVar17 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }\n                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    \n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }\n                if (plVar18 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }\n              }\n              if (*(code **)(*plVar18 + 0x58) == FUN_0019a160) {\n                uVar10 = *(uint *)((long)plVar18 + 0x7c);\n                if (uVar10 == 0xffffffff) goto LAB_0028ca38;\n              }\n              else {\n                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);\n              }\n              if (0xfeff < uVar10) {\n                if (uVar12 != 0xffffffff) {\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }\n                if (uVar22 == 0xffffffff) {\n                  uVar10 = 0xffff;\n                }\n                else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }\n              }\n              pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n              if (pcVar13 == (code *)0x0) goto LAB_0028c8d7;\n              if (pcVar13[0x5051] != (code)0x0) {\n                if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;\n                pcVar13 = local_d0 + -plVar18[1];\n                local_d0 = pcVar13;\n              }\n            }\n          }\n          else {\n            if ((*(byte *)((long)puVar6 + 0x3b) & 2) != 0) {\n              pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6);\n            }\n            uVar10 = 0;\n            uVar11 = *(byte *)((long)puVar6 + 0x3c) >> 1 & 1;\n            pcVar13 = (code *)(ulong)uVar11;\n            uVar11 = 2 - ((char)uVar11 == '\0');\n          }\n          break;\n        case 1:\nLAB_0028c1cb:\n          if ((bVar8 & 7) != 1) {\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xb5,"output_data");\n          }\n          plVar17 = (long *)puVar6[2];\n          uVar10 = (**(code **)(*plVar17 + 0x58))(plVar17);\n          if (0xfeff < uVar10) {\n            if (uVar12 != 0xffffffff) {\n              local_58 = uVar12;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_4 + 0x38,&local_58);\n            }\n            if (uVar22 == 0xffffffff) {\n              uVar10 = 0xffff;\n            }\n            else {\n              local_58 = uVar22;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_5 + 0x38,&local_58);\n              uVar10 = 0xffff;\n            }\n          }\n          pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n          if (pcVar13 == (code *)0x0) {\nLAB_0028c8d7:\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if (pcVar13[0x5051] != (code)0x0) {\n            lVar15 = (**(code **)(*plVar17 + 0x48))(plVar17);\n            if (lVar15 == 0) {\n                    \n              FUN_0018ff20("../../gold/symtab.cc",0xc81,"sized_write_globals");\n            }\n            if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    \n              FUN_0018ff20("../../gold/output.h",0xc5,"address");\n            }\n            pcVar13 = *(code **)(lVar15 + 8);\n            local_d0 = local_d0 + -(long)pcVar13;\n          }\n          break;\n        case 2:\n          uVar10 = bVar8 & 7;\nLAB_0028c143:\n          if ((char)uVar10 != '\x02') {\n                    \n            FUN_0018ff20("../../gold/symtab.h",200,"output_segment");\n          }\n          pcVar13 = (code *)FUN_0020de20(puVar6[2]);\n          if (pcVar13 == (code *)0x0) goto switchD_0028bebe_caseD_3;\n          if (*(code **)(*(long *)pcVar13 + 0x58) == FUN_0019a160) {\n            uVar10 = *(uint *)(pcVar13 + 0x7c);\n            pcVar13 = (code *)(ulong)uVar10;\n            if (uVar10 == 0xffffffff) {\nLAB_0028ca38:\n                    \n              FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx");\n            }\n          }\n          else {\n            pcVar13 = (code *)(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13);\n            uVar10 = (uint)pcVar13;\n          }\n          break;\n        case 3:\nswitchD_0028bebe_caseD_3:\n          uVar10 = 0xfff1;\n          break;\n        case 4:\nswitchD_0028bebe_caseD_4:\n          uVar10 = 0;\n        }" { (case_statement "case 0:\n          if ((bVar8 & 7) != 0) goto switchD_0028c5a7_caseD_0;\n          uVar10 = *(uint *)(puVar6 + 3);\n          bVar8 = *(byte *)((long)puVar6 + 0x3b) >> 5;\n          if (((bVar8 & 1) != 1) && (uVar10 != 0xfff1)) {\n            cVar9 = FUN_00284a00(uVar10);\n            if (cVar9 == '\0') {\n              FUN_00285b30(&local_58,*puVar6);\n              uVar25 = CONCAT44(uStack_54,local_58);\n              uVar16 = gettext("%s: unsupported symbol section 0x%x");\n                    \n              FUN_001878b0(uVar16,uVar25,uVar10);\n              pcVar13 = (code *)auStack_48;\n              if ((code *)CONCAT44(uStack_54,local_58) != pcVar13) {\n                pcVar13 = (code *)FUN_002f1e60();\n              }\n              break;\n            }\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) {\nLAB_0028c752:\n                    \n              FUN_0018ff20("../../gold/symtab.h",0xa1,"object");\n            }\n          }\n          plVar17 = (long *)puVar6[2];\n          if ((*(byte *)((long)plVar17 + 0x3c) & 1) == 0) {\n            pcVar13 = (code *)(**(code **)(*plVar17 + 0x28))(plVar17);\n            if ((pcVar13 != (code *)0x0) || (uVar10 == 0)) goto switchD_0028bebe_caseD_4;\n            if (((bVar8 & 1) != 0) ||\n               ((uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')\n                ))) {\n              uVar19 = (ulong)uVar10;\n              if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;\n                plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n              }\n              else {\n                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);\n              }\n              cVar9 = FUN_00284da0(param_1,plVar17,uVar19);\n              if (cVar9 == '\0') {\n                if (plVar18 == (long *)0x0) goto LAB_0028c9cd;\n              }\n              else {\n                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);\n                plVar17 = auVar26._0_8_;\n                if (plVar17 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }\n                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    \n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }\n                if (plVar18 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }\n              }\n              if (*(code **)(*plVar18 + 0x58) == FUN_0019a160) {\n                uVar10 = *(uint *)((long)plVar18 + 0x7c);\n                if (uVar10 == 0xffffffff) goto LAB_0028ca38;\n              }\n              else {\n                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);\n              }\n              if (0xfeff < uVar10) {\n                if (uVar12 != 0xffffffff) {\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }\n                if (uVar22 == 0xffffffff) {\n                  uVar10 = 0xffff;\n                }\n                else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }\n              }\n              pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n              if (pcVar13 == (code *)0x0) goto LAB_0028c8d7;\n              if (pcVar13[0x5051] != (code)0x0) {\n                if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;\n                pcVar13 = local_d0 + -plVar18[1];\n                local_d0 = pcVar13;\n              }\n            }\n          }\n          else {\n            if ((*(byte *)((long)puVar6 + 0x3b) & 2) != 0) {\n              pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6);\n            }\n            uVar10 = 0;\n            uVar11 = *(byte *)((long)puVar6 + 0x3c) >> 1 & 1;\n            pcVar13 = (code *)(ulong)uVar11;\n            uVar11 = 2 - ((char)uVar11 == '\0');\n          }\n          break;" case number_literal : (if_statement "if ((bVar8 & 7) != 0) goto switchD_0028c5a7_caseD_0;" if (parenthesized_expression "((bVar8 & 7) != 0)" ( (binary_expression "(bVar8 & 7) != 0" (parenthesized_expression "(bVar8 & 7)" ( (binary_expression "bVar8 & 7" identifier & number_literal) )) != number_literal) )) (goto_statement "goto switchD_0028c5a7_caseD_0;" goto statement_identifier ;)) (expression_statement "uVar10 = *(uint *)(puVar6 + 3);" (assignment_expression "uVar10 = *(uint *)(puVar6 + 3)" identifier = (pointer_expression "*(uint *)(puVar6 + 3)" * (cast_expression "(uint *)(puVar6 + 3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 3)" ( (binary_expression "puVar6 + 3" identifier + number_literal) ))))) ;) (expression_statement "bVar8 = *(byte *)((long)puVar6 + 0x3b) >> 5;" (assignment_expression "bVar8 = *(byte *)((long)puVar6 + 0x3b) >> 5" identifier = (binary_expression "*(byte *)((long)puVar6 + 0x3b) >> 5" (pointer_expression "*(byte *)((long)puVar6 + 0x3b)" * (cast_expression "(byte *)((long)puVar6 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar6 + 0x3b)" ( (binary_expression "(long)puVar6 + 0x3b" (cast_expression "(long)puVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) >> number_literal)) ;) (if_statement "if (((bVar8 & 1) != 1) && (uVar10 != 0xfff1)) {\n            cVar9 = FUN_00284a00(uVar10);\n            if (cVar9 == '\0') {\n              FUN_00285b30(&local_58,*puVar6);\n              uVar25 = CONCAT44(uStack_54,local_58);\n              uVar16 = gettext("%s: unsupported symbol section 0x%x");\n                    \n              FUN_001878b0(uVar16,uVar25,uVar10);\n              pcVar13 = (code *)auStack_48;\n              if ((code *)CONCAT44(uStack_54,local_58) != pcVar13) {\n                pcVar13 = (code *)FUN_002f1e60();\n              }\n              break;\n            }\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) {\nLAB_0028c752:\n                    \n              FUN_0018ff20("../../gold/symtab.h",0xa1,"object");\n            }\n          }" if (parenthesized_expression "(((bVar8 & 1) != 1) && (uVar10 != 0xfff1))" ( (binary_expression "((bVar8 & 1) != 1) && (uVar10 != 0xfff1)" (parenthesized_expression "((bVar8 & 1) != 1)" ( (binary_expression "(bVar8 & 1) != 1" (parenthesized_expression "(bVar8 & 1)" ( (binary_expression "bVar8 & 1" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(uVar10 != 0xfff1)" ( (binary_expression "uVar10 != 0xfff1" identifier != number_literal) ))) )) (compound_statement "{\n            cVar9 = FUN_00284a00(uVar10);\n            if (cVar9 == '\0') {\n              FUN_00285b30(&local_58,*puVar6);\n              uVar25 = CONCAT44(uStack_54,local_58);\n              uVar16 = gettext("%s: unsupported symbol section 0x%x");\n                    \n              FUN_001878b0(uVar16,uVar25,uVar10);\n              pcVar13 = (code *)auStack_48;\n              if ((code *)CONCAT44(uStack_54,local_58) != pcVar13) {\n                pcVar13 = (code *)FUN_002f1e60();\n              }\n              break;\n            }\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) {\nLAB_0028c752:\n                    \n              FUN_0018ff20("../../gold/symtab.h",0xa1,"object");\n            }\n          }" { (expression_statement "cVar9 = FUN_00284a00(uVar10);" (assignment_expression "cVar9 = FUN_00284a00(uVar10)" identifier = (call_expression "FUN_00284a00(uVar10)" identifier (argument_list "(uVar10)" ( identifier )))) ;) (if_statement "if (cVar9 == '\0') {\n              FUN_00285b30(&local_58,*puVar6);\n              uVar25 = CONCAT44(uStack_54,local_58);\n              uVar16 = gettext("%s: unsupported symbol section 0x%x");\n                    \n              FUN_001878b0(uVar16,uVar25,uVar10);\n              pcVar13 = (code *)auStack_48;\n              if ((code *)CONCAT44(uStack_54,local_58) != pcVar13) {\n                pcVar13 = (code *)FUN_002f1e60();\n              }\n              break;\n            }" if (parenthesized_expression "(cVar9 == '\0')" ( (binary_expression "cVar9 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              FUN_00285b30(&local_58,*puVar6);\n              uVar25 = CONCAT44(uStack_54,local_58);\n              uVar16 = gettext("%s: unsupported symbol section 0x%x");\n                    \n              FUN_001878b0(uVar16,uVar25,uVar10);\n              pcVar13 = (code *)auStack_48;\n              if ((code *)CONCAT44(uStack_54,local_58) != pcVar13) {\n                pcVar13 = (code *)FUN_002f1e60();\n              }\n              break;\n            }" { (expression_statement "FUN_00285b30(&local_58,*puVar6);" (call_expression "FUN_00285b30(&local_58,*puVar6)" identifier (argument_list "(&local_58,*puVar6)" ( (pointer_expression "&local_58" & identifier) , (pointer_expression "*puVar6" * identifier) ))) ;) (expression_statement "uVar25 = CONCAT44(uStack_54,local_58);" (assignment_expression "uVar25 = CONCAT44(uStack_54,local_58)" identifier = (call_expression "CONCAT44(uStack_54,local_58)" identifier (argument_list "(uStack_54,local_58)" ( identifier , identifier )))) ;) (expression_statement "uVar16 = gettext("%s: unsupported symbol section 0x%x");" (assignment_expression "uVar16 = gettext("%s: unsupported symbol section 0x%x")" identifier = (call_expression "gettext("%s: unsupported symbol section 0x%x")" identifier (argument_list "("%s: unsupported symbol section 0x%x")" ( (string_literal ""%s: unsupported symbol section 0x%x"" " string_content ") )))) ;) (expression_statement "FUN_001878b0(uVar16,uVar25,uVar10);" (call_expression "FUN_001878b0(uVar16,uVar25,uVar10)" identifier (argument_list "(uVar16,uVar25,uVar10)" ( identifier , identifier , identifier ))) ;) (expression_statement "pcVar13 = (code *)auStack_48;" (assignment_expression "pcVar13 = (code *)auStack_48" identifier = (cast_expression "(code *)auStack_48" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((code *)CONCAT44(uStack_54,local_58) != pcVar13) {\n                pcVar13 = (code *)FUN_002f1e60();\n              }" if (parenthesized_expression "((code *)CONCAT44(uStack_54,local_58) != pcVar13)" ( (binary_expression "(code *)CONCAT44(uStack_54,local_58) != pcVar13" (cast_expression "(code *)CONCAT44(uStack_54,local_58)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT44(uStack_54,local_58)" identifier (argument_list "(uStack_54,local_58)" ( identifier , identifier )))) != identifier) )) (compound_statement "{\n                pcVar13 = (code *)FUN_002f1e60();\n              }" { (expression_statement "pcVar13 = (code *)FUN_002f1e60();" (assignment_expression "pcVar13 = (code *)FUN_002f1e60()" identifier = (cast_expression "(code *)FUN_002f1e60()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_002f1e60()" identifier (argument_list "()" ( ))))) ;) })) (break_statement "break;" break ;) })) (if_statement "if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) {\nLAB_0028c752:\n                    \n              FUN_0018ff20("../../gold/symtab.h",0xa1,"object");\n            }" if (parenthesized_expression "((*(byte *)((long)puVar6 + 0x3a) & 7) != 0)" ( (binary_expression "(*(byte *)((long)puVar6 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)((long)puVar6 + 0x3a) & 7)" ( (binary_expression "*(byte *)((long)puVar6 + 0x3a) & 7" (pointer_expression "*(byte *)((long)puVar6 + 0x3a)" * (cast_expression "(byte *)((long)puVar6 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar6 + 0x3a)" ( (binary_expression "(long)puVar6 + 0x3a" (cast_expression "(long)puVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_0028c752:\n                    \n              FUN_0018ff20("../../gold/symtab.h",0xa1,"object");\n            }" { (labeled_statement "LAB_0028c752:\n                    \n              FUN_0018ff20("../../gold/symtab.h",0xa1,"object");" statement_identifier : (expression_statement "FUN_0018ff20("../../gold/symtab.h",0xa1,"object");" (call_expression "FUN_0018ff20("../../gold/symtab.h",0xa1,"object")" identifier (argument_list "("../../gold/symtab.h",0xa1,"object")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""object"" " string_content ") ))) ;)) })) })) (expression_statement "plVar17 = (long *)puVar6[2];" (assignment_expression "plVar17 = (long *)puVar6[2]" identifier = (cast_expression "(long *)puVar6[2]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[2]" identifier [ number_literal ]))) ;) (if_statement "if ((*(byte *)((long)plVar17 + 0x3c) & 1) == 0) {\n            pcVar13 = (code *)(**(code **)(*plVar17 + 0x28))(plVar17);\n            if ((pcVar13 != (code *)0x0) || (uVar10 == 0)) goto switchD_0028bebe_caseD_4;\n            if (((bVar8 & 1) != 0) ||\n               ((uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')\n                ))) {\n              uVar19 = (ulong)uVar10;\n              if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;\n                plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n              }\n              else {\n                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);\n              }\n              cVar9 = FUN_00284da0(param_1,plVar17,uVar19);\n              if (cVar9 == '\0') {\n                if (plVar18 == (long *)0x0) goto LAB_0028c9cd;\n              }\n              else {\n                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);\n                plVar17 = auVar26._0_8_;\n                if (plVar17 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }\n                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    \n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }\n                if (plVar18 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }\n              }\n              if (*(code **)(*plVar18 + 0x58) == FUN_0019a160) {\n                uVar10 = *(uint *)((long)plVar18 + 0x7c);\n                if (uVar10 == 0xffffffff) goto LAB_0028ca38;\n              }\n              else {\n                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);\n              }\n              if (0xfeff < uVar10) {\n                if (uVar12 != 0xffffffff) {\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }\n                if (uVar22 == 0xffffffff) {\n                  uVar10 = 0xffff;\n                }\n                else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }\n              }\n              pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n              if (pcVar13 == (code *)0x0) goto LAB_0028c8d7;\n              if (pcVar13[0x5051] != (code)0x0) {\n                if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;\n                pcVar13 = local_d0 + -plVar18[1];\n                local_d0 = pcVar13;\n              }\n            }\n          }\n          else {\n            if ((*(byte *)((long)puVar6 + 0x3b) & 2) != 0) {\n              pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6);\n            }\n            uVar10 = 0;\n            uVar11 = *(byte *)((long)puVar6 + 0x3c) >> 1 & 1;\n            pcVar13 = (code *)(ulong)uVar11;\n            uVar11 = 2 - ((char)uVar11 == '\0');\n          }" if (parenthesized_expression "((*(byte *)((long)plVar17 + 0x3c) & 1) == 0)" ( (binary_expression "(*(byte *)((long)plVar17 + 0x3c) & 1) == 0" (parenthesized_expression "(*(byte *)((long)plVar17 + 0x3c) & 1)" ( (binary_expression "*(byte *)((long)plVar17 + 0x3c) & 1" (pointer_expression "*(byte *)((long)plVar17 + 0x3c)" * (cast_expression "(byte *)((long)plVar17 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar17 + 0x3c)" ( (binary_expression "(long)plVar17 + 0x3c" (cast_expression "(long)plVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n            pcVar13 = (code *)(**(code **)(*plVar17 + 0x28))(plVar17);\n            if ((pcVar13 != (code *)0x0) || (uVar10 == 0)) goto switchD_0028bebe_caseD_4;\n            if (((bVar8 & 1) != 0) ||\n               ((uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')\n                ))) {\n              uVar19 = (ulong)uVar10;\n              if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;\n                plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n              }\n              else {\n                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);\n              }\n              cVar9 = FUN_00284da0(param_1,plVar17,uVar19);\n              if (cVar9 == '\0') {\n                if (plVar18 == (long *)0x0) goto LAB_0028c9cd;\n              }\n              else {\n                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);\n                plVar17 = auVar26._0_8_;\n                if (plVar17 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }\n                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    \n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }\n                if (plVar18 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }\n              }\n              if (*(code **)(*plVar18 + 0x58) == FUN_0019a160) {\n                uVar10 = *(uint *)((long)plVar18 + 0x7c);\n                if (uVar10 == 0xffffffff) goto LAB_0028ca38;\n              }\n              else {\n                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);\n              }\n              if (0xfeff < uVar10) {\n                if (uVar12 != 0xffffffff) {\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }\n                if (uVar22 == 0xffffffff) {\n                  uVar10 = 0xffff;\n                }\n                else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }\n              }\n              pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n              if (pcVar13 == (code *)0x0) goto LAB_0028c8d7;\n              if (pcVar13[0x5051] != (code)0x0) {\n                if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;\n                pcVar13 = local_d0 + -plVar18[1];\n                local_d0 = pcVar13;\n              }\n            }\n          }" { (expression_statement "pcVar13 = (code *)(**(code **)(*plVar17 + 0x28))(plVar17);" (assignment_expression "pcVar13 = (code *)(**(code **)(*plVar17 + 0x28))(plVar17)" identifier = (cast_expression "(code *)(**(code **)(*plVar17 + 0x28))(plVar17)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*plVar17 + 0x28))(plVar17)" (parenthesized_expression "(**(code **)(*plVar17 + 0x28))" ( (pointer_expression "**(code **)(*plVar17 + 0x28)" * (pointer_expression "*(code **)(*plVar17 + 0x28)" * (cast_expression "(code **)(*plVar17 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar17 + 0x28)" ( (binary_expression "*plVar17 + 0x28" (pointer_expression "*plVar17" * identifier) + number_literal) ))))) )) (argument_list "(plVar17)" ( identifier ))))) ;) (if_statement "if ((pcVar13 != (code *)0x0) || (uVar10 == 0)) goto switchD_0028bebe_caseD_4;" if (parenthesized_expression "((pcVar13 != (code *)0x0) || (uVar10 == 0))" ( (binary_expression "(pcVar13 != (code *)0x0) || (uVar10 == 0)" (parenthesized_expression "(pcVar13 != (code *)0x0)" ( (binary_expression "pcVar13 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(uVar10 == 0)" ( (binary_expression "uVar10 == 0" identifier == number_literal) ))) )) (goto_statement "goto switchD_0028bebe_caseD_4;" goto statement_identifier ;)) (if_statement "if (((bVar8 & 1) != 0) ||\n               ((uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')\n                ))) {\n              uVar19 = (ulong)uVar10;\n              if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;\n                plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n              }\n              else {\n                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);\n              }\n              cVar9 = FUN_00284da0(param_1,plVar17,uVar19);\n              if (cVar9 == '\0') {\n                if (plVar18 == (long *)0x0) goto LAB_0028c9cd;\n              }\n              else {\n                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);\n                plVar17 = auVar26._0_8_;\n                if (plVar17 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }\n                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    \n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }\n                if (plVar18 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }\n              }\n              if (*(code **)(*plVar18 + 0x58) == FUN_0019a160) {\n                uVar10 = *(uint *)((long)plVar18 + 0x7c);\n                if (uVar10 == 0xffffffff) goto LAB_0028ca38;\n              }\n              else {\n                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);\n              }\n              if (0xfeff < uVar10) {\n                if (uVar12 != 0xffffffff) {\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }\n                if (uVar22 == 0xffffffff) {\n                  uVar10 = 0xffff;\n                }\n                else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }\n              }\n              pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n              if (pcVar13 == (code *)0x0) goto LAB_0028c8d7;\n              if (pcVar13[0x5051] != (code)0x0) {\n                if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;\n                pcVar13 = local_d0 + -plVar18[1];\n                local_d0 = pcVar13;\n              }\n            }" if (parenthesized_expression "(((bVar8 & 1) != 0) ||\n               ((uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')\n                )))" ( (binary_expression "((bVar8 & 1) != 0) ||\n               ((uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')\n                ))" (parenthesized_expression "((bVar8 & 1) != 0)" ( (binary_expression "(bVar8 & 1) != 0" (parenthesized_expression "(bVar8 & 1)" ( (binary_expression "bVar8 & 1" identifier & number_literal) )) != number_literal) )) || (parenthesized_expression "((uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')\n                ))" ( (parenthesized_expression "(uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')\n                )" ( (binary_expression "uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')" (binary_expression "uVar10 != 0xfff1" identifier != number_literal) && (parenthesized_expression "(pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')" ( (comma_expression "pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0'" (assignment_expression "pcVar13 = (code *)FUN_00284a00(uVar10)" identifier = (cast_expression "(code *)FUN_00284a00(uVar10)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00284a00(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))))) , (binary_expression "(char)pcVar13 == '\0'" (cast_expression "(char)pcVar13" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence '))) ))) )) ))) )) (compound_statement "{\n              uVar19 = (ulong)uVar10;\n              if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;\n                plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n              }\n              else {\n                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);\n              }\n              cVar9 = FUN_00284da0(param_1,plVar17,uVar19);\n              if (cVar9 == '\0') {\n                if (plVar18 == (long *)0x0) goto LAB_0028c9cd;\n              }\n              else {\n                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);\n                plVar17 = auVar26._0_8_;\n                if (plVar17 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }\n                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    \n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }\n                if (plVar18 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }\n              }\n              if (*(code **)(*plVar18 + 0x58) == FUN_0019a160) {\n                uVar10 = *(uint *)((long)plVar18 + 0x7c);\n                if (uVar10 == 0xffffffff) goto LAB_0028ca38;\n              }\n              else {\n                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);\n              }\n              if (0xfeff < uVar10) {\n                if (uVar12 != 0xffffffff) {\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }\n                if (uVar22 == 0xffffffff) {\n                  uVar10 = 0xffff;\n                }\n                else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }\n              }\n              pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n              if (pcVar13 == (code *)0x0) goto LAB_0028c8d7;\n              if (pcVar13[0x5051] != (code)0x0) {\n                if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;\n                pcVar13 = local_d0 + -plVar18[1];\n                local_d0 = pcVar13;\n              }\n            }" { (expression_statement "uVar19 = (ulong)uVar10;" (assignment_expression "uVar19 = (ulong)uVar10" identifier = (cast_expression "(ulong)uVar10" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;\n                plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n              }\n              else {\n                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);\n              }" if (parenthesized_expression "(*(code **)(*plVar17 + 0xc0) == FUN_00173380)" ( (binary_expression "*(code **)(*plVar17 + 0xc0) == FUN_00173380" (pointer_expression "*(code **)(*plVar17 + 0xc0)" * (cast_expression "(code **)(*plVar17 + 0xc0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar17 + 0xc0)" ( (binary_expression "*plVar17 + 0xc0" (pointer_expression "*plVar17" * identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n                if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;\n                plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n              }" { (if_statement "if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;" if (parenthesized_expression "((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19)" ( (binary_expression "(ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19" (call_expression "(ulong)(plVar17[0xb] - plVar17[10] >> 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(plVar17[0xb] - plVar17[10] >> 3)" ( (binary_expression "plVar17[0xb] - plVar17[10] >> 3" (binary_expression "plVar17[0xb] - plVar17[10]" (subscript_expression "plVar17[0xb]" identifier [ number_literal ]) - (subscript_expression "plVar17[10]" identifier [ number_literal ])) >> number_literal) ))) <= identifier) )) (goto_statement "goto LAB_0028ca08;" goto statement_identifier ;)) (expression_statement "plVar18 = *(long **)(plVar17[10] + uVar19 * 8);" (assignment_expression "plVar18 = *(long **)(plVar17[10] + uVar19 * 8)" identifier = (pointer_expression "*(long **)(plVar17[10] + uVar19 * 8)" * (cast_expression "(long **)(plVar17[10] + uVar19 * 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(plVar17[10] + uVar19 * 8)" ( (binary_expression "plVar17[10] + uVar19 * 8" (subscript_expression "plVar17[10]" identifier [ number_literal ]) + (binary_expression "uVar19 * 8" identifier * number_literal)) ))))) ;) }) (else_clause "else {\n                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);\n              }" else (compound_statement "{\n                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);\n              }" { (expression_statement "plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);" (assignment_expression "plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19)" identifier = (cast_expression "(long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19)" (parenthesized_expression "(**(code **)(*plVar17 + 0xc0))" ( (pointer_expression "**(code **)(*plVar17 + 0xc0)" * (pointer_expression "*(code **)(*plVar17 + 0xc0)" * (cast_expression "(code **)(*plVar17 + 0xc0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar17 + 0xc0)" ( (binary_expression "*plVar17 + 0xc0" (pointer_expression "*plVar17" * identifier) + number_literal) ))))) )) (argument_list "(plVar17,uVar19)" ( identifier , identifier ))))) ;) }))) (expression_statement "cVar9 = FUN_00284da0(param_1,plVar17,uVar19);" (assignment_expression "cVar9 = FUN_00284da0(param_1,plVar17,uVar19)" identifier = (call_expression "FUN_00284da0(param_1,plVar17,uVar19)" identifier (argument_list "(param_1,plVar17,uVar19)" ( identifier , identifier , identifier )))) ;) (if_statement "if (cVar9 == '\0') {\n                if (plVar18 == (long *)0x0) goto LAB_0028c9cd;\n              }\n              else {\n                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);\n                plVar17 = auVar26._0_8_;\n                if (plVar17 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }\n                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    \n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }\n                if (plVar18 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }\n              }" if (parenthesized_expression "(cVar9 == '\0')" ( (binary_expression "cVar9 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                if (plVar18 == (long *)0x0) goto LAB_0028c9cd;\n              }" { (if_statement "if (plVar18 == (long *)0x0) goto LAB_0028c9cd;" if (parenthesized_expression "(plVar18 == (long *)0x0)" ( (binary_expression "plVar18 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0028c9cd;" goto statement_identifier ;)) }) (else_clause "else {\n                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);\n                plVar17 = auVar26._0_8_;\n                if (plVar17 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }\n                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    \n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }\n                if (plVar18 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }\n              }" else (compound_statement "{\n                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);\n                plVar17 = auVar26._0_8_;\n                if (plVar17 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }\n                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    \n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }\n                if (plVar18 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }\n              }" { (expression_statement "auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);" (assignment_expression "auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10)" identifier = (call_expression "FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x298)" * (cast_expression "(undefined8 *)(param_1 + 0x298)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) , identifier , identifier )))) ;) (expression_statement "plVar17 = auVar26._0_8_;" (assignment_expression "plVar17 = auVar26._0_8_" identifier = (field_expression "auVar26._0_8_" identifier . field_identifier)) ;) (if_statement "if (plVar17 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }" if (parenthesized_expression "(plVar17 == (long *)0x0)" ( (binary_expression "plVar17 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }" { (expression_statement "FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");" (call_expression "FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals")" identifier (argument_list "("../../gold/symtab.cc",0xc53,"sized_write_globals")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""sized_write_globals"" " string_content ") ))) ;) })) (if_statement "if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    \n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }" if (parenthesized_expression "(*(code **)(*plVar17 + 0xc0) == FUN_00173380)" ( (binary_expression "*(code **)(*plVar17 + 0xc0) == FUN_00173380" (pointer_expression "*(code **)(*plVar17 + 0xc0)" * (cast_expression "(code **)(*plVar17 + 0xc0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar17 + 0xc0)" ( (binary_expression "*plVar17 + 0xc0" (pointer_expression "*plVar17" * identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    \n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }" { (expression_statement "uVar19 = auVar26._8_8_ & 0xffffffff;" (assignment_expression "uVar19 = auVar26._8_8_ & 0xffffffff" identifier = (binary_expression "auVar26._8_8_ & 0xffffffff" (field_expression "auVar26._8_8_" identifier . field_identifier) & number_literal)) ;) (if_statement "if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    \n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }" if (parenthesized_expression "((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19)" ( (binary_expression "(ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19" (call_expression "(ulong)(plVar17[0xb] - plVar17[10] >> 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(plVar17[0xb] - plVar17[10] >> 3)" ( (binary_expression "plVar17[0xb] - plVar17[10] >> 3" (binary_expression "plVar17[0xb] - plVar17[10]" (subscript_expression "plVar17[0xb]" identifier [ number_literal ]) - (subscript_expression "plVar17[10]" identifier [ number_literal ])) >> number_literal) ))) <= identifier) )) (compound_statement "{\nLAB_0028ca08:\n                    \n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }" { (labeled_statement "LAB_0028ca08:\n                    \n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");" statement_identifier : (expression_statement "FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");" (call_expression "FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section")" identifier (argument_list "("../../gold/object.h",0x5c8,"do_output_section")" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""do_output_section"" " string_content ") ))) ;)) })) (expression_statement "plVar18 = *(long **)(plVar17[10] + uVar19 * 8);" (assignment_expression "plVar18 = *(long **)(plVar17[10] + uVar19 * 8)" identifier = (pointer_expression "*(long **)(plVar17[10] + uVar19 * 8)" * (cast_expression "(long **)(plVar17[10] + uVar19 * 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(plVar17[10] + uVar19 * 8)" ( (binary_expression "plVar17[10] + uVar19 * 8" (subscript_expression "plVar17[10]" identifier [ number_literal ]) + (binary_expression "uVar19 * 8" identifier * number_literal)) ))))) ;) }) (else_clause "else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }" else (compound_statement "{\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }" { (expression_statement "plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);" (assignment_expression "plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff)" identifier = (cast_expression "(long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff)" (parenthesized_expression "(**(code **)(*plVar17 + 0xc0))" ( (pointer_expression "**(code **)(*plVar17 + 0xc0)" * (pointer_expression "*(code **)(*plVar17 + 0xc0)" * (cast_expression "(code **)(*plVar17 + 0xc0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar17 + 0xc0)" ( (binary_expression "*plVar17 + 0xc0" (pointer_expression "*plVar17" * identifier) + number_literal) ))))) )) (argument_list "(plVar17,auVar26._8_8_ & 0xffffffff)" ( identifier , (binary_expression "auVar26._8_8_ & 0xffffffff" (field_expression "auVar26._8_8_" identifier . field_identifier) & number_literal) ))))) ;) }))) (if_statement "if (plVar18 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }" if (parenthesized_expression "(plVar18 == (long *)0x0)" ( (binary_expression "plVar18 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }" { (expression_statement "FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");" (call_expression "FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals")" identifier (argument_list "("../../gold/symtab.cc",0xc57,"sized_write_globals")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""sized_write_globals"" " string_content ") ))) ;) })) }))) (if_statement "if (*(code **)(*plVar18 + 0x58) == FUN_0019a160) {\n                uVar10 = *(uint *)((long)plVar18 + 0x7c);\n                if (uVar10 == 0xffffffff) goto LAB_0028ca38;\n              }\n              else {\n                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);\n              }" if (parenthesized_expression "(*(code **)(*plVar18 + 0x58) == FUN_0019a160)" ( (binary_expression "*(code **)(*plVar18 + 0x58) == FUN_0019a160" (pointer_expression "*(code **)(*plVar18 + 0x58)" * (cast_expression "(code **)(*plVar18 + 0x58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar18 + 0x58)" ( (binary_expression "*plVar18 + 0x58" (pointer_expression "*plVar18" * identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n                uVar10 = *(uint *)((long)plVar18 + 0x7c);\n                if (uVar10 == 0xffffffff) goto LAB_0028ca38;\n              }" { (expression_statement "uVar10 = *(uint *)((long)plVar18 + 0x7c);" (assignment_expression "uVar10 = *(uint *)((long)plVar18 + 0x7c)" identifier = (pointer_expression "*(uint *)((long)plVar18 + 0x7c)" * (cast_expression "(uint *)((long)plVar18 + 0x7c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar18 + 0x7c)" ( (binary_expression "(long)plVar18 + 0x7c" (cast_expression "(long)plVar18" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (if_statement "if (uVar10 == 0xffffffff) goto LAB_0028ca38;" if (parenthesized_expression "(uVar10 == 0xffffffff)" ( (binary_expression "uVar10 == 0xffffffff" identifier == number_literal) )) (goto_statement "goto LAB_0028ca38;" goto statement_identifier ;)) }) (else_clause "else {\n                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);\n              }" else (compound_statement "{\n                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);\n              }" { (expression_statement "uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);" (assignment_expression "uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18)" identifier = (call_expression "(**(code **)(*plVar18 + 0x58))(plVar18)" (parenthesized_expression "(**(code **)(*plVar18 + 0x58))" ( (pointer_expression "**(code **)(*plVar18 + 0x58)" * (pointer_expression "*(code **)(*plVar18 + 0x58)" * (cast_expression "(code **)(*plVar18 + 0x58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar18 + 0x58)" ( (binary_expression "*plVar18 + 0x58" (pointer_expression "*plVar18" * identifier) + number_literal) ))))) )) (argument_list "(plVar18)" ( identifier )))) ;) }))) (if_statement "if (0xfeff < uVar10) {\n                if (uVar12 != 0xffffffff) {\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }\n                if (uVar22 == 0xffffffff) {\n                  uVar10 = 0xffff;\n                }\n                else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }\n              }" if (parenthesized_expression "(0xfeff < uVar10)" ( (binary_expression "0xfeff < uVar10" number_literal < identifier) )) (compound_statement "{\n                if (uVar12 != 0xffffffff) {\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }\n                if (uVar22 == 0xffffffff) {\n                  uVar10 = 0xffff;\n                }\n                else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }\n              }" { (if_statement "if (uVar12 != 0xffffffff) {\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }" if (parenthesized_expression "(uVar12 != 0xffffffff)" ( (binary_expression "uVar12 != 0xffffffff" identifier != number_literal) )) (compound_statement "{\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }" { (expression_statement "local_58 = uVar12;" (assignment_expression "local_58 = uVar12" identifier = identifier) ;) (expression_statement "uStack_54 = uVar10;" (assignment_expression "uStack_54 = uVar10" identifier = identifier) ;) (expression_statement "FUN_001a3810(param_4 + 0x38,&local_58);" (call_expression "FUN_001a3810(param_4 + 0x38,&local_58)" identifier (argument_list "(param_4 + 0x38,&local_58)" ( (binary_expression "param_4 + 0x38" identifier + number_literal) , (pointer_expression "&local_58" & identifier) ))) ;) })) (if_statement "if (uVar22 == 0xffffffff) {\n                  uVar10 = 0xffff;\n                }\n                else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }" if (parenthesized_expression "(uVar22 == 0xffffffff)" ( (binary_expression "uVar22 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n                  uVar10 = 0xffff;\n                }" { (expression_statement "uVar10 = 0xffff;" (assignment_expression "uVar10 = 0xffff" identifier = number_literal) ;) }) (else_clause "else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }" else (compound_statement "{\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }" { (expression_statement "local_58 = uVar22;" (assignment_expression "local_58 = uVar22" identifier = identifier) ;) (expression_statement "uStack_54 = uVar10;" (assignment_expression "uStack_54 = uVar10" identifier = identifier) ;) (expression_statement "FUN_001a3810(param_5 + 0x38,&local_58);" (call_expression "FUN_001a3810(param_5 + 0x38,&local_58)" identifier (argument_list "(param_5 + 0x38,&local_58)" ( (binary_expression "param_5 + 0x38" identifier + number_literal) , (pointer_expression "&local_58" & identifier) ))) ;) (expression_statement "uVar10 = 0xffff;" (assignment_expression "uVar10 = 0xffff" identifier = number_literal) ;) }))) })) (expression_statement "pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);" (assignment_expression "pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10)" identifier = (pointer_expression "*(code **)(PTR_DAT_0045c708 + 0x10)" * (cast_expression "(code **)(PTR_DAT_0045c708 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_0045c708 + 0x10)" ( (binary_expression "PTR_DAT_0045c708 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (pcVar13 == (code *)0x0) goto LAB_0028c8d7;" if (parenthesized_expression "(pcVar13 == (code *)0x0)" ( (binary_expression "pcVar13 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0028c8d7;" goto statement_identifier ;)) (if_statement "if (pcVar13[0x5051] != (code)0x0) {\n                if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;\n                pcVar13 = local_d0 + -plVar18[1];\n                local_d0 = pcVar13;\n              }" if (parenthesized_expression "(pcVar13[0x5051] != (code)0x0)" ( (binary_expression "pcVar13[0x5051] != (code)0x0" (subscript_expression "pcVar13[0x5051]" identifier [ number_literal ]) != (cast_expression "(code)0x0" ( (type_descriptor "code" type_identifier) ) number_literal)) )) (compound_statement "{\n                if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;\n                pcVar13 = local_d0 + -plVar18[1];\n                local_d0 = pcVar13;\n              }" { (if_statement "if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;" if (parenthesized_expression "((*(byte *)(plVar18 + 4) & 1) == 0)" ( (binary_expression "(*(byte *)(plVar18 + 4) & 1) == 0" (parenthesized_expression "(*(byte *)(plVar18 + 4) & 1)" ( (binary_expression "*(byte *)(plVar18 + 4) & 1" (pointer_expression "*(byte *)(plVar18 + 4)" * (cast_expression "(byte *)(plVar18 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar18 + 4)" ( (binary_expression "plVar18 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0028c9b0;" goto statement_identifier ;)) (expression_statement "pcVar13 = local_d0 + -plVar18[1];" (assignment_expression "pcVar13 = local_d0 + -plVar18[1]" identifier = (binary_expression "local_d0 + -plVar18[1]" identifier + (unary_expression "-plVar18[1]" - (subscript_expression "plVar18[1]" identifier [ number_literal ])))) ;) (expression_statement "local_d0 = pcVar13;" (assignment_expression "local_d0 = pcVar13" identifier = identifier) ;) })) })) }) (else_clause "else {\n            if ((*(byte *)((long)puVar6 + 0x3b) & 2) != 0) {\n              pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6);\n            }\n            uVar10 = 0;\n            uVar11 = *(byte *)((long)puVar6 + 0x3c) >> 1 & 1;\n            pcVar13 = (code *)(ulong)uVar11;\n            uVar11 = 2 - ((char)uVar11 == '\0');\n          }" else (compound_statement "{\n            if ((*(byte *)((long)puVar6 + 0x3b) & 2) != 0) {\n              pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6);\n            }\n            uVar10 = 0;\n            uVar11 = *(byte *)((long)puVar6 + 0x3c) >> 1 & 1;\n            pcVar13 = (code *)(ulong)uVar11;\n            uVar11 = 2 - ((char)uVar11 == '\0');\n          }" { (if_statement "if ((*(byte *)((long)puVar6 + 0x3b) & 2) != 0) {\n              pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6);\n            }" if (parenthesized_expression "((*(byte *)((long)puVar6 + 0x3b) & 2) != 0)" ( (binary_expression "(*(byte *)((long)puVar6 + 0x3b) & 2) != 0" (parenthesized_expression "(*(byte *)((long)puVar6 + 0x3b) & 2)" ( (binary_expression "*(byte *)((long)puVar6 + 0x3b) & 2" (pointer_expression "*(byte *)((long)puVar6 + 0x3b)" * (cast_expression "(byte *)((long)puVar6 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar6 + 0x3b)" ( (binary_expression "(long)puVar6 + 0x3b" (cast_expression "(long)puVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n              pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6);\n            }" { (expression_statement "pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6);" (assignment_expression "pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6)" identifier = (cast_expression "(code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*plVar23 + 0x28))(plVar23,puVar6)" (parenthesized_expression "(**(code **)(*plVar23 + 0x28))" ( (pointer_expression "**(code **)(*plVar23 + 0x28)" * (pointer_expression "*(code **)(*plVar23 + 0x28)" * (cast_expression "(code **)(*plVar23 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar23 + 0x28)" ( (binary_expression "*plVar23 + 0x28" (pointer_expression "*plVar23" * identifier) + number_literal) ))))) )) (argument_list "(plVar23,puVar6)" ( identifier , identifier ))))) ;) })) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (expression_statement "uVar11 = *(byte *)((long)puVar6 + 0x3c) >> 1 & 1;" (assignment_expression "uVar11 = *(byte *)((long)puVar6 + 0x3c) >> 1 & 1" identifier = (binary_expression "*(byte *)((long)puVar6 + 0x3c) >> 1 & 1" (binary_expression "*(byte *)((long)puVar6 + 0x3c) >> 1" (pointer_expression "*(byte *)((long)puVar6 + 0x3c)" * (cast_expression "(byte *)((long)puVar6 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar6 + 0x3c)" ( (binary_expression "(long)puVar6 + 0x3c" (cast_expression "(long)puVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) >> number_literal) & number_literal)) ;) (expression_statement "pcVar13 = (code *)(ulong)uVar11;" (assignment_expression "pcVar13 = (code *)(ulong)uVar11" identifier = (cast_expression "(code *)(ulong)uVar11" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)uVar11" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) (expression_statement "uVar11 = 2 - ((char)uVar11 == '\0');" (assignment_expression "uVar11 = 2 - ((char)uVar11 == '\0')" identifier = (binary_expression "2 - ((char)uVar11 == '\0')" number_literal - (parenthesized_expression "((char)uVar11 == '\0')" ( (binary_expression "(char)uVar11 == '\0'" (cast_expression "(char)uVar11" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )))) ;) }))) (break_statement "break;" break ;)) (case_statement "case 1:\nLAB_0028c1cb:\n          if ((bVar8 & 7) != 1) {\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xb5,"output_data");\n          }\n          plVar17 = (long *)puVar6[2];\n          uVar10 = (**(code **)(*plVar17 + 0x58))(plVar17);\n          if (0xfeff < uVar10) {\n            if (uVar12 != 0xffffffff) {\n              local_58 = uVar12;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_4 + 0x38,&local_58);\n            }\n            if (uVar22 == 0xffffffff) {\n              uVar10 = 0xffff;\n            }\n            else {\n              local_58 = uVar22;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_5 + 0x38,&local_58);\n              uVar10 = 0xffff;\n            }\n          }\n          pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n          if (pcVar13 == (code *)0x0) {\nLAB_0028c8d7:\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if (pcVar13[0x5051] != (code)0x0) {\n            lVar15 = (**(code **)(*plVar17 + 0x48))(plVar17);\n            if (lVar15 == 0) {\n                    \n              FUN_0018ff20("../../gold/symtab.cc",0xc81,"sized_write_globals");\n            }\n            if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    \n              FUN_0018ff20("../../gold/output.h",0xc5,"address");\n            }\n            pcVar13 = *(code **)(lVar15 + 8);\n            local_d0 = local_d0 + -(long)pcVar13;\n          }\n          break;" case number_literal : (labeled_statement "LAB_0028c1cb:\n          if ((bVar8 & 7) != 1) {\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xb5,"output_data");\n          }" statement_identifier : (if_statement "if ((bVar8 & 7) != 1) {\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xb5,"output_data");\n          }" if (parenthesized_expression "((bVar8 & 7) != 1)" ( (binary_expression "(bVar8 & 7) != 1" (parenthesized_expression "(bVar8 & 7)" ( (binary_expression "bVar8 & 7" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xb5,"output_data");\n          }" { (expression_statement "FUN_0018ff20("../../gold/symtab.h",0xb5,"output_data");" (call_expression "FUN_0018ff20("../../gold/symtab.h",0xb5,"output_data")" identifier (argument_list "("../../gold/symtab.h",0xb5,"output_data")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""output_data"" " string_content ") ))) ;) }))) (expression_statement "plVar17 = (long *)puVar6[2];" (assignment_expression "plVar17 = (long *)puVar6[2]" identifier = (cast_expression "(long *)puVar6[2]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[2]" identifier [ number_literal ]))) ;) (expression_statement "uVar10 = (**(code **)(*plVar17 + 0x58))(plVar17);" (assignment_expression "uVar10 = (**(code **)(*plVar17 + 0x58))(plVar17)" identifier = (call_expression "(**(code **)(*plVar17 + 0x58))(plVar17)" (parenthesized_expression "(**(code **)(*plVar17 + 0x58))" ( (pointer_expression "**(code **)(*plVar17 + 0x58)" * (pointer_expression "*(code **)(*plVar17 + 0x58)" * (cast_expression "(code **)(*plVar17 + 0x58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar17 + 0x58)" ( (binary_expression "*plVar17 + 0x58" (pointer_expression "*plVar17" * identifier) + number_literal) ))))) )) (argument_list "(plVar17)" ( identifier )))) ;) (if_statement "if (0xfeff < uVar10) {\n            if (uVar12 != 0xffffffff) {\n              local_58 = uVar12;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_4 + 0x38,&local_58);\n            }\n            if (uVar22 == 0xffffffff) {\n              uVar10 = 0xffff;\n            }\n            else {\n              local_58 = uVar22;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_5 + 0x38,&local_58);\n              uVar10 = 0xffff;\n            }\n          }" if (parenthesized_expression "(0xfeff < uVar10)" ( (binary_expression "0xfeff < uVar10" number_literal < identifier) )) (compound_statement "{\n            if (uVar12 != 0xffffffff) {\n              local_58 = uVar12;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_4 + 0x38,&local_58);\n            }\n            if (uVar22 == 0xffffffff) {\n              uVar10 = 0xffff;\n            }\n            else {\n              local_58 = uVar22;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_5 + 0x38,&local_58);\n              uVar10 = 0xffff;\n            }\n          }" { (if_statement "if (uVar12 != 0xffffffff) {\n              local_58 = uVar12;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_4 + 0x38,&local_58);\n            }" if (parenthesized_expression "(uVar12 != 0xffffffff)" ( (binary_expression "uVar12 != 0xffffffff" identifier != number_literal) )) (compound_statement "{\n              local_58 = uVar12;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_4 + 0x38,&local_58);\n            }" { (expression_statement "local_58 = uVar12;" (assignment_expression "local_58 = uVar12" identifier = identifier) ;) (expression_statement "uStack_54 = uVar10;" (assignment_expression "uStack_54 = uVar10" identifier = identifier) ;) (expression_statement "FUN_001a3810(param_4 + 0x38,&local_58);" (call_expression "FUN_001a3810(param_4 + 0x38,&local_58)" identifier (argument_list "(param_4 + 0x38,&local_58)" ( (binary_expression "param_4 + 0x38" identifier + number_literal) , (pointer_expression "&local_58" & identifier) ))) ;) })) (if_statement "if (uVar22 == 0xffffffff) {\n              uVar10 = 0xffff;\n            }\n            else {\n              local_58 = uVar22;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_5 + 0x38,&local_58);\n              uVar10 = 0xffff;\n            }" if (parenthesized_expression "(uVar22 == 0xffffffff)" ( (binary_expression "uVar22 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n              uVar10 = 0xffff;\n            }" { (expression_statement "uVar10 = 0xffff;" (assignment_expression "uVar10 = 0xffff" identifier = number_literal) ;) }) (else_clause "else {\n              local_58 = uVar22;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_5 + 0x38,&local_58);\n              uVar10 = 0xffff;\n            }" else (compound_statement "{\n              local_58 = uVar22;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_5 + 0x38,&local_58);\n              uVar10 = 0xffff;\n            }" { (expression_statement "local_58 = uVar22;" (assignment_expression "local_58 = uVar22" identifier = identifier) ;) (expression_statement "uStack_54 = uVar10;" (assignment_expression "uStack_54 = uVar10" identifier = identifier) ;) (expression_statement "FUN_001a3810(param_5 + 0x38,&local_58);" (call_expression "FUN_001a3810(param_5 + 0x38,&local_58)" identifier (argument_list "(param_5 + 0x38,&local_58)" ( (binary_expression "param_5 + 0x38" identifier + number_literal) , (pointer_expression "&local_58" & identifier) ))) ;) (expression_statement "uVar10 = 0xffff;" (assignment_expression "uVar10 = 0xffff" identifier = number_literal) ;) }))) })) (expression_statement "pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);" (assignment_expression "pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10)" identifier = (pointer_expression "*(code **)(PTR_DAT_0045c708 + 0x10)" * (cast_expression "(code **)(PTR_DAT_0045c708 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_0045c708 + 0x10)" ( (binary_expression "PTR_DAT_0045c708 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (pcVar13 == (code *)0x0) {\nLAB_0028c8d7:\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }" if (parenthesized_expression "(pcVar13 == (code *)0x0)" ( (binary_expression "pcVar13 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0028c8d7:\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }" { (labeled_statement "LAB_0028c8d7:\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");" statement_identifier : (expression_statement "FUN_0018ff20("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_0018ff20("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;)) })) (if_statement "if (pcVar13[0x5051] != (code)0x0) {\n            lVar15 = (**(code **)(*plVar17 + 0x48))(plVar17);\n            if (lVar15 == 0) {\n                    \n              FUN_0018ff20("../../gold/symtab.cc",0xc81,"sized_write_globals");\n            }\n            if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    \n              FUN_0018ff20("../../gold/output.h",0xc5,"address");\n            }\n            pcVar13 = *(code **)(lVar15 + 8);\n            local_d0 = local_d0 + -(long)pcVar13;\n          }" if (parenthesized_expression "(pcVar13[0x5051] != (code)0x0)" ( (binary_expression "pcVar13[0x5051] != (code)0x0" (subscript_expression "pcVar13[0x5051]" identifier [ number_literal ]) != (cast_expression "(code)0x0" ( (type_descriptor "code" type_identifier) ) number_literal)) )) (compound_statement "{\n            lVar15 = (**(code **)(*plVar17 + 0x48))(plVar17);\n            if (lVar15 == 0) {\n                    \n              FUN_0018ff20("../../gold/symtab.cc",0xc81,"sized_write_globals");\n            }\n            if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    \n              FUN_0018ff20("../../gold/output.h",0xc5,"address");\n            }\n            pcVar13 = *(code **)(lVar15 + 8);\n            local_d0 = local_d0 + -(long)pcVar13;\n          }" { (expression_statement "lVar15 = (**(code **)(*plVar17 + 0x48))(plVar17);" (assignment_expression "lVar15 = (**(code **)(*plVar17 + 0x48))(plVar17)" identifier = (call_expression "(**(code **)(*plVar17 + 0x48))(plVar17)" (parenthesized_expression "(**(code **)(*plVar17 + 0x48))" ( (pointer_expression "**(code **)(*plVar17 + 0x48)" * (pointer_expression "*(code **)(*plVar17 + 0x48)" * (cast_expression "(code **)(*plVar17 + 0x48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar17 + 0x48)" ( (binary_expression "*plVar17 + 0x48" (pointer_expression "*plVar17" * identifier) + number_literal) ))))) )) (argument_list "(plVar17)" ( identifier )))) ;) (if_statement "if (lVar15 == 0) {\n                    \n              FUN_0018ff20("../../gold/symtab.cc",0xc81,"sized_write_globals");\n            }" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n              FUN_0018ff20("../../gold/symtab.cc",0xc81,"sized_write_globals");\n            }" { (expression_statement "FUN_0018ff20("../../gold/symtab.cc",0xc81,"sized_write_globals");" (call_expression "FUN_0018ff20("../../gold/symtab.cc",0xc81,"sized_write_globals")" identifier (argument_list "("../../gold/symtab.cc",0xc81,"sized_write_globals")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""sized_write_globals"" " string_content ") ))) ;) })) (if_statement "if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    \n              FUN_0018ff20("../../gold/output.h",0xc5,"address");\n            }" if (parenthesized_expression "((*(byte *)(lVar15 + 0x20) & 1) == 0)" ( (binary_expression "(*(byte *)(lVar15 + 0x20) & 1) == 0" (parenthesized_expression "(*(byte *)(lVar15 + 0x20) & 1)" ( (binary_expression "*(byte *)(lVar15 + 0x20) & 1" (pointer_expression "*(byte *)(lVar15 + 0x20)" * (cast_expression "(byte *)(lVar15 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x20)" ( (binary_expression "lVar15 + 0x20" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_0028c9b0:\n                    \n              FUN_0018ff20("../../gold/output.h",0xc5,"address");\n            }" { (labeled_statement "LAB_0028c9b0:\n                    \n              FUN_0018ff20("../../gold/output.h",0xc5,"address");" statement_identifier : (expression_statement "FUN_0018ff20("../../gold/output.h",0xc5,"address");" (call_expression "FUN_0018ff20("../../gold/output.h",0xc5,"address")" identifier (argument_list "("../../gold/output.h",0xc5,"address")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""address"" " string_content ") ))) ;)) })) (expression_statement "pcVar13 = *(code **)(lVar15 + 8);" (assignment_expression "pcVar13 = *(code **)(lVar15 + 8)" identifier = (pointer_expression "*(code **)(lVar15 + 8)" * (cast_expression "(code **)(lVar15 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar15 + 8)" ( (binary_expression "lVar15 + 8" identifier + number_literal) ))))) ;) (expression_statement "local_d0 = local_d0 + -(long)pcVar13;" (assignment_expression "local_d0 = local_d0 + -(long)pcVar13" identifier = (binary_expression "local_d0 + -(long)pcVar13" identifier + (unary_expression "-(long)pcVar13" - (cast_expression "(long)pcVar13" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)))) ;) })) (break_statement "break;" break ;)) (case_statement "case 2:\n          uVar10 = bVar8 & 7;\nLAB_0028c143:\n          if ((char)uVar10 != '\x02') {\n                    \n            FUN_0018ff20("../../gold/symtab.h",200,"output_segment");\n          }\n          pcVar13 = (code *)FUN_0020de20(puVar6[2]);\n          if (pcVar13 == (code *)0x0) goto switchD_0028bebe_caseD_3;\n          if (*(code **)(*(long *)pcVar13 + 0x58) == FUN_0019a160) {\n            uVar10 = *(uint *)(pcVar13 + 0x7c);\n            pcVar13 = (code *)(ulong)uVar10;\n            if (uVar10 == 0xffffffff) {\nLAB_0028ca38:\n                    \n              FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx");\n            }\n          }\n          else {\n            pcVar13 = (code *)(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13);\n            uVar10 = (uint)pcVar13;\n          }\n          break;" case number_literal : (expression_statement "uVar10 = bVar8 & 7;" (assignment_expression "uVar10 = bVar8 & 7" identifier = (binary_expression "bVar8 & 7" identifier & number_literal)) ;) (labeled_statement "LAB_0028c143:\n          if ((char)uVar10 != '\x02') {\n                    \n            FUN_0018ff20("../../gold/symtab.h",200,"output_segment");\n          }" statement_identifier : (if_statement "if ((char)uVar10 != '\x02') {\n                    \n            FUN_0018ff20("../../gold/symtab.h",200,"output_segment");\n          }" if (parenthesized_expression "((char)uVar10 != '\x02')" ( (binary_expression "(char)uVar10 != '\x02'" (cast_expression "(char)uVar10" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n                    \n            FUN_0018ff20("../../gold/symtab.h",200,"output_segment");\n          }" { (expression_statement "FUN_0018ff20("../../gold/symtab.h",200,"output_segment");" (call_expression "FUN_0018ff20("../../gold/symtab.h",200,"output_segment")" identifier (argument_list "("../../gold/symtab.h",200,"output_segment")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""output_segment"" " string_content ") ))) ;) }))) (expression_statement "pcVar13 = (code *)FUN_0020de20(puVar6[2]);" (assignment_expression "pcVar13 = (code *)FUN_0020de20(puVar6[2])" identifier = (cast_expression "(code *)FUN_0020de20(puVar6[2])" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0020de20(puVar6[2])" identifier (argument_list "(puVar6[2])" ( (subscript_expression "puVar6[2]" identifier [ number_literal ]) ))))) ;) (if_statement "if (pcVar13 == (code *)0x0) goto switchD_0028bebe_caseD_3;" if (parenthesized_expression "(pcVar13 == (code *)0x0)" ( (binary_expression "pcVar13 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto switchD_0028bebe_caseD_3;" goto statement_identifier ;)) (if_statement "if (*(code **)(*(long *)pcVar13 + 0x58) == FUN_0019a160) {\n            uVar10 = *(uint *)(pcVar13 + 0x7c);\n            pcVar13 = (code *)(ulong)uVar10;\n            if (uVar10 == 0xffffffff) {\nLAB_0028ca38:\n                    \n              FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx");\n            }\n          }\n          else {\n            pcVar13 = (code *)(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13);\n            uVar10 = (uint)pcVar13;\n          }" if (parenthesized_expression "(*(code **)(*(long *)pcVar13 + 0x58) == FUN_0019a160)" ( (binary_expression "*(code **)(*(long *)pcVar13 + 0x58) == FUN_0019a160" (pointer_expression "*(code **)(*(long *)pcVar13 + 0x58)" * (cast_expression "(code **)(*(long *)pcVar13 + 0x58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)pcVar13 + 0x58)" ( (binary_expression "*(long *)pcVar13 + 0x58" (pointer_expression "*(long *)pcVar13" * (cast_expression "(long *)pcVar13" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == identifier) )) (compound_statement "{\n            uVar10 = *(uint *)(pcVar13 + 0x7c);\n            pcVar13 = (code *)(ulong)uVar10;\n            if (uVar10 == 0xffffffff) {\nLAB_0028ca38:\n                    \n              FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx");\n            }\n          }" { (expression_statement "uVar10 = *(uint *)(pcVar13 + 0x7c);" (assignment_expression "uVar10 = *(uint *)(pcVar13 + 0x7c)" identifier = (pointer_expression "*(uint *)(pcVar13 + 0x7c)" * (cast_expression "(uint *)(pcVar13 + 0x7c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x7c)" ( (binary_expression "pcVar13 + 0x7c" identifier + number_literal) ))))) ;) (expression_statement "pcVar13 = (code *)(ulong)uVar10;" (assignment_expression "pcVar13 = (code *)(ulong)uVar10" identifier = (cast_expression "(code *)(ulong)uVar10" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)uVar10" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) (if_statement "if (uVar10 == 0xffffffff) {\nLAB_0028ca38:\n                    \n              FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx");\n            }" if (parenthesized_expression "(uVar10 == 0xffffffff)" ( (binary_expression "uVar10 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\nLAB_0028ca38:\n                    \n              FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx");\n            }" { (labeled_statement "LAB_0028ca38:\n                    \n              FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx");" statement_identifier : (expression_statement "FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx");" (call_expression "FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx")" identifier (argument_list "("../../gold/output.h",0x1043,"do_out_shndx")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""do_out_shndx"" " string_content ") ))) ;)) })) }) (else_clause "else {\n            pcVar13 = (code *)(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13);\n            uVar10 = (uint)pcVar13;\n          }" else (compound_statement "{\n            pcVar13 = (code *)(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13);\n            uVar10 = (uint)pcVar13;\n          }" { (expression_statement "pcVar13 = (code *)(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13);" (assignment_expression "pcVar13 = (code *)(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13)" identifier = (cast_expression "(code *)(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13)" (parenthesized_expression "(**(code **)(*(long *)pcVar13 + 0x58))" ( (pointer_expression "**(code **)(*(long *)pcVar13 + 0x58)" * (pointer_expression "*(code **)(*(long *)pcVar13 + 0x58)" * (cast_expression "(code **)(*(long *)pcVar13 + 0x58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)pcVar13 + 0x58)" ( (binary_expression "*(long *)pcVar13 + 0x58" (pointer_expression "*(long *)pcVar13" * (cast_expression "(long *)pcVar13" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar13)" ( identifier ))))) ;) (expression_statement "uVar10 = (uint)pcVar13;" (assignment_expression "uVar10 = (uint)pcVar13" identifier = (cast_expression "(uint)pcVar13" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }))) (break_statement "break;" break ;)) (case_statement "case 3:\nswitchD_0028bebe_caseD_3:\n          uVar10 = 0xfff1;\n          break;" case number_literal : (labeled_statement "switchD_0028bebe_caseD_3:\n          uVar10 = 0xfff1;" statement_identifier : (expression_statement "uVar10 = 0xfff1;" (assignment_expression "uVar10 = 0xfff1" identifier = number_literal) ;)) (break_statement "break;" break ;)) (case_statement "case 4:\nswitchD_0028bebe_caseD_4:\n          uVar10 = 0;" case number_literal : (labeled_statement "switchD_0028bebe_caseD_4:\n          uVar10 = 0;" statement_identifier : (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;))) })) (labeled_statement "LAB_0028bf30:\n        if (uVar12 != 0xffffffff) {\n          uVar12 = uVar12 - iVar1;\n          if (uVar2 <= uVar12) {\n                    \n            FUN_0018ff20("../../gold/symtab.cc",0xca1,"sized_write_globals");\n          }\n          pcVar13 = (code *)FUN_00289ee0(param_1,puVar6,local_d0,uVar10,uVar11,param_2,\n                                         (ulong)(uVar12 * 0x18) + local_98);\n        }" statement_identifier : (if_statement "if (uVar12 != 0xffffffff) {\n          uVar12 = uVar12 - iVar1;\n          if (uVar2 <= uVar12) {\n                    \n            FUN_0018ff20("../../gold/symtab.cc",0xca1,"sized_write_globals");\n          }\n          pcVar13 = (code *)FUN_00289ee0(param_1,puVar6,local_d0,uVar10,uVar11,param_2,\n                                         (ulong)(uVar12 * 0x18) + local_98);\n        }" if (parenthesized_expression "(uVar12 != 0xffffffff)" ( (binary_expression "uVar12 != 0xffffffff" identifier != number_literal) )) (compound_statement "{\n          uVar12 = uVar12 - iVar1;\n          if (uVar2 <= uVar12) {\n                    \n            FUN_0018ff20("../../gold/symtab.cc",0xca1,"sized_write_globals");\n          }\n          pcVar13 = (code *)FUN_00289ee0(param_1,puVar6,local_d0,uVar10,uVar11,param_2,\n                                         (ulong)(uVar12 * 0x18) + local_98);\n        }" { (expression_statement "uVar12 = uVar12 - iVar1;" (assignment_expression "uVar12 = uVar12 - iVar1" identifier = (binary_expression "uVar12 - iVar1" identifier - identifier)) ;) (if_statement "if (uVar2 <= uVar12) {\n                    \n            FUN_0018ff20("../../gold/symtab.cc",0xca1,"sized_write_globals");\n          }" if (parenthesized_expression "(uVar2 <= uVar12)" ( (binary_expression "uVar2 <= uVar12" identifier <= identifier) )) (compound_statement "{\n                    \n            FUN_0018ff20("../../gold/symtab.cc",0xca1,"sized_write_globals");\n          }" { (expression_statement "FUN_0018ff20("../../gold/symtab.cc",0xca1,"sized_write_globals");" (call_expression "FUN_0018ff20("../../gold/symtab.cc",0xca1,"sized_write_globals")" identifier (argument_list "("../../gold/symtab.cc",0xca1,"sized_write_globals")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""sized_write_globals"" " string_content ") ))) ;) })) (expression_statement "pcVar13 = (code *)FUN_00289ee0(param_1,puVar6,local_d0,uVar10,uVar11,param_2,\n                                         (ulong)(uVar12 * 0x18) + local_98);" (assignment_expression "pcVar13 = (code *)FUN_00289ee0(param_1,puVar6,local_d0,uVar10,uVar11,param_2,\n                                         (ulong)(uVar12 * 0x18) + local_98)" identifier = (cast_expression "(code *)FUN_00289ee0(param_1,puVar6,local_d0,uVar10,uVar11,param_2,\n                                         (ulong)(uVar12 * 0x18) + local_98)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00289ee0(param_1,puVar6,local_d0,uVar10,uVar11,param_2,\n                                         (ulong)(uVar12 * 0x18) + local_98)" identifier (argument_list "(param_1,puVar6,local_d0,uVar10,uVar11,param_2,\n                                         (ulong)(uVar12 * 0x18) + local_98)" ( identifier , identifier , identifier , identifier , identifier , identifier , (binary_expression "(ulong)(uVar12 * 0x18) + local_98" (call_expression "(ulong)(uVar12 * 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar12 * 0x18)" ( (binary_expression "uVar12 * 0x18" identifier * number_literal) ))) + identifier) ))))) ;) }))) (if_statement "if (uVar22 != 0xffffffff) {\n          uVar22 = uVar22 - iVar3;\n          if (uVar4 <= uVar22) {\n                    \n            FUN_0018ff20("../../gold/symtab.cc",0xcaa,"sized_write_globals");\n          }\n          FUN_00289ee0(param_1,puVar6,pcVar14,uVar10,uVar11,param_3);\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          pcVar13 = *(code **)(*plVar17 + 0x138);\n          if (pcVar13 != FUN_00172ba0) {\n            pcVar13 = (code *)(*pcVar13)(plVar17,puVar6,local_c0 + uVar22 * 0x18);\n          }\n        }" if (parenthesized_expression "(uVar22 != 0xffffffff)" ( (binary_expression "uVar22 != 0xffffffff" identifier != number_literal) )) (compound_statement "{\n          uVar22 = uVar22 - iVar3;\n          if (uVar4 <= uVar22) {\n                    \n            FUN_0018ff20("../../gold/symtab.cc",0xcaa,"sized_write_globals");\n          }\n          FUN_00289ee0(param_1,puVar6,pcVar14,uVar10,uVar11,param_3);\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          pcVar13 = *(code **)(*plVar17 + 0x138);\n          if (pcVar13 != FUN_00172ba0) {\n            pcVar13 = (code *)(*pcVar13)(plVar17,puVar6,local_c0 + uVar22 * 0x18);\n          }\n        }" { (expression_statement "uVar22 = uVar22 - iVar3;" (assignment_expression "uVar22 = uVar22 - iVar3" identifier = (binary_expression "uVar22 - iVar3" identifier - identifier)) ;) (if_statement "if (uVar4 <= uVar22) {\n                    \n            FUN_0018ff20("../../gold/symtab.cc",0xcaa,"sized_write_globals");\n          }" if (parenthesized_expression "(uVar4 <= uVar22)" ( (binary_expression "uVar4 <= uVar22" identifier <= identifier) )) (compound_statement "{\n                    \n            FUN_0018ff20("../../gold/symtab.cc",0xcaa,"sized_write_globals");\n          }" { (expression_statement "FUN_0018ff20("../../gold/symtab.cc",0xcaa,"sized_write_globals");" (call_expression "FUN_0018ff20("../../gold/symtab.cc",0xcaa,"sized_write_globals")" identifier (argument_list "("../../gold/symtab.cc",0xcaa,"sized_write_globals")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""sized_write_globals"" " string_content ") ))) ;) })) (expression_statement "FUN_00289ee0(param_1,puVar6,pcVar14,uVar10,uVar11,param_3);" (call_expression "FUN_00289ee0(param_1,puVar6,pcVar14,uVar10,uVar11,param_3)" identifier (argument_list "(param_1,puVar6,pcVar14,uVar10,uVar11,param_3)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);" (assignment_expression "plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18)" identifier = (pointer_expression "*(long **)(PTR_DAT_0045c708 + 0x18)" * (cast_expression "(long **)(PTR_DAT_0045c708 + 0x18)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_0045c708 + 0x18)" ( (binary_expression "PTR_DAT_0045c708 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (plVar17 == (long *)0x0) goto LAB_0028c91f;" if (parenthesized_expression "(plVar17 == (long *)0x0)" ( (binary_expression "plVar17 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0028c91f;" goto statement_identifier ;)) (expression_statement "pcVar13 = *(code **)(*plVar17 + 0x138);" (assignment_expression "pcVar13 = *(code **)(*plVar17 + 0x138)" identifier = (pointer_expression "*(code **)(*plVar17 + 0x138)" * (cast_expression "(code **)(*plVar17 + 0x138)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar17 + 0x138)" ( (binary_expression "*plVar17 + 0x138" (pointer_expression "*plVar17" * identifier) + number_literal) ))))) ;) (if_statement "if (pcVar13 != FUN_00172ba0) {\n            pcVar13 = (code *)(*pcVar13)(plVar17,puVar6,local_c0 + uVar22 * 0x18);\n          }" if (parenthesized_expression "(pcVar13 != FUN_00172ba0)" ( (binary_expression "pcVar13 != FUN_00172ba0" identifier != identifier) )) (compound_statement "{\n            pcVar13 = (code *)(*pcVar13)(plVar17,puVar6,local_c0 + uVar22 * 0x18);\n          }" { (expression_statement "pcVar13 = (code *)(*pcVar13)(plVar17,puVar6,local_c0 + uVar22 * 0x18);" (assignment_expression "pcVar13 = (code *)(*pcVar13)(plVar17,puVar6,local_c0 + uVar22 * 0x18)" identifier = (cast_expression "(code *)(*pcVar13)(plVar17,puVar6,local_c0 + uVar22 * 0x18)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar13)(plVar17,puVar6,local_c0 + uVar22 * 0x18)" (parenthesized_expression "(*pcVar13)" ( (pointer_expression "*pcVar13" * identifier) )) (argument_list "(plVar17,puVar6,local_c0 + uVar22 * 0x18)" ( identifier , identifier , (binary_expression "local_c0 + uVar22 * 0x18" identifier + (binary_expression "uVar22 * 0x18" identifier * number_literal)) ))))) ;) })) })) })) (expression_statement "plVar24 = (long *)*plVar24;" (assignment_expression "plVar24 = (long *)*plVar24" identifier = (cast_expression "(long *)*plVar24" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar24" * identifier))) ;) }) while (parenthesized_expression "(plVar24 != (long *)0x0)" ( (binary_expression "plVar24 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "plVar23 = *(long **)(param_1 + 0x2a0);" (assignment_expression "plVar23 = *(long **)(param_1 + 0x2a0)" identifier = (pointer_expression "*(long **)(param_1 + 0x2a0)" * (cast_expression "(long **)(param_1 + 0x2a0)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x2a0)" ( (binary_expression "param_1 + 0x2a0" identifier + number_literal) ))))) ;) (if_statement "if (plVar23 == *(long **)(param_1 + 0x2a8)) {\n    return pcVar13;\n  }" if (parenthesized_expression "(plVar23 == *(long **)(param_1 + 0x2a8))" ( (binary_expression "plVar23 == *(long **)(param_1 + 0x2a8)" identifier == (pointer_expression "*(long **)(param_1 + 0x2a8)" * (cast_expression "(long **)(param_1 + 0x2a8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) ))))) )) (compound_statement "{\n    return pcVar13;\n  }" { (return_statement "return pcVar13;" return identifier ;) })) (expression_statement "lVar20 = *plVar23;" (assignment_expression "lVar20 = *plVar23" identifier = (pointer_expression "*plVar23" * identifier)) ;) (expression_statement "iVar5 = *(int *)(lVar20 + 0x1c);" (assignment_expression "iVar5 = *(int *)(lVar20 + 0x1c)" identifier = (pointer_expression "*(int *)(lVar20 + 0x1c)" * (cast_expression "(int *)(lVar20 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar20 + 0x1c)" ( (binary_expression "lVar20 + 0x1c" identifier + number_literal) ))))) ;) (while_statement "while (iVar5 != 0) {\n    plVar23 = plVar23 + 1;\n    if (local_c0 == (code *)0x0) {\n      iVar21 = -1;\n    }\n    else {\n      iVar21 = *(int *)(lVar20 + 0x20);\n      if (iVar21 == 0) {\nLAB_0028c898:\n                    \n        FUN_0018ff20("../../gold/symtab.h",0x19a,"dynsym_index");\n      }\n    }\n    uVar12 = *(byte *)(lVar20 + 0x3a) & 7;\n    pcVar13 = (code *)(ulong)uVar12;\n    cVar9 = (char)uVar12;\n    if (cVar9 == '\x03') {\n      uVar25 = 0xfff1;\n    }\n    else {\n      if (cVar9 != '\x04') {\n                    \n        FUN_0018ff20("../../gold/symtab.cc",0xccb,"sized_write_globals");\n      }\n      uVar25 = 0;\n    }\n    if (iVar5 != -1) {\n      uVar12 = iVar5 - iVar1;\n      if (uVar2 <= uVar12) {\n                    \n        FUN_0018ff20("../../gold/symtab.cc",0xcd1,"sized_write_globals");\n      }\n      pcVar13 = (code *)FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                                     *(byte *)(lVar20 + 0x38) >> 4,param_2,\n                                     (ulong)(uVar12 * 0x18) + local_98);\n    }\n    if (iVar21 != -1) {\n      uVar12 = iVar21 - iVar3;\n      if (uVar4 <= uVar12) {\n                    \n        FUN_0018ff20("../../gold/symtab.cc",0xcdb,"sized_write_globals");\n      }\n      pcVar13 = local_c0 + uVar12 * 0x18;\n      FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                   *(byte *)(lVar20 + 0x38) >> 4,param_3);\n    }\n    if (*(long **)(param_1 + 0x2a8) == plVar23) {\n      return pcVar13;\n    }\n    lVar20 = *plVar23;\n    iVar5 = *(int *)(lVar20 + 0x1c);\n  }" while (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n    plVar23 = plVar23 + 1;\n    if (local_c0 == (code *)0x0) {\n      iVar21 = -1;\n    }\n    else {\n      iVar21 = *(int *)(lVar20 + 0x20);\n      if (iVar21 == 0) {\nLAB_0028c898:\n                    \n        FUN_0018ff20("../../gold/symtab.h",0x19a,"dynsym_index");\n      }\n    }\n    uVar12 = *(byte *)(lVar20 + 0x3a) & 7;\n    pcVar13 = (code *)(ulong)uVar12;\n    cVar9 = (char)uVar12;\n    if (cVar9 == '\x03') {\n      uVar25 = 0xfff1;\n    }\n    else {\n      if (cVar9 != '\x04') {\n                    \n        FUN_0018ff20("../../gold/symtab.cc",0xccb,"sized_write_globals");\n      }\n      uVar25 = 0;\n    }\n    if (iVar5 != -1) {\n      uVar12 = iVar5 - iVar1;\n      if (uVar2 <= uVar12) {\n                    \n        FUN_0018ff20("../../gold/symtab.cc",0xcd1,"sized_write_globals");\n      }\n      pcVar13 = (code *)FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                                     *(byte *)(lVar20 + 0x38) >> 4,param_2,\n                                     (ulong)(uVar12 * 0x18) + local_98);\n    }\n    if (iVar21 != -1) {\n      uVar12 = iVar21 - iVar3;\n      if (uVar4 <= uVar12) {\n                    \n        FUN_0018ff20("../../gold/symtab.cc",0xcdb,"sized_write_globals");\n      }\n      pcVar13 = local_c0 + uVar12 * 0x18;\n      FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                   *(byte *)(lVar20 + 0x38) >> 4,param_3);\n    }\n    if (*(long **)(param_1 + 0x2a8) == plVar23) {\n      return pcVar13;\n    }\n    lVar20 = *plVar23;\n    iVar5 = *(int *)(lVar20 + 0x1c);\n  }" { (expression_statement "plVar23 = plVar23 + 1;" (assignment_expression "plVar23 = plVar23 + 1" identifier = (binary_expression "plVar23 + 1" identifier + number_literal)) ;) (if_statement "if (local_c0 == (code *)0x0) {\n      iVar21 = -1;\n    }\n    else {\n      iVar21 = *(int *)(lVar20 + 0x20);\n      if (iVar21 == 0) {\nLAB_0028c898:\n                    \n        FUN_0018ff20("../../gold/symtab.h",0x19a,"dynsym_index");\n      }\n    }" if (parenthesized_expression "(local_c0 == (code *)0x0)" ( (binary_expression "local_c0 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar21 = -1;\n    }" { (expression_statement "iVar21 = -1;" (assignment_expression "iVar21 = -1" identifier = number_literal) ;) }) (else_clause "else {\n      iVar21 = *(int *)(lVar20 + 0x20);\n      if (iVar21 == 0) {\nLAB_0028c898:\n                    \n        FUN_0018ff20("../../gold/symtab.h",0x19a,"dynsym_index");\n      }\n    }" else (compound_statement "{\n      iVar21 = *(int *)(lVar20 + 0x20);\n      if (iVar21 == 0) {\nLAB_0028c898:\n                    \n        FUN_0018ff20("../../gold/symtab.h",0x19a,"dynsym_index");\n      }\n    }" { (expression_statement "iVar21 = *(int *)(lVar20 + 0x20);" (assignment_expression "iVar21 = *(int *)(lVar20 + 0x20)" identifier = (pointer_expression "*(int *)(lVar20 + 0x20)" * (cast_expression "(int *)(lVar20 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar20 + 0x20)" ( (binary_expression "lVar20 + 0x20" identifier + number_literal) ))))) ;) (if_statement "if (iVar21 == 0) {\nLAB_0028c898:\n                    \n        FUN_0018ff20("../../gold/symtab.h",0x19a,"dynsym_index");\n      }" if (parenthesized_expression "(iVar21 == 0)" ( (binary_expression "iVar21 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0028c898:\n                    \n        FUN_0018ff20("../../gold/symtab.h",0x19a,"dynsym_index");\n      }" { (labeled_statement "LAB_0028c898:\n                    \n        FUN_0018ff20("../../gold/symtab.h",0x19a,"dynsym_index");" statement_identifier : (expression_statement "FUN_0018ff20("../../gold/symtab.h",0x19a,"dynsym_index");" (call_expression "FUN_0018ff20("../../gold/symtab.h",0x19a,"dynsym_index")" identifier (argument_list "("../../gold/symtab.h",0x19a,"dynsym_index")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""dynsym_index"" " string_content ") ))) ;)) })) }))) (expression_statement "uVar12 = *(byte *)(lVar20 + 0x3a) & 7;" (assignment_expression "uVar12 = *(byte *)(lVar20 + 0x3a) & 7" identifier = (binary_expression "*(byte *)(lVar20 + 0x3a) & 7" (pointer_expression "*(byte *)(lVar20 + 0x3a)" * (cast_expression "(byte *)(lVar20 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar20 + 0x3a)" ( (binary_expression "lVar20 + 0x3a" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "pcVar13 = (code *)(ulong)uVar12;" (assignment_expression "pcVar13 = (code *)(ulong)uVar12" identifier = (cast_expression "(code *)(ulong)uVar12" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)uVar12" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) (expression_statement "cVar9 = (char)uVar12;" (assignment_expression "cVar9 = (char)uVar12" identifier = (cast_expression "(char)uVar12" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (cVar9 == '\x03') {\n      uVar25 = 0xfff1;\n    }\n    else {\n      if (cVar9 != '\x04') {\n                    \n        FUN_0018ff20("../../gold/symtab.cc",0xccb,"sized_write_globals");\n      }\n      uVar25 = 0;\n    }" if (parenthesized_expression "(cVar9 == '\x03')" ( (binary_expression "cVar9 == '\x03'" identifier == (char_literal "'\x03'" ' escape_sequence ')) )) (compound_statement "{\n      uVar25 = 0xfff1;\n    }" { (expression_statement "uVar25 = 0xfff1;" (assignment_expression "uVar25 = 0xfff1" identifier = number_literal) ;) }) (else_clause "else {\n      if (cVar9 != '\x04') {\n                    \n        FUN_0018ff20("../../gold/symtab.cc",0xccb,"sized_write_globals");\n      }\n      uVar25 = 0;\n    }" else (compound_statement "{\n      if (cVar9 != '\x04') {\n                    \n        FUN_0018ff20("../../gold/symtab.cc",0xccb,"sized_write_globals");\n      }\n      uVar25 = 0;\n    }" { (if_statement "if (cVar9 != '\x04') {\n                    \n        FUN_0018ff20("../../gold/symtab.cc",0xccb,"sized_write_globals");\n      }" if (parenthesized_expression "(cVar9 != '\x04')" ( (binary_expression "cVar9 != '\x04'" identifier != (char_literal "'\x04'" ' escape_sequence ')) )) (compound_statement "{\n                    \n        FUN_0018ff20("../../gold/symtab.cc",0xccb,"sized_write_globals");\n      }" { (expression_statement "FUN_0018ff20("../../gold/symtab.cc",0xccb,"sized_write_globals");" (call_expression "FUN_0018ff20("../../gold/symtab.cc",0xccb,"sized_write_globals")" identifier (argument_list "("../../gold/symtab.cc",0xccb,"sized_write_globals")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""sized_write_globals"" " string_content ") ))) ;) })) (expression_statement "uVar25 = 0;" (assignment_expression "uVar25 = 0" identifier = number_literal) ;) }))) (if_statement "if (iVar5 != -1) {\n      uVar12 = iVar5 - iVar1;\n      if (uVar2 <= uVar12) {\n                    \n        FUN_0018ff20("../../gold/symtab.cc",0xcd1,"sized_write_globals");\n      }\n      pcVar13 = (code *)FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                                     *(byte *)(lVar20 + 0x38) >> 4,param_2,\n                                     (ulong)(uVar12 * 0x18) + local_98);\n    }" if (parenthesized_expression "(iVar5 != -1)" ( (binary_expression "iVar5 != -1" identifier != number_literal) )) (compound_statement "{\n      uVar12 = iVar5 - iVar1;\n      if (uVar2 <= uVar12) {\n                    \n        FUN_0018ff20("../../gold/symtab.cc",0xcd1,"sized_write_globals");\n      }\n      pcVar13 = (code *)FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                                     *(byte *)(lVar20 + 0x38) >> 4,param_2,\n                                     (ulong)(uVar12 * 0x18) + local_98);\n    }" { (expression_statement "uVar12 = iVar5 - iVar1;" (assignment_expression "uVar12 = iVar5 - iVar1" identifier = (binary_expression "iVar5 - iVar1" identifier - identifier)) ;) (if_statement "if (uVar2 <= uVar12) {\n                    \n        FUN_0018ff20("../../gold/symtab.cc",0xcd1,"sized_write_globals");\n      }" if (parenthesized_expression "(uVar2 <= uVar12)" ( (binary_expression "uVar2 <= uVar12" identifier <= identifier) )) (compound_statement "{\n                    \n        FUN_0018ff20("../../gold/symtab.cc",0xcd1,"sized_write_globals");\n      }" { (expression_statement "FUN_0018ff20("../../gold/symtab.cc",0xcd1,"sized_write_globals");" (call_expression "FUN_0018ff20("../../gold/symtab.cc",0xcd1,"sized_write_globals")" identifier (argument_list "("../../gold/symtab.cc",0xcd1,"sized_write_globals")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""sized_write_globals"" " string_content ") ))) ;) })) (expression_statement "pcVar13 = (code *)FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                                     *(byte *)(lVar20 + 0x38) >> 4,param_2,\n                                     (ulong)(uVar12 * 0x18) + local_98);" (assignment_expression "pcVar13 = (code *)FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                                     *(byte *)(lVar20 + 0x38) >> 4,param_2,\n                                     (ulong)(uVar12 * 0x18) + local_98)" identifier = (cast_expression "(code *)FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                                     *(byte *)(lVar20 + 0x38) >> 4,param_2,\n                                     (ulong)(uVar12 * 0x18) + local_98)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                                     *(byte *)(lVar20 + 0x38) >> 4,param_2,\n                                     (ulong)(uVar12 * 0x18) + local_98)" identifier (argument_list "(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                                     *(byte *)(lVar20 + 0x38) >> 4,param_2,\n                                     (ulong)(uVar12 * 0x18) + local_98)" ( identifier , identifier , (pointer_expression "*(undefined8 *)(lVar20 + 0x40)" * (cast_expression "(undefined8 *)(lVar20 + 0x40)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar20 + 0x40)" ( (binary_expression "lVar20 + 0x40" identifier + number_literal) )))) , identifier , (binary_expression "*(byte *)(lVar20 + 0x38) >> 4" (pointer_expression "*(byte *)(lVar20 + 0x38)" * (cast_expression "(byte *)(lVar20 + 0x38)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar20 + 0x38)" ( (binary_expression "lVar20 + 0x38" identifier + number_literal) )))) >> number_literal) , identifier , (binary_expression "(ulong)(uVar12 * 0x18) + local_98" (call_expression "(ulong)(uVar12 * 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar12 * 0x18)" ( (binary_expression "uVar12 * 0x18" identifier * number_literal) ))) + identifier) ))))) ;) })) (if_statement "if (iVar21 != -1) {\n      uVar12 = iVar21 - iVar3;\n      if (uVar4 <= uVar12) {\n                    \n        FUN_0018ff20("../../gold/symtab.cc",0xcdb,"sized_write_globals");\n      }\n      pcVar13 = local_c0 + uVar12 * 0x18;\n      FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                   *(byte *)(lVar20 + 0x38) >> 4,param_3);\n    }" if (parenthesized_expression "(iVar21 != -1)" ( (binary_expression "iVar21 != -1" identifier != number_literal) )) (compound_statement "{\n      uVar12 = iVar21 - iVar3;\n      if (uVar4 <= uVar12) {\n                    \n        FUN_0018ff20("../../gold/symtab.cc",0xcdb,"sized_write_globals");\n      }\n      pcVar13 = local_c0 + uVar12 * 0x18;\n      FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                   *(byte *)(lVar20 + 0x38) >> 4,param_3);\n    }" { (expression_statement "uVar12 = iVar21 - iVar3;" (assignment_expression "uVar12 = iVar21 - iVar3" identifier = (binary_expression "iVar21 - iVar3" identifier - identifier)) ;) (if_statement "if (uVar4 <= uVar12) {\n                    \n        FUN_0018ff20("../../gold/symtab.cc",0xcdb,"sized_write_globals");\n      }" if (parenthesized_expression "(uVar4 <= uVar12)" ( (binary_expression "uVar4 <= uVar12" identifier <= identifier) )) (compound_statement "{\n                    \n        FUN_0018ff20("../../gold/symtab.cc",0xcdb,"sized_write_globals");\n      }" { (expression_statement "FUN_0018ff20("../../gold/symtab.cc",0xcdb,"sized_write_globals");" (call_expression "FUN_0018ff20("../../gold/symtab.cc",0xcdb,"sized_write_globals")" identifier (argument_list "("../../gold/symtab.cc",0xcdb,"sized_write_globals")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""sized_write_globals"" " string_content ") ))) ;) })) (expression_statement "pcVar13 = local_c0 + uVar12 * 0x18;" (assignment_expression "pcVar13 = local_c0 + uVar12 * 0x18" identifier = (binary_expression "local_c0 + uVar12 * 0x18" identifier + (binary_expression "uVar12 * 0x18" identifier * number_literal))) ;) (expression_statement "FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                   *(byte *)(lVar20 + 0x38) >> 4,param_3);" (call_expression "FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                   *(byte *)(lVar20 + 0x38) >> 4,param_3)" identifier (argument_list "(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                   *(byte *)(lVar20 + 0x38) >> 4,param_3)" ( identifier , identifier , (pointer_expression "*(undefined8 *)(lVar20 + 0x40)" * (cast_expression "(undefined8 *)(lVar20 + 0x40)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar20 + 0x40)" ( (binary_expression "lVar20 + 0x40" identifier + number_literal) )))) , identifier , (binary_expression "*(byte *)(lVar20 + 0x38) >> 4" (pointer_expression "*(byte *)(lVar20 + 0x38)" * (cast_expression "(byte *)(lVar20 + 0x38)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar20 + 0x38)" ( (binary_expression "lVar20 + 0x38" identifier + number_literal) )))) >> number_literal) , identifier ))) ;) })) (if_statement "if (*(long **)(param_1 + 0x2a8) == plVar23) {\n      return pcVar13;\n    }" if (parenthesized_expression "(*(long **)(param_1 + 0x2a8) == plVar23)" ( (binary_expression "*(long **)(param_1 + 0x2a8) == plVar23" (pointer_expression "*(long **)(param_1 + 0x2a8)" * (cast_expression "(long **)(param_1 + 0x2a8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n      return pcVar13;\n    }" { (return_statement "return pcVar13;" return identifier ;) })) (expression_statement "lVar20 = *plVar23;" (assignment_expression "lVar20 = *plVar23" identifier = (pointer_expression "*plVar23" * identifier)) ;) (expression_statement "iVar5 = *(int *)(lVar20 + 0x1c);" (assignment_expression "iVar5 = *(int *)(lVar20 + 0x1c)" identifier = (pointer_expression "*(int *)(lVar20 + 0x1c)" * (cast_expression "(int *)(lVar20 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar20 + 0x1c)" ( (binary_expression "lVar20 + 0x1c" identifier + number_literal) ))))) ;) })) (labeled_statement "LAB_0028c880:\n                    \n  FUN_0018ff20("../../gold/symtab.h",0x180,"symtab_index");" statement_identifier : (expression_statement "FUN_0018ff20("../../gold/symtab.h",0x180,"symtab_index");" (call_expression "FUN_0018ff20("../../gold/symtab.h",0x180,"symtab_index")" identifier (argument_list "("../../gold/symtab.h",0x180,"symtab_index")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""symtab_index"" " string_content ") ))) ;)) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) )))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;)) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT * LIT) ))) + IDENT) )))) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) < LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;)) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) & LIT) )) == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) , (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT)) ))) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) ))) )) && (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) != LIT) ))) )) (compound_statement { (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) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) != IDENT) )) (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 , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) })) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (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 = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (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) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) >> LIT) & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )))) )) (argument_list ( ))))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )))) )) (argument_list ( ))))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) )))) )) (argument_list ( ))))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) (ERROR : : IDENT) + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression (parenthesized_expression ( (ERROR (pointer_expression & IDENT) : :) IDENT )) [ IDENT ])))) )))) ;) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT : (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;))) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;)) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;)) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) (ERROR : : IDENT) + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression (parenthesized_expression ( (ERROR (pointer_expression & IDENT) : :) IDENT )) [ IDENT ])))) )))) ;) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression * IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))) != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) })) (break_statement break ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;)) })) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == (char_literal ' escape_sequence '))) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - (subscript_expression IDENT [ LIT ])) >> LIT) ))) <= IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT ))))) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (field_expression IDENT . field_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 (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (field_expression IDENT . field_identifier) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - (subscript_expression IDENT [ LIT ])) >> LIT) ))) <= IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;)) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (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 , (binary_expression (field_expression IDENT . field_identifier) & LIT) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) == 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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (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 )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression & IDENT) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (cast_expression ( (type_descriptor TYPE) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (unary_expression - (subscript_expression IDENT [ LIT ])))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT ))))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) >> LIT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression LIT - (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == (char_literal ' escape_sequence ')) )))) ;) }))) (break_statement break ;)) (case_statement case LIT : (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (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 ") ))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression & IDENT) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (cast_expression ( (type_descriptor TYPE) ) 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 )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;)) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (unary_expression - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)))) ;) })) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_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 *)) ) IDENT)) + LIT) )))) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;)) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }))) (break_statement break ;)) (case_statement case LIT : (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (break_statement break ;)) (case_statement case LIT : (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;))) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT * LIT) ))) + IDENT) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , (binary_expression IDENT + (binary_expression IDENT * LIT)) ))))) ;) })) })) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;)) })) }))) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) , IDENT , (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT * LIT) ))) + IDENT) ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;)) })))
(function_definition "code * FUN_0028bce0(long param_1,undefined8 param_2,undefined8 param_3,long param_4,long param_5,\n                   long param_6)\n\n{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  undefined8 *puVar6;\n  byte bVar7;\n  byte bVar8;\n  char cVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  code *pcVar13;\n  code *pcVar14;\n  long lVar15;\n  undefined8 uVar16;\n  long *plVar17;\n  long *plVar18;\n  ulong uVar19;\n  long lVar20;\n  int iVar21;\n  uint uVar22;\n  long *plVar23;\n  long *plVar24;\n  undefined8 uVar25;\n  undefined1 auVar26 [16];\n  code *local_d0;\n  code *local_c0;\n  long local_98;\n  uint local_58;\n  uint uStack_54;\n  undefined1 auStack_48 [24];\n  \n  plVar23 = *(long **)(PTR_DAT_0045c708 + 0x18);\n  if (plVar23 == (long *)0x0) {\nLAB_0028c91f:\n                    \n    FUN_0018ff20("../../gold/parameters.h",0x69,"target");\n  }\n  iVar1 = *(int *)(param_1 + 8);\n  uVar2 = *(uint *)(param_1 + 0x18);\n  local_98 = *(long *)(param_1 + 0x10);\n  if ((uVar2 == 0) || (local_98 == 0)) {\n    local_98 = 0;\n  }\n  else {\n    if ((local_98 < 0) || (*(long *)(param_6 + 0x10) < (long)((ulong)(uVar2 * 0x18) + local_98)))\n    goto LAB_0028c9c8;\n    local_98 = local_98 + *(long *)(param_6 + 0x18);\n  }\n  iVar3 = *(int *)(param_1 + 0x28);\n  uVar4 = *(uint *)(param_1 + 0x2c);\n  pcVar13 = *(code **)(param_1 + 0x20);\n  if ((pcVar13 == (code *)0x0) || (uVar4 == 0)) {\n    local_c0 = (code *)0x0;\n  }\n  else {\n    if (((long)pcVar13 < 0) || (*(long *)(param_6 + 0x10) < (long)(pcVar13 + uVar4 * 0x18))) {\nLAB_0028c9c8:\n      FUN_00284650();\nLAB_0028c9cd:\n                    \n      FUN_0018ff20("../../gold/symtab.cc",0xc59,"sized_write_globals");\n    }\n    pcVar13 = pcVar13 + *(long *)(param_6 + 0x18);\n    local_c0 = pcVar13;\n  }\n  plVar24 = *(long **)(param_1 + 0x40);\n  if (plVar24 != (long *)0x0) {\n    lVar20 = (long)DAT_003a0b74;\n    do {\n      puVar6 = (undefined8 *)plVar24[3];\n      if (((((*(byte *)((long)puVar6 + 0x3a) & 7) == 0) &&\n           (lVar15 = puVar6[2], (*(byte *)(lVar15 + 0x3c) & 1) != 0)) && (*(int *)(puVar6 + 3) == 0)\n          ) && (*(byte *)(puVar6 + 7) >> 4 != 2)) {\n        if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) goto LAB_0028c8d7;\n        if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x339) == '\0') {\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          if (*(code **)(*plVar17 + 0x38) != FUN_00172b10) {\n            cVar9 = (**(code **)(*plVar17 + 0x38))(plVar17,puVar6);\n            if (cVar9 != '\0') goto LAB_0028be18;\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) goto LAB_0028c752;\n            lVar15 = puVar6[2];\n          }\n          if ((*(byte *)(lVar15 + 0x3c) & 0x20) == 0) {\n            if (*(int *)(lVar15 + 0x88) == 0) {\n                    \n              FUN_0018ff20("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }\n            if (*(int *)(lVar15 + 0x88) != 1) {\n              FUN_00187dc0(puVar6);\n            }\n          }\n        }\n      }\nLAB_0028be18:\n      uVar12 = *(uint *)((long)puVar6 + 0x1c);\n      if (uVar12 == 0) goto LAB_0028c880;\n      if (local_c0 == (code *)0x0) {\n        uVar22 = 0xffffffff;\n        uVar11 = uVar12;\n      }\n      else {\n        uVar22 = *(uint *)(puVar6 + 4);\n        if (uVar22 == 0) goto LAB_0028c898;\n        uVar11 = uVar12 & uVar22;\n      }\n      pcVar13 = (code *)(ulong)uVar11;\n      if (uVar11 != 0xffffffff) {\n        local_d0 = (code *)puVar6[8];\n        uVar11 = (uint)(*(byte *)(puVar6 + 7) >> 4);\n        lVar15 = *(long *)(PTR_DAT_0045c708 + 0x10);\n        if (lVar15 == 0) goto LAB_0028c8d7;\n        bVar8 = *(byte *)((long)puVar6 + 0x3a);\n        uVar10 = bVar8 & 7;\n        bVar7 = (byte)uVar10;\n        pcVar14 = local_d0;\n        if ((*(char *)(lVar15 + 0x7739) != '\0') && (uVar11 == 1)) {\n          if (bVar7 == 0) {\n            if ((*(int *)(puVar6 + 3) == 0) && ((*(byte *)((long)puVar6 + 0x3b) >> 5 & 1) != 0)) {\n                    \n                    \n              pcVar13 = (code *)(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return pcVar13;\n            }\n                    \n                    \n            pcVar13 = (code *)(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();\n            return pcVar13;\n          }\n          if (bVar7 == 4) {\n                    \n                    \n            pcVar13 = (code *)(*(code *)(&DAT_003a0b64 + lVar20))();\n            return pcVar13;\n          }\n          if (4 < bVar7) goto LAB_0028c8b0;\n          pcVar13 = (code *)((long)&switchD_0028c5a7::switchdataD_003a0b78 +\n                            (long)(int)(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10]);\n                    \n          switch(uVar10) {\n          case 0:\nswitchD_0028c5a7_caseD_0:\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xaa,"shndx");\n          case 1:\n            uVar11 = 1;\n            goto LAB_0028c1cb;\n          case 2:\n            uVar11 = 1;\n            goto LAB_0028c143;\n          case 3:\n            uVar11 = 1;\n            uVar10 = 0xfff1;\n            break;\n          case 4:\n                    \n            uVar11 = 1;\n            uVar10 = 0;\n          }\n          goto LAB_0028bf30;\n        }\n        if ((uVar11 == 10) && (*(char *)(lVar15 + 0x2999) == '\0')) {\n          uVar11 = 1;\n        }\n        if (4 < bVar7) {\nLAB_0028c8b0:\n                    \n          FUN_0018ff20("../../gold/symtab.cc",0xc9b,"sized_write_globals");\n        }\n        pcVar13 = (code *)((long)&switchD_0028bebe::switchdataD_003a0b3c +\n                          (long)(int)(&switchD_0028bebe::switchdataD_003a0b3c)[uVar10]);\n        switch(uVar10) {\n        case 0:\n          if ((bVar8 & 7) != 0) goto switchD_0028c5a7_caseD_0;\n          uVar10 = *(uint *)(puVar6 + 3);\n          bVar8 = *(byte *)((long)puVar6 + 0x3b) >> 5;\n          if (((bVar8 & 1) != 1) && (uVar10 != 0xfff1)) {\n            cVar9 = FUN_00284a00(uVar10);\n            if (cVar9 == '\0') {\n              FUN_00285b30(&local_58,*puVar6);\n              uVar25 = CONCAT44(uStack_54,local_58);\n              uVar16 = gettext("%s: unsupported symbol section 0x%x");\n                    \n              FUN_001878b0(uVar16,uVar25,uVar10);\n              pcVar13 = (code *)auStack_48;\n              if ((code *)CONCAT44(uStack_54,local_58) != pcVar13) {\n                pcVar13 = (code *)FUN_002f1e60();\n              }\n              break;\n            }\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) {\nLAB_0028c752:\n                    \n              FUN_0018ff20("../../gold/symtab.h",0xa1,"object");\n            }\n          }\n          plVar17 = (long *)puVar6[2];\n          if ((*(byte *)((long)plVar17 + 0x3c) & 1) == 0) {\n            pcVar13 = (code *)(**(code **)(*plVar17 + 0x28))(plVar17);\n            if ((pcVar13 != (code *)0x0) || (uVar10 == 0)) goto switchD_0028bebe_caseD_4;\n            if (((bVar8 & 1) != 0) ||\n               ((uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')\n                ))) {\n              uVar19 = (ulong)uVar10;\n              if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;\n                plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n              }\n              else {\n                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);\n              }\n              cVar9 = FUN_00284da0(param_1,plVar17,uVar19);\n              if (cVar9 == '\0') {\n                if (plVar18 == (long *)0x0) goto LAB_0028c9cd;\n              }\n              else {\n                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);\n                plVar17 = auVar26._0_8_;\n                if (plVar17 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }\n                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    \n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }\n                if (plVar18 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }\n              }\n              if (*(code **)(*plVar18 + 0x58) == FUN_0019a160) {\n                uVar10 = *(uint *)((long)plVar18 + 0x7c);\n                if (uVar10 == 0xffffffff) goto LAB_0028ca38;\n              }\n              else {\n                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);\n              }\n              if (0xfeff < uVar10) {\n                if (uVar12 != 0xffffffff) {\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }\n                if (uVar22 == 0xffffffff) {\n                  uVar10 = 0xffff;\n                }\n                else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }\n              }\n              pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n              if (pcVar13 == (code *)0x0) goto LAB_0028c8d7;\n              if (pcVar13[0x5051] != (code)0x0) {\n                if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;\n                pcVar13 = local_d0 + -plVar18[1];\n                local_d0 = pcVar13;\n              }\n            }\n          }\n          else {\n            if ((*(byte *)((long)puVar6 + 0x3b) & 2) != 0) {\n              pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6);\n            }\n            uVar10 = 0;\n            uVar11 = *(byte *)((long)puVar6 + 0x3c) >> 1 & 1;\n            pcVar13 = (code *)(ulong)uVar11;\n            uVar11 = 2 - ((char)uVar11 == '\0');\n          }\n          break;\n        case 1:\nLAB_0028c1cb:\n          if ((bVar8 & 7) != 1) {\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xb5,"output_data");\n          }\n          plVar17 = (long *)puVar6[2];\n          uVar10 = (**(code **)(*plVar17 + 0x58))(plVar17);\n          if (0xfeff < uVar10) {\n            if (uVar12 != 0xffffffff) {\n              local_58 = uVar12;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_4 + 0x38,&local_58);\n            }\n            if (uVar22 == 0xffffffff) {\n              uVar10 = 0xffff;\n            }\n            else {\n              local_58 = uVar22;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_5 + 0x38,&local_58);\n              uVar10 = 0xffff;\n            }\n          }\n          pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n          if (pcVar13 == (code *)0x0) {\nLAB_0028c8d7:\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if (pcVar13[0x5051] != (code)0x0) {\n            lVar15 = (**(code **)(*plVar17 + 0x48))(plVar17);\n            if (lVar15 == 0) {\n                    \n              FUN_0018ff20("../../gold/symtab.cc",0xc81,"sized_write_globals");\n            }\n            if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    \n              FUN_0018ff20("../../gold/output.h",0xc5,"address");\n            }\n            pcVar13 = *(code **)(lVar15 + 8);\n            local_d0 = local_d0 + -(long)pcVar13;\n          }\n          break;\n        case 2:\n          uVar10 = bVar8 & 7;\nLAB_0028c143:\n          if ((char)uVar10 != '\x02') {\n                    \n            FUN_0018ff20("../../gold/symtab.h",200,"output_segment");\n          }\n          pcVar13 = (code *)FUN_0020de20(puVar6[2]);\n          if (pcVar13 == (code *)0x0) goto switchD_0028bebe_caseD_3;\n          if (*(code **)(*(long *)pcVar13 + 0x58) == FUN_0019a160) {\n            uVar10 = *(uint *)(pcVar13 + 0x7c);\n            pcVar13 = (code *)(ulong)uVar10;\n            if (uVar10 == 0xffffffff) {\nLAB_0028ca38:\n                    \n              FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx");\n            }\n          }\n          else {\n            pcVar13 = (code *)(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13);\n            uVar10 = (uint)pcVar13;\n          }\n          break;\n        case 3:\nswitchD_0028bebe_caseD_3:\n          uVar10 = 0xfff1;\n          break;\n        case 4:\nswitchD_0028bebe_caseD_4:\n          uVar10 = 0;\n        }\nLAB_0028bf30:\n        if (uVar12 != 0xffffffff) {\n          uVar12 = uVar12 - iVar1;\n          if (uVar2 <= uVar12) {\n                    \n            FUN_0018ff20("../../gold/symtab.cc",0xca1,"sized_write_globals");\n          }\n          pcVar13 = (code *)FUN_00289ee0(param_1,puVar6,local_d0,uVar10,uVar11,param_2,\n                                         (ulong)(uVar12 * 0x18) + local_98);\n        }\n        if (uVar22 != 0xffffffff) {\n          uVar22 = uVar22 - iVar3;\n          if (uVar4 <= uVar22) {\n                    \n            FUN_0018ff20("../../gold/symtab.cc",0xcaa,"sized_write_globals");\n          }\n          FUN_00289ee0(param_1,puVar6,pcVar14,uVar10,uVar11,param_3);\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          pcVar13 = *(code **)(*plVar17 + 0x138);\n          if (pcVar13 != FUN_00172ba0) {\n            pcVar13 = (code *)(*pcVar13)(plVar17,puVar6,local_c0 + uVar22 * 0x18);\n          }\n        }\n      }\n      plVar24 = (long *)*plVar24;\n    } while (plVar24 != (long *)0x0);\n  }\n  plVar23 = *(long **)(param_1 + 0x2a0);\n  if (plVar23 == *(long **)(param_1 + 0x2a8)) {\n    return pcVar13;\n  }\n  lVar20 = *plVar23;\n  iVar5 = *(int *)(lVar20 + 0x1c);\n  while (iVar5 != 0) {\n    plVar23 = plVar23 + 1;\n    if (local_c0 == (code *)0x0) {\n      iVar21 = -1;\n    }\n    else {\n      iVar21 = *(int *)(lVar20 + 0x20);\n      if (iVar21 == 0) {\nLAB_0028c898:\n                    \n        FUN_0018ff20("../../gold/symtab.h",0x19a,"dynsym_index");\n      }\n    }\n    uVar12 = *(byte *)(lVar20 + 0x3a) & 7;\n    pcVar13 = (code *)(ulong)uVar12;\n    cVar9 = (char)uVar12;\n    if (cVar9 == '\x03') {\n      uVar25 = 0xfff1;\n    }\n    else {\n      if (cVar9 != '\x04') {\n                    \n        FUN_0018ff20("../../gold/symtab.cc",0xccb,"sized_write_globals");\n      }\n      uVar25 = 0;\n    }\n    if (iVar5 != -1) {\n      uVar12 = iVar5 - iVar1;\n      if (uVar2 <= uVar12) {\n                    \n        FUN_0018ff20("../../gold/symtab.cc",0xcd1,"sized_write_globals");\n      }\n      pcVar13 = (code *)FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                                     *(byte *)(lVar20 + 0x38) >> 4,param_2,\n                                     (ulong)(uVar12 * 0x18) + local_98);\n    }\n    if (iVar21 != -1) {\n      uVar12 = iVar21 - iVar3;\n      if (uVar4 <= uVar12) {\n                    \n        FUN_0018ff20("../../gold/symtab.cc",0xcdb,"sized_write_globals");\n      }\n      pcVar13 = local_c0 + uVar12 * 0x18;\n      FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                   *(byte *)(lVar20 + 0x38) >> 4,param_3);\n    }\n    if (*(long **)(param_1 + 0x2a8) == plVar23) {\n      return pcVar13;\n    }\n    lVar20 = *plVar23;\n    iVar5 = *(int *)(lVar20 + 0x1c);\n  }\nLAB_0028c880:\n                    \n  FUN_0018ff20("../../gold/symtab.h",0x180,"symtab_index");\n}" (type_identifier "code") (pointer_declarator "* FUN_0028bce0(long param_1,undefined8 param_2,undefined8 param_3,long param_4,long param_5,\n                   long param_6)" (* "*") (function_declarator "FUN_0028bce0(long param_1,undefined8 param_2,undefined8 param_3,long param_4,long param_5,\n                   long param_6)" (identifier "FUN_0028bce0") (parameter_list "(long param_1,undefined8 param_2,undefined8 param_3,long param_4,long param_5,\n                   long param_6)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "undefined8 param_2" (type_identifier "undefined8") (identifier "param_2")) (, ",") (parameter_declaration "undefined8 param_3" (type_identifier "undefined8") (identifier "param_3")) (, ",") (parameter_declaration "long param_4" (sized_type_specifier "long" (long "long")) (identifier "param_4")) (, ",") (parameter_declaration "long param_5" (sized_type_specifier "long" (long "long")) (identifier "param_5")) (, ",") (parameter_declaration "long param_6" (sized_type_specifier "long" (long "long")) (identifier "param_6")) () ")")))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  undefined8 *puVar6;\n  byte bVar7;\n  byte bVar8;\n  char cVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  code *pcVar13;\n  code *pcVar14;\n  long lVar15;\n  undefined8 uVar16;\n  long *plVar17;\n  long *plVar18;\n  ulong uVar19;\n  long lVar20;\n  int iVar21;\n  uint uVar22;\n  long *plVar23;\n  long *plVar24;\n  undefined8 uVar25;\n  undefined1 auVar26 [16];\n  code *local_d0;\n  code *local_c0;\n  long local_98;\n  uint local_58;\n  uint uStack_54;\n  undefined1 auStack_48 [24];\n  \n  plVar23 = *(long **)(PTR_DAT_0045c708 + 0x18);\n  if (plVar23 == (long *)0x0) {\nLAB_0028c91f:\n                    \n    FUN_0018ff20("../../gold/parameters.h",0x69,"target");\n  }\n  iVar1 = *(int *)(param_1 + 8);\n  uVar2 = *(uint *)(param_1 + 0x18);\n  local_98 = *(long *)(param_1 + 0x10);\n  if ((uVar2 == 0) || (local_98 == 0)) {\n    local_98 = 0;\n  }\n  else {\n    if ((local_98 < 0) || (*(long *)(param_6 + 0x10) < (long)((ulong)(uVar2 * 0x18) + local_98)))\n    goto LAB_0028c9c8;\n    local_98 = local_98 + *(long *)(param_6 + 0x18);\n  }\n  iVar3 = *(int *)(param_1 + 0x28);\n  uVar4 = *(uint *)(param_1 + 0x2c);\n  pcVar13 = *(code **)(param_1 + 0x20);\n  if ((pcVar13 == (code *)0x0) || (uVar4 == 0)) {\n    local_c0 = (code *)0x0;\n  }\n  else {\n    if (((long)pcVar13 < 0) || (*(long *)(param_6 + 0x10) < (long)(pcVar13 + uVar4 * 0x18))) {\nLAB_0028c9c8:\n      FUN_00284650();\nLAB_0028c9cd:\n                    \n      FUN_0018ff20("../../gold/symtab.cc",0xc59,"sized_write_globals");\n    }\n    pcVar13 = pcVar13 + *(long *)(param_6 + 0x18);\n    local_c0 = pcVar13;\n  }\n  plVar24 = *(long **)(param_1 + 0x40);\n  if (plVar24 != (long *)0x0) {\n    lVar20 = (long)DAT_003a0b74;\n    do {\n      puVar6 = (undefined8 *)plVar24[3];\n      if (((((*(byte *)((long)puVar6 + 0x3a) & 7) == 0) &&\n           (lVar15 = puVar6[2], (*(byte *)(lVar15 + 0x3c) & 1) != 0)) && (*(int *)(puVar6 + 3) == 0)\n          ) && (*(byte *)(puVar6 + 7) >> 4 != 2)) {\n        if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) goto LAB_0028c8d7;\n        if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x339) == '\0') {\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          if (*(code **)(*plVar17 + 0x38) != FUN_00172b10) {\n            cVar9 = (**(code **)(*plVar17 + 0x38))(plVar17,puVar6);\n            if (cVar9 != '\0') goto LAB_0028be18;\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) goto LAB_0028c752;\n            lVar15 = puVar6[2];\n          }\n          if ((*(byte *)(lVar15 + 0x3c) & 0x20) == 0) {\n            if (*(int *)(lVar15 + 0x88) == 0) {\n                    \n              FUN_0018ff20("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }\n            if (*(int *)(lVar15 + 0x88) != 1) {\n              FUN_00187dc0(puVar6);\n            }\n          }\n        }\n      }\nLAB_0028be18:\n      uVar12 = *(uint *)((long)puVar6 + 0x1c);\n      if (uVar12 == 0) goto LAB_0028c880;\n      if (local_c0 == (code *)0x0) {\n        uVar22 = 0xffffffff;\n        uVar11 = uVar12;\n      }\n      else {\n        uVar22 = *(uint *)(puVar6 + 4);\n        if (uVar22 == 0) goto LAB_0028c898;\n        uVar11 = uVar12 & uVar22;\n      }\n      pcVar13 = (code *)(ulong)uVar11;\n      if (uVar11 != 0xffffffff) {\n        local_d0 = (code *)puVar6[8];\n        uVar11 = (uint)(*(byte *)(puVar6 + 7) >> 4);\n        lVar15 = *(long *)(PTR_DAT_0045c708 + 0x10);\n        if (lVar15 == 0) goto LAB_0028c8d7;\n        bVar8 = *(byte *)((long)puVar6 + 0x3a);\n        uVar10 = bVar8 & 7;\n        bVar7 = (byte)uVar10;\n        pcVar14 = local_d0;\n        if ((*(char *)(lVar15 + 0x7739) != '\0') && (uVar11 == 1)) {\n          if (bVar7 == 0) {\n            if ((*(int *)(puVar6 + 3) == 0) && ((*(byte *)((long)puVar6 + 0x3b) >> 5 & 1) != 0)) {\n                    \n                    \n              pcVar13 = (code *)(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return pcVar13;\n            }\n                    \n                    \n            pcVar13 = (code *)(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();\n            return pcVar13;\n          }\n          if (bVar7 == 4) {\n                    \n                    \n            pcVar13 = (code *)(*(code *)(&DAT_003a0b64 + lVar20))();\n            return pcVar13;\n          }\n          if (4 < bVar7) goto LAB_0028c8b0;\n          pcVar13 = (code *)((long)&switchD_0028c5a7::switchdataD_003a0b78 +\n                            (long)(int)(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10]);\n                    \n          switch(uVar10) {\n          case 0:\nswitchD_0028c5a7_caseD_0:\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xaa,"shndx");\n          case 1:\n            uVar11 = 1;\n            goto LAB_0028c1cb;\n          case 2:\n            uVar11 = 1;\n            goto LAB_0028c143;\n          case 3:\n            uVar11 = 1;\n            uVar10 = 0xfff1;\n            break;\n          case 4:\n                    \n            uVar11 = 1;\n            uVar10 = 0;\n          }\n          goto LAB_0028bf30;\n        }\n        if ((uVar11 == 10) && (*(char *)(lVar15 + 0x2999) == '\0')) {\n          uVar11 = 1;\n        }\n        if (4 < bVar7) {\nLAB_0028c8b0:\n                    \n          FUN_0018ff20("../../gold/symtab.cc",0xc9b,"sized_write_globals");\n        }\n        pcVar13 = (code *)((long)&switchD_0028bebe::switchdataD_003a0b3c +\n                          (long)(int)(&switchD_0028bebe::switchdataD_003a0b3c)[uVar10]);\n        switch(uVar10) {\n        case 0:\n          if ((bVar8 & 7) != 0) goto switchD_0028c5a7_caseD_0;\n          uVar10 = *(uint *)(puVar6 + 3);\n          bVar8 = *(byte *)((long)puVar6 + 0x3b) >> 5;\n          if (((bVar8 & 1) != 1) && (uVar10 != 0xfff1)) {\n            cVar9 = FUN_00284a00(uVar10);\n            if (cVar9 == '\0') {\n              FUN_00285b30(&local_58,*puVar6);\n              uVar25 = CONCAT44(uStack_54,local_58);\n              uVar16 = gettext("%s: unsupported symbol section 0x%x");\n                    \n              FUN_001878b0(uVar16,uVar25,uVar10);\n              pcVar13 = (code *)auStack_48;\n              if ((code *)CONCAT44(uStack_54,local_58) != pcVar13) {\n                pcVar13 = (code *)FUN_002f1e60();\n              }\n              break;\n            }\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) {\nLAB_0028c752:\n                    \n              FUN_0018ff20("../../gold/symtab.h",0xa1,"object");\n            }\n          }\n          plVar17 = (long *)puVar6[2];\n          if ((*(byte *)((long)plVar17 + 0x3c) & 1) == 0) {\n            pcVar13 = (code *)(**(code **)(*plVar17 + 0x28))(plVar17);\n            if ((pcVar13 != (code *)0x0) || (uVar10 == 0)) goto switchD_0028bebe_caseD_4;\n            if (((bVar8 & 1) != 0) ||\n               ((uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')\n                ))) {\n              uVar19 = (ulong)uVar10;\n              if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;\n                plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n              }\n              else {\n                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);\n              }\n              cVar9 = FUN_00284da0(param_1,plVar17,uVar19);\n              if (cVar9 == '\0') {\n                if (plVar18 == (long *)0x0) goto LAB_0028c9cd;\n              }\n              else {\n                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);\n                plVar17 = auVar26._0_8_;\n                if (plVar17 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }\n                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    \n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }\n                if (plVar18 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }\n              }\n              if (*(code **)(*plVar18 + 0x58) == FUN_0019a160) {\n                uVar10 = *(uint *)((long)plVar18 + 0x7c);\n                if (uVar10 == 0xffffffff) goto LAB_0028ca38;\n              }\n              else {\n                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);\n              }\n              if (0xfeff < uVar10) {\n                if (uVar12 != 0xffffffff) {\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }\n                if (uVar22 == 0xffffffff) {\n                  uVar10 = 0xffff;\n                }\n                else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }\n              }\n              pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n              if (pcVar13 == (code *)0x0) goto LAB_0028c8d7;\n              if (pcVar13[0x5051] != (code)0x0) {\n                if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;\n                pcVar13 = local_d0 + -plVar18[1];\n                local_d0 = pcVar13;\n              }\n            }\n          }\n          else {\n            if ((*(byte *)((long)puVar6 + 0x3b) & 2) != 0) {\n              pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6);\n            }\n            uVar10 = 0;\n            uVar11 = *(byte *)((long)puVar6 + 0x3c) >> 1 & 1;\n            pcVar13 = (code *)(ulong)uVar11;\n            uVar11 = 2 - ((char)uVar11 == '\0');\n          }\n          break;\n        case 1:\nLAB_0028c1cb:\n          if ((bVar8 & 7) != 1) {\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xb5,"output_data");\n          }\n          plVar17 = (long *)puVar6[2];\n          uVar10 = (**(code **)(*plVar17 + 0x58))(plVar17);\n          if (0xfeff < uVar10) {\n            if (uVar12 != 0xffffffff) {\n              local_58 = uVar12;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_4 + 0x38,&local_58);\n            }\n            if (uVar22 == 0xffffffff) {\n              uVar10 = 0xffff;\n            }\n            else {\n              local_58 = uVar22;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_5 + 0x38,&local_58);\n              uVar10 = 0xffff;\n            }\n          }\n          pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n          if (pcVar13 == (code *)0x0) {\nLAB_0028c8d7:\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if (pcVar13[0x5051] != (code)0x0) {\n            lVar15 = (**(code **)(*plVar17 + 0x48))(plVar17);\n            if (lVar15 == 0) {\n                    \n              FUN_0018ff20("../../gold/symtab.cc",0xc81,"sized_write_globals");\n            }\n            if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    \n              FUN_0018ff20("../../gold/output.h",0xc5,"address");\n            }\n            pcVar13 = *(code **)(lVar15 + 8);\n            local_d0 = local_d0 + -(long)pcVar13;\n          }\n          break;\n        case 2:\n          uVar10 = bVar8 & 7;\nLAB_0028c143:\n          if ((char)uVar10 != '\x02') {\n                    \n            FUN_0018ff20("../../gold/symtab.h",200,"output_segment");\n          }\n          pcVar13 = (code *)FUN_0020de20(puVar6[2]);\n          if (pcVar13 == (code *)0x0) goto switchD_0028bebe_caseD_3;\n          if (*(code **)(*(long *)pcVar13 + 0x58) == FUN_0019a160) {\n            uVar10 = *(uint *)(pcVar13 + 0x7c);\n            pcVar13 = (code *)(ulong)uVar10;\n            if (uVar10 == 0xffffffff) {\nLAB_0028ca38:\n                    \n              FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx");\n            }\n          }\n          else {\n            pcVar13 = (code *)(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13);\n            uVar10 = (uint)pcVar13;\n          }\n          break;\n        case 3:\nswitchD_0028bebe_caseD_3:\n          uVar10 = 0xfff1;\n          break;\n        case 4:\nswitchD_0028bebe_caseD_4:\n          uVar10 = 0;\n        }\nLAB_0028bf30:\n        if (uVar12 != 0xffffffff) {\n          uVar12 = uVar12 - iVar1;\n          if (uVar2 <= uVar12) {\n                    \n            FUN_0018ff20("../../gold/symtab.cc",0xca1,"sized_write_globals");\n          }\n          pcVar13 = (code *)FUN_00289ee0(param_1,puVar6,local_d0,uVar10,uVar11,param_2,\n                                         (ulong)(uVar12 * 0x18) + local_98);\n        }\n        if (uVar22 != 0xffffffff) {\n          uVar22 = uVar22 - iVar3;\n          if (uVar4 <= uVar22) {\n                    \n            FUN_0018ff20("../../gold/symtab.cc",0xcaa,"sized_write_globals");\n          }\n          FUN_00289ee0(param_1,puVar6,pcVar14,uVar10,uVar11,param_3);\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          pcVar13 = *(code **)(*plVar17 + 0x138);\n          if (pcVar13 != FUN_00172ba0) {\n            pcVar13 = (code *)(*pcVar13)(plVar17,puVar6,local_c0 + uVar22 * 0x18);\n          }\n        }\n      }\n      plVar24 = (long *)*plVar24;\n    } while (plVar24 != (long *)0x0);\n  }\n  plVar23 = *(long **)(param_1 + 0x2a0);\n  if (plVar23 == *(long **)(param_1 + 0x2a8)) {\n    return pcVar13;\n  }\n  lVar20 = *plVar23;\n  iVar5 = *(int *)(lVar20 + 0x1c);\n  while (iVar5 != 0) {\n    plVar23 = plVar23 + 1;\n    if (local_c0 == (code *)0x0) {\n      iVar21 = -1;\n    }\n    else {\n      iVar21 = *(int *)(lVar20 + 0x20);\n      if (iVar21 == 0) {\nLAB_0028c898:\n                    \n        FUN_0018ff20("../../gold/symtab.h",0x19a,"dynsym_index");\n      }\n    }\n    uVar12 = *(byte *)(lVar20 + 0x3a) & 7;\n    pcVar13 = (code *)(ulong)uVar12;\n    cVar9 = (char)uVar12;\n    if (cVar9 == '\x03') {\n      uVar25 = 0xfff1;\n    }\n    else {\n      if (cVar9 != '\x04') {\n                    \n        FUN_0018ff20("../../gold/symtab.cc",0xccb,"sized_write_globals");\n      }\n      uVar25 = 0;\n    }\n    if (iVar5 != -1) {\n      uVar12 = iVar5 - iVar1;\n      if (uVar2 <= uVar12) {\n                    \n        FUN_0018ff20("../../gold/symtab.cc",0xcd1,"sized_write_globals");\n      }\n      pcVar13 = (code *)FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                                     *(byte *)(lVar20 + 0x38) >> 4,param_2,\n                                     (ulong)(uVar12 * 0x18) + local_98);\n    }\n    if (iVar21 != -1) {\n      uVar12 = iVar21 - iVar3;\n      if (uVar4 <= uVar12) {\n                    \n        FUN_0018ff20("../../gold/symtab.cc",0xcdb,"sized_write_globals");\n      }\n      pcVar13 = local_c0 + uVar12 * 0x18;\n      FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                   *(byte *)(lVar20 + 0x38) >> 4,param_3);\n    }\n    if (*(long **)(param_1 + 0x2a8) == plVar23) {\n      return pcVar13;\n    }\n    lVar20 = *plVar23;\n    iVar5 = *(int *)(lVar20 + 0x1c);\n  }\nLAB_0028c880:\n                    \n  FUN_0018ff20("../../gold/symtab.h",0x180,"symtab_index");\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "undefined8 *puVar6;" (type_identifier "undefined8") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "byte bVar7;" (type_identifier "byte") (identifier "bVar7") (; ";")) (declaration "byte bVar8;" (type_identifier "byte") (identifier "bVar8") (; ";")) (declaration "char cVar9;" (primitive_type "char") (identifier "cVar9") (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "code *pcVar13;" (type_identifier "code") (pointer_declarator "*pcVar13" (* "*") (identifier "pcVar13")) (; ";")) (declaration "code *pcVar14;" (type_identifier "code") (pointer_declarator "*pcVar14" (* "*") (identifier "pcVar14")) (; ";")) (declaration "long lVar15;" (sized_type_specifier "long" (long "long")) (identifier "lVar15") (; ";")) (declaration "undefined8 uVar16;" (type_identifier "undefined8") (identifier "uVar16") (; ";")) (declaration "long *plVar17;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar17" (* "*") (identifier "plVar17")) (; ";")) (declaration "long *plVar18;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar18" (* "*") (identifier "plVar18")) (; ";")) (declaration "ulong uVar19;" (type_identifier "ulong") (identifier "uVar19") (; ";")) (declaration "long lVar20;" (sized_type_specifier "long" (long "long")) (identifier "lVar20") (; ";")) (declaration "int iVar21;" (primitive_type "int") (identifier "iVar21") (; ";")) (declaration "uint uVar22;" (type_identifier "uint") (identifier "uVar22") (; ";")) (declaration "long *plVar23;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar23" (* "*") (identifier "plVar23")) (; ";")) (declaration "long *plVar24;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar24" (* "*") (identifier "plVar24")) (; ";")) (declaration "undefined8 uVar25;" (type_identifier "undefined8") (identifier "uVar25") (; ";")) (declaration "undefined1 auVar26 [16];" (type_identifier "undefined1") (array_declarator "auVar26 [16]" (identifier "auVar26") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "code *local_d0;" (type_identifier "code") (pointer_declarator "*local_d0" (* "*") (identifier "local_d0")) (; ";")) (declaration "code *local_c0;" (type_identifier "code") (pointer_declarator "*local_c0" (* "*") (identifier "local_c0")) (; ";")) (declaration "long local_98;" (sized_type_specifier "long" (long "long")) (identifier "local_98") (; ";")) (declaration "uint local_58;" (type_identifier "uint") (identifier "local_58") (; ";")) (declaration "uint uStack_54;" (type_identifier "uint") (identifier "uStack_54") (; ";")) (declaration "undefined1 auStack_48 [24];" (type_identifier "undefined1") (array_declarator "auStack_48 [24]" (identifier "auStack_48") ([ "[") (number_literal "24") (] "]")) (; ";")) (expression_statement "plVar23 = *(long **)(PTR_DAT_0045c708 + 0x18);" (assignment_expression "plVar23 = *(long **)(PTR_DAT_0045c708 + 0x18)" (identifier "plVar23") (= "=") (pointer_expression "*(long **)(PTR_DAT_0045c708 + 0x18)" (* "*") (cast_expression "(long **)(PTR_DAT_0045c708 + 0x18)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_DAT_0045c708 + 0x18)" (( "(") (binary_expression "PTR_DAT_0045c708 + 0x18" (identifier "PTR_DAT_0045c708") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (plVar23 == (long *)0x0) {\nLAB_0028c91f:\n                    \n    FUN_0018ff20("../../gold/parameters.h",0x69,"target");\n  }" (if "if") (parenthesized_expression "(plVar23 == (long *)0x0)" (( "(") (binary_expression "plVar23 == (long *)0x0" (identifier "plVar23") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_0028c91f:\n                    \n    FUN_0018ff20("../../gold/parameters.h",0x69,"target");\n  }" ({ "{") (labeled_statement "LAB_0028c91f:\n                    \n    FUN_0018ff20("../../gold/parameters.h",0x69,"target");" (statement_identifier "LAB_0028c91f") (: ":") (expression_statement "FUN_0018ff20("../../gold/parameters.h",0x69,"target");" (call_expression "FUN_0018ff20("../../gold/parameters.h",0x69,"target")" (identifier "FUN_0018ff20") (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") (" """)) () ")"))) (; ";"))) (} "}"))) (expression_statement "iVar1 = *(int *)(param_1 + 8);" (assignment_expression "iVar1 = *(int *)(param_1 + 8)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar2 = *(uint *)(param_1 + 0x18);" (assignment_expression "uVar2 = *(uint *)(param_1 + 0x18)" (identifier "uVar2") (= "=") (pointer_expression "*(uint *)(param_1 + 0x18)" (* "*") (cast_expression "(uint *)(param_1 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "local_98 = *(long *)(param_1 + 0x10);" (assignment_expression "local_98 = *(long *)(param_1 + 0x10)" (identifier "local_98") (= "=") (pointer_expression "*(long *)(param_1 + 0x10)" (* "*") (cast_expression "(long *)(param_1 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if ((uVar2 == 0) || (local_98 == 0)) {\n    local_98 = 0;\n  }\n  else {\n    if ((local_98 < 0) || (*(long *)(param_6 + 0x10) < (long)((ulong)(uVar2 * 0x18) + local_98)))\n    goto LAB_0028c9c8;\n    local_98 = local_98 + *(long *)(param_6 + 0x18);\n  }" (if "if") (parenthesized_expression "((uVar2 == 0) || (local_98 == 0))" (( "(") (binary_expression "(uVar2 == 0) || (local_98 == 0)" (parenthesized_expression "(uVar2 == 0)" (( "(") (binary_expression "uVar2 == 0" (identifier "uVar2") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(local_98 == 0)" (( "(") (binary_expression "local_98 == 0" (identifier "local_98") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    local_98 = 0;\n  }" ({ "{") (expression_statement "local_98 = 0;" (assignment_expression "local_98 = 0" (identifier "local_98") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n    if ((local_98 < 0) || (*(long *)(param_6 + 0x10) < (long)((ulong)(uVar2 * 0x18) + local_98)))\n    goto LAB_0028c9c8;\n    local_98 = local_98 + *(long *)(param_6 + 0x18);\n  }" (else "else") (compound_statement "{\n    if ((local_98 < 0) || (*(long *)(param_6 + 0x10) < (long)((ulong)(uVar2 * 0x18) + local_98)))\n    goto LAB_0028c9c8;\n    local_98 = local_98 + *(long *)(param_6 + 0x18);\n  }" ({ "{") (if_statement "if ((local_98 < 0) || (*(long *)(param_6 + 0x10) < (long)((ulong)(uVar2 * 0x18) + local_98)))\n    goto LAB_0028c9c8;" (if "if") (parenthesized_expression "((local_98 < 0) || (*(long *)(param_6 + 0x10) < (long)((ulong)(uVar2 * 0x18) + local_98)))" (( "(") (binary_expression "(local_98 < 0) || (*(long *)(param_6 + 0x10) < (long)((ulong)(uVar2 * 0x18) + local_98))" (parenthesized_expression "(local_98 < 0)" (( "(") (binary_expression "local_98 < 0" (identifier "local_98") (< "<") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*(long *)(param_6 + 0x10) < (long)((ulong)(uVar2 * 0x18) + local_98))" (( "(") (binary_expression "*(long *)(param_6 + 0x10) < (long)((ulong)(uVar2 * 0x18) + local_98)" (pointer_expression "*(long *)(param_6 + 0x10)" (* "*") (cast_expression "(long *)(param_6 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6 + 0x10)" (( "(") (binary_expression "param_6 + 0x10" (identifier "param_6") (+ "+") (number_literal "0x10")) () ")")))) (< "<") (cast_expression "(long)((ulong)(uVar2 * 0x18) + local_98)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "((ulong)(uVar2 * 0x18) + local_98)" (( "(") (binary_expression "(ulong)(uVar2 * 0x18) + local_98" (call_expression "(ulong)(uVar2 * 0x18)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar2 * 0x18)" (( "(") (binary_expression "uVar2 * 0x18" (identifier "uVar2") (* "*") (number_literal "0x18")) () ")"))) (+ "+") (identifier "local_98")) () ")")))) () ")"))) () ")")) (goto_statement "goto LAB_0028c9c8;" (goto "goto") (statement_identifier "LAB_0028c9c8") (; ";"))) (expression_statement "local_98 = local_98 + *(long *)(param_6 + 0x18);" (assignment_expression "local_98 = local_98 + *(long *)(param_6 + 0x18)" (identifier "local_98") (= "=") (binary_expression "local_98 + *(long *)(param_6 + 0x18)" (identifier "local_98") (+ "+") (pointer_expression "*(long *)(param_6 + 0x18)" (* "*") (cast_expression "(long *)(param_6 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6 + 0x18)" (( "(") (binary_expression "param_6 + 0x18" (identifier "param_6") (+ "+") (number_literal "0x18")) () ")")))))) (; ";")) (} "}")))) (expression_statement "iVar3 = *(int *)(param_1 + 0x28);" (assignment_expression "iVar3 = *(int *)(param_1 + 0x28)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(param_1 + 0x28)" (* "*") (cast_expression "(int *)(param_1 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "uVar4 = *(uint *)(param_1 + 0x2c);" (assignment_expression "uVar4 = *(uint *)(param_1 + 0x2c)" (identifier "uVar4") (= "=") (pointer_expression "*(uint *)(param_1 + 0x2c)" (* "*") (cast_expression "(uint *)(param_1 + 0x2c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2c)" (( "(") (binary_expression "param_1 + 0x2c" (identifier "param_1") (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (expression_statement "pcVar13 = *(code **)(param_1 + 0x20);" (assignment_expression "pcVar13 = *(code **)(param_1 + 0x20)" (identifier "pcVar13") (= "=") (pointer_expression "*(code **)(param_1 + 0x20)" (* "*") (cast_expression "(code **)(param_1 + 0x20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (if_statement "if ((pcVar13 == (code *)0x0) || (uVar4 == 0)) {\n    local_c0 = (code *)0x0;\n  }\n  else {\n    if (((long)pcVar13 < 0) || (*(long *)(param_6 + 0x10) < (long)(pcVar13 + uVar4 * 0x18))) {\nLAB_0028c9c8:\n      FUN_00284650();\nLAB_0028c9cd:\n                    \n      FUN_0018ff20("../../gold/symtab.cc",0xc59,"sized_write_globals");\n    }\n    pcVar13 = pcVar13 + *(long *)(param_6 + 0x18);\n    local_c0 = pcVar13;\n  }" (if "if") (parenthesized_expression "((pcVar13 == (code *)0x0) || (uVar4 == 0))" (( "(") (binary_expression "(pcVar13 == (code *)0x0) || (uVar4 == 0)" (parenthesized_expression "(pcVar13 == (code *)0x0)" (( "(") (binary_expression "pcVar13 == (code *)0x0" (identifier "pcVar13") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(uVar4 == 0)" (( "(") (binary_expression "uVar4 == 0" (identifier "uVar4") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    local_c0 = (code *)0x0;\n  }" ({ "{") (expression_statement "local_c0 = (code *)0x0;" (assignment_expression "local_c0 = (code *)0x0" (identifier "local_c0") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n    if (((long)pcVar13 < 0) || (*(long *)(param_6 + 0x10) < (long)(pcVar13 + uVar4 * 0x18))) {\nLAB_0028c9c8:\n      FUN_00284650();\nLAB_0028c9cd:\n                    \n      FUN_0018ff20("../../gold/symtab.cc",0xc59,"sized_write_globals");\n    }\n    pcVar13 = pcVar13 + *(long *)(param_6 + 0x18);\n    local_c0 = pcVar13;\n  }" (else "else") (compound_statement "{\n    if (((long)pcVar13 < 0) || (*(long *)(param_6 + 0x10) < (long)(pcVar13 + uVar4 * 0x18))) {\nLAB_0028c9c8:\n      FUN_00284650();\nLAB_0028c9cd:\n                    \n      FUN_0018ff20("../../gold/symtab.cc",0xc59,"sized_write_globals");\n    }\n    pcVar13 = pcVar13 + *(long *)(param_6 + 0x18);\n    local_c0 = pcVar13;\n  }" ({ "{") (if_statement "if (((long)pcVar13 < 0) || (*(long *)(param_6 + 0x10) < (long)(pcVar13 + uVar4 * 0x18))) {\nLAB_0028c9c8:\n      FUN_00284650();\nLAB_0028c9cd:\n                    \n      FUN_0018ff20("../../gold/symtab.cc",0xc59,"sized_write_globals");\n    }" (if "if") (parenthesized_expression "(((long)pcVar13 < 0) || (*(long *)(param_6 + 0x10) < (long)(pcVar13 + uVar4 * 0x18)))" (( "(") (binary_expression "((long)pcVar13 < 0) || (*(long *)(param_6 + 0x10) < (long)(pcVar13 + uVar4 * 0x18))" (parenthesized_expression "((long)pcVar13 < 0)" (( "(") (binary_expression "(long)pcVar13 < 0" (cast_expression "(long)pcVar13" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pcVar13")) (< "<") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*(long *)(param_6 + 0x10) < (long)(pcVar13 + uVar4 * 0x18))" (( "(") (binary_expression "*(long *)(param_6 + 0x10) < (long)(pcVar13 + uVar4 * 0x18)" (pointer_expression "*(long *)(param_6 + 0x10)" (* "*") (cast_expression "(long *)(param_6 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6 + 0x10)" (( "(") (binary_expression "param_6 + 0x10" (identifier "param_6") (+ "+") (number_literal "0x10")) () ")")))) (< "<") (cast_expression "(long)(pcVar13 + uVar4 * 0x18)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(pcVar13 + uVar4 * 0x18)" (( "(") (binary_expression "pcVar13 + uVar4 * 0x18" (identifier "pcVar13") (+ "+") (binary_expression "uVar4 * 0x18" (identifier "uVar4") (* "*") (number_literal "0x18"))) () ")")))) () ")"))) () ")")) (compound_statement "{\nLAB_0028c9c8:\n      FUN_00284650();\nLAB_0028c9cd:\n                    \n      FUN_0018ff20("../../gold/symtab.cc",0xc59,"sized_write_globals");\n    }" ({ "{") (labeled_statement "LAB_0028c9c8:\n      FUN_00284650();" (statement_identifier "LAB_0028c9c8") (: ":") (expression_statement "FUN_00284650();" (call_expression "FUN_00284650()" (identifier "FUN_00284650") (argument_list "()" (( "(") () ")"))) (; ";"))) (labeled_statement "LAB_0028c9cd:\n                    \n      FUN_0018ff20("../../gold/symtab.cc",0xc59,"sized_write_globals");" (statement_identifier "LAB_0028c9cd") (: ":") (expression_statement "FUN_0018ff20("../../gold/symtab.cc",0xc59,"sized_write_globals");" (call_expression "FUN_0018ff20("../../gold/symtab.cc",0xc59,"sized_write_globals")" (identifier "FUN_0018ff20") (argument_list "("../../gold/symtab.cc",0xc59,"sized_write_globals")" (( "(") (string_literal ""../../gold/symtab.cc"" (" """) (string_content "../../gold/symtab.cc") (" """)) (, ",") (number_literal "0xc59") (, ",") (string_literal ""sized_write_globals"" (" """) (string_content "sized_write_globals") (" """)) () ")"))) (; ";"))) (} "}"))) (expression_statement "pcVar13 = pcVar13 + *(long *)(param_6 + 0x18);" (assignment_expression "pcVar13 = pcVar13 + *(long *)(param_6 + 0x18)" (identifier "pcVar13") (= "=") (binary_expression "pcVar13 + *(long *)(param_6 + 0x18)" (identifier "pcVar13") (+ "+") (pointer_expression "*(long *)(param_6 + 0x18)" (* "*") (cast_expression "(long *)(param_6 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6 + 0x18)" (( "(") (binary_expression "param_6 + 0x18" (identifier "param_6") (+ "+") (number_literal "0x18")) () ")")))))) (; ";")) (expression_statement "local_c0 = pcVar13;" (assignment_expression "local_c0 = pcVar13" (identifier "local_c0") (= "=") (identifier "pcVar13")) (; ";")) (} "}")))) (expression_statement "plVar24 = *(long **)(param_1 + 0x40);" (assignment_expression "plVar24 = *(long **)(param_1 + 0x40)" (identifier "plVar24") (= "=") (pointer_expression "*(long **)(param_1 + 0x40)" (* "*") (cast_expression "(long **)(param_1 + 0x40)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x40)" (( "(") (binary_expression "param_1 + 0x40" (identifier "param_1") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (if_statement "if (plVar24 != (long *)0x0) {\n    lVar20 = (long)DAT_003a0b74;\n    do {\n      puVar6 = (undefined8 *)plVar24[3];\n      if (((((*(byte *)((long)puVar6 + 0x3a) & 7) == 0) &&\n           (lVar15 = puVar6[2], (*(byte *)(lVar15 + 0x3c) & 1) != 0)) && (*(int *)(puVar6 + 3) == 0)\n          ) && (*(byte *)(puVar6 + 7) >> 4 != 2)) {\n        if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) goto LAB_0028c8d7;\n        if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x339) == '\0') {\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          if (*(code **)(*plVar17 + 0x38) != FUN_00172b10) {\n            cVar9 = (**(code **)(*plVar17 + 0x38))(plVar17,puVar6);\n            if (cVar9 != '\0') goto LAB_0028be18;\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) goto LAB_0028c752;\n            lVar15 = puVar6[2];\n          }\n          if ((*(byte *)(lVar15 + 0x3c) & 0x20) == 0) {\n            if (*(int *)(lVar15 + 0x88) == 0) {\n                    \n              FUN_0018ff20("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }\n            if (*(int *)(lVar15 + 0x88) != 1) {\n              FUN_00187dc0(puVar6);\n            }\n          }\n        }\n      }\nLAB_0028be18:\n      uVar12 = *(uint *)((long)puVar6 + 0x1c);\n      if (uVar12 == 0) goto LAB_0028c880;\n      if (local_c0 == (code *)0x0) {\n        uVar22 = 0xffffffff;\n        uVar11 = uVar12;\n      }\n      else {\n        uVar22 = *(uint *)(puVar6 + 4);\n        if (uVar22 == 0) goto LAB_0028c898;\n        uVar11 = uVar12 & uVar22;\n      }\n      pcVar13 = (code *)(ulong)uVar11;\n      if (uVar11 != 0xffffffff) {\n        local_d0 = (code *)puVar6[8];\n        uVar11 = (uint)(*(byte *)(puVar6 + 7) >> 4);\n        lVar15 = *(long *)(PTR_DAT_0045c708 + 0x10);\n        if (lVar15 == 0) goto LAB_0028c8d7;\n        bVar8 = *(byte *)((long)puVar6 + 0x3a);\n        uVar10 = bVar8 & 7;\n        bVar7 = (byte)uVar10;\n        pcVar14 = local_d0;\n        if ((*(char *)(lVar15 + 0x7739) != '\0') && (uVar11 == 1)) {\n          if (bVar7 == 0) {\n            if ((*(int *)(puVar6 + 3) == 0) && ((*(byte *)((long)puVar6 + 0x3b) >> 5 & 1) != 0)) {\n                    \n                    \n              pcVar13 = (code *)(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return pcVar13;\n            }\n                    \n                    \n            pcVar13 = (code *)(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();\n            return pcVar13;\n          }\n          if (bVar7 == 4) {\n                    \n                    \n            pcVar13 = (code *)(*(code *)(&DAT_003a0b64 + lVar20))();\n            return pcVar13;\n          }\n          if (4 < bVar7) goto LAB_0028c8b0;\n          pcVar13 = (code *)((long)&switchD_0028c5a7::switchdataD_003a0b78 +\n                            (long)(int)(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10]);\n                    \n          switch(uVar10) {\n          case 0:\nswitchD_0028c5a7_caseD_0:\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xaa,"shndx");\n          case 1:\n            uVar11 = 1;\n            goto LAB_0028c1cb;\n          case 2:\n            uVar11 = 1;\n            goto LAB_0028c143;\n          case 3:\n            uVar11 = 1;\n            uVar10 = 0xfff1;\n            break;\n          case 4:\n                    \n            uVar11 = 1;\n            uVar10 = 0;\n          }\n          goto LAB_0028bf30;\n        }\n        if ((uVar11 == 10) && (*(char *)(lVar15 + 0x2999) == '\0')) {\n          uVar11 = 1;\n        }\n        if (4 < bVar7) {\nLAB_0028c8b0:\n                    \n          FUN_0018ff20("../../gold/symtab.cc",0xc9b,"sized_write_globals");\n        }\n        pcVar13 = (code *)((long)&switchD_0028bebe::switchdataD_003a0b3c +\n                          (long)(int)(&switchD_0028bebe::switchdataD_003a0b3c)[uVar10]);\n        switch(uVar10) {\n        case 0:\n          if ((bVar8 & 7) != 0) goto switchD_0028c5a7_caseD_0;\n          uVar10 = *(uint *)(puVar6 + 3);\n          bVar8 = *(byte *)((long)puVar6 + 0x3b) >> 5;\n          if (((bVar8 & 1) != 1) && (uVar10 != 0xfff1)) {\n            cVar9 = FUN_00284a00(uVar10);\n            if (cVar9 == '\0') {\n              FUN_00285b30(&local_58,*puVar6);\n              uVar25 = CONCAT44(uStack_54,local_58);\n              uVar16 = gettext("%s: unsupported symbol section 0x%x");\n                    \n              FUN_001878b0(uVar16,uVar25,uVar10);\n              pcVar13 = (code *)auStack_48;\n              if ((code *)CONCAT44(uStack_54,local_58) != pcVar13) {\n                pcVar13 = (code *)FUN_002f1e60();\n              }\n              break;\n            }\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) {\nLAB_0028c752:\n                    \n              FUN_0018ff20("../../gold/symtab.h",0xa1,"object");\n            }\n          }\n          plVar17 = (long *)puVar6[2];\n          if ((*(byte *)((long)plVar17 + 0x3c) & 1) == 0) {\n            pcVar13 = (code *)(**(code **)(*plVar17 + 0x28))(plVar17);\n            if ((pcVar13 != (code *)0x0) || (uVar10 == 0)) goto switchD_0028bebe_caseD_4;\n            if (((bVar8 & 1) != 0) ||\n               ((uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')\n                ))) {\n              uVar19 = (ulong)uVar10;\n              if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;\n                plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n              }\n              else {\n                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);\n              }\n              cVar9 = FUN_00284da0(param_1,plVar17,uVar19);\n              if (cVar9 == '\0') {\n                if (plVar18 == (long *)0x0) goto LAB_0028c9cd;\n              }\n              else {\n                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);\n                plVar17 = auVar26._0_8_;\n                if (plVar17 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }\n                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    \n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }\n                if (plVar18 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }\n              }\n              if (*(code **)(*plVar18 + 0x58) == FUN_0019a160) {\n                uVar10 = *(uint *)((long)plVar18 + 0x7c);\n                if (uVar10 == 0xffffffff) goto LAB_0028ca38;\n              }\n              else {\n                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);\n              }\n              if (0xfeff < uVar10) {\n                if (uVar12 != 0xffffffff) {\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }\n                if (uVar22 == 0xffffffff) {\n                  uVar10 = 0xffff;\n                }\n                else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }\n              }\n              pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n              if (pcVar13 == (code *)0x0) goto LAB_0028c8d7;\n              if (pcVar13[0x5051] != (code)0x0) {\n                if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;\n                pcVar13 = local_d0 + -plVar18[1];\n                local_d0 = pcVar13;\n              }\n            }\n          }\n          else {\n            if ((*(byte *)((long)puVar6 + 0x3b) & 2) != 0) {\n              pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6);\n            }\n            uVar10 = 0;\n            uVar11 = *(byte *)((long)puVar6 + 0x3c) >> 1 & 1;\n            pcVar13 = (code *)(ulong)uVar11;\n            uVar11 = 2 - ((char)uVar11 == '\0');\n          }\n          break;\n        case 1:\nLAB_0028c1cb:\n          if ((bVar8 & 7) != 1) {\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xb5,"output_data");\n          }\n          plVar17 = (long *)puVar6[2];\n          uVar10 = (**(code **)(*plVar17 + 0x58))(plVar17);\n          if (0xfeff < uVar10) {\n            if (uVar12 != 0xffffffff) {\n              local_58 = uVar12;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_4 + 0x38,&local_58);\n            }\n            if (uVar22 == 0xffffffff) {\n              uVar10 = 0xffff;\n            }\n            else {\n              local_58 = uVar22;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_5 + 0x38,&local_58);\n              uVar10 = 0xffff;\n            }\n          }\n          pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n          if (pcVar13 == (code *)0x0) {\nLAB_0028c8d7:\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if (pcVar13[0x5051] != (code)0x0) {\n            lVar15 = (**(code **)(*plVar17 + 0x48))(plVar17);\n            if (lVar15 == 0) {\n                    \n              FUN_0018ff20("../../gold/symtab.cc",0xc81,"sized_write_globals");\n            }\n            if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    \n              FUN_0018ff20("../../gold/output.h",0xc5,"address");\n            }\n            pcVar13 = *(code **)(lVar15 + 8);\n            local_d0 = local_d0 + -(long)pcVar13;\n          }\n          break;\n        case 2:\n          uVar10 = bVar8 & 7;\nLAB_0028c143:\n          if ((char)uVar10 != '\x02') {\n                    \n            FUN_0018ff20("../../gold/symtab.h",200,"output_segment");\n          }\n          pcVar13 = (code *)FUN_0020de20(puVar6[2]);\n          if (pcVar13 == (code *)0x0) goto switchD_0028bebe_caseD_3;\n          if (*(code **)(*(long *)pcVar13 + 0x58) == FUN_0019a160) {\n            uVar10 = *(uint *)(pcVar13 + 0x7c);\n            pcVar13 = (code *)(ulong)uVar10;\n            if (uVar10 == 0xffffffff) {\nLAB_0028ca38:\n                    \n              FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx");\n            }\n          }\n          else {\n            pcVar13 = (code *)(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13);\n            uVar10 = (uint)pcVar13;\n          }\n          break;\n        case 3:\nswitchD_0028bebe_caseD_3:\n          uVar10 = 0xfff1;\n          break;\n        case 4:\nswitchD_0028bebe_caseD_4:\n          uVar10 = 0;\n        }\nLAB_0028bf30:\n        if (uVar12 != 0xffffffff) {\n          uVar12 = uVar12 - iVar1;\n          if (uVar2 <= uVar12) {\n                    \n            FUN_0018ff20("../../gold/symtab.cc",0xca1,"sized_write_globals");\n          }\n          pcVar13 = (code *)FUN_00289ee0(param_1,puVar6,local_d0,uVar10,uVar11,param_2,\n                                         (ulong)(uVar12 * 0x18) + local_98);\n        }\n        if (uVar22 != 0xffffffff) {\n          uVar22 = uVar22 - iVar3;\n          if (uVar4 <= uVar22) {\n                    \n            FUN_0018ff20("../../gold/symtab.cc",0xcaa,"sized_write_globals");\n          }\n          FUN_00289ee0(param_1,puVar6,pcVar14,uVar10,uVar11,param_3);\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          pcVar13 = *(code **)(*plVar17 + 0x138);\n          if (pcVar13 != FUN_00172ba0) {\n            pcVar13 = (code *)(*pcVar13)(plVar17,puVar6,local_c0 + uVar22 * 0x18);\n          }\n        }\n      }\n      plVar24 = (long *)*plVar24;\n    } while (plVar24 != (long *)0x0);\n  }" (if "if") (parenthesized_expression "(plVar24 != (long *)0x0)" (( "(") (binary_expression "plVar24 != (long *)0x0" (identifier "plVar24") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    lVar20 = (long)DAT_003a0b74;\n    do {\n      puVar6 = (undefined8 *)plVar24[3];\n      if (((((*(byte *)((long)puVar6 + 0x3a) & 7) == 0) &&\n           (lVar15 = puVar6[2], (*(byte *)(lVar15 + 0x3c) & 1) != 0)) && (*(int *)(puVar6 + 3) == 0)\n          ) && (*(byte *)(puVar6 + 7) >> 4 != 2)) {\n        if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) goto LAB_0028c8d7;\n        if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x339) == '\0') {\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          if (*(code **)(*plVar17 + 0x38) != FUN_00172b10) {\n            cVar9 = (**(code **)(*plVar17 + 0x38))(plVar17,puVar6);\n            if (cVar9 != '\0') goto LAB_0028be18;\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) goto LAB_0028c752;\n            lVar15 = puVar6[2];\n          }\n          if ((*(byte *)(lVar15 + 0x3c) & 0x20) == 0) {\n            if (*(int *)(lVar15 + 0x88) == 0) {\n                    \n              FUN_0018ff20("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }\n            if (*(int *)(lVar15 + 0x88) != 1) {\n              FUN_00187dc0(puVar6);\n            }\n          }\n        }\n      }\nLAB_0028be18:\n      uVar12 = *(uint *)((long)puVar6 + 0x1c);\n      if (uVar12 == 0) goto LAB_0028c880;\n      if (local_c0 == (code *)0x0) {\n        uVar22 = 0xffffffff;\n        uVar11 = uVar12;\n      }\n      else {\n        uVar22 = *(uint *)(puVar6 + 4);\n        if (uVar22 == 0) goto LAB_0028c898;\n        uVar11 = uVar12 & uVar22;\n      }\n      pcVar13 = (code *)(ulong)uVar11;\n      if (uVar11 != 0xffffffff) {\n        local_d0 = (code *)puVar6[8];\n        uVar11 = (uint)(*(byte *)(puVar6 + 7) >> 4);\n        lVar15 = *(long *)(PTR_DAT_0045c708 + 0x10);\n        if (lVar15 == 0) goto LAB_0028c8d7;\n        bVar8 = *(byte *)((long)puVar6 + 0x3a);\n        uVar10 = bVar8 & 7;\n        bVar7 = (byte)uVar10;\n        pcVar14 = local_d0;\n        if ((*(char *)(lVar15 + 0x7739) != '\0') && (uVar11 == 1)) {\n          if (bVar7 == 0) {\n            if ((*(int *)(puVar6 + 3) == 0) && ((*(byte *)((long)puVar6 + 0x3b) >> 5 & 1) != 0)) {\n                    \n                    \n              pcVar13 = (code *)(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return pcVar13;\n            }\n                    \n                    \n            pcVar13 = (code *)(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();\n            return pcVar13;\n          }\n          if (bVar7 == 4) {\n                    \n                    \n            pcVar13 = (code *)(*(code *)(&DAT_003a0b64 + lVar20))();\n            return pcVar13;\n          }\n          if (4 < bVar7) goto LAB_0028c8b0;\n          pcVar13 = (code *)((long)&switchD_0028c5a7::switchdataD_003a0b78 +\n                            (long)(int)(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10]);\n                    \n          switch(uVar10) {\n          case 0:\nswitchD_0028c5a7_caseD_0:\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xaa,"shndx");\n          case 1:\n            uVar11 = 1;\n            goto LAB_0028c1cb;\n          case 2:\n            uVar11 = 1;\n            goto LAB_0028c143;\n          case 3:\n            uVar11 = 1;\n            uVar10 = 0xfff1;\n            break;\n          case 4:\n                    \n            uVar11 = 1;\n            uVar10 = 0;\n          }\n          goto LAB_0028bf30;\n        }\n        if ((uVar11 == 10) && (*(char *)(lVar15 + 0x2999) == '\0')) {\n          uVar11 = 1;\n        }\n        if (4 < bVar7) {\nLAB_0028c8b0:\n                    \n          FUN_0018ff20("../../gold/symtab.cc",0xc9b,"sized_write_globals");\n        }\n        pcVar13 = (code *)((long)&switchD_0028bebe::switchdataD_003a0b3c +\n                          (long)(int)(&switchD_0028bebe::switchdataD_003a0b3c)[uVar10]);\n        switch(uVar10) {\n        case 0:\n          if ((bVar8 & 7) != 0) goto switchD_0028c5a7_caseD_0;\n          uVar10 = *(uint *)(puVar6 + 3);\n          bVar8 = *(byte *)((long)puVar6 + 0x3b) >> 5;\n          if (((bVar8 & 1) != 1) && (uVar10 != 0xfff1)) {\n            cVar9 = FUN_00284a00(uVar10);\n            if (cVar9 == '\0') {\n              FUN_00285b30(&local_58,*puVar6);\n              uVar25 = CONCAT44(uStack_54,local_58);\n              uVar16 = gettext("%s: unsupported symbol section 0x%x");\n                    \n              FUN_001878b0(uVar16,uVar25,uVar10);\n              pcVar13 = (code *)auStack_48;\n              if ((code *)CONCAT44(uStack_54,local_58) != pcVar13) {\n                pcVar13 = (code *)FUN_002f1e60();\n              }\n              break;\n            }\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) {\nLAB_0028c752:\n                    \n              FUN_0018ff20("../../gold/symtab.h",0xa1,"object");\n            }\n          }\n          plVar17 = (long *)puVar6[2];\n          if ((*(byte *)((long)plVar17 + 0x3c) & 1) == 0) {\n            pcVar13 = (code *)(**(code **)(*plVar17 + 0x28))(plVar17);\n            if ((pcVar13 != (code *)0x0) || (uVar10 == 0)) goto switchD_0028bebe_caseD_4;\n            if (((bVar8 & 1) != 0) ||\n               ((uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')\n                ))) {\n              uVar19 = (ulong)uVar10;\n              if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;\n                plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n              }\n              else {\n                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);\n              }\n              cVar9 = FUN_00284da0(param_1,plVar17,uVar19);\n              if (cVar9 == '\0') {\n                if (plVar18 == (long *)0x0) goto LAB_0028c9cd;\n              }\n              else {\n                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);\n                plVar17 = auVar26._0_8_;\n                if (plVar17 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }\n                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    \n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }\n                if (plVar18 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }\n              }\n              if (*(code **)(*plVar18 + 0x58) == FUN_0019a160) {\n                uVar10 = *(uint *)((long)plVar18 + 0x7c);\n                if (uVar10 == 0xffffffff) goto LAB_0028ca38;\n              }\n              else {\n                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);\n              }\n              if (0xfeff < uVar10) {\n                if (uVar12 != 0xffffffff) {\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }\n                if (uVar22 == 0xffffffff) {\n                  uVar10 = 0xffff;\n                }\n                else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }\n              }\n              pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n              if (pcVar13 == (code *)0x0) goto LAB_0028c8d7;\n              if (pcVar13[0x5051] != (code)0x0) {\n                if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;\n                pcVar13 = local_d0 + -plVar18[1];\n                local_d0 = pcVar13;\n              }\n            }\n          }\n          else {\n            if ((*(byte *)((long)puVar6 + 0x3b) & 2) != 0) {\n              pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6);\n            }\n            uVar10 = 0;\n            uVar11 = *(byte *)((long)puVar6 + 0x3c) >> 1 & 1;\n            pcVar13 = (code *)(ulong)uVar11;\n            uVar11 = 2 - ((char)uVar11 == '\0');\n          }\n          break;\n        case 1:\nLAB_0028c1cb:\n          if ((bVar8 & 7) != 1) {\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xb5,"output_data");\n          }\n          plVar17 = (long *)puVar6[2];\n          uVar10 = (**(code **)(*plVar17 + 0x58))(plVar17);\n          if (0xfeff < uVar10) {\n            if (uVar12 != 0xffffffff) {\n              local_58 = uVar12;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_4 + 0x38,&local_58);\n            }\n            if (uVar22 == 0xffffffff) {\n              uVar10 = 0xffff;\n            }\n            else {\n              local_58 = uVar22;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_5 + 0x38,&local_58);\n              uVar10 = 0xffff;\n            }\n          }\n          pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n          if (pcVar13 == (code *)0x0) {\nLAB_0028c8d7:\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if (pcVar13[0x5051] != (code)0x0) {\n            lVar15 = (**(code **)(*plVar17 + 0x48))(plVar17);\n            if (lVar15 == 0) {\n                    \n              FUN_0018ff20("../../gold/symtab.cc",0xc81,"sized_write_globals");\n            }\n            if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    \n              FUN_0018ff20("../../gold/output.h",0xc5,"address");\n            }\n            pcVar13 = *(code **)(lVar15 + 8);\n            local_d0 = local_d0 + -(long)pcVar13;\n          }\n          break;\n        case 2:\n          uVar10 = bVar8 & 7;\nLAB_0028c143:\n          if ((char)uVar10 != '\x02') {\n                    \n            FUN_0018ff20("../../gold/symtab.h",200,"output_segment");\n          }\n          pcVar13 = (code *)FUN_0020de20(puVar6[2]);\n          if (pcVar13 == (code *)0x0) goto switchD_0028bebe_caseD_3;\n          if (*(code **)(*(long *)pcVar13 + 0x58) == FUN_0019a160) {\n            uVar10 = *(uint *)(pcVar13 + 0x7c);\n            pcVar13 = (code *)(ulong)uVar10;\n            if (uVar10 == 0xffffffff) {\nLAB_0028ca38:\n                    \n              FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx");\n            }\n          }\n          else {\n            pcVar13 = (code *)(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13);\n            uVar10 = (uint)pcVar13;\n          }\n          break;\n        case 3:\nswitchD_0028bebe_caseD_3:\n          uVar10 = 0xfff1;\n          break;\n        case 4:\nswitchD_0028bebe_caseD_4:\n          uVar10 = 0;\n        }\nLAB_0028bf30:\n        if (uVar12 != 0xffffffff) {\n          uVar12 = uVar12 - iVar1;\n          if (uVar2 <= uVar12) {\n                    \n            FUN_0018ff20("../../gold/symtab.cc",0xca1,"sized_write_globals");\n          }\n          pcVar13 = (code *)FUN_00289ee0(param_1,puVar6,local_d0,uVar10,uVar11,param_2,\n                                         (ulong)(uVar12 * 0x18) + local_98);\n        }\n        if (uVar22 != 0xffffffff) {\n          uVar22 = uVar22 - iVar3;\n          if (uVar4 <= uVar22) {\n                    \n            FUN_0018ff20("../../gold/symtab.cc",0xcaa,"sized_write_globals");\n          }\n          FUN_00289ee0(param_1,puVar6,pcVar14,uVar10,uVar11,param_3);\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          pcVar13 = *(code **)(*plVar17 + 0x138);\n          if (pcVar13 != FUN_00172ba0) {\n            pcVar13 = (code *)(*pcVar13)(plVar17,puVar6,local_c0 + uVar22 * 0x18);\n          }\n        }\n      }\n      plVar24 = (long *)*plVar24;\n    } while (plVar24 != (long *)0x0);\n  }" ({ "{") (expression_statement "lVar20 = (long)DAT_003a0b74;" (assignment_expression "lVar20 = (long)DAT_003a0b74" (identifier "lVar20") (= "=") (cast_expression "(long)DAT_003a0b74" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "DAT_003a0b74"))) (; ";")) (do_statement "do {\n      puVar6 = (undefined8 *)plVar24[3];\n      if (((((*(byte *)((long)puVar6 + 0x3a) & 7) == 0) &&\n           (lVar15 = puVar6[2], (*(byte *)(lVar15 + 0x3c) & 1) != 0)) && (*(int *)(puVar6 + 3) == 0)\n          ) && (*(byte *)(puVar6 + 7) >> 4 != 2)) {\n        if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) goto LAB_0028c8d7;\n        if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x339) == '\0') {\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          if (*(code **)(*plVar17 + 0x38) != FUN_00172b10) {\n            cVar9 = (**(code **)(*plVar17 + 0x38))(plVar17,puVar6);\n            if (cVar9 != '\0') goto LAB_0028be18;\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) goto LAB_0028c752;\n            lVar15 = puVar6[2];\n          }\n          if ((*(byte *)(lVar15 + 0x3c) & 0x20) == 0) {\n            if (*(int *)(lVar15 + 0x88) == 0) {\n                    \n              FUN_0018ff20("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }\n            if (*(int *)(lVar15 + 0x88) != 1) {\n              FUN_00187dc0(puVar6);\n            }\n          }\n        }\n      }\nLAB_0028be18:\n      uVar12 = *(uint *)((long)puVar6 + 0x1c);\n      if (uVar12 == 0) goto LAB_0028c880;\n      if (local_c0 == (code *)0x0) {\n        uVar22 = 0xffffffff;\n        uVar11 = uVar12;\n      }\n      else {\n        uVar22 = *(uint *)(puVar6 + 4);\n        if (uVar22 == 0) goto LAB_0028c898;\n        uVar11 = uVar12 & uVar22;\n      }\n      pcVar13 = (code *)(ulong)uVar11;\n      if (uVar11 != 0xffffffff) {\n        local_d0 = (code *)puVar6[8];\n        uVar11 = (uint)(*(byte *)(puVar6 + 7) >> 4);\n        lVar15 = *(long *)(PTR_DAT_0045c708 + 0x10);\n        if (lVar15 == 0) goto LAB_0028c8d7;\n        bVar8 = *(byte *)((long)puVar6 + 0x3a);\n        uVar10 = bVar8 & 7;\n        bVar7 = (byte)uVar10;\n        pcVar14 = local_d0;\n        if ((*(char *)(lVar15 + 0x7739) != '\0') && (uVar11 == 1)) {\n          if (bVar7 == 0) {\n            if ((*(int *)(puVar6 + 3) == 0) && ((*(byte *)((long)puVar6 + 0x3b) >> 5 & 1) != 0)) {\n                    \n                    \n              pcVar13 = (code *)(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return pcVar13;\n            }\n                    \n                    \n            pcVar13 = (code *)(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();\n            return pcVar13;\n          }\n          if (bVar7 == 4) {\n                    \n                    \n            pcVar13 = (code *)(*(code *)(&DAT_003a0b64 + lVar20))();\n            return pcVar13;\n          }\n          if (4 < bVar7) goto LAB_0028c8b0;\n          pcVar13 = (code *)((long)&switchD_0028c5a7::switchdataD_003a0b78 +\n                            (long)(int)(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10]);\n                    \n          switch(uVar10) {\n          case 0:\nswitchD_0028c5a7_caseD_0:\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xaa,"shndx");\n          case 1:\n            uVar11 = 1;\n            goto LAB_0028c1cb;\n          case 2:\n            uVar11 = 1;\n            goto LAB_0028c143;\n          case 3:\n            uVar11 = 1;\n            uVar10 = 0xfff1;\n            break;\n          case 4:\n                    \n            uVar11 = 1;\n            uVar10 = 0;\n          }\n          goto LAB_0028bf30;\n        }\n        if ((uVar11 == 10) && (*(char *)(lVar15 + 0x2999) == '\0')) {\n          uVar11 = 1;\n        }\n        if (4 < bVar7) {\nLAB_0028c8b0:\n                    \n          FUN_0018ff20("../../gold/symtab.cc",0xc9b,"sized_write_globals");\n        }\n        pcVar13 = (code *)((long)&switchD_0028bebe::switchdataD_003a0b3c +\n                          (long)(int)(&switchD_0028bebe::switchdataD_003a0b3c)[uVar10]);\n        switch(uVar10) {\n        case 0:\n          if ((bVar8 & 7) != 0) goto switchD_0028c5a7_caseD_0;\n          uVar10 = *(uint *)(puVar6 + 3);\n          bVar8 = *(byte *)((long)puVar6 + 0x3b) >> 5;\n          if (((bVar8 & 1) != 1) && (uVar10 != 0xfff1)) {\n            cVar9 = FUN_00284a00(uVar10);\n            if (cVar9 == '\0') {\n              FUN_00285b30(&local_58,*puVar6);\n              uVar25 = CONCAT44(uStack_54,local_58);\n              uVar16 = gettext("%s: unsupported symbol section 0x%x");\n                    \n              FUN_001878b0(uVar16,uVar25,uVar10);\n              pcVar13 = (code *)auStack_48;\n              if ((code *)CONCAT44(uStack_54,local_58) != pcVar13) {\n                pcVar13 = (code *)FUN_002f1e60();\n              }\n              break;\n            }\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) {\nLAB_0028c752:\n                    \n              FUN_0018ff20("../../gold/symtab.h",0xa1,"object");\n            }\n          }\n          plVar17 = (long *)puVar6[2];\n          if ((*(byte *)((long)plVar17 + 0x3c) & 1) == 0) {\n            pcVar13 = (code *)(**(code **)(*plVar17 + 0x28))(plVar17);\n            if ((pcVar13 != (code *)0x0) || (uVar10 == 0)) goto switchD_0028bebe_caseD_4;\n            if (((bVar8 & 1) != 0) ||\n               ((uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')\n                ))) {\n              uVar19 = (ulong)uVar10;\n              if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;\n                plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n              }\n              else {\n                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);\n              }\n              cVar9 = FUN_00284da0(param_1,plVar17,uVar19);\n              if (cVar9 == '\0') {\n                if (plVar18 == (long *)0x0) goto LAB_0028c9cd;\n              }\n              else {\n                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);\n                plVar17 = auVar26._0_8_;\n                if (plVar17 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }\n                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    \n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }\n                if (plVar18 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }\n              }\n              if (*(code **)(*plVar18 + 0x58) == FUN_0019a160) {\n                uVar10 = *(uint *)((long)plVar18 + 0x7c);\n                if (uVar10 == 0xffffffff) goto LAB_0028ca38;\n              }\n              else {\n                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);\n              }\n              if (0xfeff < uVar10) {\n                if (uVar12 != 0xffffffff) {\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }\n                if (uVar22 == 0xffffffff) {\n                  uVar10 = 0xffff;\n                }\n                else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }\n              }\n              pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n              if (pcVar13 == (code *)0x0) goto LAB_0028c8d7;\n              if (pcVar13[0x5051] != (code)0x0) {\n                if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;\n                pcVar13 = local_d0 + -plVar18[1];\n                local_d0 = pcVar13;\n              }\n            }\n          }\n          else {\n            if ((*(byte *)((long)puVar6 + 0x3b) & 2) != 0) {\n              pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6);\n            }\n            uVar10 = 0;\n            uVar11 = *(byte *)((long)puVar6 + 0x3c) >> 1 & 1;\n            pcVar13 = (code *)(ulong)uVar11;\n            uVar11 = 2 - ((char)uVar11 == '\0');\n          }\n          break;\n        case 1:\nLAB_0028c1cb:\n          if ((bVar8 & 7) != 1) {\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xb5,"output_data");\n          }\n          plVar17 = (long *)puVar6[2];\n          uVar10 = (**(code **)(*plVar17 + 0x58))(plVar17);\n          if (0xfeff < uVar10) {\n            if (uVar12 != 0xffffffff) {\n              local_58 = uVar12;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_4 + 0x38,&local_58);\n            }\n            if (uVar22 == 0xffffffff) {\n              uVar10 = 0xffff;\n            }\n            else {\n              local_58 = uVar22;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_5 + 0x38,&local_58);\n              uVar10 = 0xffff;\n            }\n          }\n          pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n          if (pcVar13 == (code *)0x0) {\nLAB_0028c8d7:\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if (pcVar13[0x5051] != (code)0x0) {\n            lVar15 = (**(code **)(*plVar17 + 0x48))(plVar17);\n            if (lVar15 == 0) {\n                    \n              FUN_0018ff20("../../gold/symtab.cc",0xc81,"sized_write_globals");\n            }\n            if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    \n              FUN_0018ff20("../../gold/output.h",0xc5,"address");\n            }\n            pcVar13 = *(code **)(lVar15 + 8);\n            local_d0 = local_d0 + -(long)pcVar13;\n          }\n          break;\n        case 2:\n          uVar10 = bVar8 & 7;\nLAB_0028c143:\n          if ((char)uVar10 != '\x02') {\n                    \n            FUN_0018ff20("../../gold/symtab.h",200,"output_segment");\n          }\n          pcVar13 = (code *)FUN_0020de20(puVar6[2]);\n          if (pcVar13 == (code *)0x0) goto switchD_0028bebe_caseD_3;\n          if (*(code **)(*(long *)pcVar13 + 0x58) == FUN_0019a160) {\n            uVar10 = *(uint *)(pcVar13 + 0x7c);\n            pcVar13 = (code *)(ulong)uVar10;\n            if (uVar10 == 0xffffffff) {\nLAB_0028ca38:\n                    \n              FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx");\n            }\n          }\n          else {\n            pcVar13 = (code *)(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13);\n            uVar10 = (uint)pcVar13;\n          }\n          break;\n        case 3:\nswitchD_0028bebe_caseD_3:\n          uVar10 = 0xfff1;\n          break;\n        case 4:\nswitchD_0028bebe_caseD_4:\n          uVar10 = 0;\n        }\nLAB_0028bf30:\n        if (uVar12 != 0xffffffff) {\n          uVar12 = uVar12 - iVar1;\n          if (uVar2 <= uVar12) {\n                    \n            FUN_0018ff20("../../gold/symtab.cc",0xca1,"sized_write_globals");\n          }\n          pcVar13 = (code *)FUN_00289ee0(param_1,puVar6,local_d0,uVar10,uVar11,param_2,\n                                         (ulong)(uVar12 * 0x18) + local_98);\n        }\n        if (uVar22 != 0xffffffff) {\n          uVar22 = uVar22 - iVar3;\n          if (uVar4 <= uVar22) {\n                    \n            FUN_0018ff20("../../gold/symtab.cc",0xcaa,"sized_write_globals");\n          }\n          FUN_00289ee0(param_1,puVar6,pcVar14,uVar10,uVar11,param_3);\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          pcVar13 = *(code **)(*plVar17 + 0x138);\n          if (pcVar13 != FUN_00172ba0) {\n            pcVar13 = (code *)(*pcVar13)(plVar17,puVar6,local_c0 + uVar22 * 0x18);\n          }\n        }\n      }\n      plVar24 = (long *)*plVar24;\n    } while (plVar24 != (long *)0x0);" (do "do") (compound_statement "{\n      puVar6 = (undefined8 *)plVar24[3];\n      if (((((*(byte *)((long)puVar6 + 0x3a) & 7) == 0) &&\n           (lVar15 = puVar6[2], (*(byte *)(lVar15 + 0x3c) & 1) != 0)) && (*(int *)(puVar6 + 3) == 0)\n          ) && (*(byte *)(puVar6 + 7) >> 4 != 2)) {\n        if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) goto LAB_0028c8d7;\n        if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x339) == '\0') {\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          if (*(code **)(*plVar17 + 0x38) != FUN_00172b10) {\n            cVar9 = (**(code **)(*plVar17 + 0x38))(plVar17,puVar6);\n            if (cVar9 != '\0') goto LAB_0028be18;\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) goto LAB_0028c752;\n            lVar15 = puVar6[2];\n          }\n          if ((*(byte *)(lVar15 + 0x3c) & 0x20) == 0) {\n            if (*(int *)(lVar15 + 0x88) == 0) {\n                    \n              FUN_0018ff20("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }\n            if (*(int *)(lVar15 + 0x88) != 1) {\n              FUN_00187dc0(puVar6);\n            }\n          }\n        }\n      }\nLAB_0028be18:\n      uVar12 = *(uint *)((long)puVar6 + 0x1c);\n      if (uVar12 == 0) goto LAB_0028c880;\n      if (local_c0 == (code *)0x0) {\n        uVar22 = 0xffffffff;\n        uVar11 = uVar12;\n      }\n      else {\n        uVar22 = *(uint *)(puVar6 + 4);\n        if (uVar22 == 0) goto LAB_0028c898;\n        uVar11 = uVar12 & uVar22;\n      }\n      pcVar13 = (code *)(ulong)uVar11;\n      if (uVar11 != 0xffffffff) {\n        local_d0 = (code *)puVar6[8];\n        uVar11 = (uint)(*(byte *)(puVar6 + 7) >> 4);\n        lVar15 = *(long *)(PTR_DAT_0045c708 + 0x10);\n        if (lVar15 == 0) goto LAB_0028c8d7;\n        bVar8 = *(byte *)((long)puVar6 + 0x3a);\n        uVar10 = bVar8 & 7;\n        bVar7 = (byte)uVar10;\n        pcVar14 = local_d0;\n        if ((*(char *)(lVar15 + 0x7739) != '\0') && (uVar11 == 1)) {\n          if (bVar7 == 0) {\n            if ((*(int *)(puVar6 + 3) == 0) && ((*(byte *)((long)puVar6 + 0x3b) >> 5 & 1) != 0)) {\n                    \n                    \n              pcVar13 = (code *)(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return pcVar13;\n            }\n                    \n                    \n            pcVar13 = (code *)(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();\n            return pcVar13;\n          }\n          if (bVar7 == 4) {\n                    \n                    \n            pcVar13 = (code *)(*(code *)(&DAT_003a0b64 + lVar20))();\n            return pcVar13;\n          }\n          if (4 < bVar7) goto LAB_0028c8b0;\n          pcVar13 = (code *)((long)&switchD_0028c5a7::switchdataD_003a0b78 +\n                            (long)(int)(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10]);\n                    \n          switch(uVar10) {\n          case 0:\nswitchD_0028c5a7_caseD_0:\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xaa,"shndx");\n          case 1:\n            uVar11 = 1;\n            goto LAB_0028c1cb;\n          case 2:\n            uVar11 = 1;\n            goto LAB_0028c143;\n          case 3:\n            uVar11 = 1;\n            uVar10 = 0xfff1;\n            break;\n          case 4:\n                    \n            uVar11 = 1;\n            uVar10 = 0;\n          }\n          goto LAB_0028bf30;\n        }\n        if ((uVar11 == 10) && (*(char *)(lVar15 + 0x2999) == '\0')) {\n          uVar11 = 1;\n        }\n        if (4 < bVar7) {\nLAB_0028c8b0:\n                    \n          FUN_0018ff20("../../gold/symtab.cc",0xc9b,"sized_write_globals");\n        }\n        pcVar13 = (code *)((long)&switchD_0028bebe::switchdataD_003a0b3c +\n                          (long)(int)(&switchD_0028bebe::switchdataD_003a0b3c)[uVar10]);\n        switch(uVar10) {\n        case 0:\n          if ((bVar8 & 7) != 0) goto switchD_0028c5a7_caseD_0;\n          uVar10 = *(uint *)(puVar6 + 3);\n          bVar8 = *(byte *)((long)puVar6 + 0x3b) >> 5;\n          if (((bVar8 & 1) != 1) && (uVar10 != 0xfff1)) {\n            cVar9 = FUN_00284a00(uVar10);\n            if (cVar9 == '\0') {\n              FUN_00285b30(&local_58,*puVar6);\n              uVar25 = CONCAT44(uStack_54,local_58);\n              uVar16 = gettext("%s: unsupported symbol section 0x%x");\n                    \n              FUN_001878b0(uVar16,uVar25,uVar10);\n              pcVar13 = (code *)auStack_48;\n              if ((code *)CONCAT44(uStack_54,local_58) != pcVar13) {\n                pcVar13 = (code *)FUN_002f1e60();\n              }\n              break;\n            }\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) {\nLAB_0028c752:\n                    \n              FUN_0018ff20("../../gold/symtab.h",0xa1,"object");\n            }\n          }\n          plVar17 = (long *)puVar6[2];\n          if ((*(byte *)((long)plVar17 + 0x3c) & 1) == 0) {\n            pcVar13 = (code *)(**(code **)(*plVar17 + 0x28))(plVar17);\n            if ((pcVar13 != (code *)0x0) || (uVar10 == 0)) goto switchD_0028bebe_caseD_4;\n            if (((bVar8 & 1) != 0) ||\n               ((uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')\n                ))) {\n              uVar19 = (ulong)uVar10;\n              if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;\n                plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n              }\n              else {\n                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);\n              }\n              cVar9 = FUN_00284da0(param_1,plVar17,uVar19);\n              if (cVar9 == '\0') {\n                if (plVar18 == (long *)0x0) goto LAB_0028c9cd;\n              }\n              else {\n                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);\n                plVar17 = auVar26._0_8_;\n                if (plVar17 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }\n                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    \n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }\n                if (plVar18 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }\n              }\n              if (*(code **)(*plVar18 + 0x58) == FUN_0019a160) {\n                uVar10 = *(uint *)((long)plVar18 + 0x7c);\n                if (uVar10 == 0xffffffff) goto LAB_0028ca38;\n              }\n              else {\n                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);\n              }\n              if (0xfeff < uVar10) {\n                if (uVar12 != 0xffffffff) {\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }\n                if (uVar22 == 0xffffffff) {\n                  uVar10 = 0xffff;\n                }\n                else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }\n              }\n              pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n              if (pcVar13 == (code *)0x0) goto LAB_0028c8d7;\n              if (pcVar13[0x5051] != (code)0x0) {\n                if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;\n                pcVar13 = local_d0 + -plVar18[1];\n                local_d0 = pcVar13;\n              }\n            }\n          }\n          else {\n            if ((*(byte *)((long)puVar6 + 0x3b) & 2) != 0) {\n              pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6);\n            }\n            uVar10 = 0;\n            uVar11 = *(byte *)((long)puVar6 + 0x3c) >> 1 & 1;\n            pcVar13 = (code *)(ulong)uVar11;\n            uVar11 = 2 - ((char)uVar11 == '\0');\n          }\n          break;\n        case 1:\nLAB_0028c1cb:\n          if ((bVar8 & 7) != 1) {\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xb5,"output_data");\n          }\n          plVar17 = (long *)puVar6[2];\n          uVar10 = (**(code **)(*plVar17 + 0x58))(plVar17);\n          if (0xfeff < uVar10) {\n            if (uVar12 != 0xffffffff) {\n              local_58 = uVar12;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_4 + 0x38,&local_58);\n            }\n            if (uVar22 == 0xffffffff) {\n              uVar10 = 0xffff;\n            }\n            else {\n              local_58 = uVar22;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_5 + 0x38,&local_58);\n              uVar10 = 0xffff;\n            }\n          }\n          pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n          if (pcVar13 == (code *)0x0) {\nLAB_0028c8d7:\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if (pcVar13[0x5051] != (code)0x0) {\n            lVar15 = (**(code **)(*plVar17 + 0x48))(plVar17);\n            if (lVar15 == 0) {\n                    \n              FUN_0018ff20("../../gold/symtab.cc",0xc81,"sized_write_globals");\n            }\n            if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    \n              FUN_0018ff20("../../gold/output.h",0xc5,"address");\n            }\n            pcVar13 = *(code **)(lVar15 + 8);\n            local_d0 = local_d0 + -(long)pcVar13;\n          }\n          break;\n        case 2:\n          uVar10 = bVar8 & 7;\nLAB_0028c143:\n          if ((char)uVar10 != '\x02') {\n                    \n            FUN_0018ff20("../../gold/symtab.h",200,"output_segment");\n          }\n          pcVar13 = (code *)FUN_0020de20(puVar6[2]);\n          if (pcVar13 == (code *)0x0) goto switchD_0028bebe_caseD_3;\n          if (*(code **)(*(long *)pcVar13 + 0x58) == FUN_0019a160) {\n            uVar10 = *(uint *)(pcVar13 + 0x7c);\n            pcVar13 = (code *)(ulong)uVar10;\n            if (uVar10 == 0xffffffff) {\nLAB_0028ca38:\n                    \n              FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx");\n            }\n          }\n          else {\n            pcVar13 = (code *)(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13);\n            uVar10 = (uint)pcVar13;\n          }\n          break;\n        case 3:\nswitchD_0028bebe_caseD_3:\n          uVar10 = 0xfff1;\n          break;\n        case 4:\nswitchD_0028bebe_caseD_4:\n          uVar10 = 0;\n        }\nLAB_0028bf30:\n        if (uVar12 != 0xffffffff) {\n          uVar12 = uVar12 - iVar1;\n          if (uVar2 <= uVar12) {\n                    \n            FUN_0018ff20("../../gold/symtab.cc",0xca1,"sized_write_globals");\n          }\n          pcVar13 = (code *)FUN_00289ee0(param_1,puVar6,local_d0,uVar10,uVar11,param_2,\n                                         (ulong)(uVar12 * 0x18) + local_98);\n        }\n        if (uVar22 != 0xffffffff) {\n          uVar22 = uVar22 - iVar3;\n          if (uVar4 <= uVar22) {\n                    \n            FUN_0018ff20("../../gold/symtab.cc",0xcaa,"sized_write_globals");\n          }\n          FUN_00289ee0(param_1,puVar6,pcVar14,uVar10,uVar11,param_3);\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          pcVar13 = *(code **)(*plVar17 + 0x138);\n          if (pcVar13 != FUN_00172ba0) {\n            pcVar13 = (code *)(*pcVar13)(plVar17,puVar6,local_c0 + uVar22 * 0x18);\n          }\n        }\n      }\n      plVar24 = (long *)*plVar24;\n    }" ({ "{") (expression_statement "puVar6 = (undefined8 *)plVar24[3];" (assignment_expression "puVar6 = (undefined8 *)plVar24[3]" (identifier "puVar6") (= "=") (cast_expression "(undefined8 *)plVar24[3]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar24[3]" (identifier "plVar24") ([ "[") (number_literal "3") (] "]")))) (; ";")) (if_statement "if (((((*(byte *)((long)puVar6 + 0x3a) & 7) == 0) &&\n           (lVar15 = puVar6[2], (*(byte *)(lVar15 + 0x3c) & 1) != 0)) && (*(int *)(puVar6 + 3) == 0)\n          ) && (*(byte *)(puVar6 + 7) >> 4 != 2)) {\n        if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) goto LAB_0028c8d7;\n        if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x339) == '\0') {\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          if (*(code **)(*plVar17 + 0x38) != FUN_00172b10) {\n            cVar9 = (**(code **)(*plVar17 + 0x38))(plVar17,puVar6);\n            if (cVar9 != '\0') goto LAB_0028be18;\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) goto LAB_0028c752;\n            lVar15 = puVar6[2];\n          }\n          if ((*(byte *)(lVar15 + 0x3c) & 0x20) == 0) {\n            if (*(int *)(lVar15 + 0x88) == 0) {\n                    \n              FUN_0018ff20("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }\n            if (*(int *)(lVar15 + 0x88) != 1) {\n              FUN_00187dc0(puVar6);\n            }\n          }\n        }\n      }" (if "if") (parenthesized_expression "(((((*(byte *)((long)puVar6 + 0x3a) & 7) == 0) &&\n           (lVar15 = puVar6[2], (*(byte *)(lVar15 + 0x3c) & 1) != 0)) && (*(int *)(puVar6 + 3) == 0)\n          ) && (*(byte *)(puVar6 + 7) >> 4 != 2))" (( "(") (binary_expression "((((*(byte *)((long)puVar6 + 0x3a) & 7) == 0) &&\n           (lVar15 = puVar6[2], (*(byte *)(lVar15 + 0x3c) & 1) != 0)) && (*(int *)(puVar6 + 3) == 0)\n          ) && (*(byte *)(puVar6 + 7) >> 4 != 2)" (parenthesized_expression "((((*(byte *)((long)puVar6 + 0x3a) & 7) == 0) &&\n           (lVar15 = puVar6[2], (*(byte *)(lVar15 + 0x3c) & 1) != 0)) && (*(int *)(puVar6 + 3) == 0)\n          )" (( "(") (binary_expression "(((*(byte *)((long)puVar6 + 0x3a) & 7) == 0) &&\n           (lVar15 = puVar6[2], (*(byte *)(lVar15 + 0x3c) & 1) != 0)) && (*(int *)(puVar6 + 3) == 0)" (parenthesized_expression "(((*(byte *)((long)puVar6 + 0x3a) & 7) == 0) &&\n           (lVar15 = puVar6[2], (*(byte *)(lVar15 + 0x3c) & 1) != 0))" (( "(") (binary_expression "((*(byte *)((long)puVar6 + 0x3a) & 7) == 0) &&\n           (lVar15 = puVar6[2], (*(byte *)(lVar15 + 0x3c) & 1) != 0)" (parenthesized_expression "((*(byte *)((long)puVar6 + 0x3a) & 7) == 0)" (( "(") (binary_expression "(*(byte *)((long)puVar6 + 0x3a) & 7) == 0" (parenthesized_expression "(*(byte *)((long)puVar6 + 0x3a) & 7)" (( "(") (binary_expression "*(byte *)((long)puVar6 + 0x3a) & 7" (pointer_expression "*(byte *)((long)puVar6 + 0x3a)" (* "*") (cast_expression "(byte *)((long)puVar6 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar6 + 0x3a)" (( "(") (binary_expression "(long)puVar6 + 0x3a" (cast_expression "(long)puVar6" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar6")) (+ "+") (number_literal "0x3a")) () ")")))) (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(lVar15 = puVar6[2], (*(byte *)(lVar15 + 0x3c) & 1) != 0)" (( "(") (comma_expression "lVar15 = puVar6[2], (*(byte *)(lVar15 + 0x3c) & 1) != 0" (assignment_expression "lVar15 = puVar6[2]" (identifier "lVar15") (= "=") (subscript_expression "puVar6[2]" (identifier "puVar6") ([ "[") (number_literal "2") (] "]"))) (, ",") (binary_expression "(*(byte *)(lVar15 + 0x3c) & 1) != 0" (parenthesized_expression "(*(byte *)(lVar15 + 0x3c) & 1)" (( "(") (binary_expression "*(byte *)(lVar15 + 0x3c) & 1" (pointer_expression "*(byte *)(lVar15 + 0x3c)" (* "*") (cast_expression "(byte *)(lVar15 + 0x3c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0x3c)" (( "(") (binary_expression "lVar15 + 0x3c" (identifier "lVar15") (+ "+") (number_literal "0x3c")) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(puVar6 + 3) == 0)" (( "(") (binary_expression "*(int *)(puVar6 + 3) == 0" (pointer_expression "*(int *)(puVar6 + 3)" (* "*") (cast_expression "(int *)(puVar6 + 3)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 3)" (( "(") (binary_expression "puVar6 + 3" (identifier "puVar6") (+ "+") (number_literal "3")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*(byte *)(puVar6 + 7) >> 4 != 2)" (( "(") (binary_expression "*(byte *)(puVar6 + 7) >> 4 != 2" (binary_expression "*(byte *)(puVar6 + 7) >> 4" (pointer_expression "*(byte *)(puVar6 + 7)" (* "*") (cast_expression "(byte *)(puVar6 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 7)" (( "(") (binary_expression "puVar6 + 7" (identifier "puVar6") (+ "+") (number_literal "7")) () ")")))) (>> ">>") (number_literal "4")) (!= "!=") (number_literal "2")) () ")"))) () ")")) (compound_statement "{\n        if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) goto LAB_0028c8d7;\n        if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x339) == '\0') {\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          if (*(code **)(*plVar17 + 0x38) != FUN_00172b10) {\n            cVar9 = (**(code **)(*plVar17 + 0x38))(plVar17,puVar6);\n            if (cVar9 != '\0') goto LAB_0028be18;\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) goto LAB_0028c752;\n            lVar15 = puVar6[2];\n          }\n          if ((*(byte *)(lVar15 + 0x3c) & 0x20) == 0) {\n            if (*(int *)(lVar15 + 0x88) == 0) {\n                    \n              FUN_0018ff20("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }\n            if (*(int *)(lVar15 + 0x88) != 1) {\n              FUN_00187dc0(puVar6);\n            }\n          }\n        }\n      }" ({ "{") (if_statement "if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) goto LAB_0028c8d7;" (if "if") (parenthesized_expression "(*(long *)(PTR_DAT_0045c708 + 0x10) == 0)" (( "(") (binary_expression "*(long *)(PTR_DAT_0045c708 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_0045c708 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_0045c708 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0045c708 + 0x10)" (( "(") (binary_expression "PTR_DAT_0045c708 + 0x10" (identifier "PTR_DAT_0045c708") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0028c8d7;" (goto "goto") (statement_identifier "LAB_0028c8d7") (; ";"))) (if_statement "if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x339) == '\0') {\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          if (*(code **)(*plVar17 + 0x38) != FUN_00172b10) {\n            cVar9 = (**(code **)(*plVar17 + 0x38))(plVar17,puVar6);\n            if (cVar9 != '\0') goto LAB_0028be18;\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) goto LAB_0028c752;\n            lVar15 = puVar6[2];\n          }\n          if ((*(byte *)(lVar15 + 0x3c) & 0x20) == 0) {\n            if (*(int *)(lVar15 + 0x88) == 0) {\n                    \n              FUN_0018ff20("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }\n            if (*(int *)(lVar15 + 0x88) != 1) {\n              FUN_00187dc0(puVar6);\n            }\n          }\n        }" (if "if") (parenthesized_expression "(*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x339) == '\0')" (( "(") (binary_expression "*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x339) == '\0'" (pointer_expression "*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x339)" (* "*") (cast_expression "(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x339)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x339)" (( "(") (binary_expression "*(long *)(PTR_DAT_0045c708 + 0x10) + 0x339" (pointer_expression "*(long *)(PTR_DAT_0045c708 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_0045c708 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0045c708 + 0x10)" (( "(") (binary_expression "PTR_DAT_0045c708 + 0x10" (identifier "PTR_DAT_0045c708") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x339")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          if (*(code **)(*plVar17 + 0x38) != FUN_00172b10) {\n            cVar9 = (**(code **)(*plVar17 + 0x38))(plVar17,puVar6);\n            if (cVar9 != '\0') goto LAB_0028be18;\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) goto LAB_0028c752;\n            lVar15 = puVar6[2];\n          }\n          if ((*(byte *)(lVar15 + 0x3c) & 0x20) == 0) {\n            if (*(int *)(lVar15 + 0x88) == 0) {\n                    \n              FUN_0018ff20("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }\n            if (*(int *)(lVar15 + 0x88) != 1) {\n              FUN_00187dc0(puVar6);\n            }\n          }\n        }" ({ "{") (expression_statement "plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);" (assignment_expression "plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18)" (identifier "plVar17") (= "=") (pointer_expression "*(long **)(PTR_DAT_0045c708 + 0x18)" (* "*") (cast_expression "(long **)(PTR_DAT_0045c708 + 0x18)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_DAT_0045c708 + 0x18)" (( "(") (binary_expression "PTR_DAT_0045c708 + 0x18" (identifier "PTR_DAT_0045c708") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (plVar17 == (long *)0x0) goto LAB_0028c91f;" (if "if") (parenthesized_expression "(plVar17 == (long *)0x0)" (( "(") (binary_expression "plVar17 == (long *)0x0" (identifier "plVar17") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0028c91f;" (goto "goto") (statement_identifier "LAB_0028c91f") (; ";"))) (if_statement "if (*(code **)(*plVar17 + 0x38) != FUN_00172b10) {\n            cVar9 = (**(code **)(*plVar17 + 0x38))(plVar17,puVar6);\n            if (cVar9 != '\0') goto LAB_0028be18;\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) goto LAB_0028c752;\n            lVar15 = puVar6[2];\n          }" (if "if") (parenthesized_expression "(*(code **)(*plVar17 + 0x38) != FUN_00172b10)" (( "(") (binary_expression "*(code **)(*plVar17 + 0x38) != FUN_00172b10" (pointer_expression "*(code **)(*plVar17 + 0x38)" (* "*") (cast_expression "(code **)(*plVar17 + 0x38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar17 + 0x38)" (( "(") (binary_expression "*plVar17 + 0x38" (pointer_expression "*plVar17" (* "*") (identifier "plVar17")) (+ "+") (number_literal "0x38")) () ")")))) (!= "!=") (identifier "FUN_00172b10")) () ")")) (compound_statement "{\n            cVar9 = (**(code **)(*plVar17 + 0x38))(plVar17,puVar6);\n            if (cVar9 != '\0') goto LAB_0028be18;\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) goto LAB_0028c752;\n            lVar15 = puVar6[2];\n          }" ({ "{") (expression_statement "cVar9 = (**(code **)(*plVar17 + 0x38))(plVar17,puVar6);" (assignment_expression "cVar9 = (**(code **)(*plVar17 + 0x38))(plVar17,puVar6)" (identifier "cVar9") (= "=") (call_expression "(**(code **)(*plVar17 + 0x38))(plVar17,puVar6)" (parenthesized_expression "(**(code **)(*plVar17 + 0x38))" (( "(") (pointer_expression "**(code **)(*plVar17 + 0x38)" (* "*") (pointer_expression "*(code **)(*plVar17 + 0x38)" (* "*") (cast_expression "(code **)(*plVar17 + 0x38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar17 + 0x38)" (( "(") (binary_expression "*plVar17 + 0x38" (pointer_expression "*plVar17" (* "*") (identifier "plVar17")) (+ "+") (number_literal "0x38")) () ")"))))) () ")")) (argument_list "(plVar17,puVar6)" (( "(") (identifier "plVar17") (, ",") (identifier "puVar6") () ")")))) (; ";")) (if_statement "if (cVar9 != '\0') goto LAB_0028be18;" (if "if") (parenthesized_expression "(cVar9 != '\0')" (( "(") (binary_expression "cVar9 != '\0'" (identifier "cVar9") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0028be18;" (goto "goto") (statement_identifier "LAB_0028be18") (; ";"))) (if_statement "if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) goto LAB_0028c752;" (if "if") (parenthesized_expression "((*(byte *)((long)puVar6 + 0x3a) & 7) != 0)" (( "(") (binary_expression "(*(byte *)((long)puVar6 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)((long)puVar6 + 0x3a) & 7)" (( "(") (binary_expression "*(byte *)((long)puVar6 + 0x3a) & 7" (pointer_expression "*(byte *)((long)puVar6 + 0x3a)" (* "*") (cast_expression "(byte *)((long)puVar6 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar6 + 0x3a)" (( "(") (binary_expression "(long)puVar6 + 0x3a" (cast_expression "(long)puVar6" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar6")) (+ "+") (number_literal "0x3a")) () ")")))) (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0028c752;" (goto "goto") (statement_identifier "LAB_0028c752") (; ";"))) (expression_statement "lVar15 = puVar6[2];" (assignment_expression "lVar15 = puVar6[2]" (identifier "lVar15") (= "=") (subscript_expression "puVar6[2]" (identifier "puVar6") ([ "[") (number_literal "2") (] "]"))) (; ";")) (} "}"))) (if_statement "if ((*(byte *)(lVar15 + 0x3c) & 0x20) == 0) {\n            if (*(int *)(lVar15 + 0x88) == 0) {\n                    \n              FUN_0018ff20("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }\n            if (*(int *)(lVar15 + 0x88) != 1) {\n              FUN_00187dc0(puVar6);\n            }\n          }" (if "if") (parenthesized_expression "((*(byte *)(lVar15 + 0x3c) & 0x20) == 0)" (( "(") (binary_expression "(*(byte *)(lVar15 + 0x3c) & 0x20) == 0" (parenthesized_expression "(*(byte *)(lVar15 + 0x3c) & 0x20)" (( "(") (binary_expression "*(byte *)(lVar15 + 0x3c) & 0x20" (pointer_expression "*(byte *)(lVar15 + 0x3c)" (* "*") (cast_expression "(byte *)(lVar15 + 0x3c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0x3c)" (( "(") (binary_expression "lVar15 + 0x3c" (identifier "lVar15") (+ "+") (number_literal "0x3c")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            if (*(int *)(lVar15 + 0x88) == 0) {\n                    \n              FUN_0018ff20("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }\n            if (*(int *)(lVar15 + 0x88) != 1) {\n              FUN_00187dc0(puVar6);\n            }\n          }" ({ "{") (if_statement "if (*(int *)(lVar15 + 0x88) == 0) {\n                    \n              FUN_0018ff20("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }" (if "if") (parenthesized_expression "(*(int *)(lVar15 + 0x88) == 0)" (( "(") (binary_expression "*(int *)(lVar15 + 0x88) == 0" (pointer_expression "*(int *)(lVar15 + 0x88)" (* "*") (cast_expression "(int *)(lVar15 + 0x88)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0x88)" (( "(") (binary_expression "lVar15 + 0x88" (identifier "lVar15") (+ "+") (number_literal "0x88")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n              FUN_0018ff20("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");\n            }" ({ "{") (expression_statement "FUN_0018ff20("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");" (call_expression "FUN_0018ff20("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries")" (identifier "FUN_0018ff20") (argument_list "("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries")" (( "(") (string_literal ""../../gold/dynobj.h"" (" """) (string_content "../../gold/dynobj.h") (" """)) (, ",") (number_literal "0x3e") (, ",") (string_literal ""has_unknown_needed_entries"" (" """) (string_content "has_unknown_needed_entries") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(lVar15 + 0x88) != 1) {\n              FUN_00187dc0(puVar6);\n            }" (if "if") (parenthesized_expression "(*(int *)(lVar15 + 0x88) != 1)" (( "(") (binary_expression "*(int *)(lVar15 + 0x88) != 1" (pointer_expression "*(int *)(lVar15 + 0x88)" (* "*") (cast_expression "(int *)(lVar15 + 0x88)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0x88)" (( "(") (binary_expression "lVar15 + 0x88" (identifier "lVar15") (+ "+") (number_literal "0x88")) () ")")))) (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n              FUN_00187dc0(puVar6);\n            }" ({ "{") (expression_statement "FUN_00187dc0(puVar6);" (call_expression "FUN_00187dc0(puVar6)" (identifier "FUN_00187dc0") (argument_list "(puVar6)" (( "(") (identifier "puVar6") () ")"))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (labeled_statement "LAB_0028be18:\n      uVar12 = *(uint *)((long)puVar6 + 0x1c);" (statement_identifier "LAB_0028be18") (: ":") (expression_statement "uVar12 = *(uint *)((long)puVar6 + 0x1c);" (assignment_expression "uVar12 = *(uint *)((long)puVar6 + 0x1c)" (identifier "uVar12") (= "=") (pointer_expression "*(uint *)((long)puVar6 + 0x1c)" (* "*") (cast_expression "(uint *)((long)puVar6 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar6 + 0x1c)" (( "(") (binary_expression "(long)puVar6 + 0x1c" (cast_expression "(long)puVar6" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar6")) (+ "+") (number_literal "0x1c")) () ")"))))) (; ";"))) (if_statement "if (uVar12 == 0) goto LAB_0028c880;" (if "if") (parenthesized_expression "(uVar12 == 0)" (( "(") (binary_expression "uVar12 == 0" (identifier "uVar12") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0028c880;" (goto "goto") (statement_identifier "LAB_0028c880") (; ";"))) (if_statement "if (local_c0 == (code *)0x0) {\n        uVar22 = 0xffffffff;\n        uVar11 = uVar12;\n      }\n      else {\n        uVar22 = *(uint *)(puVar6 + 4);\n        if (uVar22 == 0) goto LAB_0028c898;\n        uVar11 = uVar12 & uVar22;\n      }" (if "if") (parenthesized_expression "(local_c0 == (code *)0x0)" (( "(") (binary_expression "local_c0 == (code *)0x0" (identifier "local_c0") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        uVar22 = 0xffffffff;\n        uVar11 = uVar12;\n      }" ({ "{") (expression_statement "uVar22 = 0xffffffff;" (assignment_expression "uVar22 = 0xffffffff" (identifier "uVar22") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "uVar11 = uVar12;" (assignment_expression "uVar11 = uVar12" (identifier "uVar11") (= "=") (identifier "uVar12")) (; ";")) (} "}")) (else_clause "else {\n        uVar22 = *(uint *)(puVar6 + 4);\n        if (uVar22 == 0) goto LAB_0028c898;\n        uVar11 = uVar12 & uVar22;\n      }" (else "else") (compound_statement "{\n        uVar22 = *(uint *)(puVar6 + 4);\n        if (uVar22 == 0) goto LAB_0028c898;\n        uVar11 = uVar12 & uVar22;\n      }" ({ "{") (expression_statement "uVar22 = *(uint *)(puVar6 + 4);" (assignment_expression "uVar22 = *(uint *)(puVar6 + 4)" (identifier "uVar22") (= "=") (pointer_expression "*(uint *)(puVar6 + 4)" (* "*") (cast_expression "(uint *)(puVar6 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 4)" (( "(") (binary_expression "puVar6 + 4" (identifier "puVar6") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (uVar22 == 0) goto LAB_0028c898;" (if "if") (parenthesized_expression "(uVar22 == 0)" (( "(") (binary_expression "uVar22 == 0" (identifier "uVar22") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0028c898;" (goto "goto") (statement_identifier "LAB_0028c898") (; ";"))) (expression_statement "uVar11 = uVar12 & uVar22;" (assignment_expression "uVar11 = uVar12 & uVar22" (identifier "uVar11") (= "=") (binary_expression "uVar12 & uVar22" (identifier "uVar12") (& "&") (identifier "uVar22"))) (; ";")) (} "}")))) (expression_statement "pcVar13 = (code *)(ulong)uVar11;" (assignment_expression "pcVar13 = (code *)(ulong)uVar11" (identifier "pcVar13") (= "=") (cast_expression "(code *)(ulong)uVar11" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(ulong)uVar11" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar11")))) (; ";")) (if_statement "if (uVar11 != 0xffffffff) {\n        local_d0 = (code *)puVar6[8];\n        uVar11 = (uint)(*(byte *)(puVar6 + 7) >> 4);\n        lVar15 = *(long *)(PTR_DAT_0045c708 + 0x10);\n        if (lVar15 == 0) goto LAB_0028c8d7;\n        bVar8 = *(byte *)((long)puVar6 + 0x3a);\n        uVar10 = bVar8 & 7;\n        bVar7 = (byte)uVar10;\n        pcVar14 = local_d0;\n        if ((*(char *)(lVar15 + 0x7739) != '\0') && (uVar11 == 1)) {\n          if (bVar7 == 0) {\n            if ((*(int *)(puVar6 + 3) == 0) && ((*(byte *)((long)puVar6 + 0x3b) >> 5 & 1) != 0)) {\n                    \n                    \n              pcVar13 = (code *)(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return pcVar13;\n            }\n                    \n                    \n            pcVar13 = (code *)(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();\n            return pcVar13;\n          }\n          if (bVar7 == 4) {\n                    \n                    \n            pcVar13 = (code *)(*(code *)(&DAT_003a0b64 + lVar20))();\n            return pcVar13;\n          }\n          if (4 < bVar7) goto LAB_0028c8b0;\n          pcVar13 = (code *)((long)&switchD_0028c5a7::switchdataD_003a0b78 +\n                            (long)(int)(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10]);\n                    \n          switch(uVar10) {\n          case 0:\nswitchD_0028c5a7_caseD_0:\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xaa,"shndx");\n          case 1:\n            uVar11 = 1;\n            goto LAB_0028c1cb;\n          case 2:\n            uVar11 = 1;\n            goto LAB_0028c143;\n          case 3:\n            uVar11 = 1;\n            uVar10 = 0xfff1;\n            break;\n          case 4:\n                    \n            uVar11 = 1;\n            uVar10 = 0;\n          }\n          goto LAB_0028bf30;\n        }\n        if ((uVar11 == 10) && (*(char *)(lVar15 + 0x2999) == '\0')) {\n          uVar11 = 1;\n        }\n        if (4 < bVar7) {\nLAB_0028c8b0:\n                    \n          FUN_0018ff20("../../gold/symtab.cc",0xc9b,"sized_write_globals");\n        }\n        pcVar13 = (code *)((long)&switchD_0028bebe::switchdataD_003a0b3c +\n                          (long)(int)(&switchD_0028bebe::switchdataD_003a0b3c)[uVar10]);\n        switch(uVar10) {\n        case 0:\n          if ((bVar8 & 7) != 0) goto switchD_0028c5a7_caseD_0;\n          uVar10 = *(uint *)(puVar6 + 3);\n          bVar8 = *(byte *)((long)puVar6 + 0x3b) >> 5;\n          if (((bVar8 & 1) != 1) && (uVar10 != 0xfff1)) {\n            cVar9 = FUN_00284a00(uVar10);\n            if (cVar9 == '\0') {\n              FUN_00285b30(&local_58,*puVar6);\n              uVar25 = CONCAT44(uStack_54,local_58);\n              uVar16 = gettext("%s: unsupported symbol section 0x%x");\n                    \n              FUN_001878b0(uVar16,uVar25,uVar10);\n              pcVar13 = (code *)auStack_48;\n              if ((code *)CONCAT44(uStack_54,local_58) != pcVar13) {\n                pcVar13 = (code *)FUN_002f1e60();\n              }\n              break;\n            }\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) {\nLAB_0028c752:\n                    \n              FUN_0018ff20("../../gold/symtab.h",0xa1,"object");\n            }\n          }\n          plVar17 = (long *)puVar6[2];\n          if ((*(byte *)((long)plVar17 + 0x3c) & 1) == 0) {\n            pcVar13 = (code *)(**(code **)(*plVar17 + 0x28))(plVar17);\n            if ((pcVar13 != (code *)0x0) || (uVar10 == 0)) goto switchD_0028bebe_caseD_4;\n            if (((bVar8 & 1) != 0) ||\n               ((uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')\n                ))) {\n              uVar19 = (ulong)uVar10;\n              if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;\n                plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n              }\n              else {\n                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);\n              }\n              cVar9 = FUN_00284da0(param_1,plVar17,uVar19);\n              if (cVar9 == '\0') {\n                if (plVar18 == (long *)0x0) goto LAB_0028c9cd;\n              }\n              else {\n                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);\n                plVar17 = auVar26._0_8_;\n                if (plVar17 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }\n                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    \n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }\n                if (plVar18 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }\n              }\n              if (*(code **)(*plVar18 + 0x58) == FUN_0019a160) {\n                uVar10 = *(uint *)((long)plVar18 + 0x7c);\n                if (uVar10 == 0xffffffff) goto LAB_0028ca38;\n              }\n              else {\n                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);\n              }\n              if (0xfeff < uVar10) {\n                if (uVar12 != 0xffffffff) {\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }\n                if (uVar22 == 0xffffffff) {\n                  uVar10 = 0xffff;\n                }\n                else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }\n              }\n              pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n              if (pcVar13 == (code *)0x0) goto LAB_0028c8d7;\n              if (pcVar13[0x5051] != (code)0x0) {\n                if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;\n                pcVar13 = local_d0 + -plVar18[1];\n                local_d0 = pcVar13;\n              }\n            }\n          }\n          else {\n            if ((*(byte *)((long)puVar6 + 0x3b) & 2) != 0) {\n              pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6);\n            }\n            uVar10 = 0;\n            uVar11 = *(byte *)((long)puVar6 + 0x3c) >> 1 & 1;\n            pcVar13 = (code *)(ulong)uVar11;\n            uVar11 = 2 - ((char)uVar11 == '\0');\n          }\n          break;\n        case 1:\nLAB_0028c1cb:\n          if ((bVar8 & 7) != 1) {\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xb5,"output_data");\n          }\n          plVar17 = (long *)puVar6[2];\n          uVar10 = (**(code **)(*plVar17 + 0x58))(plVar17);\n          if (0xfeff < uVar10) {\n            if (uVar12 != 0xffffffff) {\n              local_58 = uVar12;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_4 + 0x38,&local_58);\n            }\n            if (uVar22 == 0xffffffff) {\n              uVar10 = 0xffff;\n            }\n            else {\n              local_58 = uVar22;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_5 + 0x38,&local_58);\n              uVar10 = 0xffff;\n            }\n          }\n          pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n          if (pcVar13 == (code *)0x0) {\nLAB_0028c8d7:\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if (pcVar13[0x5051] != (code)0x0) {\n            lVar15 = (**(code **)(*plVar17 + 0x48))(plVar17);\n            if (lVar15 == 0) {\n                    \n              FUN_0018ff20("../../gold/symtab.cc",0xc81,"sized_write_globals");\n            }\n            if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    \n              FUN_0018ff20("../../gold/output.h",0xc5,"address");\n            }\n            pcVar13 = *(code **)(lVar15 + 8);\n            local_d0 = local_d0 + -(long)pcVar13;\n          }\n          break;\n        case 2:\n          uVar10 = bVar8 & 7;\nLAB_0028c143:\n          if ((char)uVar10 != '\x02') {\n                    \n            FUN_0018ff20("../../gold/symtab.h",200,"output_segment");\n          }\n          pcVar13 = (code *)FUN_0020de20(puVar6[2]);\n          if (pcVar13 == (code *)0x0) goto switchD_0028bebe_caseD_3;\n          if (*(code **)(*(long *)pcVar13 + 0x58) == FUN_0019a160) {\n            uVar10 = *(uint *)(pcVar13 + 0x7c);\n            pcVar13 = (code *)(ulong)uVar10;\n            if (uVar10 == 0xffffffff) {\nLAB_0028ca38:\n                    \n              FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx");\n            }\n          }\n          else {\n            pcVar13 = (code *)(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13);\n            uVar10 = (uint)pcVar13;\n          }\n          break;\n        case 3:\nswitchD_0028bebe_caseD_3:\n          uVar10 = 0xfff1;\n          break;\n        case 4:\nswitchD_0028bebe_caseD_4:\n          uVar10 = 0;\n        }\nLAB_0028bf30:\n        if (uVar12 != 0xffffffff) {\n          uVar12 = uVar12 - iVar1;\n          if (uVar2 <= uVar12) {\n                    \n            FUN_0018ff20("../../gold/symtab.cc",0xca1,"sized_write_globals");\n          }\n          pcVar13 = (code *)FUN_00289ee0(param_1,puVar6,local_d0,uVar10,uVar11,param_2,\n                                         (ulong)(uVar12 * 0x18) + local_98);\n        }\n        if (uVar22 != 0xffffffff) {\n          uVar22 = uVar22 - iVar3;\n          if (uVar4 <= uVar22) {\n                    \n            FUN_0018ff20("../../gold/symtab.cc",0xcaa,"sized_write_globals");\n          }\n          FUN_00289ee0(param_1,puVar6,pcVar14,uVar10,uVar11,param_3);\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          pcVar13 = *(code **)(*plVar17 + 0x138);\n          if (pcVar13 != FUN_00172ba0) {\n            pcVar13 = (code *)(*pcVar13)(plVar17,puVar6,local_c0 + uVar22 * 0x18);\n          }\n        }\n      }" (if "if") (parenthesized_expression "(uVar11 != 0xffffffff)" (( "(") (binary_expression "uVar11 != 0xffffffff" (identifier "uVar11") (!= "!=") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n        local_d0 = (code *)puVar6[8];\n        uVar11 = (uint)(*(byte *)(puVar6 + 7) >> 4);\n        lVar15 = *(long *)(PTR_DAT_0045c708 + 0x10);\n        if (lVar15 == 0) goto LAB_0028c8d7;\n        bVar8 = *(byte *)((long)puVar6 + 0x3a);\n        uVar10 = bVar8 & 7;\n        bVar7 = (byte)uVar10;\n        pcVar14 = local_d0;\n        if ((*(char *)(lVar15 + 0x7739) != '\0') && (uVar11 == 1)) {\n          if (bVar7 == 0) {\n            if ((*(int *)(puVar6 + 3) == 0) && ((*(byte *)((long)puVar6 + 0x3b) >> 5 & 1) != 0)) {\n                    \n                    \n              pcVar13 = (code *)(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return pcVar13;\n            }\n                    \n                    \n            pcVar13 = (code *)(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();\n            return pcVar13;\n          }\n          if (bVar7 == 4) {\n                    \n                    \n            pcVar13 = (code *)(*(code *)(&DAT_003a0b64 + lVar20))();\n            return pcVar13;\n          }\n          if (4 < bVar7) goto LAB_0028c8b0;\n          pcVar13 = (code *)((long)&switchD_0028c5a7::switchdataD_003a0b78 +\n                            (long)(int)(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10]);\n                    \n          switch(uVar10) {\n          case 0:\nswitchD_0028c5a7_caseD_0:\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xaa,"shndx");\n          case 1:\n            uVar11 = 1;\n            goto LAB_0028c1cb;\n          case 2:\n            uVar11 = 1;\n            goto LAB_0028c143;\n          case 3:\n            uVar11 = 1;\n            uVar10 = 0xfff1;\n            break;\n          case 4:\n                    \n            uVar11 = 1;\n            uVar10 = 0;\n          }\n          goto LAB_0028bf30;\n        }\n        if ((uVar11 == 10) && (*(char *)(lVar15 + 0x2999) == '\0')) {\n          uVar11 = 1;\n        }\n        if (4 < bVar7) {\nLAB_0028c8b0:\n                    \n          FUN_0018ff20("../../gold/symtab.cc",0xc9b,"sized_write_globals");\n        }\n        pcVar13 = (code *)((long)&switchD_0028bebe::switchdataD_003a0b3c +\n                          (long)(int)(&switchD_0028bebe::switchdataD_003a0b3c)[uVar10]);\n        switch(uVar10) {\n        case 0:\n          if ((bVar8 & 7) != 0) goto switchD_0028c5a7_caseD_0;\n          uVar10 = *(uint *)(puVar6 + 3);\n          bVar8 = *(byte *)((long)puVar6 + 0x3b) >> 5;\n          if (((bVar8 & 1) != 1) && (uVar10 != 0xfff1)) {\n            cVar9 = FUN_00284a00(uVar10);\n            if (cVar9 == '\0') {\n              FUN_00285b30(&local_58,*puVar6);\n              uVar25 = CONCAT44(uStack_54,local_58);\n              uVar16 = gettext("%s: unsupported symbol section 0x%x");\n                    \n              FUN_001878b0(uVar16,uVar25,uVar10);\n              pcVar13 = (code *)auStack_48;\n              if ((code *)CONCAT44(uStack_54,local_58) != pcVar13) {\n                pcVar13 = (code *)FUN_002f1e60();\n              }\n              break;\n            }\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) {\nLAB_0028c752:\n                    \n              FUN_0018ff20("../../gold/symtab.h",0xa1,"object");\n            }\n          }\n          plVar17 = (long *)puVar6[2];\n          if ((*(byte *)((long)plVar17 + 0x3c) & 1) == 0) {\n            pcVar13 = (code *)(**(code **)(*plVar17 + 0x28))(plVar17);\n            if ((pcVar13 != (code *)0x0) || (uVar10 == 0)) goto switchD_0028bebe_caseD_4;\n            if (((bVar8 & 1) != 0) ||\n               ((uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')\n                ))) {\n              uVar19 = (ulong)uVar10;\n              if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;\n                plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n              }\n              else {\n                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);\n              }\n              cVar9 = FUN_00284da0(param_1,plVar17,uVar19);\n              if (cVar9 == '\0') {\n                if (plVar18 == (long *)0x0) goto LAB_0028c9cd;\n              }\n              else {\n                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);\n                plVar17 = auVar26._0_8_;\n                if (plVar17 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }\n                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    \n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }\n                if (plVar18 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }\n              }\n              if (*(code **)(*plVar18 + 0x58) == FUN_0019a160) {\n                uVar10 = *(uint *)((long)plVar18 + 0x7c);\n                if (uVar10 == 0xffffffff) goto LAB_0028ca38;\n              }\n              else {\n                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);\n              }\n              if (0xfeff < uVar10) {\n                if (uVar12 != 0xffffffff) {\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }\n                if (uVar22 == 0xffffffff) {\n                  uVar10 = 0xffff;\n                }\n                else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }\n              }\n              pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n              if (pcVar13 == (code *)0x0) goto LAB_0028c8d7;\n              if (pcVar13[0x5051] != (code)0x0) {\n                if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;\n                pcVar13 = local_d0 + -plVar18[1];\n                local_d0 = pcVar13;\n              }\n            }\n          }\n          else {\n            if ((*(byte *)((long)puVar6 + 0x3b) & 2) != 0) {\n              pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6);\n            }\n            uVar10 = 0;\n            uVar11 = *(byte *)((long)puVar6 + 0x3c) >> 1 & 1;\n            pcVar13 = (code *)(ulong)uVar11;\n            uVar11 = 2 - ((char)uVar11 == '\0');\n          }\n          break;\n        case 1:\nLAB_0028c1cb:\n          if ((bVar8 & 7) != 1) {\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xb5,"output_data");\n          }\n          plVar17 = (long *)puVar6[2];\n          uVar10 = (**(code **)(*plVar17 + 0x58))(plVar17);\n          if (0xfeff < uVar10) {\n            if (uVar12 != 0xffffffff) {\n              local_58 = uVar12;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_4 + 0x38,&local_58);\n            }\n            if (uVar22 == 0xffffffff) {\n              uVar10 = 0xffff;\n            }\n            else {\n              local_58 = uVar22;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_5 + 0x38,&local_58);\n              uVar10 = 0xffff;\n            }\n          }\n          pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n          if (pcVar13 == (code *)0x0) {\nLAB_0028c8d7:\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if (pcVar13[0x5051] != (code)0x0) {\n            lVar15 = (**(code **)(*plVar17 + 0x48))(plVar17);\n            if (lVar15 == 0) {\n                    \n              FUN_0018ff20("../../gold/symtab.cc",0xc81,"sized_write_globals");\n            }\n            if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    \n              FUN_0018ff20("../../gold/output.h",0xc5,"address");\n            }\n            pcVar13 = *(code **)(lVar15 + 8);\n            local_d0 = local_d0 + -(long)pcVar13;\n          }\n          break;\n        case 2:\n          uVar10 = bVar8 & 7;\nLAB_0028c143:\n          if ((char)uVar10 != '\x02') {\n                    \n            FUN_0018ff20("../../gold/symtab.h",200,"output_segment");\n          }\n          pcVar13 = (code *)FUN_0020de20(puVar6[2]);\n          if (pcVar13 == (code *)0x0) goto switchD_0028bebe_caseD_3;\n          if (*(code **)(*(long *)pcVar13 + 0x58) == FUN_0019a160) {\n            uVar10 = *(uint *)(pcVar13 + 0x7c);\n            pcVar13 = (code *)(ulong)uVar10;\n            if (uVar10 == 0xffffffff) {\nLAB_0028ca38:\n                    \n              FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx");\n            }\n          }\n          else {\n            pcVar13 = (code *)(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13);\n            uVar10 = (uint)pcVar13;\n          }\n          break;\n        case 3:\nswitchD_0028bebe_caseD_3:\n          uVar10 = 0xfff1;\n          break;\n        case 4:\nswitchD_0028bebe_caseD_4:\n          uVar10 = 0;\n        }\nLAB_0028bf30:\n        if (uVar12 != 0xffffffff) {\n          uVar12 = uVar12 - iVar1;\n          if (uVar2 <= uVar12) {\n                    \n            FUN_0018ff20("../../gold/symtab.cc",0xca1,"sized_write_globals");\n          }\n          pcVar13 = (code *)FUN_00289ee0(param_1,puVar6,local_d0,uVar10,uVar11,param_2,\n                                         (ulong)(uVar12 * 0x18) + local_98);\n        }\n        if (uVar22 != 0xffffffff) {\n          uVar22 = uVar22 - iVar3;\n          if (uVar4 <= uVar22) {\n                    \n            FUN_0018ff20("../../gold/symtab.cc",0xcaa,"sized_write_globals");\n          }\n          FUN_00289ee0(param_1,puVar6,pcVar14,uVar10,uVar11,param_3);\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          pcVar13 = *(code **)(*plVar17 + 0x138);\n          if (pcVar13 != FUN_00172ba0) {\n            pcVar13 = (code *)(*pcVar13)(plVar17,puVar6,local_c0 + uVar22 * 0x18);\n          }\n        }\n      }" ({ "{") (expression_statement "local_d0 = (code *)puVar6[8];" (assignment_expression "local_d0 = (code *)puVar6[8]" (identifier "local_d0") (= "=") (cast_expression "(code *)puVar6[8]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar6[8]" (identifier "puVar6") ([ "[") (number_literal "8") (] "]")))) (; ";")) (expression_statement "uVar11 = (uint)(*(byte *)(puVar6 + 7) >> 4);" (assignment_expression "uVar11 = (uint)(*(byte *)(puVar6 + 7) >> 4)" (identifier "uVar11") (= "=") (call_expression "(uint)(*(byte *)(puVar6 + 7) >> 4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(byte *)(puVar6 + 7) >> 4)" (( "(") (binary_expression "*(byte *)(puVar6 + 7) >> 4" (pointer_expression "*(byte *)(puVar6 + 7)" (* "*") (cast_expression "(byte *)(puVar6 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 7)" (( "(") (binary_expression "puVar6 + 7" (identifier "puVar6") (+ "+") (number_literal "7")) () ")")))) (>> ">>") (number_literal "4")) () ")")))) (; ";")) (expression_statement "lVar15 = *(long *)(PTR_DAT_0045c708 + 0x10);" (assignment_expression "lVar15 = *(long *)(PTR_DAT_0045c708 + 0x10)" (identifier "lVar15") (= "=") (pointer_expression "*(long *)(PTR_DAT_0045c708 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_0045c708 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0045c708 + 0x10)" (( "(") (binary_expression "PTR_DAT_0045c708 + 0x10" (identifier "PTR_DAT_0045c708") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if (lVar15 == 0) goto LAB_0028c8d7;" (if "if") (parenthesized_expression "(lVar15 == 0)" (( "(") (binary_expression "lVar15 == 0" (identifier "lVar15") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0028c8d7;" (goto "goto") (statement_identifier "LAB_0028c8d7") (; ";"))) (expression_statement "bVar8 = *(byte *)((long)puVar6 + 0x3a);" (assignment_expression "bVar8 = *(byte *)((long)puVar6 + 0x3a)" (identifier "bVar8") (= "=") (pointer_expression "*(byte *)((long)puVar6 + 0x3a)" (* "*") (cast_expression "(byte *)((long)puVar6 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar6 + 0x3a)" (( "(") (binary_expression "(long)puVar6 + 0x3a" (cast_expression "(long)puVar6" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar6")) (+ "+") (number_literal "0x3a")) () ")"))))) (; ";")) (expression_statement "uVar10 = bVar8 & 7;" (assignment_expression "uVar10 = bVar8 & 7" (identifier "uVar10") (= "=") (binary_expression "bVar8 & 7" (identifier "bVar8") (& "&") (number_literal "7"))) (; ";")) (expression_statement "bVar7 = (byte)uVar10;" (assignment_expression "bVar7 = (byte)uVar10" (identifier "bVar7") (= "=") (cast_expression "(byte)uVar10" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar10"))) (; ";")) (expression_statement "pcVar14 = local_d0;" (assignment_expression "pcVar14 = local_d0" (identifier "pcVar14") (= "=") (identifier "local_d0")) (; ";")) (if_statement "if ((*(char *)(lVar15 + 0x7739) != '\0') && (uVar11 == 1)) {\n          if (bVar7 == 0) {\n            if ((*(int *)(puVar6 + 3) == 0) && ((*(byte *)((long)puVar6 + 0x3b) >> 5 & 1) != 0)) {\n                    \n                    \n              pcVar13 = (code *)(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return pcVar13;\n            }\n                    \n                    \n            pcVar13 = (code *)(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();\n            return pcVar13;\n          }\n          if (bVar7 == 4) {\n                    \n                    \n            pcVar13 = (code *)(*(code *)(&DAT_003a0b64 + lVar20))();\n            return pcVar13;\n          }\n          if (4 < bVar7) goto LAB_0028c8b0;\n          pcVar13 = (code *)((long)&switchD_0028c5a7::switchdataD_003a0b78 +\n                            (long)(int)(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10]);\n                    \n          switch(uVar10) {\n          case 0:\nswitchD_0028c5a7_caseD_0:\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xaa,"shndx");\n          case 1:\n            uVar11 = 1;\n            goto LAB_0028c1cb;\n          case 2:\n            uVar11 = 1;\n            goto LAB_0028c143;\n          case 3:\n            uVar11 = 1;\n            uVar10 = 0xfff1;\n            break;\n          case 4:\n                    \n            uVar11 = 1;\n            uVar10 = 0;\n          }\n          goto LAB_0028bf30;\n        }" (if "if") (parenthesized_expression "((*(char *)(lVar15 + 0x7739) != '\0') && (uVar11 == 1))" (( "(") (binary_expression "(*(char *)(lVar15 + 0x7739) != '\0') && (uVar11 == 1)" (parenthesized_expression "(*(char *)(lVar15 + 0x7739) != '\0')" (( "(") (binary_expression "*(char *)(lVar15 + 0x7739) != '\0'" (pointer_expression "*(char *)(lVar15 + 0x7739)" (* "*") (cast_expression "(char *)(lVar15 + 0x7739)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0x7739)" (( "(") (binary_expression "lVar15 + 0x7739" (identifier "lVar15") (+ "+") (number_literal "0x7739")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(uVar11 == 1)" (( "(") (binary_expression "uVar11 == 1" (identifier "uVar11") (== "==") (number_literal "1")) () ")"))) () ")")) (compound_statement "{\n          if (bVar7 == 0) {\n            if ((*(int *)(puVar6 + 3) == 0) && ((*(byte *)((long)puVar6 + 0x3b) >> 5 & 1) != 0)) {\n                    \n                    \n              pcVar13 = (code *)(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return pcVar13;\n            }\n                    \n                    \n            pcVar13 = (code *)(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();\n            return pcVar13;\n          }\n          if (bVar7 == 4) {\n                    \n                    \n            pcVar13 = (code *)(*(code *)(&DAT_003a0b64 + lVar20))();\n            return pcVar13;\n          }\n          if (4 < bVar7) goto LAB_0028c8b0;\n          pcVar13 = (code *)((long)&switchD_0028c5a7::switchdataD_003a0b78 +\n                            (long)(int)(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10]);\n                    \n          switch(uVar10) {\n          case 0:\nswitchD_0028c5a7_caseD_0:\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xaa,"shndx");\n          case 1:\n            uVar11 = 1;\n            goto LAB_0028c1cb;\n          case 2:\n            uVar11 = 1;\n            goto LAB_0028c143;\n          case 3:\n            uVar11 = 1;\n            uVar10 = 0xfff1;\n            break;\n          case 4:\n                    \n            uVar11 = 1;\n            uVar10 = 0;\n          }\n          goto LAB_0028bf30;\n        }" ({ "{") (if_statement "if (bVar7 == 0) {\n            if ((*(int *)(puVar6 + 3) == 0) && ((*(byte *)((long)puVar6 + 0x3b) >> 5 & 1) != 0)) {\n                    \n                    \n              pcVar13 = (code *)(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return pcVar13;\n            }\n                    \n                    \n            pcVar13 = (code *)(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();\n            return pcVar13;\n          }" (if "if") (parenthesized_expression "(bVar7 == 0)" (( "(") (binary_expression "bVar7 == 0" (identifier "bVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            if ((*(int *)(puVar6 + 3) == 0) && ((*(byte *)((long)puVar6 + 0x3b) >> 5 & 1) != 0)) {\n                    \n                    \n              pcVar13 = (code *)(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return pcVar13;\n            }\n                    \n                    \n            pcVar13 = (code *)(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();\n            return pcVar13;\n          }" ({ "{") (if_statement "if ((*(int *)(puVar6 + 3) == 0) && ((*(byte *)((long)puVar6 + 0x3b) >> 5 & 1) != 0)) {\n                    \n                    \n              pcVar13 = (code *)(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return pcVar13;\n            }" (if "if") (parenthesized_expression "((*(int *)(puVar6 + 3) == 0) && ((*(byte *)((long)puVar6 + 0x3b) >> 5 & 1) != 0))" (( "(") (binary_expression "(*(int *)(puVar6 + 3) == 0) && ((*(byte *)((long)puVar6 + 0x3b) >> 5 & 1) != 0)" (parenthesized_expression "(*(int *)(puVar6 + 3) == 0)" (( "(") (binary_expression "*(int *)(puVar6 + 3) == 0" (pointer_expression "*(int *)(puVar6 + 3)" (* "*") (cast_expression "(int *)(puVar6 + 3)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 3)" (( "(") (binary_expression "puVar6 + 3" (identifier "puVar6") (+ "+") (number_literal "3")) () ")")))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)((long)puVar6 + 0x3b) >> 5 & 1) != 0)" (( "(") (binary_expression "(*(byte *)((long)puVar6 + 0x3b) >> 5 & 1) != 0" (parenthesized_expression "(*(byte *)((long)puVar6 + 0x3b) >> 5 & 1)" (( "(") (binary_expression "*(byte *)((long)puVar6 + 0x3b) >> 5 & 1" (binary_expression "*(byte *)((long)puVar6 + 0x3b) >> 5" (pointer_expression "*(byte *)((long)puVar6 + 0x3b)" (* "*") (cast_expression "(byte *)((long)puVar6 + 0x3b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar6 + 0x3b)" (( "(") (binary_expression "(long)puVar6 + 0x3b" (cast_expression "(long)puVar6" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar6")) (+ "+") (number_literal "0x3b")) () ")")))) (>> ">>") (number_literal "5")) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                    \n                    \n              pcVar13 = (code *)(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();\n              return pcVar13;\n            }" ({ "{") (expression_statement "pcVar13 = (code *)(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();" (assignment_expression "pcVar13 = (code *)(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))()" (identifier "pcVar13") (= "=") (cast_expression "(code *)(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))()" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))()" (parenthesized_expression "(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))" (( "(") (pointer_expression "*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c)" (* "*") (cast_expression "(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&DAT_003a0b8c + (long)DAT_003a0b8c)" (( "(") (binary_expression "(long)&DAT_003a0b8c + (long)DAT_003a0b8c" (cast_expression "(long)&DAT_003a0b8c" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&DAT_003a0b8c" (& "&") (identifier "DAT_003a0b8c"))) (+ "+") (cast_expression "(long)DAT_003a0b8c" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "DAT_003a0b8c"))) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (return_statement "return pcVar13;" (return "return") (identifier "pcVar13") (; ";")) (} "}"))) (expression_statement "pcVar13 = (code *)(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();" (assignment_expression "pcVar13 = (code *)(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))()" (identifier "pcVar13") (= "=") (cast_expression "(code *)(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))()" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))()" (parenthesized_expression "(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))" (( "(") (pointer_expression "*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50)" (* "*") (cast_expression "(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&DAT_003a0b50 + (long)DAT_003a0b50)" (( "(") (binary_expression "(long)&DAT_003a0b50 + (long)DAT_003a0b50" (cast_expression "(long)&DAT_003a0b50" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&DAT_003a0b50" (& "&") (identifier "DAT_003a0b50"))) (+ "+") (cast_expression "(long)DAT_003a0b50" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "DAT_003a0b50"))) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (return_statement "return pcVar13;" (return "return") (identifier "pcVar13") (; ";")) (} "}"))) (if_statement "if (bVar7 == 4) {\n                    \n                    \n            pcVar13 = (code *)(*(code *)(&DAT_003a0b64 + lVar20))();\n            return pcVar13;\n          }" (if "if") (parenthesized_expression "(bVar7 == 4)" (( "(") (binary_expression "bVar7 == 4" (identifier "bVar7") (== "==") (number_literal "4")) () ")")) (compound_statement "{\n                    \n                    \n            pcVar13 = (code *)(*(code *)(&DAT_003a0b64 + lVar20))();\n            return pcVar13;\n          }" ({ "{") (expression_statement "pcVar13 = (code *)(*(code *)(&DAT_003a0b64 + lVar20))();" (assignment_expression "pcVar13 = (code *)(*(code *)(&DAT_003a0b64 + lVar20))()" (identifier "pcVar13") (= "=") (cast_expression "(code *)(*(code *)(&DAT_003a0b64 + lVar20))()" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)(&DAT_003a0b64 + lVar20))()" (parenthesized_expression "(*(code *)(&DAT_003a0b64 + lVar20))" (( "(") (pointer_expression "*(code *)(&DAT_003a0b64 + lVar20)" (* "*") (cast_expression "(code *)(&DAT_003a0b64 + lVar20)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_003a0b64 + lVar20)" (( "(") (binary_expression "&DAT_003a0b64 + lVar20" (pointer_expression "&DAT_003a0b64" (& "&") (identifier "DAT_003a0b64")) (+ "+") (identifier "lVar20")) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (return_statement "return pcVar13;" (return "return") (identifier "pcVar13") (; ";")) (} "}"))) (if_statement "if (4 < bVar7) goto LAB_0028c8b0;" (if "if") (parenthesized_expression "(4 < bVar7)" (( "(") (binary_expression "4 < bVar7" (number_literal "4") (< "<") (identifier "bVar7")) () ")")) (goto_statement "goto LAB_0028c8b0;" (goto "goto") (statement_identifier "LAB_0028c8b0") (; ";"))) (expression_statement "pcVar13 = (code *)((long)&switchD_0028c5a7::switchdataD_003a0b78 +\n                            (long)(int)(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10]);" (assignment_expression "pcVar13 = (code *)((long)&switchD_0028c5a7::switchdataD_003a0b78 +\n                            (long)(int)(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10])" (identifier "pcVar13") (= "=") (cast_expression "(code *)((long)&switchD_0028c5a7::switchdataD_003a0b78 +\n                            (long)(int)(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10])" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&switchD_0028c5a7::switchdataD_003a0b78 +\n                            (long)(int)(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10])" (( "(") (binary_expression "(long)&switchD_0028c5a7::switchdataD_003a0b78 +\n                            (long)(int)(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10]" (cast_expression "(long)&switchD_0028c5a7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&switchD_0028c5a7" (& "&") (identifier "switchD_0028c5a7"))) (ERROR "::switchdataD_003a0b78" (: ":") (: ":") (identifier "switchdataD_003a0b78")) (+ "+") (cast_expression "(long)(int)(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10]" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (cast_expression "(int)(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10]" (parenthesized_expression "(&switchD_0028c5a7::switchdataD_003a0b78)" (( "(") (ERROR "&switchD_0028c5a7::" (pointer_expression "&switchD_0028c5a7" (& "&") (identifier "switchD_0028c5a7")) (: ":") (: ":")) (identifier "switchdataD_003a0b78") () ")")) ([ "[") (identifier "uVar10") (] "]"))))) () ")")))) (; ";")) (switch_statement "switch(uVar10) {\n          case 0:\nswitchD_0028c5a7_caseD_0:\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xaa,"shndx");\n          case 1:\n            uVar11 = 1;\n            goto LAB_0028c1cb;\n          case 2:\n            uVar11 = 1;\n            goto LAB_0028c143;\n          case 3:\n            uVar11 = 1;\n            uVar10 = 0xfff1;\n            break;\n          case 4:\n                    \n            uVar11 = 1;\n            uVar10 = 0;\n          }" (switch "switch") (parenthesized_expression "(uVar10)" (( "(") (identifier "uVar10") () ")")) (compound_statement "{\n          case 0:\nswitchD_0028c5a7_caseD_0:\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xaa,"shndx");\n          case 1:\n            uVar11 = 1;\n            goto LAB_0028c1cb;\n          case 2:\n            uVar11 = 1;\n            goto LAB_0028c143;\n          case 3:\n            uVar11 = 1;\n            uVar10 = 0xfff1;\n            break;\n          case 4:\n                    \n            uVar11 = 1;\n            uVar10 = 0;\n          }" ({ "{") (case_statement "case 0:\nswitchD_0028c5a7_caseD_0:\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xaa,"shndx");" (case "case") (number_literal "0") (: ":") (labeled_statement "switchD_0028c5a7_caseD_0:\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xaa,"shndx");" (statement_identifier "switchD_0028c5a7_caseD_0") (: ":") (expression_statement "FUN_0018ff20("../../gold/symtab.h",0xaa,"shndx");" (call_expression "FUN_0018ff20("../../gold/symtab.h",0xaa,"shndx")" (identifier "FUN_0018ff20") (argument_list "("../../gold/symtab.h",0xaa,"shndx")" (( "(") (string_literal ""../../gold/symtab.h"" (" """) (string_content "../../gold/symtab.h") (" """)) (, ",") (number_literal "0xaa") (, ",") (string_literal ""shndx"" (" """) (string_content "shndx") (" """)) () ")"))) (; ";")))) (case_statement "case 1:\n            uVar11 = 1;\n            goto LAB_0028c1cb;" (case "case") (number_literal "1") (: ":") (expression_statement "uVar11 = 1;" (assignment_expression "uVar11 = 1" (identifier "uVar11") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_0028c1cb;" (goto "goto") (statement_identifier "LAB_0028c1cb") (; ";"))) (case_statement "case 2:\n            uVar11 = 1;\n            goto LAB_0028c143;" (case "case") (number_literal "2") (: ":") (expression_statement "uVar11 = 1;" (assignment_expression "uVar11 = 1" (identifier "uVar11") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_0028c143;" (goto "goto") (statement_identifier "LAB_0028c143") (; ";"))) (case_statement "case 3:\n            uVar11 = 1;\n            uVar10 = 0xfff1;\n            break;" (case "case") (number_literal "3") (: ":") (expression_statement "uVar11 = 1;" (assignment_expression "uVar11 = 1" (identifier "uVar11") (= "=") (number_literal "1")) (; ";")) (expression_statement "uVar10 = 0xfff1;" (assignment_expression "uVar10 = 0xfff1" (identifier "uVar10") (= "=") (number_literal "0xfff1")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 4:\n                    \n            uVar11 = 1;\n            uVar10 = 0;" (case "case") (number_literal "4") (: ":") (expression_statement "uVar11 = 1;" (assignment_expression "uVar11 = 1" (identifier "uVar11") (= "=") (number_literal "1")) (; ";")) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" (identifier "uVar10") (= "=") (number_literal "0")) (; ";"))) (} "}"))) (goto_statement "goto LAB_0028bf30;" (goto "goto") (statement_identifier "LAB_0028bf30") (; ";")) (} "}"))) (if_statement "if ((uVar11 == 10) && (*(char *)(lVar15 + 0x2999) == '\0')) {\n          uVar11 = 1;\n        }" (if "if") (parenthesized_expression "((uVar11 == 10) && (*(char *)(lVar15 + 0x2999) == '\0'))" (( "(") (binary_expression "(uVar11 == 10) && (*(char *)(lVar15 + 0x2999) == '\0')" (parenthesized_expression "(uVar11 == 10)" (( "(") (binary_expression "uVar11 == 10" (identifier "uVar11") (== "==") (number_literal "10")) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(lVar15 + 0x2999) == '\0')" (( "(") (binary_expression "*(char *)(lVar15 + 0x2999) == '\0'" (pointer_expression "*(char *)(lVar15 + 0x2999)" (* "*") (cast_expression "(char *)(lVar15 + 0x2999)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0x2999)" (( "(") (binary_expression "lVar15 + 0x2999" (identifier "lVar15") (+ "+") (number_literal "0x2999")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n          uVar11 = 1;\n        }" ({ "{") (expression_statement "uVar11 = 1;" (assignment_expression "uVar11 = 1" (identifier "uVar11") (= "=") (number_literal "1")) (; ";")) (} "}"))) (if_statement "if (4 < bVar7) {\nLAB_0028c8b0:\n                    \n          FUN_0018ff20("../../gold/symtab.cc",0xc9b,"sized_write_globals");\n        }" (if "if") (parenthesized_expression "(4 < bVar7)" (( "(") (binary_expression "4 < bVar7" (number_literal "4") (< "<") (identifier "bVar7")) () ")")) (compound_statement "{\nLAB_0028c8b0:\n                    \n          FUN_0018ff20("../../gold/symtab.cc",0xc9b,"sized_write_globals");\n        }" ({ "{") (labeled_statement "LAB_0028c8b0:\n                    \n          FUN_0018ff20("../../gold/symtab.cc",0xc9b,"sized_write_globals");" (statement_identifier "LAB_0028c8b0") (: ":") (expression_statement "FUN_0018ff20("../../gold/symtab.cc",0xc9b,"sized_write_globals");" (call_expression "FUN_0018ff20("../../gold/symtab.cc",0xc9b,"sized_write_globals")" (identifier "FUN_0018ff20") (argument_list "("../../gold/symtab.cc",0xc9b,"sized_write_globals")" (( "(") (string_literal ""../../gold/symtab.cc"" (" """) (string_content "../../gold/symtab.cc") (" """)) (, ",") (number_literal "0xc9b") (, ",") (string_literal ""sized_write_globals"" (" """) (string_content "sized_write_globals") (" """)) () ")"))) (; ";"))) (} "}"))) (expression_statement "pcVar13 = (code *)((long)&switchD_0028bebe::switchdataD_003a0b3c +\n                          (long)(int)(&switchD_0028bebe::switchdataD_003a0b3c)[uVar10]);" (assignment_expression "pcVar13 = (code *)((long)&switchD_0028bebe::switchdataD_003a0b3c +\n                          (long)(int)(&switchD_0028bebe::switchdataD_003a0b3c)[uVar10])" (identifier "pcVar13") (= "=") (cast_expression "(code *)((long)&switchD_0028bebe::switchdataD_003a0b3c +\n                          (long)(int)(&switchD_0028bebe::switchdataD_003a0b3c)[uVar10])" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&switchD_0028bebe::switchdataD_003a0b3c +\n                          (long)(int)(&switchD_0028bebe::switchdataD_003a0b3c)[uVar10])" (( "(") (binary_expression "(long)&switchD_0028bebe::switchdataD_003a0b3c +\n                          (long)(int)(&switchD_0028bebe::switchdataD_003a0b3c)[uVar10]" (cast_expression "(long)&switchD_0028bebe" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&switchD_0028bebe" (& "&") (identifier "switchD_0028bebe"))) (ERROR "::switchdataD_003a0b3c" (: ":") (: ":") (identifier "switchdataD_003a0b3c")) (+ "+") (cast_expression "(long)(int)(&switchD_0028bebe::switchdataD_003a0b3c)[uVar10]" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (cast_expression "(int)(&switchD_0028bebe::switchdataD_003a0b3c)[uVar10]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "(&switchD_0028bebe::switchdataD_003a0b3c)[uVar10]" (parenthesized_expression "(&switchD_0028bebe::switchdataD_003a0b3c)" (( "(") (ERROR "&switchD_0028bebe::" (pointer_expression "&switchD_0028bebe" (& "&") (identifier "switchD_0028bebe")) (: ":") (: ":")) (identifier "switchdataD_003a0b3c") () ")")) ([ "[") (identifier "uVar10") (] "]"))))) () ")")))) (; ";")) (switch_statement "switch(uVar10) {\n        case 0:\n          if ((bVar8 & 7) != 0) goto switchD_0028c5a7_caseD_0;\n          uVar10 = *(uint *)(puVar6 + 3);\n          bVar8 = *(byte *)((long)puVar6 + 0x3b) >> 5;\n          if (((bVar8 & 1) != 1) && (uVar10 != 0xfff1)) {\n            cVar9 = FUN_00284a00(uVar10);\n            if (cVar9 == '\0') {\n              FUN_00285b30(&local_58,*puVar6);\n              uVar25 = CONCAT44(uStack_54,local_58);\n              uVar16 = gettext("%s: unsupported symbol section 0x%x");\n                    \n              FUN_001878b0(uVar16,uVar25,uVar10);\n              pcVar13 = (code *)auStack_48;\n              if ((code *)CONCAT44(uStack_54,local_58) != pcVar13) {\n                pcVar13 = (code *)FUN_002f1e60();\n              }\n              break;\n            }\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) {\nLAB_0028c752:\n                    \n              FUN_0018ff20("../../gold/symtab.h",0xa1,"object");\n            }\n          }\n          plVar17 = (long *)puVar6[2];\n          if ((*(byte *)((long)plVar17 + 0x3c) & 1) == 0) {\n            pcVar13 = (code *)(**(code **)(*plVar17 + 0x28))(plVar17);\n            if ((pcVar13 != (code *)0x0) || (uVar10 == 0)) goto switchD_0028bebe_caseD_4;\n            if (((bVar8 & 1) != 0) ||\n               ((uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')\n                ))) {\n              uVar19 = (ulong)uVar10;\n              if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;\n                plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n              }\n              else {\n                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);\n              }\n              cVar9 = FUN_00284da0(param_1,plVar17,uVar19);\n              if (cVar9 == '\0') {\n                if (plVar18 == (long *)0x0) goto LAB_0028c9cd;\n              }\n              else {\n                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);\n                plVar17 = auVar26._0_8_;\n                if (plVar17 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }\n                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    \n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }\n                if (plVar18 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }\n              }\n              if (*(code **)(*plVar18 + 0x58) == FUN_0019a160) {\n                uVar10 = *(uint *)((long)plVar18 + 0x7c);\n                if (uVar10 == 0xffffffff) goto LAB_0028ca38;\n              }\n              else {\n                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);\n              }\n              if (0xfeff < uVar10) {\n                if (uVar12 != 0xffffffff) {\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }\n                if (uVar22 == 0xffffffff) {\n                  uVar10 = 0xffff;\n                }\n                else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }\n              }\n              pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n              if (pcVar13 == (code *)0x0) goto LAB_0028c8d7;\n              if (pcVar13[0x5051] != (code)0x0) {\n                if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;\n                pcVar13 = local_d0 + -plVar18[1];\n                local_d0 = pcVar13;\n              }\n            }\n          }\n          else {\n            if ((*(byte *)((long)puVar6 + 0x3b) & 2) != 0) {\n              pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6);\n            }\n            uVar10 = 0;\n            uVar11 = *(byte *)((long)puVar6 + 0x3c) >> 1 & 1;\n            pcVar13 = (code *)(ulong)uVar11;\n            uVar11 = 2 - ((char)uVar11 == '\0');\n          }\n          break;\n        case 1:\nLAB_0028c1cb:\n          if ((bVar8 & 7) != 1) {\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xb5,"output_data");\n          }\n          plVar17 = (long *)puVar6[2];\n          uVar10 = (**(code **)(*plVar17 + 0x58))(plVar17);\n          if (0xfeff < uVar10) {\n            if (uVar12 != 0xffffffff) {\n              local_58 = uVar12;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_4 + 0x38,&local_58);\n            }\n            if (uVar22 == 0xffffffff) {\n              uVar10 = 0xffff;\n            }\n            else {\n              local_58 = uVar22;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_5 + 0x38,&local_58);\n              uVar10 = 0xffff;\n            }\n          }\n          pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n          if (pcVar13 == (code *)0x0) {\nLAB_0028c8d7:\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if (pcVar13[0x5051] != (code)0x0) {\n            lVar15 = (**(code **)(*plVar17 + 0x48))(plVar17);\n            if (lVar15 == 0) {\n                    \n              FUN_0018ff20("../../gold/symtab.cc",0xc81,"sized_write_globals");\n            }\n            if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    \n              FUN_0018ff20("../../gold/output.h",0xc5,"address");\n            }\n            pcVar13 = *(code **)(lVar15 + 8);\n            local_d0 = local_d0 + -(long)pcVar13;\n          }\n          break;\n        case 2:\n          uVar10 = bVar8 & 7;\nLAB_0028c143:\n          if ((char)uVar10 != '\x02') {\n                    \n            FUN_0018ff20("../../gold/symtab.h",200,"output_segment");\n          }\n          pcVar13 = (code *)FUN_0020de20(puVar6[2]);\n          if (pcVar13 == (code *)0x0) goto switchD_0028bebe_caseD_3;\n          if (*(code **)(*(long *)pcVar13 + 0x58) == FUN_0019a160) {\n            uVar10 = *(uint *)(pcVar13 + 0x7c);\n            pcVar13 = (code *)(ulong)uVar10;\n            if (uVar10 == 0xffffffff) {\nLAB_0028ca38:\n                    \n              FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx");\n            }\n          }\n          else {\n            pcVar13 = (code *)(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13);\n            uVar10 = (uint)pcVar13;\n          }\n          break;\n        case 3:\nswitchD_0028bebe_caseD_3:\n          uVar10 = 0xfff1;\n          break;\n        case 4:\nswitchD_0028bebe_caseD_4:\n          uVar10 = 0;\n        }" (switch "switch") (parenthesized_expression "(uVar10)" (( "(") (identifier "uVar10") () ")")) (compound_statement "{\n        case 0:\n          if ((bVar8 & 7) != 0) goto switchD_0028c5a7_caseD_0;\n          uVar10 = *(uint *)(puVar6 + 3);\n          bVar8 = *(byte *)((long)puVar6 + 0x3b) >> 5;\n          if (((bVar8 & 1) != 1) && (uVar10 != 0xfff1)) {\n            cVar9 = FUN_00284a00(uVar10);\n            if (cVar9 == '\0') {\n              FUN_00285b30(&local_58,*puVar6);\n              uVar25 = CONCAT44(uStack_54,local_58);\n              uVar16 = gettext("%s: unsupported symbol section 0x%x");\n                    \n              FUN_001878b0(uVar16,uVar25,uVar10);\n              pcVar13 = (code *)auStack_48;\n              if ((code *)CONCAT44(uStack_54,local_58) != pcVar13) {\n                pcVar13 = (code *)FUN_002f1e60();\n              }\n              break;\n            }\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) {\nLAB_0028c752:\n                    \n              FUN_0018ff20("../../gold/symtab.h",0xa1,"object");\n            }\n          }\n          plVar17 = (long *)puVar6[2];\n          if ((*(byte *)((long)plVar17 + 0x3c) & 1) == 0) {\n            pcVar13 = (code *)(**(code **)(*plVar17 + 0x28))(plVar17);\n            if ((pcVar13 != (code *)0x0) || (uVar10 == 0)) goto switchD_0028bebe_caseD_4;\n            if (((bVar8 & 1) != 0) ||\n               ((uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')\n                ))) {\n              uVar19 = (ulong)uVar10;\n              if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;\n                plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n              }\n              else {\n                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);\n              }\n              cVar9 = FUN_00284da0(param_1,plVar17,uVar19);\n              if (cVar9 == '\0') {\n                if (plVar18 == (long *)0x0) goto LAB_0028c9cd;\n              }\n              else {\n                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);\n                plVar17 = auVar26._0_8_;\n                if (plVar17 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }\n                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    \n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }\n                if (plVar18 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }\n              }\n              if (*(code **)(*plVar18 + 0x58) == FUN_0019a160) {\n                uVar10 = *(uint *)((long)plVar18 + 0x7c);\n                if (uVar10 == 0xffffffff) goto LAB_0028ca38;\n              }\n              else {\n                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);\n              }\n              if (0xfeff < uVar10) {\n                if (uVar12 != 0xffffffff) {\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }\n                if (uVar22 == 0xffffffff) {\n                  uVar10 = 0xffff;\n                }\n                else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }\n              }\n              pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n              if (pcVar13 == (code *)0x0) goto LAB_0028c8d7;\n              if (pcVar13[0x5051] != (code)0x0) {\n                if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;\n                pcVar13 = local_d0 + -plVar18[1];\n                local_d0 = pcVar13;\n              }\n            }\n          }\n          else {\n            if ((*(byte *)((long)puVar6 + 0x3b) & 2) != 0) {\n              pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6);\n            }\n            uVar10 = 0;\n            uVar11 = *(byte *)((long)puVar6 + 0x3c) >> 1 & 1;\n            pcVar13 = (code *)(ulong)uVar11;\n            uVar11 = 2 - ((char)uVar11 == '\0');\n          }\n          break;\n        case 1:\nLAB_0028c1cb:\n          if ((bVar8 & 7) != 1) {\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xb5,"output_data");\n          }\n          plVar17 = (long *)puVar6[2];\n          uVar10 = (**(code **)(*plVar17 + 0x58))(plVar17);\n          if (0xfeff < uVar10) {\n            if (uVar12 != 0xffffffff) {\n              local_58 = uVar12;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_4 + 0x38,&local_58);\n            }\n            if (uVar22 == 0xffffffff) {\n              uVar10 = 0xffff;\n            }\n            else {\n              local_58 = uVar22;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_5 + 0x38,&local_58);\n              uVar10 = 0xffff;\n            }\n          }\n          pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n          if (pcVar13 == (code *)0x0) {\nLAB_0028c8d7:\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if (pcVar13[0x5051] != (code)0x0) {\n            lVar15 = (**(code **)(*plVar17 + 0x48))(plVar17);\n            if (lVar15 == 0) {\n                    \n              FUN_0018ff20("../../gold/symtab.cc",0xc81,"sized_write_globals");\n            }\n            if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    \n              FUN_0018ff20("../../gold/output.h",0xc5,"address");\n            }\n            pcVar13 = *(code **)(lVar15 + 8);\n            local_d0 = local_d0 + -(long)pcVar13;\n          }\n          break;\n        case 2:\n          uVar10 = bVar8 & 7;\nLAB_0028c143:\n          if ((char)uVar10 != '\x02') {\n                    \n            FUN_0018ff20("../../gold/symtab.h",200,"output_segment");\n          }\n          pcVar13 = (code *)FUN_0020de20(puVar6[2]);\n          if (pcVar13 == (code *)0x0) goto switchD_0028bebe_caseD_3;\n          if (*(code **)(*(long *)pcVar13 + 0x58) == FUN_0019a160) {\n            uVar10 = *(uint *)(pcVar13 + 0x7c);\n            pcVar13 = (code *)(ulong)uVar10;\n            if (uVar10 == 0xffffffff) {\nLAB_0028ca38:\n                    \n              FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx");\n            }\n          }\n          else {\n            pcVar13 = (code *)(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13);\n            uVar10 = (uint)pcVar13;\n          }\n          break;\n        case 3:\nswitchD_0028bebe_caseD_3:\n          uVar10 = 0xfff1;\n          break;\n        case 4:\nswitchD_0028bebe_caseD_4:\n          uVar10 = 0;\n        }" ({ "{") (case_statement "case 0:\n          if ((bVar8 & 7) != 0) goto switchD_0028c5a7_caseD_0;\n          uVar10 = *(uint *)(puVar6 + 3);\n          bVar8 = *(byte *)((long)puVar6 + 0x3b) >> 5;\n          if (((bVar8 & 1) != 1) && (uVar10 != 0xfff1)) {\n            cVar9 = FUN_00284a00(uVar10);\n            if (cVar9 == '\0') {\n              FUN_00285b30(&local_58,*puVar6);\n              uVar25 = CONCAT44(uStack_54,local_58);\n              uVar16 = gettext("%s: unsupported symbol section 0x%x");\n                    \n              FUN_001878b0(uVar16,uVar25,uVar10);\n              pcVar13 = (code *)auStack_48;\n              if ((code *)CONCAT44(uStack_54,local_58) != pcVar13) {\n                pcVar13 = (code *)FUN_002f1e60();\n              }\n              break;\n            }\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) {\nLAB_0028c752:\n                    \n              FUN_0018ff20("../../gold/symtab.h",0xa1,"object");\n            }\n          }\n          plVar17 = (long *)puVar6[2];\n          if ((*(byte *)((long)plVar17 + 0x3c) & 1) == 0) {\n            pcVar13 = (code *)(**(code **)(*plVar17 + 0x28))(plVar17);\n            if ((pcVar13 != (code *)0x0) || (uVar10 == 0)) goto switchD_0028bebe_caseD_4;\n            if (((bVar8 & 1) != 0) ||\n               ((uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')\n                ))) {\n              uVar19 = (ulong)uVar10;\n              if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;\n                plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n              }\n              else {\n                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);\n              }\n              cVar9 = FUN_00284da0(param_1,plVar17,uVar19);\n              if (cVar9 == '\0') {\n                if (plVar18 == (long *)0x0) goto LAB_0028c9cd;\n              }\n              else {\n                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);\n                plVar17 = auVar26._0_8_;\n                if (plVar17 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }\n                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    \n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }\n                if (plVar18 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }\n              }\n              if (*(code **)(*plVar18 + 0x58) == FUN_0019a160) {\n                uVar10 = *(uint *)((long)plVar18 + 0x7c);\n                if (uVar10 == 0xffffffff) goto LAB_0028ca38;\n              }\n              else {\n                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);\n              }\n              if (0xfeff < uVar10) {\n                if (uVar12 != 0xffffffff) {\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }\n                if (uVar22 == 0xffffffff) {\n                  uVar10 = 0xffff;\n                }\n                else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }\n              }\n              pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n              if (pcVar13 == (code *)0x0) goto LAB_0028c8d7;\n              if (pcVar13[0x5051] != (code)0x0) {\n                if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;\n                pcVar13 = local_d0 + -plVar18[1];\n                local_d0 = pcVar13;\n              }\n            }\n          }\n          else {\n            if ((*(byte *)((long)puVar6 + 0x3b) & 2) != 0) {\n              pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6);\n            }\n            uVar10 = 0;\n            uVar11 = *(byte *)((long)puVar6 + 0x3c) >> 1 & 1;\n            pcVar13 = (code *)(ulong)uVar11;\n            uVar11 = 2 - ((char)uVar11 == '\0');\n          }\n          break;" (case "case") (number_literal "0") (: ":") (if_statement "if ((bVar8 & 7) != 0) goto switchD_0028c5a7_caseD_0;" (if "if") (parenthesized_expression "((bVar8 & 7) != 0)" (( "(") (binary_expression "(bVar8 & 7) != 0" (parenthesized_expression "(bVar8 & 7)" (( "(") (binary_expression "bVar8 & 7" (identifier "bVar8") (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto switchD_0028c5a7_caseD_0;" (goto "goto") (statement_identifier "switchD_0028c5a7_caseD_0") (; ";"))) (expression_statement "uVar10 = *(uint *)(puVar6 + 3);" (assignment_expression "uVar10 = *(uint *)(puVar6 + 3)" (identifier "uVar10") (= "=") (pointer_expression "*(uint *)(puVar6 + 3)" (* "*") (cast_expression "(uint *)(puVar6 + 3)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 3)" (( "(") (binary_expression "puVar6 + 3" (identifier "puVar6") (+ "+") (number_literal "3")) () ")"))))) (; ";")) (expression_statement "bVar8 = *(byte *)((long)puVar6 + 0x3b) >> 5;" (assignment_expression "bVar8 = *(byte *)((long)puVar6 + 0x3b) >> 5" (identifier "bVar8") (= "=") (binary_expression "*(byte *)((long)puVar6 + 0x3b) >> 5" (pointer_expression "*(byte *)((long)puVar6 + 0x3b)" (* "*") (cast_expression "(byte *)((long)puVar6 + 0x3b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar6 + 0x3b)" (( "(") (binary_expression "(long)puVar6 + 0x3b" (cast_expression "(long)puVar6" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar6")) (+ "+") (number_literal "0x3b")) () ")")))) (>> ">>") (number_literal "5"))) (; ";")) (if_statement "if (((bVar8 & 1) != 1) && (uVar10 != 0xfff1)) {\n            cVar9 = FUN_00284a00(uVar10);\n            if (cVar9 == '\0') {\n              FUN_00285b30(&local_58,*puVar6);\n              uVar25 = CONCAT44(uStack_54,local_58);\n              uVar16 = gettext("%s: unsupported symbol section 0x%x");\n                    \n              FUN_001878b0(uVar16,uVar25,uVar10);\n              pcVar13 = (code *)auStack_48;\n              if ((code *)CONCAT44(uStack_54,local_58) != pcVar13) {\n                pcVar13 = (code *)FUN_002f1e60();\n              }\n              break;\n            }\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) {\nLAB_0028c752:\n                    \n              FUN_0018ff20("../../gold/symtab.h",0xa1,"object");\n            }\n          }" (if "if") (parenthesized_expression "(((bVar8 & 1) != 1) && (uVar10 != 0xfff1))" (( "(") (binary_expression "((bVar8 & 1) != 1) && (uVar10 != 0xfff1)" (parenthesized_expression "((bVar8 & 1) != 1)" (( "(") (binary_expression "(bVar8 & 1) != 1" (parenthesized_expression "(bVar8 & 1)" (( "(") (binary_expression "bVar8 & 1" (identifier "bVar8") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "1")) () ")")) (&& "&&") (parenthesized_expression "(uVar10 != 0xfff1)" (( "(") (binary_expression "uVar10 != 0xfff1" (identifier "uVar10") (!= "!=") (number_literal "0xfff1")) () ")"))) () ")")) (compound_statement "{\n            cVar9 = FUN_00284a00(uVar10);\n            if (cVar9 == '\0') {\n              FUN_00285b30(&local_58,*puVar6);\n              uVar25 = CONCAT44(uStack_54,local_58);\n              uVar16 = gettext("%s: unsupported symbol section 0x%x");\n                    \n              FUN_001878b0(uVar16,uVar25,uVar10);\n              pcVar13 = (code *)auStack_48;\n              if ((code *)CONCAT44(uStack_54,local_58) != pcVar13) {\n                pcVar13 = (code *)FUN_002f1e60();\n              }\n              break;\n            }\n            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) {\nLAB_0028c752:\n                    \n              FUN_0018ff20("../../gold/symtab.h",0xa1,"object");\n            }\n          }" ({ "{") (expression_statement "cVar9 = FUN_00284a00(uVar10);" (assignment_expression "cVar9 = FUN_00284a00(uVar10)" (identifier "cVar9") (= "=") (call_expression "FUN_00284a00(uVar10)" (identifier "FUN_00284a00") (argument_list "(uVar10)" (( "(") (identifier "uVar10") () ")")))) (; ";")) (if_statement "if (cVar9 == '\0') {\n              FUN_00285b30(&local_58,*puVar6);\n              uVar25 = CONCAT44(uStack_54,local_58);\n              uVar16 = gettext("%s: unsupported symbol section 0x%x");\n                    \n              FUN_001878b0(uVar16,uVar25,uVar10);\n              pcVar13 = (code *)auStack_48;\n              if ((code *)CONCAT44(uStack_54,local_58) != pcVar13) {\n                pcVar13 = (code *)FUN_002f1e60();\n              }\n              break;\n            }" (if "if") (parenthesized_expression "(cVar9 == '\0')" (( "(") (binary_expression "cVar9 == '\0'" (identifier "cVar9") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n              FUN_00285b30(&local_58,*puVar6);\n              uVar25 = CONCAT44(uStack_54,local_58);\n              uVar16 = gettext("%s: unsupported symbol section 0x%x");\n                    \n              FUN_001878b0(uVar16,uVar25,uVar10);\n              pcVar13 = (code *)auStack_48;\n              if ((code *)CONCAT44(uStack_54,local_58) != pcVar13) {\n                pcVar13 = (code *)FUN_002f1e60();\n              }\n              break;\n            }" ({ "{") (expression_statement "FUN_00285b30(&local_58,*puVar6);" (call_expression "FUN_00285b30(&local_58,*puVar6)" (identifier "FUN_00285b30") (argument_list "(&local_58,*puVar6)" (( "(") (pointer_expression "&local_58" (& "&") (identifier "local_58")) (, ",") (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) () ")"))) (; ";")) (expression_statement "uVar25 = CONCAT44(uStack_54,local_58);" (assignment_expression "uVar25 = CONCAT44(uStack_54,local_58)" (identifier "uVar25") (= "=") (call_expression "CONCAT44(uStack_54,local_58)" (identifier "CONCAT44") (argument_list "(uStack_54,local_58)" (( "(") (identifier "uStack_54") (, ",") (identifier "local_58") () ")")))) (; ";")) (expression_statement "uVar16 = gettext("%s: unsupported symbol section 0x%x");" (assignment_expression "uVar16 = gettext("%s: unsupported symbol section 0x%x")" (identifier "uVar16") (= "=") (call_expression "gettext("%s: unsupported symbol section 0x%x")" (identifier "gettext") (argument_list "("%s: unsupported symbol section 0x%x")" (( "(") (string_literal ""%s: unsupported symbol section 0x%x"" (" """) (string_content "%s: unsupported symbol section 0x%x") (" """)) () ")")))) (; ";")) (expression_statement "FUN_001878b0(uVar16,uVar25,uVar10);" (call_expression "FUN_001878b0(uVar16,uVar25,uVar10)" (identifier "FUN_001878b0") (argument_list "(uVar16,uVar25,uVar10)" (( "(") (identifier "uVar16") (, ",") (identifier "uVar25") (, ",") (identifier "uVar10") () ")"))) (; ";")) (expression_statement "pcVar13 = (code *)auStack_48;" (assignment_expression "pcVar13 = (code *)auStack_48" (identifier "pcVar13") (= "=") (cast_expression "(code *)auStack_48" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "auStack_48"))) (; ";")) (if_statement "if ((code *)CONCAT44(uStack_54,local_58) != pcVar13) {\n                pcVar13 = (code *)FUN_002f1e60();\n              }" (if "if") (parenthesized_expression "((code *)CONCAT44(uStack_54,local_58) != pcVar13)" (( "(") (binary_expression "(code *)CONCAT44(uStack_54,local_58) != pcVar13" (cast_expression "(code *)CONCAT44(uStack_54,local_58)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "CONCAT44(uStack_54,local_58)" (identifier "CONCAT44") (argument_list "(uStack_54,local_58)" (( "(") (identifier "uStack_54") (, ",") (identifier "local_58") () ")")))) (!= "!=") (identifier "pcVar13")) () ")")) (compound_statement "{\n                pcVar13 = (code *)FUN_002f1e60();\n              }" ({ "{") (expression_statement "pcVar13 = (code *)FUN_002f1e60();" (assignment_expression "pcVar13 = (code *)FUN_002f1e60()" (identifier "pcVar13") (= "=") (cast_expression "(code *)FUN_002f1e60()" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_002f1e60()" (identifier "FUN_002f1e60") (argument_list "()" (( "(") () ")"))))) (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (if_statement "if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) {\nLAB_0028c752:\n                    \n              FUN_0018ff20("../../gold/symtab.h",0xa1,"object");\n            }" (if "if") (parenthesized_expression "((*(byte *)((long)puVar6 + 0x3a) & 7) != 0)" (( "(") (binary_expression "(*(byte *)((long)puVar6 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)((long)puVar6 + 0x3a) & 7)" (( "(") (binary_expression "*(byte *)((long)puVar6 + 0x3a) & 7" (pointer_expression "*(byte *)((long)puVar6 + 0x3a)" (* "*") (cast_expression "(byte *)((long)puVar6 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar6 + 0x3a)" (( "(") (binary_expression "(long)puVar6 + 0x3a" (cast_expression "(long)puVar6" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar6")) (+ "+") (number_literal "0x3a")) () ")")))) (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0028c752:\n                    \n              FUN_0018ff20("../../gold/symtab.h",0xa1,"object");\n            }" ({ "{") (labeled_statement "LAB_0028c752:\n                    \n              FUN_0018ff20("../../gold/symtab.h",0xa1,"object");" (statement_identifier "LAB_0028c752") (: ":") (expression_statement "FUN_0018ff20("../../gold/symtab.h",0xa1,"object");" (call_expression "FUN_0018ff20("../../gold/symtab.h",0xa1,"object")" (identifier "FUN_0018ff20") (argument_list "("../../gold/symtab.h",0xa1,"object")" (( "(") (string_literal ""../../gold/symtab.h"" (" """) (string_content "../../gold/symtab.h") (" """)) (, ",") (number_literal "0xa1") (, ",") (string_literal ""object"" (" """) (string_content "object") (" """)) () ")"))) (; ";"))) (} "}"))) (} "}"))) (expression_statement "plVar17 = (long *)puVar6[2];" (assignment_expression "plVar17 = (long *)puVar6[2]" (identifier "plVar17") (= "=") (cast_expression "(long *)puVar6[2]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar6[2]" (identifier "puVar6") ([ "[") (number_literal "2") (] "]")))) (; ";")) (if_statement "if ((*(byte *)((long)plVar17 + 0x3c) & 1) == 0) {\n            pcVar13 = (code *)(**(code **)(*plVar17 + 0x28))(plVar17);\n            if ((pcVar13 != (code *)0x0) || (uVar10 == 0)) goto switchD_0028bebe_caseD_4;\n            if (((bVar8 & 1) != 0) ||\n               ((uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')\n                ))) {\n              uVar19 = (ulong)uVar10;\n              if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;\n                plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n              }\n              else {\n                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);\n              }\n              cVar9 = FUN_00284da0(param_1,plVar17,uVar19);\n              if (cVar9 == '\0') {\n                if (plVar18 == (long *)0x0) goto LAB_0028c9cd;\n              }\n              else {\n                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);\n                plVar17 = auVar26._0_8_;\n                if (plVar17 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }\n                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    \n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }\n                if (plVar18 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }\n              }\n              if (*(code **)(*plVar18 + 0x58) == FUN_0019a160) {\n                uVar10 = *(uint *)((long)plVar18 + 0x7c);\n                if (uVar10 == 0xffffffff) goto LAB_0028ca38;\n              }\n              else {\n                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);\n              }\n              if (0xfeff < uVar10) {\n                if (uVar12 != 0xffffffff) {\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }\n                if (uVar22 == 0xffffffff) {\n                  uVar10 = 0xffff;\n                }\n                else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }\n              }\n              pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n              if (pcVar13 == (code *)0x0) goto LAB_0028c8d7;\n              if (pcVar13[0x5051] != (code)0x0) {\n                if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;\n                pcVar13 = local_d0 + -plVar18[1];\n                local_d0 = pcVar13;\n              }\n            }\n          }\n          else {\n            if ((*(byte *)((long)puVar6 + 0x3b) & 2) != 0) {\n              pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6);\n            }\n            uVar10 = 0;\n            uVar11 = *(byte *)((long)puVar6 + 0x3c) >> 1 & 1;\n            pcVar13 = (code *)(ulong)uVar11;\n            uVar11 = 2 - ((char)uVar11 == '\0');\n          }" (if "if") (parenthesized_expression "((*(byte *)((long)plVar17 + 0x3c) & 1) == 0)" (( "(") (binary_expression "(*(byte *)((long)plVar17 + 0x3c) & 1) == 0" (parenthesized_expression "(*(byte *)((long)plVar17 + 0x3c) & 1)" (( "(") (binary_expression "*(byte *)((long)plVar17 + 0x3c) & 1" (pointer_expression "*(byte *)((long)plVar17 + 0x3c)" (* "*") (cast_expression "(byte *)((long)plVar17 + 0x3c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar17 + 0x3c)" (( "(") (binary_expression "(long)plVar17 + 0x3c" (cast_expression "(long)plVar17" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar17")) (+ "+") (number_literal "0x3c")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            pcVar13 = (code *)(**(code **)(*plVar17 + 0x28))(plVar17);\n            if ((pcVar13 != (code *)0x0) || (uVar10 == 0)) goto switchD_0028bebe_caseD_4;\n            if (((bVar8 & 1) != 0) ||\n               ((uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')\n                ))) {\n              uVar19 = (ulong)uVar10;\n              if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;\n                plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n              }\n              else {\n                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);\n              }\n              cVar9 = FUN_00284da0(param_1,plVar17,uVar19);\n              if (cVar9 == '\0') {\n                if (plVar18 == (long *)0x0) goto LAB_0028c9cd;\n              }\n              else {\n                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);\n                plVar17 = auVar26._0_8_;\n                if (plVar17 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }\n                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    \n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }\n                if (plVar18 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }\n              }\n              if (*(code **)(*plVar18 + 0x58) == FUN_0019a160) {\n                uVar10 = *(uint *)((long)plVar18 + 0x7c);\n                if (uVar10 == 0xffffffff) goto LAB_0028ca38;\n              }\n              else {\n                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);\n              }\n              if (0xfeff < uVar10) {\n                if (uVar12 != 0xffffffff) {\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }\n                if (uVar22 == 0xffffffff) {\n                  uVar10 = 0xffff;\n                }\n                else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }\n              }\n              pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n              if (pcVar13 == (code *)0x0) goto LAB_0028c8d7;\n              if (pcVar13[0x5051] != (code)0x0) {\n                if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;\n                pcVar13 = local_d0 + -plVar18[1];\n                local_d0 = pcVar13;\n              }\n            }\n          }" ({ "{") (expression_statement "pcVar13 = (code *)(**(code **)(*plVar17 + 0x28))(plVar17);" (assignment_expression "pcVar13 = (code *)(**(code **)(*plVar17 + 0x28))(plVar17)" (identifier "pcVar13") (= "=") (cast_expression "(code *)(**(code **)(*plVar17 + 0x28))(plVar17)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(*plVar17 + 0x28))(plVar17)" (parenthesized_expression "(**(code **)(*plVar17 + 0x28))" (( "(") (pointer_expression "**(code **)(*plVar17 + 0x28)" (* "*") (pointer_expression "*(code **)(*plVar17 + 0x28)" (* "*") (cast_expression "(code **)(*plVar17 + 0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar17 + 0x28)" (( "(") (binary_expression "*plVar17 + 0x28" (pointer_expression "*plVar17" (* "*") (identifier "plVar17")) (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (argument_list "(plVar17)" (( "(") (identifier "plVar17") () ")"))))) (; ";")) (if_statement "if ((pcVar13 != (code *)0x0) || (uVar10 == 0)) goto switchD_0028bebe_caseD_4;" (if "if") (parenthesized_expression "((pcVar13 != (code *)0x0) || (uVar10 == 0))" (( "(") (binary_expression "(pcVar13 != (code *)0x0) || (uVar10 == 0)" (parenthesized_expression "(pcVar13 != (code *)0x0)" (( "(") (binary_expression "pcVar13 != (code *)0x0" (identifier "pcVar13") (!= "!=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(uVar10 == 0)" (( "(") (binary_expression "uVar10 == 0" (identifier "uVar10") (== "==") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto switchD_0028bebe_caseD_4;" (goto "goto") (statement_identifier "switchD_0028bebe_caseD_4") (; ";"))) (if_statement "if (((bVar8 & 1) != 0) ||\n               ((uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')\n                ))) {\n              uVar19 = (ulong)uVar10;\n              if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;\n                plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n              }\n              else {\n                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);\n              }\n              cVar9 = FUN_00284da0(param_1,plVar17,uVar19);\n              if (cVar9 == '\0') {\n                if (plVar18 == (long *)0x0) goto LAB_0028c9cd;\n              }\n              else {\n                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);\n                plVar17 = auVar26._0_8_;\n                if (plVar17 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }\n                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    \n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }\n                if (plVar18 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }\n              }\n              if (*(code **)(*plVar18 + 0x58) == FUN_0019a160) {\n                uVar10 = *(uint *)((long)plVar18 + 0x7c);\n                if (uVar10 == 0xffffffff) goto LAB_0028ca38;\n              }\n              else {\n                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);\n              }\n              if (0xfeff < uVar10) {\n                if (uVar12 != 0xffffffff) {\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }\n                if (uVar22 == 0xffffffff) {\n                  uVar10 = 0xffff;\n                }\n                else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }\n              }\n              pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n              if (pcVar13 == (code *)0x0) goto LAB_0028c8d7;\n              if (pcVar13[0x5051] != (code)0x0) {\n                if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;\n                pcVar13 = local_d0 + -plVar18[1];\n                local_d0 = pcVar13;\n              }\n            }" (if "if") (parenthesized_expression "(((bVar8 & 1) != 0) ||\n               ((uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')\n                )))" (( "(") (binary_expression "((bVar8 & 1) != 0) ||\n               ((uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')\n                ))" (parenthesized_expression "((bVar8 & 1) != 0)" (( "(") (binary_expression "(bVar8 & 1) != 0" (parenthesized_expression "(bVar8 & 1)" (( "(") (binary_expression "bVar8 & 1" (identifier "bVar8") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')\n                ))" (( "(") (parenthesized_expression "(uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')\n                )" (( "(") (binary_expression "uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')" (binary_expression "uVar10 != 0xfff1" (identifier "uVar10") (!= "!=") (number_literal "0xfff1")) (&& "&&") (parenthesized_expression "(pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')" (( "(") (comma_expression "pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0'" (assignment_expression "pcVar13 = (code *)FUN_00284a00(uVar10)" (identifier "pcVar13") (= "=") (cast_expression "(code *)FUN_00284a00(uVar10)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00284a00(uVar10)" (identifier "FUN_00284a00") (argument_list "(uVar10)" (( "(") (identifier "uVar10") () ")"))))) (, ",") (binary_expression "(char)pcVar13 == '\0'" (cast_expression "(char)pcVar13" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "pcVar13")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n              uVar19 = (ulong)uVar10;\n              if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;\n                plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n              }\n              else {\n                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);\n              }\n              cVar9 = FUN_00284da0(param_1,plVar17,uVar19);\n              if (cVar9 == '\0') {\n                if (plVar18 == (long *)0x0) goto LAB_0028c9cd;\n              }\n              else {\n                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);\n                plVar17 = auVar26._0_8_;\n                if (plVar17 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }\n                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    \n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }\n                if (plVar18 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }\n              }\n              if (*(code **)(*plVar18 + 0x58) == FUN_0019a160) {\n                uVar10 = *(uint *)((long)plVar18 + 0x7c);\n                if (uVar10 == 0xffffffff) goto LAB_0028ca38;\n              }\n              else {\n                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);\n              }\n              if (0xfeff < uVar10) {\n                if (uVar12 != 0xffffffff) {\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }\n                if (uVar22 == 0xffffffff) {\n                  uVar10 = 0xffff;\n                }\n                else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }\n              }\n              pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n              if (pcVar13 == (code *)0x0) goto LAB_0028c8d7;\n              if (pcVar13[0x5051] != (code)0x0) {\n                if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;\n                pcVar13 = local_d0 + -plVar18[1];\n                local_d0 = pcVar13;\n              }\n            }" ({ "{") (expression_statement "uVar19 = (ulong)uVar10;" (assignment_expression "uVar19 = (ulong)uVar10" (identifier "uVar19") (= "=") (cast_expression "(ulong)uVar10" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar10"))) (; ";")) (if_statement "if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;\n                plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n              }\n              else {\n                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);\n              }" (if "if") (parenthesized_expression "(*(code **)(*plVar17 + 0xc0) == FUN_00173380)" (( "(") (binary_expression "*(code **)(*plVar17 + 0xc0) == FUN_00173380" (pointer_expression "*(code **)(*plVar17 + 0xc0)" (* "*") (cast_expression "(code **)(*plVar17 + 0xc0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar17 + 0xc0)" (( "(") (binary_expression "*plVar17 + 0xc0" (pointer_expression "*plVar17" (* "*") (identifier "plVar17")) (+ "+") (number_literal "0xc0")) () ")")))) (== "==") (identifier "FUN_00173380")) () ")")) (compound_statement "{\n                if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;\n                plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n              }" ({ "{") (if_statement "if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;" (if "if") (parenthesized_expression "((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19)" (( "(") (binary_expression "(ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19" (call_expression "(ulong)(plVar17[0xb] - plVar17[10] >> 3)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(plVar17[0xb] - plVar17[10] >> 3)" (( "(") (binary_expression "plVar17[0xb] - plVar17[10] >> 3" (binary_expression "plVar17[0xb] - plVar17[10]" (subscript_expression "plVar17[0xb]" (identifier "plVar17") ([ "[") (number_literal "0xb") (] "]")) (- "-") (subscript_expression "plVar17[10]" (identifier "plVar17") ([ "[") (number_literal "10") (] "]"))) (>> ">>") (number_literal "3")) () ")"))) (<= "<=") (identifier "uVar19")) () ")")) (goto_statement "goto LAB_0028ca08;" (goto "goto") (statement_identifier "LAB_0028ca08") (; ";"))) (expression_statement "plVar18 = *(long **)(plVar17[10] + uVar19 * 8);" (assignment_expression "plVar18 = *(long **)(plVar17[10] + uVar19 * 8)" (identifier "plVar18") (= "=") (pointer_expression "*(long **)(plVar17[10] + uVar19 * 8)" (* "*") (cast_expression "(long **)(plVar17[10] + uVar19 * 8)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(plVar17[10] + uVar19 * 8)" (( "(") (binary_expression "plVar17[10] + uVar19 * 8" (subscript_expression "plVar17[10]" (identifier "plVar17") ([ "[") (number_literal "10") (] "]")) (+ "+") (binary_expression "uVar19 * 8" (identifier "uVar19") (* "*") (number_literal "8"))) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);\n              }" (else "else") (compound_statement "{\n                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);\n              }" ({ "{") (expression_statement "plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);" (assignment_expression "plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19)" (identifier "plVar18") (= "=") (cast_expression "(long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19)" (parenthesized_expression "(**(code **)(*plVar17 + 0xc0))" (( "(") (pointer_expression "**(code **)(*plVar17 + 0xc0)" (* "*") (pointer_expression "*(code **)(*plVar17 + 0xc0)" (* "*") (cast_expression "(code **)(*plVar17 + 0xc0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar17 + 0xc0)" (( "(") (binary_expression "*plVar17 + 0xc0" (pointer_expression "*plVar17" (* "*") (identifier "plVar17")) (+ "+") (number_literal "0xc0")) () ")"))))) () ")")) (argument_list "(plVar17,uVar19)" (( "(") (identifier "plVar17") (, ",") (identifier "uVar19") () ")"))))) (; ";")) (} "}")))) (expression_statement "cVar9 = FUN_00284da0(param_1,plVar17,uVar19);" (assignment_expression "cVar9 = FUN_00284da0(param_1,plVar17,uVar19)" (identifier "cVar9") (= "=") (call_expression "FUN_00284da0(param_1,plVar17,uVar19)" (identifier "FUN_00284da0") (argument_list "(param_1,plVar17,uVar19)" (( "(") (identifier "param_1") (, ",") (identifier "plVar17") (, ",") (identifier "uVar19") () ")")))) (; ";")) (if_statement "if (cVar9 == '\0') {\n                if (plVar18 == (long *)0x0) goto LAB_0028c9cd;\n              }\n              else {\n                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);\n                plVar17 = auVar26._0_8_;\n                if (plVar17 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }\n                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    \n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }\n                if (plVar18 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }\n              }" (if "if") (parenthesized_expression "(cVar9 == '\0')" (( "(") (binary_expression "cVar9 == '\0'" (identifier "cVar9") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                if (plVar18 == (long *)0x0) goto LAB_0028c9cd;\n              }" ({ "{") (if_statement "if (plVar18 == (long *)0x0) goto LAB_0028c9cd;" (if "if") (parenthesized_expression "(plVar18 == (long *)0x0)" (( "(") (binary_expression "plVar18 == (long *)0x0" (identifier "plVar18") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0028c9cd;" (goto "goto") (statement_identifier "LAB_0028c9cd") (; ";"))) (} "}")) (else_clause "else {\n                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);\n                plVar17 = auVar26._0_8_;\n                if (plVar17 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }\n                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    \n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }\n                if (plVar18 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }\n              }" (else "else") (compound_statement "{\n                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);\n                plVar17 = auVar26._0_8_;\n                if (plVar17 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }\n                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    \n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }\n                if (plVar18 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }\n              }" ({ "{") (expression_statement "auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);" (assignment_expression "auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10)" (identifier "auVar26") (= "=") (call_expression "FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10)" (identifier "FUN_00192f30") (argument_list "(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10)" (( "(") (pointer_expression "*(undefined8 *)(param_1 + 0x298)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x298)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")")))) (, ",") (identifier "plVar17") (, ",") (identifier "uVar10") () ")")))) (; ";")) (expression_statement "plVar17 = auVar26._0_8_;" (assignment_expression "plVar17 = auVar26._0_8_" (identifier "plVar17") (= "=") (field_expression "auVar26._0_8_" (identifier "auVar26") (. ".") (field_identifier "_0_8_"))) (; ";")) (if_statement "if (plVar17 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }" (if "if") (parenthesized_expression "(plVar17 == (long *)0x0)" (( "(") (binary_expression "plVar17 == (long *)0x0" (identifier "plVar17") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");\n                }" ({ "{") (expression_statement "FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");" (call_expression "FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals")" (identifier "FUN_0018ff20") (argument_list "("../../gold/symtab.cc",0xc53,"sized_write_globals")" (( "(") (string_literal ""../../gold/symtab.cc"" (" """) (string_content "../../gold/symtab.cc") (" """)) (, ",") (number_literal "0xc53") (, ",") (string_literal ""sized_write_globals"" (" """) (string_content "sized_write_globals") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    \n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }\n                else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }" (if "if") (parenthesized_expression "(*(code **)(*plVar17 + 0xc0) == FUN_00173380)" (( "(") (binary_expression "*(code **)(*plVar17 + 0xc0) == FUN_00173380" (pointer_expression "*(code **)(*plVar17 + 0xc0)" (* "*") (cast_expression "(code **)(*plVar17 + 0xc0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar17 + 0xc0)" (( "(") (binary_expression "*plVar17 + 0xc0" (pointer_expression "*plVar17" (* "*") (identifier "plVar17")) (+ "+") (number_literal "0xc0")) () ")")))) (== "==") (identifier "FUN_00173380")) () ")")) (compound_statement "{\n                  uVar19 = auVar26._8_8_ & 0xffffffff;\n                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    \n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }\n                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);\n                }" ({ "{") (expression_statement "uVar19 = auVar26._8_8_ & 0xffffffff;" (assignment_expression "uVar19 = auVar26._8_8_ & 0xffffffff" (identifier "uVar19") (= "=") (binary_expression "auVar26._8_8_ & 0xffffffff" (field_expression "auVar26._8_8_" (identifier "auVar26") (. ".") (field_identifier "_8_8_")) (& "&") (number_literal "0xffffffff"))) (; ";")) (if_statement "if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {\nLAB_0028ca08:\n                    \n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }" (if "if") (parenthesized_expression "((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19)" (( "(") (binary_expression "(ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19" (call_expression "(ulong)(plVar17[0xb] - plVar17[10] >> 3)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(plVar17[0xb] - plVar17[10] >> 3)" (( "(") (binary_expression "plVar17[0xb] - plVar17[10] >> 3" (binary_expression "plVar17[0xb] - plVar17[10]" (subscript_expression "plVar17[0xb]" (identifier "plVar17") ([ "[") (number_literal "0xb") (] "]")) (- "-") (subscript_expression "plVar17[10]" (identifier "plVar17") ([ "[") (number_literal "10") (] "]"))) (>> ">>") (number_literal "3")) () ")"))) (<= "<=") (identifier "uVar19")) () ")")) (compound_statement "{\nLAB_0028ca08:\n                    \n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");\n                  }" ({ "{") (labeled_statement "LAB_0028ca08:\n                    \n                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");" (statement_identifier "LAB_0028ca08") (: ":") (expression_statement "FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");" (call_expression "FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section")" (identifier "FUN_0018ff20") (argument_list "("../../gold/object.h",0x5c8,"do_output_section")" (( "(") (string_literal ""../../gold/object.h"" (" """) (string_content "../../gold/object.h") (" """)) (, ",") (number_literal "0x5c8") (, ",") (string_literal ""do_output_section"" (" """) (string_content "do_output_section") (" """)) () ")"))) (; ";"))) (} "}"))) (expression_statement "plVar18 = *(long **)(plVar17[10] + uVar19 * 8);" (assignment_expression "plVar18 = *(long **)(plVar17[10] + uVar19 * 8)" (identifier "plVar18") (= "=") (pointer_expression "*(long **)(plVar17[10] + uVar19 * 8)" (* "*") (cast_expression "(long **)(plVar17[10] + uVar19 * 8)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(plVar17[10] + uVar19 * 8)" (( "(") (binary_expression "plVar17[10] + uVar19 * 8" (subscript_expression "plVar17[10]" (identifier "plVar17") ([ "[") (number_literal "10") (] "]")) (+ "+") (binary_expression "uVar19 * 8" (identifier "uVar19") (* "*") (number_literal "8"))) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }" (else "else") (compound_statement "{\n                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);\n                }" ({ "{") (expression_statement "plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff);" (assignment_expression "plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff)" (identifier "plVar18") (= "=") (cast_expression "(long *)(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(*plVar17 + 0xc0))\n                                              (plVar17,auVar26._8_8_ & 0xffffffff)" (parenthesized_expression "(**(code **)(*plVar17 + 0xc0))" (( "(") (pointer_expression "**(code **)(*plVar17 + 0xc0)" (* "*") (pointer_expression "*(code **)(*plVar17 + 0xc0)" (* "*") (cast_expression "(code **)(*plVar17 + 0xc0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar17 + 0xc0)" (( "(") (binary_expression "*plVar17 + 0xc0" (pointer_expression "*plVar17" (* "*") (identifier "plVar17")) (+ "+") (number_literal "0xc0")) () ")"))))) () ")")) (argument_list "(plVar17,auVar26._8_8_ & 0xffffffff)" (( "(") (identifier "plVar17") (, ",") (binary_expression "auVar26._8_8_ & 0xffffffff" (field_expression "auVar26._8_8_" (identifier "auVar26") (. ".") (field_identifier "_8_8_")) (& "&") (number_literal "0xffffffff")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (plVar18 == (long *)0x0) {\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }" (if "if") (parenthesized_expression "(plVar18 == (long *)0x0)" (( "(") (binary_expression "plVar18 == (long *)0x0" (identifier "plVar18") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");\n                }" ({ "{") (expression_statement "FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");" (call_expression "FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals")" (identifier "FUN_0018ff20") (argument_list "("../../gold/symtab.cc",0xc57,"sized_write_globals")" (( "(") (string_literal ""../../gold/symtab.cc"" (" """) (string_content "../../gold/symtab.cc") (" """)) (, ",") (number_literal "0xc57") (, ",") (string_literal ""sized_write_globals"" (" """) (string_content "sized_write_globals") (" """)) () ")"))) (; ";")) (} "}"))) (} "}")))) (if_statement "if (*(code **)(*plVar18 + 0x58) == FUN_0019a160) {\n                uVar10 = *(uint *)((long)plVar18 + 0x7c);\n                if (uVar10 == 0xffffffff) goto LAB_0028ca38;\n              }\n              else {\n                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);\n              }" (if "if") (parenthesized_expression "(*(code **)(*plVar18 + 0x58) == FUN_0019a160)" (( "(") (binary_expression "*(code **)(*plVar18 + 0x58) == FUN_0019a160" (pointer_expression "*(code **)(*plVar18 + 0x58)" (* "*") (cast_expression "(code **)(*plVar18 + 0x58)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar18 + 0x58)" (( "(") (binary_expression "*plVar18 + 0x58" (pointer_expression "*plVar18" (* "*") (identifier "plVar18")) (+ "+") (number_literal "0x58")) () ")")))) (== "==") (identifier "FUN_0019a160")) () ")")) (compound_statement "{\n                uVar10 = *(uint *)((long)plVar18 + 0x7c);\n                if (uVar10 == 0xffffffff) goto LAB_0028ca38;\n              }" ({ "{") (expression_statement "uVar10 = *(uint *)((long)plVar18 + 0x7c);" (assignment_expression "uVar10 = *(uint *)((long)plVar18 + 0x7c)" (identifier "uVar10") (= "=") (pointer_expression "*(uint *)((long)plVar18 + 0x7c)" (* "*") (cast_expression "(uint *)((long)plVar18 + 0x7c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar18 + 0x7c)" (( "(") (binary_expression "(long)plVar18 + 0x7c" (cast_expression "(long)plVar18" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar18")) (+ "+") (number_literal "0x7c")) () ")"))))) (; ";")) (if_statement "if (uVar10 == 0xffffffff) goto LAB_0028ca38;" (if "if") (parenthesized_expression "(uVar10 == 0xffffffff)" (( "(") (binary_expression "uVar10 == 0xffffffff" (identifier "uVar10") (== "==") (number_literal "0xffffffff")) () ")")) (goto_statement "goto LAB_0028ca38;" (goto "goto") (statement_identifier "LAB_0028ca38") (; ";"))) (} "}")) (else_clause "else {\n                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);\n              }" (else "else") (compound_statement "{\n                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);\n              }" ({ "{") (expression_statement "uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);" (assignment_expression "uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18)" (identifier "uVar10") (= "=") (call_expression "(**(code **)(*plVar18 + 0x58))(plVar18)" (parenthesized_expression "(**(code **)(*plVar18 + 0x58))" (( "(") (pointer_expression "**(code **)(*plVar18 + 0x58)" (* "*") (pointer_expression "*(code **)(*plVar18 + 0x58)" (* "*") (cast_expression "(code **)(*plVar18 + 0x58)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar18 + 0x58)" (( "(") (binary_expression "*plVar18 + 0x58" (pointer_expression "*plVar18" (* "*") (identifier "plVar18")) (+ "+") (number_literal "0x58")) () ")"))))) () ")")) (argument_list "(plVar18)" (( "(") (identifier "plVar18") () ")")))) (; ";")) (} "}")))) (if_statement "if (0xfeff < uVar10) {\n                if (uVar12 != 0xffffffff) {\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }\n                if (uVar22 == 0xffffffff) {\n                  uVar10 = 0xffff;\n                }\n                else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }\n              }" (if "if") (parenthesized_expression "(0xfeff < uVar10)" (( "(") (binary_expression "0xfeff < uVar10" (number_literal "0xfeff") (< "<") (identifier "uVar10")) () ")")) (compound_statement "{\n                if (uVar12 != 0xffffffff) {\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }\n                if (uVar22 == 0xffffffff) {\n                  uVar10 = 0xffff;\n                }\n                else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }\n              }" ({ "{") (if_statement "if (uVar12 != 0xffffffff) {\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }" (if "if") (parenthesized_expression "(uVar12 != 0xffffffff)" (( "(") (binary_expression "uVar12 != 0xffffffff" (identifier "uVar12") (!= "!=") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n                  local_58 = uVar12;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_4 + 0x38,&local_58);\n                }" ({ "{") (expression_statement "local_58 = uVar12;" (assignment_expression "local_58 = uVar12" (identifier "local_58") (= "=") (identifier "uVar12")) (; ";")) (expression_statement "uStack_54 = uVar10;" (assignment_expression "uStack_54 = uVar10" (identifier "uStack_54") (= "=") (identifier "uVar10")) (; ";")) (expression_statement "FUN_001a3810(param_4 + 0x38,&local_58);" (call_expression "FUN_001a3810(param_4 + 0x38,&local_58)" (identifier "FUN_001a3810") (argument_list "(param_4 + 0x38,&local_58)" (( "(") (binary_expression "param_4 + 0x38" (identifier "param_4") (+ "+") (number_literal "0x38")) (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) () ")"))) (; ";")) (} "}"))) (if_statement "if (uVar22 == 0xffffffff) {\n                  uVar10 = 0xffff;\n                }\n                else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }" (if "if") (parenthesized_expression "(uVar22 == 0xffffffff)" (( "(") (binary_expression "uVar22 == 0xffffffff" (identifier "uVar22") (== "==") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n                  uVar10 = 0xffff;\n                }" ({ "{") (expression_statement "uVar10 = 0xffff;" (assignment_expression "uVar10 = 0xffff" (identifier "uVar10") (= "=") (number_literal "0xffff")) (; ";")) (} "}")) (else_clause "else {\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }" (else "else") (compound_statement "{\n                  local_58 = uVar22;\n                  uStack_54 = uVar10;\n                  FUN_001a3810(param_5 + 0x38,&local_58);\n                  uVar10 = 0xffff;\n                }" ({ "{") (expression_statement "local_58 = uVar22;" (assignment_expression "local_58 = uVar22" (identifier "local_58") (= "=") (identifier "uVar22")) (; ";")) (expression_statement "uStack_54 = uVar10;" (assignment_expression "uStack_54 = uVar10" (identifier "uStack_54") (= "=") (identifier "uVar10")) (; ";")) (expression_statement "FUN_001a3810(param_5 + 0x38,&local_58);" (call_expression "FUN_001a3810(param_5 + 0x38,&local_58)" (identifier "FUN_001a3810") (argument_list "(param_5 + 0x38,&local_58)" (( "(") (binary_expression "param_5 + 0x38" (identifier "param_5") (+ "+") (number_literal "0x38")) (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) () ")"))) (; ";")) (expression_statement "uVar10 = 0xffff;" (assignment_expression "uVar10 = 0xffff" (identifier "uVar10") (= "=") (number_literal "0xffff")) (; ";")) (} "}")))) (} "}"))) (expression_statement "pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);" (assignment_expression "pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10)" (identifier "pcVar13") (= "=") (pointer_expression "*(code **)(PTR_DAT_0045c708 + 0x10)" (* "*") (cast_expression "(code **)(PTR_DAT_0045c708 + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_DAT_0045c708 + 0x10)" (( "(") (binary_expression "PTR_DAT_0045c708 + 0x10" (identifier "PTR_DAT_0045c708") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if (pcVar13 == (code *)0x0) goto LAB_0028c8d7;" (if "if") (parenthesized_expression "(pcVar13 == (code *)0x0)" (( "(") (binary_expression "pcVar13 == (code *)0x0" (identifier "pcVar13") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0028c8d7;" (goto "goto") (statement_identifier "LAB_0028c8d7") (; ";"))) (if_statement "if (pcVar13[0x5051] != (code)0x0) {\n                if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;\n                pcVar13 = local_d0 + -plVar18[1];\n                local_d0 = pcVar13;\n              }" (if "if") (parenthesized_expression "(pcVar13[0x5051] != (code)0x0)" (( "(") (binary_expression "pcVar13[0x5051] != (code)0x0" (subscript_expression "pcVar13[0x5051]" (identifier "pcVar13") ([ "[") (number_literal "0x5051") (] "]")) (!= "!=") (cast_expression "(code)0x0" (( "(") (type_descriptor "code" (type_identifier "code")) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;\n                pcVar13 = local_d0 + -plVar18[1];\n                local_d0 = pcVar13;\n              }" ({ "{") (if_statement "if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;" (if "if") (parenthesized_expression "((*(byte *)(plVar18 + 4) & 1) == 0)" (( "(") (binary_expression "(*(byte *)(plVar18 + 4) & 1) == 0" (parenthesized_expression "(*(byte *)(plVar18 + 4) & 1)" (( "(") (binary_expression "*(byte *)(plVar18 + 4) & 1" (pointer_expression "*(byte *)(plVar18 + 4)" (* "*") (cast_expression "(byte *)(plVar18 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar18 + 4)" (( "(") (binary_expression "plVar18 + 4" (identifier "plVar18") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0028c9b0;" (goto "goto") (statement_identifier "LAB_0028c9b0") (; ";"))) (expression_statement "pcVar13 = local_d0 + -plVar18[1];" (assignment_expression "pcVar13 = local_d0 + -plVar18[1]" (identifier "pcVar13") (= "=") (binary_expression "local_d0 + -plVar18[1]" (identifier "local_d0") (+ "+") (unary_expression "-plVar18[1]" (- "-") (subscript_expression "plVar18[1]" (identifier "plVar18") ([ "[") (number_literal "1") (] "]"))))) (; ";")) (expression_statement "local_d0 = pcVar13;" (assignment_expression "local_d0 = pcVar13" (identifier "local_d0") (= "=") (identifier "pcVar13")) (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n            if ((*(byte *)((long)puVar6 + 0x3b) & 2) != 0) {\n              pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6);\n            }\n            uVar10 = 0;\n            uVar11 = *(byte *)((long)puVar6 + 0x3c) >> 1 & 1;\n            pcVar13 = (code *)(ulong)uVar11;\n            uVar11 = 2 - ((char)uVar11 == '\0');\n          }" (else "else") (compound_statement "{\n            if ((*(byte *)((long)puVar6 + 0x3b) & 2) != 0) {\n              pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6);\n            }\n            uVar10 = 0;\n            uVar11 = *(byte *)((long)puVar6 + 0x3c) >> 1 & 1;\n            pcVar13 = (code *)(ulong)uVar11;\n            uVar11 = 2 - ((char)uVar11 == '\0');\n          }" ({ "{") (if_statement "if ((*(byte *)((long)puVar6 + 0x3b) & 2) != 0) {\n              pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6);\n            }" (if "if") (parenthesized_expression "((*(byte *)((long)puVar6 + 0x3b) & 2) != 0)" (( "(") (binary_expression "(*(byte *)((long)puVar6 + 0x3b) & 2) != 0" (parenthesized_expression "(*(byte *)((long)puVar6 + 0x3b) & 2)" (( "(") (binary_expression "*(byte *)((long)puVar6 + 0x3b) & 2" (pointer_expression "*(byte *)((long)puVar6 + 0x3b)" (* "*") (cast_expression "(byte *)((long)puVar6 + 0x3b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar6 + 0x3b)" (( "(") (binary_expression "(long)puVar6 + 0x3b" (cast_expression "(long)puVar6" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar6")) (+ "+") (number_literal "0x3b")) () ")")))) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6);\n            }" ({ "{") (expression_statement "pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6);" (assignment_expression "pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6)" (identifier "pcVar14") (= "=") (cast_expression "(code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(*plVar23 + 0x28))(plVar23,puVar6)" (parenthesized_expression "(**(code **)(*plVar23 + 0x28))" (( "(") (pointer_expression "**(code **)(*plVar23 + 0x28)" (* "*") (pointer_expression "*(code **)(*plVar23 + 0x28)" (* "*") (cast_expression "(code **)(*plVar23 + 0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar23 + 0x28)" (( "(") (binary_expression "*plVar23 + 0x28" (pointer_expression "*plVar23" (* "*") (identifier "plVar23")) (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (argument_list "(plVar23,puVar6)" (( "(") (identifier "plVar23") (, ",") (identifier "puVar6") () ")"))))) (; ";")) (} "}"))) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" (identifier "uVar10") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar11 = *(byte *)((long)puVar6 + 0x3c) >> 1 & 1;" (assignment_expression "uVar11 = *(byte *)((long)puVar6 + 0x3c) >> 1 & 1" (identifier "uVar11") (= "=") (binary_expression "*(byte *)((long)puVar6 + 0x3c) >> 1 & 1" (binary_expression "*(byte *)((long)puVar6 + 0x3c) >> 1" (pointer_expression "*(byte *)((long)puVar6 + 0x3c)" (* "*") (cast_expression "(byte *)((long)puVar6 + 0x3c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar6 + 0x3c)" (( "(") (binary_expression "(long)puVar6 + 0x3c" (cast_expression "(long)puVar6" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar6")) (+ "+") (number_literal "0x3c")) () ")")))) (>> ">>") (number_literal "1")) (& "&") (number_literal "1"))) (; ";")) (expression_statement "pcVar13 = (code *)(ulong)uVar11;" (assignment_expression "pcVar13 = (code *)(ulong)uVar11" (identifier "pcVar13") (= "=") (cast_expression "(code *)(ulong)uVar11" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(ulong)uVar11" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar11")))) (; ";")) (expression_statement "uVar11 = 2 - ((char)uVar11 == '\0');" (assignment_expression "uVar11 = 2 - ((char)uVar11 == '\0')" (identifier "uVar11") (= "=") (binary_expression "2 - ((char)uVar11 == '\0')" (number_literal "2") (- "-") (parenthesized_expression "((char)uVar11 == '\0')" (( "(") (binary_expression "(char)uVar11 == '\0'" (cast_expression "(char)uVar11" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar11")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")))) (; ";")) (} "}")))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 1:\nLAB_0028c1cb:\n          if ((bVar8 & 7) != 1) {\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xb5,"output_data");\n          }\n          plVar17 = (long *)puVar6[2];\n          uVar10 = (**(code **)(*plVar17 + 0x58))(plVar17);\n          if (0xfeff < uVar10) {\n            if (uVar12 != 0xffffffff) {\n              local_58 = uVar12;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_4 + 0x38,&local_58);\n            }\n            if (uVar22 == 0xffffffff) {\n              uVar10 = 0xffff;\n            }\n            else {\n              local_58 = uVar22;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_5 + 0x38,&local_58);\n              uVar10 = 0xffff;\n            }\n          }\n          pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);\n          if (pcVar13 == (code *)0x0) {\nLAB_0028c8d7:\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }\n          if (pcVar13[0x5051] != (code)0x0) {\n            lVar15 = (**(code **)(*plVar17 + 0x48))(plVar17);\n            if (lVar15 == 0) {\n                    \n              FUN_0018ff20("../../gold/symtab.cc",0xc81,"sized_write_globals");\n            }\n            if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    \n              FUN_0018ff20("../../gold/output.h",0xc5,"address");\n            }\n            pcVar13 = *(code **)(lVar15 + 8);\n            local_d0 = local_d0 + -(long)pcVar13;\n          }\n          break;" (case "case") (number_literal "1") (: ":") (labeled_statement "LAB_0028c1cb:\n          if ((bVar8 & 7) != 1) {\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xb5,"output_data");\n          }" (statement_identifier "LAB_0028c1cb") (: ":") (if_statement "if ((bVar8 & 7) != 1) {\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xb5,"output_data");\n          }" (if "if") (parenthesized_expression "((bVar8 & 7) != 1)" (( "(") (binary_expression "(bVar8 & 7) != 1" (parenthesized_expression "(bVar8 & 7)" (( "(") (binary_expression "bVar8 & 7" (identifier "bVar8") (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n                    \n            FUN_0018ff20("../../gold/symtab.h",0xb5,"output_data");\n          }" ({ "{") (expression_statement "FUN_0018ff20("../../gold/symtab.h",0xb5,"output_data");" (call_expression "FUN_0018ff20("../../gold/symtab.h",0xb5,"output_data")" (identifier "FUN_0018ff20") (argument_list "("../../gold/symtab.h",0xb5,"output_data")" (( "(") (string_literal ""../../gold/symtab.h"" (" """) (string_content "../../gold/symtab.h") (" """)) (, ",") (number_literal "0xb5") (, ",") (string_literal ""output_data"" (" """) (string_content "output_data") (" """)) () ")"))) (; ";")) (} "}")))) (expression_statement "plVar17 = (long *)puVar6[2];" (assignment_expression "plVar17 = (long *)puVar6[2]" (identifier "plVar17") (= "=") (cast_expression "(long *)puVar6[2]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar6[2]" (identifier "puVar6") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "uVar10 = (**(code **)(*plVar17 + 0x58))(plVar17);" (assignment_expression "uVar10 = (**(code **)(*plVar17 + 0x58))(plVar17)" (identifier "uVar10") (= "=") (call_expression "(**(code **)(*plVar17 + 0x58))(plVar17)" (parenthesized_expression "(**(code **)(*plVar17 + 0x58))" (( "(") (pointer_expression "**(code **)(*plVar17 + 0x58)" (* "*") (pointer_expression "*(code **)(*plVar17 + 0x58)" (* "*") (cast_expression "(code **)(*plVar17 + 0x58)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar17 + 0x58)" (( "(") (binary_expression "*plVar17 + 0x58" (pointer_expression "*plVar17" (* "*") (identifier "plVar17")) (+ "+") (number_literal "0x58")) () ")"))))) () ")")) (argument_list "(plVar17)" (( "(") (identifier "plVar17") () ")")))) (; ";")) (if_statement "if (0xfeff < uVar10) {\n            if (uVar12 != 0xffffffff) {\n              local_58 = uVar12;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_4 + 0x38,&local_58);\n            }\n            if (uVar22 == 0xffffffff) {\n              uVar10 = 0xffff;\n            }\n            else {\n              local_58 = uVar22;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_5 + 0x38,&local_58);\n              uVar10 = 0xffff;\n            }\n          }" (if "if") (parenthesized_expression "(0xfeff < uVar10)" (( "(") (binary_expression "0xfeff < uVar10" (number_literal "0xfeff") (< "<") (identifier "uVar10")) () ")")) (compound_statement "{\n            if (uVar12 != 0xffffffff) {\n              local_58 = uVar12;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_4 + 0x38,&local_58);\n            }\n            if (uVar22 == 0xffffffff) {\n              uVar10 = 0xffff;\n            }\n            else {\n              local_58 = uVar22;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_5 + 0x38,&local_58);\n              uVar10 = 0xffff;\n            }\n          }" ({ "{") (if_statement "if (uVar12 != 0xffffffff) {\n              local_58 = uVar12;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_4 + 0x38,&local_58);\n            }" (if "if") (parenthesized_expression "(uVar12 != 0xffffffff)" (( "(") (binary_expression "uVar12 != 0xffffffff" (identifier "uVar12") (!= "!=") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n              local_58 = uVar12;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_4 + 0x38,&local_58);\n            }" ({ "{") (expression_statement "local_58 = uVar12;" (assignment_expression "local_58 = uVar12" (identifier "local_58") (= "=") (identifier "uVar12")) (; ";")) (expression_statement "uStack_54 = uVar10;" (assignment_expression "uStack_54 = uVar10" (identifier "uStack_54") (= "=") (identifier "uVar10")) (; ";")) (expression_statement "FUN_001a3810(param_4 + 0x38,&local_58);" (call_expression "FUN_001a3810(param_4 + 0x38,&local_58)" (identifier "FUN_001a3810") (argument_list "(param_4 + 0x38,&local_58)" (( "(") (binary_expression "param_4 + 0x38" (identifier "param_4") (+ "+") (number_literal "0x38")) (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) () ")"))) (; ";")) (} "}"))) (if_statement "if (uVar22 == 0xffffffff) {\n              uVar10 = 0xffff;\n            }\n            else {\n              local_58 = uVar22;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_5 + 0x38,&local_58);\n              uVar10 = 0xffff;\n            }" (if "if") (parenthesized_expression "(uVar22 == 0xffffffff)" (( "(") (binary_expression "uVar22 == 0xffffffff" (identifier "uVar22") (== "==") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n              uVar10 = 0xffff;\n            }" ({ "{") (expression_statement "uVar10 = 0xffff;" (assignment_expression "uVar10 = 0xffff" (identifier "uVar10") (= "=") (number_literal "0xffff")) (; ";")) (} "}")) (else_clause "else {\n              local_58 = uVar22;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_5 + 0x38,&local_58);\n              uVar10 = 0xffff;\n            }" (else "else") (compound_statement "{\n              local_58 = uVar22;\n              uStack_54 = uVar10;\n              FUN_001a3810(param_5 + 0x38,&local_58);\n              uVar10 = 0xffff;\n            }" ({ "{") (expression_statement "local_58 = uVar22;" (assignment_expression "local_58 = uVar22" (identifier "local_58") (= "=") (identifier "uVar22")) (; ";")) (expression_statement "uStack_54 = uVar10;" (assignment_expression "uStack_54 = uVar10" (identifier "uStack_54") (= "=") (identifier "uVar10")) (; ";")) (expression_statement "FUN_001a3810(param_5 + 0x38,&local_58);" (call_expression "FUN_001a3810(param_5 + 0x38,&local_58)" (identifier "FUN_001a3810") (argument_list "(param_5 + 0x38,&local_58)" (( "(") (binary_expression "param_5 + 0x38" (identifier "param_5") (+ "+") (number_literal "0x38")) (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) () ")"))) (; ";")) (expression_statement "uVar10 = 0xffff;" (assignment_expression "uVar10 = 0xffff" (identifier "uVar10") (= "=") (number_literal "0xffff")) (; ";")) (} "}")))) (} "}"))) (expression_statement "pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);" (assignment_expression "pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10)" (identifier "pcVar13") (= "=") (pointer_expression "*(code **)(PTR_DAT_0045c708 + 0x10)" (* "*") (cast_expression "(code **)(PTR_DAT_0045c708 + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_DAT_0045c708 + 0x10)" (( "(") (binary_expression "PTR_DAT_0045c708 + 0x10" (identifier "PTR_DAT_0045c708") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if (pcVar13 == (code *)0x0) {\nLAB_0028c8d7:\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }" (if "if") (parenthesized_expression "(pcVar13 == (code *)0x0)" (( "(") (binary_expression "pcVar13 == (code *)0x0" (identifier "pcVar13") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_0028c8d7:\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");\n          }" ({ "{") (labeled_statement "LAB_0028c8d7:\n                    \n            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");" (statement_identifier "LAB_0028c8d7") (: ":") (expression_statement "FUN_0018ff20("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_0018ff20("../../gold/parameters.h",0x5c,"options")" (identifier "FUN_0018ff20") (argument_list "("../../gold/parameters.h",0x5c,"options")" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x5c") (, ",") (string_literal ""options"" (" """) (string_content "options") (" """)) () ")"))) (; ";"))) (} "}"))) (if_statement "if (pcVar13[0x5051] != (code)0x0) {\n            lVar15 = (**(code **)(*plVar17 + 0x48))(plVar17);\n            if (lVar15 == 0) {\n                    \n              FUN_0018ff20("../../gold/symtab.cc",0xc81,"sized_write_globals");\n            }\n            if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    \n              FUN_0018ff20("../../gold/output.h",0xc5,"address");\n            }\n            pcVar13 = *(code **)(lVar15 + 8);\n            local_d0 = local_d0 + -(long)pcVar13;\n          }" (if "if") (parenthesized_expression "(pcVar13[0x5051] != (code)0x0)" (( "(") (binary_expression "pcVar13[0x5051] != (code)0x0" (subscript_expression "pcVar13[0x5051]" (identifier "pcVar13") ([ "[") (number_literal "0x5051") (] "]")) (!= "!=") (cast_expression "(code)0x0" (( "(") (type_descriptor "code" (type_identifier "code")) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            lVar15 = (**(code **)(*plVar17 + 0x48))(plVar17);\n            if (lVar15 == 0) {\n                    \n              FUN_0018ff20("../../gold/symtab.cc",0xc81,"sized_write_globals");\n            }\n            if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    \n              FUN_0018ff20("../../gold/output.h",0xc5,"address");\n            }\n            pcVar13 = *(code **)(lVar15 + 8);\n            local_d0 = local_d0 + -(long)pcVar13;\n          }" ({ "{") (expression_statement "lVar15 = (**(code **)(*plVar17 + 0x48))(plVar17);" (assignment_expression "lVar15 = (**(code **)(*plVar17 + 0x48))(plVar17)" (identifier "lVar15") (= "=") (call_expression "(**(code **)(*plVar17 + 0x48))(plVar17)" (parenthesized_expression "(**(code **)(*plVar17 + 0x48))" (( "(") (pointer_expression "**(code **)(*plVar17 + 0x48)" (* "*") (pointer_expression "*(code **)(*plVar17 + 0x48)" (* "*") (cast_expression "(code **)(*plVar17 + 0x48)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar17 + 0x48)" (( "(") (binary_expression "*plVar17 + 0x48" (pointer_expression "*plVar17" (* "*") (identifier "plVar17")) (+ "+") (number_literal "0x48")) () ")"))))) () ")")) (argument_list "(plVar17)" (( "(") (identifier "plVar17") () ")")))) (; ";")) (if_statement "if (lVar15 == 0) {\n                    \n              FUN_0018ff20("../../gold/symtab.cc",0xc81,"sized_write_globals");\n            }" (if "if") (parenthesized_expression "(lVar15 == 0)" (( "(") (binary_expression "lVar15 == 0" (identifier "lVar15") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n              FUN_0018ff20("../../gold/symtab.cc",0xc81,"sized_write_globals");\n            }" ({ "{") (expression_statement "FUN_0018ff20("../../gold/symtab.cc",0xc81,"sized_write_globals");" (call_expression "FUN_0018ff20("../../gold/symtab.cc",0xc81,"sized_write_globals")" (identifier "FUN_0018ff20") (argument_list "("../../gold/symtab.cc",0xc81,"sized_write_globals")" (( "(") (string_literal ""../../gold/symtab.cc"" (" """) (string_content "../../gold/symtab.cc") (" """)) (, ",") (number_literal "0xc81") (, ",") (string_literal ""sized_write_globals"" (" """) (string_content "sized_write_globals") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {\nLAB_0028c9b0:\n                    \n              FUN_0018ff20("../../gold/output.h",0xc5,"address");\n            }" (if "if") (parenthesized_expression "((*(byte *)(lVar15 + 0x20) & 1) == 0)" (( "(") (binary_expression "(*(byte *)(lVar15 + 0x20) & 1) == 0" (parenthesized_expression "(*(byte *)(lVar15 + 0x20) & 1)" (( "(") (binary_expression "*(byte *)(lVar15 + 0x20) & 1" (pointer_expression "*(byte *)(lVar15 + 0x20)" (* "*") (cast_expression "(byte *)(lVar15 + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0x20)" (( "(") (binary_expression "lVar15 + 0x20" (identifier "lVar15") (+ "+") (number_literal "0x20")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0028c9b0:\n                    \n              FUN_0018ff20("../../gold/output.h",0xc5,"address");\n            }" ({ "{") (labeled_statement "LAB_0028c9b0:\n                    \n              FUN_0018ff20("../../gold/output.h",0xc5,"address");" (statement_identifier "LAB_0028c9b0") (: ":") (expression_statement "FUN_0018ff20("../../gold/output.h",0xc5,"address");" (call_expression "FUN_0018ff20("../../gold/output.h",0xc5,"address")" (identifier "FUN_0018ff20") (argument_list "("../../gold/output.h",0xc5,"address")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0xc5") (, ",") (string_literal ""address"" (" """) (string_content "address") (" """)) () ")"))) (; ";"))) (} "}"))) (expression_statement "pcVar13 = *(code **)(lVar15 + 8);" (assignment_expression "pcVar13 = *(code **)(lVar15 + 8)" (identifier "pcVar13") (= "=") (pointer_expression "*(code **)(lVar15 + 8)" (* "*") (cast_expression "(code **)(lVar15 + 8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar15 + 8)" (( "(") (binary_expression "lVar15 + 8" (identifier "lVar15") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "local_d0 = local_d0 + -(long)pcVar13;" (assignment_expression "local_d0 = local_d0 + -(long)pcVar13" (identifier "local_d0") (= "=") (binary_expression "local_d0 + -(long)pcVar13" (identifier "local_d0") (+ "+") (unary_expression "-(long)pcVar13" (- "-") (cast_expression "(long)pcVar13" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pcVar13"))))) (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 2:\n          uVar10 = bVar8 & 7;\nLAB_0028c143:\n          if ((char)uVar10 != '\x02') {\n                    \n            FUN_0018ff20("../../gold/symtab.h",200,"output_segment");\n          }\n          pcVar13 = (code *)FUN_0020de20(puVar6[2]);\n          if (pcVar13 == (code *)0x0) goto switchD_0028bebe_caseD_3;\n          if (*(code **)(*(long *)pcVar13 + 0x58) == FUN_0019a160) {\n            uVar10 = *(uint *)(pcVar13 + 0x7c);\n            pcVar13 = (code *)(ulong)uVar10;\n            if (uVar10 == 0xffffffff) {\nLAB_0028ca38:\n                    \n              FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx");\n            }\n          }\n          else {\n            pcVar13 = (code *)(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13);\n            uVar10 = (uint)pcVar13;\n          }\n          break;" (case "case") (number_literal "2") (: ":") (expression_statement "uVar10 = bVar8 & 7;" (assignment_expression "uVar10 = bVar8 & 7" (identifier "uVar10") (= "=") (binary_expression "bVar8 & 7" (identifier "bVar8") (& "&") (number_literal "7"))) (; ";")) (labeled_statement "LAB_0028c143:\n          if ((char)uVar10 != '\x02') {\n                    \n            FUN_0018ff20("../../gold/symtab.h",200,"output_segment");\n          }" (statement_identifier "LAB_0028c143") (: ":") (if_statement "if ((char)uVar10 != '\x02') {\n                    \n            FUN_0018ff20("../../gold/symtab.h",200,"output_segment");\n          }" (if "if") (parenthesized_expression "((char)uVar10 != '\x02')" (( "(") (binary_expression "(char)uVar10 != '\x02'" (cast_expression "(char)uVar10" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar10")) (!= "!=") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) () ")")) (compound_statement "{\n                    \n            FUN_0018ff20("../../gold/symtab.h",200,"output_segment");\n          }" ({ "{") (expression_statement "FUN_0018ff20("../../gold/symtab.h",200,"output_segment");" (call_expression "FUN_0018ff20("../../gold/symtab.h",200,"output_segment")" (identifier "FUN_0018ff20") (argument_list "("../../gold/symtab.h",200,"output_segment")" (( "(") (string_literal ""../../gold/symtab.h"" (" """) (string_content "../../gold/symtab.h") (" """)) (, ",") (number_literal "200") (, ",") (string_literal ""output_segment"" (" """) (string_content "output_segment") (" """)) () ")"))) (; ";")) (} "}")))) (expression_statement "pcVar13 = (code *)FUN_0020de20(puVar6[2]);" (assignment_expression "pcVar13 = (code *)FUN_0020de20(puVar6[2])" (identifier "pcVar13") (= "=") (cast_expression "(code *)FUN_0020de20(puVar6[2])" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0020de20(puVar6[2])" (identifier "FUN_0020de20") (argument_list "(puVar6[2])" (( "(") (subscript_expression "puVar6[2]" (identifier "puVar6") ([ "[") (number_literal "2") (] "]")) () ")"))))) (; ";")) (if_statement "if (pcVar13 == (code *)0x0) goto switchD_0028bebe_caseD_3;" (if "if") (parenthesized_expression "(pcVar13 == (code *)0x0)" (( "(") (binary_expression "pcVar13 == (code *)0x0" (identifier "pcVar13") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto switchD_0028bebe_caseD_3;" (goto "goto") (statement_identifier "switchD_0028bebe_caseD_3") (; ";"))) (if_statement "if (*(code **)(*(long *)pcVar13 + 0x58) == FUN_0019a160) {\n            uVar10 = *(uint *)(pcVar13 + 0x7c);\n            pcVar13 = (code *)(ulong)uVar10;\n            if (uVar10 == 0xffffffff) {\nLAB_0028ca38:\n                    \n              FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx");\n            }\n          }\n          else {\n            pcVar13 = (code *)(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13);\n            uVar10 = (uint)pcVar13;\n          }" (if "if") (parenthesized_expression "(*(code **)(*(long *)pcVar13 + 0x58) == FUN_0019a160)" (( "(") (binary_expression "*(code **)(*(long *)pcVar13 + 0x58) == FUN_0019a160" (pointer_expression "*(code **)(*(long *)pcVar13 + 0x58)" (* "*") (cast_expression "(code **)(*(long *)pcVar13 + 0x58)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)pcVar13 + 0x58)" (( "(") (binary_expression "*(long *)pcVar13 + 0x58" (pointer_expression "*(long *)pcVar13" (* "*") (cast_expression "(long *)pcVar13" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar13"))) (+ "+") (number_literal "0x58")) () ")")))) (== "==") (identifier "FUN_0019a160")) () ")")) (compound_statement "{\n            uVar10 = *(uint *)(pcVar13 + 0x7c);\n            pcVar13 = (code *)(ulong)uVar10;\n            if (uVar10 == 0xffffffff) {\nLAB_0028ca38:\n                    \n              FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx");\n            }\n          }" ({ "{") (expression_statement "uVar10 = *(uint *)(pcVar13 + 0x7c);" (assignment_expression "uVar10 = *(uint *)(pcVar13 + 0x7c)" (identifier "uVar10") (= "=") (pointer_expression "*(uint *)(pcVar13 + 0x7c)" (* "*") (cast_expression "(uint *)(pcVar13 + 0x7c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar13 + 0x7c)" (( "(") (binary_expression "pcVar13 + 0x7c" (identifier "pcVar13") (+ "+") (number_literal "0x7c")) () ")"))))) (; ";")) (expression_statement "pcVar13 = (code *)(ulong)uVar10;" (assignment_expression "pcVar13 = (code *)(ulong)uVar10" (identifier "pcVar13") (= "=") (cast_expression "(code *)(ulong)uVar10" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(ulong)uVar10" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar10")))) (; ";")) (if_statement "if (uVar10 == 0xffffffff) {\nLAB_0028ca38:\n                    \n              FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx");\n            }" (if "if") (parenthesized_expression "(uVar10 == 0xffffffff)" (( "(") (binary_expression "uVar10 == 0xffffffff" (identifier "uVar10") (== "==") (number_literal "0xffffffff")) () ")")) (compound_statement "{\nLAB_0028ca38:\n                    \n              FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx");\n            }" ({ "{") (labeled_statement "LAB_0028ca38:\n                    \n              FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx");" (statement_identifier "LAB_0028ca38") (: ":") (expression_statement "FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx");" (call_expression "FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx")" (identifier "FUN_0018ff20") (argument_list "("../../gold/output.h",0x1043,"do_out_shndx")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0x1043") (, ",") (string_literal ""do_out_shndx"" (" """) (string_content "do_out_shndx") (" """)) () ")"))) (; ";"))) (} "}"))) (} "}")) (else_clause "else {\n            pcVar13 = (code *)(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13);\n            uVar10 = (uint)pcVar13;\n          }" (else "else") (compound_statement "{\n            pcVar13 = (code *)(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13);\n            uVar10 = (uint)pcVar13;\n          }" ({ "{") (expression_statement "pcVar13 = (code *)(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13);" (assignment_expression "pcVar13 = (code *)(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13)" (identifier "pcVar13") (= "=") (cast_expression "(code *)(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13)" (parenthesized_expression "(**(code **)(*(long *)pcVar13 + 0x58))" (( "(") (pointer_expression "**(code **)(*(long *)pcVar13 + 0x58)" (* "*") (pointer_expression "*(code **)(*(long *)pcVar13 + 0x58)" (* "*") (cast_expression "(code **)(*(long *)pcVar13 + 0x58)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)pcVar13 + 0x58)" (( "(") (binary_expression "*(long *)pcVar13 + 0x58" (pointer_expression "*(long *)pcVar13" (* "*") (cast_expression "(long *)pcVar13" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar13"))) (+ "+") (number_literal "0x58")) () ")"))))) () ")")) (argument_list "(pcVar13)" (( "(") (identifier "pcVar13") () ")"))))) (; ";")) (expression_statement "uVar10 = (uint)pcVar13;" (assignment_expression "uVar10 = (uint)pcVar13" (identifier "uVar10") (= "=") (cast_expression "(uint)pcVar13" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pcVar13"))) (; ";")) (} "}")))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 3:\nswitchD_0028bebe_caseD_3:\n          uVar10 = 0xfff1;\n          break;" (case "case") (number_literal "3") (: ":") (labeled_statement "switchD_0028bebe_caseD_3:\n          uVar10 = 0xfff1;" (statement_identifier "switchD_0028bebe_caseD_3") (: ":") (expression_statement "uVar10 = 0xfff1;" (assignment_expression "uVar10 = 0xfff1" (identifier "uVar10") (= "=") (number_literal "0xfff1")) (; ";"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 4:\nswitchD_0028bebe_caseD_4:\n          uVar10 = 0;" (case "case") (number_literal "4") (: ":") (labeled_statement "switchD_0028bebe_caseD_4:\n          uVar10 = 0;" (statement_identifier "switchD_0028bebe_caseD_4") (: ":") (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" (identifier "uVar10") (= "=") (number_literal "0")) (; ";")))) (} "}"))) (labeled_statement "LAB_0028bf30:\n        if (uVar12 != 0xffffffff) {\n          uVar12 = uVar12 - iVar1;\n          if (uVar2 <= uVar12) {\n                    \n            FUN_0018ff20("../../gold/symtab.cc",0xca1,"sized_write_globals");\n          }\n          pcVar13 = (code *)FUN_00289ee0(param_1,puVar6,local_d0,uVar10,uVar11,param_2,\n                                         (ulong)(uVar12 * 0x18) + local_98);\n        }" (statement_identifier "LAB_0028bf30") (: ":") (if_statement "if (uVar12 != 0xffffffff) {\n          uVar12 = uVar12 - iVar1;\n          if (uVar2 <= uVar12) {\n                    \n            FUN_0018ff20("../../gold/symtab.cc",0xca1,"sized_write_globals");\n          }\n          pcVar13 = (code *)FUN_00289ee0(param_1,puVar6,local_d0,uVar10,uVar11,param_2,\n                                         (ulong)(uVar12 * 0x18) + local_98);\n        }" (if "if") (parenthesized_expression "(uVar12 != 0xffffffff)" (( "(") (binary_expression "uVar12 != 0xffffffff" (identifier "uVar12") (!= "!=") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n          uVar12 = uVar12 - iVar1;\n          if (uVar2 <= uVar12) {\n                    \n            FUN_0018ff20("../../gold/symtab.cc",0xca1,"sized_write_globals");\n          }\n          pcVar13 = (code *)FUN_00289ee0(param_1,puVar6,local_d0,uVar10,uVar11,param_2,\n                                         (ulong)(uVar12 * 0x18) + local_98);\n        }" ({ "{") (expression_statement "uVar12 = uVar12 - iVar1;" (assignment_expression "uVar12 = uVar12 - iVar1" (identifier "uVar12") (= "=") (binary_expression "uVar12 - iVar1" (identifier "uVar12") (- "-") (identifier "iVar1"))) (; ";")) (if_statement "if (uVar2 <= uVar12) {\n                    \n            FUN_0018ff20("../../gold/symtab.cc",0xca1,"sized_write_globals");\n          }" (if "if") (parenthesized_expression "(uVar2 <= uVar12)" (( "(") (binary_expression "uVar2 <= uVar12" (identifier "uVar2") (<= "<=") (identifier "uVar12")) () ")")) (compound_statement "{\n                    \n            FUN_0018ff20("../../gold/symtab.cc",0xca1,"sized_write_globals");\n          }" ({ "{") (expression_statement "FUN_0018ff20("../../gold/symtab.cc",0xca1,"sized_write_globals");" (call_expression "FUN_0018ff20("../../gold/symtab.cc",0xca1,"sized_write_globals")" (identifier "FUN_0018ff20") (argument_list "("../../gold/symtab.cc",0xca1,"sized_write_globals")" (( "(") (string_literal ""../../gold/symtab.cc"" (" """) (string_content "../../gold/symtab.cc") (" """)) (, ",") (number_literal "0xca1") (, ",") (string_literal ""sized_write_globals"" (" """) (string_content "sized_write_globals") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "pcVar13 = (code *)FUN_00289ee0(param_1,puVar6,local_d0,uVar10,uVar11,param_2,\n                                         (ulong)(uVar12 * 0x18) + local_98);" (assignment_expression "pcVar13 = (code *)FUN_00289ee0(param_1,puVar6,local_d0,uVar10,uVar11,param_2,\n                                         (ulong)(uVar12 * 0x18) + local_98)" (identifier "pcVar13") (= "=") (cast_expression "(code *)FUN_00289ee0(param_1,puVar6,local_d0,uVar10,uVar11,param_2,\n                                         (ulong)(uVar12 * 0x18) + local_98)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00289ee0(param_1,puVar6,local_d0,uVar10,uVar11,param_2,\n                                         (ulong)(uVar12 * 0x18) + local_98)" (identifier "FUN_00289ee0") (argument_list "(param_1,puVar6,local_d0,uVar10,uVar11,param_2,\n                                         (ulong)(uVar12 * 0x18) + local_98)" (( "(") (identifier "param_1") (, ",") (identifier "puVar6") (, ",") (identifier "local_d0") (, ",") (identifier "uVar10") (, ",") (identifier "uVar11") (, ",") (identifier "param_2") (, ",") (binary_expression "(ulong)(uVar12 * 0x18) + local_98" (call_expression "(ulong)(uVar12 * 0x18)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar12 * 0x18)" (( "(") (binary_expression "uVar12 * 0x18" (identifier "uVar12") (* "*") (number_literal "0x18")) () ")"))) (+ "+") (identifier "local_98")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (uVar22 != 0xffffffff) {\n          uVar22 = uVar22 - iVar3;\n          if (uVar4 <= uVar22) {\n                    \n            FUN_0018ff20("../../gold/symtab.cc",0xcaa,"sized_write_globals");\n          }\n          FUN_00289ee0(param_1,puVar6,pcVar14,uVar10,uVar11,param_3);\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          pcVar13 = *(code **)(*plVar17 + 0x138);\n          if (pcVar13 != FUN_00172ba0) {\n            pcVar13 = (code *)(*pcVar13)(plVar17,puVar6,local_c0 + uVar22 * 0x18);\n          }\n        }" (if "if") (parenthesized_expression "(uVar22 != 0xffffffff)" (( "(") (binary_expression "uVar22 != 0xffffffff" (identifier "uVar22") (!= "!=") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n          uVar22 = uVar22 - iVar3;\n          if (uVar4 <= uVar22) {\n                    \n            FUN_0018ff20("../../gold/symtab.cc",0xcaa,"sized_write_globals");\n          }\n          FUN_00289ee0(param_1,puVar6,pcVar14,uVar10,uVar11,param_3);\n          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);\n          if (plVar17 == (long *)0x0) goto LAB_0028c91f;\n          pcVar13 = *(code **)(*plVar17 + 0x138);\n          if (pcVar13 != FUN_00172ba0) {\n            pcVar13 = (code *)(*pcVar13)(plVar17,puVar6,local_c0 + uVar22 * 0x18);\n          }\n        }" ({ "{") (expression_statement "uVar22 = uVar22 - iVar3;" (assignment_expression "uVar22 = uVar22 - iVar3" (identifier "uVar22") (= "=") (binary_expression "uVar22 - iVar3" (identifier "uVar22") (- "-") (identifier "iVar3"))) (; ";")) (if_statement "if (uVar4 <= uVar22) {\n                    \n            FUN_0018ff20("../../gold/symtab.cc",0xcaa,"sized_write_globals");\n          }" (if "if") (parenthesized_expression "(uVar4 <= uVar22)" (( "(") (binary_expression "uVar4 <= uVar22" (identifier "uVar4") (<= "<=") (identifier "uVar22")) () ")")) (compound_statement "{\n                    \n            FUN_0018ff20("../../gold/symtab.cc",0xcaa,"sized_write_globals");\n          }" ({ "{") (expression_statement "FUN_0018ff20("../../gold/symtab.cc",0xcaa,"sized_write_globals");" (call_expression "FUN_0018ff20("../../gold/symtab.cc",0xcaa,"sized_write_globals")" (identifier "FUN_0018ff20") (argument_list "("../../gold/symtab.cc",0xcaa,"sized_write_globals")" (( "(") (string_literal ""../../gold/symtab.cc"" (" """) (string_content "../../gold/symtab.cc") (" """)) (, ",") (number_literal "0xcaa") (, ",") (string_literal ""sized_write_globals"" (" """) (string_content "sized_write_globals") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_00289ee0(param_1,puVar6,pcVar14,uVar10,uVar11,param_3);" (call_expression "FUN_00289ee0(param_1,puVar6,pcVar14,uVar10,uVar11,param_3)" (identifier "FUN_00289ee0") (argument_list "(param_1,puVar6,pcVar14,uVar10,uVar11,param_3)" (( "(") (identifier "param_1") (, ",") (identifier "puVar6") (, ",") (identifier "pcVar14") (, ",") (identifier "uVar10") (, ",") (identifier "uVar11") (, ",") (identifier "param_3") () ")"))) (; ";")) (expression_statement "plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);" (assignment_expression "plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18)" (identifier "plVar17") (= "=") (pointer_expression "*(long **)(PTR_DAT_0045c708 + 0x18)" (* "*") (cast_expression "(long **)(PTR_DAT_0045c708 + 0x18)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_DAT_0045c708 + 0x18)" (( "(") (binary_expression "PTR_DAT_0045c708 + 0x18" (identifier "PTR_DAT_0045c708") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (plVar17 == (long *)0x0) goto LAB_0028c91f;" (if "if") (parenthesized_expression "(plVar17 == (long *)0x0)" (( "(") (binary_expression "plVar17 == (long *)0x0" (identifier "plVar17") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0028c91f;" (goto "goto") (statement_identifier "LAB_0028c91f") (; ";"))) (expression_statement "pcVar13 = *(code **)(*plVar17 + 0x138);" (assignment_expression "pcVar13 = *(code **)(*plVar17 + 0x138)" (identifier "pcVar13") (= "=") (pointer_expression "*(code **)(*plVar17 + 0x138)" (* "*") (cast_expression "(code **)(*plVar17 + 0x138)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar17 + 0x138)" (( "(") (binary_expression "*plVar17 + 0x138" (pointer_expression "*plVar17" (* "*") (identifier "plVar17")) (+ "+") (number_literal "0x138")) () ")"))))) (; ";")) (if_statement "if (pcVar13 != FUN_00172ba0) {\n            pcVar13 = (code *)(*pcVar13)(plVar17,puVar6,local_c0 + uVar22 * 0x18);\n          }" (if "if") (parenthesized_expression "(pcVar13 != FUN_00172ba0)" (( "(") (binary_expression "pcVar13 != FUN_00172ba0" (identifier "pcVar13") (!= "!=") (identifier "FUN_00172ba0")) () ")")) (compound_statement "{\n            pcVar13 = (code *)(*pcVar13)(plVar17,puVar6,local_c0 + uVar22 * 0x18);\n          }" ({ "{") (expression_statement "pcVar13 = (code *)(*pcVar13)(plVar17,puVar6,local_c0 + uVar22 * 0x18);" (assignment_expression "pcVar13 = (code *)(*pcVar13)(plVar17,puVar6,local_c0 + uVar22 * 0x18)" (identifier "pcVar13") (= "=") (cast_expression "(code *)(*pcVar13)(plVar17,puVar6,local_c0 + uVar22 * 0x18)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*pcVar13)(plVar17,puVar6,local_c0 + uVar22 * 0x18)" (parenthesized_expression "(*pcVar13)" (( "(") (pointer_expression "*pcVar13" (* "*") (identifier "pcVar13")) () ")")) (argument_list "(plVar17,puVar6,local_c0 + uVar22 * 0x18)" (( "(") (identifier "plVar17") (, ",") (identifier "puVar6") (, ",") (binary_expression "local_c0 + uVar22 * 0x18" (identifier "local_c0") (+ "+") (binary_expression "uVar22 * 0x18" (identifier "uVar22") (* "*") (number_literal "0x18"))) () ")"))))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "plVar24 = (long *)*plVar24;" (assignment_expression "plVar24 = (long *)*plVar24" (identifier "plVar24") (= "=") (cast_expression "(long *)*plVar24" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar24" (* "*") (identifier "plVar24")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(plVar24 != (long *)0x0)" (( "(") (binary_expression "plVar24 != (long *)0x0" (identifier "plVar24") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}"))) (expression_statement "plVar23 = *(long **)(param_1 + 0x2a0);" (assignment_expression "plVar23 = *(long **)(param_1 + 0x2a0)" (identifier "plVar23") (= "=") (pointer_expression "*(long **)(param_1 + 0x2a0)" (* "*") (cast_expression "(long **)(param_1 + 0x2a0)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x2a0)" (( "(") (binary_expression "param_1 + 0x2a0" (identifier "param_1") (+ "+") (number_literal "0x2a0")) () ")"))))) (; ";")) (if_statement "if (plVar23 == *(long **)(param_1 + 0x2a8)) {\n    return pcVar13;\n  }" (if "if") (parenthesized_expression "(plVar23 == *(long **)(param_1 + 0x2a8))" (( "(") (binary_expression "plVar23 == *(long **)(param_1 + 0x2a8)" (identifier "plVar23") (== "==") (pointer_expression "*(long **)(param_1 + 0x2a8)" (* "*") (cast_expression "(long **)(param_1 + 0x2a8)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")"))))) () ")")) (compound_statement "{\n    return pcVar13;\n  }" ({ "{") (return_statement "return pcVar13;" (return "return") (identifier "pcVar13") (; ";")) (} "}"))) (expression_statement "lVar20 = *plVar23;" (assignment_expression "lVar20 = *plVar23" (identifier "lVar20") (= "=") (pointer_expression "*plVar23" (* "*") (identifier "plVar23"))) (; ";")) (expression_statement "iVar5 = *(int *)(lVar20 + 0x1c);" (assignment_expression "iVar5 = *(int *)(lVar20 + 0x1c)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(lVar20 + 0x1c)" (* "*") (cast_expression "(int *)(lVar20 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar20 + 0x1c)" (( "(") (binary_expression "lVar20 + 0x1c" (identifier "lVar20") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (while_statement "while (iVar5 != 0) {\n    plVar23 = plVar23 + 1;\n    if (local_c0 == (code *)0x0) {\n      iVar21 = -1;\n    }\n    else {\n      iVar21 = *(int *)(lVar20 + 0x20);\n      if (iVar21 == 0) {\nLAB_0028c898:\n                    \n        FUN_0018ff20("../../gold/symtab.h",0x19a,"dynsym_index");\n      }\n    }\n    uVar12 = *(byte *)(lVar20 + 0x3a) & 7;\n    pcVar13 = (code *)(ulong)uVar12;\n    cVar9 = (char)uVar12;\n    if (cVar9 == '\x03') {\n      uVar25 = 0xfff1;\n    }\n    else {\n      if (cVar9 != '\x04') {\n                    \n        FUN_0018ff20("../../gold/symtab.cc",0xccb,"sized_write_globals");\n      }\n      uVar25 = 0;\n    }\n    if (iVar5 != -1) {\n      uVar12 = iVar5 - iVar1;\n      if (uVar2 <= uVar12) {\n                    \n        FUN_0018ff20("../../gold/symtab.cc",0xcd1,"sized_write_globals");\n      }\n      pcVar13 = (code *)FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                                     *(byte *)(lVar20 + 0x38) >> 4,param_2,\n                                     (ulong)(uVar12 * 0x18) + local_98);\n    }\n    if (iVar21 != -1) {\n      uVar12 = iVar21 - iVar3;\n      if (uVar4 <= uVar12) {\n                    \n        FUN_0018ff20("../../gold/symtab.cc",0xcdb,"sized_write_globals");\n      }\n      pcVar13 = local_c0 + uVar12 * 0x18;\n      FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                   *(byte *)(lVar20 + 0x38) >> 4,param_3);\n    }\n    if (*(long **)(param_1 + 0x2a8) == plVar23) {\n      return pcVar13;\n    }\n    lVar20 = *plVar23;\n    iVar5 = *(int *)(lVar20 + 0x1c);\n  }" (while "while") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    plVar23 = plVar23 + 1;\n    if (local_c0 == (code *)0x0) {\n      iVar21 = -1;\n    }\n    else {\n      iVar21 = *(int *)(lVar20 + 0x20);\n      if (iVar21 == 0) {\nLAB_0028c898:\n                    \n        FUN_0018ff20("../../gold/symtab.h",0x19a,"dynsym_index");\n      }\n    }\n    uVar12 = *(byte *)(lVar20 + 0x3a) & 7;\n    pcVar13 = (code *)(ulong)uVar12;\n    cVar9 = (char)uVar12;\n    if (cVar9 == '\x03') {\n      uVar25 = 0xfff1;\n    }\n    else {\n      if (cVar9 != '\x04') {\n                    \n        FUN_0018ff20("../../gold/symtab.cc",0xccb,"sized_write_globals");\n      }\n      uVar25 = 0;\n    }\n    if (iVar5 != -1) {\n      uVar12 = iVar5 - iVar1;\n      if (uVar2 <= uVar12) {\n                    \n        FUN_0018ff20("../../gold/symtab.cc",0xcd1,"sized_write_globals");\n      }\n      pcVar13 = (code *)FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                                     *(byte *)(lVar20 + 0x38) >> 4,param_2,\n                                     (ulong)(uVar12 * 0x18) + local_98);\n    }\n    if (iVar21 != -1) {\n      uVar12 = iVar21 - iVar3;\n      if (uVar4 <= uVar12) {\n                    \n        FUN_0018ff20("../../gold/symtab.cc",0xcdb,"sized_write_globals");\n      }\n      pcVar13 = local_c0 + uVar12 * 0x18;\n      FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                   *(byte *)(lVar20 + 0x38) >> 4,param_3);\n    }\n    if (*(long **)(param_1 + 0x2a8) == plVar23) {\n      return pcVar13;\n    }\n    lVar20 = *plVar23;\n    iVar5 = *(int *)(lVar20 + 0x1c);\n  }" ({ "{") (expression_statement "plVar23 = plVar23 + 1;" (assignment_expression "plVar23 = plVar23 + 1" (identifier "plVar23") (= "=") (binary_expression "plVar23 + 1" (identifier "plVar23") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (local_c0 == (code *)0x0) {\n      iVar21 = -1;\n    }\n    else {\n      iVar21 = *(int *)(lVar20 + 0x20);\n      if (iVar21 == 0) {\nLAB_0028c898:\n                    \n        FUN_0018ff20("../../gold/symtab.h",0x19a,"dynsym_index");\n      }\n    }" (if "if") (parenthesized_expression "(local_c0 == (code *)0x0)" (( "(") (binary_expression "local_c0 == (code *)0x0" (identifier "local_c0") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      iVar21 = -1;\n    }" ({ "{") (expression_statement "iVar21 = -1;" (assignment_expression "iVar21 = -1" (identifier "iVar21") (= "=") (number_literal "-1")) (; ";")) (} "}")) (else_clause "else {\n      iVar21 = *(int *)(lVar20 + 0x20);\n      if (iVar21 == 0) {\nLAB_0028c898:\n                    \n        FUN_0018ff20("../../gold/symtab.h",0x19a,"dynsym_index");\n      }\n    }" (else "else") (compound_statement "{\n      iVar21 = *(int *)(lVar20 + 0x20);\n      if (iVar21 == 0) {\nLAB_0028c898:\n                    \n        FUN_0018ff20("../../gold/symtab.h",0x19a,"dynsym_index");\n      }\n    }" ({ "{") (expression_statement "iVar21 = *(int *)(lVar20 + 0x20);" (assignment_expression "iVar21 = *(int *)(lVar20 + 0x20)" (identifier "iVar21") (= "=") (pointer_expression "*(int *)(lVar20 + 0x20)" (* "*") (cast_expression "(int *)(lVar20 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar20 + 0x20)" (( "(") (binary_expression "lVar20 + 0x20" (identifier "lVar20") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (if_statement "if (iVar21 == 0) {\nLAB_0028c898:\n                    \n        FUN_0018ff20("../../gold/symtab.h",0x19a,"dynsym_index");\n      }" (if "if") (parenthesized_expression "(iVar21 == 0)" (( "(") (binary_expression "iVar21 == 0" (identifier "iVar21") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0028c898:\n                    \n        FUN_0018ff20("../../gold/symtab.h",0x19a,"dynsym_index");\n      }" ({ "{") (labeled_statement "LAB_0028c898:\n                    \n        FUN_0018ff20("../../gold/symtab.h",0x19a,"dynsym_index");" (statement_identifier "LAB_0028c898") (: ":") (expression_statement "FUN_0018ff20("../../gold/symtab.h",0x19a,"dynsym_index");" (call_expression "FUN_0018ff20("../../gold/symtab.h",0x19a,"dynsym_index")" (identifier "FUN_0018ff20") (argument_list "("../../gold/symtab.h",0x19a,"dynsym_index")" (( "(") (string_literal ""../../gold/symtab.h"" (" """) (string_content "../../gold/symtab.h") (" """)) (, ",") (number_literal "0x19a") (, ",") (string_literal ""dynsym_index"" (" """) (string_content "dynsym_index") (" """)) () ")"))) (; ";"))) (} "}"))) (} "}")))) (expression_statement "uVar12 = *(byte *)(lVar20 + 0x3a) & 7;" (assignment_expression "uVar12 = *(byte *)(lVar20 + 0x3a) & 7" (identifier "uVar12") (= "=") (binary_expression "*(byte *)(lVar20 + 0x3a) & 7" (pointer_expression "*(byte *)(lVar20 + 0x3a)" (* "*") (cast_expression "(byte *)(lVar20 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar20 + 0x3a)" (( "(") (binary_expression "lVar20 + 0x3a" (identifier "lVar20") (+ "+") (number_literal "0x3a")) () ")")))) (& "&") (number_literal "7"))) (; ";")) (expression_statement "pcVar13 = (code *)(ulong)uVar12;" (assignment_expression "pcVar13 = (code *)(ulong)uVar12" (identifier "pcVar13") (= "=") (cast_expression "(code *)(ulong)uVar12" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(ulong)uVar12" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar12")))) (; ";")) (expression_statement "cVar9 = (char)uVar12;" (assignment_expression "cVar9 = (char)uVar12" (identifier "cVar9") (= "=") (cast_expression "(char)uVar12" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar12"))) (; ";")) (if_statement "if (cVar9 == '\x03') {\n      uVar25 = 0xfff1;\n    }\n    else {\n      if (cVar9 != '\x04') {\n                    \n        FUN_0018ff20("../../gold/symtab.cc",0xccb,"sized_write_globals");\n      }\n      uVar25 = 0;\n    }" (if "if") (parenthesized_expression "(cVar9 == '\x03')" (( "(") (binary_expression "cVar9 == '\x03'" (identifier "cVar9") (== "==") (char_literal "'\x03'" (' "'") (escape_sequence "\x03") (' "'"))) () ")")) (compound_statement "{\n      uVar25 = 0xfff1;\n    }" ({ "{") (expression_statement "uVar25 = 0xfff1;" (assignment_expression "uVar25 = 0xfff1" (identifier "uVar25") (= "=") (number_literal "0xfff1")) (; ";")) (} "}")) (else_clause "else {\n      if (cVar9 != '\x04') {\n                    \n        FUN_0018ff20("../../gold/symtab.cc",0xccb,"sized_write_globals");\n      }\n      uVar25 = 0;\n    }" (else "else") (compound_statement "{\n      if (cVar9 != '\x04') {\n                    \n        FUN_0018ff20("../../gold/symtab.cc",0xccb,"sized_write_globals");\n      }\n      uVar25 = 0;\n    }" ({ "{") (if_statement "if (cVar9 != '\x04') {\n                    \n        FUN_0018ff20("../../gold/symtab.cc",0xccb,"sized_write_globals");\n      }" (if "if") (parenthesized_expression "(cVar9 != '\x04')" (( "(") (binary_expression "cVar9 != '\x04'" (identifier "cVar9") (!= "!=") (char_literal "'\x04'" (' "'") (escape_sequence "\x04") (' "'"))) () ")")) (compound_statement "{\n                    \n        FUN_0018ff20("../../gold/symtab.cc",0xccb,"sized_write_globals");\n      }" ({ "{") (expression_statement "FUN_0018ff20("../../gold/symtab.cc",0xccb,"sized_write_globals");" (call_expression "FUN_0018ff20("../../gold/symtab.cc",0xccb,"sized_write_globals")" (identifier "FUN_0018ff20") (argument_list "("../../gold/symtab.cc",0xccb,"sized_write_globals")" (( "(") (string_literal ""../../gold/symtab.cc"" (" """) (string_content "../../gold/symtab.cc") (" """)) (, ",") (number_literal "0xccb") (, ",") (string_literal ""sized_write_globals"" (" """) (string_content "sized_write_globals") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar25 = 0;" (assignment_expression "uVar25 = 0" (identifier "uVar25") (= "=") (number_literal "0")) (; ";")) (} "}")))) (if_statement "if (iVar5 != -1) {\n      uVar12 = iVar5 - iVar1;\n      if (uVar2 <= uVar12) {\n                    \n        FUN_0018ff20("../../gold/symtab.cc",0xcd1,"sized_write_globals");\n      }\n      pcVar13 = (code *)FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                                     *(byte *)(lVar20 + 0x38) >> 4,param_2,\n                                     (ulong)(uVar12 * 0x18) + local_98);\n    }" (if "if") (parenthesized_expression "(iVar5 != -1)" (( "(") (binary_expression "iVar5 != -1" (identifier "iVar5") (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n      uVar12 = iVar5 - iVar1;\n      if (uVar2 <= uVar12) {\n                    \n        FUN_0018ff20("../../gold/symtab.cc",0xcd1,"sized_write_globals");\n      }\n      pcVar13 = (code *)FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                                     *(byte *)(lVar20 + 0x38) >> 4,param_2,\n                                     (ulong)(uVar12 * 0x18) + local_98);\n    }" ({ "{") (expression_statement "uVar12 = iVar5 - iVar1;" (assignment_expression "uVar12 = iVar5 - iVar1" (identifier "uVar12") (= "=") (binary_expression "iVar5 - iVar1" (identifier "iVar5") (- "-") (identifier "iVar1"))) (; ";")) (if_statement "if (uVar2 <= uVar12) {\n                    \n        FUN_0018ff20("../../gold/symtab.cc",0xcd1,"sized_write_globals");\n      }" (if "if") (parenthesized_expression "(uVar2 <= uVar12)" (( "(") (binary_expression "uVar2 <= uVar12" (identifier "uVar2") (<= "<=") (identifier "uVar12")) () ")")) (compound_statement "{\n                    \n        FUN_0018ff20("../../gold/symtab.cc",0xcd1,"sized_write_globals");\n      }" ({ "{") (expression_statement "FUN_0018ff20("../../gold/symtab.cc",0xcd1,"sized_write_globals");" (call_expression "FUN_0018ff20("../../gold/symtab.cc",0xcd1,"sized_write_globals")" (identifier "FUN_0018ff20") (argument_list "("../../gold/symtab.cc",0xcd1,"sized_write_globals")" (( "(") (string_literal ""../../gold/symtab.cc"" (" """) (string_content "../../gold/symtab.cc") (" """)) (, ",") (number_literal "0xcd1") (, ",") (string_literal ""sized_write_globals"" (" """) (string_content "sized_write_globals") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "pcVar13 = (code *)FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                                     *(byte *)(lVar20 + 0x38) >> 4,param_2,\n                                     (ulong)(uVar12 * 0x18) + local_98);" (assignment_expression "pcVar13 = (code *)FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                                     *(byte *)(lVar20 + 0x38) >> 4,param_2,\n                                     (ulong)(uVar12 * 0x18) + local_98)" (identifier "pcVar13") (= "=") (cast_expression "(code *)FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                                     *(byte *)(lVar20 + 0x38) >> 4,param_2,\n                                     (ulong)(uVar12 * 0x18) + local_98)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                                     *(byte *)(lVar20 + 0x38) >> 4,param_2,\n                                     (ulong)(uVar12 * 0x18) + local_98)" (identifier "FUN_00289ee0") (argument_list "(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                                     *(byte *)(lVar20 + 0x38) >> 4,param_2,\n                                     (ulong)(uVar12 * 0x18) + local_98)" (( "(") (identifier "param_1") (, ",") (identifier "lVar20") (, ",") (pointer_expression "*(undefined8 *)(lVar20 + 0x40)" (* "*") (cast_expression "(undefined8 *)(lVar20 + 0x40)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar20 + 0x40)" (( "(") (binary_expression "lVar20 + 0x40" (identifier "lVar20") (+ "+") (number_literal "0x40")) () ")")))) (, ",") (identifier "uVar25") (, ",") (binary_expression "*(byte *)(lVar20 + 0x38) >> 4" (pointer_expression "*(byte *)(lVar20 + 0x38)" (* "*") (cast_expression "(byte *)(lVar20 + 0x38)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar20 + 0x38)" (( "(") (binary_expression "lVar20 + 0x38" (identifier "lVar20") (+ "+") (number_literal "0x38")) () ")")))) (>> ">>") (number_literal "4")) (, ",") (identifier "param_2") (, ",") (binary_expression "(ulong)(uVar12 * 0x18) + local_98" (call_expression "(ulong)(uVar12 * 0x18)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar12 * 0x18)" (( "(") (binary_expression "uVar12 * 0x18" (identifier "uVar12") (* "*") (number_literal "0x18")) () ")"))) (+ "+") (identifier "local_98")) () ")"))))) (; ";")) (} "}"))) (if_statement "if (iVar21 != -1) {\n      uVar12 = iVar21 - iVar3;\n      if (uVar4 <= uVar12) {\n                    \n        FUN_0018ff20("../../gold/symtab.cc",0xcdb,"sized_write_globals");\n      }\n      pcVar13 = local_c0 + uVar12 * 0x18;\n      FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                   *(byte *)(lVar20 + 0x38) >> 4,param_3);\n    }" (if "if") (parenthesized_expression "(iVar21 != -1)" (( "(") (binary_expression "iVar21 != -1" (identifier "iVar21") (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n      uVar12 = iVar21 - iVar3;\n      if (uVar4 <= uVar12) {\n                    \n        FUN_0018ff20("../../gold/symtab.cc",0xcdb,"sized_write_globals");\n      }\n      pcVar13 = local_c0 + uVar12 * 0x18;\n      FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                   *(byte *)(lVar20 + 0x38) >> 4,param_3);\n    }" ({ "{") (expression_statement "uVar12 = iVar21 - iVar3;" (assignment_expression "uVar12 = iVar21 - iVar3" (identifier "uVar12") (= "=") (binary_expression "iVar21 - iVar3" (identifier "iVar21") (- "-") (identifier "iVar3"))) (; ";")) (if_statement "if (uVar4 <= uVar12) {\n                    \n        FUN_0018ff20("../../gold/symtab.cc",0xcdb,"sized_write_globals");\n      }" (if "if") (parenthesized_expression "(uVar4 <= uVar12)" (( "(") (binary_expression "uVar4 <= uVar12" (identifier "uVar4") (<= "<=") (identifier "uVar12")) () ")")) (compound_statement "{\n                    \n        FUN_0018ff20("../../gold/symtab.cc",0xcdb,"sized_write_globals");\n      }" ({ "{") (expression_statement "FUN_0018ff20("../../gold/symtab.cc",0xcdb,"sized_write_globals");" (call_expression "FUN_0018ff20("../../gold/symtab.cc",0xcdb,"sized_write_globals")" (identifier "FUN_0018ff20") (argument_list "("../../gold/symtab.cc",0xcdb,"sized_write_globals")" (( "(") (string_literal ""../../gold/symtab.cc"" (" """) (string_content "../../gold/symtab.cc") (" """)) (, ",") (number_literal "0xcdb") (, ",") (string_literal ""sized_write_globals"" (" """) (string_content "sized_write_globals") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "pcVar13 = local_c0 + uVar12 * 0x18;" (assignment_expression "pcVar13 = local_c0 + uVar12 * 0x18" (identifier "pcVar13") (= "=") (binary_expression "local_c0 + uVar12 * 0x18" (identifier "local_c0") (+ "+") (binary_expression "uVar12 * 0x18" (identifier "uVar12") (* "*") (number_literal "0x18")))) (; ";")) (expression_statement "FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                   *(byte *)(lVar20 + 0x38) >> 4,param_3);" (call_expression "FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                   *(byte *)(lVar20 + 0x38) >> 4,param_3)" (identifier "FUN_00289ee0") (argument_list "(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,\n                   *(byte *)(lVar20 + 0x38) >> 4,param_3)" (( "(") (identifier "param_1") (, ",") (identifier "lVar20") (, ",") (pointer_expression "*(undefined8 *)(lVar20 + 0x40)" (* "*") (cast_expression "(undefined8 *)(lVar20 + 0x40)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar20 + 0x40)" (( "(") (binary_expression "lVar20 + 0x40" (identifier "lVar20") (+ "+") (number_literal "0x40")) () ")")))) (, ",") (identifier "uVar25") (, ",") (binary_expression "*(byte *)(lVar20 + 0x38) >> 4" (pointer_expression "*(byte *)(lVar20 + 0x38)" (* "*") (cast_expression "(byte *)(lVar20 + 0x38)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar20 + 0x38)" (( "(") (binary_expression "lVar20 + 0x38" (identifier "lVar20") (+ "+") (number_literal "0x38")) () ")")))) (>> ">>") (number_literal "4")) (, ",") (identifier "param_3") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(long **)(param_1 + 0x2a8) == plVar23) {\n      return pcVar13;\n    }" (if "if") (parenthesized_expression "(*(long **)(param_1 + 0x2a8) == plVar23)" (( "(") (binary_expression "*(long **)(param_1 + 0x2a8) == plVar23" (pointer_expression "*(long **)(param_1 + 0x2a8)" (* "*") (cast_expression "(long **)(param_1 + 0x2a8)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (== "==") (identifier "plVar23")) () ")")) (compound_statement "{\n      return pcVar13;\n    }" ({ "{") (return_statement "return pcVar13;" (return "return") (identifier "pcVar13") (; ";")) (} "}"))) (expression_statement "lVar20 = *plVar23;" (assignment_expression "lVar20 = *plVar23" (identifier "lVar20") (= "=") (pointer_expression "*plVar23" (* "*") (identifier "plVar23"))) (; ";")) (expression_statement "iVar5 = *(int *)(lVar20 + 0x1c);" (assignment_expression "iVar5 = *(int *)(lVar20 + 0x1c)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(lVar20 + 0x1c)" (* "*") (cast_expression "(int *)(lVar20 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar20 + 0x1c)" (( "(") (binary_expression "lVar20 + 0x1c" (identifier "lVar20") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (} "}"))) (labeled_statement "LAB_0028c880:\n                    \n  FUN_0018ff20("../../gold/symtab.h",0x180,"symtab_index");" (statement_identifier "LAB_0028c880") (: ":") (expression_statement "FUN_0018ff20("../../gold/symtab.h",0x180,"symtab_index");" (call_expression "FUN_0018ff20("../../gold/symtab.h",0x180,"symtab_index")" (identifier "FUN_0018ff20") (argument_list "("../../gold/symtab.h",0x180,"symtab_index")" (( "(") (string_literal ""../../gold/symtab.h"" (" """) (string_content "../../gold/symtab.h") (" """)) (, ",") (number_literal "0x180") (, ",") (string_literal ""symtab_index"" (" """) (string_content "symtab_index") (" """)) () ")"))) (; ";"))) (} "}")))

/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */
/* WARNING: Enum "STB": Some values do not have unique names */
/* DWARF original name: sized_write_globals<64, false>
   DWARF original prototype: void sized_write_globals<64,_false>(Symbol_table * this, Stringpool *
   sympool, Stringpool * dynpool, Output_symtab_xindex * symtab_xindex, Output_symtab_xindex *
   dynsym_xindex, Output_file * of) */

void __thiscall
var_9::Symbol_table::sized_write_globals<64,var_51>
          (Symbol_table *this,type_16 *sympool,type_16 *dynpool,
          Output_symtab_xindex *symtab_xindex,Output_symtab_xindex *dynsym_xindex,type_23 *of)

{
  type_1 var_49;
  type_1 var_4;
  type_1 var_53;
  type_1 var_6;
  type_2 *var_2;
  var_1<64> *pSVar6;
  type_2 *var_12;
  type_3 *var_19;
  type_4 *var_40;
  type_5 *pOVar10;
  type_6 *var_34;
  type_7 ppOVar12;
  type_7 ppOVar13;
  type_8 uVar14;
  type_9 var_47;
  type_9 var_20;
  bool bVar17;
  type_1 var_18;
  int var_13;
  type_10 *pOVar20;
  type_11 VVar21;
  type_12 *var_39;
  type_13 extraout_var_00;
  long var_33;
  char *format;
  type_14 *var_38;
  type_13 extraout_var_01;
  type_15 var_35;
  type_1 var_15;
  long var_5;
  type_16 *pSVar28;
  type_17 var_21;
  type_1 var_17;
  type_7 var_54;
  type_18 *var_8;
  type_19 SVar32;
  type_20 var_45;
  type_21 *var_16;
  type_21 *var_52;
  type_22 var_44;
  type_13 extraout_var;
  
  var_2 = parameters->target_;
  if (var_2 == (type_2 *)0x0) {
LAB_0028c91f:
                    /* WARNING: Subroutine does not return */
    var_3("../../gold/parameters.h",0x69,"target");
  }
  var_49 = this->first_global_index_;
  var_4 = this->output_count_;
  var_35 = (type_15)var_4;
  var_5 = this->offset_;
  pSVar28 = dynpool;
  if ((var_4 == 0) || (var_5 == 0)) {
    var_52 = (type_21 *)0x0;
  }
  else {
    if ((var_5 < 0) ||
       (pSVar28 = (type_16 *)((type_15)(var_4 * 0x18) + var_5), of->file_size_ < (long)pSVar28))
    goto LAB_0028c9c8;
    var_52 = of->base_ + var_5;
  }
  var_53 = this->first_dynamic_global_index_;
  var_6 = this->dynamic_count_;
  var_35 = (type_15)var_6;
  var_5 = this->dynamic_offset_;
  if ((var_5 == 0) || (var_6 == 0)) {
    var_16 = (type_21 *)0x0;
  }
  else {
    if ((var_5 < 0) ||
       (pSVar28 = (type_16 *)((type_15)(var_6 * 0x18) + var_5), of->file_size_ < (long)pSVar28)) {
LAB_0028c9c8:
      Output_file::var_7
                ((type_23 *)this,var_35,(size_t)pSVar28,(type_23 *)symtab_xindex);
LAB_0028c9cd:
                    /* WARNING: Subroutine does not return */
      var_3("../../gold/symtab.cc",0xc59,"sized_write_globals");
    }
    var_16 = of->base_ + var_5;
  }
  var_8 = (this->table_)._M_h._M_before_begin._M_nxt;
  if (var_8 != (type_18 *)0x0) {
    var_5 = (long)DAT_003a0b74;
    do {
      pSVar6 = (var_1<64> *)var_8[3]._M_nxt;
      if ((((((pSVar6->super_Symbol).field_0x3a & 7) == 0) &&
           (pOVar20 = (pSVar6->super_Symbol).u1_.output_segment,
           ((type_15)pOVar20->output_lists_[2].
                   super__Vector_base<var_9::type_6*,var_10::var_29<var_9::type_6*>var_11>.
                   _M_impl._M_finish & 0x100000000) != 0)) &&
          ((pSVar6->super_Symbol).u2_.shndx == 0)) &&
         ((type_9)(pSVar6->super_Symbol).field_0x38 >> 4 != 2)) {
        if (parameters->options_ == (type_3 *)0x0) goto LAB_0028c8d7;
        if ((parameters->options_->allow_shlib_undefined_).value == false) {
          var_12 = parameters->target_;
          if (var_12 == (type_2 *)0x0) goto LAB_0028c91f;
          if (var_12->_vptr_Target[7] != type_2::do_is_defined_by_abi) {
            var_13 = (*var_12->_vptr_Target[7])(var_12,pSVar6);
            if ((char)var_13 != '\0') goto LAB_0028be18;
            if (((pSVar6->super_Symbol).field_0x3a & 7) != 0) goto LAB_0028c752;
            pOVar20 = (pSVar6->super_Symbol).u1_.output_segment;
          }
          if (((type_15)pOVar20->output_lists_[2].
                      super__Vector_base<var_9::type_6*,var_10::var_29<var_9::type_6*>var_11>.
                      _M_impl._M_finish & 0x2000000000) == 0) {
            var_13 = *(int *)&pOVar20->output_lists_[5].
                              super__Vector_base<var_9::type_6*,var_10::var_29<var_9::type_6*>var_11>
                              ._M_impl._M_end_of_storage;
            if (var_13 == 0) {
                    /* WARNING: Subroutine does not return */
              var_3("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");
            }
            if (var_13 != 1) {
              var_14((type_24 *)pSVar6);
            }
          }
        }
      }
LAB_0028be18:
      var_15 = (pSVar6->super_Symbol).symtab_index_;
      if (var_15 == 0) goto LAB_0028c880;
      if (var_16 == (type_21 *)0x0) {
        var_17 = 0xffffffff;
        var_18 = var_15;
      }
      else {
        var_17 = (pSVar6->super_Symbol).dynsym_index_;
        if (var_17 == 0) goto LAB_0028c898;
        var_18 = var_15 & var_17;
      }
      if (var_18 != 0xffffffff) {
        var_45 = pSVar6->value_;
        var_21 = (type_17)((type_9)(pSVar6->super_Symbol).field_0x38 >> 4);
        var_19 = parameters->options_;
        if (var_19 == (type_3 *)0x0) goto LAB_0028c8d7;
        var_20 = (pSVar6->super_Symbol).field_0x3a;
        var_47 = var_20 & 7;
        VVar21 = var_45;
        if (((var_19->weak_unresolved_symbols_).value == false) || (var_21 != var_22)) {
          if ((var_21 == var_23) && ((var_19->gnu_unique_).value == false)) {
            var_21 = var_22;
          }
          switch(var_47) {
          case 0:
            if ((var_20 & 7) != 0) goto switchD_0028c5a7_caseD_0;
            var_18 = (pSVar6->super_Symbol).u2_.shndx;
            var_20 = (type_9)(pSVar6->super_Symbol).field_0x3b >> 5;
            if (((var_20 & 1) != 1) && (var_18 != 0xfff1)) {
              bVar17 = type_24::var_24(var_18);
              if (!bVar17) {
                var_25(&var_44,(pSVar6->super_Symbol).name_);
                uVar14 = var_26(var_44._M_dataplus._M_p._4_4_,(type_1)var_44._M_dataplus._M_p);
                format = (char *)var_27("%s: unsupported symbol section 0x%x");
                    /* try { // try from 0028c69d to 0028c6a1 has its CatchHandler @ 0028ca50 */
                var_28(format,uVar14,(type_15)var_18);
                if ((anon_union_16_2_edb7204a_for_basic_string<var_30,var_10::char_traits<var_30>,var_10::var_29<var_30>var_11>var_31
                     *)var_26(var_44._M_dataplus._M_p._4_4_,(type_1)var_44._M_dataplus._M_p) !=
                    &var_44.field_2) {
                  var_32((type_25 *)
                                  var_26(var_44._M_dataplus._M_p._4_4_,
                                           (type_1)var_44._M_dataplus._M_p));
                }
                break;
              }
              if (((pSVar6->super_Symbol).field_0x3a & 7) != 0) {
LAB_0028c752:
                    /* WARNING: Subroutine does not return */
                var_3("../../gold/symtab.h",0xa1,"object");
              }
            }
            pOVar20 = (pSVar6->super_Symbol).u1_.output_segment;
            if (((type_15)pOVar20->output_lists_[2].
                        super__Vector_base<var_9::type_6*,var_10::var_29<var_9::type_6*>var_11>.
                        _M_impl._M_finish & 0x100000000) == 0) {
              var_33 = (*(type_26 *)pOVar20->output_lists_[0].
                                 super__Vector_base<var_9::type_6*,var_10::var_29<var_9::type_6*>var_11>
                                 ._M_impl._M_start[5])(pOVar20);
              if ((var_33 != 0) || (var_18 == 0)) goto switchD_0028bebe_caseD_4;
              if (((var_20 & 1) != 0) ||
                 ((var_18 != 0xfff1 && (bVar17 = type_24::var_24(var_18), !bVar17)))) {
                var_35 = (type_15)var_18;
                var_34 = pOVar20->output_lists_[0].
                          super__Vector_base<var_9::type_6*,var_10::var_29<var_9::type_6*>var_11>
                          ._M_impl._M_start[0x18];
                if (var_34 == (type_6 *)type_14::do_output_section) {
                  ppOVar12 = pOVar20->output_lists_[3].
                             super__Vector_base<var_9::type_6*,var_10::var_29<var_9::type_6*>var_11>
                             ._M_impl._M_finish;
                  if ((type_15)((long)pOVar20->output_lists_[3].
                                    super__Vector_base<var_9::type_6*,var_10::var_29<var_9::type_6*>var_11>
                                    ._M_impl._M_end_of_storage - (long)ppOVar12 >> 3) <= var_35)
                  goto LAB_0028ca08;
                  var_39 = (type_12 *)ppOVar12[var_35];
                }
                else {
                  var_39 = (type_12 *)(*(type_26 *)var_34)(pOVar20,var_35);
                }
                bVar17 = var_36(this,(type_14 *)pOVar20,var_18);
                if (bVar17) {
                  SVar32 = Icf::var_37(this->icf_,(type_14 *)pOVar20,var_18);
                  var_38 = SVar32.first;
                  if (var_38 == (type_14 *)0x0) {
                    /* WARNING: Subroutine does not return */
                    var_3("../../gold/symtab.cc",0xc53,"sized_write_globals");
                  }
                  var_40 = (var_38->super_Object)._vptr_Object[0x18];
                  if (var_40 == type_14::do_output_section) {
                    ppOVar13 = (var_38->output_sections_).
                               super__Vector_base<var_9::type_12*,var_10::var_29<var_9::type_12*>var_11>
                               ._M_impl._M_start;
                    var_35 = SVar32._8_8_ & 0xffffffff;
                    if ((type_15)((long)(var_38->output_sections_).
                                      super__Vector_base<var_9::type_12*,var_10::var_29<var_9::type_12*>var_11>
                                      ._M_impl._M_finish - (long)ppOVar13 >> 3) <= var_35) {
LAB_0028ca08:
                    /* WARNING: Subroutine does not return */
                      var_3("../../gold/object.h",0x5c8,"do_output_section");
                    }
                    var_39 = ppOVar13[var_35];
                  }
                  else {
                    var_13 = (*var_40)(var_38,SVar32._8_8_ & 0xffffffff);
                    var_39 = (type_12 *)var_26(extraout_var_01,var_13);
                  }
                  if (var_39 == (type_12 *)0x0) {
                    /* WARNING: Subroutine does not return */
                    var_3("../../gold/symtab.cc",0xc57,"sized_write_globals");
                  }
                }
                else if (var_39 == (type_12 *)0x0) goto LAB_0028c9cd;
                var_40 = (var_39->super_Output_data)._vptr_Output_data[0xb];
                if (var_40 == type_12::do_out_shndx) {
                  var_18 = var_39->out_shndx_;
                  if (var_18 == 0xffffffff) goto LAB_0028ca38;
                }
                else {
                  var_18 = (*var_40)(var_39);
                }
                if (0xfeff < var_18) {
                  if (var_15 != 0xffffffff) {
                    var_44._M_dataplus._M_p._0_4_ = var_15;
                    var_44._M_dataplus._M_p._4_4_ = var_18;
                    std::
                    vector<std::var_41<var_42,var_43>,var_10::var_29<std::var_41<var_42,var_43>var_11>var_11>
                    ::emplace_back<std::var_41<var_42,var_43>var_11>
                              (&symtab_xindex->entries_,
                               (var_41<var_42,var_43> *)&var_44);
                  }
                  if (var_17 == 0xffffffff) {
                    var_18 = 0xffff;
                  }
                  else {
                    var_44._M_dataplus._M_p._0_4_ = var_17;
                    var_44._M_dataplus._M_p._4_4_ = var_18;
                    std::
                    vector<std::var_41<var_42,var_43>,var_10::var_29<std::var_41<var_42,var_43>var_11>var_11>
                    ::emplace_back<std::var_41<var_42,var_43>var_11>
                              (&dynsym_xindex->entries_,
                               (var_41<var_42,var_43> *)&var_44);
                    var_18 = 0xffff;
                  }
                }
                if (parameters->options_ == (type_3 *)0x0) goto LAB_0028c8d7;
                if ((parameters->options_->relocatable_).value != false) {
                  if (((var_39->super_Output_data).field_0x20 & 1) == 0) goto LAB_0028c9b0;
                  var_45 = var_45 - (var_39->super_Output_data).address_;
                }
              }
            }
            else {
              if (((pSVar6->super_Symbol).field_0x3b & 2) != 0) {
                var_13 = (*var_2->_vptr_Target[5])(var_2,pSVar6);
                VVar21 = var_26(extraout_var,var_13);
              }
              var_18 = 0;
              var_21 = var_46 - (((type_9)(pSVar6->super_Symbol).field_0x3c >> 1 & 1) == 0);
            }
            break;
          case 1:
            goto LAB_0028c1cb;
          case 2:
            goto LAB_0028c143;
          case 3:
switchD_0028bebe_caseD_3:
            var_18 = 0xfff1;
            break;
          case 4:
switchD_0028bebe_caseD_4:
            var_18 = 0;
            break;
          default:
            goto switchD_0028bebe_caseD_5;
          }
        }
        else {
          if (var_47 == 0) {
            if (((pSVar6->super_Symbol).u2_.shndx == 0) &&
               (((type_9)(pSVar6->super_Symbol).field_0x3b >> 5 & 1) != 0)) {
                    /* WARNING: Could not recover jumptable at 0x0028c651. Too many branches */
                    /* WARNING: Treating indirect jump as call */
              (*(type_26 *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();
              return;
            }
                    /* WARNING: Could not recover jumptable at 0x0028c32a. Too many branches */
                    /* WARNING: Treating indirect jump as call */
            (*(type_26 *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();
            return;
          }
          if (var_47 == 4) {
                    /* WARNING: Could not recover jumptable at 0x0028c569. Too many branches */
                    /* WARNING: Treating indirect jump as call */
            (*(type_26 *)(&DAT_003a0b64 + var_5))();
            return;
          }
                    /* WARNING: Could not find normalized switch variable to match jumptable */
          switch(var_47) {
          case 0:
switchD_0028c5a7_caseD_0:
                    /* WARNING: Subroutine does not return */
            var_3("../../gold/symtab.h",0xaa,"shndx");
          case 1:
            var_21 = var_22;
LAB_0028c1cb:
            if ((var_20 & 7) != 1) {
                    /* WARNING: Subroutine does not return */
              var_3("../../gold/symtab.h",0xb5,"output_data");
            }
            pOVar10 = (pSVar6->super_Symbol).u1_.object;
            var_18 = (*pOVar10->_vptr_Object[0xb])(pOVar10);
            if (0xfeff < var_18) {
              if (var_15 != 0xffffffff) {
                var_44._M_dataplus._M_p._0_4_ = var_15;
                var_44._M_dataplus._M_p._4_4_ = var_18;
                std::
                vector<std::var_41<var_42,var_43>,var_10::var_29<std::var_41<var_42,var_43>var_11>var_11>
                ::emplace_back<std::var_41<var_42,var_43>var_11>
                          (&symtab_xindex->entries_,(var_41<var_42,var_43> *)&var_44);
              }
              if (var_17 == 0xffffffff) {
                var_18 = 0xffff;
              }
              else {
                var_44._M_dataplus._M_p._0_4_ = var_17;
                var_44._M_dataplus._M_p._4_4_ = var_18;
                std::
                vector<std::var_41<var_42,var_43>,var_10::var_29<std::var_41<var_42,var_43>var_11>var_11>
                ::emplace_back<std::var_41<var_42,var_43>var_11>
                          (&dynsym_xindex->entries_,(var_41<var_42,var_43> *)&var_44);
                var_18 = 0xffff;
              }
            }
            if (parameters->options_ == (type_3 *)0x0) {
LAB_0028c8d7:
                    /* WARNING: Subroutine does not return */
              var_3("../../gold/parameters.h",0x5c,"options");
            }
            if ((parameters->options_->relocatable_).value != false) {
              var_13 = (*pOVar10->_vptr_Object[9])(pOVar10);
              var_33 = var_26(extraout_var_00,var_13);
              if (var_33 == 0) {
                    /* WARNING: Subroutine does not return */
                var_3("../../gold/symtab.cc",0xc81,"sized_write_globals");
              }
              if ((*(type_9 *)(var_33 + 0x20) & 1) == 0) {
LAB_0028c9b0:
                    /* WARNING: Subroutine does not return */
                var_3("../../gold/output.h",0xc5,"address");
              }
              var_45 = var_45 - *(long *)(var_33 + 8);
            }
            break;
          case 2:
            var_21 = var_22;
LAB_0028c143:
            if ((var_20 & 7) != 2) {
                    /* WARNING: Subroutine does not return */
              var_3("../../gold/symtab.h",200,"output_segment");
            }
            var_39 = type_10::var_48((pSVar6->super_Symbol).u1_.output_segment);
            if (var_39 == (type_12 *)0x0) goto switchD_0028bebe_caseD_3;
            var_40 = (var_39->super_Output_data)._vptr_Output_data[0xb];
            if (var_40 == type_12::do_out_shndx) {
              var_18 = var_39->out_shndx_;
              if (var_18 == 0xffffffff) {
LAB_0028ca38:
                    /* WARNING: Subroutine does not return */
                var_3("../../gold/output.h",0x1043,"do_out_shndx");
              }
            }
            else {
              var_18 = (*var_40)(var_39);
            }
            break;
          case 3:
            var_21 = var_22;
            var_18 = 0xfff1;
            break;
          case 4:
                    /* WARNING: This code block may not be properly labeled as switch case */
            var_21 = var_22;
            var_18 = 0;
            break;
          default:
switchD_0028bebe_caseD_5:
                    /* WARNING: Subroutine does not return */
            var_3("../../gold/symtab.cc",0xc9b,"sized_write_globals");
          }
        }
        if (var_15 != 0xffffffff) {
          var_15 = var_15 - var_49;
          if (var_4 <= var_15) {
                    /* WARNING: Subroutine does not return */
            var_3("../../gold/symtab.cc",0xca1,"sized_write_globals");
          }
          var_50<64,var_51>
                    (this,pSVar6,var_45,var_18,var_21,sympool,var_52 + var_15 * 0x18);
        }
        if (var_17 != 0xffffffff) {
          var_17 = var_17 - var_53;
          if (var_6 <= var_17) {
                    /* WARNING: Subroutine does not return */
            var_3("../../gold/symtab.cc",0xcaa,"sized_write_globals");
          }
          var_50<64,var_51>
                    (this,pSVar6,VVar21,var_18,var_21,dynpool,var_16 + var_17 * 0x18);
          var_12 = parameters->target_;
          if (var_12 == (type_2 *)0x0) goto LAB_0028c91f;
          if (var_12->_vptr_Target[0x27] != type_2::do_adjust_dyn_symbol) {
            (*var_12->_vptr_Target[0x27])(var_12,pSVar6,var_16 + var_17 * 0x18);
          }
        }
      }
      var_8 = var_8->_M_nxt;
    } while (var_8 != (type_18 *)0x0);
  }
  var_54 = (this->target_symbols_).
             super__Vector_base<var_9::type_24*,var_10::var_29<var_9::type_24*>var_11>._M_impl._M_start;
  if (var_54 ==
      (this->target_symbols_).super__Vector_base<var_9::type_24*,var_10::var_29<var_9::type_24*>var_11>.
      _M_impl._M_finish) {
    return;
  }
  pSVar6 = (var_1<64> *)*var_54;
  var_15 = (pSVar6->super_Symbol).symtab_index_;
  while (var_15 != 0) {
    var_54 = var_54 + 1;
    if (var_16 == (type_21 *)0x0) {
      var_17 = 0xffffffff;
    }
    else {
      var_17 = (pSVar6->super_Symbol).dynsym_index_;
      if (var_17 == 0) {
LAB_0028c898:
                    /* WARNING: Subroutine does not return */
        var_3("../../gold/symtab.h",0x19a,"dynsym_index");
      }
    }
    var_20 = (pSVar6->super_Symbol).field_0x3a & 7;
    if (var_20 == 3) {
      var_18 = 0xfff1;
    }
    else {
      if (var_20 != 4) {
                    /* WARNING: Subroutine does not return */
        var_3("../../gold/symtab.cc",0xccb,"sized_write_globals");
      }
      var_18 = 0;
    }
    if (var_15 != 0xffffffff) {
      var_15 = var_15 - var_49;
      if (var_4 <= var_15) {
                    /* WARNING: Subroutine does not return */
        var_3("../../gold/symtab.cc",0xcd1,"sized_write_globals");
      }
      var_50<64,var_51>
                (this,pSVar6,pSVar6->value_,var_18,
                 (type_1)((type_9)(pSVar6->super_Symbol).field_0x38 >> 4),sympool,
                 var_52 + var_15 * 0x18);
    }
    if (var_17 != 0xffffffff) {
      var_17 = var_17 - var_53;
      if (var_6 <= var_17) {
                    /* WARNING: Subroutine does not return */
        var_3("../../gold/symtab.cc",0xcdb,"sized_write_globals");
      }
      var_50<64,var_51>
                (this,pSVar6,pSVar6->value_,var_18,
                 (type_1)((type_9)(pSVar6->super_Symbol).field_0x38 >> 4),dynpool,
                 var_16 + var_17 * 0x18);
    }
    if ((this->target_symbols_).super__Vector_base<var_9::type_24*,var_10::var_29<var_9::type_24*>var_11>.
        _M_impl._M_finish == var_54) {
      return;
    }
    pSVar6 = (var_1<64> *)*var_54;
    var_15 = (pSVar6->super_Symbol).symtab_index_;
  }
LAB_0028c880:
                    /* WARNING: Subroutine does not return */
  var_3("../../gold/symtab.h",0x180,"symtab_index");
}


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

code * MASKED(long param_1,undefined8 param_2,undefined8 param_3,long param_4,long param_5,
                   long param_6)

{
  int iVar1;
  uint uVar2;
  int iVar3;
  uint uVar4;
  int iVar5;
  undefined8 *puVar6;
  byte bVar7;
  byte bVar8;
  char cVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  code *pcVar13;
  code *pcVar14;
  long lVar15;
  undefined8 uVar16;
  long *plVar17;
  long *plVar18;
  ulong uVar19;
  long lVar20;
  int iVar21;
  uint uVar22;
  long *plVar23;
  long *plVar24;
  undefined8 uVar25;
  undefined1 auVar26 [16];
  code *local_d0;
  code *local_c0;
  long local_98;
  uint local_58;
  uint uStack_54;
  undefined1 auStack_48 [24];
  
  plVar23 = *(long **)(PTR_DAT_0045c708 + 0x18);
  if (plVar23 == (long *)0x0) {
LAB_0028c91f:
                    /* WARNING: Subroutine does not return */
    FUN_0018ff20("../../gold/parameters.h",0x69,"target");
  }
  iVar1 = *(int *)(param_1 + 8);
  uVar2 = *(uint *)(param_1 + 0x18);
  local_98 = *(long *)(param_1 + 0x10);
  if ((uVar2 == 0) || (local_98 == 0)) {
    local_98 = 0;
  }
  else {
    if ((local_98 < 0) || (*(long *)(param_6 + 0x10) < (long)((ulong)(uVar2 * 0x18) + local_98)))
    goto LAB_0028c9c8;
    local_98 = local_98 + *(long *)(param_6 + 0x18);
  }
  iVar3 = *(int *)(param_1 + 0x28);
  uVar4 = *(uint *)(param_1 + 0x2c);
  pcVar13 = *(code **)(param_1 + 0x20);
  if ((pcVar13 == (code *)0x0) || (uVar4 == 0)) {
    local_c0 = (code *)0x0;
  }
  else {
    if (((long)pcVar13 < 0) || (*(long *)(param_6 + 0x10) < (long)(pcVar13 + uVar4 * 0x18))) {
LAB_0028c9c8:
      FUN_00284650();
LAB_0028c9cd:
                    /* WARNING: Subroutine does not return */
      FUN_0018ff20("../../gold/symtab.cc",0xc59,"sized_write_globals");
    }
    pcVar13 = pcVar13 + *(long *)(param_6 + 0x18);
    local_c0 = pcVar13;
  }
  plVar24 = *(long **)(param_1 + 0x40);
  if (plVar24 != (long *)0x0) {
    lVar20 = (long)DAT_003a0b74;
    do {
      puVar6 = (undefined8 *)plVar24[3];
      if (((((*(byte *)((long)puVar6 + 0x3a) & 7) == 0) &&
           (lVar15 = puVar6[2], (*(byte *)(lVar15 + 0x3c) & 1) != 0)) && (*(int *)(puVar6 + 3) == 0)
          ) && (*(byte *)(puVar6 + 7) >> 4 != 2)) {
        if (*(long *)(PTR_DAT_0045c708 + 0x10) == 0) goto LAB_0028c8d7;
        if (*(char *)(*(long *)(PTR_DAT_0045c708 + 0x10) + 0x339) == '\0') {
          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);
          if (plVar17 == (long *)0x0) goto LAB_0028c91f;
          if (*(code **)(*plVar17 + 0x38) != FUN_00172b10) {
            cVar9 = (**(code **)(*plVar17 + 0x38))(plVar17,puVar6);
            if (cVar9 != '\0') goto LAB_0028be18;
            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) goto LAB_0028c752;
            lVar15 = puVar6[2];
          }
          if ((*(byte *)(lVar15 + 0x3c) & 0x20) == 0) {
            if (*(int *)(lVar15 + 0x88) == 0) {
                    /* WARNING: Subroutine does not return */
              FUN_0018ff20("../../gold/dynobj.h",0x3e,"has_unknown_needed_entries");
            }
            if (*(int *)(lVar15 + 0x88) != 1) {
              FUN_00187dc0(puVar6);
            }
          }
        }
      }
LAB_0028be18:
      uVar12 = *(uint *)((long)puVar6 + 0x1c);
      if (uVar12 == 0) goto LAB_0028c880;
      if (local_c0 == (code *)0x0) {
        uVar22 = 0xffffffff;
        uVar11 = uVar12;
      }
      else {
        uVar22 = *(uint *)(puVar6 + 4);
        if (uVar22 == 0) goto LAB_0028c898;
        uVar11 = uVar12 & uVar22;
      }
      pcVar13 = (code *)(ulong)uVar11;
      if (uVar11 != 0xffffffff) {
        local_d0 = (code *)puVar6[8];
        uVar11 = (uint)(*(byte *)(puVar6 + 7) >> 4);
        lVar15 = *(long *)(PTR_DAT_0045c708 + 0x10);
        if (lVar15 == 0) goto LAB_0028c8d7;
        bVar8 = *(byte *)((long)puVar6 + 0x3a);
        uVar10 = bVar8 & 7;
        bVar7 = (byte)uVar10;
        pcVar14 = local_d0;
        if ((*(char *)(lVar15 + 0x7739) != '\0') && (uVar11 == 1)) {
          if (bVar7 == 0) {
            if ((*(int *)(puVar6 + 3) == 0) && ((*(byte *)((long)puVar6 + 0x3b) >> 5 & 1) != 0)) {
                    /* WARNING: Could not recover jumptable at 0x0028c651. Too many branches */
                    /* WARNING: Treating indirect jump as call */
              pcVar13 = (code *)(*(code *)((long)&DAT_003a0b8c + (long)DAT_003a0b8c))();
              return pcVar13;
            }
                    /* WARNING: Could not recover jumptable at 0x0028c32a. Too many branches */
                    /* WARNING: Treating indirect jump as call */
            pcVar13 = (code *)(*(code *)((long)&DAT_003a0b50 + (long)DAT_003a0b50))();
            return pcVar13;
          }
          if (bVar7 == 4) {
                    /* WARNING: Could not recover jumptable at 0x0028c569. Too many branches */
                    /* WARNING: Treating indirect jump as call */
            pcVar13 = (code *)(*(code *)(&DAT_003a0b64 + lVar20))();
            return pcVar13;
          }
          if (4 < bVar7) goto LAB_0028c8b0;
          pcVar13 = (code *)((long)&switchD_0028c5a7::switchdataD_003a0b78 +
                            (long)(int)(&switchD_0028c5a7::switchdataD_003a0b78)[uVar10]);
                    /* WARNING: Could not find normalized switch variable to match jumptable */
          switch(uVar10) {
          case 0:
switchD_0028c5a7_caseD_0:
                    /* WARNING: Subroutine does not return */
            FUN_0018ff20("../../gold/symtab.h",0xaa,"shndx");
          case 1:
            uVar11 = 1;
            goto LAB_0028c1cb;
          case 2:
            uVar11 = 1;
            goto LAB_0028c143;
          case 3:
            uVar11 = 1;
            uVar10 = 0xfff1;
            break;
          case 4:
                    /* WARNING: This code block may not be properly labeled as switch case */
            uVar11 = 1;
            uVar10 = 0;
          }
          goto LAB_0028bf30;
        }
        if ((uVar11 == 10) && (*(char *)(lVar15 + 0x2999) == '\0')) {
          uVar11 = 1;
        }
        if (4 < bVar7) {
LAB_0028c8b0:
                    /* WARNING: Subroutine does not return */
          FUN_0018ff20("../../gold/symtab.cc",0xc9b,"sized_write_globals");
        }
        pcVar13 = (code *)((long)&switchD_0028bebe::switchdataD_003a0b3c +
                          (long)(int)(&switchD_0028bebe::switchdataD_003a0b3c)[uVar10]);
        switch(uVar10) {
        case 0:
          if ((bVar8 & 7) != 0) goto switchD_0028c5a7_caseD_0;
          uVar10 = *(uint *)(puVar6 + 3);
          bVar8 = *(byte *)((long)puVar6 + 0x3b) >> 5;
          if (((bVar8 & 1) != 1) && (uVar10 != 0xfff1)) {
            cVar9 = FUN_00284a00(uVar10);
            if (cVar9 == '\0') {
              FUN_00285b30(&local_58,*puVar6);
              uVar25 = CONCAT44(uStack_54,local_58);
              uVar16 = gettext("%s: unsupported symbol section 0x%x");
                    /* try { // try from 0028c69d to 0028c6a1 has its CatchHandler @ 0028ca50 */
              FUN_001878b0(uVar16,uVar25,uVar10);
              pcVar13 = (code *)auStack_48;
              if ((code *)CONCAT44(uStack_54,local_58) != pcVar13) {
                pcVar13 = (code *)FUN_002f1e60();
              }
              break;
            }
            if ((*(byte *)((long)puVar6 + 0x3a) & 7) != 0) {
LAB_0028c752:
                    /* WARNING: Subroutine does not return */
              FUN_0018ff20("../../gold/symtab.h",0xa1,"object");
            }
          }
          plVar17 = (long *)puVar6[2];
          if ((*(byte *)((long)plVar17 + 0x3c) & 1) == 0) {
            pcVar13 = (code *)(**(code **)(*plVar17 + 0x28))(plVar17);
            if ((pcVar13 != (code *)0x0) || (uVar10 == 0)) goto switchD_0028bebe_caseD_4;
            if (((bVar8 & 1) != 0) ||
               ((uVar10 != 0xfff1 && (pcVar13 = (code *)FUN_00284a00(uVar10), (char)pcVar13 == '\0')
                ))) {
              uVar19 = (ulong)uVar10;
              if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {
                if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) goto LAB_0028ca08;
                plVar18 = *(long **)(plVar17[10] + uVar19 * 8);
              }
              else {
                plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))(plVar17,uVar19);
              }
              cVar9 = FUN_00284da0(param_1,plVar17,uVar19);
              if (cVar9 == '\0') {
                if (plVar18 == (long *)0x0) goto LAB_0028c9cd;
              }
              else {
                auVar26 = FUN_00192f30(*(undefined8 *)(param_1 + 0x298),plVar17,uVar10);
                plVar17 = auVar26._0_8_;
                if (plVar17 == (long *)0x0) {
                    /* WARNING: Subroutine does not return */
                  FUN_0018ff20("../../gold/symtab.cc",0xc53,"sized_write_globals");
                }
                if (*(code **)(*plVar17 + 0xc0) == FUN_00173380) {
                  uVar19 = auVar26._8_8_ & 0xffffffff;
                  if ((ulong)(plVar17[0xb] - plVar17[10] >> 3) <= uVar19) {
LAB_0028ca08:
                    /* WARNING: Subroutine does not return */
                    FUN_0018ff20("../../gold/object.h",0x5c8,"do_output_section");
                  }
                  plVar18 = *(long **)(plVar17[10] + uVar19 * 8);
                }
                else {
                  plVar18 = (long *)(**(code **)(*plVar17 + 0xc0))
                                              (plVar17,auVar26._8_8_ & 0xffffffff);
                }
                if (plVar18 == (long *)0x0) {
                    /* WARNING: Subroutine does not return */
                  FUN_0018ff20("../../gold/symtab.cc",0xc57,"sized_write_globals");
                }
              }
              if (*(code **)(*plVar18 + 0x58) == FUN_0019a160) {
                uVar10 = *(uint *)((long)plVar18 + 0x7c);
                if (uVar10 == 0xffffffff) goto LAB_0028ca38;
              }
              else {
                uVar10 = (**(code **)(*plVar18 + 0x58))(plVar18);
              }
              if (0xfeff < uVar10) {
                if (uVar12 != 0xffffffff) {
                  local_58 = uVar12;
                  uStack_54 = uVar10;
                  FUN_001a3810(param_4 + 0x38,&local_58);
                }
                if (uVar22 == 0xffffffff) {
                  uVar10 = 0xffff;
                }
                else {
                  local_58 = uVar22;
                  uStack_54 = uVar10;
                  FUN_001a3810(param_5 + 0x38,&local_58);
                  uVar10 = 0xffff;
                }
              }
              pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);
              if (pcVar13 == (code *)0x0) goto LAB_0028c8d7;
              if (pcVar13[0x5051] != (code)0x0) {
                if ((*(byte *)(plVar18 + 4) & 1) == 0) goto LAB_0028c9b0;
                pcVar13 = local_d0 + -plVar18[1];
                local_d0 = pcVar13;
              }
            }
          }
          else {
            if ((*(byte *)((long)puVar6 + 0x3b) & 2) != 0) {
              pcVar14 = (code *)(**(code **)(*plVar23 + 0x28))(plVar23,puVar6);
            }
            uVar10 = 0;
            uVar11 = *(byte *)((long)puVar6 + 0x3c) >> 1 & 1;
            pcVar13 = (code *)(ulong)uVar11;
            uVar11 = 2 - ((char)uVar11 == '\0');
          }
          break;
        case 1:
LAB_0028c1cb:
          if ((bVar8 & 7) != 1) {
                    /* WARNING: Subroutine does not return */
            FUN_0018ff20("../../gold/symtab.h",0xb5,"output_data");
          }
          plVar17 = (long *)puVar6[2];
          uVar10 = (**(code **)(*plVar17 + 0x58))(plVar17);
          if (0xfeff < uVar10) {
            if (uVar12 != 0xffffffff) {
              local_58 = uVar12;
              uStack_54 = uVar10;
              FUN_001a3810(param_4 + 0x38,&local_58);
            }
            if (uVar22 == 0xffffffff) {
              uVar10 = 0xffff;
            }
            else {
              local_58 = uVar22;
              uStack_54 = uVar10;
              FUN_001a3810(param_5 + 0x38,&local_58);
              uVar10 = 0xffff;
            }
          }
          pcVar13 = *(code **)(PTR_DAT_0045c708 + 0x10);
          if (pcVar13 == (code *)0x0) {
LAB_0028c8d7:
                    /* WARNING: Subroutine does not return */
            FUN_0018ff20("../../gold/parameters.h",0x5c,"options");
          }
          if (pcVar13[0x5051] != (code)0x0) {
            lVar15 = (**(code **)(*plVar17 + 0x48))(plVar17);
            if (lVar15 == 0) {
                    /* WARNING: Subroutine does not return */
              FUN_0018ff20("../../gold/symtab.cc",0xc81,"sized_write_globals");
            }
            if ((*(byte *)(lVar15 + 0x20) & 1) == 0) {
LAB_0028c9b0:
                    /* WARNING: Subroutine does not return */
              FUN_0018ff20("../../gold/output.h",0xc5,"address");
            }
            pcVar13 = *(code **)(lVar15 + 8);
            local_d0 = local_d0 + -(long)pcVar13;
          }
          break;
        case 2:
          uVar10 = bVar8 & 7;
LAB_0028c143:
          if ((char)uVar10 != '\x02') {
                    /* WARNING: Subroutine does not return */
            FUN_0018ff20("../../gold/symtab.h",200,"output_segment");
          }
          pcVar13 = (code *)FUN_0020de20(puVar6[2]);
          if (pcVar13 == (code *)0x0) goto switchD_0028bebe_caseD_3;
          if (*(code **)(*(long *)pcVar13 + 0x58) == FUN_0019a160) {
            uVar10 = *(uint *)(pcVar13 + 0x7c);
            pcVar13 = (code *)(ulong)uVar10;
            if (uVar10 == 0xffffffff) {
LAB_0028ca38:
                    /* WARNING: Subroutine does not return */
              FUN_0018ff20("../../gold/output.h",0x1043,"do_out_shndx");
            }
          }
          else {
            pcVar13 = (code *)(**(code **)(*(long *)pcVar13 + 0x58))(pcVar13);
            uVar10 = (uint)pcVar13;
          }
          break;
        case 3:
switchD_0028bebe_caseD_3:
          uVar10 = 0xfff1;
          break;
        case 4:
switchD_0028bebe_caseD_4:
          uVar10 = 0;
        }
LAB_0028bf30:
        if (uVar12 != 0xffffffff) {
          uVar12 = uVar12 - iVar1;
          if (uVar2 <= uVar12) {
                    /* WARNING: Subroutine does not return */
            FUN_0018ff20("../../gold/symtab.cc",0xca1,"sized_write_globals");
          }
          pcVar13 = (code *)FUN_00289ee0(param_1,puVar6,local_d0,uVar10,uVar11,param_2,
                                         (ulong)(uVar12 * 0x18) + local_98);
        }
        if (uVar22 != 0xffffffff) {
          uVar22 = uVar22 - iVar3;
          if (uVar4 <= uVar22) {
                    /* WARNING: Subroutine does not return */
            FUN_0018ff20("../../gold/symtab.cc",0xcaa,"sized_write_globals");
          }
          FUN_00289ee0(param_1,puVar6,pcVar14,uVar10,uVar11,param_3);
          plVar17 = *(long **)(PTR_DAT_0045c708 + 0x18);
          if (plVar17 == (long *)0x0) goto LAB_0028c91f;
          pcVar13 = *(code **)(*plVar17 + 0x138);
          if (pcVar13 != FUN_00172ba0) {
            pcVar13 = (code *)(*pcVar13)(plVar17,puVar6,local_c0 + uVar22 * 0x18);
          }
        }
      }
      plVar24 = (long *)*plVar24;
    } while (plVar24 != (long *)0x0);
  }
  plVar23 = *(long **)(param_1 + 0x2a0);
  if (plVar23 == *(long **)(param_1 + 0x2a8)) {
    return pcVar13;
  }
  lVar20 = *plVar23;
  iVar5 = *(int *)(lVar20 + 0x1c);
  while (iVar5 != 0) {
    plVar23 = plVar23 + 1;
    if (local_c0 == (code *)0x0) {
      iVar21 = -1;
    }
    else {
      iVar21 = *(int *)(lVar20 + 0x20);
      if (iVar21 == 0) {
LAB_0028c898:
                    /* WARNING: Subroutine does not return */
        FUN_0018ff20("../../gold/symtab.h",0x19a,"dynsym_index");
      }
    }
    uVar12 = *(byte *)(lVar20 + 0x3a) & 7;
    pcVar13 = (code *)(ulong)uVar12;
    cVar9 = (char)uVar12;
    if (cVar9 == '\x03') {
      uVar25 = 0xfff1;
    }
    else {
      if (cVar9 != '\x04') {
                    /* WARNING: Subroutine does not return */
        FUN_0018ff20("../../gold/symtab.cc",0xccb,"sized_write_globals");
      }
      uVar25 = 0;
    }
    if (iVar5 != -1) {
      uVar12 = iVar5 - iVar1;
      if (uVar2 <= uVar12) {
                    /* WARNING: Subroutine does not return */
        FUN_0018ff20("../../gold/symtab.cc",0xcd1,"sized_write_globals");
      }
      pcVar13 = (code *)FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,
                                     *(byte *)(lVar20 + 0x38) >> 4,param_2,
                                     (ulong)(uVar12 * 0x18) + local_98);
    }
    if (iVar21 != -1) {
      uVar12 = iVar21 - iVar3;
      if (uVar4 <= uVar12) {
                    /* WARNING: Subroutine does not return */
        FUN_0018ff20("../../gold/symtab.cc",0xcdb,"sized_write_globals");
      }
      pcVar13 = local_c0 + uVar12 * 0x18;
      FUN_00289ee0(param_1,lVar20,*(undefined8 *)(lVar20 + 0x40),uVar25,
                   *(byte *)(lVar20 + 0x38) >> 4,param_3);
    }
    if (*(long **)(param_1 + 0x2a8) == plVar23) {
      return pcVar13;
    }
    lVar20 = *plVar23;
    iVar5 = *(int *)(lVar20 + 0x1c);
  }
LAB_0028c880:
                    /* WARNING: Subroutine does not return */
  FUN_0018ff20("../../gold/symtab.h",0x180,"symtab_index");
}

