
/* WARNING: Type propagation algorithm not settling */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void write_local_symbols(Sized_relobj_file<64,_false> * this,
   Output_file * of, Stringpool * sympool, Stringpool * dynpool, Output_symtab_xindex *
   symtab_xindex, Output_symtab_xindex * dynsym_xindex, off_t symtab_off) */

void __thiscall
gold::Sized_relobj_file<64,_false>::write_local_symbols
          (Sized_relobj_file<64,_false> *this,Output_file *of,Stringpool *sympool,
          Stringpool *dynpool,Output_symtab_xindex *symtab_xindex,
          Output_symtab_xindex *dynsym_xindex,off_t symtab_off)

{
  Elf_file<64,_false,_gold::Object> *this_00;
  uchar uVar1;
  uint uVar2;
  _func_int_varargs *p_Var3;
  Merged_symbol_value<64> *pMVar4;
  _Hash_node_base *p_Var5;
  pointer ppOVar6;
  Output_section *pOVar7;
  Input_file *pIVar8;
  uint uVar9;
  uint uVar10;
  int iVar11;
  off_t start;
  uchar *puVar12;
  uchar *puVar13;
  long lVar14;
  section_offset_type sVar15;
  _Hash_node_base *p_Var16;
  undefined4 extraout_var;
  undefined4 extraout_var_00;
  Output_file *this_1;
  bool bVar17;
  Output_file *size;
  ulong uVar18;
  Output_file *extraout_RDX;
  Output_file *extraout_RDX_00;
  ushort uVar19;
  ulong uVar20;
  pointer pSVar21;
  uint *puVar22;
  _Hash_node_base *p_Var23;
  uint uVar24;
  uint uVar25;
  Input_file *this_02;
  __bucket_type p_Var27;
  __bucket_type p_Var28;
  uchar *puVar29;
  uchar *puVar30;
  uchar *puVar31;
  Location LVar32;
  uint local_b8;
  uchar *local_b0;
  uchar *local_70;
  uchar *local_68;
  section_size_type strtab_size;
  pair<unsigned_int,_unsigned_int> local_40 [2];
  Xindex *this_01;
  Output_file *pOVar26;
  Output_file *this_03;
  
  if (parameters->options_ == (General_options *)0x0) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
  }
  if ((parameters->options_->strip_all_).value != false) {
    if (this->output_local_dynsym_count_ == 0) {
      return;
    }
    this->output_local_symbol_count_ = 0;
  }
  uVar2 = this->symtab_shndx_;
  if (uVar2 == 0xffffffff) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/object.cc",0xa97,"write_local_symbols");
  }
  if (uVar2 == 0) {
    return;
  }
  this_00 = &this->elf_file_;
  start = elfcpp::Elf_file<64,_false,_gold::Object>::section_header_offset(this_00,uVar2);
  this_02 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.input_file_;
  if (this_02 == (Input_file *)0x0) {
LAB_001a3824:
                    /* WARNING: Subroutine does not return */
    Object::input_file((Object *)this_02);
  }
  puVar12 = File_read::get_view(&this_02->file_,
                                (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.
                                offset_,start,0x40,true,true);
  if (*(int *)(puVar12 + 4) != 2) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/object.cc",0xaa2,"write_local_symbols");
  }
  uVar2 = this->local_symbol_count_;
  if (uVar2 != *(uint *)(puVar12 + 0x2c)) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/object.cc",0xaa4,"write_local_symbols");
  }
  this_02 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.input_file_;
  this_1 = (Output_file *)(ulong)(uVar2 * 0x18);
  if (this_02 == (Input_file *)0x0) goto LAB_001a3824;
  puVar13 = File_read::get_view(&this_02->file_,
                                (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.
                                offset_,*(off_t *)(puVar12 + 0x18),(section_size_type)this_1,true,
                                false);
  uVar24 = *(uint *)(puVar12 + 0x28);
  if (0xfeff < uVar24) {
    elfcpp::Elf_file<64,_false,_gold::Object>::initialize_shnum(this_00);
    uVar24 = uVar24 + (this->elf_file_).large_shndx_offset_;
  }
  p_Var3 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object[0xe];
  if (p_Var3 == do_section_contents) {
    uVar20 = (ulong)uVar24;
    LVar32 = elfcpp::Elf_file<64,_false,_gold::Object>::section_contents(this_00,uVar24);
    size = (Output_file *)LVar32.data_size;
    this_02 = (Input_file *)
              &Sized_relobj_file<64,false>::do_section_contents(unsigned_int,unsigned_long*,bool)::
               empty;
    local_b0 = "";
    strtab_size = (section_size_type)size;
    if (size != (Output_file *)0x0) {
      pIVar8 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.input_file_;
      if (pIVar8 == (Input_file *)0x0) goto LAB_001a3824;
      uVar20 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.offset_;
      local_b0 = File_read::get_view(&pIVar8->file_,uVar20,LVar32.file_offset,
                                     (section_size_type)size,true,false);
      this_1 = size;
      size = extraout_RDX;
    }
  }
  else {
    this_1 = (Output_file *)0x0;
    uVar20 = (ulong)uVar24;
    iVar11 = (*p_Var3)(this,uVar20,&strtab_size);
    local_b0 = (uchar *)CONCAT44(extraout_var_00,iVar11);
    size = extraout_RDX_00;
  }
  uVar24 = this->output_local_symbol_count_ * 0x18;
  pOVar26 = (Output_file *)(ulong)uVar24;
  if (uVar24 == 0) {
    local_70 = (uchar *)0x0;
LAB_001a31f6:
    uVar25 = this->output_local_dynsym_count_ * 0x18;
    this_03 = (Output_file *)(ulong)uVar25;
    if (uVar25 == 0) {
      local_68 = (uchar *)0x0;
    }
    else {
      lVar14 = this->local_dynsym_offset_;
      if ((lVar14 < 0) ||
         (size = (Output_file *)((long)&this_03->name_ + lVar14), of->file_size_ < (long)size))
      goto LAB_001a3859;
      local_68 = of->base_ + lVar14;
    }
    pSVar21 = (this->local_values_).
              super__Vector_base<gold::Symbol_value<64>,_std::allocator<gold::Symbol_value<64>_>_>.
              _M_impl._M_start;
    if ((ulong)uVar2 ==
        ((long)(this->local_values_).
               super__Vector_base<gold::Symbol_value<64>,_std::allocator<gold::Symbol_value<64>_>_>.
               _M_impl._M_finish - (long)pSVar21 >> 3) * -0x5555555555555555) {
      puVar12 = local_68;
      puVar31 = local_70;
      if (uVar2 < 2) {
LAB_001a3680:
        if ((uVar24 != 0) && ((Output_file *)(puVar31 + -(long)local_70) != pOVar26)) {
                    /* WARNING: Subroutine does not return */
          do_gold_unreachable("../../gold/object.cc",0xb0a,"write_local_symbols");
        }
        if ((uVar25 != 0) && ((Output_file *)(puVar12 + -(long)local_68) != this_03)) {
                    /* WARNING: Subroutine does not return */
          do_gold_unreachable("../../gold/object.cc",0xb11,"write_local_symbols");
        }
        return;
      }
      puVar29 = puVar13 + 0x30;
      local_b8 = 1;
      do {
        uVar19 = *(ushort *)(puVar29 + -0x12);
        uVar20 = (ulong)uVar19;
        puVar22 = (uint *)(puVar29 + (long)pSVar21 + (-0x18 - (long)puVar13));
        if (uVar19 < 0xff00) {
LAB_001a350a:
          ppOVar6 = (this->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.
                    super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>
                    ._M_impl._M_start;
          if ((ulong)((long)(this->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.
                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>
                            ._M_impl._M_finish - (long)ppOVar6 >> 3) <= uVar20) {
                    /* WARNING: Subroutine does not return */
            do_gold_unreachable("../../gold/object.cc",0xad5,"write_local_symbols");
          }
          pOVar7 = ppOVar6[uVar20];
          if (pOVar7 != (Output_section *)0x0) {
            p_Var3 = (pOVar7->super_Output_data)._vptr_Output_data[0xb];
            if (p_Var3 == Output_section::do_out_shndx) {
              uVar10 = pOVar7->out_shndx_;
              if (uVar10 == 0xffffffff) {
                    /* WARNING: Subroutine does not return */
                do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");
              }
            }
            else {
              uVar10 = (*p_Var3)();
            }
            uVar19 = (ushort)uVar10;
            uVar9 = *puVar22;
            bVar17 = uVar9 != 0 && uVar9 != 0xfffffffe;
            if (0xfeff < uVar10) {
              if (uVar9 == 0 || uVar9 == 0xfffffffe) goto LAB_001a374c;
              if (uVar9 != 0xffffffff) {
                local_40[0].first = uVar9;
                local_40[0].second = uVar10;
                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_,local_40);
              }
              uVar9 = puVar22[1];
              if (uVar9 == 0) goto LAB_001a3764;
              if (uVar9 == 0xffffffff) {
                uVar9 = *puVar22;
                uVar19 = 0xffff;
                bVar17 = uVar9 != 0 && uVar9 != 0xfffffffe;
              }
              else {
                uVar19 = 0xffff;
                local_40[0].first = uVar9;
                local_40[0].second = uVar10;
                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_,local_40);
                uVar9 = *puVar22;
                bVar17 = uVar9 != 0xfffffffe && uVar9 != 0;
              }
            }
            goto LAB_001a32f9;
          }
        }
        else {
          if (uVar19 == 0xffff) {
            this_01 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_;
            if (this_01 == (Xindex *)0x0) {
              iVar11 = (*(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.
                         _vptr_Object[0x1b])(this);
              this_01 = (Xindex *)CONCAT44(extraout_var,iVar11);
              (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = this_01;
            }
            uVar10 = Xindex::sym_xindex_to_shndx(this_01,(Object *)this,local_b8);
            uVar20 = (ulong)uVar10;
            goto LAB_001a350a;
          }
          uVar9 = *puVar22;
          bVar17 = uVar9 != 0 && uVar9 != 0xfffffffe;
LAB_001a32f9:
          if (!bVar17) {
LAB_001a374c:
                    /* WARNING: Subroutine does not return */
            do_gold_unreachable("../../gold/object.h",0x6fb,"has_output_symtab_entry");
          }
          puVar30 = puVar31;
          if (uVar9 != 0xffffffff) {
            if (strtab_size <= *(uint *)(puVar29 + -0x18)) {
                    /* WARNING: Subroutine does not return */
              do_gold_unreachable("../../gold/object.cc",0xae8,"write_local_symbols");
            }
            sVar15 = Stringpool_template<char>::get_offset
                               (sympool,(char *)(local_b0 + *(uint *)(puVar29 + -0x18)));
            *(int *)puVar31 = (int)sVar15;
            if ((char)*(byte *)((long)puVar22 + 0xb) < '\0') {
              p_Var16 = *(_Hash_node_base **)(puVar22 + 4);
            }
            else {
              if ((*(byte *)((long)puVar22 + 0xb) & 8) == 0) goto LAB_001a377c;
              pMVar4 = *(Merged_symbol_value<64> **)(puVar22 + 4);
              p_Var16 = (_Hash_node_base *)pMVar4->input_value_;
              uVar20 = (pMVar4->output_addresses_)._M_h._M_bucket_count;
              uVar18 = (ulong)p_Var16 % uVar20;
              p_Var28 = (pMVar4->output_addresses_)._M_h._M_buckets[uVar18];
              if (p_Var28 != (__bucket_type)0x0) {
                p_Var23 = p_Var28->_M_nxt[1]._M_nxt;
                p_Var5 = p_Var28->_M_nxt;
                while (p_Var27 = p_Var5, p_Var16 != p_Var23) {
                  p_Var5 = p_Var27->_M_nxt;
                  if ((p_Var5 == (_Hash_node_base *)0x0) ||
                     (p_Var23 = p_Var5[1]._M_nxt, p_Var28 = p_Var27,
                     uVar18 != (ulong)p_Var23 % uVar20)) goto LAB_001a3660;
                }
                if (p_Var28->_M_nxt != (_Hash_node_base *)0x0) {
                  p_Var16 = p_Var28->_M_nxt[2]._M_nxt;
                  goto LAB_001a33ac;
                }
              }
LAB_001a3660:
              p_Var16 = (_Hash_node_base *)
                        Merged_symbol_value<64>::value_from_output_section
                                  (pMVar4,(Relobj *)this,puVar22[2] & 0x7ffffff,(Elf_Addr)p_Var16);
            }
LAB_001a33ac:
            *(_Hash_node_base **)(puVar31 + 8) = p_Var16;
            puVar30 = puVar31 + 0x18;
            *(undefined8 *)(puVar31 + 0x10) = *(undefined8 *)(puVar29 + -8);
            puVar31[4] = puVar29[-0x14];
            uVar1 = puVar29[-0x13];
            *(ushort *)(puVar31 + 6) = uVar19;
            puVar31[5] = uVar1;
          }
          if (puVar22[1] == 0) {
LAB_001a3764:
                    /* WARNING: Subroutine does not return */
            do_gold_unreachable("../../gold/object.h",0x738,"has_output_dynsym_entry");
          }
          puVar31 = puVar30;
          if (puVar22[1] != 0xffffffff) {
            if (local_68 + (long)this_03 <= puVar12) {
                    /* WARNING: Subroutine does not return */
              do_gold_unreachable("../../gold/object.cc",0xaf7,"write_local_symbols");
            }
            if (strtab_size <= *(uint *)(puVar29 + -0x18)) {
                    /* WARNING: Subroutine does not return */
              do_gold_unreachable("../../gold/object.cc",0xafa,"write_local_symbols");
            }
            sVar15 = Stringpool_template<char>::get_offset
                               (dynpool,(char *)(local_b0 + *(uint *)(puVar29 + -0x18)));
            *(int *)puVar12 = (int)sVar15;
            if ((char)*(byte *)((long)puVar22 + 0xb) < '\0') {
              p_Var16 = *(_Hash_node_base **)(puVar22 + 4);
            }
            else {
              if ((*(byte *)((long)puVar22 + 0xb) & 8) == 0) {
LAB_001a377c:
                    /* WARNING: Subroutine does not return */
                do_gold_unreachable("../../gold/object.h",0x6ab,"value");
              }
              pMVar4 = *(Merged_symbol_value<64> **)(puVar22 + 4);
              p_Var16 = (_Hash_node_base *)pMVar4->input_value_;
              uVar20 = (pMVar4->output_addresses_)._M_h._M_bucket_count;
              uVar18 = (ulong)p_Var16 % uVar20;
              p_Var28 = (pMVar4->output_addresses_)._M_h._M_buckets[uVar18];
              if (p_Var28 != (__bucket_type)0x0) {
                p_Var23 = p_Var28->_M_nxt[1]._M_nxt;
                p_Var5 = p_Var28->_M_nxt;
                while (p_Var27 = p_Var5, p_Var23 != p_Var16) {
                  p_Var5 = p_Var27->_M_nxt;
                  if ((p_Var5 == (_Hash_node_base *)0x0) ||
                     (p_Var23 = p_Var5[1]._M_nxt, p_Var28 = p_Var27,
                     uVar18 != (ulong)p_Var23 % uVar20)) goto LAB_001a3608;
                }
                if (p_Var28->_M_nxt != (_Hash_node_base *)0x0) {
                  p_Var16 = p_Var28->_M_nxt[2]._M_nxt;
                  goto LAB_001a349c;
                }
              }
LAB_001a3608:
              p_Var16 = (_Hash_node_base *)
                        Merged_symbol_value<64>::value_from_output_section
                                  (pMVar4,(Relobj *)this,puVar22[2] & 0x7ffffff,(Elf_Addr)p_Var16);
            }
LAB_001a349c:
            *(_Hash_node_base **)(puVar12 + 8) = p_Var16;
            *(undefined8 *)(puVar12 + 0x10) = *(undefined8 *)(puVar29 + -8);
            puVar12[4] = puVar29[-0x14];
            uVar1 = puVar29[-0x13];
            *(ushort *)(puVar12 + 6) = uVar19;
            puVar12[5] = uVar1;
            puVar12 = puVar12 + 0x18;
          }
        }
        local_b8 = local_b8 + 1;
        puVar29 = puVar29 + 0x18;
        if (uVar2 == local_b8) goto LAB_001a3680;
        pSVar21 = (this->local_values_).
                  super__Vector_base<gold::Symbol_value<64>,_std::allocator<gold::Symbol_value<64>_>_>
                  ._M_impl._M_start;
      } while( true );
    }
  }
  else {
    lVar14 = symtab_off + this->local_symbol_offset_;
    this_03 = pOVar26;
    if ((-1 < lVar14) &&
       (size = (Output_file *)((long)&pOVar26->name_ + lVar14), (long)size <= of->file_size_)) {
      local_70 = of->base_ + lVar14;
      goto LAB_001a31f6;
    }
LAB_001a3859:
    Output_file::get_output_view(this_03,uVar20,(size_t)size,this_1);
  }
                    /* WARNING: Subroutine does not return */
  do_gold_unreachable("../../gold/object.cc",0xac5,"write_local_symbols");
}



void FUN_001a3040(long *param_1,long param_2,undefined8 param_3,undefined8 param_4,long param_5,
                 long param_6,long param_7)

{
  undefined1 uVar1;
  uint uVar2;
  ulong *puVar3;
  long *plVar4;
  int iVar5;
  undefined4 uVar6;
  uint uVar7;
  undefined8 uVar8;
  long lVar9;
  long lVar10;
  bool bVar11;
  ulong uVar12;
  ushort uVar13;
  int *piVar14;
  ulong uVar15;
  uint uVar16;
  uint uVar17;
  long *plVar19;
  long *plVar20;
  long lVar21;
  undefined4 *puVar22;
  undefined4 *puVar23;
  undefined4 *puVar24;
  undefined1 auVar25 [16];
  uint local_b8;
  undefined *local_b0;
  undefined4 *local_70;
  undefined4 *local_68;
  ulong local_48;
  int local_40;
  uint local_3c;
  ulong uVar18;
  
  if (*(long *)(PTR_DAT_003be6b0 + 0x10) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");
  }
  if (*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x54f9) != '\0') {
    if ((int)param_1[0x25] == 0) {
      return;
    }
    *(undefined4 *)((long)param_1 + 0x124) = 0;
  }
  if (*(int *)((long)param_1 + 0x11c) == -1) {
                    /* WARNING: Subroutine does not return */
    FUN_0016cdf0("../../gold/object.cc",0xa97,"write_local_symbols");
  }
  if (*(int *)((long)param_1 + 0x11c) == 0) {
    return;
  }
  plVar20 = param_1 + 0x1f;
  uVar8 = FUN_0015e080(plVar20);
  if (param_1[5] == 0) {
LAB_001a3824:
                    /* WARNING: Subroutine does not return */
    FUN_0019a570();
  }
  lVar9 = FUN_0016b970(param_1[5] + 0x28,param_1[6],uVar8,0x40,1,1);
  if (*(int *)(lVar9 + 4) != 2) {
                    /* WARNING: Subroutine does not return */
    FUN_0016cdf0("../../gold/object.cc",0xaa2,"write_local_symbols");
  }
  uVar2 = *(uint *)(param_1 + 0x24);
  if (uVar2 != *(uint *)(lVar9 + 0x2c)) {
                    /* WARNING: Subroutine does not return */
    FUN_0016cdf0("../../gold/object.cc",0xaa4,"write_local_symbols");
  }
  if (param_1[5] == 0) goto LAB_001a3824;
  lVar10 = FUN_0016b970(param_1[5] + 0x28,param_1[6],*(undefined8 *)(lVar9 + 0x18),uVar2 * 0x18,1,0)
  ;
  uVar16 = *(uint *)(lVar9 + 0x28);
  if (0xfeff < uVar16) {
    FUN_0015d960(plVar20);
    uVar16 = uVar16 + (int)param_1[0x22];
  }
  if (*(code **)(*param_1 + 0x70) == FUN_001a2100) {
    auVar25 = FUN_001a2060(plVar20,uVar16);
    local_48 = auVar25._8_8_;
    local_b0 = &DAT_00313646;
    if (local_48 != 0) {
      if (param_1[5] == 0) goto LAB_001a3824;
      local_b0 = (undefined *)FUN_0016b970(param_1[5] + 0x28,param_1[6],auVar25._0_8_,local_48,1,0);
    }
  }
  else {
    local_b0 = (undefined *)(**(code **)(*param_1 + 0x70))(param_1,uVar16,&local_48,0);
  }
  uVar16 = *(int *)((long)param_1 + 0x124) * 0x18;
  if (uVar16 == 0) {
    local_70 = (undefined4 *)0x0;
LAB_001a31f6:
    uVar17 = (int)param_1[0x25] * 0x18;
    uVar18 = (ulong)uVar17;
    if (uVar17 == 0) {
      local_68 = (undefined4 *)0x0;
    }
    else {
      lVar9 = param_1[0x2b];
      if ((lVar9 < 0) || (*(long *)(param_2 + 0x10) < (long)(lVar9 + uVar18))) goto LAB_001a3859;
      local_68 = (undefined4 *)(lVar9 + *(long *)(param_2 + 0x18));
    }
    lVar9 = param_1[0x2c];
    if ((ulong)uVar2 == (param_1[0x2d] - lVar9 >> 3) * -0x5555555555555555) {
      puVar22 = local_68;
      puVar24 = local_70;
      if (uVar2 < 2) {
LAB_001a3680:
        if ((uVar16 != 0) && ((long)puVar24 - (long)local_70 != (ulong)uVar16)) {
                    /* WARNING: Subroutine does not return */
          FUN_0016cdf0("../../gold/object.cc",0xb0a,"write_local_symbols");
        }
        if ((uVar17 != 0) && ((long)puVar22 - (long)local_68 != uVar18)) {
                    /* WARNING: Subroutine does not return */
          FUN_0016cdf0("../../gold/object.cc",0xb11,"write_local_symbols");
        }
        return;
      }
      lVar21 = lVar10 + 0x30;
      local_b8 = 1;
      do {
        uVar13 = *(ushort *)(lVar21 + -0x12);
        uVar12 = (ulong)uVar13;
        piVar14 = (int *)(lVar9 + (-0x18 - lVar10) + lVar21);
        if (uVar13 < 0xff00) {
LAB_001a350a:
          if ((ulong)(param_1[0xb] - param_1[10] >> 3) <= uVar12) {
                    /* WARNING: Subroutine does not return */
            FUN_0016cdf0("../../gold/object.cc",0xad5,"write_local_symbols");
          }
          plVar20 = *(long **)(param_1[10] + uVar12 * 8);
          if (plVar20 != (long *)0x0) {
            if (*(code **)(*plVar20 + 0x58) == FUN_00175f90) {
              uVar7 = *(uint *)((long)plVar20 + 0x7c);
              if (uVar7 == 0xffffffff) {
                    /* WARNING: Subroutine does not return */
                FUN_0016cdf0("../../gold/output.h",0x1043,"do_out_shndx");
              }
            }
            else {
              uVar7 = (**(code **)(*plVar20 + 0x58))();
            }
            uVar13 = (ushort)uVar7;
            iVar5 = *piVar14;
            bVar11 = iVar5 != 0 && iVar5 != -2;
            if (0xfeff < uVar7) {
              if (iVar5 == 0 || iVar5 == -2) goto LAB_001a374c;
              if (iVar5 != -1) {
                local_40 = iVar5;
                local_3c = uVar7;
                FUN_0017ab80(param_5 + 0x38,&local_40);
              }
              iVar5 = piVar14[1];
              if (iVar5 == 0) goto LAB_001a3764;
              if (iVar5 == -1) {
                iVar5 = *piVar14;
                uVar13 = 0xffff;
                bVar11 = iVar5 != 0 && iVar5 != -2;
              }
              else {
                uVar13 = 0xffff;
                local_40 = iVar5;
                local_3c = uVar7;
                FUN_0017ab80(param_6 + 0x38,&local_40);
                iVar5 = *piVar14;
                bVar11 = iVar5 != -2 && iVar5 != 0;
              }
            }
            goto LAB_001a32f9;
          }
        }
        else {
          if (uVar13 == 0xffff) {
            lVar9 = param_1[8];
            if (lVar9 == 0) {
              lVar9 = (**(code **)(*param_1 + 0xd8))(param_1);
              param_1[8] = lVar9;
            }
            uVar7 = FUN_0019a820(lVar9,param_1,local_b8);
            uVar12 = (ulong)uVar7;
            goto LAB_001a350a;
          }
          iVar5 = *piVar14;
          bVar11 = iVar5 != 0 && iVar5 != -2;
LAB_001a32f9:
          if (!bVar11) {
LAB_001a374c:
                    /* WARNING: Subroutine does not return */
            FUN_0016cdf0("../../gold/object.h",0x6fb,"has_output_symtab_entry");
          }
          puVar23 = puVar24;
          if (iVar5 != -1) {
            if (local_48 <= *(uint *)(lVar21 + -0x18)) {
                    /* WARNING: Subroutine does not return */
              FUN_0016cdf0("../../gold/object.cc",0xae8,"write_local_symbols");
            }
            uVar6 = FUN_0021b7b0(param_3,local_b0 + *(uint *)(lVar21 + -0x18));
            *puVar24 = uVar6;
            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {
              uVar8 = *(undefined8 *)(piVar14 + 4);
            }
            else {
              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) goto LAB_001a377c;
              puVar3 = *(ulong **)(piVar14 + 4);
              uVar12 = *puVar3 % puVar3[3];
              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);
              if (plVar20 != (long *)0x0) {
                uVar15 = ((long *)*plVar20)[1];
                plVar4 = (long *)*plVar20;
                while (plVar19 = plVar4, *puVar3 != uVar15) {
                  plVar4 = (long *)*plVar19;
                  if ((plVar4 == (long *)0x0) ||
                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))
                  goto LAB_001a3660;
                }
                if (*plVar20 != 0) {
                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);
                  goto LAB_001a33ac;
                }
              }
LAB_001a3660:
              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);
            }
LAB_001a33ac:
            *(undefined8 *)(puVar24 + 2) = uVar8;
            puVar23 = puVar24 + 6;
            *(undefined8 *)(puVar24 + 4) = *(undefined8 *)(lVar21 + -8);
            *(undefined1 *)(puVar24 + 1) = *(undefined1 *)(lVar21 + -0x14);
            uVar1 = *(undefined1 *)(lVar21 + -0x13);
            *(ushort *)((long)puVar24 + 6) = uVar13;
            *(undefined1 *)((long)puVar24 + 5) = uVar1;
          }
          if (piVar14[1] == 0) {
LAB_001a3764:
                    /* WARNING: Subroutine does not return */
            FUN_0016cdf0("../../gold/object.h",0x738,"has_output_dynsym_entry");
          }
          puVar24 = puVar23;
          if (piVar14[1] != -1) {
            if ((undefined4 *)((long)local_68 + uVar18) <= puVar22) {
                    /* WARNING: Subroutine does not return */
              FUN_0016cdf0("../../gold/object.cc",0xaf7,"write_local_symbols");
            }
            if (local_48 <= *(uint *)(lVar21 + -0x18)) {
                    /* WARNING: Subroutine does not return */
              FUN_0016cdf0("../../gold/object.cc",0xafa,"write_local_symbols");
            }
            uVar6 = FUN_0021b7b0(param_4,local_b0 + *(uint *)(lVar21 + -0x18));
            *puVar22 = uVar6;
            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {
              uVar8 = *(undefined8 *)(piVar14 + 4);
            }
            else {
              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) {
LAB_001a377c:
                    /* WARNING: Subroutine does not return */
                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");
              }
              puVar3 = *(ulong **)(piVar14 + 4);
              uVar12 = *puVar3 % puVar3[3];
              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);
              if (plVar20 != (long *)0x0) {
                uVar15 = ((long *)*plVar20)[1];
                plVar4 = (long *)*plVar20;
                while (plVar19 = plVar4, uVar15 != *puVar3) {
                  plVar4 = (long *)*plVar19;
                  if ((plVar4 == (long *)0x0) ||
                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))
                  goto LAB_001a3608;
                }
                if (*plVar20 != 0) {
                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);
                  goto LAB_001a349c;
                }
              }
LAB_001a3608:
              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);
            }
LAB_001a349c:
            *(undefined8 *)(puVar22 + 2) = uVar8;
            *(undefined8 *)(puVar22 + 4) = *(undefined8 *)(lVar21 + -8);
            *(undefined1 *)(puVar22 + 1) = *(undefined1 *)(lVar21 + -0x14);
            uVar1 = *(undefined1 *)(lVar21 + -0x13);
            *(ushort *)((long)puVar22 + 6) = uVar13;
            *(undefined1 *)((long)puVar22 + 5) = uVar1;
            puVar22 = puVar22 + 6;
          }
        }
        local_b8 = local_b8 + 1;
        lVar21 = lVar21 + 0x18;
        if (uVar2 == local_b8) goto LAB_001a3680;
        lVar9 = param_1[0x2c];
      } while( true );
    }
  }
  else {
    param_7 = param_7 + param_1[0x2a];
    if ((-1 < param_7) && ((long)(param_7 + (ulong)uVar16) <= *(long *)(param_2 + 0x10))) {
      local_70 = (undefined4 *)(param_7 + *(long *)(param_2 + 0x18));
      goto LAB_001a31f6;
    }
LAB_001a3859:
    FUN_0019a5b0();
  }
                    /* WARNING: Subroutine does not return */
  FUN_0016cdf0("../../gold/object.cc",0xac5,"write_local_symbols");
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x88
MOV RAX,qword ptr [0x003be6b0]
MOV qword ptr [RSP + 0x28],RDX
MOV RAX,qword ptr [RAX + 0x10]
MOV qword ptr [RSP + 0x18],RCX
MOV qword ptr [RSP + 0x40],R8
MOV qword ptr [RSP + 0x38],R9
TEST RAX,RAX
JZ 0x001a3876
CMP byte ptr [RAX + 0x54f9],0x0
MOV R14,RDI
MOV RBX,RSI
JZ 0x001a309c
MOV ECX,dword ptr [RDI + 0x128]
TEST ECX,ECX
JZ 0x001a30b0
MOV dword ptr [RDI + 0x124],0x0
MOV ESI,dword ptr [R14 + 0x11c]
CMP ESI,-0x1
JZ 0x001a380c
TEST ESI,ESI
JNZ 0x001a30c8
ADD RSP,0x88
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
LEA R12,[R14 + 0xf8]
MOV RDI,R12
CALL 0x0015e080
MOV RDI,qword ptr [R14 + 0x28]
TEST RDI,RDI
JZ 0x001a3824
MOV RSI,qword ptr [R14 + 0x30]
ADD RDI,0x28
MOV ECX,0x40
MOV RDX,RAX
MOV R9D,0x1
MOV R8D,0x1
CALL 0x0016b970
CMP dword ptr [RAX + 0x4],0x2
MOV R13,RAX
JNZ 0x001a3829
MOV EAX,dword ptr [R14 + 0x120]
MOV dword ptr [RSP + 0x4],EAX
CMP EAX,dword ptr [R13 + 0x2c]
JNZ 0x001a3841
MOV EAX,dword ptr [RSP + 0x4]
MOV RDI,qword ptr [R14 + 0x28]
MOV RDX,qword ptr [R13 + 0x18]
LEA ECX,[RAX + RAX*0x2]
SHL ECX,0x3
TEST RDI,RDI
JZ 0x001a3824
MOV RSI,qword ptr [R14 + 0x30]
ADD RDI,0x28
XOR R9D,R9D
MOV R8D,0x1
CALL 0x0016b970
MOV R13D,dword ptr [R13 + 0x28]
MOV RBP,RAX
CMP R13D,0xfeff
JA 0x001a371f
MOV RAX,qword ptr [R14]
LEA RDX,[0x1a2100]
MOV RAX,qword ptr [RAX + 0x70]
CMP RAX,RDX
JNZ 0x001a3733
MOV RDI,R12
MOV ESI,R13D
CALL 0x001a2060
LEA RDI,[0x313646]
MOV qword ptr [RSP + 0x70],RDX
MOV qword ptr [RSP + 0x8],RDI
TEST RDX,RDX
JNZ 0x001a36d0
MOV EAX,dword ptr [R14 + 0x124]
LEA EAX,[RAX + RAX*0x2]
LEA EDI,[RAX*0x8]
MOV dword ptr [RSP + 0x60],EDI
MOV qword ptr [RSP + 0x68],RDI
TEST EDI,EDI
JZ 0x001a3711
MOV RAX,qword ptr [RSP + 0xc0]
ADD RAX,qword ptr [R14 + 0x150]
JS 0x001a3859
LEA RDX,[RAX + RDI*0x1]
CMP RDX,qword ptr [RBX + 0x10]
JG 0x001a3859
ADD RAX,qword ptr [RBX + 0x18]
MOV qword ptr [RSP + 0x48],RAX
MOV EAX,dword ptr [R14 + 0x128]
LEA EAX,[RAX + RAX*0x2]
LEA EDI,[RAX*0x8]
MOV dword ptr [RSP + 0x64],EDI
MOV qword ptr [RSP + 0x58],RDI
TEST EDI,EDI
JZ 0x001a3703
MOV RAX,qword ptr [R14 + 0x158]
TEST RAX,RAX
JS 0x001a3859
LEA RDX,[RAX + RDI*0x1]
CMP RDX,qword ptr [RBX + 0x10]
JG 0x001a3859
ADD RAX,qword ptr [RBX + 0x18]
MOV qword ptr [RSP + 0x50],RAX
MOV RAX,qword ptr [R14 + 0x160]
MOV RDX,qword ptr [R14 + 0x168]
MOV RSI,-0x5555555555555555
MOV ECX,dword ptr [RSP + 0x4]
SUB RDX,RAX
SAR RDX,0x3
IMUL RDX,RSI
CMP RCX,RDX
JNZ 0x001a385e
CMP dword ptr [RSP + 0x4],0x1
JBE 0x001a3676
MOV RDI,qword ptr [RSP + 0x50]
LEA RBX,[RSP + 0x78]
LEA R12,[RBP + 0x30]
MOV RDX,-0x18
SUB RDX,RBP
MOV dword ptr [RSP],0x1
MOV R15,qword ptr [RSP + 0x48]
MOV RBP,RAX
MOV R13,RDI
ADD RDI,qword ptr [RSP + 0x58]
MOV qword ptr [RSP + 0x10],RDX
MOV qword ptr [RSP + 0x20],RDI
MOV qword ptr [RSP + 0x30],RBX
NOP dword ptr [RAX + RAX*0x1]
MOV RAX,qword ptr [RSP + 0x10]
MOVZX EBX,word ptr [R12 + -0x12]
ADD RAX,R12
ADD RBP,RAX
CMP EBX,0xfeff
JBE 0x001a350a
CMP EBX,0xffff
JZ 0x001a34f0
MOV EAX,dword ptr [RBP]
TEST EAX,EAX
SETNZ DL
CMP EAX,-0x2
SETNZ CL
AND EDX,ECX
TEST DL,DL
JZ 0x001a374c
CMP EAX,-0x1
JZ 0x001a33d6
MOV ESI,dword ptr [R12 + -0x18]
CMP RSI,qword ptr [RSP + 0x70]
JNC 0x001a37f4
MOV RDI,qword ptr [RSP + 0x28]
ADD RSI,qword ptr [RSP + 0x8]
CALL 0x0021b7b0
MOV dword ptr [R15],EAX
MOVZX EAX,byte ptr [RBP + 0xb]
TEST AL,AL
JS 0x001a35b8
TEST AL,0x8
JZ 0x001a377c
MOV RDI,qword ptr [RBP + 0x10]
XOR EDX,EDX
MOV RCX,qword ptr [RDI]
MOV R9,qword ptr [RDI + 0x18]
MOV RAX,RCX
DIV R9
MOV RAX,qword ptr [RDI + 0x10]
MOV R10,qword ptr [RAX + RDX*0x8]
MOV R11,RDX
TEST R10,R10
JZ 0x001a3660
MOV R8,qword ptr [R10]
MOV RSI,qword ptr [R8 + 0x8]
JMP 0x001a3397
MOV RAX,qword ptr [R8]
TEST RAX,RAX
JZ 0x001a3660
MOV RSI,qword ptr [RAX + 0x8]
MOV R10,R8
XOR EDX,EDX
MOV R8,RAX
MOV RAX,RSI
DIV R9
CMP R11,RDX
JNZ 0x001a3660
CMP RCX,RSI
JNZ 0x001a3370
MOV RAX,qword ptr [R10]
TEST RAX,RAX
JZ 0x001a3660
MOV RAX,qword ptr [RAX + 0x10]
MOV qword ptr [R15 + 0x8],RAX
MOV RAX,qword ptr [R12 + -0x8]
ADD R15,0x18
MOV qword ptr [R15 + -0x8],RAX
MOVZX EAX,byte ptr [R12 + -0x14]
MOV byte ptr [R15 + -0x14],AL
MOVZX EAX,byte ptr [R12 + -0x13]
MOV word ptr [R15 + -0x12],BX
MOV byte ptr [R15 + -0x13],AL
MOV EAX,dword ptr [RBP + 0x4]
TEST EAX,EAX
JZ 0x001a3764
CMP EAX,-0x1
JZ 0x001a34c6
CMP R13,qword ptr [RSP + 0x20]
JNC 0x001a37c4
MOV ESI,dword ptr [R12 + -0x18]
CMP RSI,qword ptr [RSP + 0x70]
JNC 0x001a37ac
MOV RDI,qword ptr [RSP + 0x18]
ADD RSI,qword ptr [RSP + 0x8]
CALL 0x0021b7b0
MOV dword ptr [R13],EAX
MOVZX EAX,byte ptr [RBP + 0xb]
TEST AL,AL
JS 0x001a35a8
TEST AL,0x8
JZ 0x001a377c
MOV RDI,qword ptr [RBP + 0x10]
XOR EDX,EDX
MOV RCX,qword ptr [RDI]
MOV R9,qword ptr [RDI + 0x18]
MOV RAX,RCX
DIV R9
MOV RAX,qword ptr [RDI + 0x10]
MOV R10,qword ptr [RAX + RDX*0x8]
MOV R11,RDX
TEST R10,R10
JZ 0x001a3608
MOV R8,qword ptr [R10]
MOV RSI,qword ptr [R8 + 0x8]
JMP 0x001a3487
MOV RAX,qword ptr [R8]
TEST RAX,RAX
JZ 0x001a3608
MOV RSI,qword ptr [RAX + 0x8]
MOV R10,R8
XOR EDX,EDX
MOV R8,RAX
MOV RAX,RSI
DIV R9
CMP R11,RDX
JNZ 0x001a3608
CMP RSI,RCX
JNZ 0x001a3460
MOV RAX,qword ptr [R10]
TEST RAX,RAX
JZ 0x001a3608
MOV RAX,qword ptr [RAX + 0x10]
MOV qword ptr [R13 + 0x8],RAX
MOV RAX,qword ptr [R12 + -0x8]
ADD R13,0x18
MOV qword ptr [R13 + -0x8],RAX
MOVZX EAX,byte ptr [R12 + -0x14]
MOV byte ptr [R13 + -0x14],AL
MOVZX EAX,byte ptr [R12 + -0x13]
MOV word ptr [R13 + -0x12],BX
MOV byte ptr [R13 + -0x13],AL
ADD dword ptr [RSP],0x1
ADD R12,0x18
MOV EAX,dword ptr [RSP]
CMP dword ptr [RSP + 0x4],EAX
JZ 0x001a3680
MOV RBP,qword ptr [R14 + 0x160]
JMP 0x001a32c0
MOV RDI,qword ptr [R14 + 0x40]
TEST RDI,RDI
JZ 0x001a3640
MOV EDX,dword ptr [RSP]
MOV RSI,R14
CALL 0x0019a820
MOV EBX,EAX
MOV RDX,qword ptr [R14 + 0x50]
MOV RAX,qword ptr [R14 + 0x58]
SUB RAX,RDX
SAR RAX,0x3
CMP RBX,RAX
JNC 0x001a3794
MOV RDI,qword ptr [RDX + RBX*0x8]
TEST RDI,RDI
JZ 0x001a34c6
MOV RAX,qword ptr [RDI]
LEA RCX,[0x175f90]
MOV RAX,qword ptr [RAX + 0x58]
CMP RAX,RCX
JNZ 0x001a35c8
MOV EBX,dword ptr [RDI + 0x7c]
CMP EBX,-0x1
JZ 0x001a37dc
MOV EAX,dword ptr [RBP]
TEST EAX,EAX
SETNZ DL
CMP EAX,-0x2
SETNZ CL
AND EDX,ECX
CMP EBX,0xfeff
JBE 0x001a32f9
TEST DL,DL
JZ 0x001a374c
CMP EAX,-0x1
JNZ 0x001a3620
MOV EAX,dword ptr [RBP + 0x4]
TEST EAX,EAX
JZ 0x001a3764
CMP EAX,-0x1
JNZ 0x001a35d0
MOV EAX,dword ptr [RBP]
MOV EBX,0xffff
TEST EAX,EAX
SETNZ DL
CMP EAX,-0x2
SETNZ CL
AND EDX,ECX
JMP 0x001a32f9
MOV RAX,qword ptr [RBP + 0x10]
JMP 0x001a349c
MOV RAX,qword ptr [RBP + 0x10]
JMP 0x001a33ac
CALL RAX
MOV EBX,EAX
JMP 0x001a354e
MOV dword ptr [RSP + 0x78],EAX
MOV RAX,qword ptr [RSP + 0x38]
MOV RSI,qword ptr [RSP + 0x30]
MOV dword ptr [RSP + 0x7c],EBX
MOV EBX,0xffff
LEA RDI,[RAX + 0x38]
CALL 0x0017ab80
MOV EAX,dword ptr [RBP]
CMP EAX,-0x2
SETNZ DL
TEST EAX,EAX
SETNZ CL
AND EDX,ECX
JMP 0x001a32f9
MOV EDX,dword ptr [RBP + 0x8]
MOV RSI,R14
AND EDX,0x7ffffff
CALL 0x001f9e60
JMP 0x001a349c
MOV dword ptr [RSP + 0x78],EAX
MOV RAX,qword ptr [RSP + 0x40]
MOV RSI,qword ptr [RSP + 0x30]
MOV dword ptr [RSP + 0x7c],EBX
LEA RDI,[RAX + 0x38]
CALL 0x0017ab80
JMP 0x001a357b
MOV RAX,qword ptr [R14]
MOV RDI,R14
CALL qword ptr [RAX + 0xd8]
MOV RDI,RAX
MOV qword ptr [R14 + 0x40],RAX
JMP 0x001a34fd
MOV EDX,dword ptr [RBP + 0x8]
MOV RSI,R14
AND EDX,0x7ffffff
CALL 0x001f9e60
JMP 0x001a33ac
MOV R13,qword ptr [RSP + 0x50]
MOV R15,qword ptr [RSP + 0x48]
MOV EDX,dword ptr [RSP + 0x60]
TEST EDX,EDX
JZ 0x001a3698
SUB R15,qword ptr [RSP + 0x48]
CMP R15,qword ptr [RSP + 0x68]
JNZ 0x001a388e
MOV EAX,dword ptr [RSP + 0x64]
TEST EAX,EAX
JZ 0x001a30b0
SUB R13,qword ptr [RSP + 0x50]
CMP R13,qword ptr [RSP + 0x58]
JZ 0x001a30b0
LEA RDX,[0x312a70]
MOV ESI,0xb11
LEA RDI,[0x3122e8]
CALL 0x0016cdf0
MOV RCX,qword ptr [R14 + 0x28]
TEST RCX,RCX
JZ 0x001a3824
MOV RSI,qword ptr [R14 + 0x30]
LEA RDI,[RCX + 0x28]
XOR R9D,R9D
MOV RCX,RDX
MOV R8D,0x1
MOV RDX,RAX
CALL 0x0016b970
MOV qword ptr [RSP + 0x8],RAX
JMP 0x001a31a8
MOV qword ptr [RSP + 0x50],0x0
JMP 0x001a323f
MOV qword ptr [RSP + 0x48],0x0
JMP 0x001a31f6
MOV RDI,R12
CALL 0x0015d960
ADD R13D,dword ptr [R14 + 0x110]
JMP 0x001a316c
LEA RDX,[RSP + 0x70]
XOR ECX,ECX
MOV ESI,R13D
MOV RDI,R14
CALL RAX
MOV qword ptr [RSP + 0x8],RAX
JMP 0x001a31a8
LEA RDX,[0x312a50]
MOV ESI,0x6fb
LEA RDI,[0x307016]
CALL 0x0016cdf0
LEA RDX,[0x312a30]
MOV ESI,0x738
LEA RDI,[0x307016]
CALL 0x0016cdf0
LEA RDX,[0x312c54]
MOV ESI,0x6ab
LEA RDI,[0x307016]
CALL 0x0016cdf0
LEA RDX,[0x312a70]
MOV ESI,0xad5
LEA RDI,[0x3122e8]
CALL 0x0016cdf0
LEA RDX,[0x312a70]
MOV ESI,0xafa
LEA RDI,[0x3122e8]
CALL 0x0016cdf0
LEA RDX,[0x312a70]
MOV ESI,0xaf7
LEA RDI,[0x3122e8]
CALL 0x0016cdf0
LEA RDX,[0x312f48]
MOV ESI,0x1043
LEA RDI,[0x30e9f4]
CALL 0x0016cdf0
LEA RDX,[0x312a70]
MOV ESI,0xae8
LEA RDI,[0x3122e8]
CALL 0x0016cdf0
LEA RDX,[0x312a70]
MOV ESI,0xa97
LEA RDI,[0x3122e8]
CALL 0x0016cdf0
CALL 0x0019a570
LEA RDX,[0x312a70]
MOV ESI,0xaa2
LEA RDI,[0x3122e8]
CALL 0x0016cdf0
LEA RDX,[0x312a70]
MOV ESI,0xaa4
LEA RDI,[0x3122e8]
CALL 0x0016cdf0
CALL 0x0019a5b0
LEA RDX,[0x312a70]
MOV ESI,0xac5
LEA RDI,[0x3122e8]
CALL 0x0016cdf0
LEA RDX,[0x313590]
MOV ESI,0x5c
LEA RDI,[0x30dc70]
CALL 0x0016cdf0
LEA RDX,[0x312a70]
MOV ESI,0xb0a
LEA RDI,[0x3122e8]
CALL 0x0016cdf0
(translation_unit "void FUN_001a3040(long *param_1,long param_2,undefined8 param_3,undefined8 param_4,long param_5,\n                 long param_6,long param_7)\n\n{\n  undefined1 uVar1;\n  uint uVar2;\n  ulong *puVar3;\n  long *plVar4;\n  int iVar5;\n  undefined4 uVar6;\n  uint uVar7;\n  undefined8 uVar8;\n  long lVar9;\n  long lVar10;\n  bool bVar11;\n  ulong uVar12;\n  ushort uVar13;\n  int *piVar14;\n  ulong uVar15;\n  uint uVar16;\n  uint uVar17;\n  long *plVar19;\n  long *plVar20;\n  long lVar21;\n  undefined4 *puVar22;\n  undefined4 *puVar23;\n  undefined4 *puVar24;\n  undefined1 auVar25 [16];\n  uint local_b8;\n  undefined *local_b0;\n  undefined4 *local_70;\n  undefined4 *local_68;\n  ulong local_48;\n  int local_40;\n  uint local_3c;\n  ulong uVar18;\n  \n  if (*(long *)(PTR_DAT_003be6b0 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x54f9) != '\0') {\n    if ((int)param_1[0x25] == 0) {\n      return;\n    }\n    *(undefined4 *)((long)param_1 + 0x124) = 0;\n  }\n  if (*(int *)((long)param_1 + 0x11c) == -1) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/object.cc",0xa97,"write_local_symbols");\n  }\n  if (*(int *)((long)param_1 + 0x11c) == 0) {\n    return;\n  }\n  plVar20 = param_1 + 0x1f;\n  uVar8 = FUN_0015e080(plVar20);\n  if (param_1[5] == 0) {\nLAB_001a3824:\n                    /* WARNING: Subroutine does not return */\n    FUN_0019a570();\n  }\n  lVar9 = FUN_0016b970(param_1[5] + 0x28,param_1[6],uVar8,0x40,1,1);\n  if (*(int *)(lVar9 + 4) != 2) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/object.cc",0xaa2,"write_local_symbols");\n  }\n  uVar2 = *(uint *)(param_1 + 0x24);\n  if (uVar2 != *(uint *)(lVar9 + 0x2c)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/object.cc",0xaa4,"write_local_symbols");\n  }\n  if (param_1[5] == 0) goto LAB_001a3824;\n  lVar10 = FUN_0016b970(param_1[5] + 0x28,param_1[6],*(undefined8 *)(lVar9 + 0x18),uVar2 * 0x18,1,0)\n  ;\n  uVar16 = *(uint *)(lVar9 + 0x28);\n  if (0xfeff < uVar16) {\n    FUN_0015d960(plVar20);\n    uVar16 = uVar16 + (int)param_1[0x22];\n  }\n  if (*(code **)(*param_1 + 0x70) == FUN_001a2100) {\n    auVar25 = FUN_001a2060(plVar20,uVar16);\n    local_48 = auVar25._8_8_;\n    local_b0 = &DAT_00313646;\n    if (local_48 != 0) {\n      if (param_1[5] == 0) goto LAB_001a3824;\n      local_b0 = (undefined *)FUN_0016b970(param_1[5] + 0x28,param_1[6],auVar25._0_8_,local_48,1,0);\n    }\n  }\n  else {\n    local_b0 = (undefined *)(**(code **)(*param_1 + 0x70))(param_1,uVar16,&local_48,0);\n  }\n  uVar16 = *(int *)((long)param_1 + 0x124) * 0x18;\n  if (uVar16 == 0) {\n    local_70 = (undefined4 *)0x0;\nLAB_001a31f6:\n    uVar17 = (int)param_1[0x25] * 0x18;\n    uVar18 = (ulong)uVar17;\n    if (uVar17 == 0) {\n      local_68 = (undefined4 *)0x0;\n    }\n    else {\n      lVar9 = param_1[0x2b];\n      if ((lVar9 < 0) || (*(long *)(param_2 + 0x10) < (long)(lVar9 + uVar18))) goto LAB_001a3859;\n      local_68 = (undefined4 *)(lVar9 + *(long *)(param_2 + 0x18));\n    }\n    lVar9 = param_1[0x2c];\n    if ((ulong)uVar2 == (param_1[0x2d] - lVar9 >> 3) * -0x5555555555555555) {\n      puVar22 = local_68;\n      puVar24 = local_70;\n      if (uVar2 < 2) {\nLAB_001a3680:\n        if ((uVar16 != 0) && ((long)puVar24 - (long)local_70 != (ulong)uVar16)) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/object.cc",0xb0a,"write_local_symbols");\n        }\n        if ((uVar17 != 0) && ((long)puVar22 - (long)local_68 != uVar18)) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/object.cc",0xb11,"write_local_symbols");\n        }\n        return;\n      }\n      lVar21 = lVar10 + 0x30;\n      local_b8 = 1;\n      do {\n        uVar13 = *(ushort *)(lVar21 + -0x12);\n        uVar12 = (ulong)uVar13;\n        piVar14 = (int *)(lVar9 + (-0x18 - lVar10) + lVar21);\n        if (uVar13 < 0xff00) {\nLAB_001a350a:\n          if ((ulong)(param_1[0xb] - param_1[10] >> 3) <= uVar12) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0016cdf0("../../gold/object.cc",0xad5,"write_local_symbols");\n          }\n          plVar20 = *(long **)(param_1[10] + uVar12 * 8);\n          if (plVar20 != (long *)0x0) {\n            if (*(code **)(*plVar20 + 0x58) == FUN_00175f90) {\n              uVar7 = *(uint *)((long)plVar20 + 0x7c);\n              if (uVar7 == 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0016cdf0("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar7 = (**(code **)(*plVar20 + 0x58))();\n            }\n            uVar13 = (ushort)uVar7;\n            iVar5 = *piVar14;\n            bVar11 = iVar5 != 0 && iVar5 != -2;\n            if (0xfeff < uVar7) {\n              if (iVar5 == 0 || iVar5 == -2) goto LAB_001a374c;\n              if (iVar5 != -1) {\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_5 + 0x38,&local_40);\n              }\n              iVar5 = piVar14[1];\n              if (iVar5 == 0) goto LAB_001a3764;\n              if (iVar5 == -1) {\n                iVar5 = *piVar14;\n                uVar13 = 0xffff;\n                bVar11 = iVar5 != 0 && iVar5 != -2;\n              }\n              else {\n                uVar13 = 0xffff;\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_6 + 0x38,&local_40);\n                iVar5 = *piVar14;\n                bVar11 = iVar5 != -2 && iVar5 != 0;\n              }\n            }\n            goto LAB_001a32f9;\n          }\n        }\n        else {\n          if (uVar13 == 0xffff) {\n            lVar9 = param_1[8];\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*param_1 + 0xd8))(param_1);\n              param_1[8] = lVar9;\n            }\n            uVar7 = FUN_0019a820(lVar9,param_1,local_b8);\n            uVar12 = (ulong)uVar7;\n            goto LAB_001a350a;\n          }\n          iVar5 = *piVar14;\n          bVar11 = iVar5 != 0 && iVar5 != -2;\nLAB_001a32f9:\n          if (!bVar11) {\nLAB_001a374c:\n                    /* WARNING: Subroutine does not return */\n            FUN_0016cdf0("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }\n          puVar23 = puVar24;\n          if (iVar5 != -1) {\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0016cdf0("../../gold/object.cc",0xae8,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_3,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar24 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) goto LAB_001a377c;\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a33ac:\n            *(undefined8 *)(puVar24 + 2) = uVar8;\n            puVar23 = puVar24 + 6;\n            *(undefined8 *)(puVar24 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar24 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar24 + 6) = uVar13;\n            *(undefined1 *)((long)puVar24 + 5) = uVar1;\n          }\n          if (piVar14[1] == 0) {\nLAB_001a3764:\n                    /* WARNING: Subroutine does not return */\n            FUN_0016cdf0("../../gold/object.h",0x738,"has_output_dynsym_entry");\n          }\n          puVar24 = puVar23;\n          if (piVar14[1] != -1) {\n            if ((undefined4 *)((long)local_68 + uVar18) <= puVar22) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0016cdf0("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0016cdf0("../../gold/object.cc",0xafa,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_4,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar22 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    /* WARNING: Subroutine does not return */\n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");\n              }\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a349c:\n            *(undefined8 *)(puVar22 + 2) = uVar8;\n            *(undefined8 *)(puVar22 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar22 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar22 + 6) = uVar13;\n            *(undefined1 *)((long)puVar22 + 5) = uVar1;\n            puVar22 = puVar22 + 6;\n          }\n        }\n        local_b8 = local_b8 + 1;\n        lVar21 = lVar21 + 0x18;\n        if (uVar2 == local_b8) goto LAB_001a3680;\n        lVar9 = param_1[0x2c];\n      } while( true );\n    }\n  }\n  else {\n    param_7 = param_7 + param_1[0x2a];\n    if ((-1 < param_7) && ((long)(param_7 + (ulong)uVar16) <= *(long *)(param_2 + 0x10))) {\n      local_70 = (undefined4 *)(param_7 + *(long *)(param_2 + 0x18));\n      goto LAB_001a31f6;\n    }\nLAB_001a3859:\n    FUN_0019a5b0();\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0016cdf0("../../gold/object.cc",0xac5,"write_local_symbols");\n}\n\n" (function_definition "void FUN_001a3040(long *param_1,long param_2,undefined8 param_3,undefined8 param_4,long param_5,\n                 long param_6,long param_7)\n\n{\n  undefined1 uVar1;\n  uint uVar2;\n  ulong *puVar3;\n  long *plVar4;\n  int iVar5;\n  undefined4 uVar6;\n  uint uVar7;\n  undefined8 uVar8;\n  long lVar9;\n  long lVar10;\n  bool bVar11;\n  ulong uVar12;\n  ushort uVar13;\n  int *piVar14;\n  ulong uVar15;\n  uint uVar16;\n  uint uVar17;\n  long *plVar19;\n  long *plVar20;\n  long lVar21;\n  undefined4 *puVar22;\n  undefined4 *puVar23;\n  undefined4 *puVar24;\n  undefined1 auVar25 [16];\n  uint local_b8;\n  undefined *local_b0;\n  undefined4 *local_70;\n  undefined4 *local_68;\n  ulong local_48;\n  int local_40;\n  uint local_3c;\n  ulong uVar18;\n  \n  if (*(long *)(PTR_DAT_003be6b0 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x54f9) != '\0') {\n    if ((int)param_1[0x25] == 0) {\n      return;\n    }\n    *(undefined4 *)((long)param_1 + 0x124) = 0;\n  }\n  if (*(int *)((long)param_1 + 0x11c) == -1) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/object.cc",0xa97,"write_local_symbols");\n  }\n  if (*(int *)((long)param_1 + 0x11c) == 0) {\n    return;\n  }\n  plVar20 = param_1 + 0x1f;\n  uVar8 = FUN_0015e080(plVar20);\n  if (param_1[5] == 0) {\nLAB_001a3824:\n                    /* WARNING: Subroutine does not return */\n    FUN_0019a570();\n  }\n  lVar9 = FUN_0016b970(param_1[5] + 0x28,param_1[6],uVar8,0x40,1,1);\n  if (*(int *)(lVar9 + 4) != 2) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/object.cc",0xaa2,"write_local_symbols");\n  }\n  uVar2 = *(uint *)(param_1 + 0x24);\n  if (uVar2 != *(uint *)(lVar9 + 0x2c)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/object.cc",0xaa4,"write_local_symbols");\n  }\n  if (param_1[5] == 0) goto LAB_001a3824;\n  lVar10 = FUN_0016b970(param_1[5] + 0x28,param_1[6],*(undefined8 *)(lVar9 + 0x18),uVar2 * 0x18,1,0)\n  ;\n  uVar16 = *(uint *)(lVar9 + 0x28);\n  if (0xfeff < uVar16) {\n    FUN_0015d960(plVar20);\n    uVar16 = uVar16 + (int)param_1[0x22];\n  }\n  if (*(code **)(*param_1 + 0x70) == FUN_001a2100) {\n    auVar25 = FUN_001a2060(plVar20,uVar16);\n    local_48 = auVar25._8_8_;\n    local_b0 = &DAT_00313646;\n    if (local_48 != 0) {\n      if (param_1[5] == 0) goto LAB_001a3824;\n      local_b0 = (undefined *)FUN_0016b970(param_1[5] + 0x28,param_1[6],auVar25._0_8_,local_48,1,0);\n    }\n  }\n  else {\n    local_b0 = (undefined *)(**(code **)(*param_1 + 0x70))(param_1,uVar16,&local_48,0);\n  }\n  uVar16 = *(int *)((long)param_1 + 0x124) * 0x18;\n  if (uVar16 == 0) {\n    local_70 = (undefined4 *)0x0;\nLAB_001a31f6:\n    uVar17 = (int)param_1[0x25] * 0x18;\n    uVar18 = (ulong)uVar17;\n    if (uVar17 == 0) {\n      local_68 = (undefined4 *)0x0;\n    }\n    else {\n      lVar9 = param_1[0x2b];\n      if ((lVar9 < 0) || (*(long *)(param_2 + 0x10) < (long)(lVar9 + uVar18))) goto LAB_001a3859;\n      local_68 = (undefined4 *)(lVar9 + *(long *)(param_2 + 0x18));\n    }\n    lVar9 = param_1[0x2c];\n    if ((ulong)uVar2 == (param_1[0x2d] - lVar9 >> 3) * -0x5555555555555555) {\n      puVar22 = local_68;\n      puVar24 = local_70;\n      if (uVar2 < 2) {\nLAB_001a3680:\n        if ((uVar16 != 0) && ((long)puVar24 - (long)local_70 != (ulong)uVar16)) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/object.cc",0xb0a,"write_local_symbols");\n        }\n        if ((uVar17 != 0) && ((long)puVar22 - (long)local_68 != uVar18)) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/object.cc",0xb11,"write_local_symbols");\n        }\n        return;\n      }\n      lVar21 = lVar10 + 0x30;\n      local_b8 = 1;\n      do {\n        uVar13 = *(ushort *)(lVar21 + -0x12);\n        uVar12 = (ulong)uVar13;\n        piVar14 = (int *)(lVar9 + (-0x18 - lVar10) + lVar21);\n        if (uVar13 < 0xff00) {\nLAB_001a350a:\n          if ((ulong)(param_1[0xb] - param_1[10] >> 3) <= uVar12) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0016cdf0("../../gold/object.cc",0xad5,"write_local_symbols");\n          }\n          plVar20 = *(long **)(param_1[10] + uVar12 * 8);\n          if (plVar20 != (long *)0x0) {\n            if (*(code **)(*plVar20 + 0x58) == FUN_00175f90) {\n              uVar7 = *(uint *)((long)plVar20 + 0x7c);\n              if (uVar7 == 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0016cdf0("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar7 = (**(code **)(*plVar20 + 0x58))();\n            }\n            uVar13 = (ushort)uVar7;\n            iVar5 = *piVar14;\n            bVar11 = iVar5 != 0 && iVar5 != -2;\n            if (0xfeff < uVar7) {\n              if (iVar5 == 0 || iVar5 == -2) goto LAB_001a374c;\n              if (iVar5 != -1) {\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_5 + 0x38,&local_40);\n              }\n              iVar5 = piVar14[1];\n              if (iVar5 == 0) goto LAB_001a3764;\n              if (iVar5 == -1) {\n                iVar5 = *piVar14;\n                uVar13 = 0xffff;\n                bVar11 = iVar5 != 0 && iVar5 != -2;\n              }\n              else {\n                uVar13 = 0xffff;\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_6 + 0x38,&local_40);\n                iVar5 = *piVar14;\n                bVar11 = iVar5 != -2 && iVar5 != 0;\n              }\n            }\n            goto LAB_001a32f9;\n          }\n        }\n        else {\n          if (uVar13 == 0xffff) {\n            lVar9 = param_1[8];\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*param_1 + 0xd8))(param_1);\n              param_1[8] = lVar9;\n            }\n            uVar7 = FUN_0019a820(lVar9,param_1,local_b8);\n            uVar12 = (ulong)uVar7;\n            goto LAB_001a350a;\n          }\n          iVar5 = *piVar14;\n          bVar11 = iVar5 != 0 && iVar5 != -2;\nLAB_001a32f9:\n          if (!bVar11) {\nLAB_001a374c:\n                    /* WARNING: Subroutine does not return */\n            FUN_0016cdf0("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }\n          puVar23 = puVar24;\n          if (iVar5 != -1) {\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0016cdf0("../../gold/object.cc",0xae8,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_3,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar24 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) goto LAB_001a377c;\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a33ac:\n            *(undefined8 *)(puVar24 + 2) = uVar8;\n            puVar23 = puVar24 + 6;\n            *(undefined8 *)(puVar24 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar24 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar24 + 6) = uVar13;\n            *(undefined1 *)((long)puVar24 + 5) = uVar1;\n          }\n          if (piVar14[1] == 0) {\nLAB_001a3764:\n                    /* WARNING: Subroutine does not return */\n            FUN_0016cdf0("../../gold/object.h",0x738,"has_output_dynsym_entry");\n          }\n          puVar24 = puVar23;\n          if (piVar14[1] != -1) {\n            if ((undefined4 *)((long)local_68 + uVar18) <= puVar22) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0016cdf0("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0016cdf0("../../gold/object.cc",0xafa,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_4,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar22 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    /* WARNING: Subroutine does not return */\n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");\n              }\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a349c:\n            *(undefined8 *)(puVar22 + 2) = uVar8;\n            *(undefined8 *)(puVar22 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar22 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar22 + 6) = uVar13;\n            *(undefined1 *)((long)puVar22 + 5) = uVar1;\n            puVar22 = puVar22 + 6;\n          }\n        }\n        local_b8 = local_b8 + 1;\n        lVar21 = lVar21 + 0x18;\n        if (uVar2 == local_b8) goto LAB_001a3680;\n        lVar9 = param_1[0x2c];\n      } while( true );\n    }\n  }\n  else {\n    param_7 = param_7 + param_1[0x2a];\n    if ((-1 < param_7) && ((long)(param_7 + (ulong)uVar16) <= *(long *)(param_2 + 0x10))) {\n      local_70 = (undefined4 *)(param_7 + *(long *)(param_2 + 0x18));\n      goto LAB_001a31f6;\n    }\nLAB_001a3859:\n    FUN_0019a5b0();\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0016cdf0("../../gold/object.cc",0xac5,"write_local_symbols");\n}" primitive_type (function_declarator "FUN_001a3040(long *param_1,long param_2,undefined8 param_3,undefined8 param_4,long param_5,\n                 long param_6,long param_7)" identifier (parameter_list "(long *param_1,long param_2,undefined8 param_3,undefined8 param_4,long param_5,\n                 long param_6,long param_7)" ( (parameter_declaration "long *param_1" (sized_type_specifier "long" long) (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_3" type_identifier identifier) , (parameter_declaration "undefined8 param_4" type_identifier identifier) , (parameter_declaration "long param_5" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_6" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_7" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  undefined1 uVar1;\n  uint uVar2;\n  ulong *puVar3;\n  long *plVar4;\n  int iVar5;\n  undefined4 uVar6;\n  uint uVar7;\n  undefined8 uVar8;\n  long lVar9;\n  long lVar10;\n  bool bVar11;\n  ulong uVar12;\n  ushort uVar13;\n  int *piVar14;\n  ulong uVar15;\n  uint uVar16;\n  uint uVar17;\n  long *plVar19;\n  long *plVar20;\n  long lVar21;\n  undefined4 *puVar22;\n  undefined4 *puVar23;\n  undefined4 *puVar24;\n  undefined1 auVar25 [16];\n  uint local_b8;\n  undefined *local_b0;\n  undefined4 *local_70;\n  undefined4 *local_68;\n  ulong local_48;\n  int local_40;\n  uint local_3c;\n  ulong uVar18;\n  \n  if (*(long *)(PTR_DAT_003be6b0 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x54f9) != '\0') {\n    if ((int)param_1[0x25] == 0) {\n      return;\n    }\n    *(undefined4 *)((long)param_1 + 0x124) = 0;\n  }\n  if (*(int *)((long)param_1 + 0x11c) == -1) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/object.cc",0xa97,"write_local_symbols");\n  }\n  if (*(int *)((long)param_1 + 0x11c) == 0) {\n    return;\n  }\n  plVar20 = param_1 + 0x1f;\n  uVar8 = FUN_0015e080(plVar20);\n  if (param_1[5] == 0) {\nLAB_001a3824:\n                    /* WARNING: Subroutine does not return */\n    FUN_0019a570();\n  }\n  lVar9 = FUN_0016b970(param_1[5] + 0x28,param_1[6],uVar8,0x40,1,1);\n  if (*(int *)(lVar9 + 4) != 2) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/object.cc",0xaa2,"write_local_symbols");\n  }\n  uVar2 = *(uint *)(param_1 + 0x24);\n  if (uVar2 != *(uint *)(lVar9 + 0x2c)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/object.cc",0xaa4,"write_local_symbols");\n  }\n  if (param_1[5] == 0) goto LAB_001a3824;\n  lVar10 = FUN_0016b970(param_1[5] + 0x28,param_1[6],*(undefined8 *)(lVar9 + 0x18),uVar2 * 0x18,1,0)\n  ;\n  uVar16 = *(uint *)(lVar9 + 0x28);\n  if (0xfeff < uVar16) {\n    FUN_0015d960(plVar20);\n    uVar16 = uVar16 + (int)param_1[0x22];\n  }\n  if (*(code **)(*param_1 + 0x70) == FUN_001a2100) {\n    auVar25 = FUN_001a2060(plVar20,uVar16);\n    local_48 = auVar25._8_8_;\n    local_b0 = &DAT_00313646;\n    if (local_48 != 0) {\n      if (param_1[5] == 0) goto LAB_001a3824;\n      local_b0 = (undefined *)FUN_0016b970(param_1[5] + 0x28,param_1[6],auVar25._0_8_,local_48,1,0);\n    }\n  }\n  else {\n    local_b0 = (undefined *)(**(code **)(*param_1 + 0x70))(param_1,uVar16,&local_48,0);\n  }\n  uVar16 = *(int *)((long)param_1 + 0x124) * 0x18;\n  if (uVar16 == 0) {\n    local_70 = (undefined4 *)0x0;\nLAB_001a31f6:\n    uVar17 = (int)param_1[0x25] * 0x18;\n    uVar18 = (ulong)uVar17;\n    if (uVar17 == 0) {\n      local_68 = (undefined4 *)0x0;\n    }\n    else {\n      lVar9 = param_1[0x2b];\n      if ((lVar9 < 0) || (*(long *)(param_2 + 0x10) < (long)(lVar9 + uVar18))) goto LAB_001a3859;\n      local_68 = (undefined4 *)(lVar9 + *(long *)(param_2 + 0x18));\n    }\n    lVar9 = param_1[0x2c];\n    if ((ulong)uVar2 == (param_1[0x2d] - lVar9 >> 3) * -0x5555555555555555) {\n      puVar22 = local_68;\n      puVar24 = local_70;\n      if (uVar2 < 2) {\nLAB_001a3680:\n        if ((uVar16 != 0) && ((long)puVar24 - (long)local_70 != (ulong)uVar16)) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/object.cc",0xb0a,"write_local_symbols");\n        }\n        if ((uVar17 != 0) && ((long)puVar22 - (long)local_68 != uVar18)) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/object.cc",0xb11,"write_local_symbols");\n        }\n        return;\n      }\n      lVar21 = lVar10 + 0x30;\n      local_b8 = 1;\n      do {\n        uVar13 = *(ushort *)(lVar21 + -0x12);\n        uVar12 = (ulong)uVar13;\n        piVar14 = (int *)(lVar9 + (-0x18 - lVar10) + lVar21);\n        if (uVar13 < 0xff00) {\nLAB_001a350a:\n          if ((ulong)(param_1[0xb] - param_1[10] >> 3) <= uVar12) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0016cdf0("../../gold/object.cc",0xad5,"write_local_symbols");\n          }\n          plVar20 = *(long **)(param_1[10] + uVar12 * 8);\n          if (plVar20 != (long *)0x0) {\n            if (*(code **)(*plVar20 + 0x58) == FUN_00175f90) {\n              uVar7 = *(uint *)((long)plVar20 + 0x7c);\n              if (uVar7 == 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0016cdf0("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar7 = (**(code **)(*plVar20 + 0x58))();\n            }\n            uVar13 = (ushort)uVar7;\n            iVar5 = *piVar14;\n            bVar11 = iVar5 != 0 && iVar5 != -2;\n            if (0xfeff < uVar7) {\n              if (iVar5 == 0 || iVar5 == -2) goto LAB_001a374c;\n              if (iVar5 != -1) {\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_5 + 0x38,&local_40);\n              }\n              iVar5 = piVar14[1];\n              if (iVar5 == 0) goto LAB_001a3764;\n              if (iVar5 == -1) {\n                iVar5 = *piVar14;\n                uVar13 = 0xffff;\n                bVar11 = iVar5 != 0 && iVar5 != -2;\n              }\n              else {\n                uVar13 = 0xffff;\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_6 + 0x38,&local_40);\n                iVar5 = *piVar14;\n                bVar11 = iVar5 != -2 && iVar5 != 0;\n              }\n            }\n            goto LAB_001a32f9;\n          }\n        }\n        else {\n          if (uVar13 == 0xffff) {\n            lVar9 = param_1[8];\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*param_1 + 0xd8))(param_1);\n              param_1[8] = lVar9;\n            }\n            uVar7 = FUN_0019a820(lVar9,param_1,local_b8);\n            uVar12 = (ulong)uVar7;\n            goto LAB_001a350a;\n          }\n          iVar5 = *piVar14;\n          bVar11 = iVar5 != 0 && iVar5 != -2;\nLAB_001a32f9:\n          if (!bVar11) {\nLAB_001a374c:\n                    /* WARNING: Subroutine does not return */\n            FUN_0016cdf0("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }\n          puVar23 = puVar24;\n          if (iVar5 != -1) {\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0016cdf0("../../gold/object.cc",0xae8,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_3,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar24 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) goto LAB_001a377c;\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a33ac:\n            *(undefined8 *)(puVar24 + 2) = uVar8;\n            puVar23 = puVar24 + 6;\n            *(undefined8 *)(puVar24 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar24 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar24 + 6) = uVar13;\n            *(undefined1 *)((long)puVar24 + 5) = uVar1;\n          }\n          if (piVar14[1] == 0) {\nLAB_001a3764:\n                    /* WARNING: Subroutine does not return */\n            FUN_0016cdf0("../../gold/object.h",0x738,"has_output_dynsym_entry");\n          }\n          puVar24 = puVar23;\n          if (piVar14[1] != -1) {\n            if ((undefined4 *)((long)local_68 + uVar18) <= puVar22) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0016cdf0("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0016cdf0("../../gold/object.cc",0xafa,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_4,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar22 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    /* WARNING: Subroutine does not return */\n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");\n              }\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a349c:\n            *(undefined8 *)(puVar22 + 2) = uVar8;\n            *(undefined8 *)(puVar22 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar22 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar22 + 6) = uVar13;\n            *(undefined1 *)((long)puVar22 + 5) = uVar1;\n            puVar22 = puVar22 + 6;\n          }\n        }\n        local_b8 = local_b8 + 1;\n        lVar21 = lVar21 + 0x18;\n        if (uVar2 == local_b8) goto LAB_001a3680;\n        lVar9 = param_1[0x2c];\n      } while( true );\n    }\n  }\n  else {\n    param_7 = param_7 + param_1[0x2a];\n    if ((-1 < param_7) && ((long)(param_7 + (ulong)uVar16) <= *(long *)(param_2 + 0x10))) {\n      local_70 = (undefined4 *)(param_7 + *(long *)(param_2 + 0x18));\n      goto LAB_001a31f6;\n    }\nLAB_001a3859:\n    FUN_0019a5b0();\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0016cdf0("../../gold/object.cc",0xac5,"write_local_symbols");\n}" { (declaration "undefined1 uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "ulong *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "long *plVar4;" (sized_type_specifier "long" long) (pointer_declarator "*plVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "undefined8 uVar8;" type_identifier identifier ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (declaration "bool bVar11;" primitive_type identifier ;) (declaration "ulong uVar12;" type_identifier identifier ;) (declaration "ushort uVar13;" type_identifier identifier ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (declaration "ulong uVar15;" type_identifier identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "long *plVar19;" (sized_type_specifier "long" long) (pointer_declarator "*plVar19" * identifier) ;) (declaration "long *plVar20;" (sized_type_specifier "long" long) (pointer_declarator "*plVar20" * identifier) ;) (declaration "long lVar21;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined4 *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "undefined4 *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "undefined4 *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "undefined1 auVar25 [16];" type_identifier (array_declarator "auVar25 [16]" identifier [ number_literal ]) ;) (declaration "uint local_b8;" type_identifier identifier ;) (declaration "undefined *local_b0;" type_identifier (pointer_declarator "*local_b0" * identifier) ;) (declaration "undefined4 *local_70;" type_identifier (pointer_declarator "*local_70" * identifier) ;) (declaration "undefined4 *local_68;" type_identifier (pointer_declarator "*local_68" * identifier) ;) (declaration "ulong local_48;" type_identifier identifier ;) (declaration "int local_40;" primitive_type identifier ;) (declaration "uint local_3c;" type_identifier identifier ;) (declaration "ulong uVar18;" type_identifier identifier ;) (if_statement "if (*(long *)(PTR_DAT_003be6b0 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");\n  }" if (parenthesized_expression "(*(long *)(PTR_DAT_003be6b0 + 0x10) == 0)" ( (binary_expression "*(long *)(PTR_DAT_003be6b0 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_003be6b0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_003be6b0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003be6b0 + 0x10)" ( (binary_expression "PTR_DAT_003be6b0 + 0x10" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");\n  }" { comment (expression_statement "FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_0016cdf0("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })) (if_statement "if (*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x54f9) != '\0') {\n    if ((int)param_1[0x25] == 0) {\n      return;\n    }\n    *(undefined4 *)((long)param_1 + 0x124) = 0;\n  }" if (parenthesized_expression "(*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x54f9) != '\0')" ( (binary_expression "*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x54f9) != '\0'" (pointer_expression "*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x54f9)" * (cast_expression "(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x54f9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x54f9)" ( (binary_expression "*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x54f9" (pointer_expression "*(long *)(PTR_DAT_003be6b0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_003be6b0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003be6b0 + 0x10)" ( (binary_expression "PTR_DAT_003be6b0 + 0x10" identifier + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    if ((int)param_1[0x25] == 0) {\n      return;\n    }\n    *(undefined4 *)((long)param_1 + 0x124) = 0;\n  }" { (if_statement "if ((int)param_1[0x25] == 0) {\n      return;\n    }" if (parenthesized_expression "((int)param_1[0x25] == 0)" ( (binary_expression "(int)param_1[0x25] == 0" (cast_expression "(int)param_1[0x25]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[0x25]" identifier [ number_literal ])) == number_literal) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "*(undefined4 *)((long)param_1 + 0x124) = 0;" (assignment_expression "*(undefined4 *)((long)param_1 + 0x124) = 0" (pointer_expression "*(undefined4 *)((long)param_1 + 0x124)" * (cast_expression "(undefined4 *)((long)param_1 + 0x124)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x124)" ( (binary_expression "(long)param_1 + 0x124" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) })) (if_statement "if (*(int *)((long)param_1 + 0x11c) == -1) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/object.cc",0xa97,"write_local_symbols");\n  }" if (parenthesized_expression "(*(int *)((long)param_1 + 0x11c) == -1)" ( (binary_expression "*(int *)((long)param_1 + 0x11c) == -1" (pointer_expression "*(int *)((long)param_1 + 0x11c)" * (cast_expression "(int *)((long)param_1 + 0x11c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x11c)" ( (binary_expression "(long)param_1 + 0x11c" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/object.cc",0xa97,"write_local_symbols");\n  }" { comment (expression_statement "FUN_0016cdf0("../../gold/object.cc",0xa97,"write_local_symbols");" (call_expression "FUN_0016cdf0("../../gold/object.cc",0xa97,"write_local_symbols")" identifier (argument_list "("../../gold/object.cc",0xa97,"write_local_symbols")" ( (string_literal ""../../gold/object.cc"" " string_content ") , number_literal , (string_literal ""write_local_symbols"" " string_content ") ))) ;) })) (if_statement "if (*(int *)((long)param_1 + 0x11c) == 0) {\n    return;\n  }" if (parenthesized_expression "(*(int *)((long)param_1 + 0x11c) == 0)" ( (binary_expression "*(int *)((long)param_1 + 0x11c) == 0" (pointer_expression "*(int *)((long)param_1 + 0x11c)" * (cast_expression "(int *)((long)param_1 + 0x11c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x11c)" ( (binary_expression "(long)param_1 + 0x11c" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "plVar20 = param_1 + 0x1f;" (assignment_expression "plVar20 = param_1 + 0x1f" identifier = (binary_expression "param_1 + 0x1f" identifier + number_literal)) ;) (expression_statement "uVar8 = FUN_0015e080(plVar20);" (assignment_expression "uVar8 = FUN_0015e080(plVar20)" identifier = (call_expression "FUN_0015e080(plVar20)" identifier (argument_list "(plVar20)" ( identifier )))) ;) (if_statement "if (param_1[5] == 0) {\nLAB_001a3824:\n                    /* WARNING: Subroutine does not return */\n    FUN_0019a570();\n  }" if (parenthesized_expression "(param_1[5] == 0)" ( (binary_expression "param_1[5] == 0" (subscript_expression "param_1[5]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\nLAB_001a3824:\n                    /* WARNING: Subroutine does not return */\n    FUN_0019a570();\n  }" { (labeled_statement "LAB_001a3824:\n                    /* WARNING: Subroutine does not return */\n    FUN_0019a570();" statement_identifier : comment (expression_statement "FUN_0019a570();" (call_expression "FUN_0019a570()" identifier (argument_list "()" ( ))) ;)) })) (expression_statement "lVar9 = FUN_0016b970(param_1[5] + 0x28,param_1[6],uVar8,0x40,1,1);" (assignment_expression "lVar9 = FUN_0016b970(param_1[5] + 0x28,param_1[6],uVar8,0x40,1,1)" identifier = (call_expression "FUN_0016b970(param_1[5] + 0x28,param_1[6],uVar8,0x40,1,1)" identifier (argument_list "(param_1[5] + 0x28,param_1[6],uVar8,0x40,1,1)" ( (binary_expression "param_1[5] + 0x28" (subscript_expression "param_1[5]" identifier [ number_literal ]) + number_literal) , (subscript_expression "param_1[6]" identifier [ number_literal ]) , identifier , number_literal , number_literal , number_literal )))) ;) (if_statement "if (*(int *)(lVar9 + 4) != 2) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/object.cc",0xaa2,"write_local_symbols");\n  }" if (parenthesized_expression "(*(int *)(lVar9 + 4) != 2)" ( (binary_expression "*(int *)(lVar9 + 4) != 2" (pointer_expression "*(int *)(lVar9 + 4)" * (cast_expression "(int *)(lVar9 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 4)" ( (binary_expression "lVar9 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/object.cc",0xaa2,"write_local_symbols");\n  }" { comment (expression_statement "FUN_0016cdf0("../../gold/object.cc",0xaa2,"write_local_symbols");" (call_expression "FUN_0016cdf0("../../gold/object.cc",0xaa2,"write_local_symbols")" identifier (argument_list "("../../gold/object.cc",0xaa2,"write_local_symbols")" ( (string_literal ""../../gold/object.cc"" " string_content ") , number_literal , (string_literal ""write_local_symbols"" " string_content ") ))) ;) })) (expression_statement "uVar2 = *(uint *)(param_1 + 0x24);" (assignment_expression "uVar2 = *(uint *)(param_1 + 0x24)" identifier = (pointer_expression "*(uint *)(param_1 + 0x24)" * (cast_expression "(uint *)(param_1 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) ))))) ;) (if_statement "if (uVar2 != *(uint *)(lVar9 + 0x2c)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/object.cc",0xaa4,"write_local_symbols");\n  }" if (parenthesized_expression "(uVar2 != *(uint *)(lVar9 + 0x2c))" ( (binary_expression "uVar2 != *(uint *)(lVar9 + 0x2c)" identifier != (pointer_expression "*(uint *)(lVar9 + 0x2c)" * (cast_expression "(uint *)(lVar9 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x2c)" ( (binary_expression "lVar9 + 0x2c" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/object.cc",0xaa4,"write_local_symbols");\n  }" { comment (expression_statement "FUN_0016cdf0("../../gold/object.cc",0xaa4,"write_local_symbols");" (call_expression "FUN_0016cdf0("../../gold/object.cc",0xaa4,"write_local_symbols")" identifier (argument_list "("../../gold/object.cc",0xaa4,"write_local_symbols")" ( (string_literal ""../../gold/object.cc"" " string_content ") , number_literal , (string_literal ""write_local_symbols"" " string_content ") ))) ;) })) (if_statement "if (param_1[5] == 0) goto LAB_001a3824;" if (parenthesized_expression "(param_1[5] == 0)" ( (binary_expression "param_1[5] == 0" (subscript_expression "param_1[5]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_001a3824;" goto statement_identifier ;)) (expression_statement "lVar10 = FUN_0016b970(param_1[5] + 0x28,param_1[6],*(undefined8 *)(lVar9 + 0x18),uVar2 * 0x18,1,0)\n  ;" (assignment_expression "lVar10 = FUN_0016b970(param_1[5] + 0x28,param_1[6],*(undefined8 *)(lVar9 + 0x18),uVar2 * 0x18,1,0)" identifier = (call_expression "FUN_0016b970(param_1[5] + 0x28,param_1[6],*(undefined8 *)(lVar9 + 0x18),uVar2 * 0x18,1,0)" identifier (argument_list "(param_1[5] + 0x28,param_1[6],*(undefined8 *)(lVar9 + 0x18),uVar2 * 0x18,1,0)" ( (binary_expression "param_1[5] + 0x28" (subscript_expression "param_1[5]" identifier [ number_literal ]) + number_literal) , (subscript_expression "param_1[6]" identifier [ number_literal ]) , (pointer_expression "*(undefined8 *)(lVar9 + 0x18)" * (cast_expression "(undefined8 *)(lVar9 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x18)" ( (binary_expression "lVar9 + 0x18" identifier + number_literal) )))) , (binary_expression "uVar2 * 0x18" identifier * number_literal) , number_literal , number_literal )))) ;) (expression_statement "uVar16 = *(uint *)(lVar9 + 0x28);" (assignment_expression "uVar16 = *(uint *)(lVar9 + 0x28)" identifier = (pointer_expression "*(uint *)(lVar9 + 0x28)" * (cast_expression "(uint *)(lVar9 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x28)" ( (binary_expression "lVar9 + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (0xfeff < uVar16) {\n    FUN_0015d960(plVar20);\n    uVar16 = uVar16 + (int)param_1[0x22];\n  }" if (parenthesized_expression "(0xfeff < uVar16)" ( (binary_expression "0xfeff < uVar16" number_literal < identifier) )) (compound_statement "{\n    FUN_0015d960(plVar20);\n    uVar16 = uVar16 + (int)param_1[0x22];\n  }" { (expression_statement "FUN_0015d960(plVar20);" (call_expression "FUN_0015d960(plVar20)" identifier (argument_list "(plVar20)" ( identifier ))) ;) (expression_statement "uVar16 = uVar16 + (int)param_1[0x22];" (assignment_expression "uVar16 = uVar16 + (int)param_1[0x22]" identifier = (binary_expression "uVar16 + (int)param_1[0x22]" identifier + (cast_expression "(int)param_1[0x22]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[0x22]" identifier [ number_literal ])))) ;) })) (if_statement "if (*(code **)(*param_1 + 0x70) == FUN_001a2100) {\n    auVar25 = FUN_001a2060(plVar20,uVar16);\n    local_48 = auVar25._8_8_;\n    local_b0 = &DAT_00313646;\n    if (local_48 != 0) {\n      if (param_1[5] == 0) goto LAB_001a3824;\n      local_b0 = (undefined *)FUN_0016b970(param_1[5] + 0x28,param_1[6],auVar25._0_8_,local_48,1,0);\n    }\n  }\n  else {\n    local_b0 = (undefined *)(**(code **)(*param_1 + 0x70))(param_1,uVar16,&local_48,0);\n  }" if (parenthesized_expression "(*(code **)(*param_1 + 0x70) == FUN_001a2100)" ( (binary_expression "*(code **)(*param_1 + 0x70) == FUN_001a2100" (pointer_expression "*(code **)(*param_1 + 0x70)" * (cast_expression "(code **)(*param_1 + 0x70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x70)" ( (binary_expression "*param_1 + 0x70" (pointer_expression "*param_1" * identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n    auVar25 = FUN_001a2060(plVar20,uVar16);\n    local_48 = auVar25._8_8_;\n    local_b0 = &DAT_00313646;\n    if (local_48 != 0) {\n      if (param_1[5] == 0) goto LAB_001a3824;\n      local_b0 = (undefined *)FUN_0016b970(param_1[5] + 0x28,param_1[6],auVar25._0_8_,local_48,1,0);\n    }\n  }" { (expression_statement "auVar25 = FUN_001a2060(plVar20,uVar16);" (assignment_expression "auVar25 = FUN_001a2060(plVar20,uVar16)" identifier = (call_expression "FUN_001a2060(plVar20,uVar16)" identifier (argument_list "(plVar20,uVar16)" ( identifier , identifier )))) ;) (expression_statement "local_48 = auVar25._8_8_;" (assignment_expression "local_48 = auVar25._8_8_" identifier = (field_expression "auVar25._8_8_" identifier . field_identifier)) ;) (expression_statement "local_b0 = &DAT_00313646;" (assignment_expression "local_b0 = &DAT_00313646" identifier = (pointer_expression "&DAT_00313646" & identifier)) ;) (if_statement "if (local_48 != 0) {\n      if (param_1[5] == 0) goto LAB_001a3824;\n      local_b0 = (undefined *)FUN_0016b970(param_1[5] + 0x28,param_1[6],auVar25._0_8_,local_48,1,0);\n    }" if (parenthesized_expression "(local_48 != 0)" ( (binary_expression "local_48 != 0" identifier != number_literal) )) (compound_statement "{\n      if (param_1[5] == 0) goto LAB_001a3824;\n      local_b0 = (undefined *)FUN_0016b970(param_1[5] + 0x28,param_1[6],auVar25._0_8_,local_48,1,0);\n    }" { (if_statement "if (param_1[5] == 0) goto LAB_001a3824;" if (parenthesized_expression "(param_1[5] == 0)" ( (binary_expression "param_1[5] == 0" (subscript_expression "param_1[5]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_001a3824;" goto statement_identifier ;)) (expression_statement "local_b0 = (undefined *)FUN_0016b970(param_1[5] + 0x28,param_1[6],auVar25._0_8_,local_48,1,0);" (assignment_expression "local_b0 = (undefined *)FUN_0016b970(param_1[5] + 0x28,param_1[6],auVar25._0_8_,local_48,1,0)" identifier = (cast_expression "(undefined *)FUN_0016b970(param_1[5] + 0x28,param_1[6],auVar25._0_8_,local_48,1,0)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0016b970(param_1[5] + 0x28,param_1[6],auVar25._0_8_,local_48,1,0)" identifier (argument_list "(param_1[5] + 0x28,param_1[6],auVar25._0_8_,local_48,1,0)" ( (binary_expression "param_1[5] + 0x28" (subscript_expression "param_1[5]" identifier [ number_literal ]) + number_literal) , (subscript_expression "param_1[6]" identifier [ number_literal ]) , (field_expression "auVar25._0_8_" identifier . field_identifier) , identifier , number_literal , number_literal ))))) ;) })) }) (else_clause "else {\n    local_b0 = (undefined *)(**(code **)(*param_1 + 0x70))(param_1,uVar16,&local_48,0);\n  }" else (compound_statement "{\n    local_b0 = (undefined *)(**(code **)(*param_1 + 0x70))(param_1,uVar16,&local_48,0);\n  }" { (expression_statement "local_b0 = (undefined *)(**(code **)(*param_1 + 0x70))(param_1,uVar16,&local_48,0);" (assignment_expression "local_b0 = (undefined *)(**(code **)(*param_1 + 0x70))(param_1,uVar16,&local_48,0)" identifier = (cast_expression "(undefined *)(**(code **)(*param_1 + 0x70))(param_1,uVar16,&local_48,0)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*param_1 + 0x70))(param_1,uVar16,&local_48,0)" (parenthesized_expression "(**(code **)(*param_1 + 0x70))" ( (pointer_expression "**(code **)(*param_1 + 0x70)" * (pointer_expression "*(code **)(*param_1 + 0x70)" * (cast_expression "(code **)(*param_1 + 0x70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x70)" ( (binary_expression "*param_1 + 0x70" (pointer_expression "*param_1" * identifier) + number_literal) ))))) )) (argument_list "(param_1,uVar16,&local_48,0)" ( identifier , identifier , (pointer_expression "&local_48" & identifier) , number_literal ))))) ;) }))) (expression_statement "uVar16 = *(int *)((long)param_1 + 0x124) * 0x18;" (assignment_expression "uVar16 = *(int *)((long)param_1 + 0x124) * 0x18" identifier = (binary_expression "*(int *)((long)param_1 + 0x124) * 0x18" (pointer_expression "*(int *)((long)param_1 + 0x124)" * (cast_expression "(int *)((long)param_1 + 0x124)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x124)" ( (binary_expression "(long)param_1 + 0x124" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) * number_literal)) ;) (if_statement "if (uVar16 == 0) {\n    local_70 = (undefined4 *)0x0;\nLAB_001a31f6:\n    uVar17 = (int)param_1[0x25] * 0x18;\n    uVar18 = (ulong)uVar17;\n    if (uVar17 == 0) {\n      local_68 = (undefined4 *)0x0;\n    }\n    else {\n      lVar9 = param_1[0x2b];\n      if ((lVar9 < 0) || (*(long *)(param_2 + 0x10) < (long)(lVar9 + uVar18))) goto LAB_001a3859;\n      local_68 = (undefined4 *)(lVar9 + *(long *)(param_2 + 0x18));\n    }\n    lVar9 = param_1[0x2c];\n    if ((ulong)uVar2 == (param_1[0x2d] - lVar9 >> 3) * -0x5555555555555555) {\n      puVar22 = local_68;\n      puVar24 = local_70;\n      if (uVar2 < 2) {\nLAB_001a3680:\n        if ((uVar16 != 0) && ((long)puVar24 - (long)local_70 != (ulong)uVar16)) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/object.cc",0xb0a,"write_local_symbols");\n        }\n        if ((uVar17 != 0) && ((long)puVar22 - (long)local_68 != uVar18)) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/object.cc",0xb11,"write_local_symbols");\n        }\n        return;\n      }\n      lVar21 = lVar10 + 0x30;\n      local_b8 = 1;\n      do {\n        uVar13 = *(ushort *)(lVar21 + -0x12);\n        uVar12 = (ulong)uVar13;\n        piVar14 = (int *)(lVar9 + (-0x18 - lVar10) + lVar21);\n        if (uVar13 < 0xff00) {\nLAB_001a350a:\n          if ((ulong)(param_1[0xb] - param_1[10] >> 3) <= uVar12) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0016cdf0("../../gold/object.cc",0xad5,"write_local_symbols");\n          }\n          plVar20 = *(long **)(param_1[10] + uVar12 * 8);\n          if (plVar20 != (long *)0x0) {\n            if (*(code **)(*plVar20 + 0x58) == FUN_00175f90) {\n              uVar7 = *(uint *)((long)plVar20 + 0x7c);\n              if (uVar7 == 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0016cdf0("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar7 = (**(code **)(*plVar20 + 0x58))();\n            }\n            uVar13 = (ushort)uVar7;\n            iVar5 = *piVar14;\n            bVar11 = iVar5 != 0 && iVar5 != -2;\n            if (0xfeff < uVar7) {\n              if (iVar5 == 0 || iVar5 == -2) goto LAB_001a374c;\n              if (iVar5 != -1) {\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_5 + 0x38,&local_40);\n              }\n              iVar5 = piVar14[1];\n              if (iVar5 == 0) goto LAB_001a3764;\n              if (iVar5 == -1) {\n                iVar5 = *piVar14;\n                uVar13 = 0xffff;\n                bVar11 = iVar5 != 0 && iVar5 != -2;\n              }\n              else {\n                uVar13 = 0xffff;\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_6 + 0x38,&local_40);\n                iVar5 = *piVar14;\n                bVar11 = iVar5 != -2 && iVar5 != 0;\n              }\n            }\n            goto LAB_001a32f9;\n          }\n        }\n        else {\n          if (uVar13 == 0xffff) {\n            lVar9 = param_1[8];\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*param_1 + 0xd8))(param_1);\n              param_1[8] = lVar9;\n            }\n            uVar7 = FUN_0019a820(lVar9,param_1,local_b8);\n            uVar12 = (ulong)uVar7;\n            goto LAB_001a350a;\n          }\n          iVar5 = *piVar14;\n          bVar11 = iVar5 != 0 && iVar5 != -2;\nLAB_001a32f9:\n          if (!bVar11) {\nLAB_001a374c:\n                    /* WARNING: Subroutine does not return */\n            FUN_0016cdf0("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }\n          puVar23 = puVar24;\n          if (iVar5 != -1) {\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0016cdf0("../../gold/object.cc",0xae8,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_3,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar24 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) goto LAB_001a377c;\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a33ac:\n            *(undefined8 *)(puVar24 + 2) = uVar8;\n            puVar23 = puVar24 + 6;\n            *(undefined8 *)(puVar24 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar24 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar24 + 6) = uVar13;\n            *(undefined1 *)((long)puVar24 + 5) = uVar1;\n          }\n          if (piVar14[1] == 0) {\nLAB_001a3764:\n                    /* WARNING: Subroutine does not return */\n            FUN_0016cdf0("../../gold/object.h",0x738,"has_output_dynsym_entry");\n          }\n          puVar24 = puVar23;\n          if (piVar14[1] != -1) {\n            if ((undefined4 *)((long)local_68 + uVar18) <= puVar22) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0016cdf0("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0016cdf0("../../gold/object.cc",0xafa,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_4,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar22 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    /* WARNING: Subroutine does not return */\n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");\n              }\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a349c:\n            *(undefined8 *)(puVar22 + 2) = uVar8;\n            *(undefined8 *)(puVar22 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar22 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar22 + 6) = uVar13;\n            *(undefined1 *)((long)puVar22 + 5) = uVar1;\n            puVar22 = puVar22 + 6;\n          }\n        }\n        local_b8 = local_b8 + 1;\n        lVar21 = lVar21 + 0x18;\n        if (uVar2 == local_b8) goto LAB_001a3680;\n        lVar9 = param_1[0x2c];\n      } while( true );\n    }\n  }\n  else {\n    param_7 = param_7 + param_1[0x2a];\n    if ((-1 < param_7) && ((long)(param_7 + (ulong)uVar16) <= *(long *)(param_2 + 0x10))) {\n      local_70 = (undefined4 *)(param_7 + *(long *)(param_2 + 0x18));\n      goto LAB_001a31f6;\n    }\nLAB_001a3859:\n    FUN_0019a5b0();\n  }" if (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) (compound_statement "{\n    local_70 = (undefined4 *)0x0;\nLAB_001a31f6:\n    uVar17 = (int)param_1[0x25] * 0x18;\n    uVar18 = (ulong)uVar17;\n    if (uVar17 == 0) {\n      local_68 = (undefined4 *)0x0;\n    }\n    else {\n      lVar9 = param_1[0x2b];\n      if ((lVar9 < 0) || (*(long *)(param_2 + 0x10) < (long)(lVar9 + uVar18))) goto LAB_001a3859;\n      local_68 = (undefined4 *)(lVar9 + *(long *)(param_2 + 0x18));\n    }\n    lVar9 = param_1[0x2c];\n    if ((ulong)uVar2 == (param_1[0x2d] - lVar9 >> 3) * -0x5555555555555555) {\n      puVar22 = local_68;\n      puVar24 = local_70;\n      if (uVar2 < 2) {\nLAB_001a3680:\n        if ((uVar16 != 0) && ((long)puVar24 - (long)local_70 != (ulong)uVar16)) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/object.cc",0xb0a,"write_local_symbols");\n        }\n        if ((uVar17 != 0) && ((long)puVar22 - (long)local_68 != uVar18)) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/object.cc",0xb11,"write_local_symbols");\n        }\n        return;\n      }\n      lVar21 = lVar10 + 0x30;\n      local_b8 = 1;\n      do {\n        uVar13 = *(ushort *)(lVar21 + -0x12);\n        uVar12 = (ulong)uVar13;\n        piVar14 = (int *)(lVar9 + (-0x18 - lVar10) + lVar21);\n        if (uVar13 < 0xff00) {\nLAB_001a350a:\n          if ((ulong)(param_1[0xb] - param_1[10] >> 3) <= uVar12) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0016cdf0("../../gold/object.cc",0xad5,"write_local_symbols");\n          }\n          plVar20 = *(long **)(param_1[10] + uVar12 * 8);\n          if (plVar20 != (long *)0x0) {\n            if (*(code **)(*plVar20 + 0x58) == FUN_00175f90) {\n              uVar7 = *(uint *)((long)plVar20 + 0x7c);\n              if (uVar7 == 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0016cdf0("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar7 = (**(code **)(*plVar20 + 0x58))();\n            }\n            uVar13 = (ushort)uVar7;\n            iVar5 = *piVar14;\n            bVar11 = iVar5 != 0 && iVar5 != -2;\n            if (0xfeff < uVar7) {\n              if (iVar5 == 0 || iVar5 == -2) goto LAB_001a374c;\n              if (iVar5 != -1) {\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_5 + 0x38,&local_40);\n              }\n              iVar5 = piVar14[1];\n              if (iVar5 == 0) goto LAB_001a3764;\n              if (iVar5 == -1) {\n                iVar5 = *piVar14;\n                uVar13 = 0xffff;\n                bVar11 = iVar5 != 0 && iVar5 != -2;\n              }\n              else {\n                uVar13 = 0xffff;\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_6 + 0x38,&local_40);\n                iVar5 = *piVar14;\n                bVar11 = iVar5 != -2 && iVar5 != 0;\n              }\n            }\n            goto LAB_001a32f9;\n          }\n        }\n        else {\n          if (uVar13 == 0xffff) {\n            lVar9 = param_1[8];\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*param_1 + 0xd8))(param_1);\n              param_1[8] = lVar9;\n            }\n            uVar7 = FUN_0019a820(lVar9,param_1,local_b8);\n            uVar12 = (ulong)uVar7;\n            goto LAB_001a350a;\n          }\n          iVar5 = *piVar14;\n          bVar11 = iVar5 != 0 && iVar5 != -2;\nLAB_001a32f9:\n          if (!bVar11) {\nLAB_001a374c:\n                    /* WARNING: Subroutine does not return */\n            FUN_0016cdf0("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }\n          puVar23 = puVar24;\n          if (iVar5 != -1) {\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0016cdf0("../../gold/object.cc",0xae8,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_3,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar24 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) goto LAB_001a377c;\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a33ac:\n            *(undefined8 *)(puVar24 + 2) = uVar8;\n            puVar23 = puVar24 + 6;\n            *(undefined8 *)(puVar24 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar24 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar24 + 6) = uVar13;\n            *(undefined1 *)((long)puVar24 + 5) = uVar1;\n          }\n          if (piVar14[1] == 0) {\nLAB_001a3764:\n                    /* WARNING: Subroutine does not return */\n            FUN_0016cdf0("../../gold/object.h",0x738,"has_output_dynsym_entry");\n          }\n          puVar24 = puVar23;\n          if (piVar14[1] != -1) {\n            if ((undefined4 *)((long)local_68 + uVar18) <= puVar22) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0016cdf0("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0016cdf0("../../gold/object.cc",0xafa,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_4,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar22 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    /* WARNING: Subroutine does not return */\n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");\n              }\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a349c:\n            *(undefined8 *)(puVar22 + 2) = uVar8;\n            *(undefined8 *)(puVar22 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar22 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar22 + 6) = uVar13;\n            *(undefined1 *)((long)puVar22 + 5) = uVar1;\n            puVar22 = puVar22 + 6;\n          }\n        }\n        local_b8 = local_b8 + 1;\n        lVar21 = lVar21 + 0x18;\n        if (uVar2 == local_b8) goto LAB_001a3680;\n        lVar9 = param_1[0x2c];\n      } while( true );\n    }\n  }" { (expression_statement "local_70 = (undefined4 *)0x0;" (assignment_expression "local_70 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_001a31f6:\n    uVar17 = (int)param_1[0x25] * 0x18;" statement_identifier : (expression_statement "uVar17 = (int)param_1[0x25] * 0x18;" (assignment_expression "uVar17 = (int)param_1[0x25] * 0x18" identifier = (binary_expression "(int)param_1[0x25] * 0x18" (cast_expression "(int)param_1[0x25]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[0x25]" identifier [ number_literal ])) * number_literal)) ;)) (expression_statement "uVar18 = (ulong)uVar17;" (assignment_expression "uVar18 = (ulong)uVar17" identifier = (cast_expression "(ulong)uVar17" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (uVar17 == 0) {\n      local_68 = (undefined4 *)0x0;\n    }\n    else {\n      lVar9 = param_1[0x2b];\n      if ((lVar9 < 0) || (*(long *)(param_2 + 0x10) < (long)(lVar9 + uVar18))) goto LAB_001a3859;\n      local_68 = (undefined4 *)(lVar9 + *(long *)(param_2 + 0x18));\n    }" if (parenthesized_expression "(uVar17 == 0)" ( (binary_expression "uVar17 == 0" identifier == number_literal) )) (compound_statement "{\n      local_68 = (undefined4 *)0x0;\n    }" { (expression_statement "local_68 = (undefined4 *)0x0;" (assignment_expression "local_68 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      lVar9 = param_1[0x2b];\n      if ((lVar9 < 0) || (*(long *)(param_2 + 0x10) < (long)(lVar9 + uVar18))) goto LAB_001a3859;\n      local_68 = (undefined4 *)(lVar9 + *(long *)(param_2 + 0x18));\n    }" else (compound_statement "{\n      lVar9 = param_1[0x2b];\n      if ((lVar9 < 0) || (*(long *)(param_2 + 0x10) < (long)(lVar9 + uVar18))) goto LAB_001a3859;\n      local_68 = (undefined4 *)(lVar9 + *(long *)(param_2 + 0x18));\n    }" { (expression_statement "lVar9 = param_1[0x2b];" (assignment_expression "lVar9 = param_1[0x2b]" identifier = (subscript_expression "param_1[0x2b]" identifier [ number_literal ])) ;) (if_statement "if ((lVar9 < 0) || (*(long *)(param_2 + 0x10) < (long)(lVar9 + uVar18))) goto LAB_001a3859;" if (parenthesized_expression "((lVar9 < 0) || (*(long *)(param_2 + 0x10) < (long)(lVar9 + uVar18)))" ( (binary_expression "(lVar9 < 0) || (*(long *)(param_2 + 0x10) < (long)(lVar9 + uVar18))" (parenthesized_expression "(lVar9 < 0)" ( (binary_expression "lVar9 < 0" identifier < number_literal) )) || (parenthesized_expression "(*(long *)(param_2 + 0x10) < (long)(lVar9 + uVar18))" ( (binary_expression "*(long *)(param_2 + 0x10) < (long)(lVar9 + uVar18)" (pointer_expression "*(long *)(param_2 + 0x10)" * (cast_expression "(long *)(param_2 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))) < (cast_expression "(long)(lVar9 + uVar18)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(lVar9 + uVar18)" ( (binary_expression "lVar9 + uVar18" identifier + identifier) )))) ))) )) (goto_statement "goto LAB_001a3859;" goto statement_identifier ;)) (expression_statement "local_68 = (undefined4 *)(lVar9 + *(long *)(param_2 + 0x18));" (assignment_expression "local_68 = (undefined4 *)(lVar9 + *(long *)(param_2 + 0x18))" identifier = (cast_expression "(undefined4 *)(lVar9 + *(long *)(param_2 + 0x18))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + *(long *)(param_2 + 0x18))" ( (binary_expression "lVar9 + *(long *)(param_2 + 0x18)" identifier + (pointer_expression "*(long *)(param_2 + 0x18)" * (cast_expression "(long *)(param_2 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) ))))) )))) ;) }))) (expression_statement "lVar9 = param_1[0x2c];" (assignment_expression "lVar9 = param_1[0x2c]" identifier = (subscript_expression "param_1[0x2c]" identifier [ number_literal ])) ;) (if_statement "if ((ulong)uVar2 == (param_1[0x2d] - lVar9 >> 3) * -0x5555555555555555) {\n      puVar22 = local_68;\n      puVar24 = local_70;\n      if (uVar2 < 2) {\nLAB_001a3680:\n        if ((uVar16 != 0) && ((long)puVar24 - (long)local_70 != (ulong)uVar16)) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/object.cc",0xb0a,"write_local_symbols");\n        }\n        if ((uVar17 != 0) && ((long)puVar22 - (long)local_68 != uVar18)) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/object.cc",0xb11,"write_local_symbols");\n        }\n        return;\n      }\n      lVar21 = lVar10 + 0x30;\n      local_b8 = 1;\n      do {\n        uVar13 = *(ushort *)(lVar21 + -0x12);\n        uVar12 = (ulong)uVar13;\n        piVar14 = (int *)(lVar9 + (-0x18 - lVar10) + lVar21);\n        if (uVar13 < 0xff00) {\nLAB_001a350a:\n          if ((ulong)(param_1[0xb] - param_1[10] >> 3) <= uVar12) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0016cdf0("../../gold/object.cc",0xad5,"write_local_symbols");\n          }\n          plVar20 = *(long **)(param_1[10] + uVar12 * 8);\n          if (plVar20 != (long *)0x0) {\n            if (*(code **)(*plVar20 + 0x58) == FUN_00175f90) {\n              uVar7 = *(uint *)((long)plVar20 + 0x7c);\n              if (uVar7 == 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0016cdf0("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar7 = (**(code **)(*plVar20 + 0x58))();\n            }\n            uVar13 = (ushort)uVar7;\n            iVar5 = *piVar14;\n            bVar11 = iVar5 != 0 && iVar5 != -2;\n            if (0xfeff < uVar7) {\n              if (iVar5 == 0 || iVar5 == -2) goto LAB_001a374c;\n              if (iVar5 != -1) {\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_5 + 0x38,&local_40);\n              }\n              iVar5 = piVar14[1];\n              if (iVar5 == 0) goto LAB_001a3764;\n              if (iVar5 == -1) {\n                iVar5 = *piVar14;\n                uVar13 = 0xffff;\n                bVar11 = iVar5 != 0 && iVar5 != -2;\n              }\n              else {\n                uVar13 = 0xffff;\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_6 + 0x38,&local_40);\n                iVar5 = *piVar14;\n                bVar11 = iVar5 != -2 && iVar5 != 0;\n              }\n            }\n            goto LAB_001a32f9;\n          }\n        }\n        else {\n          if (uVar13 == 0xffff) {\n            lVar9 = param_1[8];\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*param_1 + 0xd8))(param_1);\n              param_1[8] = lVar9;\n            }\n            uVar7 = FUN_0019a820(lVar9,param_1,local_b8);\n            uVar12 = (ulong)uVar7;\n            goto LAB_001a350a;\n          }\n          iVar5 = *piVar14;\n          bVar11 = iVar5 != 0 && iVar5 != -2;\nLAB_001a32f9:\n          if (!bVar11) {\nLAB_001a374c:\n                    /* WARNING: Subroutine does not return */\n            FUN_0016cdf0("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }\n          puVar23 = puVar24;\n          if (iVar5 != -1) {\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0016cdf0("../../gold/object.cc",0xae8,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_3,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar24 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) goto LAB_001a377c;\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a33ac:\n            *(undefined8 *)(puVar24 + 2) = uVar8;\n            puVar23 = puVar24 + 6;\n            *(undefined8 *)(puVar24 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar24 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar24 + 6) = uVar13;\n            *(undefined1 *)((long)puVar24 + 5) = uVar1;\n          }\n          if (piVar14[1] == 0) {\nLAB_001a3764:\n                    /* WARNING: Subroutine does not return */\n            FUN_0016cdf0("../../gold/object.h",0x738,"has_output_dynsym_entry");\n          }\n          puVar24 = puVar23;\n          if (piVar14[1] != -1) {\n            if ((undefined4 *)((long)local_68 + uVar18) <= puVar22) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0016cdf0("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0016cdf0("../../gold/object.cc",0xafa,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_4,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar22 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    /* WARNING: Subroutine does not return */\n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");\n              }\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a349c:\n            *(undefined8 *)(puVar22 + 2) = uVar8;\n            *(undefined8 *)(puVar22 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar22 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar22 + 6) = uVar13;\n            *(undefined1 *)((long)puVar22 + 5) = uVar1;\n            puVar22 = puVar22 + 6;\n          }\n        }\n        local_b8 = local_b8 + 1;\n        lVar21 = lVar21 + 0x18;\n        if (uVar2 == local_b8) goto LAB_001a3680;\n        lVar9 = param_1[0x2c];\n      } while( true );\n    }" if (parenthesized_expression "((ulong)uVar2 == (param_1[0x2d] - lVar9 >> 3) * -0x5555555555555555)" ( (binary_expression "(ulong)uVar2 == (param_1[0x2d] - lVar9 >> 3) * -0x5555555555555555" (cast_expression "(ulong)uVar2" ( (type_descriptor "ulong" type_identifier) ) identifier) == (binary_expression "(param_1[0x2d] - lVar9 >> 3) * -0x5555555555555555" (parenthesized_expression "(param_1[0x2d] - lVar9 >> 3)" ( (binary_expression "param_1[0x2d] - lVar9 >> 3" (binary_expression "param_1[0x2d] - lVar9" (subscript_expression "param_1[0x2d]" identifier [ number_literal ]) - identifier) >> number_literal) )) * number_literal)) )) (compound_statement "{\n      puVar22 = local_68;\n      puVar24 = local_70;\n      if (uVar2 < 2) {\nLAB_001a3680:\n        if ((uVar16 != 0) && ((long)puVar24 - (long)local_70 != (ulong)uVar16)) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/object.cc",0xb0a,"write_local_symbols");\n        }\n        if ((uVar17 != 0) && ((long)puVar22 - (long)local_68 != uVar18)) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/object.cc",0xb11,"write_local_symbols");\n        }\n        return;\n      }\n      lVar21 = lVar10 + 0x30;\n      local_b8 = 1;\n      do {\n        uVar13 = *(ushort *)(lVar21 + -0x12);\n        uVar12 = (ulong)uVar13;\n        piVar14 = (int *)(lVar9 + (-0x18 - lVar10) + lVar21);\n        if (uVar13 < 0xff00) {\nLAB_001a350a:\n          if ((ulong)(param_1[0xb] - param_1[10] >> 3) <= uVar12) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0016cdf0("../../gold/object.cc",0xad5,"write_local_symbols");\n          }\n          plVar20 = *(long **)(param_1[10] + uVar12 * 8);\n          if (plVar20 != (long *)0x0) {\n            if (*(code **)(*plVar20 + 0x58) == FUN_00175f90) {\n              uVar7 = *(uint *)((long)plVar20 + 0x7c);\n              if (uVar7 == 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0016cdf0("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar7 = (**(code **)(*plVar20 + 0x58))();\n            }\n            uVar13 = (ushort)uVar7;\n            iVar5 = *piVar14;\n            bVar11 = iVar5 != 0 && iVar5 != -2;\n            if (0xfeff < uVar7) {\n              if (iVar5 == 0 || iVar5 == -2) goto LAB_001a374c;\n              if (iVar5 != -1) {\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_5 + 0x38,&local_40);\n              }\n              iVar5 = piVar14[1];\n              if (iVar5 == 0) goto LAB_001a3764;\n              if (iVar5 == -1) {\n                iVar5 = *piVar14;\n                uVar13 = 0xffff;\n                bVar11 = iVar5 != 0 && iVar5 != -2;\n              }\n              else {\n                uVar13 = 0xffff;\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_6 + 0x38,&local_40);\n                iVar5 = *piVar14;\n                bVar11 = iVar5 != -2 && iVar5 != 0;\n              }\n            }\n            goto LAB_001a32f9;\n          }\n        }\n        else {\n          if (uVar13 == 0xffff) {\n            lVar9 = param_1[8];\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*param_1 + 0xd8))(param_1);\n              param_1[8] = lVar9;\n            }\n            uVar7 = FUN_0019a820(lVar9,param_1,local_b8);\n            uVar12 = (ulong)uVar7;\n            goto LAB_001a350a;\n          }\n          iVar5 = *piVar14;\n          bVar11 = iVar5 != 0 && iVar5 != -2;\nLAB_001a32f9:\n          if (!bVar11) {\nLAB_001a374c:\n                    /* WARNING: Subroutine does not return */\n            FUN_0016cdf0("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }\n          puVar23 = puVar24;\n          if (iVar5 != -1) {\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0016cdf0("../../gold/object.cc",0xae8,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_3,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar24 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) goto LAB_001a377c;\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a33ac:\n            *(undefined8 *)(puVar24 + 2) = uVar8;\n            puVar23 = puVar24 + 6;\n            *(undefined8 *)(puVar24 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar24 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar24 + 6) = uVar13;\n            *(undefined1 *)((long)puVar24 + 5) = uVar1;\n          }\n          if (piVar14[1] == 0) {\nLAB_001a3764:\n                    /* WARNING: Subroutine does not return */\n            FUN_0016cdf0("../../gold/object.h",0x738,"has_output_dynsym_entry");\n          }\n          puVar24 = puVar23;\n          if (piVar14[1] != -1) {\n            if ((undefined4 *)((long)local_68 + uVar18) <= puVar22) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0016cdf0("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0016cdf0("../../gold/object.cc",0xafa,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_4,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar22 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    /* WARNING: Subroutine does not return */\n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");\n              }\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a349c:\n            *(undefined8 *)(puVar22 + 2) = uVar8;\n            *(undefined8 *)(puVar22 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar22 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar22 + 6) = uVar13;\n            *(undefined1 *)((long)puVar22 + 5) = uVar1;\n            puVar22 = puVar22 + 6;\n          }\n        }\n        local_b8 = local_b8 + 1;\n        lVar21 = lVar21 + 0x18;\n        if (uVar2 == local_b8) goto LAB_001a3680;\n        lVar9 = param_1[0x2c];\n      } while( true );\n    }" { (expression_statement "puVar22 = local_68;" (assignment_expression "puVar22 = local_68" identifier = identifier) ;) (expression_statement "puVar24 = local_70;" (assignment_expression "puVar24 = local_70" identifier = identifier) ;) (if_statement "if (uVar2 < 2) {\nLAB_001a3680:\n        if ((uVar16 != 0) && ((long)puVar24 - (long)local_70 != (ulong)uVar16)) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/object.cc",0xb0a,"write_local_symbols");\n        }\n        if ((uVar17 != 0) && ((long)puVar22 - (long)local_68 != uVar18)) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/object.cc",0xb11,"write_local_symbols");\n        }\n        return;\n      }" if (parenthesized_expression "(uVar2 < 2)" ( (binary_expression "uVar2 < 2" identifier < number_literal) )) (compound_statement "{\nLAB_001a3680:\n        if ((uVar16 != 0) && ((long)puVar24 - (long)local_70 != (ulong)uVar16)) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/object.cc",0xb0a,"write_local_symbols");\n        }\n        if ((uVar17 != 0) && ((long)puVar22 - (long)local_68 != uVar18)) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/object.cc",0xb11,"write_local_symbols");\n        }\n        return;\n      }" { (labeled_statement "LAB_001a3680:\n        if ((uVar16 != 0) && ((long)puVar24 - (long)local_70 != (ulong)uVar16)) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/object.cc",0xb0a,"write_local_symbols");\n        }" statement_identifier : (if_statement "if ((uVar16 != 0) && ((long)puVar24 - (long)local_70 != (ulong)uVar16)) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/object.cc",0xb0a,"write_local_symbols");\n        }" if (parenthesized_expression "((uVar16 != 0) && ((long)puVar24 - (long)local_70 != (ulong)uVar16))" ( (binary_expression "(uVar16 != 0) && ((long)puVar24 - (long)local_70 != (ulong)uVar16)" (parenthesized_expression "(uVar16 != 0)" ( (binary_expression "uVar16 != 0" identifier != number_literal) )) && (parenthesized_expression "((long)puVar24 - (long)local_70 != (ulong)uVar16)" ( (binary_expression "(long)puVar24 - (long)local_70 != (ulong)uVar16" (binary_expression "(long)puVar24 - (long)local_70" (cast_expression "(long)puVar24" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) != (cast_expression "(ulong)uVar16" ( (type_descriptor "ulong" type_identifier) ) identifier)) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/object.cc",0xb0a,"write_local_symbols");\n        }" { comment (expression_statement "FUN_0016cdf0("../../gold/object.cc",0xb0a,"write_local_symbols");" (call_expression "FUN_0016cdf0("../../gold/object.cc",0xb0a,"write_local_symbols")" identifier (argument_list "("../../gold/object.cc",0xb0a,"write_local_symbols")" ( (string_literal ""../../gold/object.cc"" " string_content ") , number_literal , (string_literal ""write_local_symbols"" " string_content ") ))) ;) }))) (if_statement "if ((uVar17 != 0) && ((long)puVar22 - (long)local_68 != uVar18)) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/object.cc",0xb11,"write_local_symbols");\n        }" if (parenthesized_expression "((uVar17 != 0) && ((long)puVar22 - (long)local_68 != uVar18))" ( (binary_expression "(uVar17 != 0) && ((long)puVar22 - (long)local_68 != uVar18)" (parenthesized_expression "(uVar17 != 0)" ( (binary_expression "uVar17 != 0" identifier != number_literal) )) && (parenthesized_expression "((long)puVar22 - (long)local_68 != uVar18)" ( (binary_expression "(long)puVar22 - (long)local_68 != uVar18" (binary_expression "(long)puVar22 - (long)local_68" (cast_expression "(long)puVar22" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)local_68" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) != identifier) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/object.cc",0xb11,"write_local_symbols");\n        }" { comment (expression_statement "FUN_0016cdf0("../../gold/object.cc",0xb11,"write_local_symbols");" (call_expression "FUN_0016cdf0("../../gold/object.cc",0xb11,"write_local_symbols")" identifier (argument_list "("../../gold/object.cc",0xb11,"write_local_symbols")" ( (string_literal ""../../gold/object.cc"" " string_content ") , number_literal , (string_literal ""write_local_symbols"" " string_content ") ))) ;) })) (return_statement "return;" return ;) })) (expression_statement "lVar21 = lVar10 + 0x30;" (assignment_expression "lVar21 = lVar10 + 0x30" identifier = (binary_expression "lVar10 + 0x30" identifier + number_literal)) ;) (expression_statement "local_b8 = 1;" (assignment_expression "local_b8 = 1" identifier = number_literal) ;) (do_statement "do {\n        uVar13 = *(ushort *)(lVar21 + -0x12);\n        uVar12 = (ulong)uVar13;\n        piVar14 = (int *)(lVar9 + (-0x18 - lVar10) + lVar21);\n        if (uVar13 < 0xff00) {\nLAB_001a350a:\n          if ((ulong)(param_1[0xb] - param_1[10] >> 3) <= uVar12) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0016cdf0("../../gold/object.cc",0xad5,"write_local_symbols");\n          }\n          plVar20 = *(long **)(param_1[10] + uVar12 * 8);\n          if (plVar20 != (long *)0x0) {\n            if (*(code **)(*plVar20 + 0x58) == FUN_00175f90) {\n              uVar7 = *(uint *)((long)plVar20 + 0x7c);\n              if (uVar7 == 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0016cdf0("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar7 = (**(code **)(*plVar20 + 0x58))();\n            }\n            uVar13 = (ushort)uVar7;\n            iVar5 = *piVar14;\n            bVar11 = iVar5 != 0 && iVar5 != -2;\n            if (0xfeff < uVar7) {\n              if (iVar5 == 0 || iVar5 == -2) goto LAB_001a374c;\n              if (iVar5 != -1) {\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_5 + 0x38,&local_40);\n              }\n              iVar5 = piVar14[1];\n              if (iVar5 == 0) goto LAB_001a3764;\n              if (iVar5 == -1) {\n                iVar5 = *piVar14;\n                uVar13 = 0xffff;\n                bVar11 = iVar5 != 0 && iVar5 != -2;\n              }\n              else {\n                uVar13 = 0xffff;\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_6 + 0x38,&local_40);\n                iVar5 = *piVar14;\n                bVar11 = iVar5 != -2 && iVar5 != 0;\n              }\n            }\n            goto LAB_001a32f9;\n          }\n        }\n        else {\n          if (uVar13 == 0xffff) {\n            lVar9 = param_1[8];\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*param_1 + 0xd8))(param_1);\n              param_1[8] = lVar9;\n            }\n            uVar7 = FUN_0019a820(lVar9,param_1,local_b8);\n            uVar12 = (ulong)uVar7;\n            goto LAB_001a350a;\n          }\n          iVar5 = *piVar14;\n          bVar11 = iVar5 != 0 && iVar5 != -2;\nLAB_001a32f9:\n          if (!bVar11) {\nLAB_001a374c:\n                    /* WARNING: Subroutine does not return */\n            FUN_0016cdf0("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }\n          puVar23 = puVar24;\n          if (iVar5 != -1) {\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0016cdf0("../../gold/object.cc",0xae8,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_3,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar24 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) goto LAB_001a377c;\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a33ac:\n            *(undefined8 *)(puVar24 + 2) = uVar8;\n            puVar23 = puVar24 + 6;\n            *(undefined8 *)(puVar24 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar24 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar24 + 6) = uVar13;\n            *(undefined1 *)((long)puVar24 + 5) = uVar1;\n          }\n          if (piVar14[1] == 0) {\nLAB_001a3764:\n                    /* WARNING: Subroutine does not return */\n            FUN_0016cdf0("../../gold/object.h",0x738,"has_output_dynsym_entry");\n          }\n          puVar24 = puVar23;\n          if (piVar14[1] != -1) {\n            if ((undefined4 *)((long)local_68 + uVar18) <= puVar22) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0016cdf0("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0016cdf0("../../gold/object.cc",0xafa,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_4,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar22 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    /* WARNING: Subroutine does not return */\n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");\n              }\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a349c:\n            *(undefined8 *)(puVar22 + 2) = uVar8;\n            *(undefined8 *)(puVar22 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar22 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar22 + 6) = uVar13;\n            *(undefined1 *)((long)puVar22 + 5) = uVar1;\n            puVar22 = puVar22 + 6;\n          }\n        }\n        local_b8 = local_b8 + 1;\n        lVar21 = lVar21 + 0x18;\n        if (uVar2 == local_b8) goto LAB_001a3680;\n        lVar9 = param_1[0x2c];\n      } while( true );" do (compound_statement "{\n        uVar13 = *(ushort *)(lVar21 + -0x12);\n        uVar12 = (ulong)uVar13;\n        piVar14 = (int *)(lVar9 + (-0x18 - lVar10) + lVar21);\n        if (uVar13 < 0xff00) {\nLAB_001a350a:\n          if ((ulong)(param_1[0xb] - param_1[10] >> 3) <= uVar12) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0016cdf0("../../gold/object.cc",0xad5,"write_local_symbols");\n          }\n          plVar20 = *(long **)(param_1[10] + uVar12 * 8);\n          if (plVar20 != (long *)0x0) {\n            if (*(code **)(*plVar20 + 0x58) == FUN_00175f90) {\n              uVar7 = *(uint *)((long)plVar20 + 0x7c);\n              if (uVar7 == 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0016cdf0("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar7 = (**(code **)(*plVar20 + 0x58))();\n            }\n            uVar13 = (ushort)uVar7;\n            iVar5 = *piVar14;\n            bVar11 = iVar5 != 0 && iVar5 != -2;\n            if (0xfeff < uVar7) {\n              if (iVar5 == 0 || iVar5 == -2) goto LAB_001a374c;\n              if (iVar5 != -1) {\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_5 + 0x38,&local_40);\n              }\n              iVar5 = piVar14[1];\n              if (iVar5 == 0) goto LAB_001a3764;\n              if (iVar5 == -1) {\n                iVar5 = *piVar14;\n                uVar13 = 0xffff;\n                bVar11 = iVar5 != 0 && iVar5 != -2;\n              }\n              else {\n                uVar13 = 0xffff;\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_6 + 0x38,&local_40);\n                iVar5 = *piVar14;\n                bVar11 = iVar5 != -2 && iVar5 != 0;\n              }\n            }\n            goto LAB_001a32f9;\n          }\n        }\n        else {\n          if (uVar13 == 0xffff) {\n            lVar9 = param_1[8];\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*param_1 + 0xd8))(param_1);\n              param_1[8] = lVar9;\n            }\n            uVar7 = FUN_0019a820(lVar9,param_1,local_b8);\n            uVar12 = (ulong)uVar7;\n            goto LAB_001a350a;\n          }\n          iVar5 = *piVar14;\n          bVar11 = iVar5 != 0 && iVar5 != -2;\nLAB_001a32f9:\n          if (!bVar11) {\nLAB_001a374c:\n                    /* WARNING: Subroutine does not return */\n            FUN_0016cdf0("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }\n          puVar23 = puVar24;\n          if (iVar5 != -1) {\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0016cdf0("../../gold/object.cc",0xae8,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_3,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar24 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) goto LAB_001a377c;\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a33ac:\n            *(undefined8 *)(puVar24 + 2) = uVar8;\n            puVar23 = puVar24 + 6;\n            *(undefined8 *)(puVar24 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar24 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar24 + 6) = uVar13;\n            *(undefined1 *)((long)puVar24 + 5) = uVar1;\n          }\n          if (piVar14[1] == 0) {\nLAB_001a3764:\n                    /* WARNING: Subroutine does not return */\n            FUN_0016cdf0("../../gold/object.h",0x738,"has_output_dynsym_entry");\n          }\n          puVar24 = puVar23;\n          if (piVar14[1] != -1) {\n            if ((undefined4 *)((long)local_68 + uVar18) <= puVar22) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0016cdf0("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0016cdf0("../../gold/object.cc",0xafa,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_4,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar22 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    /* WARNING: Subroutine does not return */\n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");\n              }\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a349c:\n            *(undefined8 *)(puVar22 + 2) = uVar8;\n            *(undefined8 *)(puVar22 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar22 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar22 + 6) = uVar13;\n            *(undefined1 *)((long)puVar22 + 5) = uVar1;\n            puVar22 = puVar22 + 6;\n          }\n        }\n        local_b8 = local_b8 + 1;\n        lVar21 = lVar21 + 0x18;\n        if (uVar2 == local_b8) goto LAB_001a3680;\n        lVar9 = param_1[0x2c];\n      }" { (expression_statement "uVar13 = *(ushort *)(lVar21 + -0x12);" (assignment_expression "uVar13 = *(ushort *)(lVar21 + -0x12)" identifier = (pointer_expression "*(ushort *)(lVar21 + -0x12)" * (cast_expression "(ushort *)(lVar21 + -0x12)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar21 + -0x12)" ( (binary_expression "lVar21 + -0x12" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = (ulong)uVar13;" (assignment_expression "uVar12 = (ulong)uVar13" identifier = (cast_expression "(ulong)uVar13" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "piVar14 = (int *)(lVar9 + (-0x18 - lVar10) + lVar21);" (assignment_expression "piVar14 = (int *)(lVar9 + (-0x18 - lVar10) + lVar21)" identifier = (cast_expression "(int *)(lVar9 + (-0x18 - lVar10) + lVar21)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + (-0x18 - lVar10) + lVar21)" ( (binary_expression "lVar9 + (-0x18 - lVar10) + lVar21" (binary_expression "lVar9 + (-0x18 - lVar10)" identifier + (parenthesized_expression "(-0x18 - lVar10)" ( (binary_expression "-0x18 - lVar10" number_literal - identifier) ))) + identifier) )))) ;) (if_statement "if (uVar13 < 0xff00) {\nLAB_001a350a:\n          if ((ulong)(param_1[0xb] - param_1[10] >> 3) <= uVar12) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0016cdf0("../../gold/object.cc",0xad5,"write_local_symbols");\n          }\n          plVar20 = *(long **)(param_1[10] + uVar12 * 8);\n          if (plVar20 != (long *)0x0) {\n            if (*(code **)(*plVar20 + 0x58) == FUN_00175f90) {\n              uVar7 = *(uint *)((long)plVar20 + 0x7c);\n              if (uVar7 == 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0016cdf0("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar7 = (**(code **)(*plVar20 + 0x58))();\n            }\n            uVar13 = (ushort)uVar7;\n            iVar5 = *piVar14;\n            bVar11 = iVar5 != 0 && iVar5 != -2;\n            if (0xfeff < uVar7) {\n              if (iVar5 == 0 || iVar5 == -2) goto LAB_001a374c;\n              if (iVar5 != -1) {\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_5 + 0x38,&local_40);\n              }\n              iVar5 = piVar14[1];\n              if (iVar5 == 0) goto LAB_001a3764;\n              if (iVar5 == -1) {\n                iVar5 = *piVar14;\n                uVar13 = 0xffff;\n                bVar11 = iVar5 != 0 && iVar5 != -2;\n              }\n              else {\n                uVar13 = 0xffff;\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_6 + 0x38,&local_40);\n                iVar5 = *piVar14;\n                bVar11 = iVar5 != -2 && iVar5 != 0;\n              }\n            }\n            goto LAB_001a32f9;\n          }\n        }\n        else {\n          if (uVar13 == 0xffff) {\n            lVar9 = param_1[8];\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*param_1 + 0xd8))(param_1);\n              param_1[8] = lVar9;\n            }\n            uVar7 = FUN_0019a820(lVar9,param_1,local_b8);\n            uVar12 = (ulong)uVar7;\n            goto LAB_001a350a;\n          }\n          iVar5 = *piVar14;\n          bVar11 = iVar5 != 0 && iVar5 != -2;\nLAB_001a32f9:\n          if (!bVar11) {\nLAB_001a374c:\n                    /* WARNING: Subroutine does not return */\n            FUN_0016cdf0("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }\n          puVar23 = puVar24;\n          if (iVar5 != -1) {\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0016cdf0("../../gold/object.cc",0xae8,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_3,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar24 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) goto LAB_001a377c;\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a33ac:\n            *(undefined8 *)(puVar24 + 2) = uVar8;\n            puVar23 = puVar24 + 6;\n            *(undefined8 *)(puVar24 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar24 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar24 + 6) = uVar13;\n            *(undefined1 *)((long)puVar24 + 5) = uVar1;\n          }\n          if (piVar14[1] == 0) {\nLAB_001a3764:\n                    /* WARNING: Subroutine does not return */\n            FUN_0016cdf0("../../gold/object.h",0x738,"has_output_dynsym_entry");\n          }\n          puVar24 = puVar23;\n          if (piVar14[1] != -1) {\n            if ((undefined4 *)((long)local_68 + uVar18) <= puVar22) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0016cdf0("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0016cdf0("../../gold/object.cc",0xafa,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_4,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar22 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    /* WARNING: Subroutine does not return */\n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");\n              }\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a349c:\n            *(undefined8 *)(puVar22 + 2) = uVar8;\n            *(undefined8 *)(puVar22 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar22 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar22 + 6) = uVar13;\n            *(undefined1 *)((long)puVar22 + 5) = uVar1;\n            puVar22 = puVar22 + 6;\n          }\n        }" if (parenthesized_expression "(uVar13 < 0xff00)" ( (binary_expression "uVar13 < 0xff00" identifier < number_literal) )) (compound_statement "{\nLAB_001a350a:\n          if ((ulong)(param_1[0xb] - param_1[10] >> 3) <= uVar12) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0016cdf0("../../gold/object.cc",0xad5,"write_local_symbols");\n          }\n          plVar20 = *(long **)(param_1[10] + uVar12 * 8);\n          if (plVar20 != (long *)0x0) {\n            if (*(code **)(*plVar20 + 0x58) == FUN_00175f90) {\n              uVar7 = *(uint *)((long)plVar20 + 0x7c);\n              if (uVar7 == 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0016cdf0("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar7 = (**(code **)(*plVar20 + 0x58))();\n            }\n            uVar13 = (ushort)uVar7;\n            iVar5 = *piVar14;\n            bVar11 = iVar5 != 0 && iVar5 != -2;\n            if (0xfeff < uVar7) {\n              if (iVar5 == 0 || iVar5 == -2) goto LAB_001a374c;\n              if (iVar5 != -1) {\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_5 + 0x38,&local_40);\n              }\n              iVar5 = piVar14[1];\n              if (iVar5 == 0) goto LAB_001a3764;\n              if (iVar5 == -1) {\n                iVar5 = *piVar14;\n                uVar13 = 0xffff;\n                bVar11 = iVar5 != 0 && iVar5 != -2;\n              }\n              else {\n                uVar13 = 0xffff;\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_6 + 0x38,&local_40);\n                iVar5 = *piVar14;\n                bVar11 = iVar5 != -2 && iVar5 != 0;\n              }\n            }\n            goto LAB_001a32f9;\n          }\n        }" { (labeled_statement "LAB_001a350a:\n          if ((ulong)(param_1[0xb] - param_1[10] >> 3) <= uVar12) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0016cdf0("../../gold/object.cc",0xad5,"write_local_symbols");\n          }" statement_identifier : (if_statement "if ((ulong)(param_1[0xb] - param_1[10] >> 3) <= uVar12) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0016cdf0("../../gold/object.cc",0xad5,"write_local_symbols");\n          }" if (parenthesized_expression "((ulong)(param_1[0xb] - param_1[10] >> 3) <= uVar12)" ( (binary_expression "(ulong)(param_1[0xb] - param_1[10] >> 3) <= uVar12" (call_expression "(ulong)(param_1[0xb] - param_1[10] >> 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(param_1[0xb] - param_1[10] >> 3)" ( (binary_expression "param_1[0xb] - param_1[10] >> 3" (binary_expression "param_1[0xb] - param_1[10]" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) - (subscript_expression "param_1[10]" identifier [ number_literal ])) >> number_literal) ))) <= identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            FUN_0016cdf0("../../gold/object.cc",0xad5,"write_local_symbols");\n          }" { comment (expression_statement "FUN_0016cdf0("../../gold/object.cc",0xad5,"write_local_symbols");" (call_expression "FUN_0016cdf0("../../gold/object.cc",0xad5,"write_local_symbols")" identifier (argument_list "("../../gold/object.cc",0xad5,"write_local_symbols")" ( (string_literal ""../../gold/object.cc"" " string_content ") , number_literal , (string_literal ""write_local_symbols"" " string_content ") ))) ;) }))) (expression_statement "plVar20 = *(long **)(param_1[10] + uVar12 * 8);" (assignment_expression "plVar20 = *(long **)(param_1[10] + uVar12 * 8)" identifier = (pointer_expression "*(long **)(param_1[10] + uVar12 * 8)" * (cast_expression "(long **)(param_1[10] + uVar12 * 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1[10] + uVar12 * 8)" ( (binary_expression "param_1[10] + uVar12 * 8" (subscript_expression "param_1[10]" identifier [ number_literal ]) + (binary_expression "uVar12 * 8" identifier * number_literal)) ))))) ;) (if_statement "if (plVar20 != (long *)0x0) {\n            if (*(code **)(*plVar20 + 0x58) == FUN_00175f90) {\n              uVar7 = *(uint *)((long)plVar20 + 0x7c);\n              if (uVar7 == 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0016cdf0("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar7 = (**(code **)(*plVar20 + 0x58))();\n            }\n            uVar13 = (ushort)uVar7;\n            iVar5 = *piVar14;\n            bVar11 = iVar5 != 0 && iVar5 != -2;\n            if (0xfeff < uVar7) {\n              if (iVar5 == 0 || iVar5 == -2) goto LAB_001a374c;\n              if (iVar5 != -1) {\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_5 + 0x38,&local_40);\n              }\n              iVar5 = piVar14[1];\n              if (iVar5 == 0) goto LAB_001a3764;\n              if (iVar5 == -1) {\n                iVar5 = *piVar14;\n                uVar13 = 0xffff;\n                bVar11 = iVar5 != 0 && iVar5 != -2;\n              }\n              else {\n                uVar13 = 0xffff;\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_6 + 0x38,&local_40);\n                iVar5 = *piVar14;\n                bVar11 = iVar5 != -2 && iVar5 != 0;\n              }\n            }\n            goto LAB_001a32f9;\n          }" if (parenthesized_expression "(plVar20 != (long *)0x0)" ( (binary_expression "plVar20 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if (*(code **)(*plVar20 + 0x58) == FUN_00175f90) {\n              uVar7 = *(uint *)((long)plVar20 + 0x7c);\n              if (uVar7 == 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0016cdf0("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar7 = (**(code **)(*plVar20 + 0x58))();\n            }\n            uVar13 = (ushort)uVar7;\n            iVar5 = *piVar14;\n            bVar11 = iVar5 != 0 && iVar5 != -2;\n            if (0xfeff < uVar7) {\n              if (iVar5 == 0 || iVar5 == -2) goto LAB_001a374c;\n              if (iVar5 != -1) {\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_5 + 0x38,&local_40);\n              }\n              iVar5 = piVar14[1];\n              if (iVar5 == 0) goto LAB_001a3764;\n              if (iVar5 == -1) {\n                iVar5 = *piVar14;\n                uVar13 = 0xffff;\n                bVar11 = iVar5 != 0 && iVar5 != -2;\n              }\n              else {\n                uVar13 = 0xffff;\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_6 + 0x38,&local_40);\n                iVar5 = *piVar14;\n                bVar11 = iVar5 != -2 && iVar5 != 0;\n              }\n            }\n            goto LAB_001a32f9;\n          }" { (if_statement "if (*(code **)(*plVar20 + 0x58) == FUN_00175f90) {\n              uVar7 = *(uint *)((long)plVar20 + 0x7c);\n              if (uVar7 == 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0016cdf0("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar7 = (**(code **)(*plVar20 + 0x58))();\n            }" if (parenthesized_expression "(*(code **)(*plVar20 + 0x58) == FUN_00175f90)" ( (binary_expression "*(code **)(*plVar20 + 0x58) == FUN_00175f90" (pointer_expression "*(code **)(*plVar20 + 0x58)" * (cast_expression "(code **)(*plVar20 + 0x58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar20 + 0x58)" ( (binary_expression "*plVar20 + 0x58" (pointer_expression "*plVar20" * identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n              uVar7 = *(uint *)((long)plVar20 + 0x7c);\n              if (uVar7 == 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0016cdf0("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }" { (expression_statement "uVar7 = *(uint *)((long)plVar20 + 0x7c);" (assignment_expression "uVar7 = *(uint *)((long)plVar20 + 0x7c)" identifier = (pointer_expression "*(uint *)((long)plVar20 + 0x7c)" * (cast_expression "(uint *)((long)plVar20 + 0x7c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar20 + 0x7c)" ( (binary_expression "(long)plVar20 + 0x7c" (cast_expression "(long)plVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (if_statement "if (uVar7 == 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0016cdf0("../../gold/output.h",0x1043,"do_out_shndx");\n              }" if (parenthesized_expression "(uVar7 == 0xffffffff)" ( (binary_expression "uVar7 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                FUN_0016cdf0("../../gold/output.h",0x1043,"do_out_shndx");\n              }" { comment (expression_statement "FUN_0016cdf0("../../gold/output.h",0x1043,"do_out_shndx");" (call_expression "FUN_0016cdf0("../../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              uVar7 = (**(code **)(*plVar20 + 0x58))();\n            }" else (compound_statement "{\n              uVar7 = (**(code **)(*plVar20 + 0x58))();\n            }" { (expression_statement "uVar7 = (**(code **)(*plVar20 + 0x58))();" (assignment_expression "uVar7 = (**(code **)(*plVar20 + 0x58))()" identifier = (call_expression "(**(code **)(*plVar20 + 0x58))()" (parenthesized_expression "(**(code **)(*plVar20 + 0x58))" ( (pointer_expression "**(code **)(*plVar20 + 0x58)" * (pointer_expression "*(code **)(*plVar20 + 0x58)" * (cast_expression "(code **)(*plVar20 + 0x58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar20 + 0x58)" ( (binary_expression "*plVar20 + 0x58" (pointer_expression "*plVar20" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }))) (expression_statement "uVar13 = (ushort)uVar7;" (assignment_expression "uVar13 = (ushort)uVar7" identifier = (cast_expression "(ushort)uVar7" ( (type_descriptor "ushort" type_identifier) ) identifier)) ;) (expression_statement "iVar5 = *piVar14;" (assignment_expression "iVar5 = *piVar14" identifier = (pointer_expression "*piVar14" * identifier)) ;) (expression_statement "bVar11 = iVar5 != 0 && iVar5 != -2;" (assignment_expression "bVar11 = iVar5 != 0 && iVar5 != -2" identifier = (binary_expression "iVar5 != 0 && iVar5 != -2" (binary_expression "iVar5 != 0" identifier != number_literal) && (binary_expression "iVar5 != -2" identifier != number_literal))) ;) (if_statement "if (0xfeff < uVar7) {\n              if (iVar5 == 0 || iVar5 == -2) goto LAB_001a374c;\n              if (iVar5 != -1) {\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_5 + 0x38,&local_40);\n              }\n              iVar5 = piVar14[1];\n              if (iVar5 == 0) goto LAB_001a3764;\n              if (iVar5 == -1) {\n                iVar5 = *piVar14;\n                uVar13 = 0xffff;\n                bVar11 = iVar5 != 0 && iVar5 != -2;\n              }\n              else {\n                uVar13 = 0xffff;\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_6 + 0x38,&local_40);\n                iVar5 = *piVar14;\n                bVar11 = iVar5 != -2 && iVar5 != 0;\n              }\n            }" if (parenthesized_expression "(0xfeff < uVar7)" ( (binary_expression "0xfeff < uVar7" number_literal < identifier) )) (compound_statement "{\n              if (iVar5 == 0 || iVar5 == -2) goto LAB_001a374c;\n              if (iVar5 != -1) {\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_5 + 0x38,&local_40);\n              }\n              iVar5 = piVar14[1];\n              if (iVar5 == 0) goto LAB_001a3764;\n              if (iVar5 == -1) {\n                iVar5 = *piVar14;\n                uVar13 = 0xffff;\n                bVar11 = iVar5 != 0 && iVar5 != -2;\n              }\n              else {\n                uVar13 = 0xffff;\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_6 + 0x38,&local_40);\n                iVar5 = *piVar14;\n                bVar11 = iVar5 != -2 && iVar5 != 0;\n              }\n            }" { (if_statement "if (iVar5 == 0 || iVar5 == -2) goto LAB_001a374c;" if (parenthesized_expression "(iVar5 == 0 || iVar5 == -2)" ( (binary_expression "iVar5 == 0 || iVar5 == -2" (binary_expression "iVar5 == 0" identifier == number_literal) || (binary_expression "iVar5 == -2" identifier == number_literal)) )) (goto_statement "goto LAB_001a374c;" goto statement_identifier ;)) (if_statement "if (iVar5 != -1) {\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_5 + 0x38,&local_40);\n              }" if (parenthesized_expression "(iVar5 != -1)" ( (binary_expression "iVar5 != -1" identifier != number_literal) )) (compound_statement "{\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_5 + 0x38,&local_40);\n              }" { (expression_statement "local_40 = iVar5;" (assignment_expression "local_40 = iVar5" identifier = identifier) ;) (expression_statement "local_3c = uVar7;" (assignment_expression "local_3c = uVar7" identifier = identifier) ;) (expression_statement "FUN_0017ab80(param_5 + 0x38,&local_40);" (call_expression "FUN_0017ab80(param_5 + 0x38,&local_40)" identifier (argument_list "(param_5 + 0x38,&local_40)" ( (binary_expression "param_5 + 0x38" identifier + number_literal) , (pointer_expression "&local_40" & identifier) ))) ;) })) (expression_statement "iVar5 = piVar14[1];" (assignment_expression "iVar5 = piVar14[1]" identifier = (subscript_expression "piVar14[1]" identifier [ number_literal ])) ;) (if_statement "if (iVar5 == 0) goto LAB_001a3764;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001a3764;" goto statement_identifier ;)) (if_statement "if (iVar5 == -1) {\n                iVar5 = *piVar14;\n                uVar13 = 0xffff;\n                bVar11 = iVar5 != 0 && iVar5 != -2;\n              }\n              else {\n                uVar13 = 0xffff;\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_6 + 0x38,&local_40);\n                iVar5 = *piVar14;\n                bVar11 = iVar5 != -2 && iVar5 != 0;\n              }" if (parenthesized_expression "(iVar5 == -1)" ( (binary_expression "iVar5 == -1" identifier == number_literal) )) (compound_statement "{\n                iVar5 = *piVar14;\n                uVar13 = 0xffff;\n                bVar11 = iVar5 != 0 && iVar5 != -2;\n              }" { (expression_statement "iVar5 = *piVar14;" (assignment_expression "iVar5 = *piVar14" identifier = (pointer_expression "*piVar14" * identifier)) ;) (expression_statement "uVar13 = 0xffff;" (assignment_expression "uVar13 = 0xffff" identifier = number_literal) ;) (expression_statement "bVar11 = iVar5 != 0 && iVar5 != -2;" (assignment_expression "bVar11 = iVar5 != 0 && iVar5 != -2" identifier = (binary_expression "iVar5 != 0 && iVar5 != -2" (binary_expression "iVar5 != 0" identifier != number_literal) && (binary_expression "iVar5 != -2" identifier != number_literal))) ;) }) (else_clause "else {\n                uVar13 = 0xffff;\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_6 + 0x38,&local_40);\n                iVar5 = *piVar14;\n                bVar11 = iVar5 != -2 && iVar5 != 0;\n              }" else (compound_statement "{\n                uVar13 = 0xffff;\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_6 + 0x38,&local_40);\n                iVar5 = *piVar14;\n                bVar11 = iVar5 != -2 && iVar5 != 0;\n              }" { (expression_statement "uVar13 = 0xffff;" (assignment_expression "uVar13 = 0xffff" identifier = number_literal) ;) (expression_statement "local_40 = iVar5;" (assignment_expression "local_40 = iVar5" identifier = identifier) ;) (expression_statement "local_3c = uVar7;" (assignment_expression "local_3c = uVar7" identifier = identifier) ;) (expression_statement "FUN_0017ab80(param_6 + 0x38,&local_40);" (call_expression "FUN_0017ab80(param_6 + 0x38,&local_40)" identifier (argument_list "(param_6 + 0x38,&local_40)" ( (binary_expression "param_6 + 0x38" identifier + number_literal) , (pointer_expression "&local_40" & identifier) ))) ;) (expression_statement "iVar5 = *piVar14;" (assignment_expression "iVar5 = *piVar14" identifier = (pointer_expression "*piVar14" * identifier)) ;) (expression_statement "bVar11 = iVar5 != -2 && iVar5 != 0;" (assignment_expression "bVar11 = iVar5 != -2 && iVar5 != 0" identifier = (binary_expression "iVar5 != -2 && iVar5 != 0" (binary_expression "iVar5 != -2" identifier != number_literal) && (binary_expression "iVar5 != 0" identifier != number_literal))) ;) }))) })) (goto_statement "goto LAB_001a32f9;" goto statement_identifier ;) })) }) (else_clause "else {\n          if (uVar13 == 0xffff) {\n            lVar9 = param_1[8];\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*param_1 + 0xd8))(param_1);\n              param_1[8] = lVar9;\n            }\n            uVar7 = FUN_0019a820(lVar9,param_1,local_b8);\n            uVar12 = (ulong)uVar7;\n            goto LAB_001a350a;\n          }\n          iVar5 = *piVar14;\n          bVar11 = iVar5 != 0 && iVar5 != -2;\nLAB_001a32f9:\n          if (!bVar11) {\nLAB_001a374c:\n                    /* WARNING: Subroutine does not return */\n            FUN_0016cdf0("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }\n          puVar23 = puVar24;\n          if (iVar5 != -1) {\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0016cdf0("../../gold/object.cc",0xae8,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_3,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar24 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) goto LAB_001a377c;\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a33ac:\n            *(undefined8 *)(puVar24 + 2) = uVar8;\n            puVar23 = puVar24 + 6;\n            *(undefined8 *)(puVar24 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar24 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar24 + 6) = uVar13;\n            *(undefined1 *)((long)puVar24 + 5) = uVar1;\n          }\n          if (piVar14[1] == 0) {\nLAB_001a3764:\n                    /* WARNING: Subroutine does not return */\n            FUN_0016cdf0("../../gold/object.h",0x738,"has_output_dynsym_entry");\n          }\n          puVar24 = puVar23;\n          if (piVar14[1] != -1) {\n            if ((undefined4 *)((long)local_68 + uVar18) <= puVar22) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0016cdf0("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0016cdf0("../../gold/object.cc",0xafa,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_4,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar22 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    /* WARNING: Subroutine does not return */\n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");\n              }\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a349c:\n            *(undefined8 *)(puVar22 + 2) = uVar8;\n            *(undefined8 *)(puVar22 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar22 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar22 + 6) = uVar13;\n            *(undefined1 *)((long)puVar22 + 5) = uVar1;\n            puVar22 = puVar22 + 6;\n          }\n        }" else (compound_statement "{\n          if (uVar13 == 0xffff) {\n            lVar9 = param_1[8];\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*param_1 + 0xd8))(param_1);\n              param_1[8] = lVar9;\n            }\n            uVar7 = FUN_0019a820(lVar9,param_1,local_b8);\n            uVar12 = (ulong)uVar7;\n            goto LAB_001a350a;\n          }\n          iVar5 = *piVar14;\n          bVar11 = iVar5 != 0 && iVar5 != -2;\nLAB_001a32f9:\n          if (!bVar11) {\nLAB_001a374c:\n                    /* WARNING: Subroutine does not return */\n            FUN_0016cdf0("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }\n          puVar23 = puVar24;\n          if (iVar5 != -1) {\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0016cdf0("../../gold/object.cc",0xae8,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_3,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar24 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) goto LAB_001a377c;\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a33ac:\n            *(undefined8 *)(puVar24 + 2) = uVar8;\n            puVar23 = puVar24 + 6;\n            *(undefined8 *)(puVar24 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar24 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar24 + 6) = uVar13;\n            *(undefined1 *)((long)puVar24 + 5) = uVar1;\n          }\n          if (piVar14[1] == 0) {\nLAB_001a3764:\n                    /* WARNING: Subroutine does not return */\n            FUN_0016cdf0("../../gold/object.h",0x738,"has_output_dynsym_entry");\n          }\n          puVar24 = puVar23;\n          if (piVar14[1] != -1) {\n            if ((undefined4 *)((long)local_68 + uVar18) <= puVar22) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0016cdf0("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0016cdf0("../../gold/object.cc",0xafa,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_4,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar22 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    /* WARNING: Subroutine does not return */\n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");\n              }\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a349c:\n            *(undefined8 *)(puVar22 + 2) = uVar8;\n            *(undefined8 *)(puVar22 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar22 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar22 + 6) = uVar13;\n            *(undefined1 *)((long)puVar22 + 5) = uVar1;\n            puVar22 = puVar22 + 6;\n          }\n        }" { (if_statement "if (uVar13 == 0xffff) {\n            lVar9 = param_1[8];\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*param_1 + 0xd8))(param_1);\n              param_1[8] = lVar9;\n            }\n            uVar7 = FUN_0019a820(lVar9,param_1,local_b8);\n            uVar12 = (ulong)uVar7;\n            goto LAB_001a350a;\n          }" if (parenthesized_expression "(uVar13 == 0xffff)" ( (binary_expression "uVar13 == 0xffff" identifier == number_literal) )) (compound_statement "{\n            lVar9 = param_1[8];\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*param_1 + 0xd8))(param_1);\n              param_1[8] = lVar9;\n            }\n            uVar7 = FUN_0019a820(lVar9,param_1,local_b8);\n            uVar12 = (ulong)uVar7;\n            goto LAB_001a350a;\n          }" { (expression_statement "lVar9 = param_1[8];" (assignment_expression "lVar9 = param_1[8]" identifier = (subscript_expression "param_1[8]" identifier [ number_literal ])) ;) (if_statement "if (lVar9 == 0) {\n              lVar9 = (**(code **)(*param_1 + 0xd8))(param_1);\n              param_1[8] = lVar9;\n            }" if (parenthesized_expression "(lVar9 == 0)" ( (binary_expression "lVar9 == 0" identifier == number_literal) )) (compound_statement "{\n              lVar9 = (**(code **)(*param_1 + 0xd8))(param_1);\n              param_1[8] = lVar9;\n            }" { (expression_statement "lVar9 = (**(code **)(*param_1 + 0xd8))(param_1);" (assignment_expression "lVar9 = (**(code **)(*param_1 + 0xd8))(param_1)" identifier = (call_expression "(**(code **)(*param_1 + 0xd8))(param_1)" (parenthesized_expression "(**(code **)(*param_1 + 0xd8))" ( (pointer_expression "**(code **)(*param_1 + 0xd8)" * (pointer_expression "*(code **)(*param_1 + 0xd8)" * (cast_expression "(code **)(*param_1 + 0xd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0xd8)" ( (binary_expression "*param_1 + 0xd8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) )) (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "param_1[8] = lVar9;" (assignment_expression "param_1[8] = lVar9" (subscript_expression "param_1[8]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "uVar7 = FUN_0019a820(lVar9,param_1,local_b8);" (assignment_expression "uVar7 = FUN_0019a820(lVar9,param_1,local_b8)" identifier = (call_expression "FUN_0019a820(lVar9,param_1,local_b8)" identifier (argument_list "(lVar9,param_1,local_b8)" ( identifier , identifier , identifier )))) ;) (expression_statement "uVar12 = (ulong)uVar7;" (assignment_expression "uVar12 = (ulong)uVar7" identifier = (cast_expression "(ulong)uVar7" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (goto_statement "goto LAB_001a350a;" goto statement_identifier ;) })) (expression_statement "iVar5 = *piVar14;" (assignment_expression "iVar5 = *piVar14" identifier = (pointer_expression "*piVar14" * identifier)) ;) (expression_statement "bVar11 = iVar5 != 0 && iVar5 != -2;" (assignment_expression "bVar11 = iVar5 != 0 && iVar5 != -2" identifier = (binary_expression "iVar5 != 0 && iVar5 != -2" (binary_expression "iVar5 != 0" identifier != number_literal) && (binary_expression "iVar5 != -2" identifier != number_literal))) ;) (labeled_statement "LAB_001a32f9:\n          if (!bVar11) {\nLAB_001a374c:\n                    /* WARNING: Subroutine does not return */\n            FUN_0016cdf0("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }" statement_identifier : (if_statement "if (!bVar11) {\nLAB_001a374c:\n                    /* WARNING: Subroutine does not return */\n            FUN_0016cdf0("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }" if (parenthesized_expression "(!bVar11)" ( (unary_expression "!bVar11" ! identifier) )) (compound_statement "{\nLAB_001a374c:\n                    /* WARNING: Subroutine does not return */\n            FUN_0016cdf0("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }" { (labeled_statement "LAB_001a374c:\n                    /* WARNING: Subroutine does not return */\n            FUN_0016cdf0("../../gold/object.h",0x6fb,"has_output_symtab_entry");" statement_identifier : comment (expression_statement "FUN_0016cdf0("../../gold/object.h",0x6fb,"has_output_symtab_entry");" (call_expression "FUN_0016cdf0("../../gold/object.h",0x6fb,"has_output_symtab_entry")" identifier (argument_list "("../../gold/object.h",0x6fb,"has_output_symtab_entry")" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""has_output_symtab_entry"" " string_content ") ))) ;)) }))) (expression_statement "puVar23 = puVar24;" (assignment_expression "puVar23 = puVar24" identifier = identifier) ;) (if_statement "if (iVar5 != -1) {\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0016cdf0("../../gold/object.cc",0xae8,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_3,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar24 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) goto LAB_001a377c;\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a33ac:\n            *(undefined8 *)(puVar24 + 2) = uVar8;\n            puVar23 = puVar24 + 6;\n            *(undefined8 *)(puVar24 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar24 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar24 + 6) = uVar13;\n            *(undefined1 *)((long)puVar24 + 5) = uVar1;\n          }" if (parenthesized_expression "(iVar5 != -1)" ( (binary_expression "iVar5 != -1" identifier != number_literal) )) (compound_statement "{\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0016cdf0("../../gold/object.cc",0xae8,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_3,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar24 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) goto LAB_001a377c;\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a33ac:\n            *(undefined8 *)(puVar24 + 2) = uVar8;\n            puVar23 = puVar24 + 6;\n            *(undefined8 *)(puVar24 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar24 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar24 + 6) = uVar13;\n            *(undefined1 *)((long)puVar24 + 5) = uVar1;\n          }" { (if_statement "if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0016cdf0("../../gold/object.cc",0xae8,"write_local_symbols");\n            }" if (parenthesized_expression "(local_48 <= *(uint *)(lVar21 + -0x18))" ( (binary_expression "local_48 <= *(uint *)(lVar21 + -0x18)" identifier <= (pointer_expression "*(uint *)(lVar21 + -0x18)" * (cast_expression "(uint *)(lVar21 + -0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar21 + -0x18)" ( (binary_expression "lVar21 + -0x18" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n              FUN_0016cdf0("../../gold/object.cc",0xae8,"write_local_symbols");\n            }" { comment (expression_statement "FUN_0016cdf0("../../gold/object.cc",0xae8,"write_local_symbols");" (call_expression "FUN_0016cdf0("../../gold/object.cc",0xae8,"write_local_symbols")" identifier (argument_list "("../../gold/object.cc",0xae8,"write_local_symbols")" ( (string_literal ""../../gold/object.cc"" " string_content ") , number_literal , (string_literal ""write_local_symbols"" " string_content ") ))) ;) })) (expression_statement "uVar6 = FUN_0021b7b0(param_3,local_b0 + *(uint *)(lVar21 + -0x18));" (assignment_expression "uVar6 = FUN_0021b7b0(param_3,local_b0 + *(uint *)(lVar21 + -0x18))" identifier = (call_expression "FUN_0021b7b0(param_3,local_b0 + *(uint *)(lVar21 + -0x18))" identifier (argument_list "(param_3,local_b0 + *(uint *)(lVar21 + -0x18))" ( identifier , (binary_expression "local_b0 + *(uint *)(lVar21 + -0x18)" identifier + (pointer_expression "*(uint *)(lVar21 + -0x18)" * (cast_expression "(uint *)(lVar21 + -0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar21 + -0x18)" ( (binary_expression "lVar21 + -0x18" identifier + number_literal) ))))) )))) ;) (expression_statement "*puVar24 = uVar6;" (assignment_expression "*puVar24 = uVar6" (pointer_expression "*puVar24" * identifier) = identifier) ;) (if_statement "if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) goto LAB_001a377c;\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }" if (parenthesized_expression "((char)*(byte *)((long)piVar14 + 0xb) < '\0')" ( (binary_expression "(char)*(byte *)((long)piVar14 + 0xb) < '\0'" (cast_expression "(char)*(byte *)((long)piVar14 + 0xb)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)((long)piVar14 + 0xb)" * (cast_expression "(byte *)((long)piVar14 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)piVar14 + 0xb)" ( (binary_expression "(long)piVar14 + 0xb" (cast_expression "(long)piVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }" { (expression_statement "uVar8 = *(undefined8 *)(piVar14 + 4);" (assignment_expression "uVar8 = *(undefined8 *)(piVar14 + 4)" identifier = (pointer_expression "*(undefined8 *)(piVar14 + 4)" * (cast_expression "(undefined8 *)(piVar14 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar14 + 4)" ( (binary_expression "piVar14 + 4" identifier + number_literal) ))))) ;) }) (else_clause "else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) goto LAB_001a377c;\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }" else (compound_statement "{\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) goto LAB_001a377c;\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }" { (if_statement "if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) goto LAB_001a377c;" if (parenthesized_expression "((*(byte *)((long)piVar14 + 0xb) & 8) == 0)" ( (binary_expression "(*(byte *)((long)piVar14 + 0xb) & 8) == 0" (parenthesized_expression "(*(byte *)((long)piVar14 + 0xb) & 8)" ( (binary_expression "*(byte *)((long)piVar14 + 0xb) & 8" (pointer_expression "*(byte *)((long)piVar14 + 0xb)" * (cast_expression "(byte *)((long)piVar14 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)piVar14 + 0xb)" ( (binary_expression "(long)piVar14 + 0xb" (cast_expression "(long)piVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_001a377c;" goto statement_identifier ;)) (expression_statement "puVar3 = *(ulong **)(piVar14 + 4);" (assignment_expression "puVar3 = *(ulong **)(piVar14 + 4)" identifier = (pointer_expression "*(ulong **)(piVar14 + 4)" * (cast_expression "(ulong **)(piVar14 + 4)" ( (type_descriptor "ulong **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar14 + 4)" ( (binary_expression "piVar14 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = *puVar3 % puVar3[3];" (assignment_expression "uVar12 = *puVar3 % puVar3[3]" identifier = (binary_expression "*puVar3 % puVar3[3]" (pointer_expression "*puVar3" * identifier) % (subscript_expression "puVar3[3]" identifier [ number_literal ]))) ;) (expression_statement "plVar20 = *(long **)(puVar3[2] + uVar12 * 8);" (assignment_expression "plVar20 = *(long **)(puVar3[2] + uVar12 * 8)" identifier = (pointer_expression "*(long **)(puVar3[2] + uVar12 * 8)" * (cast_expression "(long **)(puVar3[2] + uVar12 * 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3[2] + uVar12 * 8)" ( (binary_expression "puVar3[2] + uVar12 * 8" (subscript_expression "puVar3[2]" identifier [ number_literal ]) + (binary_expression "uVar12 * 8" identifier * number_literal)) ))))) ;) (if_statement "if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }\n              }" if (parenthesized_expression "(plVar20 != (long *)0x0)" ( (binary_expression "plVar20 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }\n              }" { (expression_statement "uVar15 = ((long *)*plVar20)[1];" (assignment_expression "uVar15 = ((long *)*plVar20)[1]" identifier = (subscript_expression "((long *)*plVar20)[1]" (parenthesized_expression "((long *)*plVar20)" ( (cast_expression "(long *)*plVar20" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar20" * identifier)) )) [ number_literal ])) ;) (expression_statement "plVar4 = (long *)*plVar20;" (assignment_expression "plVar4 = (long *)*plVar20" identifier = (cast_expression "(long *)*plVar20" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar20" * identifier))) ;) (while_statement "while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }" while (parenthesized_expression "(plVar19 = plVar4, *puVar3 != uVar15)" ( (comma_expression "plVar19 = plVar4, *puVar3 != uVar15" (assignment_expression "plVar19 = plVar4" identifier = identifier) , (binary_expression "*puVar3 != uVar15" (pointer_expression "*puVar3" * identifier) != identifier)) )) (compound_statement "{\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }" { (expression_statement "plVar4 = (long *)*plVar19;" (assignment_expression "plVar4 = (long *)*plVar19" identifier = (cast_expression "(long *)*plVar19" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar19" * identifier))) ;) (if_statement "if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;" if (parenthesized_expression "((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))" ( (binary_expression "(plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3])" (parenthesized_expression "(plVar4 == (long *)0x0)" ( (binary_expression "plVar4 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3])" ( (comma_expression "uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]" (assignment_expression "uVar15 = plVar4[1]" identifier = (subscript_expression "plVar4[1]" identifier [ number_literal ])) , (comma_expression "plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]" (assignment_expression "plVar20 = plVar19" identifier = identifier) , (binary_expression "uVar12 != uVar15 % puVar3[3]" identifier != (binary_expression "uVar15 % puVar3[3]" identifier % (subscript_expression "puVar3[3]" identifier [ number_literal ]))))) ))) )) (goto_statement "goto LAB_001a3660;" goto statement_identifier ;)) })) (if_statement "if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }" if (parenthesized_expression "(*plVar20 != 0)" ( (binary_expression "*plVar20 != 0" (pointer_expression "*plVar20" * identifier) != number_literal) )) (compound_statement "{\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }" { (expression_statement "uVar8 = *(undefined8 *)(*plVar20 + 0x10);" (assignment_expression "uVar8 = *(undefined8 *)(*plVar20 + 0x10)" identifier = (pointer_expression "*(undefined8 *)(*plVar20 + 0x10)" * (cast_expression "(undefined8 *)(*plVar20 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*plVar20 + 0x10)" ( (binary_expression "*plVar20 + 0x10" (pointer_expression "*plVar20" * identifier) + number_literal) ))))) ;) (goto_statement "goto LAB_001a33ac;" goto statement_identifier ;) })) })) (labeled_statement "LAB_001a3660:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);" statement_identifier : (expression_statement "uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);" (assignment_expression "uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff)" identifier = (call_expression "FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff)" identifier (argument_list "(puVar3,param_1,piVar14[2] & 0x7ffffff)" ( identifier , identifier , (binary_expression "piVar14[2] & 0x7ffffff" (subscript_expression "piVar14[2]" identifier [ number_literal ]) & number_literal) )))) ;)) }))) (labeled_statement "LAB_001a33ac:\n            *(undefined8 *)(puVar24 + 2) = uVar8;" statement_identifier : (expression_statement "*(undefined8 *)(puVar24 + 2) = uVar8;" (assignment_expression "*(undefined8 *)(puVar24 + 2) = uVar8" (pointer_expression "*(undefined8 *)(puVar24 + 2)" * (cast_expression "(undefined8 *)(puVar24 + 2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 2)" ( (binary_expression "puVar24 + 2" identifier + number_literal) )))) = identifier) ;)) (expression_statement "puVar23 = puVar24 + 6;" (assignment_expression "puVar23 = puVar24 + 6" identifier = (binary_expression "puVar24 + 6" identifier + number_literal)) ;) (expression_statement "*(undefined8 *)(puVar24 + 4) = *(undefined8 *)(lVar21 + -8);" (assignment_expression "*(undefined8 *)(puVar24 + 4) = *(undefined8 *)(lVar21 + -8)" (pointer_expression "*(undefined8 *)(puVar24 + 4)" * (cast_expression "(undefined8 *)(puVar24 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 4)" ( (binary_expression "puVar24 + 4" identifier + number_literal) )))) = (pointer_expression "*(undefined8 *)(lVar21 + -8)" * (cast_expression "(undefined8 *)(lVar21 + -8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar21 + -8)" ( (binary_expression "lVar21 + -8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)(puVar24 + 1) = *(undefined1 *)(lVar21 + -0x14);" (assignment_expression "*(undefined1 *)(puVar24 + 1) = *(undefined1 *)(lVar21 + -0x14)" (pointer_expression "*(undefined1 *)(puVar24 + 1)" * (cast_expression "(undefined1 *)(puVar24 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 1)" ( (binary_expression "puVar24 + 1" identifier + number_literal) )))) = (pointer_expression "*(undefined1 *)(lVar21 + -0x14)" * (cast_expression "(undefined1 *)(lVar21 + -0x14)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar21 + -0x14)" ( (binary_expression "lVar21 + -0x14" identifier + number_literal) ))))) ;) (expression_statement "uVar1 = *(undefined1 *)(lVar21 + -0x13);" (assignment_expression "uVar1 = *(undefined1 *)(lVar21 + -0x13)" identifier = (pointer_expression "*(undefined1 *)(lVar21 + -0x13)" * (cast_expression "(undefined1 *)(lVar21 + -0x13)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar21 + -0x13)" ( (binary_expression "lVar21 + -0x13" identifier + number_literal) ))))) ;) (expression_statement "*(ushort *)((long)puVar24 + 6) = uVar13;" (assignment_expression "*(ushort *)((long)puVar24 + 6) = uVar13" (pointer_expression "*(ushort *)((long)puVar24 + 6)" * (cast_expression "(ushort *)((long)puVar24 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar24 + 6)" ( (binary_expression "(long)puVar24 + 6" (cast_expression "(long)puVar24" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)((long)puVar24 + 5) = uVar1;" (assignment_expression "*(undefined1 *)((long)puVar24 + 5) = uVar1" (pointer_expression "*(undefined1 *)((long)puVar24 + 5)" * (cast_expression "(undefined1 *)((long)puVar24 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar24 + 5)" ( (binary_expression "(long)puVar24 + 5" (cast_expression "(long)puVar24" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) })) (if_statement "if (piVar14[1] == 0) {\nLAB_001a3764:\n                    /* WARNING: Subroutine does not return */\n            FUN_0016cdf0("../../gold/object.h",0x738,"has_output_dynsym_entry");\n          }" if (parenthesized_expression "(piVar14[1] == 0)" ( (binary_expression "piVar14[1] == 0" (subscript_expression "piVar14[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\nLAB_001a3764:\n                    /* WARNING: Subroutine does not return */\n            FUN_0016cdf0("../../gold/object.h",0x738,"has_output_dynsym_entry");\n          }" { (labeled_statement "LAB_001a3764:\n                    /* WARNING: Subroutine does not return */\n            FUN_0016cdf0("../../gold/object.h",0x738,"has_output_dynsym_entry");" statement_identifier : comment (expression_statement "FUN_0016cdf0("../../gold/object.h",0x738,"has_output_dynsym_entry");" (call_expression "FUN_0016cdf0("../../gold/object.h",0x738,"has_output_dynsym_entry")" identifier (argument_list "("../../gold/object.h",0x738,"has_output_dynsym_entry")" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""has_output_dynsym_entry"" " string_content ") ))) ;)) })) (expression_statement "puVar24 = puVar23;" (assignment_expression "puVar24 = puVar23" identifier = identifier) ;) (if_statement "if (piVar14[1] != -1) {\n            if ((undefined4 *)((long)local_68 + uVar18) <= puVar22) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0016cdf0("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0016cdf0("../../gold/object.cc",0xafa,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_4,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar22 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    /* WARNING: Subroutine does not return */\n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");\n              }\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a349c:\n            *(undefined8 *)(puVar22 + 2) = uVar8;\n            *(undefined8 *)(puVar22 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar22 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar22 + 6) = uVar13;\n            *(undefined1 *)((long)puVar22 + 5) = uVar1;\n            puVar22 = puVar22 + 6;\n          }" if (parenthesized_expression "(piVar14[1] != -1)" ( (binary_expression "piVar14[1] != -1" (subscript_expression "piVar14[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n            if ((undefined4 *)((long)local_68 + uVar18) <= puVar22) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0016cdf0("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0016cdf0("../../gold/object.cc",0xafa,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_4,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar22 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    /* WARNING: Subroutine does not return */\n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");\n              }\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a349c:\n            *(undefined8 *)(puVar22 + 2) = uVar8;\n            *(undefined8 *)(puVar22 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar22 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar22 + 6) = uVar13;\n            *(undefined1 *)((long)puVar22 + 5) = uVar1;\n            puVar22 = puVar22 + 6;\n          }" { (if_statement "if ((undefined4 *)((long)local_68 + uVar18) <= puVar22) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0016cdf0("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }" if (parenthesized_expression "((undefined4 *)((long)local_68 + uVar18) <= puVar22)" ( (binary_expression "(undefined4 *)((long)local_68 + uVar18) <= puVar22" (cast_expression "(undefined4 *)((long)local_68 + uVar18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_68 + uVar18)" ( (binary_expression "(long)local_68 + uVar18" (cast_expression "(long)local_68" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) <= identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n              FUN_0016cdf0("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }" { comment (expression_statement "FUN_0016cdf0("../../gold/object.cc",0xaf7,"write_local_symbols");" (call_expression "FUN_0016cdf0("../../gold/object.cc",0xaf7,"write_local_symbols")" identifier (argument_list "("../../gold/object.cc",0xaf7,"write_local_symbols")" ( (string_literal ""../../gold/object.cc"" " string_content ") , number_literal , (string_literal ""write_local_symbols"" " string_content ") ))) ;) })) (if_statement "if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0016cdf0("../../gold/object.cc",0xafa,"write_local_symbols");\n            }" if (parenthesized_expression "(local_48 <= *(uint *)(lVar21 + -0x18))" ( (binary_expression "local_48 <= *(uint *)(lVar21 + -0x18)" identifier <= (pointer_expression "*(uint *)(lVar21 + -0x18)" * (cast_expression "(uint *)(lVar21 + -0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar21 + -0x18)" ( (binary_expression "lVar21 + -0x18" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n              FUN_0016cdf0("../../gold/object.cc",0xafa,"write_local_symbols");\n            }" { comment (expression_statement "FUN_0016cdf0("../../gold/object.cc",0xafa,"write_local_symbols");" (call_expression "FUN_0016cdf0("../../gold/object.cc",0xafa,"write_local_symbols")" identifier (argument_list "("../../gold/object.cc",0xafa,"write_local_symbols")" ( (string_literal ""../../gold/object.cc"" " string_content ") , number_literal , (string_literal ""write_local_symbols"" " string_content ") ))) ;) })) (expression_statement "uVar6 = FUN_0021b7b0(param_4,local_b0 + *(uint *)(lVar21 + -0x18));" (assignment_expression "uVar6 = FUN_0021b7b0(param_4,local_b0 + *(uint *)(lVar21 + -0x18))" identifier = (call_expression "FUN_0021b7b0(param_4,local_b0 + *(uint *)(lVar21 + -0x18))" identifier (argument_list "(param_4,local_b0 + *(uint *)(lVar21 + -0x18))" ( identifier , (binary_expression "local_b0 + *(uint *)(lVar21 + -0x18)" identifier + (pointer_expression "*(uint *)(lVar21 + -0x18)" * (cast_expression "(uint *)(lVar21 + -0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar21 + -0x18)" ( (binary_expression "lVar21 + -0x18" identifier + number_literal) ))))) )))) ;) (expression_statement "*puVar22 = uVar6;" (assignment_expression "*puVar22 = uVar6" (pointer_expression "*puVar22" * identifier) = identifier) ;) (if_statement "if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    /* WARNING: Subroutine does not return */\n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");\n              }\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }" if (parenthesized_expression "((char)*(byte *)((long)piVar14 + 0xb) < '\0')" ( (binary_expression "(char)*(byte *)((long)piVar14 + 0xb) < '\0'" (cast_expression "(char)*(byte *)((long)piVar14 + 0xb)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)((long)piVar14 + 0xb)" * (cast_expression "(byte *)((long)piVar14 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)piVar14 + 0xb)" ( (binary_expression "(long)piVar14 + 0xb" (cast_expression "(long)piVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }" { (expression_statement "uVar8 = *(undefined8 *)(piVar14 + 4);" (assignment_expression "uVar8 = *(undefined8 *)(piVar14 + 4)" identifier = (pointer_expression "*(undefined8 *)(piVar14 + 4)" * (cast_expression "(undefined8 *)(piVar14 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar14 + 4)" ( (binary_expression "piVar14 + 4" identifier + number_literal) ))))) ;) }) (else_clause "else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    /* WARNING: Subroutine does not return */\n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");\n              }\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }" else (compound_statement "{\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    /* WARNING: Subroutine does not return */\n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");\n              }\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }" { (if_statement "if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    /* WARNING: Subroutine does not return */\n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");\n              }" if (parenthesized_expression "((*(byte *)((long)piVar14 + 0xb) & 8) == 0)" ( (binary_expression "(*(byte *)((long)piVar14 + 0xb) & 8) == 0" (parenthesized_expression "(*(byte *)((long)piVar14 + 0xb) & 8)" ( (binary_expression "*(byte *)((long)piVar14 + 0xb) & 8" (pointer_expression "*(byte *)((long)piVar14 + 0xb)" * (cast_expression "(byte *)((long)piVar14 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)piVar14 + 0xb)" ( (binary_expression "(long)piVar14 + 0xb" (cast_expression "(long)piVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_001a377c:\n                    /* WARNING: Subroutine does not return */\n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");\n              }" { (labeled_statement "LAB_001a377c:\n                    /* WARNING: Subroutine does not return */\n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");" statement_identifier : comment (expression_statement "FUN_0016cdf0("../../gold/object.h",0x6ab,"value");" (call_expression "FUN_0016cdf0("../../gold/object.h",0x6ab,"value")" identifier (argument_list "("../../gold/object.h",0x6ab,"value")" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""value"" " string_content ") ))) ;)) })) (expression_statement "puVar3 = *(ulong **)(piVar14 + 4);" (assignment_expression "puVar3 = *(ulong **)(piVar14 + 4)" identifier = (pointer_expression "*(ulong **)(piVar14 + 4)" * (cast_expression "(ulong **)(piVar14 + 4)" ( (type_descriptor "ulong **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar14 + 4)" ( (binary_expression "piVar14 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = *puVar3 % puVar3[3];" (assignment_expression "uVar12 = *puVar3 % puVar3[3]" identifier = (binary_expression "*puVar3 % puVar3[3]" (pointer_expression "*puVar3" * identifier) % (subscript_expression "puVar3[3]" identifier [ number_literal ]))) ;) (expression_statement "plVar20 = *(long **)(puVar3[2] + uVar12 * 8);" (assignment_expression "plVar20 = *(long **)(puVar3[2] + uVar12 * 8)" identifier = (pointer_expression "*(long **)(puVar3[2] + uVar12 * 8)" * (cast_expression "(long **)(puVar3[2] + uVar12 * 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3[2] + uVar12 * 8)" ( (binary_expression "puVar3[2] + uVar12 * 8" (subscript_expression "puVar3[2]" identifier [ number_literal ]) + (binary_expression "uVar12 * 8" identifier * number_literal)) ))))) ;) (if_statement "if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }\n              }" if (parenthesized_expression "(plVar20 != (long *)0x0)" ( (binary_expression "plVar20 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }\n              }" { (expression_statement "uVar15 = ((long *)*plVar20)[1];" (assignment_expression "uVar15 = ((long *)*plVar20)[1]" identifier = (subscript_expression "((long *)*plVar20)[1]" (parenthesized_expression "((long *)*plVar20)" ( (cast_expression "(long *)*plVar20" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar20" * identifier)) )) [ number_literal ])) ;) (expression_statement "plVar4 = (long *)*plVar20;" (assignment_expression "plVar4 = (long *)*plVar20" identifier = (cast_expression "(long *)*plVar20" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar20" * identifier))) ;) (while_statement "while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }" while (parenthesized_expression "(plVar19 = plVar4, uVar15 != *puVar3)" ( (comma_expression "plVar19 = plVar4, uVar15 != *puVar3" (assignment_expression "plVar19 = plVar4" identifier = identifier) , (binary_expression "uVar15 != *puVar3" identifier != (pointer_expression "*puVar3" * identifier))) )) (compound_statement "{\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }" { (expression_statement "plVar4 = (long *)*plVar19;" (assignment_expression "plVar4 = (long *)*plVar19" identifier = (cast_expression "(long *)*plVar19" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar19" * identifier))) ;) (if_statement "if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;" if (parenthesized_expression "((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))" ( (binary_expression "(plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3])" (parenthesized_expression "(plVar4 == (long *)0x0)" ( (binary_expression "plVar4 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3])" ( (comma_expression "uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]" (assignment_expression "uVar15 = plVar4[1]" identifier = (subscript_expression "plVar4[1]" identifier [ number_literal ])) , (comma_expression "plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]" (assignment_expression "plVar20 = plVar19" identifier = identifier) , (binary_expression "uVar12 != uVar15 % puVar3[3]" identifier != (binary_expression "uVar15 % puVar3[3]" identifier % (subscript_expression "puVar3[3]" identifier [ number_literal ]))))) ))) )) (goto_statement "goto LAB_001a3608;" goto statement_identifier ;)) })) (if_statement "if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }" if (parenthesized_expression "(*plVar20 != 0)" ( (binary_expression "*plVar20 != 0" (pointer_expression "*plVar20" * identifier) != number_literal) )) (compound_statement "{\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }" { (expression_statement "uVar8 = *(undefined8 *)(*plVar20 + 0x10);" (assignment_expression "uVar8 = *(undefined8 *)(*plVar20 + 0x10)" identifier = (pointer_expression "*(undefined8 *)(*plVar20 + 0x10)" * (cast_expression "(undefined8 *)(*plVar20 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*plVar20 + 0x10)" ( (binary_expression "*plVar20 + 0x10" (pointer_expression "*plVar20" * identifier) + number_literal) ))))) ;) (goto_statement "goto LAB_001a349c;" goto statement_identifier ;) })) })) (labeled_statement "LAB_001a3608:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);" statement_identifier : (expression_statement "uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);" (assignment_expression "uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff)" identifier = (call_expression "FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff)" identifier (argument_list "(puVar3,param_1,piVar14[2] & 0x7ffffff)" ( identifier , identifier , (binary_expression "piVar14[2] & 0x7ffffff" (subscript_expression "piVar14[2]" identifier [ number_literal ]) & number_literal) )))) ;)) }))) (labeled_statement "LAB_001a349c:\n            *(undefined8 *)(puVar22 + 2) = uVar8;" statement_identifier : (expression_statement "*(undefined8 *)(puVar22 + 2) = uVar8;" (assignment_expression "*(undefined8 *)(puVar22 + 2) = uVar8" (pointer_expression "*(undefined8 *)(puVar22 + 2)" * (cast_expression "(undefined8 *)(puVar22 + 2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 2)" ( (binary_expression "puVar22 + 2" identifier + number_literal) )))) = identifier) ;)) (expression_statement "*(undefined8 *)(puVar22 + 4) = *(undefined8 *)(lVar21 + -8);" (assignment_expression "*(undefined8 *)(puVar22 + 4) = *(undefined8 *)(lVar21 + -8)" (pointer_expression "*(undefined8 *)(puVar22 + 4)" * (cast_expression "(undefined8 *)(puVar22 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 4)" ( (binary_expression "puVar22 + 4" identifier + number_literal) )))) = (pointer_expression "*(undefined8 *)(lVar21 + -8)" * (cast_expression "(undefined8 *)(lVar21 + -8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar21 + -8)" ( (binary_expression "lVar21 + -8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)(puVar22 + 1) = *(undefined1 *)(lVar21 + -0x14);" (assignment_expression "*(undefined1 *)(puVar22 + 1) = *(undefined1 *)(lVar21 + -0x14)" (pointer_expression "*(undefined1 *)(puVar22 + 1)" * (cast_expression "(undefined1 *)(puVar22 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 1)" ( (binary_expression "puVar22 + 1" identifier + number_literal) )))) = (pointer_expression "*(undefined1 *)(lVar21 + -0x14)" * (cast_expression "(undefined1 *)(lVar21 + -0x14)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar21 + -0x14)" ( (binary_expression "lVar21 + -0x14" identifier + number_literal) ))))) ;) (expression_statement "uVar1 = *(undefined1 *)(lVar21 + -0x13);" (assignment_expression "uVar1 = *(undefined1 *)(lVar21 + -0x13)" identifier = (pointer_expression "*(undefined1 *)(lVar21 + -0x13)" * (cast_expression "(undefined1 *)(lVar21 + -0x13)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar21 + -0x13)" ( (binary_expression "lVar21 + -0x13" identifier + number_literal) ))))) ;) (expression_statement "*(ushort *)((long)puVar22 + 6) = uVar13;" (assignment_expression "*(ushort *)((long)puVar22 + 6) = uVar13" (pointer_expression "*(ushort *)((long)puVar22 + 6)" * (cast_expression "(ushort *)((long)puVar22 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar22 + 6)" ( (binary_expression "(long)puVar22 + 6" (cast_expression "(long)puVar22" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)((long)puVar22 + 5) = uVar1;" (assignment_expression "*(undefined1 *)((long)puVar22 + 5) = uVar1" (pointer_expression "*(undefined1 *)((long)puVar22 + 5)" * (cast_expression "(undefined1 *)((long)puVar22 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar22 + 5)" ( (binary_expression "(long)puVar22 + 5" (cast_expression "(long)puVar22" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "puVar22 = puVar22 + 6;" (assignment_expression "puVar22 = puVar22 + 6" identifier = (binary_expression "puVar22 + 6" identifier + number_literal)) ;) })) }))) (expression_statement "local_b8 = local_b8 + 1;" (assignment_expression "local_b8 = local_b8 + 1" identifier = (binary_expression "local_b8 + 1" identifier + number_literal)) ;) (expression_statement "lVar21 = lVar21 + 0x18;" (assignment_expression "lVar21 = lVar21 + 0x18" identifier = (binary_expression "lVar21 + 0x18" identifier + number_literal)) ;) (if_statement "if (uVar2 == local_b8) goto LAB_001a3680;" if (parenthesized_expression "(uVar2 == local_b8)" ( (binary_expression "uVar2 == local_b8" identifier == identifier) )) (goto_statement "goto LAB_001a3680;" goto statement_identifier ;)) (expression_statement "lVar9 = param_1[0x2c];" (assignment_expression "lVar9 = param_1[0x2c]" identifier = (subscript_expression "param_1[0x2c]" identifier [ number_literal ])) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) }) (else_clause "else {\n    param_7 = param_7 + param_1[0x2a];\n    if ((-1 < param_7) && ((long)(param_7 + (ulong)uVar16) <= *(long *)(param_2 + 0x10))) {\n      local_70 = (undefined4 *)(param_7 + *(long *)(param_2 + 0x18));\n      goto LAB_001a31f6;\n    }\nLAB_001a3859:\n    FUN_0019a5b0();\n  }" else (compound_statement "{\n    param_7 = param_7 + param_1[0x2a];\n    if ((-1 < param_7) && ((long)(param_7 + (ulong)uVar16) <= *(long *)(param_2 + 0x10))) {\n      local_70 = (undefined4 *)(param_7 + *(long *)(param_2 + 0x18));\n      goto LAB_001a31f6;\n    }\nLAB_001a3859:\n    FUN_0019a5b0();\n  }" { (expression_statement "param_7 = param_7 + param_1[0x2a];" (assignment_expression "param_7 = param_7 + param_1[0x2a]" identifier = (binary_expression "param_7 + param_1[0x2a]" identifier + (subscript_expression "param_1[0x2a]" identifier [ number_literal ]))) ;) (if_statement "if ((-1 < param_7) && ((long)(param_7 + (ulong)uVar16) <= *(long *)(param_2 + 0x10))) {\n      local_70 = (undefined4 *)(param_7 + *(long *)(param_2 + 0x18));\n      goto LAB_001a31f6;\n    }" if (parenthesized_expression "((-1 < param_7) && ((long)(param_7 + (ulong)uVar16) <= *(long *)(param_2 + 0x10)))" ( (binary_expression "(-1 < param_7) && ((long)(param_7 + (ulong)uVar16) <= *(long *)(param_2 + 0x10))" (parenthesized_expression "(-1 < param_7)" ( (binary_expression "-1 < param_7" number_literal < identifier) )) && (parenthesized_expression "((long)(param_7 + (ulong)uVar16) <= *(long *)(param_2 + 0x10))" ( (binary_expression "(long)(param_7 + (ulong)uVar16) <= *(long *)(param_2 + 0x10)" (cast_expression "(long)(param_7 + (ulong)uVar16)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(param_7 + (ulong)uVar16)" ( (binary_expression "param_7 + (ulong)uVar16" identifier + (cast_expression "(ulong)uVar16" ( (type_descriptor "ulong" type_identifier) ) identifier)) ))) <= (pointer_expression "*(long *)(param_2 + 0x10)" * (cast_expression "(long *)(param_2 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) ))))) ))) )) (compound_statement "{\n      local_70 = (undefined4 *)(param_7 + *(long *)(param_2 + 0x18));\n      goto LAB_001a31f6;\n    }" { (expression_statement "local_70 = (undefined4 *)(param_7 + *(long *)(param_2 + 0x18));" (assignment_expression "local_70 = (undefined4 *)(param_7 + *(long *)(param_2 + 0x18))" identifier = (cast_expression "(undefined4 *)(param_7 + *(long *)(param_2 + 0x18))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_7 + *(long *)(param_2 + 0x18))" ( (binary_expression "param_7 + *(long *)(param_2 + 0x18)" identifier + (pointer_expression "*(long *)(param_2 + 0x18)" * (cast_expression "(long *)(param_2 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) ))))) )))) ;) (goto_statement "goto LAB_001a31f6;" goto statement_identifier ;) })) (labeled_statement "LAB_001a3859:\n    FUN_0019a5b0();" statement_identifier : (expression_statement "FUN_0019a5b0();" (call_expression "FUN_0019a5b0()" identifier (argument_list "()" ( ))) ;)) }))) comment (expression_statement "FUN_0016cdf0("../../gold/object.cc",0xac5,"write_local_symbols");" (call_expression "FUN_0016cdf0("../../gold/object.cc",0xac5,"write_local_symbols")" identifier (argument_list "("../../gold/object.cc",0xac5,"write_local_symbols")" ( (string_literal ""../../gold/object.cc"" " string_content ") , number_literal , (string_literal ""write_local_symbols"" " string_content ") ))) ;) })))
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* DWARF original prototype: void write_local_symbols(Sized_relobj_file<64,_false> * this,\n   Output_file * of, Stringpool * sympool, Stringpool * dynpool, Output_symtab_xindex *\n   symtab_xindex, Output_symtab_xindex * dynsym_xindex, off_t symtab_off) */\n\nvoid __thiscall\ngold::Sized_relobj_file<64,_false>::write_local_symbols\n          (Sized_relobj_file<64,_false> *this,Output_file *of,Stringpool *sympool,\n          Stringpool *dynpool,Output_symtab_xindex *symtab_xindex,\n          Output_symtab_xindex *dynsym_xindex,off_t symtab_off)\n\n{\n  Elf_file<64,_false,_gold::Object> *this_00;\n  uchar uVar1;\n  uint uVar2;\n  _func_int_varargs *p_Var3;\n  Merged_symbol_value<64> *pMVar4;\n  _Hash_node_base *p_Var5;\n  pointer ppOVar6;\n  Output_section *pOVar7;\n  Input_file *pIVar8;\n  uint uVar9;\n  uint uVar10;\n  int iVar11;\n  off_t start;\n  uchar *puVar12;\n  uchar *puVar13;\n  long lVar14;\n  section_offset_type sVar15;\n  _Hash_node_base *p_Var16;\n  undefined4 extraout_var;\n  undefined4 extraout_var_00;\n  Output_file *this_1;\n  bool bVar17;\n  Output_file *size;\n  ulong uVar18;\n  Output_file *extraout_RDX;\n  Output_file *extraout_RDX_00;\n  ushort uVar19;\n  ulong uVar20;\n  pointer pSVar21;\n  uint *puVar22;\n  _Hash_node_base *p_Var23;\n  uint uVar24;\n  uint uVar25;\n  Input_file *this_02;\n  __bucket_type p_Var27;\n  __bucket_type p_Var28;\n  uchar *puVar29;\n  uchar *puVar30;\n  uchar *puVar31;\n  Location LVar32;\n  uint local_b8;\n  uchar *local_b0;\n  uchar *local_70;\n  uchar *local_68;\n  section_size_type strtab_size;\n  pair<unsigned_int,_unsigned_int> local_40 [2];\n  Xindex *this_01;\n  Output_file *pOVar26;\n  Output_file *this_03;\n  \n  if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  if ((parameters->options_->strip_all_).value != false) {\n    if (this->output_local_dynsym_count_ == 0) {\n      return;\n    }\n    this->output_local_symbol_count_ = 0;\n  }\n  uVar2 = this->symtab_shndx_;\n  if (uVar2 == 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/object.cc",0xa97,"write_local_symbols");\n  }\n  if (uVar2 == 0) {\n    return;\n  }\n  this_00 = &this->elf_file_;\n  start = elfcpp::Elf_file<64,_false,_gold::Object>::section_header_offset(this_00,uVar2);\n  this_02 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.input_file_;\n  if (this_02 == (Input_file *)0x0) {\nLAB_001a3824:\n                    /* WARNING: Subroutine does not return */\n    Object::input_file((Object *)this_02);\n  }\n  puVar12 = File_read::get_view(&this_02->file_,\n                                (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                                offset_,start,0x40,true,true);\n  if (*(int *)(puVar12 + 4) != 2) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/object.cc",0xaa2,"write_local_symbols");\n  }\n  uVar2 = this->local_symbol_count_;\n  if (uVar2 != *(uint *)(puVar12 + 0x2c)) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/object.cc",0xaa4,"write_local_symbols");\n  }\n  this_02 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.input_file_;\n  this_1 = (Output_file *)(ulong)(uVar2 * 0x18);\n  if (this_02 == (Input_file *)0x0) goto LAB_001a3824;\n  puVar13 = File_read::get_view(&this_02->file_,\n                                (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                                offset_,*(off_t *)(puVar12 + 0x18),(section_size_type)this_1,true,\n                                false);\n  uVar24 = *(uint *)(puVar12 + 0x28);\n  if (0xfeff < uVar24) {\n    elfcpp::Elf_file<64,_false,_gold::Object>::initialize_shnum(this_00);\n    uVar24 = uVar24 + (this->elf_file_).large_shndx_offset_;\n  }\n  p_Var3 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object[0xe];\n  if (p_Var3 == do_section_contents) {\n    uVar20 = (ulong)uVar24;\n    LVar32 = elfcpp::Elf_file<64,_false,_gold::Object>::section_contents(this_00,uVar24);\n    size = (Output_file *)LVar32.data_size;\n    this_02 = (Input_file *)\n              &Sized_relobj_file<64,false>::do_section_contents(unsigned_int,unsigned_long*,bool)::\n               empty;\n    local_b0 = "";\n    strtab_size = (section_size_type)size;\n    if (size != (Output_file *)0x0) {\n      pIVar8 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.input_file_;\n      if (pIVar8 == (Input_file *)0x0) goto LAB_001a3824;\n      uVar20 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.offset_;\n      local_b0 = File_read::get_view(&pIVar8->file_,uVar20,LVar32.file_offset,\n                                     (section_size_type)size,true,false);\n      this_1 = size;\n      size = extraout_RDX;\n    }\n  }\n  else {\n    this_1 = (Output_file *)0x0;\n    uVar20 = (ulong)uVar24;\n    iVar11 = (*p_Var3)(this,uVar20,&strtab_size);\n    local_b0 = (uchar *)CONCAT44(extraout_var_00,iVar11);\n    size = extraout_RDX_00;\n  }\n  uVar24 = this->output_local_symbol_count_ * 0x18;\n  pOVar26 = (Output_file *)(ulong)uVar24;\n  if (uVar24 == 0) {\n    local_70 = (uchar *)0x0;\nLAB_001a31f6:\n    uVar25 = this->output_local_dynsym_count_ * 0x18;\n    this_03 = (Output_file *)(ulong)uVar25;\n    if (uVar25 == 0) {\n      local_68 = (uchar *)0x0;\n    }\n    else {\n      lVar14 = this->local_dynsym_offset_;\n      if ((lVar14 < 0) ||\n         (size = (Output_file *)((long)&this_03->name_ + lVar14), of->file_size_ < (long)size))\n      goto LAB_001a3859;\n      local_68 = of->base_ + lVar14;\n    }\n    pSVar21 = (this->local_values_).\n              super__Vector_base<gold::Symbol_value<64>,_std::allocator<gold::Symbol_value<64>_>_>.\n              _M_impl._M_start;\n    if ((ulong)uVar2 ==\n        ((long)(this->local_values_).\n               super__Vector_base<gold::Symbol_value<64>,_std::allocator<gold::Symbol_value<64>_>_>.\n               _M_impl._M_finish - (long)pSVar21 >> 3) * -0x5555555555555555) {\n      puVar12 = local_68;\n      puVar31 = local_70;\n      if (uVar2 < 2) {\nLAB_001a3680:\n        if ((uVar24 != 0) && ((Output_file *)(puVar31 + -(long)local_70) != pOVar26)) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/object.cc",0xb0a,"write_local_symbols");\n        }\n        if ((uVar25 != 0) && ((Output_file *)(puVar12 + -(long)local_68) != this_03)) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/object.cc",0xb11,"write_local_symbols");\n        }\n        return;\n      }\n      puVar29 = puVar13 + 0x30;\n      local_b8 = 1;\n      do {\n        uVar19 = *(ushort *)(puVar29 + -0x12);\n        uVar20 = (ulong)uVar19;\n        puVar22 = (uint *)(puVar29 + (long)pSVar21 + (-0x18 - (long)puVar13));\n        if (uVar19 < 0xff00) {\nLAB_001a350a:\n          ppOVar6 = (this->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                    super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                    ._M_impl._M_start;\n          if ((ulong)((long)(this->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                            ._M_impl._M_finish - (long)ppOVar6 >> 3) <= uVar20) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/object.cc",0xad5,"write_local_symbols");\n          }\n          pOVar7 = ppOVar6[uVar20];\n          if (pOVar7 != (Output_section *)0x0) {\n            p_Var3 = (pOVar7->super_Output_data)._vptr_Output_data[0xb];\n            if (p_Var3 == Output_section::do_out_shndx) {\n              uVar10 = pOVar7->out_shndx_;\n              if (uVar10 == 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar10 = (*p_Var3)();\n            }\n            uVar19 = (ushort)uVar10;\n            uVar9 = *puVar22;\n            bVar17 = uVar9 != 0 && uVar9 != 0xfffffffe;\n            if (0xfeff < uVar10) {\n              if (uVar9 == 0 || uVar9 == 0xfffffffe) goto LAB_001a374c;\n              if (uVar9 != 0xffffffff) {\n                local_40[0].first = uVar9;\n                local_40[0].second = uVar10;\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_,local_40);\n              }\n              uVar9 = puVar22[1];\n              if (uVar9 == 0) goto LAB_001a3764;\n              if (uVar9 == 0xffffffff) {\n                uVar9 = *puVar22;\n                uVar19 = 0xffff;\n                bVar17 = uVar9 != 0 && uVar9 != 0xfffffffe;\n              }\n              else {\n                uVar19 = 0xffff;\n                local_40[0].first = uVar9;\n                local_40[0].second = uVar10;\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_,local_40);\n                uVar9 = *puVar22;\n                bVar17 = uVar9 != 0xfffffffe && uVar9 != 0;\n              }\n            }\n            goto LAB_001a32f9;\n          }\n        }\n        else {\n          if (uVar19 == 0xffff) {\n            this_01 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_;\n            if (this_01 == (Xindex *)0x0) {\n              iVar11 = (*(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                         _vptr_Object[0x1b])(this);\n              this_01 = (Xindex *)CONCAT44(extraout_var,iVar11);\n              (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = this_01;\n            }\n            uVar10 = Xindex::sym_xindex_to_shndx(this_01,(Object *)this,local_b8);\n            uVar20 = (ulong)uVar10;\n            goto LAB_001a350a;\n          }\n          uVar9 = *puVar22;\n          bVar17 = uVar9 != 0 && uVar9 != 0xfffffffe;\nLAB_001a32f9:\n          if (!bVar17) {\nLAB_001a374c:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }\n          puVar30 = puVar31;\n          if (uVar9 != 0xffffffff) {\n            if (strtab_size <= *(uint *)(puVar29 + -0x18)) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/object.cc",0xae8,"write_local_symbols");\n            }\n            sVar15 = Stringpool_template<char>::get_offset\n                               (sympool,(char *)(local_b0 + *(uint *)(puVar29 + -0x18)));\n            *(int *)puVar31 = (int)sVar15;\n            if ((char)*(byte *)((long)puVar22 + 0xb) < '\0') {\n              p_Var16 = *(_Hash_node_base **)(puVar22 + 4);\n            }\n            else {\n              if ((*(byte *)((long)puVar22 + 0xb) & 8) == 0) goto LAB_001a377c;\n              pMVar4 = *(Merged_symbol_value<64> **)(puVar22 + 4);\n              p_Var16 = (_Hash_node_base *)pMVar4->input_value_;\n              uVar20 = (pMVar4->output_addresses_)._M_h._M_bucket_count;\n              uVar18 = (ulong)p_Var16 % uVar20;\n              p_Var28 = (pMVar4->output_addresses_)._M_h._M_buckets[uVar18];\n              if (p_Var28 != (__bucket_type)0x0) {\n                p_Var23 = p_Var28->_M_nxt[1]._M_nxt;\n                p_Var5 = p_Var28->_M_nxt;\n                while (p_Var27 = p_Var5, p_Var16 != p_Var23) {\n                  p_Var5 = p_Var27->_M_nxt;\n                  if ((p_Var5 == (_Hash_node_base *)0x0) ||\n                     (p_Var23 = p_Var5[1]._M_nxt, p_Var28 = p_Var27,\n                     uVar18 != (ulong)p_Var23 % uVar20)) goto LAB_001a3660;\n                }\n                if (p_Var28->_M_nxt != (_Hash_node_base *)0x0) {\n                  p_Var16 = p_Var28->_M_nxt[2]._M_nxt;\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              p_Var16 = (_Hash_node_base *)\n                        Merged_symbol_value<64>::value_from_output_section\n                                  (pMVar4,(Relobj *)this,puVar22[2] & 0x7ffffff,(Elf_Addr)p_Var16);\n            }\nLAB_001a33ac:\n            *(_Hash_node_base **)(puVar31 + 8) = p_Var16;\n            puVar30 = puVar31 + 0x18;\n            *(undefined8 *)(puVar31 + 0x10) = *(undefined8 *)(puVar29 + -8);\n            puVar31[4] = puVar29[-0x14];\n            uVar1 = puVar29[-0x13];\n            *(ushort *)(puVar31 + 6) = uVar19;\n            puVar31[5] = uVar1;\n          }\n          if (puVar22[1] == 0) {\nLAB_001a3764:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/object.h",0x738,"has_output_dynsym_entry");\n          }\n          puVar31 = puVar30;\n          if (puVar22[1] != 0xffffffff) {\n            if (local_68 + (long)this_03 <= puVar12) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }\n            if (strtab_size <= *(uint *)(puVar29 + -0x18)) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/object.cc",0xafa,"write_local_symbols");\n            }\n            sVar15 = Stringpool_template<char>::get_offset\n                               (dynpool,(char *)(local_b0 + *(uint *)(puVar29 + -0x18)));\n            *(int *)puVar12 = (int)sVar15;\n            if ((char)*(byte *)((long)puVar22 + 0xb) < '\0') {\n              p_Var16 = *(_Hash_node_base **)(puVar22 + 4);\n            }\n            else {\n              if ((*(byte *)((long)puVar22 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n              }\n              pMVar4 = *(Merged_symbol_value<64> **)(puVar22 + 4);\n              p_Var16 = (_Hash_node_base *)pMVar4->input_value_;\n              uVar20 = (pMVar4->output_addresses_)._M_h._M_bucket_count;\n              uVar18 = (ulong)p_Var16 % uVar20;\n              p_Var28 = (pMVar4->output_addresses_)._M_h._M_buckets[uVar18];\n              if (p_Var28 != (__bucket_type)0x0) {\n                p_Var23 = p_Var28->_M_nxt[1]._M_nxt;\n                p_Var5 = p_Var28->_M_nxt;\n                while (p_Var27 = p_Var5, p_Var23 != p_Var16) {\n                  p_Var5 = p_Var27->_M_nxt;\n                  if ((p_Var5 == (_Hash_node_base *)0x0) ||\n                     (p_Var23 = p_Var5[1]._M_nxt, p_Var28 = p_Var27,\n                     uVar18 != (ulong)p_Var23 % uVar20)) goto LAB_001a3608;\n                }\n                if (p_Var28->_M_nxt != (_Hash_node_base *)0x0) {\n                  p_Var16 = p_Var28->_M_nxt[2]._M_nxt;\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              p_Var16 = (_Hash_node_base *)\n                        Merged_symbol_value<64>::value_from_output_section\n                                  (pMVar4,(Relobj *)this,puVar22[2] & 0x7ffffff,(Elf_Addr)p_Var16);\n            }\nLAB_001a349c:\n            *(_Hash_node_base **)(puVar12 + 8) = p_Var16;\n            *(undefined8 *)(puVar12 + 0x10) = *(undefined8 *)(puVar29 + -8);\n            puVar12[4] = puVar29[-0x14];\n            uVar1 = puVar29[-0x13];\n            *(ushort *)(puVar12 + 6) = uVar19;\n            puVar12[5] = uVar1;\n            puVar12 = puVar12 + 0x18;\n          }\n        }\n        local_b8 = local_b8 + 1;\n        puVar29 = puVar29 + 0x18;\n        if (uVar2 == local_b8) goto LAB_001a3680;\n        pSVar21 = (this->local_values_).\n                  super__Vector_base<gold::Symbol_value<64>,_std::allocator<gold::Symbol_value<64>_>_>\n                  ._M_impl._M_start;\n      } while( true );\n    }\n  }\n  else {\n    lVar14 = symtab_off + this->local_symbol_offset_;\n    this_03 = pOVar26;\n    if ((-1 < lVar14) &&\n       (size = (Output_file *)((long)&pOVar26->name_ + lVar14), (long)size <= of->file_size_)) {\n      local_70 = of->base_ + lVar14;\n      goto LAB_001a31f6;\n    }\nLAB_001a3859:\n    Output_file::get_output_view(this_03,uVar20,(size_t)size,this_1);\n  }\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/object.cc",0xac5,"write_local_symbols");\n}\n\n" comment comment comment (declaration "void __thiscall\ngold::Sized_relobj_file<64,_false>::write_local_symbols\n          (Sized_relobj_file<64,_false> *this,Output_file *of,Stringpool *sympool,\n          Stringpool *dynpool,Output_symtab_xindex *symtab_xindex,\n          Output_symtab_xindex *dynsym_xindex,off_t symtab_off)\n\n{\n  Elf_file<64,_false,_gold::Object> *this_00;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::" identifier : :) identifier (ERROR "<64" < number_literal) , (ERROR "_false>::write_local_symbols\n          (Sized_relobj_file<64,_false> *this,Output_file *of,Stringpool *sympool,\n          Stringpool *dynpool,Output_symtab_xindex *symtab_xindex,\n          Output_symtab_xindex *dynsym_xindex,off_t symtab_off)\n\n{" identifier > : : (function_declarator "write_local_symbols\n          (Sized_relobj_file<64,_false> *this,Output_file *of,Stringpool *sympool,\n          Stringpool *dynpool,Output_symtab_xindex *symtab_xindex,\n          Output_symtab_xindex *dynsym_xindex,off_t symtab_off)" identifier (parameter_list "(Sized_relobj_file<64,_false> *this,Output_file *of,Stringpool *sympool,\n          Stringpool *dynpool,Output_symtab_xindex *symtab_xindex,\n          Output_symtab_xindex *dynsym_xindex,off_t symtab_off)" ( (parameter_declaration "Sized_relobj_file" type_identifier) (ERROR "<64" < number_literal) , (parameter_declaration "_false> *this" type_identifier (ERROR ">" >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "Output_file *of" type_identifier (pointer_declarator "*of" * 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 "off_t symtab_off" type_identifier identifier) ))) {) identifier (ERROR "<64" < number_literal) , identifier , (ERROR "_gold::Object>" identifier : : identifier >) (pointer_declarator "*this_00" * identifier) ;) (declaration "uchar uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "_func_int_varargs *p_Var3;" type_identifier (pointer_declarator "*p_Var3" * identifier) ;) (expression_statement "Merged_symbol_value<64> *pMVar4;" (update_expression "Merged_symbol_value<64> *pMVar4" (binary_expression "Merged_symbol_value<64> *pMVar4" (binary_expression "Merged_symbol_value<64" identifier < number_literal) > (pointer_expression "*pMVar4" * identifier)) --) ;) (declaration "_Hash_node_base *p_Var5;" type_identifier (pointer_declarator "*p_Var5" * identifier) ;) (declaration "pointer ppOVar6;" type_identifier identifier ;) (declaration "Output_section *pOVar7;" type_identifier (pointer_declarator "*pOVar7" * identifier) ;) (declaration "Input_file *pIVar8;" type_identifier (pointer_declarator "*pIVar8" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "off_t start;" type_identifier identifier ;) (declaration "uchar *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "uchar *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "long lVar14;" (sized_type_specifier "long" long) identifier ;) (declaration "section_offset_type sVar15;" type_identifier identifier ;) (declaration "_Hash_node_base *p_Var16;" type_identifier (pointer_declarator "*p_Var16" * identifier) ;) (declaration "undefined4 extraout_var;" type_identifier identifier ;) (declaration "undefined4 extraout_var_00;" type_identifier identifier ;) (declaration "Output_file *this_1;" type_identifier (pointer_declarator "*this_1" * identifier) ;) (declaration "bool bVar17;" primitive_type identifier ;) (declaration "Output_file *size;" type_identifier (pointer_declarator "*size" * identifier) ;) (declaration "ulong uVar18;" type_identifier identifier ;) (declaration "Output_file *extraout_RDX;" type_identifier (pointer_declarator "*extraout_RDX" * identifier) ;) (declaration "Output_file *extraout_RDX_00;" type_identifier (pointer_declarator "*extraout_RDX_00" * identifier) ;) (declaration "ushort uVar19;" type_identifier identifier ;) (declaration "ulong uVar20;" type_identifier identifier ;) (declaration "pointer pSVar21;" type_identifier identifier ;) (declaration "uint *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "_Hash_node_base *p_Var23;" type_identifier (pointer_declarator "*p_Var23" * identifier) ;) (declaration "uint uVar24;" type_identifier identifier ;) (declaration "uint uVar25;" type_identifier identifier ;) (declaration "Input_file *this_02;" type_identifier (pointer_declarator "*this_02" * identifier) ;) (declaration "__bucket_type p_Var27;" type_identifier identifier ;) (declaration "__bucket_type p_Var28;" type_identifier identifier ;) (declaration "uchar *puVar29;" type_identifier (pointer_declarator "*puVar29" * identifier) ;) (declaration "uchar *puVar30;" type_identifier (pointer_declarator "*puVar30" * identifier) ;) (declaration "uchar *puVar31;" type_identifier (pointer_declarator "*puVar31" * identifier) ;) (declaration "Location LVar32;" type_identifier identifier ;) (declaration "uint local_b8;" type_identifier identifier ;) (declaration "uchar *local_b0;" type_identifier (pointer_declarator "*local_b0" * identifier) ;) (declaration "uchar *local_70;" type_identifier (pointer_declarator "*local_70" * identifier) ;) (declaration "uchar *local_68;" type_identifier (pointer_declarator "*local_68" * identifier) ;) (declaration "section_size_type strtab_size;" type_identifier identifier ;) (expression_statement "pair<unsigned_int,_unsigned_int> local_40 [2];" (update_expression "pair<unsigned_int,_unsigned_int> local_40 [2]" (binary_expression "pair<unsigned_int,_unsigned_int> local_40 [2]" (binary_expression "pair<unsigned_int" identifier < identifier) (ERROR ",_unsigned_int" , identifier) > (subscript_expression "local_40 [2]" identifier [ number_literal ])) --) ;) (declaration "Xindex *this_01;" type_identifier (pointer_declarator "*this_01" * identifier) ;) (declaration "Output_file *pOVar26;" type_identifier (pointer_declarator "*pOVar26" * identifier) ;) (declaration "Output_file *this_03;" type_identifier (pointer_declarator "*this_03" * identifier) ;) (if_statement "if (parameters->options_ == (General_options *)0x0) {\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 "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }" { 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_->strip_all_).value != false) {\n    if (this->output_local_dynsym_count_ == 0) {\n      return;\n    }\n    this->output_local_symbol_count_ = 0;\n  }" if (parenthesized_expression "((parameters->options_->strip_all_).value != false)" ( (binary_expression "(parameters->options_->strip_all_).value != false" (field_expression "(parameters->options_->strip_all_).value" (parenthesized_expression "(parameters->options_->strip_all_)" ( (field_expression "parameters->options_->strip_all_" (field_expression "parameters->options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) != false) )) (compound_statement "{\n    if (this->output_local_dynsym_count_ == 0) {\n      return;\n    }\n    this->output_local_symbol_count_ = 0;\n  }" { (if_statement "if (this->output_local_dynsym_count_ == 0) {\n      return;\n    }" if (parenthesized_expression "(this->output_local_dynsym_count_ == 0)" ( (binary_expression "this->output_local_dynsym_count_ == 0" (field_expression "this->output_local_dynsym_count_" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "this->output_local_symbol_count_ = 0;" (assignment_expression "this->output_local_symbol_count_ = 0" (field_expression "this->output_local_symbol_count_" identifier -> field_identifier) = number_literal) ;) })) (expression_statement "uVar2 = this->symtab_shndx_;" (assignment_expression "uVar2 = this->symtab_shndx_" identifier = (field_expression "this->symtab_shndx_" identifier -> field_identifier)) ;) (if_statement "if (uVar2 == 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/object.cc",0xa97,"write_local_symbols");\n  }" if (parenthesized_expression "(uVar2 == 0xffffffff)" ( (binary_expression "uVar2 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/object.cc",0xa97,"write_local_symbols");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/object.cc",0xa97,"write_local_symbols");" (call_expression "do_gold_unreachable("../../gold/object.cc",0xa97,"write_local_symbols")" identifier (argument_list "("../../gold/object.cc",0xa97,"write_local_symbols")" ( (string_literal ""../../gold/object.cc"" " string_content ") , number_literal , (string_literal ""write_local_symbols"" " string_content ") ))) ;) })) (if_statement "if (uVar2 == 0) {\n    return;\n  }" if (parenthesized_expression "(uVar2 == 0)" ( (binary_expression "uVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "this_00 = &this->elf_file_;" (assignment_expression "this_00 = &this->elf_file_" identifier = (pointer_expression "&this->elf_file_" & (field_expression "this->elf_file_" identifier -> field_identifier))) ;) (ERROR "start = elfcpp::Elf_file<64,_false," (binary_expression "start = elfcpp::Elf_file<64" (assignment_expression "start = elfcpp" identifier = identifier) (ERROR "::Elf_file" : : identifier) < number_literal) , identifier ,) (labeled_statement "_gold::Object>::section_header_offset(this_00,uVar2);" statement_identifier (ERROR "::Object>:" : : identifier > :) : (expression_statement "section_header_offset(this_00,uVar2);" (call_expression "section_header_offset(this_00,uVar2)" identifier (argument_list "(this_00,uVar2)" ( identifier , identifier ))) ;)) (expression_statement "this_02 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.input_file_;" (assignment_expression "this_02 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.input_file_" identifier = (field_expression "(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.input_file_" (field_expression "(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object" (field_expression "(this->super_Sized_relobj<64,_false>).super_Relobj" (parenthesized_expression "(this->super_Sized_relobj<64,_false>)" ( (comma_expression "this->super_Sized_relobj<64,_false" (binary_expression "this->super_Sized_relobj<64" (field_expression "this->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier)) ;) (if_statement "if (this_02 == (Input_file *)0x0) {\nLAB_001a3824:\n                    /* WARNING: Subroutine does not return */\n    Object::input_file((Object *)this_02);\n  }" if (parenthesized_expression "(this_02 == (Input_file *)0x0)" ( (binary_expression "this_02 == (Input_file *)0x0" identifier == (cast_expression "(Input_file *)0x0" ( (type_descriptor "Input_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_001a3824:\n                    /* WARNING: Subroutine does not return */\n    Object::input_file((Object *)this_02);\n  }" { (labeled_statement "LAB_001a3824:\n                    /* WARNING: Subroutine does not return */\n    Object::input_file((Object *)this_02);" statement_identifier : comment (labeled_statement "Object::input_file((Object *)this_02);" statement_identifier : (ERROR ":" :) (expression_statement "input_file((Object *)this_02);" (call_expression "input_file((Object *)this_02)" identifier (argument_list "((Object *)this_02)" ( (cast_expression "(Object *)this_02" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;))) })) (ERROR "puVar12 = File_read::" (assignment_expression "puVar12 = File_read" identifier = identifier) : :) (expression_statement "get_view(&this_02->file_,\n                                (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                                offset_,start,0x40,true,true);" (call_expression "get_view(&this_02->file_,\n                                (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                                offset_,start,0x40,true,true)" identifier (argument_list "(&this_02->file_,\n                                (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                                offset_,start,0x40,true,true)" ( (pointer_expression "&this_02->file_" & (field_expression "this_02->file_" identifier -> field_identifier)) , (field_expression "(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                                offset_" (field_expression "(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object" (field_expression "(this->super_Sized_relobj<64,_false>).super_Relobj" (parenthesized_expression "(this->super_Sized_relobj<64,_false>)" ( (comma_expression "this->super_Sized_relobj<64,_false" (binary_expression "this->super_Sized_relobj<64" (field_expression "this->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) , identifier , number_literal , true , true ))) ;) (if_statement "if (*(int *)(puVar12 + 4) != 2) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/object.cc",0xaa2,"write_local_symbols");\n  }" if (parenthesized_expression "(*(int *)(puVar12 + 4) != 2)" ( (binary_expression "*(int *)(puVar12 + 4) != 2" (pointer_expression "*(int *)(puVar12 + 4)" * (cast_expression "(int *)(puVar12 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 4)" ( (binary_expression "puVar12 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/object.cc",0xaa2,"write_local_symbols");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/object.cc",0xaa2,"write_local_symbols");" (call_expression "do_gold_unreachable("../../gold/object.cc",0xaa2,"write_local_symbols")" identifier (argument_list "("../../gold/object.cc",0xaa2,"write_local_symbols")" ( (string_literal ""../../gold/object.cc"" " string_content ") , number_literal , (string_literal ""write_local_symbols"" " string_content ") ))) ;) })) (expression_statement "uVar2 = this->local_symbol_count_;" (assignment_expression "uVar2 = this->local_symbol_count_" identifier = (field_expression "this->local_symbol_count_" identifier -> field_identifier)) ;) (if_statement "if (uVar2 != *(uint *)(puVar12 + 0x2c)) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/object.cc",0xaa4,"write_local_symbols");\n  }" if (parenthesized_expression "(uVar2 != *(uint *)(puVar12 + 0x2c))" ( (binary_expression "uVar2 != *(uint *)(puVar12 + 0x2c)" identifier != (pointer_expression "*(uint *)(puVar12 + 0x2c)" * (cast_expression "(uint *)(puVar12 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x2c)" ( (binary_expression "puVar12 + 0x2c" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/object.cc",0xaa4,"write_local_symbols");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/object.cc",0xaa4,"write_local_symbols");" (call_expression "do_gold_unreachable("../../gold/object.cc",0xaa4,"write_local_symbols")" identifier (argument_list "("../../gold/object.cc",0xaa4,"write_local_symbols")" ( (string_literal ""../../gold/object.cc"" " string_content ") , number_literal , (string_literal ""write_local_symbols"" " string_content ") ))) ;) })) (expression_statement "this_02 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.input_file_;" (assignment_expression "this_02 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.input_file_" identifier = (field_expression "(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.input_file_" (field_expression "(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object" (field_expression "(this->super_Sized_relobj<64,_false>).super_Relobj" (parenthesized_expression "(this->super_Sized_relobj<64,_false>)" ( (comma_expression "this->super_Sized_relobj<64,_false" (binary_expression "this->super_Sized_relobj<64" (field_expression "this->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "this_1 = (Output_file *)(ulong)(uVar2 * 0x18);" (assignment_expression "this_1 = (Output_file *)(ulong)(uVar2 * 0x18)" identifier = (cast_expression "(Output_file *)(ulong)(uVar2 * 0x18)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(uVar2 * 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar2 * 0x18)" ( (binary_expression "uVar2 * 0x18" identifier * number_literal) ))))) ;) (if_statement "if (this_02 == (Input_file *)0x0) goto LAB_001a3824;" if (parenthesized_expression "(this_02 == (Input_file *)0x0)" ( (binary_expression "this_02 == (Input_file *)0x0" identifier == (cast_expression "(Input_file *)0x0" ( (type_descriptor "Input_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001a3824;" goto statement_identifier ;)) (ERROR "puVar13 = File_read::" (assignment_expression "puVar13 = File_read" identifier = identifier) : :) (expression_statement "get_view(&this_02->file_,\n                                (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                                offset_,*(off_t *)(puVar12 + 0x18),(section_size_type)this_1,true,\n                                false);" (call_expression "get_view(&this_02->file_,\n                                (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                                offset_,*(off_t *)(puVar12 + 0x18),(section_size_type)this_1,true,\n                                false)" identifier (argument_list "(&this_02->file_,\n                                (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                                offset_,*(off_t *)(puVar12 + 0x18),(section_size_type)this_1,true,\n                                false)" ( (pointer_expression "&this_02->file_" & (field_expression "this_02->file_" identifier -> field_identifier)) , (field_expression "(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                                offset_" (field_expression "(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object" (field_expression "(this->super_Sized_relobj<64,_false>).super_Relobj" (parenthesized_expression "(this->super_Sized_relobj<64,_false>)" ( (comma_expression "this->super_Sized_relobj<64,_false" (binary_expression "this->super_Sized_relobj<64" (field_expression "this->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) , (pointer_expression "*(off_t *)(puVar12 + 0x18)" * (cast_expression "(off_t *)(puVar12 + 0x18)" ( (type_descriptor "off_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x18)" ( (binary_expression "puVar12 + 0x18" identifier + number_literal) )))) , (cast_expression "(section_size_type)this_1" ( (type_descriptor "section_size_type" type_identifier) ) identifier) , true , false ))) ;) (expression_statement "uVar24 = *(uint *)(puVar12 + 0x28);" (assignment_expression "uVar24 = *(uint *)(puVar12 + 0x28)" identifier = (pointer_expression "*(uint *)(puVar12 + 0x28)" * (cast_expression "(uint *)(puVar12 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x28)" ( (binary_expression "puVar12 + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (0xfeff < uVar24) {\n    elfcpp::Elf_file<64,_false,_gold::Object>::initialize_shnum(this_00);\n    uVar24 = uVar24 + (this->elf_file_).large_shndx_offset_;\n  }" if (parenthesized_expression "(0xfeff < uVar24)" ( (binary_expression "0xfeff < uVar24" number_literal < identifier) )) (compound_statement "{\n    elfcpp::Elf_file<64,_false,_gold::Object>::initialize_shnum(this_00);\n    uVar24 = uVar24 + (this->elf_file_).large_shndx_offset_;\n  }" { (labeled_statement "elfcpp::Elf_file<64,_false,_gold::Object>::initialize_shnum(this_00);" statement_identifier (ERROR "::Elf_file<64,_false,_gold::Object>:" : : (comma_expression "Elf_file<64,_false,_gold" (binary_expression "Elf_file<64" identifier < number_literal) , (comma_expression "_false,_gold" identifier , identifier)) : : identifier > :) : (expression_statement "initialize_shnum(this_00);" (call_expression "initialize_shnum(this_00)" identifier (argument_list "(this_00)" ( identifier ))) ;)) (expression_statement "uVar24 = uVar24 + (this->elf_file_).large_shndx_offset_;" (assignment_expression "uVar24 = uVar24 + (this->elf_file_).large_shndx_offset_" identifier = (binary_expression "uVar24 + (this->elf_file_).large_shndx_offset_" identifier + (field_expression "(this->elf_file_).large_shndx_offset_" (parenthesized_expression "(this->elf_file_)" ( (field_expression "this->elf_file_" identifier -> field_identifier) )) . field_identifier))) ;) })) (expression_statement "p_Var3 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object[0xe];" (assignment_expression "p_Var3 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object[0xe]" identifier = (subscript_expression "(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object[0xe]" (field_expression "(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object" (field_expression "(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object" (field_expression "(this->super_Sized_relobj<64,_false>).super_Relobj" (parenthesized_expression "(this->super_Sized_relobj<64,_false>)" ( (comma_expression "this->super_Sized_relobj<64,_false" (binary_expression "this->super_Sized_relobj<64" (field_expression "this->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) [ number_literal ])) ;) (if_statement "if (p_Var3 == do_section_contents) {\n    uVar20 = (ulong)uVar24;\n    LVar32 = elfcpp::Elf_file<64,_false,_gold::Object>::section_contents(this_00,uVar24);\n    size = (Output_file *)LVar32.data_size;\n    this_02 = (Input_file *)\n              &Sized_relobj_file<64,false>::do_section_contents(unsigned_int,unsigned_long*,bool)::\n               empty;\n    local_b0 = "";\n    strtab_size = (section_size_type)size;\n    if (size != (Output_file *)0x0) {\n      pIVar8 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.input_file_;\n      if (pIVar8 == (Input_file *)0x0) goto LAB_001a3824;\n      uVar20 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.offset_;\n      local_b0 = File_read::get_view(&pIVar8->file_,uVar20,LVar32.file_offset,\n                                     (section_size_type)size,true,false);\n      this_1 = size;\n      size = extraout_RDX;\n    }\n  }\n  else {\n    this_1 = (Output_file *)0x0;\n    uVar20 = (ulong)uVar24;\n    iVar11 = (*p_Var3)(this,uVar20,&strtab_size);\n    local_b0 = (uchar *)CONCAT44(extraout_var_00,iVar11);\n    size = extraout_RDX_00;\n  }" if (parenthesized_expression "(p_Var3 == do_section_contents)" ( (binary_expression "p_Var3 == do_section_contents" identifier == identifier) )) (compound_statement "{\n    uVar20 = (ulong)uVar24;\n    LVar32 = elfcpp::Elf_file<64,_false,_gold::Object>::section_contents(this_00,uVar24);\n    size = (Output_file *)LVar32.data_size;\n    this_02 = (Input_file *)\n              &Sized_relobj_file<64,false>::do_section_contents(unsigned_int,unsigned_long*,bool)::\n               empty;\n    local_b0 = "";\n    strtab_size = (section_size_type)size;\n    if (size != (Output_file *)0x0) {\n      pIVar8 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.input_file_;\n      if (pIVar8 == (Input_file *)0x0) goto LAB_001a3824;\n      uVar20 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.offset_;\n      local_b0 = File_read::get_view(&pIVar8->file_,uVar20,LVar32.file_offset,\n                                     (section_size_type)size,true,false);\n      this_1 = size;\n      size = extraout_RDX;\n    }\n  }" { (expression_statement "uVar20 = (ulong)uVar24;" (assignment_expression "uVar20 = (ulong)uVar24" identifier = (cast_expression "(ulong)uVar24" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (ERROR "LVar32 = elfcpp::Elf_file<64,_false,_gold::" (comma_expression "LVar32 = elfcpp::Elf_file<64,_false,_gold" (binary_expression "LVar32 = elfcpp::Elf_file<64" (assignment_expression "LVar32 = elfcpp" identifier = identifier) (ERROR "::Elf_file" : : identifier) < number_literal) , (comma_expression "_false,_gold" identifier , identifier)) : :) (expression_statement "Object>::section_contents(this_00,uVar24);" (binary_expression "Object>::section_contents(this_00,uVar24)" identifier > (ERROR "::" : :) (call_expression "section_contents(this_00,uVar24)" identifier (argument_list "(this_00,uVar24)" ( identifier , identifier )))) ;) (expression_statement "size = (Output_file *)LVar32.data_size;" (assignment_expression "size = (Output_file *)LVar32.data_size" identifier = (cast_expression "(Output_file *)LVar32.data_size" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "LVar32.data_size" identifier . field_identifier))) ;) (expression_statement "this_02 = (Input_file *)\n              &Sized_relobj_file<64,false>::do_section_contents(unsigned_int,unsigned_long*,bool)::\n               empty;" (comma_expression "this_02 = (Input_file *)\n              &Sized_relobj_file<64,false>::do_section_contents(unsigned_int,unsigned_long*,bool)" (assignment_expression "this_02 = (Input_file *)\n              &Sized_relobj_file<64" identifier = (binary_expression "(Input_file *)\n              &Sized_relobj_file<64" (cast_expression "(Input_file *)\n              &Sized_relobj_file" ( (type_descriptor "Input_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&Sized_relobj_file" & identifier)) < number_literal)) , (binary_expression "false>::do_section_contents(unsigned_int,unsigned_long*,bool)" false > (ERROR "::" : :) (call_expression "do_section_contents(unsigned_int,unsigned_long*,bool)" identifier (argument_list "(unsigned_int,unsigned_long*,bool)" ( identifier , identifier (ERROR "*" *) , identifier ))))) (ERROR "::\n               empty" : : identifier) ;) (expression_statement "local_b0 = "";" (assignment_expression "local_b0 = """ identifier = (string_literal """" " ")) ;) (expression_statement "strtab_size = (section_size_type)size;" (assignment_expression "strtab_size = (section_size_type)size" identifier = (cast_expression "(section_size_type)size" ( (type_descriptor "section_size_type" type_identifier) ) identifier)) ;) (if_statement "if (size != (Output_file *)0x0) {\n      pIVar8 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.input_file_;\n      if (pIVar8 == (Input_file *)0x0) goto LAB_001a3824;\n      uVar20 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.offset_;\n      local_b0 = File_read::get_view(&pIVar8->file_,uVar20,LVar32.file_offset,\n                                     (section_size_type)size,true,false);\n      this_1 = size;\n      size = extraout_RDX;\n    }" if (parenthesized_expression "(size != (Output_file *)0x0)" ( (binary_expression "size != (Output_file *)0x0" identifier != (cast_expression "(Output_file *)0x0" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pIVar8 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.input_file_;\n      if (pIVar8 == (Input_file *)0x0) goto LAB_001a3824;\n      uVar20 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.offset_;\n      local_b0 = File_read::get_view(&pIVar8->file_,uVar20,LVar32.file_offset,\n                                     (section_size_type)size,true,false);\n      this_1 = size;\n      size = extraout_RDX;\n    }" { (expression_statement "pIVar8 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.input_file_;" (assignment_expression "pIVar8 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.input_file_" identifier = (field_expression "(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.input_file_" (field_expression "(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object" (field_expression "(this->super_Sized_relobj<64,_false>).super_Relobj" (parenthesized_expression "(this->super_Sized_relobj<64,_false>)" ( (comma_expression "this->super_Sized_relobj<64,_false" (binary_expression "this->super_Sized_relobj<64" (field_expression "this->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier)) ;) (if_statement "if (pIVar8 == (Input_file *)0x0) goto LAB_001a3824;" if (parenthesized_expression "(pIVar8 == (Input_file *)0x0)" ( (binary_expression "pIVar8 == (Input_file *)0x0" identifier == (cast_expression "(Input_file *)0x0" ( (type_descriptor "Input_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001a3824;" goto statement_identifier ;)) (expression_statement "uVar20 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.offset_;" (assignment_expression "uVar20 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.offset_" identifier = (field_expression "(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.offset_" (field_expression "(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object" (field_expression "(this->super_Sized_relobj<64,_false>).super_Relobj" (parenthesized_expression "(this->super_Sized_relobj<64,_false>)" ( (comma_expression "this->super_Sized_relobj<64,_false" (binary_expression "this->super_Sized_relobj<64" (field_expression "this->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier)) ;) (ERROR "local_b0 = File_read::" (assignment_expression "local_b0 = File_read" identifier = identifier) : :) (expression_statement "get_view(&pIVar8->file_,uVar20,LVar32.file_offset,\n                                     (section_size_type)size,true,false);" (call_expression "get_view(&pIVar8->file_,uVar20,LVar32.file_offset,\n                                     (section_size_type)size,true,false)" identifier (argument_list "(&pIVar8->file_,uVar20,LVar32.file_offset,\n                                     (section_size_type)size,true,false)" ( (pointer_expression "&pIVar8->file_" & (field_expression "pIVar8->file_" identifier -> field_identifier)) , identifier , (field_expression "LVar32.file_offset" identifier . field_identifier) , (cast_expression "(section_size_type)size" ( (type_descriptor "section_size_type" type_identifier) ) identifier) , true , false ))) ;) (expression_statement "this_1 = size;" (assignment_expression "this_1 = size" identifier = identifier) ;) (expression_statement "size = extraout_RDX;" (assignment_expression "size = extraout_RDX" identifier = identifier) ;) })) }) (else_clause "else {\n    this_1 = (Output_file *)0x0;\n    uVar20 = (ulong)uVar24;\n    iVar11 = (*p_Var3)(this,uVar20,&strtab_size);\n    local_b0 = (uchar *)CONCAT44(extraout_var_00,iVar11);\n    size = extraout_RDX_00;\n  }" else (compound_statement "{\n    this_1 = (Output_file *)0x0;\n    uVar20 = (ulong)uVar24;\n    iVar11 = (*p_Var3)(this,uVar20,&strtab_size);\n    local_b0 = (uchar *)CONCAT44(extraout_var_00,iVar11);\n    size = extraout_RDX_00;\n  }" { (expression_statement "this_1 = (Output_file *)0x0;" (assignment_expression "this_1 = (Output_file *)0x0" identifier = (cast_expression "(Output_file *)0x0" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar20 = (ulong)uVar24;" (assignment_expression "uVar20 = (ulong)uVar24" identifier = (cast_expression "(ulong)uVar24" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "iVar11 = (*p_Var3)(this,uVar20,&strtab_size);" (assignment_expression "iVar11 = (*p_Var3)(this,uVar20,&strtab_size)" identifier = (call_expression "(*p_Var3)(this,uVar20,&strtab_size)" (parenthesized_expression "(*p_Var3)" ( (pointer_expression "*p_Var3" * identifier) )) (argument_list "(this,uVar20,&strtab_size)" ( identifier , identifier , (pointer_expression "&strtab_size" & identifier) )))) ;) (expression_statement "local_b0 = (uchar *)CONCAT44(extraout_var_00,iVar11);" (assignment_expression "local_b0 = (uchar *)CONCAT44(extraout_var_00,iVar11)" identifier = (cast_expression "(uchar *)CONCAT44(extraout_var_00,iVar11)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT44(extraout_var_00,iVar11)" identifier (argument_list "(extraout_var_00,iVar11)" ( identifier , identifier ))))) ;) (expression_statement "size = extraout_RDX_00;" (assignment_expression "size = extraout_RDX_00" identifier = identifier) ;) }))) (expression_statement "uVar24 = this->output_local_symbol_count_ * 0x18;" (assignment_expression "uVar24 = this->output_local_symbol_count_ * 0x18" identifier = (binary_expression "this->output_local_symbol_count_ * 0x18" (field_expression "this->output_local_symbol_count_" identifier -> field_identifier) * number_literal)) ;) (expression_statement "pOVar26 = (Output_file *)(ulong)uVar24;" (assignment_expression "pOVar26 = (Output_file *)(ulong)uVar24" identifier = (cast_expression "(Output_file *)(ulong)uVar24" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)uVar24" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) (if_statement "if (uVar24 == 0) {\n    local_70 = (uchar *)0x0;\nLAB_001a31f6:\n    uVar25 = this->output_local_dynsym_count_ * 0x18;\n    this_03 = (Output_file *)(ulong)uVar25;\n    if (uVar25 == 0) {\n      local_68 = (uchar *)0x0;\n    }\n    else {\n      lVar14 = this->local_dynsym_offset_;\n      if ((lVar14 < 0) ||\n         (size = (Output_file *)((long)&this_03->name_ + lVar14), of->file_size_ < (long)size))\n      goto LAB_001a3859;\n      local_68 = of->base_ + lVar14;\n    }\n    pSVar21 = (this->local_values_).\n              super__Vector_base<gold::Symbol_value<64>,_std::allocator<gold::Symbol_value<64>_>_>.\n              _M_impl._M_start;\n    if ((ulong)uVar2 ==\n        ((long)(this->local_values_).\n               super__Vector_base<gold::Symbol_value<64>,_std::allocator<gold::Symbol_value<64>_>_>.\n               _M_impl._M_finish - (long)pSVar21 >> 3) * -0x5555555555555555) {\n      puVar12 = local_68;\n      puVar31 = local_70;\n      if (uVar2 < 2) {\nLAB_001a3680:\n        if ((uVar24 != 0) && ((Output_file *)(puVar31 + -(long)local_70) != pOVar26)) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/object.cc",0xb0a,"write_local_symbols");\n        }\n        if ((uVar25 != 0) && ((Output_file *)(puVar12 + -(long)local_68) != this_03)) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/object.cc",0xb11,"write_local_symbols");\n        }\n        return;\n      }\n      puVar29 = puVar13 + 0x30;\n      local_b8 = 1;\n      do {\n        uVar19 = *(ushort *)(puVar29 + -0x12);\n        uVar20 = (ulong)uVar19;\n        puVar22 = (uint *)(puVar29 + (long)pSVar21 + (-0x18 - (long)puVar13));\n        if (uVar19 < 0xff00) {\nLAB_001a350a:\n          ppOVar6 = (this->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                    super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                    ._M_impl._M_start;\n          if ((ulong)((long)(this->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                            ._M_impl._M_finish - (long)ppOVar6 >> 3) <= uVar20) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/object.cc",0xad5,"write_local_symbols");\n          }\n          pOVar7 = ppOVar6[uVar20];\n          if (pOVar7 != (Output_section *)0x0) {\n            p_Var3 = (pOVar7->super_Output_data)._vptr_Output_data[0xb];\n            if (p_Var3 == Output_section::do_out_shndx) {\n              uVar10 = pOVar7->out_shndx_;\n              if (uVar10 == 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar10 = (*p_Var3)();\n            }\n            uVar19 = (ushort)uVar10;\n            uVar9 = *puVar22;\n            bVar17 = uVar9 != 0 && uVar9 != 0xfffffffe;\n            if (0xfeff < uVar10) {\n              if (uVar9 == 0 || uVar9 == 0xfffffffe) goto LAB_001a374c;\n              if (uVar9 != 0xffffffff) {\n                local_40[0].first = uVar9;\n                local_40[0].second = uVar10;\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_,local_40);\n              }\n              uVar9 = puVar22[1];\n              if (uVar9 == 0) goto LAB_001a3764;\n              if (uVar9 == 0xffffffff) {\n                uVar9 = *puVar22;\n                uVar19 = 0xffff;\n                bVar17 = uVar9 != 0 && uVar9 != 0xfffffffe;\n              }\n              else {\n                uVar19 = 0xffff;\n                local_40[0].first = uVar9;\n                local_40[0].second = uVar10;\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_,local_40);\n                uVar9 = *puVar22;\n                bVar17 = uVar9 != 0xfffffffe && uVar9 != 0;\n              }\n            }\n            goto LAB_001a32f9;\n          }\n        }\n        else {\n          if (uVar19 == 0xffff) {\n            this_01 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_;\n            if (this_01 == (Xindex *)0x0) {\n              iVar11 = (*(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                         _vptr_Object[0x1b])(this);\n              this_01 = (Xindex *)CONCAT44(extraout_var,iVar11);\n              (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = this_01;\n            }\n            uVar10 = Xindex::sym_xindex_to_shndx(this_01,(Object *)this,local_b8);\n            uVar20 = (ulong)uVar10;\n            goto LAB_001a350a;\n          }\n          uVar9 = *puVar22;\n          bVar17 = uVar9 != 0 && uVar9 != 0xfffffffe;\nLAB_001a32f9:\n          if (!bVar17) {\nLAB_001a374c:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }\n          puVar30 = puVar31;\n          if (uVar9 != 0xffffffff) {\n            if (strtab_size <= *(uint *)(puVar29 + -0x18)) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/object.cc",0xae8,"write_local_symbols");\n            }\n            sVar15 = Stringpool_template<char>::get_offset\n                               (sympool,(char *)(local_b0 + *(uint *)(puVar29 + -0x18)));\n            *(int *)puVar31 = (int)sVar15;\n            if ((char)*(byte *)((long)puVar22 + 0xb) < '\0') {\n              p_Var16 = *(_Hash_node_base **)(puVar22 + 4);\n            }\n            else {\n              if ((*(byte *)((long)puVar22 + 0xb) & 8) == 0) goto LAB_001a377c;\n              pMVar4 = *(Merged_symbol_value<64> **)(puVar22 + 4);\n              p_Var16 = (_Hash_node_base *)pMVar4->input_value_;\n              uVar20 = (pMVar4->output_addresses_)._M_h._M_bucket_count;\n              uVar18 = (ulong)p_Var16 % uVar20;\n              p_Var28 = (pMVar4->output_addresses_)._M_h._M_buckets[uVar18];\n              if (p_Var28 != (__bucket_type)0x0) {\n                p_Var23 = p_Var28->_M_nxt[1]._M_nxt;\n                p_Var5 = p_Var28->_M_nxt;\n                while (p_Var27 = p_Var5, p_Var16 != p_Var23) {\n                  p_Var5 = p_Var27->_M_nxt;\n                  if ((p_Var5 == (_Hash_node_base *)0x0) ||\n                     (p_Var23 = p_Var5[1]._M_nxt, p_Var28 = p_Var27,\n                     uVar18 != (ulong)p_Var23 % uVar20)) goto LAB_001a3660;\n                }\n                if (p_Var28->_M_nxt != (_Hash_node_base *)0x0) {\n                  p_Var16 = p_Var28->_M_nxt[2]._M_nxt;\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              p_Var16 = (_Hash_node_base *)\n                        Merged_symbol_value<64>::value_from_output_section\n                                  (pMVar4,(Relobj *)this,puVar22[2] & 0x7ffffff,(Elf_Addr)p_Var16);\n            }\nLAB_001a33ac:\n            *(_Hash_node_base **)(puVar31 + 8) = p_Var16;\n            puVar30 = puVar31 + 0x18;\n            *(undefined8 *)(puVar31 + 0x10) = *(undefined8 *)(puVar29 + -8);\n            puVar31[4] = puVar29[-0x14];\n            uVar1 = puVar29[-0x13];\n            *(ushort *)(puVar31 + 6) = uVar19;\n            puVar31[5] = uVar1;\n          }\n          if (puVar22[1] == 0) {\nLAB_001a3764:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/object.h",0x738,"has_output_dynsym_entry");\n          }\n          puVar31 = puVar30;\n          if (puVar22[1] != 0xffffffff) {\n            if (local_68 + (long)this_03 <= puVar12) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }\n            if (strtab_size <= *(uint *)(puVar29 + -0x18)) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/object.cc",0xafa,"write_local_symbols");\n            }\n            sVar15 = Stringpool_template<char>::get_offset\n                               (dynpool,(char *)(local_b0 + *(uint *)(puVar29 + -0x18)));\n            *(int *)puVar12 = (int)sVar15;\n            if ((char)*(byte *)((long)puVar22 + 0xb) < '\0') {\n              p_Var16 = *(_Hash_node_base **)(puVar22 + 4);\n            }\n            else {\n              if ((*(byte *)((long)puVar22 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n              }\n              pMVar4 = *(Merged_symbol_value<64> **)(puVar22 + 4);\n              p_Var16 = (_Hash_node_base *)pMVar4->input_value_;\n              uVar20 = (pMVar4->output_addresses_)._M_h._M_bucket_count;\n              uVar18 = (ulong)p_Var16 % uVar20;\n              p_Var28 = (pMVar4->output_addresses_)._M_h._M_buckets[uVar18];\n              if (p_Var28 != (__bucket_type)0x0) {\n                p_Var23 = p_Var28->_M_nxt[1]._M_nxt;\n                p_Var5 = p_Var28->_M_nxt;\n                while (p_Var27 = p_Var5, p_Var23 != p_Var16) {\n                  p_Var5 = p_Var27->_M_nxt;\n                  if ((p_Var5 == (_Hash_node_base *)0x0) ||\n                     (p_Var23 = p_Var5[1]._M_nxt, p_Var28 = p_Var27,\n                     uVar18 != (ulong)p_Var23 % uVar20)) goto LAB_001a3608;\n                }\n                if (p_Var28->_M_nxt != (_Hash_node_base *)0x0) {\n                  p_Var16 = p_Var28->_M_nxt[2]._M_nxt;\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              p_Var16 = (_Hash_node_base *)\n                        Merged_symbol_value<64>::value_from_output_section\n                                  (pMVar4,(Relobj *)this,puVar22[2] & 0x7ffffff,(Elf_Addr)p_Var16);\n            }\nLAB_001a349c:\n            *(_Hash_node_base **)(puVar12 + 8) = p_Var16;\n            *(undefined8 *)(puVar12 + 0x10) = *(undefined8 *)(puVar29 + -8);\n            puVar12[4] = puVar29[-0x14];\n            uVar1 = puVar29[-0x13];\n            *(ushort *)(puVar12 + 6) = uVar19;\n            puVar12[5] = uVar1;\n            puVar12 = puVar12 + 0x18;\n          }\n        }\n        local_b8 = local_b8 + 1;\n        puVar29 = puVar29 + 0x18;\n        if (uVar2 == local_b8) goto LAB_001a3680;\n        pSVar21 = (this->local_values_).\n                  super__Vector_base<gold::Symbol_value<64>,_std::allocator<gold::Symbol_value<64>_>_>\n                  ._M_impl._M_start;\n      } while( true );\n    }\n  }\n  else {\n    lVar14 = symtab_off + this->local_symbol_offset_;\n    this_03 = pOVar26;\n    if ((-1 < lVar14) &&\n       (size = (Output_file *)((long)&pOVar26->name_ + lVar14), (long)size <= of->file_size_)) {\n      local_70 = of->base_ + lVar14;\n      goto LAB_001a31f6;\n    }\nLAB_001a3859:\n    Output_file::get_output_view(this_03,uVar20,(size_t)size,this_1);\n  }" if (parenthesized_expression "(uVar24 == 0)" ( (binary_expression "uVar24 == 0" identifier == number_literal) )) (compound_statement "{\n    local_70 = (uchar *)0x0;\nLAB_001a31f6:\n    uVar25 = this->output_local_dynsym_count_ * 0x18;\n    this_03 = (Output_file *)(ulong)uVar25;\n    if (uVar25 == 0) {\n      local_68 = (uchar *)0x0;\n    }\n    else {\n      lVar14 = this->local_dynsym_offset_;\n      if ((lVar14 < 0) ||\n         (size = (Output_file *)((long)&this_03->name_ + lVar14), of->file_size_ < (long)size))\n      goto LAB_001a3859;\n      local_68 = of->base_ + lVar14;\n    }\n    pSVar21 = (this->local_values_).\n              super__Vector_base<gold::Symbol_value<64>,_std::allocator<gold::Symbol_value<64>_>_>.\n              _M_impl._M_start;\n    if ((ulong)uVar2 ==\n        ((long)(this->local_values_).\n               super__Vector_base<gold::Symbol_value<64>,_std::allocator<gold::Symbol_value<64>_>_>.\n               _M_impl._M_finish - (long)pSVar21 >> 3) * -0x5555555555555555) {\n      puVar12 = local_68;\n      puVar31 = local_70;\n      if (uVar2 < 2) {\nLAB_001a3680:\n        if ((uVar24 != 0) && ((Output_file *)(puVar31 + -(long)local_70) != pOVar26)) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/object.cc",0xb0a,"write_local_symbols");\n        }\n        if ((uVar25 != 0) && ((Output_file *)(puVar12 + -(long)local_68) != this_03)) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/object.cc",0xb11,"write_local_symbols");\n        }\n        return;\n      }\n      puVar29 = puVar13 + 0x30;\n      local_b8 = 1;\n      do {\n        uVar19 = *(ushort *)(puVar29 + -0x12);\n        uVar20 = (ulong)uVar19;\n        puVar22 = (uint *)(puVar29 + (long)pSVar21 + (-0x18 - (long)puVar13));\n        if (uVar19 < 0xff00) {\nLAB_001a350a:\n          ppOVar6 = (this->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                    super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                    ._M_impl._M_start;\n          if ((ulong)((long)(this->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                            ._M_impl._M_finish - (long)ppOVar6 >> 3) <= uVar20) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/object.cc",0xad5,"write_local_symbols");\n          }\n          pOVar7 = ppOVar6[uVar20];\n          if (pOVar7 != (Output_section *)0x0) {\n            p_Var3 = (pOVar7->super_Output_data)._vptr_Output_data[0xb];\n            if (p_Var3 == Output_section::do_out_shndx) {\n              uVar10 = pOVar7->out_shndx_;\n              if (uVar10 == 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar10 = (*p_Var3)();\n            }\n            uVar19 = (ushort)uVar10;\n            uVar9 = *puVar22;\n            bVar17 = uVar9 != 0 && uVar9 != 0xfffffffe;\n            if (0xfeff < uVar10) {\n              if (uVar9 == 0 || uVar9 == 0xfffffffe) goto LAB_001a374c;\n              if (uVar9 != 0xffffffff) {\n                local_40[0].first = uVar9;\n                local_40[0].second = uVar10;\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_,local_40);\n              }\n              uVar9 = puVar22[1];\n              if (uVar9 == 0) goto LAB_001a3764;\n              if (uVar9 == 0xffffffff) {\n                uVar9 = *puVar22;\n                uVar19 = 0xffff;\n                bVar17 = uVar9 != 0 && uVar9 != 0xfffffffe;\n              }\n              else {\n                uVar19 = 0xffff;\n                local_40[0].first = uVar9;\n                local_40[0].second = uVar10;\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_,local_40);\n                uVar9 = *puVar22;\n                bVar17 = uVar9 != 0xfffffffe && uVar9 != 0;\n              }\n            }\n            goto LAB_001a32f9;\n          }\n        }\n        else {\n          if (uVar19 == 0xffff) {\n            this_01 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_;\n            if (this_01 == (Xindex *)0x0) {\n              iVar11 = (*(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                         _vptr_Object[0x1b])(this);\n              this_01 = (Xindex *)CONCAT44(extraout_var,iVar11);\n              (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = this_01;\n            }\n            uVar10 = Xindex::sym_xindex_to_shndx(this_01,(Object *)this,local_b8);\n            uVar20 = (ulong)uVar10;\n            goto LAB_001a350a;\n          }\n          uVar9 = *puVar22;\n          bVar17 = uVar9 != 0 && uVar9 != 0xfffffffe;\nLAB_001a32f9:\n          if (!bVar17) {\nLAB_001a374c:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }\n          puVar30 = puVar31;\n          if (uVar9 != 0xffffffff) {\n            if (strtab_size <= *(uint *)(puVar29 + -0x18)) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/object.cc",0xae8,"write_local_symbols");\n            }\n            sVar15 = Stringpool_template<char>::get_offset\n                               (sympool,(char *)(local_b0 + *(uint *)(puVar29 + -0x18)));\n            *(int *)puVar31 = (int)sVar15;\n            if ((char)*(byte *)((long)puVar22 + 0xb) < '\0') {\n              p_Var16 = *(_Hash_node_base **)(puVar22 + 4);\n            }\n            else {\n              if ((*(byte *)((long)puVar22 + 0xb) & 8) == 0) goto LAB_001a377c;\n              pMVar4 = *(Merged_symbol_value<64> **)(puVar22 + 4);\n              p_Var16 = (_Hash_node_base *)pMVar4->input_value_;\n              uVar20 = (pMVar4->output_addresses_)._M_h._M_bucket_count;\n              uVar18 = (ulong)p_Var16 % uVar20;\n              p_Var28 = (pMVar4->output_addresses_)._M_h._M_buckets[uVar18];\n              if (p_Var28 != (__bucket_type)0x0) {\n                p_Var23 = p_Var28->_M_nxt[1]._M_nxt;\n                p_Var5 = p_Var28->_M_nxt;\n                while (p_Var27 = p_Var5, p_Var16 != p_Var23) {\n                  p_Var5 = p_Var27->_M_nxt;\n                  if ((p_Var5 == (_Hash_node_base *)0x0) ||\n                     (p_Var23 = p_Var5[1]._M_nxt, p_Var28 = p_Var27,\n                     uVar18 != (ulong)p_Var23 % uVar20)) goto LAB_001a3660;\n                }\n                if (p_Var28->_M_nxt != (_Hash_node_base *)0x0) {\n                  p_Var16 = p_Var28->_M_nxt[2]._M_nxt;\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              p_Var16 = (_Hash_node_base *)\n                        Merged_symbol_value<64>::value_from_output_section\n                                  (pMVar4,(Relobj *)this,puVar22[2] & 0x7ffffff,(Elf_Addr)p_Var16);\n            }\nLAB_001a33ac:\n            *(_Hash_node_base **)(puVar31 + 8) = p_Var16;\n            puVar30 = puVar31 + 0x18;\n            *(undefined8 *)(puVar31 + 0x10) = *(undefined8 *)(puVar29 + -8);\n            puVar31[4] = puVar29[-0x14];\n            uVar1 = puVar29[-0x13];\n            *(ushort *)(puVar31 + 6) = uVar19;\n            puVar31[5] = uVar1;\n          }\n          if (puVar22[1] == 0) {\nLAB_001a3764:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/object.h",0x738,"has_output_dynsym_entry");\n          }\n          puVar31 = puVar30;\n          if (puVar22[1] != 0xffffffff) {\n            if (local_68 + (long)this_03 <= puVar12) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }\n            if (strtab_size <= *(uint *)(puVar29 + -0x18)) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/object.cc",0xafa,"write_local_symbols");\n            }\n            sVar15 = Stringpool_template<char>::get_offset\n                               (dynpool,(char *)(local_b0 + *(uint *)(puVar29 + -0x18)));\n            *(int *)puVar12 = (int)sVar15;\n            if ((char)*(byte *)((long)puVar22 + 0xb) < '\0') {\n              p_Var16 = *(_Hash_node_base **)(puVar22 + 4);\n            }\n            else {\n              if ((*(byte *)((long)puVar22 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n              }\n              pMVar4 = *(Merged_symbol_value<64> **)(puVar22 + 4);\n              p_Var16 = (_Hash_node_base *)pMVar4->input_value_;\n              uVar20 = (pMVar4->output_addresses_)._M_h._M_bucket_count;\n              uVar18 = (ulong)p_Var16 % uVar20;\n              p_Var28 = (pMVar4->output_addresses_)._M_h._M_buckets[uVar18];\n              if (p_Var28 != (__bucket_type)0x0) {\n                p_Var23 = p_Var28->_M_nxt[1]._M_nxt;\n                p_Var5 = p_Var28->_M_nxt;\n                while (p_Var27 = p_Var5, p_Var23 != p_Var16) {\n                  p_Var5 = p_Var27->_M_nxt;\n                  if ((p_Var5 == (_Hash_node_base *)0x0) ||\n                     (p_Var23 = p_Var5[1]._M_nxt, p_Var28 = p_Var27,\n                     uVar18 != (ulong)p_Var23 % uVar20)) goto LAB_001a3608;\n                }\n                if (p_Var28->_M_nxt != (_Hash_node_base *)0x0) {\n                  p_Var16 = p_Var28->_M_nxt[2]._M_nxt;\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              p_Var16 = (_Hash_node_base *)\n                        Merged_symbol_value<64>::value_from_output_section\n                                  (pMVar4,(Relobj *)this,puVar22[2] & 0x7ffffff,(Elf_Addr)p_Var16);\n            }\nLAB_001a349c:\n            *(_Hash_node_base **)(puVar12 + 8) = p_Var16;\n            *(undefined8 *)(puVar12 + 0x10) = *(undefined8 *)(puVar29 + -8);\n            puVar12[4] = puVar29[-0x14];\n            uVar1 = puVar29[-0x13];\n            *(ushort *)(puVar12 + 6) = uVar19;\n            puVar12[5] = uVar1;\n            puVar12 = puVar12 + 0x18;\n          }\n        }\n        local_b8 = local_b8 + 1;\n        puVar29 = puVar29 + 0x18;\n        if (uVar2 == local_b8) goto LAB_001a3680;\n        pSVar21 = (this->local_values_).\n                  super__Vector_base<gold::Symbol_value<64>,_std::allocator<gold::Symbol_value<64>_>_>\n                  ._M_impl._M_start;\n      } while( true );\n    }\n  }" { (expression_statement "local_70 = (uchar *)0x0;" (assignment_expression "local_70 = (uchar *)0x0" identifier = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_001a31f6:\n    uVar25 = this->output_local_dynsym_count_ * 0x18;" statement_identifier : (expression_statement "uVar25 = this->output_local_dynsym_count_ * 0x18;" (assignment_expression "uVar25 = this->output_local_dynsym_count_ * 0x18" identifier = (binary_expression "this->output_local_dynsym_count_ * 0x18" (field_expression "this->output_local_dynsym_count_" identifier -> field_identifier) * number_literal)) ;)) (expression_statement "this_03 = (Output_file *)(ulong)uVar25;" (assignment_expression "this_03 = (Output_file *)(ulong)uVar25" identifier = (cast_expression "(Output_file *)(ulong)uVar25" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)uVar25" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) (if_statement "if (uVar25 == 0) {\n      local_68 = (uchar *)0x0;\n    }\n    else {\n      lVar14 = this->local_dynsym_offset_;\n      if ((lVar14 < 0) ||\n         (size = (Output_file *)((long)&this_03->name_ + lVar14), of->file_size_ < (long)size))\n      goto LAB_001a3859;\n      local_68 = of->base_ + lVar14;\n    }" if (parenthesized_expression "(uVar25 == 0)" ( (binary_expression "uVar25 == 0" identifier == number_literal) )) (compound_statement "{\n      local_68 = (uchar *)0x0;\n    }" { (expression_statement "local_68 = (uchar *)0x0;" (assignment_expression "local_68 = (uchar *)0x0" identifier = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      lVar14 = this->local_dynsym_offset_;\n      if ((lVar14 < 0) ||\n         (size = (Output_file *)((long)&this_03->name_ + lVar14), of->file_size_ < (long)size))\n      goto LAB_001a3859;\n      local_68 = of->base_ + lVar14;\n    }" else (compound_statement "{\n      lVar14 = this->local_dynsym_offset_;\n      if ((lVar14 < 0) ||\n         (size = (Output_file *)((long)&this_03->name_ + lVar14), of->file_size_ < (long)size))\n      goto LAB_001a3859;\n      local_68 = of->base_ + lVar14;\n    }" { (expression_statement "lVar14 = this->local_dynsym_offset_;" (assignment_expression "lVar14 = this->local_dynsym_offset_" identifier = (field_expression "this->local_dynsym_offset_" identifier -> field_identifier)) ;) (if_statement "if ((lVar14 < 0) ||\n         (size = (Output_file *)((long)&this_03->name_ + lVar14), of->file_size_ < (long)size))\n      goto LAB_001a3859;" if (parenthesized_expression "((lVar14 < 0) ||\n         (size = (Output_file *)((long)&this_03->name_ + lVar14), of->file_size_ < (long)size))" ( (binary_expression "(lVar14 < 0) ||\n         (size = (Output_file *)((long)&this_03->name_ + lVar14), of->file_size_ < (long)size)" (parenthesized_expression "(lVar14 < 0)" ( (binary_expression "lVar14 < 0" identifier < number_literal) )) || (parenthesized_expression "(size = (Output_file *)((long)&this_03->name_ + lVar14), of->file_size_ < (long)size)" ( (comma_expression "size = (Output_file *)((long)&this_03->name_ + lVar14), of->file_size_ < (long)size" (assignment_expression "size = (Output_file *)((long)&this_03->name_ + lVar14)" identifier = (cast_expression "(Output_file *)((long)&this_03->name_ + lVar14)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&this_03->name_ + lVar14)" ( (binary_expression "(long)&this_03->name_ + lVar14" (cast_expression "(long)&this_03->name_" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&this_03->name_" & (field_expression "this_03->name_" identifier -> field_identifier))) + identifier) )))) , (binary_expression "of->file_size_ < (long)size" (field_expression "of->file_size_" identifier -> field_identifier) < (cast_expression "(long)size" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ))) )) (goto_statement "goto LAB_001a3859;" goto statement_identifier ;)) (expression_statement "local_68 = of->base_ + lVar14;" (assignment_expression "local_68 = of->base_ + lVar14" identifier = (binary_expression "of->base_ + lVar14" (field_expression "of->base_" identifier -> field_identifier) + identifier)) ;) }))) (expression_statement "pSVar21 = (this->local_values_).\n              super__Vector_base<gold::Symbol_value<64>,_std::allocator<gold::Symbol_value<64>_>_>.\n              _M_impl._M_start;" (field_expression "pSVar21 = (this->local_values_).\n              super__Vector_base<gold::Symbol_value<64>,_std::allocator<gold::Symbol_value<64>_>_>.\n              _M_impl._M_start" (field_expression "pSVar21 = (this->local_values_).\n              super__Vector_base<gold::Symbol_value<64>,_std::allocator<gold::Symbol_value<64>_>_>.\n              _M_impl" (binary_expression "pSVar21 = (this->local_values_).\n              super__Vector_base<gold::Symbol_value<64>,_std::allocator<gold::Symbol_value<64>_>_" (binary_expression "pSVar21 = (this->local_values_).\n              super__Vector_base<gold::Symbol_value<64>,_std::allocator<gold::Symbol_value<64>_" (binary_expression "pSVar21 = (this->local_values_).\n              super__Vector_base<gold::Symbol_value<64>,_std::allocator<gold::Symbol_value<64" (binary_expression "pSVar21 = (this->local_values_).\n              super__Vector_base<gold::Symbol_value<64>,_std::allocator<gold" (binary_expression "pSVar21 = (this->local_values_).\n              super__Vector_base<gold::Symbol_value<64>,_std" (binary_expression "pSVar21 = (this->local_values_).\n              super__Vector_base<gold::Symbol_value<64" (assignment_expression "pSVar21 = (this->local_values_).\n              super__Vector_base<gold" identifier = (binary_expression "(this->local_values_).\n              super__Vector_base<gold" (field_expression "(this->local_values_).\n              super__Vector_base" (parenthesized_expression "(this->local_values_)" ( (field_expression "this->local_values_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Symbol_value" : : identifier) < number_literal) > (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol_value" : : identifier) < number_literal) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if ((ulong)uVar2 ==\n        ((long)(this->local_values_).\n               super__Vector_base<gold::Symbol_value<64>,_std::allocator<gold::Symbol_value<64>_>_>.\n               _M_impl._M_finish - (long)pSVar21 >> 3) * -0x5555555555555555) {\n      puVar12 = local_68;\n      puVar31 = local_70;\n      if (uVar2 < 2) {\nLAB_001a3680:\n        if ((uVar24 != 0) && ((Output_file *)(puVar31 + -(long)local_70) != pOVar26)) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/object.cc",0xb0a,"write_local_symbols");\n        }\n        if ((uVar25 != 0) && ((Output_file *)(puVar12 + -(long)local_68) != this_03)) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/object.cc",0xb11,"write_local_symbols");\n        }\n        return;\n      }\n      puVar29 = puVar13 + 0x30;\n      local_b8 = 1;\n      do {\n        uVar19 = *(ushort *)(puVar29 + -0x12);\n        uVar20 = (ulong)uVar19;\n        puVar22 = (uint *)(puVar29 + (long)pSVar21 + (-0x18 - (long)puVar13));\n        if (uVar19 < 0xff00) {\nLAB_001a350a:\n          ppOVar6 = (this->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                    super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                    ._M_impl._M_start;\n          if ((ulong)((long)(this->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                            ._M_impl._M_finish - (long)ppOVar6 >> 3) <= uVar20) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/object.cc",0xad5,"write_local_symbols");\n          }\n          pOVar7 = ppOVar6[uVar20];\n          if (pOVar7 != (Output_section *)0x0) {\n            p_Var3 = (pOVar7->super_Output_data)._vptr_Output_data[0xb];\n            if (p_Var3 == Output_section::do_out_shndx) {\n              uVar10 = pOVar7->out_shndx_;\n              if (uVar10 == 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar10 = (*p_Var3)();\n            }\n            uVar19 = (ushort)uVar10;\n            uVar9 = *puVar22;\n            bVar17 = uVar9 != 0 && uVar9 != 0xfffffffe;\n            if (0xfeff < uVar10) {\n              if (uVar9 == 0 || uVar9 == 0xfffffffe) goto LAB_001a374c;\n              if (uVar9 != 0xffffffff) {\n                local_40[0].first = uVar9;\n                local_40[0].second = uVar10;\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_,local_40);\n              }\n              uVar9 = puVar22[1];\n              if (uVar9 == 0) goto LAB_001a3764;\n              if (uVar9 == 0xffffffff) {\n                uVar9 = *puVar22;\n                uVar19 = 0xffff;\n                bVar17 = uVar9 != 0 && uVar9 != 0xfffffffe;\n              }\n              else {\n                uVar19 = 0xffff;\n                local_40[0].first = uVar9;\n                local_40[0].second = uVar10;\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_,local_40);\n                uVar9 = *puVar22;\n                bVar17 = uVar9 != 0xfffffffe && uVar9 != 0;\n              }\n            }\n            goto LAB_001a32f9;\n          }\n        }\n        else {\n          if (uVar19 == 0xffff) {\n            this_01 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_;\n            if (this_01 == (Xindex *)0x0) {\n              iVar11 = (*(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                         _vptr_Object[0x1b])(this);\n              this_01 = (Xindex *)CONCAT44(extraout_var,iVar11);\n              (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = this_01;\n            }\n            uVar10 = Xindex::sym_xindex_to_shndx(this_01,(Object *)this,local_b8);\n            uVar20 = (ulong)uVar10;\n            goto LAB_001a350a;\n          }\n          uVar9 = *puVar22;\n          bVar17 = uVar9 != 0 && uVar9 != 0xfffffffe;\nLAB_001a32f9:\n          if (!bVar17) {\nLAB_001a374c:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }\n          puVar30 = puVar31;\n          if (uVar9 != 0xffffffff) {\n            if (strtab_size <= *(uint *)(puVar29 + -0x18)) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/object.cc",0xae8,"write_local_symbols");\n            }\n            sVar15 = Stringpool_template<char>::get_offset\n                               (sympool,(char *)(local_b0 + *(uint *)(puVar29 + -0x18)));\n            *(int *)puVar31 = (int)sVar15;\n            if ((char)*(byte *)((long)puVar22 + 0xb) < '\0') {\n              p_Var16 = *(_Hash_node_base **)(puVar22 + 4);\n            }\n            else {\n              if ((*(byte *)((long)puVar22 + 0xb) & 8) == 0) goto LAB_001a377c;\n              pMVar4 = *(Merged_symbol_value<64> **)(puVar22 + 4);\n              p_Var16 = (_Hash_node_base *)pMVar4->input_value_;\n              uVar20 = (pMVar4->output_addresses_)._M_h._M_bucket_count;\n              uVar18 = (ulong)p_Var16 % uVar20;\n              p_Var28 = (pMVar4->output_addresses_)._M_h._M_buckets[uVar18];\n              if (p_Var28 != (__bucket_type)0x0) {\n                p_Var23 = p_Var28->_M_nxt[1]._M_nxt;\n                p_Var5 = p_Var28->_M_nxt;\n                while (p_Var27 = p_Var5, p_Var16 != p_Var23) {\n                  p_Var5 = p_Var27->_M_nxt;\n                  if ((p_Var5 == (_Hash_node_base *)0x0) ||\n                     (p_Var23 = p_Var5[1]._M_nxt, p_Var28 = p_Var27,\n                     uVar18 != (ulong)p_Var23 % uVar20)) goto LAB_001a3660;\n                }\n                if (p_Var28->_M_nxt != (_Hash_node_base *)0x0) {\n                  p_Var16 = p_Var28->_M_nxt[2]._M_nxt;\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              p_Var16 = (_Hash_node_base *)\n                        Merged_symbol_value<64>::value_from_output_section\n                                  (pMVar4,(Relobj *)this,puVar22[2] & 0x7ffffff,(Elf_Addr)p_Var16);\n            }\nLAB_001a33ac:\n            *(_Hash_node_base **)(puVar31 + 8) = p_Var16;\n            puVar30 = puVar31 + 0x18;\n            *(undefined8 *)(puVar31 + 0x10) = *(undefined8 *)(puVar29 + -8);\n            puVar31[4] = puVar29[-0x14];\n            uVar1 = puVar29[-0x13];\n            *(ushort *)(puVar31 + 6) = uVar19;\n            puVar31[5] = uVar1;\n          }\n          if (puVar22[1] == 0) {\nLAB_001a3764:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/object.h",0x738,"has_output_dynsym_entry");\n          }\n          puVar31 = puVar30;\n          if (puVar22[1] != 0xffffffff) {\n            if (local_68 + (long)this_03 <= puVar12) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }\n            if (strtab_size <= *(uint *)(puVar29 + -0x18)) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/object.cc",0xafa,"write_local_symbols");\n            }\n            sVar15 = Stringpool_template<char>::get_offset\n                               (dynpool,(char *)(local_b0 + *(uint *)(puVar29 + -0x18)));\n            *(int *)puVar12 = (int)sVar15;\n            if ((char)*(byte *)((long)puVar22 + 0xb) < '\0') {\n              p_Var16 = *(_Hash_node_base **)(puVar22 + 4);\n            }\n            else {\n              if ((*(byte *)((long)puVar22 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n              }\n              pMVar4 = *(Merged_symbol_value<64> **)(puVar22 + 4);\n              p_Var16 = (_Hash_node_base *)pMVar4->input_value_;\n              uVar20 = (pMVar4->output_addresses_)._M_h._M_bucket_count;\n              uVar18 = (ulong)p_Var16 % uVar20;\n              p_Var28 = (pMVar4->output_addresses_)._M_h._M_buckets[uVar18];\n              if (p_Var28 != (__bucket_type)0x0) {\n                p_Var23 = p_Var28->_M_nxt[1]._M_nxt;\n                p_Var5 = p_Var28->_M_nxt;\n                while (p_Var27 = p_Var5, p_Var23 != p_Var16) {\n                  p_Var5 = p_Var27->_M_nxt;\n                  if ((p_Var5 == (_Hash_node_base *)0x0) ||\n                     (p_Var23 = p_Var5[1]._M_nxt, p_Var28 = p_Var27,\n                     uVar18 != (ulong)p_Var23 % uVar20)) goto LAB_001a3608;\n                }\n                if (p_Var28->_M_nxt != (_Hash_node_base *)0x0) {\n                  p_Var16 = p_Var28->_M_nxt[2]._M_nxt;\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              p_Var16 = (_Hash_node_base *)\n                        Merged_symbol_value<64>::value_from_output_section\n                                  (pMVar4,(Relobj *)this,puVar22[2] & 0x7ffffff,(Elf_Addr)p_Var16);\n            }\nLAB_001a349c:\n            *(_Hash_node_base **)(puVar12 + 8) = p_Var16;\n            *(undefined8 *)(puVar12 + 0x10) = *(undefined8 *)(puVar29 + -8);\n            puVar12[4] = puVar29[-0x14];\n            uVar1 = puVar29[-0x13];\n            *(ushort *)(puVar12 + 6) = uVar19;\n            puVar12[5] = uVar1;\n            puVar12 = puVar12 + 0x18;\n          }\n        }\n        local_b8 = local_b8 + 1;\n        puVar29 = puVar29 + 0x18;\n        if (uVar2 == local_b8) goto LAB_001a3680;\n        pSVar21 = (this->local_values_).\n                  super__Vector_base<gold::Symbol_value<64>,_std::allocator<gold::Symbol_value<64>_>_>\n                  ._M_impl._M_start;\n      } while( true );\n    }" if (parenthesized_expression "((ulong)uVar2 ==\n        ((long)(this->local_values_).\n               super__Vector_base<gold::Symbol_value<64>,_std::allocator<gold::Symbol_value<64>_>_>.\n               _M_impl._M_finish - (long)pSVar21 >> 3) * -0x5555555555555555)" ( (binary_expression "(ulong)uVar2 ==\n        ((long)(this->local_values_).\n               super__Vector_base<gold::Symbol_value<64>,_std::allocator<gold::Symbol_value<64>_>_>.\n               _M_impl._M_finish - (long)pSVar21 >> 3) * -0x5555555555555555" (cast_expression "(ulong)uVar2" ( (type_descriptor "ulong" type_identifier) ) identifier) == (binary_expression "((long)(this->local_values_).\n               super__Vector_base<gold::Symbol_value<64>,_std::allocator<gold::Symbol_value<64>_>_>.\n               _M_impl._M_finish - (long)pSVar21 >> 3) * -0x5555555555555555" (parenthesized_expression "((long)(this->local_values_).\n               super__Vector_base<gold::Symbol_value<64>,_std::allocator<gold::Symbol_value<64>_>_>.\n               _M_impl._M_finish - (long)pSVar21 >> 3)" ( (binary_expression "(long)(this->local_values_).\n               super__Vector_base<gold::Symbol_value<64>,_std::allocator<gold::Symbol_value<64>_>_>.\n               _M_impl._M_finish - (long)pSVar21 >> 3" (binary_expression "(long)(this->local_values_).\n               super__Vector_base<gold::Symbol_value<64>,_std::allocator<gold::Symbol_value<64>_>_>.\n               _M_impl._M_finish - (long)pSVar21" (field_expression "(long)(this->local_values_).\n               super__Vector_base<gold::Symbol_value<64>,_std::allocator<gold::Symbol_value<64>_>_>.\n               _M_impl._M_finish" (field_expression "(long)(this->local_values_).\n               super__Vector_base<gold::Symbol_value<64>,_std::allocator<gold::Symbol_value<64>_>_>.\n               _M_impl" (binary_expression "(long)(this->local_values_).\n               super__Vector_base<gold::Symbol_value<64>,_std::allocator<gold::Symbol_value<64>_>_" (binary_expression "(long)(this->local_values_).\n               super__Vector_base<gold::Symbol_value<64>,_std::allocator<gold::Symbol_value<64>_" (binary_expression "(long)(this->local_values_).\n               super__Vector_base<gold::Symbol_value<64>,_std::allocator<gold::Symbol_value<64" (binary_expression "(long)(this->local_values_).\n               super__Vector_base<gold::Symbol_value<64>,_std::allocator<gold" (binary_expression "(long)(this->local_values_).\n               super__Vector_base<gold::Symbol_value<64>,_std" (binary_expression "(long)(this->local_values_).\n               super__Vector_base<gold::Symbol_value<64" (binary_expression "(long)(this->local_values_).\n               super__Vector_base<gold" (cast_expression "(long)(this->local_values_).\n               super__Vector_base" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "(this->local_values_).\n               super__Vector_base" (parenthesized_expression "(this->local_values_)" ( (field_expression "this->local_values_" identifier -> field_identifier) )) . field_identifier)) < identifier) (ERROR "::Symbol_value" : : identifier) < number_literal) > (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol_value" : : identifier) < number_literal) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) - (cast_expression "(long)pSVar21" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) >> number_literal) )) * number_literal)) )) (compound_statement "{\n      puVar12 = local_68;\n      puVar31 = local_70;\n      if (uVar2 < 2) {\nLAB_001a3680:\n        if ((uVar24 != 0) && ((Output_file *)(puVar31 + -(long)local_70) != pOVar26)) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/object.cc",0xb0a,"write_local_symbols");\n        }\n        if ((uVar25 != 0) && ((Output_file *)(puVar12 + -(long)local_68) != this_03)) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/object.cc",0xb11,"write_local_symbols");\n        }\n        return;\n      }\n      puVar29 = puVar13 + 0x30;\n      local_b8 = 1;\n      do {\n        uVar19 = *(ushort *)(puVar29 + -0x12);\n        uVar20 = (ulong)uVar19;\n        puVar22 = (uint *)(puVar29 + (long)pSVar21 + (-0x18 - (long)puVar13));\n        if (uVar19 < 0xff00) {\nLAB_001a350a:\n          ppOVar6 = (this->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                    super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                    ._M_impl._M_start;\n          if ((ulong)((long)(this->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                            ._M_impl._M_finish - (long)ppOVar6 >> 3) <= uVar20) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/object.cc",0xad5,"write_local_symbols");\n          }\n          pOVar7 = ppOVar6[uVar20];\n          if (pOVar7 != (Output_section *)0x0) {\n            p_Var3 = (pOVar7->super_Output_data)._vptr_Output_data[0xb];\n            if (p_Var3 == Output_section::do_out_shndx) {\n              uVar10 = pOVar7->out_shndx_;\n              if (uVar10 == 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar10 = (*p_Var3)();\n            }\n            uVar19 = (ushort)uVar10;\n            uVar9 = *puVar22;\n            bVar17 = uVar9 != 0 && uVar9 != 0xfffffffe;\n            if (0xfeff < uVar10) {\n              if (uVar9 == 0 || uVar9 == 0xfffffffe) goto LAB_001a374c;\n              if (uVar9 != 0xffffffff) {\n                local_40[0].first = uVar9;\n                local_40[0].second = uVar10;\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_,local_40);\n              }\n              uVar9 = puVar22[1];\n              if (uVar9 == 0) goto LAB_001a3764;\n              if (uVar9 == 0xffffffff) {\n                uVar9 = *puVar22;\n                uVar19 = 0xffff;\n                bVar17 = uVar9 != 0 && uVar9 != 0xfffffffe;\n              }\n              else {\n                uVar19 = 0xffff;\n                local_40[0].first = uVar9;\n                local_40[0].second = uVar10;\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_,local_40);\n                uVar9 = *puVar22;\n                bVar17 = uVar9 != 0xfffffffe && uVar9 != 0;\n              }\n            }\n            goto LAB_001a32f9;\n          }\n        }\n        else {\n          if (uVar19 == 0xffff) {\n            this_01 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_;\n            if (this_01 == (Xindex *)0x0) {\n              iVar11 = (*(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                         _vptr_Object[0x1b])(this);\n              this_01 = (Xindex *)CONCAT44(extraout_var,iVar11);\n              (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = this_01;\n            }\n            uVar10 = Xindex::sym_xindex_to_shndx(this_01,(Object *)this,local_b8);\n            uVar20 = (ulong)uVar10;\n            goto LAB_001a350a;\n          }\n          uVar9 = *puVar22;\n          bVar17 = uVar9 != 0 && uVar9 != 0xfffffffe;\nLAB_001a32f9:\n          if (!bVar17) {\nLAB_001a374c:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }\n          puVar30 = puVar31;\n          if (uVar9 != 0xffffffff) {\n            if (strtab_size <= *(uint *)(puVar29 + -0x18)) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/object.cc",0xae8,"write_local_symbols");\n            }\n            sVar15 = Stringpool_template<char>::get_offset\n                               (sympool,(char *)(local_b0 + *(uint *)(puVar29 + -0x18)));\n            *(int *)puVar31 = (int)sVar15;\n            if ((char)*(byte *)((long)puVar22 + 0xb) < '\0') {\n              p_Var16 = *(_Hash_node_base **)(puVar22 + 4);\n            }\n            else {\n              if ((*(byte *)((long)puVar22 + 0xb) & 8) == 0) goto LAB_001a377c;\n              pMVar4 = *(Merged_symbol_value<64> **)(puVar22 + 4);\n              p_Var16 = (_Hash_node_base *)pMVar4->input_value_;\n              uVar20 = (pMVar4->output_addresses_)._M_h._M_bucket_count;\n              uVar18 = (ulong)p_Var16 % uVar20;\n              p_Var28 = (pMVar4->output_addresses_)._M_h._M_buckets[uVar18];\n              if (p_Var28 != (__bucket_type)0x0) {\n                p_Var23 = p_Var28->_M_nxt[1]._M_nxt;\n                p_Var5 = p_Var28->_M_nxt;\n                while (p_Var27 = p_Var5, p_Var16 != p_Var23) {\n                  p_Var5 = p_Var27->_M_nxt;\n                  if ((p_Var5 == (_Hash_node_base *)0x0) ||\n                     (p_Var23 = p_Var5[1]._M_nxt, p_Var28 = p_Var27,\n                     uVar18 != (ulong)p_Var23 % uVar20)) goto LAB_001a3660;\n                }\n                if (p_Var28->_M_nxt != (_Hash_node_base *)0x0) {\n                  p_Var16 = p_Var28->_M_nxt[2]._M_nxt;\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              p_Var16 = (_Hash_node_base *)\n                        Merged_symbol_value<64>::value_from_output_section\n                                  (pMVar4,(Relobj *)this,puVar22[2] & 0x7ffffff,(Elf_Addr)p_Var16);\n            }\nLAB_001a33ac:\n            *(_Hash_node_base **)(puVar31 + 8) = p_Var16;\n            puVar30 = puVar31 + 0x18;\n            *(undefined8 *)(puVar31 + 0x10) = *(undefined8 *)(puVar29 + -8);\n            puVar31[4] = puVar29[-0x14];\n            uVar1 = puVar29[-0x13];\n            *(ushort *)(puVar31 + 6) = uVar19;\n            puVar31[5] = uVar1;\n          }\n          if (puVar22[1] == 0) {\nLAB_001a3764:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/object.h",0x738,"has_output_dynsym_entry");\n          }\n          puVar31 = puVar30;\n          if (puVar22[1] != 0xffffffff) {\n            if (local_68 + (long)this_03 <= puVar12) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }\n            if (strtab_size <= *(uint *)(puVar29 + -0x18)) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/object.cc",0xafa,"write_local_symbols");\n            }\n            sVar15 = Stringpool_template<char>::get_offset\n                               (dynpool,(char *)(local_b0 + *(uint *)(puVar29 + -0x18)));\n            *(int *)puVar12 = (int)sVar15;\n            if ((char)*(byte *)((long)puVar22 + 0xb) < '\0') {\n              p_Var16 = *(_Hash_node_base **)(puVar22 + 4);\n            }\n            else {\n              if ((*(byte *)((long)puVar22 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n              }\n              pMVar4 = *(Merged_symbol_value<64> **)(puVar22 + 4);\n              p_Var16 = (_Hash_node_base *)pMVar4->input_value_;\n              uVar20 = (pMVar4->output_addresses_)._M_h._M_bucket_count;\n              uVar18 = (ulong)p_Var16 % uVar20;\n              p_Var28 = (pMVar4->output_addresses_)._M_h._M_buckets[uVar18];\n              if (p_Var28 != (__bucket_type)0x0) {\n                p_Var23 = p_Var28->_M_nxt[1]._M_nxt;\n                p_Var5 = p_Var28->_M_nxt;\n                while (p_Var27 = p_Var5, p_Var23 != p_Var16) {\n                  p_Var5 = p_Var27->_M_nxt;\n                  if ((p_Var5 == (_Hash_node_base *)0x0) ||\n                     (p_Var23 = p_Var5[1]._M_nxt, p_Var28 = p_Var27,\n                     uVar18 != (ulong)p_Var23 % uVar20)) goto LAB_001a3608;\n                }\n                if (p_Var28->_M_nxt != (_Hash_node_base *)0x0) {\n                  p_Var16 = p_Var28->_M_nxt[2]._M_nxt;\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              p_Var16 = (_Hash_node_base *)\n                        Merged_symbol_value<64>::value_from_output_section\n                                  (pMVar4,(Relobj *)this,puVar22[2] & 0x7ffffff,(Elf_Addr)p_Var16);\n            }\nLAB_001a349c:\n            *(_Hash_node_base **)(puVar12 + 8) = p_Var16;\n            *(undefined8 *)(puVar12 + 0x10) = *(undefined8 *)(puVar29 + -8);\n            puVar12[4] = puVar29[-0x14];\n            uVar1 = puVar29[-0x13];\n            *(ushort *)(puVar12 + 6) = uVar19;\n            puVar12[5] = uVar1;\n            puVar12 = puVar12 + 0x18;\n          }\n        }\n        local_b8 = local_b8 + 1;\n        puVar29 = puVar29 + 0x18;\n        if (uVar2 == local_b8) goto LAB_001a3680;\n        pSVar21 = (this->local_values_).\n                  super__Vector_base<gold::Symbol_value<64>,_std::allocator<gold::Symbol_value<64>_>_>\n                  ._M_impl._M_start;\n      } while( true );\n    }" { (expression_statement "puVar12 = local_68;" (assignment_expression "puVar12 = local_68" identifier = identifier) ;) (expression_statement "puVar31 = local_70;" (assignment_expression "puVar31 = local_70" identifier = identifier) ;) (if_statement "if (uVar2 < 2) {\nLAB_001a3680:\n        if ((uVar24 != 0) && ((Output_file *)(puVar31 + -(long)local_70) != pOVar26)) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/object.cc",0xb0a,"write_local_symbols");\n        }\n        if ((uVar25 != 0) && ((Output_file *)(puVar12 + -(long)local_68) != this_03)) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/object.cc",0xb11,"write_local_symbols");\n        }\n        return;\n      }" if (parenthesized_expression "(uVar2 < 2)" ( (binary_expression "uVar2 < 2" identifier < number_literal) )) (compound_statement "{\nLAB_001a3680:\n        if ((uVar24 != 0) && ((Output_file *)(puVar31 + -(long)local_70) != pOVar26)) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/object.cc",0xb0a,"write_local_symbols");\n        }\n        if ((uVar25 != 0) && ((Output_file *)(puVar12 + -(long)local_68) != this_03)) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/object.cc",0xb11,"write_local_symbols");\n        }\n        return;\n      }" { (labeled_statement "LAB_001a3680:\n        if ((uVar24 != 0) && ((Output_file *)(puVar31 + -(long)local_70) != pOVar26)) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/object.cc",0xb0a,"write_local_symbols");\n        }" statement_identifier : (if_statement "if ((uVar24 != 0) && ((Output_file *)(puVar31 + -(long)local_70) != pOVar26)) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/object.cc",0xb0a,"write_local_symbols");\n        }" if (parenthesized_expression "((uVar24 != 0) && ((Output_file *)(puVar31 + -(long)local_70) != pOVar26))" ( (binary_expression "(uVar24 != 0) && ((Output_file *)(puVar31 + -(long)local_70) != pOVar26)" (parenthesized_expression "(uVar24 != 0)" ( (binary_expression "uVar24 != 0" identifier != number_literal) )) && (parenthesized_expression "((Output_file *)(puVar31 + -(long)local_70) != pOVar26)" ( (binary_expression "(Output_file *)(puVar31 + -(long)local_70) != pOVar26" (cast_expression "(Output_file *)(puVar31 + -(long)local_70)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar31 + -(long)local_70)" ( (binary_expression "puVar31 + -(long)local_70" identifier + (unary_expression "-(long)local_70" - (cast_expression "(long)local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ))) != identifier) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/object.cc",0xb0a,"write_local_symbols");\n        }" { comment (expression_statement "do_gold_unreachable("../../gold/object.cc",0xb0a,"write_local_symbols");" (call_expression "do_gold_unreachable("../../gold/object.cc",0xb0a,"write_local_symbols")" identifier (argument_list "("../../gold/object.cc",0xb0a,"write_local_symbols")" ( (string_literal ""../../gold/object.cc"" " string_content ") , number_literal , (string_literal ""write_local_symbols"" " string_content ") ))) ;) }))) (if_statement "if ((uVar25 != 0) && ((Output_file *)(puVar12 + -(long)local_68) != this_03)) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/object.cc",0xb11,"write_local_symbols");\n        }" if (parenthesized_expression "((uVar25 != 0) && ((Output_file *)(puVar12 + -(long)local_68) != this_03))" ( (binary_expression "(uVar25 != 0) && ((Output_file *)(puVar12 + -(long)local_68) != this_03)" (parenthesized_expression "(uVar25 != 0)" ( (binary_expression "uVar25 != 0" identifier != number_literal) )) && (parenthesized_expression "((Output_file *)(puVar12 + -(long)local_68) != this_03)" ( (binary_expression "(Output_file *)(puVar12 + -(long)local_68) != this_03" (cast_expression "(Output_file *)(puVar12 + -(long)local_68)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -(long)local_68)" ( (binary_expression "puVar12 + -(long)local_68" identifier + (unary_expression "-(long)local_68" - (cast_expression "(long)local_68" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ))) != identifier) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/object.cc",0xb11,"write_local_symbols");\n        }" { comment (expression_statement "do_gold_unreachable("../../gold/object.cc",0xb11,"write_local_symbols");" (call_expression "do_gold_unreachable("../../gold/object.cc",0xb11,"write_local_symbols")" identifier (argument_list "("../../gold/object.cc",0xb11,"write_local_symbols")" ( (string_literal ""../../gold/object.cc"" " string_content ") , number_literal , (string_literal ""write_local_symbols"" " string_content ") ))) ;) })) (return_statement "return;" return ;) })) (expression_statement "puVar29 = puVar13 + 0x30;" (assignment_expression "puVar29 = puVar13 + 0x30" identifier = (binary_expression "puVar13 + 0x30" identifier + number_literal)) ;) (expression_statement "local_b8 = 1;" (assignment_expression "local_b8 = 1" identifier = number_literal) ;) (do_statement "do {\n        uVar19 = *(ushort *)(puVar29 + -0x12);\n        uVar20 = (ulong)uVar19;\n        puVar22 = (uint *)(puVar29 + (long)pSVar21 + (-0x18 - (long)puVar13));\n        if (uVar19 < 0xff00) {\nLAB_001a350a:\n          ppOVar6 = (this->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                    super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                    ._M_impl._M_start;\n          if ((ulong)((long)(this->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                            ._M_impl._M_finish - (long)ppOVar6 >> 3) <= uVar20) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/object.cc",0xad5,"write_local_symbols");\n          }\n          pOVar7 = ppOVar6[uVar20];\n          if (pOVar7 != (Output_section *)0x0) {\n            p_Var3 = (pOVar7->super_Output_data)._vptr_Output_data[0xb];\n            if (p_Var3 == Output_section::do_out_shndx) {\n              uVar10 = pOVar7->out_shndx_;\n              if (uVar10 == 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar10 = (*p_Var3)();\n            }\n            uVar19 = (ushort)uVar10;\n            uVar9 = *puVar22;\n            bVar17 = uVar9 != 0 && uVar9 != 0xfffffffe;\n            if (0xfeff < uVar10) {\n              if (uVar9 == 0 || uVar9 == 0xfffffffe) goto LAB_001a374c;\n              if (uVar9 != 0xffffffff) {\n                local_40[0].first = uVar9;\n                local_40[0].second = uVar10;\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_,local_40);\n              }\n              uVar9 = puVar22[1];\n              if (uVar9 == 0) goto LAB_001a3764;\n              if (uVar9 == 0xffffffff) {\n                uVar9 = *puVar22;\n                uVar19 = 0xffff;\n                bVar17 = uVar9 != 0 && uVar9 != 0xfffffffe;\n              }\n              else {\n                uVar19 = 0xffff;\n                local_40[0].first = uVar9;\n                local_40[0].second = uVar10;\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_,local_40);\n                uVar9 = *puVar22;\n                bVar17 = uVar9 != 0xfffffffe && uVar9 != 0;\n              }\n            }\n            goto LAB_001a32f9;\n          }\n        }\n        else {\n          if (uVar19 == 0xffff) {\n            this_01 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_;\n            if (this_01 == (Xindex *)0x0) {\n              iVar11 = (*(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                         _vptr_Object[0x1b])(this);\n              this_01 = (Xindex *)CONCAT44(extraout_var,iVar11);\n              (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = this_01;\n            }\n            uVar10 = Xindex::sym_xindex_to_shndx(this_01,(Object *)this,local_b8);\n            uVar20 = (ulong)uVar10;\n            goto LAB_001a350a;\n          }\n          uVar9 = *puVar22;\n          bVar17 = uVar9 != 0 && uVar9 != 0xfffffffe;\nLAB_001a32f9:\n          if (!bVar17) {\nLAB_001a374c:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }\n          puVar30 = puVar31;\n          if (uVar9 != 0xffffffff) {\n            if (strtab_size <= *(uint *)(puVar29 + -0x18)) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/object.cc",0xae8,"write_local_symbols");\n            }\n            sVar15 = Stringpool_template<char>::get_offset\n                               (sympool,(char *)(local_b0 + *(uint *)(puVar29 + -0x18)));\n            *(int *)puVar31 = (int)sVar15;\n            if ((char)*(byte *)((long)puVar22 + 0xb) < '\0') {\n              p_Var16 = *(_Hash_node_base **)(puVar22 + 4);\n            }\n            else {\n              if ((*(byte *)((long)puVar22 + 0xb) & 8) == 0) goto LAB_001a377c;\n              pMVar4 = *(Merged_symbol_value<64> **)(puVar22 + 4);\n              p_Var16 = (_Hash_node_base *)pMVar4->input_value_;\n              uVar20 = (pMVar4->output_addresses_)._M_h._M_bucket_count;\n              uVar18 = (ulong)p_Var16 % uVar20;\n              p_Var28 = (pMVar4->output_addresses_)._M_h._M_buckets[uVar18];\n              if (p_Var28 != (__bucket_type)0x0) {\n                p_Var23 = p_Var28->_M_nxt[1]._M_nxt;\n                p_Var5 = p_Var28->_M_nxt;\n                while (p_Var27 = p_Var5, p_Var16 != p_Var23) {\n                  p_Var5 = p_Var27->_M_nxt;\n                  if ((p_Var5 == (_Hash_node_base *)0x0) ||\n                     (p_Var23 = p_Var5[1]._M_nxt, p_Var28 = p_Var27,\n                     uVar18 != (ulong)p_Var23 % uVar20)) goto LAB_001a3660;\n                }\n                if (p_Var28->_M_nxt != (_Hash_node_base *)0x0) {\n                  p_Var16 = p_Var28->_M_nxt[2]._M_nxt;\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              p_Var16 = (_Hash_node_base *)\n                        Merged_symbol_value<64>::value_from_output_section\n                                  (pMVar4,(Relobj *)this,puVar22[2] & 0x7ffffff,(Elf_Addr)p_Var16);\n            }\nLAB_001a33ac:\n            *(_Hash_node_base **)(puVar31 + 8) = p_Var16;\n            puVar30 = puVar31 + 0x18;\n            *(undefined8 *)(puVar31 + 0x10) = *(undefined8 *)(puVar29 + -8);\n            puVar31[4] = puVar29[-0x14];\n            uVar1 = puVar29[-0x13];\n            *(ushort *)(puVar31 + 6) = uVar19;\n            puVar31[5] = uVar1;\n          }\n          if (puVar22[1] == 0) {\nLAB_001a3764:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/object.h",0x738,"has_output_dynsym_entry");\n          }\n          puVar31 = puVar30;\n          if (puVar22[1] != 0xffffffff) {\n            if (local_68 + (long)this_03 <= puVar12) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }\n            if (strtab_size <= *(uint *)(puVar29 + -0x18)) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/object.cc",0xafa,"write_local_symbols");\n            }\n            sVar15 = Stringpool_template<char>::get_offset\n                               (dynpool,(char *)(local_b0 + *(uint *)(puVar29 + -0x18)));\n            *(int *)puVar12 = (int)sVar15;\n            if ((char)*(byte *)((long)puVar22 + 0xb) < '\0') {\n              p_Var16 = *(_Hash_node_base **)(puVar22 + 4);\n            }\n            else {\n              if ((*(byte *)((long)puVar22 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n              }\n              pMVar4 = *(Merged_symbol_value<64> **)(puVar22 + 4);\n              p_Var16 = (_Hash_node_base *)pMVar4->input_value_;\n              uVar20 = (pMVar4->output_addresses_)._M_h._M_bucket_count;\n              uVar18 = (ulong)p_Var16 % uVar20;\n              p_Var28 = (pMVar4->output_addresses_)._M_h._M_buckets[uVar18];\n              if (p_Var28 != (__bucket_type)0x0) {\n                p_Var23 = p_Var28->_M_nxt[1]._M_nxt;\n                p_Var5 = p_Var28->_M_nxt;\n                while (p_Var27 = p_Var5, p_Var23 != p_Var16) {\n                  p_Var5 = p_Var27->_M_nxt;\n                  if ((p_Var5 == (_Hash_node_base *)0x0) ||\n                     (p_Var23 = p_Var5[1]._M_nxt, p_Var28 = p_Var27,\n                     uVar18 != (ulong)p_Var23 % uVar20)) goto LAB_001a3608;\n                }\n                if (p_Var28->_M_nxt != (_Hash_node_base *)0x0) {\n                  p_Var16 = p_Var28->_M_nxt[2]._M_nxt;\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              p_Var16 = (_Hash_node_base *)\n                        Merged_symbol_value<64>::value_from_output_section\n                                  (pMVar4,(Relobj *)this,puVar22[2] & 0x7ffffff,(Elf_Addr)p_Var16);\n            }\nLAB_001a349c:\n            *(_Hash_node_base **)(puVar12 + 8) = p_Var16;\n            *(undefined8 *)(puVar12 + 0x10) = *(undefined8 *)(puVar29 + -8);\n            puVar12[4] = puVar29[-0x14];\n            uVar1 = puVar29[-0x13];\n            *(ushort *)(puVar12 + 6) = uVar19;\n            puVar12[5] = uVar1;\n            puVar12 = puVar12 + 0x18;\n          }\n        }\n        local_b8 = local_b8 + 1;\n        puVar29 = puVar29 + 0x18;\n        if (uVar2 == local_b8) goto LAB_001a3680;\n        pSVar21 = (this->local_values_).\n                  super__Vector_base<gold::Symbol_value<64>,_std::allocator<gold::Symbol_value<64>_>_>\n                  ._M_impl._M_start;\n      } while( true );" do (compound_statement "{\n        uVar19 = *(ushort *)(puVar29 + -0x12);\n        uVar20 = (ulong)uVar19;\n        puVar22 = (uint *)(puVar29 + (long)pSVar21 + (-0x18 - (long)puVar13));\n        if (uVar19 < 0xff00) {\nLAB_001a350a:\n          ppOVar6 = (this->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                    super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                    ._M_impl._M_start;\n          if ((ulong)((long)(this->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                            ._M_impl._M_finish - (long)ppOVar6 >> 3) <= uVar20) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/object.cc",0xad5,"write_local_symbols");\n          }\n          pOVar7 = ppOVar6[uVar20];\n          if (pOVar7 != (Output_section *)0x0) {\n            p_Var3 = (pOVar7->super_Output_data)._vptr_Output_data[0xb];\n            if (p_Var3 == Output_section::do_out_shndx) {\n              uVar10 = pOVar7->out_shndx_;\n              if (uVar10 == 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar10 = (*p_Var3)();\n            }\n            uVar19 = (ushort)uVar10;\n            uVar9 = *puVar22;\n            bVar17 = uVar9 != 0 && uVar9 != 0xfffffffe;\n            if (0xfeff < uVar10) {\n              if (uVar9 == 0 || uVar9 == 0xfffffffe) goto LAB_001a374c;\n              if (uVar9 != 0xffffffff) {\n                local_40[0].first = uVar9;\n                local_40[0].second = uVar10;\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_,local_40);\n              }\n              uVar9 = puVar22[1];\n              if (uVar9 == 0) goto LAB_001a3764;\n              if (uVar9 == 0xffffffff) {\n                uVar9 = *puVar22;\n                uVar19 = 0xffff;\n                bVar17 = uVar9 != 0 && uVar9 != 0xfffffffe;\n              }\n              else {\n                uVar19 = 0xffff;\n                local_40[0].first = uVar9;\n                local_40[0].second = uVar10;\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_,local_40);\n                uVar9 = *puVar22;\n                bVar17 = uVar9 != 0xfffffffe && uVar9 != 0;\n              }\n            }\n            goto LAB_001a32f9;\n          }\n        }\n        else {\n          if (uVar19 == 0xffff) {\n            this_01 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_;\n            if (this_01 == (Xindex *)0x0) {\n              iVar11 = (*(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                         _vptr_Object[0x1b])(this);\n              this_01 = (Xindex *)CONCAT44(extraout_var,iVar11);\n              (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = this_01;\n            }\n            uVar10 = Xindex::sym_xindex_to_shndx(this_01,(Object *)this,local_b8);\n            uVar20 = (ulong)uVar10;\n            goto LAB_001a350a;\n          }\n          uVar9 = *puVar22;\n          bVar17 = uVar9 != 0 && uVar9 != 0xfffffffe;\nLAB_001a32f9:\n          if (!bVar17) {\nLAB_001a374c:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }\n          puVar30 = puVar31;\n          if (uVar9 != 0xffffffff) {\n            if (strtab_size <= *(uint *)(puVar29 + -0x18)) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/object.cc",0xae8,"write_local_symbols");\n            }\n            sVar15 = Stringpool_template<char>::get_offset\n                               (sympool,(char *)(local_b0 + *(uint *)(puVar29 + -0x18)));\n            *(int *)puVar31 = (int)sVar15;\n            if ((char)*(byte *)((long)puVar22 + 0xb) < '\0') {\n              p_Var16 = *(_Hash_node_base **)(puVar22 + 4);\n            }\n            else {\n              if ((*(byte *)((long)puVar22 + 0xb) & 8) == 0) goto LAB_001a377c;\n              pMVar4 = *(Merged_symbol_value<64> **)(puVar22 + 4);\n              p_Var16 = (_Hash_node_base *)pMVar4->input_value_;\n              uVar20 = (pMVar4->output_addresses_)._M_h._M_bucket_count;\n              uVar18 = (ulong)p_Var16 % uVar20;\n              p_Var28 = (pMVar4->output_addresses_)._M_h._M_buckets[uVar18];\n              if (p_Var28 != (__bucket_type)0x0) {\n                p_Var23 = p_Var28->_M_nxt[1]._M_nxt;\n                p_Var5 = p_Var28->_M_nxt;\n                while (p_Var27 = p_Var5, p_Var16 != p_Var23) {\n                  p_Var5 = p_Var27->_M_nxt;\n                  if ((p_Var5 == (_Hash_node_base *)0x0) ||\n                     (p_Var23 = p_Var5[1]._M_nxt, p_Var28 = p_Var27,\n                     uVar18 != (ulong)p_Var23 % uVar20)) goto LAB_001a3660;\n                }\n                if (p_Var28->_M_nxt != (_Hash_node_base *)0x0) {\n                  p_Var16 = p_Var28->_M_nxt[2]._M_nxt;\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              p_Var16 = (_Hash_node_base *)\n                        Merged_symbol_value<64>::value_from_output_section\n                                  (pMVar4,(Relobj *)this,puVar22[2] & 0x7ffffff,(Elf_Addr)p_Var16);\n            }\nLAB_001a33ac:\n            *(_Hash_node_base **)(puVar31 + 8) = p_Var16;\n            puVar30 = puVar31 + 0x18;\n            *(undefined8 *)(puVar31 + 0x10) = *(undefined8 *)(puVar29 + -8);\n            puVar31[4] = puVar29[-0x14];\n            uVar1 = puVar29[-0x13];\n            *(ushort *)(puVar31 + 6) = uVar19;\n            puVar31[5] = uVar1;\n          }\n          if (puVar22[1] == 0) {\nLAB_001a3764:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/object.h",0x738,"has_output_dynsym_entry");\n          }\n          puVar31 = puVar30;\n          if (puVar22[1] != 0xffffffff) {\n            if (local_68 + (long)this_03 <= puVar12) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }\n            if (strtab_size <= *(uint *)(puVar29 + -0x18)) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/object.cc",0xafa,"write_local_symbols");\n            }\n            sVar15 = Stringpool_template<char>::get_offset\n                               (dynpool,(char *)(local_b0 + *(uint *)(puVar29 + -0x18)));\n            *(int *)puVar12 = (int)sVar15;\n            if ((char)*(byte *)((long)puVar22 + 0xb) < '\0') {\n              p_Var16 = *(_Hash_node_base **)(puVar22 + 4);\n            }\n            else {\n              if ((*(byte *)((long)puVar22 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n              }\n              pMVar4 = *(Merged_symbol_value<64> **)(puVar22 + 4);\n              p_Var16 = (_Hash_node_base *)pMVar4->input_value_;\n              uVar20 = (pMVar4->output_addresses_)._M_h._M_bucket_count;\n              uVar18 = (ulong)p_Var16 % uVar20;\n              p_Var28 = (pMVar4->output_addresses_)._M_h._M_buckets[uVar18];\n              if (p_Var28 != (__bucket_type)0x0) {\n                p_Var23 = p_Var28->_M_nxt[1]._M_nxt;\n                p_Var5 = p_Var28->_M_nxt;\n                while (p_Var27 = p_Var5, p_Var23 != p_Var16) {\n                  p_Var5 = p_Var27->_M_nxt;\n                  if ((p_Var5 == (_Hash_node_base *)0x0) ||\n                     (p_Var23 = p_Var5[1]._M_nxt, p_Var28 = p_Var27,\n                     uVar18 != (ulong)p_Var23 % uVar20)) goto LAB_001a3608;\n                }\n                if (p_Var28->_M_nxt != (_Hash_node_base *)0x0) {\n                  p_Var16 = p_Var28->_M_nxt[2]._M_nxt;\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              p_Var16 = (_Hash_node_base *)\n                        Merged_symbol_value<64>::value_from_output_section\n                                  (pMVar4,(Relobj *)this,puVar22[2] & 0x7ffffff,(Elf_Addr)p_Var16);\n            }\nLAB_001a349c:\n            *(_Hash_node_base **)(puVar12 + 8) = p_Var16;\n            *(undefined8 *)(puVar12 + 0x10) = *(undefined8 *)(puVar29 + -8);\n            puVar12[4] = puVar29[-0x14];\n            uVar1 = puVar29[-0x13];\n            *(ushort *)(puVar12 + 6) = uVar19;\n            puVar12[5] = uVar1;\n            puVar12 = puVar12 + 0x18;\n          }\n        }\n        local_b8 = local_b8 + 1;\n        puVar29 = puVar29 + 0x18;\n        if (uVar2 == local_b8) goto LAB_001a3680;\n        pSVar21 = (this->local_values_).\n                  super__Vector_base<gold::Symbol_value<64>,_std::allocator<gold::Symbol_value<64>_>_>\n                  ._M_impl._M_start;\n      }" { (expression_statement "uVar19 = *(ushort *)(puVar29 + -0x12);" (assignment_expression "uVar19 = *(ushort *)(puVar29 + -0x12)" identifier = (pointer_expression "*(ushort *)(puVar29 + -0x12)" * (cast_expression "(ushort *)(puVar29 + -0x12)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x12)" ( (binary_expression "puVar29 + -0x12" identifier + number_literal) ))))) ;) (expression_statement "uVar20 = (ulong)uVar19;" (assignment_expression "uVar20 = (ulong)uVar19" identifier = (cast_expression "(ulong)uVar19" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "puVar22 = (uint *)(puVar29 + (long)pSVar21 + (-0x18 - (long)puVar13));" (assignment_expression "puVar22 = (uint *)(puVar29 + (long)pSVar21 + (-0x18 - (long)puVar13))" identifier = (cast_expression "(uint *)(puVar29 + (long)pSVar21 + (-0x18 - (long)puVar13))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + (long)pSVar21 + (-0x18 - (long)puVar13))" ( (binary_expression "puVar29 + (long)pSVar21 + (-0x18 - (long)puVar13)" (binary_expression "puVar29 + (long)pSVar21" identifier + (cast_expression "(long)pSVar21" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) + (parenthesized_expression "(-0x18 - (long)puVar13)" ( (binary_expression "-0x18 - (long)puVar13" number_literal - (cast_expression "(long)puVar13" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) )))) ;) (if_statement "if (uVar19 < 0xff00) {\nLAB_001a350a:\n          ppOVar6 = (this->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                    super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                    ._M_impl._M_start;\n          if ((ulong)((long)(this->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                            ._M_impl._M_finish - (long)ppOVar6 >> 3) <= uVar20) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/object.cc",0xad5,"write_local_symbols");\n          }\n          pOVar7 = ppOVar6[uVar20];\n          if (pOVar7 != (Output_section *)0x0) {\n            p_Var3 = (pOVar7->super_Output_data)._vptr_Output_data[0xb];\n            if (p_Var3 == Output_section::do_out_shndx) {\n              uVar10 = pOVar7->out_shndx_;\n              if (uVar10 == 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar10 = (*p_Var3)();\n            }\n            uVar19 = (ushort)uVar10;\n            uVar9 = *puVar22;\n            bVar17 = uVar9 != 0 && uVar9 != 0xfffffffe;\n            if (0xfeff < uVar10) {\n              if (uVar9 == 0 || uVar9 == 0xfffffffe) goto LAB_001a374c;\n              if (uVar9 != 0xffffffff) {\n                local_40[0].first = uVar9;\n                local_40[0].second = uVar10;\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_,local_40);\n              }\n              uVar9 = puVar22[1];\n              if (uVar9 == 0) goto LAB_001a3764;\n              if (uVar9 == 0xffffffff) {\n                uVar9 = *puVar22;\n                uVar19 = 0xffff;\n                bVar17 = uVar9 != 0 && uVar9 != 0xfffffffe;\n              }\n              else {\n                uVar19 = 0xffff;\n                local_40[0].first = uVar9;\n                local_40[0].second = uVar10;\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_,local_40);\n                uVar9 = *puVar22;\n                bVar17 = uVar9 != 0xfffffffe && uVar9 != 0;\n              }\n            }\n            goto LAB_001a32f9;\n          }\n        }\n        else {\n          if (uVar19 == 0xffff) {\n            this_01 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_;\n            if (this_01 == (Xindex *)0x0) {\n              iVar11 = (*(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                         _vptr_Object[0x1b])(this);\n              this_01 = (Xindex *)CONCAT44(extraout_var,iVar11);\n              (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = this_01;\n            }\n            uVar10 = Xindex::sym_xindex_to_shndx(this_01,(Object *)this,local_b8);\n            uVar20 = (ulong)uVar10;\n            goto LAB_001a350a;\n          }\n          uVar9 = *puVar22;\n          bVar17 = uVar9 != 0 && uVar9 != 0xfffffffe;\nLAB_001a32f9:\n          if (!bVar17) {\nLAB_001a374c:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }\n          puVar30 = puVar31;\n          if (uVar9 != 0xffffffff) {\n            if (strtab_size <= *(uint *)(puVar29 + -0x18)) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/object.cc",0xae8,"write_local_symbols");\n            }\n            sVar15 = Stringpool_template<char>::get_offset\n                               (sympool,(char *)(local_b0 + *(uint *)(puVar29 + -0x18)));\n            *(int *)puVar31 = (int)sVar15;\n            if ((char)*(byte *)((long)puVar22 + 0xb) < '\0') {\n              p_Var16 = *(_Hash_node_base **)(puVar22 + 4);\n            }\n            else {\n              if ((*(byte *)((long)puVar22 + 0xb) & 8) == 0) goto LAB_001a377c;\n              pMVar4 = *(Merged_symbol_value<64> **)(puVar22 + 4);\n              p_Var16 = (_Hash_node_base *)pMVar4->input_value_;\n              uVar20 = (pMVar4->output_addresses_)._M_h._M_bucket_count;\n              uVar18 = (ulong)p_Var16 % uVar20;\n              p_Var28 = (pMVar4->output_addresses_)._M_h._M_buckets[uVar18];\n              if (p_Var28 != (__bucket_type)0x0) {\n                p_Var23 = p_Var28->_M_nxt[1]._M_nxt;\n                p_Var5 = p_Var28->_M_nxt;\n                while (p_Var27 = p_Var5, p_Var16 != p_Var23) {\n                  p_Var5 = p_Var27->_M_nxt;\n                  if ((p_Var5 == (_Hash_node_base *)0x0) ||\n                     (p_Var23 = p_Var5[1]._M_nxt, p_Var28 = p_Var27,\n                     uVar18 != (ulong)p_Var23 % uVar20)) goto LAB_001a3660;\n                }\n                if (p_Var28->_M_nxt != (_Hash_node_base *)0x0) {\n                  p_Var16 = p_Var28->_M_nxt[2]._M_nxt;\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              p_Var16 = (_Hash_node_base *)\n                        Merged_symbol_value<64>::value_from_output_section\n                                  (pMVar4,(Relobj *)this,puVar22[2] & 0x7ffffff,(Elf_Addr)p_Var16);\n            }\nLAB_001a33ac:\n            *(_Hash_node_base **)(puVar31 + 8) = p_Var16;\n            puVar30 = puVar31 + 0x18;\n            *(undefined8 *)(puVar31 + 0x10) = *(undefined8 *)(puVar29 + -8);\n            puVar31[4] = puVar29[-0x14];\n            uVar1 = puVar29[-0x13];\n            *(ushort *)(puVar31 + 6) = uVar19;\n            puVar31[5] = uVar1;\n          }\n          if (puVar22[1] == 0) {\nLAB_001a3764:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/object.h",0x738,"has_output_dynsym_entry");\n          }\n          puVar31 = puVar30;\n          if (puVar22[1] != 0xffffffff) {\n            if (local_68 + (long)this_03 <= puVar12) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }\n            if (strtab_size <= *(uint *)(puVar29 + -0x18)) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/object.cc",0xafa,"write_local_symbols");\n            }\n            sVar15 = Stringpool_template<char>::get_offset\n                               (dynpool,(char *)(local_b0 + *(uint *)(puVar29 + -0x18)));\n            *(int *)puVar12 = (int)sVar15;\n            if ((char)*(byte *)((long)puVar22 + 0xb) < '\0') {\n              p_Var16 = *(_Hash_node_base **)(puVar22 + 4);\n            }\n            else {\n              if ((*(byte *)((long)puVar22 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n              }\n              pMVar4 = *(Merged_symbol_value<64> **)(puVar22 + 4);\n              p_Var16 = (_Hash_node_base *)pMVar4->input_value_;\n              uVar20 = (pMVar4->output_addresses_)._M_h._M_bucket_count;\n              uVar18 = (ulong)p_Var16 % uVar20;\n              p_Var28 = (pMVar4->output_addresses_)._M_h._M_buckets[uVar18];\n              if (p_Var28 != (__bucket_type)0x0) {\n                p_Var23 = p_Var28->_M_nxt[1]._M_nxt;\n                p_Var5 = p_Var28->_M_nxt;\n                while (p_Var27 = p_Var5, p_Var23 != p_Var16) {\n                  p_Var5 = p_Var27->_M_nxt;\n                  if ((p_Var5 == (_Hash_node_base *)0x0) ||\n                     (p_Var23 = p_Var5[1]._M_nxt, p_Var28 = p_Var27,\n                     uVar18 != (ulong)p_Var23 % uVar20)) goto LAB_001a3608;\n                }\n                if (p_Var28->_M_nxt != (_Hash_node_base *)0x0) {\n                  p_Var16 = p_Var28->_M_nxt[2]._M_nxt;\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              p_Var16 = (_Hash_node_base *)\n                        Merged_symbol_value<64>::value_from_output_section\n                                  (pMVar4,(Relobj *)this,puVar22[2] & 0x7ffffff,(Elf_Addr)p_Var16);\n            }\nLAB_001a349c:\n            *(_Hash_node_base **)(puVar12 + 8) = p_Var16;\n            *(undefined8 *)(puVar12 + 0x10) = *(undefined8 *)(puVar29 + -8);\n            puVar12[4] = puVar29[-0x14];\n            uVar1 = puVar29[-0x13];\n            *(ushort *)(puVar12 + 6) = uVar19;\n            puVar12[5] = uVar1;\n            puVar12 = puVar12 + 0x18;\n          }\n        }" if (parenthesized_expression "(uVar19 < 0xff00)" ( (binary_expression "uVar19 < 0xff00" identifier < number_literal) )) (compound_statement "{\nLAB_001a350a:\n          ppOVar6 = (this->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                    super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                    ._M_impl._M_start;\n          if ((ulong)((long)(this->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                            ._M_impl._M_finish - (long)ppOVar6 >> 3) <= uVar20) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/object.cc",0xad5,"write_local_symbols");\n          }\n          pOVar7 = ppOVar6[uVar20];\n          if (pOVar7 != (Output_section *)0x0) {\n            p_Var3 = (pOVar7->super_Output_data)._vptr_Output_data[0xb];\n            if (p_Var3 == Output_section::do_out_shndx) {\n              uVar10 = pOVar7->out_shndx_;\n              if (uVar10 == 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar10 = (*p_Var3)();\n            }\n            uVar19 = (ushort)uVar10;\n            uVar9 = *puVar22;\n            bVar17 = uVar9 != 0 && uVar9 != 0xfffffffe;\n            if (0xfeff < uVar10) {\n              if (uVar9 == 0 || uVar9 == 0xfffffffe) goto LAB_001a374c;\n              if (uVar9 != 0xffffffff) {\n                local_40[0].first = uVar9;\n                local_40[0].second = uVar10;\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_,local_40);\n              }\n              uVar9 = puVar22[1];\n              if (uVar9 == 0) goto LAB_001a3764;\n              if (uVar9 == 0xffffffff) {\n                uVar9 = *puVar22;\n                uVar19 = 0xffff;\n                bVar17 = uVar9 != 0 && uVar9 != 0xfffffffe;\n              }\n              else {\n                uVar19 = 0xffff;\n                local_40[0].first = uVar9;\n                local_40[0].second = uVar10;\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_,local_40);\n                uVar9 = *puVar22;\n                bVar17 = uVar9 != 0xfffffffe && uVar9 != 0;\n              }\n            }\n            goto LAB_001a32f9;\n          }\n        }" { (labeled_statement "LAB_001a350a:\n          ppOVar6 = (this->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                    super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                    ._M_impl._M_start;" statement_identifier : (ERROR "ppOVar6 = (this->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                    super__Vector_base<gold::Output_section*,_std::allocator<gold::" (comma_expression "ppOVar6 = (this->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                    super__Vector_base<gold::Output_section*,_std" (binary_expression "ppOVar6 = (this->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                    super__Vector_base<gold::Output_section*" (assignment_expression "ppOVar6 = (this->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                    super__Vector_base<gold" identifier = (binary_expression "(this->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                    super__Vector_base<gold" (field_expression "(this->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                    super__Vector_base" (field_expression "(this->super_Sized_relobj<64,_false>).super_Relobj.output_sections_" (field_expression "(this->super_Sized_relobj<64,_false>).super_Relobj" (parenthesized_expression "(this->super_Sized_relobj<64,_false>)" ( (comma_expression "this->super_Sized_relobj<64,_false" (binary_expression "this->super_Sized_relobj<64" (field_expression "this->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) < identifier)) (ERROR "::Output_section" : : identifier) * identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (expression_statement "Output_section*>_>\n                    ._M_impl._M_start;" (field_expression "Output_section*>_>\n                    ._M_impl._M_start" (field_expression "Output_section*>_>\n                    ._M_impl" (binary_expression "Output_section*>_" identifier * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;)) (if_statement "if ((ulong)((long)(this->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                            ._M_impl._M_finish - (long)ppOVar6 >> 3) <= uVar20) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/object.cc",0xad5,"write_local_symbols");\n          }" if (parenthesized_expression "((ulong)((long)(this->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                            ._M_impl._M_finish - (long)ppOVar6 >> 3) <= uVar20)" ( (binary_expression "(ulong)((long)(this->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                            ._M_impl._M_finish - (long)ppOVar6 >> 3) <= uVar20" (call_expression "(ulong)((long)(this->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                            ._M_impl._M_finish - (long)ppOVar6 >> 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((long)(this->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                            ._M_impl._M_finish - (long)ppOVar6 >> 3)" ( (binary_expression "(long)(this->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                            ._M_impl._M_finish - (long)ppOVar6 >> 3" (binary_expression "(long)(this->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                            ._M_impl._M_finish - (long)ppOVar6" (field_expression "(long)(this->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                            ._M_impl._M_finish" (field_expression "(long)(this->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                            ._M_impl" (binary_expression "(long)(this->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "(long)(this->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "(long)(this->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                            super__Vector_base<gold::Output_section*,_std" (binary_expression "(long)(this->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                            super__Vector_base<gold" (cast_expression "(long)(this->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                            super__Vector_base" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "(this->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n                            super__Vector_base" (field_expression "(this->super_Sized_relobj<64,_false>).super_Relobj.output_sections_" (field_expression "(this->super_Sized_relobj<64,_false>).super_Relobj" (parenthesized_expression "(this->super_Sized_relobj<64,_false>)" ( (comma_expression "this->super_Sized_relobj<64,_false" (binary_expression "this->super_Sized_relobj<64" (field_expression "this->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_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)ppOVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) >> number_literal) ))) <= identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/object.cc",0xad5,"write_local_symbols");\n          }" { comment (expression_statement "do_gold_unreachable("../../gold/object.cc",0xad5,"write_local_symbols");" (call_expression "do_gold_unreachable("../../gold/object.cc",0xad5,"write_local_symbols")" identifier (argument_list "("../../gold/object.cc",0xad5,"write_local_symbols")" ( (string_literal ""../../gold/object.cc"" " string_content ") , number_literal , (string_literal ""write_local_symbols"" " string_content ") ))) ;) })) (expression_statement "pOVar7 = ppOVar6[uVar20];" (assignment_expression "pOVar7 = ppOVar6[uVar20]" identifier = (subscript_expression "ppOVar6[uVar20]" identifier [ identifier ])) ;) (if_statement "if (pOVar7 != (Output_section *)0x0) {\n            p_Var3 = (pOVar7->super_Output_data)._vptr_Output_data[0xb];\n            if (p_Var3 == Output_section::do_out_shndx) {\n              uVar10 = pOVar7->out_shndx_;\n              if (uVar10 == 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar10 = (*p_Var3)();\n            }\n            uVar19 = (ushort)uVar10;\n            uVar9 = *puVar22;\n            bVar17 = uVar9 != 0 && uVar9 != 0xfffffffe;\n            if (0xfeff < uVar10) {\n              if (uVar9 == 0 || uVar9 == 0xfffffffe) goto LAB_001a374c;\n              if (uVar9 != 0xffffffff) {\n                local_40[0].first = uVar9;\n                local_40[0].second = uVar10;\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_,local_40);\n              }\n              uVar9 = puVar22[1];\n              if (uVar9 == 0) goto LAB_001a3764;\n              if (uVar9 == 0xffffffff) {\n                uVar9 = *puVar22;\n                uVar19 = 0xffff;\n                bVar17 = uVar9 != 0 && uVar9 != 0xfffffffe;\n              }\n              else {\n                uVar19 = 0xffff;\n                local_40[0].first = uVar9;\n                local_40[0].second = uVar10;\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_,local_40);\n                uVar9 = *puVar22;\n                bVar17 = uVar9 != 0xfffffffe && uVar9 != 0;\n              }\n            }\n            goto LAB_001a32f9;\n          }" if (parenthesized_expression "(pOVar7 != (Output_section *)0x0)" ( (binary_expression "pOVar7 != (Output_section *)0x0" identifier != (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            p_Var3 = (pOVar7->super_Output_data)._vptr_Output_data[0xb];\n            if (p_Var3 == Output_section::do_out_shndx) {\n              uVar10 = pOVar7->out_shndx_;\n              if (uVar10 == 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar10 = (*p_Var3)();\n            }\n            uVar19 = (ushort)uVar10;\n            uVar9 = *puVar22;\n            bVar17 = uVar9 != 0 && uVar9 != 0xfffffffe;\n            if (0xfeff < uVar10) {\n              if (uVar9 == 0 || uVar9 == 0xfffffffe) goto LAB_001a374c;\n              if (uVar9 != 0xffffffff) {\n                local_40[0].first = uVar9;\n                local_40[0].second = uVar10;\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_,local_40);\n              }\n              uVar9 = puVar22[1];\n              if (uVar9 == 0) goto LAB_001a3764;\n              if (uVar9 == 0xffffffff) {\n                uVar9 = *puVar22;\n                uVar19 = 0xffff;\n                bVar17 = uVar9 != 0 && uVar9 != 0xfffffffe;\n              }\n              else {\n                uVar19 = 0xffff;\n                local_40[0].first = uVar9;\n                local_40[0].second = uVar10;\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_,local_40);\n                uVar9 = *puVar22;\n                bVar17 = uVar9 != 0xfffffffe && uVar9 != 0;\n              }\n            }\n            goto LAB_001a32f9;\n          }" { (expression_statement "p_Var3 = (pOVar7->super_Output_data)._vptr_Output_data[0xb];" (assignment_expression "p_Var3 = (pOVar7->super_Output_data)._vptr_Output_data[0xb]" identifier = (subscript_expression "(pOVar7->super_Output_data)._vptr_Output_data[0xb]" (field_expression "(pOVar7->super_Output_data)._vptr_Output_data" (parenthesized_expression "(pOVar7->super_Output_data)" ( (field_expression "pOVar7->super_Output_data" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (if_statement "if (p_Var3 == Output_section::do_out_shndx) {\n              uVar10 = pOVar7->out_shndx_;\n              if (uVar10 == 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar10 = (*p_Var3)();\n            }" if (parenthesized_expression "(p_Var3 == Output_section::do_out_shndx)" ( (binary_expression "p_Var3 == Output_section" identifier == identifier) (ERROR "::do_out_shndx" : : identifier) )) (compound_statement "{\n              uVar10 = pOVar7->out_shndx_;\n              if (uVar10 == 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }" { (expression_statement "uVar10 = pOVar7->out_shndx_;" (assignment_expression "uVar10 = pOVar7->out_shndx_" identifier = (field_expression "pOVar7->out_shndx_" identifier -> field_identifier)) ;) (if_statement "if (uVar10 == 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");\n              }" if (parenthesized_expression "(uVar10 == 0xffffffff)" ( (binary_expression "uVar10 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");\n              }" { 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              uVar10 = (*p_Var3)();\n            }" else (compound_statement "{\n              uVar10 = (*p_Var3)();\n            }" { (expression_statement "uVar10 = (*p_Var3)();" (assignment_expression "uVar10 = (*p_Var3)()" identifier = (call_expression "(*p_Var3)()" (parenthesized_expression "(*p_Var3)" ( (pointer_expression "*p_Var3" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "uVar19 = (ushort)uVar10;" (assignment_expression "uVar19 = (ushort)uVar10" identifier = (cast_expression "(ushort)uVar10" ( (type_descriptor "ushort" type_identifier) ) identifier)) ;) (expression_statement "uVar9 = *puVar22;" (assignment_expression "uVar9 = *puVar22" identifier = (pointer_expression "*puVar22" * identifier)) ;) (expression_statement "bVar17 = uVar9 != 0 && uVar9 != 0xfffffffe;" (assignment_expression "bVar17 = uVar9 != 0 && uVar9 != 0xfffffffe" identifier = (binary_expression "uVar9 != 0 && uVar9 != 0xfffffffe" (binary_expression "uVar9 != 0" identifier != number_literal) && (binary_expression "uVar9 != 0xfffffffe" identifier != number_literal))) ;) (if_statement "if (0xfeff < uVar10) {\n              if (uVar9 == 0 || uVar9 == 0xfffffffe) goto LAB_001a374c;\n              if (uVar9 != 0xffffffff) {\n                local_40[0].first = uVar9;\n                local_40[0].second = uVar10;\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_,local_40);\n              }\n              uVar9 = puVar22[1];\n              if (uVar9 == 0) goto LAB_001a3764;\n              if (uVar9 == 0xffffffff) {\n                uVar9 = *puVar22;\n                uVar19 = 0xffff;\n                bVar17 = uVar9 != 0 && uVar9 != 0xfffffffe;\n              }\n              else {\n                uVar19 = 0xffff;\n                local_40[0].first = uVar9;\n                local_40[0].second = uVar10;\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_,local_40);\n                uVar9 = *puVar22;\n                bVar17 = uVar9 != 0xfffffffe && uVar9 != 0;\n              }\n            }" if (parenthesized_expression "(0xfeff < uVar10)" ( (binary_expression "0xfeff < uVar10" number_literal < identifier) )) (compound_statement "{\n              if (uVar9 == 0 || uVar9 == 0xfffffffe) goto LAB_001a374c;\n              if (uVar9 != 0xffffffff) {\n                local_40[0].first = uVar9;\n                local_40[0].second = uVar10;\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_,local_40);\n              }\n              uVar9 = puVar22[1];\n              if (uVar9 == 0) goto LAB_001a3764;\n              if (uVar9 == 0xffffffff) {\n                uVar9 = *puVar22;\n                uVar19 = 0xffff;\n                bVar17 = uVar9 != 0 && uVar9 != 0xfffffffe;\n              }\n              else {\n                uVar19 = 0xffff;\n                local_40[0].first = uVar9;\n                local_40[0].second = uVar10;\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_,local_40);\n                uVar9 = *puVar22;\n                bVar17 = uVar9 != 0xfffffffe && uVar9 != 0;\n              }\n            }" { (if_statement "if (uVar9 == 0 || uVar9 == 0xfffffffe) goto LAB_001a374c;" if (parenthesized_expression "(uVar9 == 0 || uVar9 == 0xfffffffe)" ( (binary_expression "uVar9 == 0 || uVar9 == 0xfffffffe" (binary_expression "uVar9 == 0" identifier == number_literal) || (binary_expression "uVar9 == 0xfffffffe" identifier == number_literal)) )) (goto_statement "goto LAB_001a374c;" goto statement_identifier ;)) (if_statement "if (uVar9 != 0xffffffff) {\n                local_40[0].first = uVar9;\n                local_40[0].second = uVar10;\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_,local_40);\n              }" if (parenthesized_expression "(uVar9 != 0xffffffff)" ( (binary_expression "uVar9 != 0xffffffff" identifier != number_literal) )) (compound_statement "{\n                local_40[0].first = uVar9;\n                local_40[0].second = uVar10;\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_,local_40);\n              }" { (expression_statement "local_40[0].first = uVar9;" (assignment_expression "local_40[0].first = uVar9" (field_expression "local_40[0].first" (subscript_expression "local_40[0]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "local_40[0].second = uVar10;" (assignment_expression "local_40[0].second = uVar10" (field_expression "local_40[0].second" (subscript_expression "local_40[0]" identifier [ number_literal ]) . 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_,local_40);" 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_,local_40);" (comma_expression "pair<unsigned_int,_unsigned_int>_>\n                          (&symtab_xindex->entries_,local_40)" (binary_expression "pair<unsigned_int" identifier < identifier) , (binary_expression "_unsigned_int>_>\n                          (&symtab_xindex->entries_,local_40)" (binary_expression "_unsigned_int>_" identifier > identifier) > (parenthesized_expression "(&symtab_xindex->entries_,local_40)" ( (comma_expression "&symtab_xindex->entries_,local_40" (pointer_expression "&symtab_xindex->entries_" & (field_expression "symtab_xindex->entries_" identifier -> field_identifier)) , identifier) )))) ;)) })) (expression_statement "uVar9 = puVar22[1];" (assignment_expression "uVar9 = puVar22[1]" identifier = (subscript_expression "puVar22[1]" identifier [ number_literal ])) ;) (if_statement "if (uVar9 == 0) goto LAB_001a3764;" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001a3764;" goto statement_identifier ;)) (if_statement "if (uVar9 == 0xffffffff) {\n                uVar9 = *puVar22;\n                uVar19 = 0xffff;\n                bVar17 = uVar9 != 0 && uVar9 != 0xfffffffe;\n              }\n              else {\n                uVar19 = 0xffff;\n                local_40[0].first = uVar9;\n                local_40[0].second = uVar10;\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_,local_40);\n                uVar9 = *puVar22;\n                bVar17 = uVar9 != 0xfffffffe && uVar9 != 0;\n              }" if (parenthesized_expression "(uVar9 == 0xffffffff)" ( (binary_expression "uVar9 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n                uVar9 = *puVar22;\n                uVar19 = 0xffff;\n                bVar17 = uVar9 != 0 && uVar9 != 0xfffffffe;\n              }" { (expression_statement "uVar9 = *puVar22;" (assignment_expression "uVar9 = *puVar22" identifier = (pointer_expression "*puVar22" * identifier)) ;) (expression_statement "uVar19 = 0xffff;" (assignment_expression "uVar19 = 0xffff" identifier = number_literal) ;) (expression_statement "bVar17 = uVar9 != 0 && uVar9 != 0xfffffffe;" (assignment_expression "bVar17 = uVar9 != 0 && uVar9 != 0xfffffffe" identifier = (binary_expression "uVar9 != 0 && uVar9 != 0xfffffffe" (binary_expression "uVar9 != 0" identifier != number_literal) && (binary_expression "uVar9 != 0xfffffffe" identifier != number_literal))) ;) }) (else_clause "else {\n                uVar19 = 0xffff;\n                local_40[0].first = uVar9;\n                local_40[0].second = uVar10;\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_,local_40);\n                uVar9 = *puVar22;\n                bVar17 = uVar9 != 0xfffffffe && uVar9 != 0;\n              }" else (compound_statement "{\n                uVar19 = 0xffff;\n                local_40[0].first = uVar9;\n                local_40[0].second = uVar10;\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_,local_40);\n                uVar9 = *puVar22;\n                bVar17 = uVar9 != 0xfffffffe && uVar9 != 0;\n              }" { (expression_statement "uVar19 = 0xffff;" (assignment_expression "uVar19 = 0xffff" identifier = number_literal) ;) (expression_statement "local_40[0].first = uVar9;" (assignment_expression "local_40[0].first = uVar9" (field_expression "local_40[0].first" (subscript_expression "local_40[0]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "local_40[0].second = uVar10;" (assignment_expression "local_40[0].second = uVar10" (field_expression "local_40[0].second" (subscript_expression "local_40[0]" identifier [ number_literal ]) . 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_,local_40);" 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_,local_40);" (comma_expression "pair<unsigned_int,_unsigned_int>_>\n                          (&dynsym_xindex->entries_,local_40)" (binary_expression "pair<unsigned_int" identifier < identifier) , (binary_expression "_unsigned_int>_>\n                          (&dynsym_xindex->entries_,local_40)" (binary_expression "_unsigned_int>_" identifier > identifier) > (parenthesized_expression "(&dynsym_xindex->entries_,local_40)" ( (comma_expression "&dynsym_xindex->entries_,local_40" (pointer_expression "&dynsym_xindex->entries_" & (field_expression "dynsym_xindex->entries_" identifier -> field_identifier)) , identifier) )))) ;)) (expression_statement "uVar9 = *puVar22;" (assignment_expression "uVar9 = *puVar22" identifier = (pointer_expression "*puVar22" * identifier)) ;) (expression_statement "bVar17 = uVar9 != 0xfffffffe && uVar9 != 0;" (assignment_expression "bVar17 = uVar9 != 0xfffffffe && uVar9 != 0" identifier = (binary_expression "uVar9 != 0xfffffffe && uVar9 != 0" (binary_expression "uVar9 != 0xfffffffe" identifier != number_literal) && (binary_expression "uVar9 != 0" identifier != number_literal))) ;) }))) })) (goto_statement "goto LAB_001a32f9;" goto statement_identifier ;) })) }) (else_clause "else {\n          if (uVar19 == 0xffff) {\n            this_01 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_;\n            if (this_01 == (Xindex *)0x0) {\n              iVar11 = (*(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                         _vptr_Object[0x1b])(this);\n              this_01 = (Xindex *)CONCAT44(extraout_var,iVar11);\n              (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = this_01;\n            }\n            uVar10 = Xindex::sym_xindex_to_shndx(this_01,(Object *)this,local_b8);\n            uVar20 = (ulong)uVar10;\n            goto LAB_001a350a;\n          }\n          uVar9 = *puVar22;\n          bVar17 = uVar9 != 0 && uVar9 != 0xfffffffe;\nLAB_001a32f9:\n          if (!bVar17) {\nLAB_001a374c:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }\n          puVar30 = puVar31;\n          if (uVar9 != 0xffffffff) {\n            if (strtab_size <= *(uint *)(puVar29 + -0x18)) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/object.cc",0xae8,"write_local_symbols");\n            }\n            sVar15 = Stringpool_template<char>::get_offset\n                               (sympool,(char *)(local_b0 + *(uint *)(puVar29 + -0x18)));\n            *(int *)puVar31 = (int)sVar15;\n            if ((char)*(byte *)((long)puVar22 + 0xb) < '\0') {\n              p_Var16 = *(_Hash_node_base **)(puVar22 + 4);\n            }\n            else {\n              if ((*(byte *)((long)puVar22 + 0xb) & 8) == 0) goto LAB_001a377c;\n              pMVar4 = *(Merged_symbol_value<64> **)(puVar22 + 4);\n              p_Var16 = (_Hash_node_base *)pMVar4->input_value_;\n              uVar20 = (pMVar4->output_addresses_)._M_h._M_bucket_count;\n              uVar18 = (ulong)p_Var16 % uVar20;\n              p_Var28 = (pMVar4->output_addresses_)._M_h._M_buckets[uVar18];\n              if (p_Var28 != (__bucket_type)0x0) {\n                p_Var23 = p_Var28->_M_nxt[1]._M_nxt;\n                p_Var5 = p_Var28->_M_nxt;\n                while (p_Var27 = p_Var5, p_Var16 != p_Var23) {\n                  p_Var5 = p_Var27->_M_nxt;\n                  if ((p_Var5 == (_Hash_node_base *)0x0) ||\n                     (p_Var23 = p_Var5[1]._M_nxt, p_Var28 = p_Var27,\n                     uVar18 != (ulong)p_Var23 % uVar20)) goto LAB_001a3660;\n                }\n                if (p_Var28->_M_nxt != (_Hash_node_base *)0x0) {\n                  p_Var16 = p_Var28->_M_nxt[2]._M_nxt;\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              p_Var16 = (_Hash_node_base *)\n                        Merged_symbol_value<64>::value_from_output_section\n                                  (pMVar4,(Relobj *)this,puVar22[2] & 0x7ffffff,(Elf_Addr)p_Var16);\n            }\nLAB_001a33ac:\n            *(_Hash_node_base **)(puVar31 + 8) = p_Var16;\n            puVar30 = puVar31 + 0x18;\n            *(undefined8 *)(puVar31 + 0x10) = *(undefined8 *)(puVar29 + -8);\n            puVar31[4] = puVar29[-0x14];\n            uVar1 = puVar29[-0x13];\n            *(ushort *)(puVar31 + 6) = uVar19;\n            puVar31[5] = uVar1;\n          }\n          if (puVar22[1] == 0) {\nLAB_001a3764:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/object.h",0x738,"has_output_dynsym_entry");\n          }\n          puVar31 = puVar30;\n          if (puVar22[1] != 0xffffffff) {\n            if (local_68 + (long)this_03 <= puVar12) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }\n            if (strtab_size <= *(uint *)(puVar29 + -0x18)) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/object.cc",0xafa,"write_local_symbols");\n            }\n            sVar15 = Stringpool_template<char>::get_offset\n                               (dynpool,(char *)(local_b0 + *(uint *)(puVar29 + -0x18)));\n            *(int *)puVar12 = (int)sVar15;\n            if ((char)*(byte *)((long)puVar22 + 0xb) < '\0') {\n              p_Var16 = *(_Hash_node_base **)(puVar22 + 4);\n            }\n            else {\n              if ((*(byte *)((long)puVar22 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n              }\n              pMVar4 = *(Merged_symbol_value<64> **)(puVar22 + 4);\n              p_Var16 = (_Hash_node_base *)pMVar4->input_value_;\n              uVar20 = (pMVar4->output_addresses_)._M_h._M_bucket_count;\n              uVar18 = (ulong)p_Var16 % uVar20;\n              p_Var28 = (pMVar4->output_addresses_)._M_h._M_buckets[uVar18];\n              if (p_Var28 != (__bucket_type)0x0) {\n                p_Var23 = p_Var28->_M_nxt[1]._M_nxt;\n                p_Var5 = p_Var28->_M_nxt;\n                while (p_Var27 = p_Var5, p_Var23 != p_Var16) {\n                  p_Var5 = p_Var27->_M_nxt;\n                  if ((p_Var5 == (_Hash_node_base *)0x0) ||\n                     (p_Var23 = p_Var5[1]._M_nxt, p_Var28 = p_Var27,\n                     uVar18 != (ulong)p_Var23 % uVar20)) goto LAB_001a3608;\n                }\n                if (p_Var28->_M_nxt != (_Hash_node_base *)0x0) {\n                  p_Var16 = p_Var28->_M_nxt[2]._M_nxt;\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              p_Var16 = (_Hash_node_base *)\n                        Merged_symbol_value<64>::value_from_output_section\n                                  (pMVar4,(Relobj *)this,puVar22[2] & 0x7ffffff,(Elf_Addr)p_Var16);\n            }\nLAB_001a349c:\n            *(_Hash_node_base **)(puVar12 + 8) = p_Var16;\n            *(undefined8 *)(puVar12 + 0x10) = *(undefined8 *)(puVar29 + -8);\n            puVar12[4] = puVar29[-0x14];\n            uVar1 = puVar29[-0x13];\n            *(ushort *)(puVar12 + 6) = uVar19;\n            puVar12[5] = uVar1;\n            puVar12 = puVar12 + 0x18;\n          }\n        }" else (compound_statement "{\n          if (uVar19 == 0xffff) {\n            this_01 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_;\n            if (this_01 == (Xindex *)0x0) {\n              iVar11 = (*(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                         _vptr_Object[0x1b])(this);\n              this_01 = (Xindex *)CONCAT44(extraout_var,iVar11);\n              (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = this_01;\n            }\n            uVar10 = Xindex::sym_xindex_to_shndx(this_01,(Object *)this,local_b8);\n            uVar20 = (ulong)uVar10;\n            goto LAB_001a350a;\n          }\n          uVar9 = *puVar22;\n          bVar17 = uVar9 != 0 && uVar9 != 0xfffffffe;\nLAB_001a32f9:\n          if (!bVar17) {\nLAB_001a374c:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }\n          puVar30 = puVar31;\n          if (uVar9 != 0xffffffff) {\n            if (strtab_size <= *(uint *)(puVar29 + -0x18)) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/object.cc",0xae8,"write_local_symbols");\n            }\n            sVar15 = Stringpool_template<char>::get_offset\n                               (sympool,(char *)(local_b0 + *(uint *)(puVar29 + -0x18)));\n            *(int *)puVar31 = (int)sVar15;\n            if ((char)*(byte *)((long)puVar22 + 0xb) < '\0') {\n              p_Var16 = *(_Hash_node_base **)(puVar22 + 4);\n            }\n            else {\n              if ((*(byte *)((long)puVar22 + 0xb) & 8) == 0) goto LAB_001a377c;\n              pMVar4 = *(Merged_symbol_value<64> **)(puVar22 + 4);\n              p_Var16 = (_Hash_node_base *)pMVar4->input_value_;\n              uVar20 = (pMVar4->output_addresses_)._M_h._M_bucket_count;\n              uVar18 = (ulong)p_Var16 % uVar20;\n              p_Var28 = (pMVar4->output_addresses_)._M_h._M_buckets[uVar18];\n              if (p_Var28 != (__bucket_type)0x0) {\n                p_Var23 = p_Var28->_M_nxt[1]._M_nxt;\n                p_Var5 = p_Var28->_M_nxt;\n                while (p_Var27 = p_Var5, p_Var16 != p_Var23) {\n                  p_Var5 = p_Var27->_M_nxt;\n                  if ((p_Var5 == (_Hash_node_base *)0x0) ||\n                     (p_Var23 = p_Var5[1]._M_nxt, p_Var28 = p_Var27,\n                     uVar18 != (ulong)p_Var23 % uVar20)) goto LAB_001a3660;\n                }\n                if (p_Var28->_M_nxt != (_Hash_node_base *)0x0) {\n                  p_Var16 = p_Var28->_M_nxt[2]._M_nxt;\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              p_Var16 = (_Hash_node_base *)\n                        Merged_symbol_value<64>::value_from_output_section\n                                  (pMVar4,(Relobj *)this,puVar22[2] & 0x7ffffff,(Elf_Addr)p_Var16);\n            }\nLAB_001a33ac:\n            *(_Hash_node_base **)(puVar31 + 8) = p_Var16;\n            puVar30 = puVar31 + 0x18;\n            *(undefined8 *)(puVar31 + 0x10) = *(undefined8 *)(puVar29 + -8);\n            puVar31[4] = puVar29[-0x14];\n            uVar1 = puVar29[-0x13];\n            *(ushort *)(puVar31 + 6) = uVar19;\n            puVar31[5] = uVar1;\n          }\n          if (puVar22[1] == 0) {\nLAB_001a3764:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/object.h",0x738,"has_output_dynsym_entry");\n          }\n          puVar31 = puVar30;\n          if (puVar22[1] != 0xffffffff) {\n            if (local_68 + (long)this_03 <= puVar12) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }\n            if (strtab_size <= *(uint *)(puVar29 + -0x18)) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/object.cc",0xafa,"write_local_symbols");\n            }\n            sVar15 = Stringpool_template<char>::get_offset\n                               (dynpool,(char *)(local_b0 + *(uint *)(puVar29 + -0x18)));\n            *(int *)puVar12 = (int)sVar15;\n            if ((char)*(byte *)((long)puVar22 + 0xb) < '\0') {\n              p_Var16 = *(_Hash_node_base **)(puVar22 + 4);\n            }\n            else {\n              if ((*(byte *)((long)puVar22 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n              }\n              pMVar4 = *(Merged_symbol_value<64> **)(puVar22 + 4);\n              p_Var16 = (_Hash_node_base *)pMVar4->input_value_;\n              uVar20 = (pMVar4->output_addresses_)._M_h._M_bucket_count;\n              uVar18 = (ulong)p_Var16 % uVar20;\n              p_Var28 = (pMVar4->output_addresses_)._M_h._M_buckets[uVar18];\n              if (p_Var28 != (__bucket_type)0x0) {\n                p_Var23 = p_Var28->_M_nxt[1]._M_nxt;\n                p_Var5 = p_Var28->_M_nxt;\n                while (p_Var27 = p_Var5, p_Var23 != p_Var16) {\n                  p_Var5 = p_Var27->_M_nxt;\n                  if ((p_Var5 == (_Hash_node_base *)0x0) ||\n                     (p_Var23 = p_Var5[1]._M_nxt, p_Var28 = p_Var27,\n                     uVar18 != (ulong)p_Var23 % uVar20)) goto LAB_001a3608;\n                }\n                if (p_Var28->_M_nxt != (_Hash_node_base *)0x0) {\n                  p_Var16 = p_Var28->_M_nxt[2]._M_nxt;\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              p_Var16 = (_Hash_node_base *)\n                        Merged_symbol_value<64>::value_from_output_section\n                                  (pMVar4,(Relobj *)this,puVar22[2] & 0x7ffffff,(Elf_Addr)p_Var16);\n            }\nLAB_001a349c:\n            *(_Hash_node_base **)(puVar12 + 8) = p_Var16;\n            *(undefined8 *)(puVar12 + 0x10) = *(undefined8 *)(puVar29 + -8);\n            puVar12[4] = puVar29[-0x14];\n            uVar1 = puVar29[-0x13];\n            *(ushort *)(puVar12 + 6) = uVar19;\n            puVar12[5] = uVar1;\n            puVar12 = puVar12 + 0x18;\n          }\n        }" { (if_statement "if (uVar19 == 0xffff) {\n            this_01 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_;\n            if (this_01 == (Xindex *)0x0) {\n              iVar11 = (*(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                         _vptr_Object[0x1b])(this);\n              this_01 = (Xindex *)CONCAT44(extraout_var,iVar11);\n              (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = this_01;\n            }\n            uVar10 = Xindex::sym_xindex_to_shndx(this_01,(Object *)this,local_b8);\n            uVar20 = (ulong)uVar10;\n            goto LAB_001a350a;\n          }" if (parenthesized_expression "(uVar19 == 0xffff)" ( (binary_expression "uVar19 == 0xffff" identifier == number_literal) )) (compound_statement "{\n            this_01 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_;\n            if (this_01 == (Xindex *)0x0) {\n              iVar11 = (*(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                         _vptr_Object[0x1b])(this);\n              this_01 = (Xindex *)CONCAT44(extraout_var,iVar11);\n              (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = this_01;\n            }\n            uVar10 = Xindex::sym_xindex_to_shndx(this_01,(Object *)this,local_b8);\n            uVar20 = (ulong)uVar10;\n            goto LAB_001a350a;\n          }" { (expression_statement "this_01 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_;" (assignment_expression "this_01 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_" identifier = (field_expression "(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_" (field_expression "(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object" (field_expression "(this->super_Sized_relobj<64,_false>).super_Relobj" (parenthesized_expression "(this->super_Sized_relobj<64,_false>)" ( (comma_expression "this->super_Sized_relobj<64,_false" (binary_expression "this->super_Sized_relobj<64" (field_expression "this->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier)) ;) (if_statement "if (this_01 == (Xindex *)0x0) {\n              iVar11 = (*(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                         _vptr_Object[0x1b])(this);\n              this_01 = (Xindex *)CONCAT44(extraout_var,iVar11);\n              (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = this_01;\n            }" if (parenthesized_expression "(this_01 == (Xindex *)0x0)" ( (binary_expression "this_01 == (Xindex *)0x0" identifier == (cast_expression "(Xindex *)0x0" ( (type_descriptor "Xindex *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              iVar11 = (*(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                         _vptr_Object[0x1b])(this);\n              this_01 = (Xindex *)CONCAT44(extraout_var,iVar11);\n              (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = this_01;\n            }" { (expression_statement "iVar11 = (*(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                         _vptr_Object[0x1b])(this);" (assignment_expression "iVar11 = (*(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                         _vptr_Object[0x1b])(this)" identifier = (call_expression "(*(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                         _vptr_Object[0x1b])(this)" (parenthesized_expression "(*(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                         _vptr_Object[0x1b])" ( (pointer_expression "*(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                         _vptr_Object[0x1b]" * (subscript_expression "(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                         _vptr_Object[0x1b]" (field_expression "(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                         _vptr_Object" (field_expression "(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object" (field_expression "(this->super_Sized_relobj<64,_false>).super_Relobj" (parenthesized_expression "(this->super_Sized_relobj<64,_false>)" ( (comma_expression "this->super_Sized_relobj<64,_false" (binary_expression "this->super_Sized_relobj<64" (field_expression "this->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) [ number_literal ])) )) (argument_list "(this)" ( identifier )))) ;) (expression_statement "this_01 = (Xindex *)CONCAT44(extraout_var,iVar11);" (assignment_expression "this_01 = (Xindex *)CONCAT44(extraout_var,iVar11)" identifier = (cast_expression "(Xindex *)CONCAT44(extraout_var,iVar11)" ( (type_descriptor "Xindex *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT44(extraout_var,iVar11)" identifier (argument_list "(extraout_var,iVar11)" ( identifier , identifier ))))) ;) (expression_statement "(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = this_01;" (assignment_expression "(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = this_01" (field_expression "(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_" (field_expression "(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object" (field_expression "(this->super_Sized_relobj<64,_false>).super_Relobj" (parenthesized_expression "(this->super_Sized_relobj<64,_false>)" ( (comma_expression "this->super_Sized_relobj<64,_false" (binary_expression "this->super_Sized_relobj<64" (field_expression "this->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) = identifier) ;) })) (ERROR "uVar10 = Xindex::" (assignment_expression "uVar10 = Xindex" identifier = identifier) : :) (expression_statement "sym_xindex_to_shndx(this_01,(Object *)this,local_b8);" (call_expression "sym_xindex_to_shndx(this_01,(Object *)this,local_b8)" identifier (argument_list "(this_01,(Object *)this,local_b8)" ( identifier , (cast_expression "(Object *)this" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (expression_statement "uVar20 = (ulong)uVar10;" (assignment_expression "uVar20 = (ulong)uVar10" identifier = (cast_expression "(ulong)uVar10" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (goto_statement "goto LAB_001a350a;" goto statement_identifier ;) })) (expression_statement "uVar9 = *puVar22;" (assignment_expression "uVar9 = *puVar22" identifier = (pointer_expression "*puVar22" * identifier)) ;) (expression_statement "bVar17 = uVar9 != 0 && uVar9 != 0xfffffffe;" (assignment_expression "bVar17 = uVar9 != 0 && uVar9 != 0xfffffffe" identifier = (binary_expression "uVar9 != 0 && uVar9 != 0xfffffffe" (binary_expression "uVar9 != 0" identifier != number_literal) && (binary_expression "uVar9 != 0xfffffffe" identifier != number_literal))) ;) (labeled_statement "LAB_001a32f9:\n          if (!bVar17) {\nLAB_001a374c:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }" statement_identifier : (if_statement "if (!bVar17) {\nLAB_001a374c:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }" if (parenthesized_expression "(!bVar17)" ( (unary_expression "!bVar17" ! identifier) )) (compound_statement "{\nLAB_001a374c:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }" { (labeled_statement "LAB_001a374c:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/object.h",0x6fb,"has_output_symtab_entry");" statement_identifier : comment (expression_statement "do_gold_unreachable("../../gold/object.h",0x6fb,"has_output_symtab_entry");" (call_expression "do_gold_unreachable("../../gold/object.h",0x6fb,"has_output_symtab_entry")" identifier (argument_list "("../../gold/object.h",0x6fb,"has_output_symtab_entry")" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""has_output_symtab_entry"" " string_content ") ))) ;)) }))) (expression_statement "puVar30 = puVar31;" (assignment_expression "puVar30 = puVar31" identifier = identifier) ;) (if_statement "if (uVar9 != 0xffffffff) {\n            if (strtab_size <= *(uint *)(puVar29 + -0x18)) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/object.cc",0xae8,"write_local_symbols");\n            }\n            sVar15 = Stringpool_template<char>::get_offset\n                               (sympool,(char *)(local_b0 + *(uint *)(puVar29 + -0x18)));\n            *(int *)puVar31 = (int)sVar15;\n            if ((char)*(byte *)((long)puVar22 + 0xb) < '\0') {\n              p_Var16 = *(_Hash_node_base **)(puVar22 + 4);\n            }\n            else {\n              if ((*(byte *)((long)puVar22 + 0xb) & 8) == 0) goto LAB_001a377c;\n              pMVar4 = *(Merged_symbol_value<64> **)(puVar22 + 4);\n              p_Var16 = (_Hash_node_base *)pMVar4->input_value_;\n              uVar20 = (pMVar4->output_addresses_)._M_h._M_bucket_count;\n              uVar18 = (ulong)p_Var16 % uVar20;\n              p_Var28 = (pMVar4->output_addresses_)._M_h._M_buckets[uVar18];\n              if (p_Var28 != (__bucket_type)0x0) {\n                p_Var23 = p_Var28->_M_nxt[1]._M_nxt;\n                p_Var5 = p_Var28->_M_nxt;\n                while (p_Var27 = p_Var5, p_Var16 != p_Var23) {\n                  p_Var5 = p_Var27->_M_nxt;\n                  if ((p_Var5 == (_Hash_node_base *)0x0) ||\n                     (p_Var23 = p_Var5[1]._M_nxt, p_Var28 = p_Var27,\n                     uVar18 != (ulong)p_Var23 % uVar20)) goto LAB_001a3660;\n                }\n                if (p_Var28->_M_nxt != (_Hash_node_base *)0x0) {\n                  p_Var16 = p_Var28->_M_nxt[2]._M_nxt;\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              p_Var16 = (_Hash_node_base *)\n                        Merged_symbol_value<64>::value_from_output_section\n                                  (pMVar4,(Relobj *)this,puVar22[2] & 0x7ffffff,(Elf_Addr)p_Var16);\n            }\nLAB_001a33ac:\n            *(_Hash_node_base **)(puVar31 + 8) = p_Var16;\n            puVar30 = puVar31 + 0x18;\n            *(undefined8 *)(puVar31 + 0x10) = *(undefined8 *)(puVar29 + -8);\n            puVar31[4] = puVar29[-0x14];\n            uVar1 = puVar29[-0x13];\n            *(ushort *)(puVar31 + 6) = uVar19;\n            puVar31[5] = uVar1;\n          }" if (parenthesized_expression "(uVar9 != 0xffffffff)" ( (binary_expression "uVar9 != 0xffffffff" identifier != number_literal) )) (compound_statement "{\n            if (strtab_size <= *(uint *)(puVar29 + -0x18)) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/object.cc",0xae8,"write_local_symbols");\n            }\n            sVar15 = Stringpool_template<char>::get_offset\n                               (sympool,(char *)(local_b0 + *(uint *)(puVar29 + -0x18)));\n            *(int *)puVar31 = (int)sVar15;\n            if ((char)*(byte *)((long)puVar22 + 0xb) < '\0') {\n              p_Var16 = *(_Hash_node_base **)(puVar22 + 4);\n            }\n            else {\n              if ((*(byte *)((long)puVar22 + 0xb) & 8) == 0) goto LAB_001a377c;\n              pMVar4 = *(Merged_symbol_value<64> **)(puVar22 + 4);\n              p_Var16 = (_Hash_node_base *)pMVar4->input_value_;\n              uVar20 = (pMVar4->output_addresses_)._M_h._M_bucket_count;\n              uVar18 = (ulong)p_Var16 % uVar20;\n              p_Var28 = (pMVar4->output_addresses_)._M_h._M_buckets[uVar18];\n              if (p_Var28 != (__bucket_type)0x0) {\n                p_Var23 = p_Var28->_M_nxt[1]._M_nxt;\n                p_Var5 = p_Var28->_M_nxt;\n                while (p_Var27 = p_Var5, p_Var16 != p_Var23) {\n                  p_Var5 = p_Var27->_M_nxt;\n                  if ((p_Var5 == (_Hash_node_base *)0x0) ||\n                     (p_Var23 = p_Var5[1]._M_nxt, p_Var28 = p_Var27,\n                     uVar18 != (ulong)p_Var23 % uVar20)) goto LAB_001a3660;\n                }\n                if (p_Var28->_M_nxt != (_Hash_node_base *)0x0) {\n                  p_Var16 = p_Var28->_M_nxt[2]._M_nxt;\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              p_Var16 = (_Hash_node_base *)\n                        Merged_symbol_value<64>::value_from_output_section\n                                  (pMVar4,(Relobj *)this,puVar22[2] & 0x7ffffff,(Elf_Addr)p_Var16);\n            }\nLAB_001a33ac:\n            *(_Hash_node_base **)(puVar31 + 8) = p_Var16;\n            puVar30 = puVar31 + 0x18;\n            *(undefined8 *)(puVar31 + 0x10) = *(undefined8 *)(puVar29 + -8);\n            puVar31[4] = puVar29[-0x14];\n            uVar1 = puVar29[-0x13];\n            *(ushort *)(puVar31 + 6) = uVar19;\n            puVar31[5] = uVar1;\n          }" { (if_statement "if (strtab_size <= *(uint *)(puVar29 + -0x18)) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/object.cc",0xae8,"write_local_symbols");\n            }" if (parenthesized_expression "(strtab_size <= *(uint *)(puVar29 + -0x18))" ( (binary_expression "strtab_size <= *(uint *)(puVar29 + -0x18)" identifier <= (pointer_expression "*(uint *)(puVar29 + -0x18)" * (cast_expression "(uint *)(puVar29 + -0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x18)" ( (binary_expression "puVar29 + -0x18" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/object.cc",0xae8,"write_local_symbols");\n            }" { comment (expression_statement "do_gold_unreachable("../../gold/object.cc",0xae8,"write_local_symbols");" (call_expression "do_gold_unreachable("../../gold/object.cc",0xae8,"write_local_symbols")" identifier (argument_list "("../../gold/object.cc",0xae8,"write_local_symbols")" ( (string_literal ""../../gold/object.cc"" " string_content ") , number_literal , (string_literal ""write_local_symbols"" " string_content ") ))) ;) })) (expression_statement "sVar15 = Stringpool_template<char>::get_offset\n                               (sympool,(char *)(local_b0 + *(uint *)(puVar29 + -0x18)));" (assignment_expression "sVar15 = Stringpool_template<char>::get_offset\n                               (sympool,(char *)(local_b0 + *(uint *)(puVar29 + -0x18)))" identifier = (binary_expression "Stringpool_template<char>::get_offset\n                               (sympool,(char *)(local_b0 + *(uint *)(puVar29 + -0x18)))" (binary_expression "Stringpool_template<char" identifier < identifier) > (ERROR "::" : :) (call_expression "get_offset\n                               (sympool,(char *)(local_b0 + *(uint *)(puVar29 + -0x18)))" identifier (argument_list "(sympool,(char *)(local_b0 + *(uint *)(puVar29 + -0x18)))" ( identifier , (cast_expression "(char *)(local_b0 + *(uint *)(puVar29 + -0x18))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_b0 + *(uint *)(puVar29 + -0x18))" ( (binary_expression "local_b0 + *(uint *)(puVar29 + -0x18)" identifier + (pointer_expression "*(uint *)(puVar29 + -0x18)" * (cast_expression "(uint *)(puVar29 + -0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x18)" ( (binary_expression "puVar29 + -0x18" identifier + number_literal) ))))) ))) ))))) ;) (expression_statement "*(int *)puVar31 = (int)sVar15;" (assignment_expression "*(int *)puVar31 = (int)sVar15" (pointer_expression "*(int *)puVar31" * (cast_expression "(int *)puVar31" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(int)sVar15" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if ((char)*(byte *)((long)puVar22 + 0xb) < '\0') {\n              p_Var16 = *(_Hash_node_base **)(puVar22 + 4);\n            }\n            else {\n              if ((*(byte *)((long)puVar22 + 0xb) & 8) == 0) goto LAB_001a377c;\n              pMVar4 = *(Merged_symbol_value<64> **)(puVar22 + 4);\n              p_Var16 = (_Hash_node_base *)pMVar4->input_value_;\n              uVar20 = (pMVar4->output_addresses_)._M_h._M_bucket_count;\n              uVar18 = (ulong)p_Var16 % uVar20;\n              p_Var28 = (pMVar4->output_addresses_)._M_h._M_buckets[uVar18];\n              if (p_Var28 != (__bucket_type)0x0) {\n                p_Var23 = p_Var28->_M_nxt[1]._M_nxt;\n                p_Var5 = p_Var28->_M_nxt;\n                while (p_Var27 = p_Var5, p_Var16 != p_Var23) {\n                  p_Var5 = p_Var27->_M_nxt;\n                  if ((p_Var5 == (_Hash_node_base *)0x0) ||\n                     (p_Var23 = p_Var5[1]._M_nxt, p_Var28 = p_Var27,\n                     uVar18 != (ulong)p_Var23 % uVar20)) goto LAB_001a3660;\n                }\n                if (p_Var28->_M_nxt != (_Hash_node_base *)0x0) {\n                  p_Var16 = p_Var28->_M_nxt[2]._M_nxt;\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              p_Var16 = (_Hash_node_base *)\n                        Merged_symbol_value<64>::value_from_output_section\n                                  (pMVar4,(Relobj *)this,puVar22[2] & 0x7ffffff,(Elf_Addr)p_Var16);\n            }" if (parenthesized_expression "((char)*(byte *)((long)puVar22 + 0xb) < '\0')" ( (binary_expression "(char)*(byte *)((long)puVar22 + 0xb) < '\0'" (cast_expression "(char)*(byte *)((long)puVar22 + 0xb)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)((long)puVar22 + 0xb)" * (cast_expression "(byte *)((long)puVar22 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar22 + 0xb)" ( (binary_expression "(long)puVar22 + 0xb" (cast_expression "(long)puVar22" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              p_Var16 = *(_Hash_node_base **)(puVar22 + 4);\n            }" { (expression_statement "p_Var16 = *(_Hash_node_base **)(puVar22 + 4);" (assignment_expression "p_Var16 = *(_Hash_node_base **)(puVar22 + 4)" identifier = (pointer_expression "*(_Hash_node_base **)(puVar22 + 4)" * (cast_expression "(_Hash_node_base **)(puVar22 + 4)" ( (type_descriptor "_Hash_node_base **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + 4)" ( (binary_expression "puVar22 + 4" identifier + number_literal) ))))) ;) }) (else_clause "else {\n              if ((*(byte *)((long)puVar22 + 0xb) & 8) == 0) goto LAB_001a377c;\n              pMVar4 = *(Merged_symbol_value<64> **)(puVar22 + 4);\n              p_Var16 = (_Hash_node_base *)pMVar4->input_value_;\n              uVar20 = (pMVar4->output_addresses_)._M_h._M_bucket_count;\n              uVar18 = (ulong)p_Var16 % uVar20;\n              p_Var28 = (pMVar4->output_addresses_)._M_h._M_buckets[uVar18];\n              if (p_Var28 != (__bucket_type)0x0) {\n                p_Var23 = p_Var28->_M_nxt[1]._M_nxt;\n                p_Var5 = p_Var28->_M_nxt;\n                while (p_Var27 = p_Var5, p_Var16 != p_Var23) {\n                  p_Var5 = p_Var27->_M_nxt;\n                  if ((p_Var5 == (_Hash_node_base *)0x0) ||\n                     (p_Var23 = p_Var5[1]._M_nxt, p_Var28 = p_Var27,\n                     uVar18 != (ulong)p_Var23 % uVar20)) goto LAB_001a3660;\n                }\n                if (p_Var28->_M_nxt != (_Hash_node_base *)0x0) {\n                  p_Var16 = p_Var28->_M_nxt[2]._M_nxt;\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              p_Var16 = (_Hash_node_base *)\n                        Merged_symbol_value<64>::value_from_output_section\n                                  (pMVar4,(Relobj *)this,puVar22[2] & 0x7ffffff,(Elf_Addr)p_Var16);\n            }" else (compound_statement "{\n              if ((*(byte *)((long)puVar22 + 0xb) & 8) == 0) goto LAB_001a377c;\n              pMVar4 = *(Merged_symbol_value<64> **)(puVar22 + 4);\n              p_Var16 = (_Hash_node_base *)pMVar4->input_value_;\n              uVar20 = (pMVar4->output_addresses_)._M_h._M_bucket_count;\n              uVar18 = (ulong)p_Var16 % uVar20;\n              p_Var28 = (pMVar4->output_addresses_)._M_h._M_buckets[uVar18];\n              if (p_Var28 != (__bucket_type)0x0) {\n                p_Var23 = p_Var28->_M_nxt[1]._M_nxt;\n                p_Var5 = p_Var28->_M_nxt;\n                while (p_Var27 = p_Var5, p_Var16 != p_Var23) {\n                  p_Var5 = p_Var27->_M_nxt;\n                  if ((p_Var5 == (_Hash_node_base *)0x0) ||\n                     (p_Var23 = p_Var5[1]._M_nxt, p_Var28 = p_Var27,\n                     uVar18 != (ulong)p_Var23 % uVar20)) goto LAB_001a3660;\n                }\n                if (p_Var28->_M_nxt != (_Hash_node_base *)0x0) {\n                  p_Var16 = p_Var28->_M_nxt[2]._M_nxt;\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              p_Var16 = (_Hash_node_base *)\n                        Merged_symbol_value<64>::value_from_output_section\n                                  (pMVar4,(Relobj *)this,puVar22[2] & 0x7ffffff,(Elf_Addr)p_Var16);\n            }" { (if_statement "if ((*(byte *)((long)puVar22 + 0xb) & 8) == 0) goto LAB_001a377c;" if (parenthesized_expression "((*(byte *)((long)puVar22 + 0xb) & 8) == 0)" ( (binary_expression "(*(byte *)((long)puVar22 + 0xb) & 8) == 0" (parenthesized_expression "(*(byte *)((long)puVar22 + 0xb) & 8)" ( (binary_expression "*(byte *)((long)puVar22 + 0xb) & 8" (pointer_expression "*(byte *)((long)puVar22 + 0xb)" * (cast_expression "(byte *)((long)puVar22 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar22 + 0xb)" ( (binary_expression "(long)puVar22 + 0xb" (cast_expression "(long)puVar22" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_001a377c;" goto statement_identifier ;)) (expression_statement "pMVar4 = *(Merged_symbol_value<64> **)(puVar22 + 4);" (assignment_expression "pMVar4 = *(Merged_symbol_value<64> **)(puVar22 + 4)" identifier = (pointer_expression "*(Merged_symbol_value<64> **)(puVar22 + 4)" * (call_expression "(Merged_symbol_value<64> **)(puVar22 + 4)" (parenthesized_expression "(Merged_symbol_value<64> **)" ( (binary_expression "Merged_symbol_value<64> **" (binary_expression "Merged_symbol_value<64" identifier < number_literal) > (pointer_expression "**" * (pointer_expression "*" * identifier))) )) (argument_list "(puVar22 + 4)" ( (binary_expression "puVar22 + 4" identifier + number_literal) ))))) ;) (expression_statement "p_Var16 = (_Hash_node_base *)pMVar4->input_value_;" (assignment_expression "p_Var16 = (_Hash_node_base *)pMVar4->input_value_" identifier = (cast_expression "(_Hash_node_base *)pMVar4->input_value_" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pMVar4->input_value_" identifier -> field_identifier))) ;) (expression_statement "uVar20 = (pMVar4->output_addresses_)._M_h._M_bucket_count;" (assignment_expression "uVar20 = (pMVar4->output_addresses_)._M_h._M_bucket_count" identifier = (field_expression "(pMVar4->output_addresses_)._M_h._M_bucket_count" (field_expression "(pMVar4->output_addresses_)._M_h" (parenthesized_expression "(pMVar4->output_addresses_)" ( (field_expression "pMVar4->output_addresses_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "uVar18 = (ulong)p_Var16 % uVar20;" (assignment_expression "uVar18 = (ulong)p_Var16 % uVar20" identifier = (binary_expression "(ulong)p_Var16 % uVar20" (cast_expression "(ulong)p_Var16" ( (type_descriptor "ulong" type_identifier) ) identifier) % identifier)) ;) (expression_statement "p_Var28 = (pMVar4->output_addresses_)._M_h._M_buckets[uVar18];" (assignment_expression "p_Var28 = (pMVar4->output_addresses_)._M_h._M_buckets[uVar18]" identifier = (subscript_expression "(pMVar4->output_addresses_)._M_h._M_buckets[uVar18]" (field_expression "(pMVar4->output_addresses_)._M_h._M_buckets" (field_expression "(pMVar4->output_addresses_)._M_h" (parenthesized_expression "(pMVar4->output_addresses_)" ( (field_expression "pMVar4->output_addresses_" identifier -> field_identifier) )) . field_identifier) . field_identifier) [ identifier ])) ;) (if_statement "if (p_Var28 != (__bucket_type)0x0) {\n                p_Var23 = p_Var28->_M_nxt[1]._M_nxt;\n                p_Var5 = p_Var28->_M_nxt;\n                while (p_Var27 = p_Var5, p_Var16 != p_Var23) {\n                  p_Var5 = p_Var27->_M_nxt;\n                  if ((p_Var5 == (_Hash_node_base *)0x0) ||\n                     (p_Var23 = p_Var5[1]._M_nxt, p_Var28 = p_Var27,\n                     uVar18 != (ulong)p_Var23 % uVar20)) goto LAB_001a3660;\n                }\n                if (p_Var28->_M_nxt != (_Hash_node_base *)0x0) {\n                  p_Var16 = p_Var28->_M_nxt[2]._M_nxt;\n                  goto LAB_001a33ac;\n                }\n              }" if (parenthesized_expression "(p_Var28 != (__bucket_type)0x0)" ( (binary_expression "p_Var28 != (__bucket_type)0x0" identifier != (cast_expression "(__bucket_type)0x0" ( (type_descriptor "__bucket_type" type_identifier) ) number_literal)) )) (compound_statement "{\n                p_Var23 = p_Var28->_M_nxt[1]._M_nxt;\n                p_Var5 = p_Var28->_M_nxt;\n                while (p_Var27 = p_Var5, p_Var16 != p_Var23) {\n                  p_Var5 = p_Var27->_M_nxt;\n                  if ((p_Var5 == (_Hash_node_base *)0x0) ||\n                     (p_Var23 = p_Var5[1]._M_nxt, p_Var28 = p_Var27,\n                     uVar18 != (ulong)p_Var23 % uVar20)) goto LAB_001a3660;\n                }\n                if (p_Var28->_M_nxt != (_Hash_node_base *)0x0) {\n                  p_Var16 = p_Var28->_M_nxt[2]._M_nxt;\n                  goto LAB_001a33ac;\n                }\n              }" { (expression_statement "p_Var23 = p_Var28->_M_nxt[1]._M_nxt;" (assignment_expression "p_Var23 = p_Var28->_M_nxt[1]._M_nxt" identifier = (field_expression "p_Var28->_M_nxt[1]._M_nxt" (subscript_expression "p_Var28->_M_nxt[1]" (field_expression "p_Var28->_M_nxt" identifier -> field_identifier) [ number_literal ]) . field_identifier)) ;) (expression_statement "p_Var5 = p_Var28->_M_nxt;" (assignment_expression "p_Var5 = p_Var28->_M_nxt" identifier = (field_expression "p_Var28->_M_nxt" identifier -> field_identifier)) ;) (while_statement "while (p_Var27 = p_Var5, p_Var16 != p_Var23) {\n                  p_Var5 = p_Var27->_M_nxt;\n                  if ((p_Var5 == (_Hash_node_base *)0x0) ||\n                     (p_Var23 = p_Var5[1]._M_nxt, p_Var28 = p_Var27,\n                     uVar18 != (ulong)p_Var23 % uVar20)) goto LAB_001a3660;\n                }" while (parenthesized_expression "(p_Var27 = p_Var5, p_Var16 != p_Var23)" ( (comma_expression "p_Var27 = p_Var5, p_Var16 != p_Var23" (assignment_expression "p_Var27 = p_Var5" identifier = identifier) , (binary_expression "p_Var16 != p_Var23" identifier != identifier)) )) (compound_statement "{\n                  p_Var5 = p_Var27->_M_nxt;\n                  if ((p_Var5 == (_Hash_node_base *)0x0) ||\n                     (p_Var23 = p_Var5[1]._M_nxt, p_Var28 = p_Var27,\n                     uVar18 != (ulong)p_Var23 % uVar20)) goto LAB_001a3660;\n                }" { (expression_statement "p_Var5 = p_Var27->_M_nxt;" (assignment_expression "p_Var5 = p_Var27->_M_nxt" identifier = (field_expression "p_Var27->_M_nxt" identifier -> field_identifier)) ;) (if_statement "if ((p_Var5 == (_Hash_node_base *)0x0) ||\n                     (p_Var23 = p_Var5[1]._M_nxt, p_Var28 = p_Var27,\n                     uVar18 != (ulong)p_Var23 % uVar20)) goto LAB_001a3660;" if (parenthesized_expression "((p_Var5 == (_Hash_node_base *)0x0) ||\n                     (p_Var23 = p_Var5[1]._M_nxt, p_Var28 = p_Var27,\n                     uVar18 != (ulong)p_Var23 % uVar20))" ( (binary_expression "(p_Var5 == (_Hash_node_base *)0x0) ||\n                     (p_Var23 = p_Var5[1]._M_nxt, p_Var28 = p_Var27,\n                     uVar18 != (ulong)p_Var23 % uVar20)" (parenthesized_expression "(p_Var5 == (_Hash_node_base *)0x0)" ( (binary_expression "p_Var5 == (_Hash_node_base *)0x0" identifier == (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(p_Var23 = p_Var5[1]._M_nxt, p_Var28 = p_Var27,\n                     uVar18 != (ulong)p_Var23 % uVar20)" ( (comma_expression "p_Var23 = p_Var5[1]._M_nxt, p_Var28 = p_Var27,\n                     uVar18 != (ulong)p_Var23 % uVar20" (assignment_expression "p_Var23 = p_Var5[1]._M_nxt" identifier = (field_expression "p_Var5[1]._M_nxt" (subscript_expression "p_Var5[1]" identifier [ number_literal ]) . field_identifier)) , (comma_expression "p_Var28 = p_Var27,\n                     uVar18 != (ulong)p_Var23 % uVar20" (assignment_expression "p_Var28 = p_Var27" identifier = identifier) , (binary_expression "uVar18 != (ulong)p_Var23 % uVar20" identifier != (binary_expression "(ulong)p_Var23 % uVar20" (cast_expression "(ulong)p_Var23" ( (type_descriptor "ulong" type_identifier) ) identifier) % identifier)))) ))) )) (goto_statement "goto LAB_001a3660;" goto statement_identifier ;)) })) (if_statement "if (p_Var28->_M_nxt != (_Hash_node_base *)0x0) {\n                  p_Var16 = p_Var28->_M_nxt[2]._M_nxt;\n                  goto LAB_001a33ac;\n                }" if (parenthesized_expression "(p_Var28->_M_nxt != (_Hash_node_base *)0x0)" ( (binary_expression "p_Var28->_M_nxt != (_Hash_node_base *)0x0" (field_expression "p_Var28->_M_nxt" identifier -> field_identifier) != (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  p_Var16 = p_Var28->_M_nxt[2]._M_nxt;\n                  goto LAB_001a33ac;\n                }" { (expression_statement "p_Var16 = p_Var28->_M_nxt[2]._M_nxt;" (assignment_expression "p_Var16 = p_Var28->_M_nxt[2]._M_nxt" identifier = (field_expression "p_Var28->_M_nxt[2]._M_nxt" (subscript_expression "p_Var28->_M_nxt[2]" (field_expression "p_Var28->_M_nxt" identifier -> field_identifier) [ number_literal ]) . field_identifier)) ;) (goto_statement "goto LAB_001a33ac;" goto statement_identifier ;) })) })) (labeled_statement "LAB_001a3660:\n              p_Var16 = (_Hash_node_base *)\n                        Merged_symbol_value<64>::value_from_output_section\n                                  (pMVar4,(Relobj *)this,puVar22[2] & 0x7ffffff,(Elf_Addr)p_Var16);" statement_identifier : (expression_statement "p_Var16 = (_Hash_node_base *)\n                        Merged_symbol_value<64>::value_from_output_section\n                                  (pMVar4,(Relobj *)this,puVar22[2] & 0x7ffffff,(Elf_Addr)p_Var16);" (assignment_expression "p_Var16 = (_Hash_node_base *)\n                        Merged_symbol_value<64>::value_from_output_section\n                                  (pMVar4,(Relobj *)this,puVar22[2] & 0x7ffffff,(Elf_Addr)p_Var16)" identifier = (binary_expression "(_Hash_node_base *)\n                        Merged_symbol_value<64>::value_from_output_section\n                                  (pMVar4,(Relobj *)this,puVar22[2] & 0x7ffffff,(Elf_Addr)p_Var16)" (binary_expression "(_Hash_node_base *)\n                        Merged_symbol_value<64" (cast_expression "(_Hash_node_base *)\n                        Merged_symbol_value" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) < number_literal) > (ERROR "::" : :) (call_expression "value_from_output_section\n                                  (pMVar4,(Relobj *)this,puVar22[2] & 0x7ffffff,(Elf_Addr)p_Var16)" identifier (argument_list "(pMVar4,(Relobj *)this,puVar22[2] & 0x7ffffff,(Elf_Addr)p_Var16)" ( identifier , (cast_expression "(Relobj *)this" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (binary_expression "puVar22[2] & 0x7ffffff" (subscript_expression "puVar22[2]" identifier [ number_literal ]) & number_literal) , (cast_expression "(Elf_Addr)p_Var16" ( (type_descriptor "Elf_Addr" type_identifier) ) identifier) ))))) ;)) }))) (labeled_statement "LAB_001a33ac:\n            *(_Hash_node_base **)(puVar31 + 8) = p_Var16;" statement_identifier : (expression_statement "*(_Hash_node_base **)(puVar31 + 8) = p_Var16;" (assignment_expression "*(_Hash_node_base **)(puVar31 + 8) = p_Var16" (pointer_expression "*(_Hash_node_base **)(puVar31 + 8)" * (cast_expression "(_Hash_node_base **)(puVar31 + 8)" ( (type_descriptor "_Hash_node_base **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar31 + 8)" ( (binary_expression "puVar31 + 8" identifier + number_literal) )))) = identifier) ;)) (expression_statement "puVar30 = puVar31 + 0x18;" (assignment_expression "puVar30 = puVar31 + 0x18" identifier = (binary_expression "puVar31 + 0x18" identifier + number_literal)) ;) (expression_statement "*(undefined8 *)(puVar31 + 0x10) = *(undefined8 *)(puVar29 + -8);" (assignment_expression "*(undefined8 *)(puVar31 + 0x10) = *(undefined8 *)(puVar29 + -8)" (pointer_expression "*(undefined8 *)(puVar31 + 0x10)" * (cast_expression "(undefined8 *)(puVar31 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar31 + 0x10)" ( (binary_expression "puVar31 + 0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined8 *)(puVar29 + -8)" * (cast_expression "(undefined8 *)(puVar29 + -8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -8)" ( (binary_expression "puVar29 + -8" identifier + number_literal) ))))) ;) (expression_statement "puVar31[4] = puVar29[-0x14];" (assignment_expression "puVar31[4] = puVar29[-0x14]" (subscript_expression "puVar31[4]" identifier [ number_literal ]) = (subscript_expression "puVar29[-0x14]" identifier [ number_literal ])) ;) (expression_statement "uVar1 = puVar29[-0x13];" (assignment_expression "uVar1 = puVar29[-0x13]" identifier = (subscript_expression "puVar29[-0x13]" identifier [ number_literal ])) ;) (expression_statement "*(ushort *)(puVar31 + 6) = uVar19;" (assignment_expression "*(ushort *)(puVar31 + 6) = uVar19" (pointer_expression "*(ushort *)(puVar31 + 6)" * (cast_expression "(ushort *)(puVar31 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar31 + 6)" ( (binary_expression "puVar31 + 6" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar31[5] = uVar1;" (assignment_expression "puVar31[5] = uVar1" (subscript_expression "puVar31[5]" identifier [ number_literal ]) = identifier) ;) })) (if_statement "if (puVar22[1] == 0) {\nLAB_001a3764:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/object.h",0x738,"has_output_dynsym_entry");\n          }" if (parenthesized_expression "(puVar22[1] == 0)" ( (binary_expression "puVar22[1] == 0" (subscript_expression "puVar22[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\nLAB_001a3764:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/object.h",0x738,"has_output_dynsym_entry");\n          }" { (labeled_statement "LAB_001a3764:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/object.h",0x738,"has_output_dynsym_entry");" statement_identifier : comment (expression_statement "do_gold_unreachable("../../gold/object.h",0x738,"has_output_dynsym_entry");" (call_expression "do_gold_unreachable("../../gold/object.h",0x738,"has_output_dynsym_entry")" identifier (argument_list "("../../gold/object.h",0x738,"has_output_dynsym_entry")" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""has_output_dynsym_entry"" " string_content ") ))) ;)) })) (expression_statement "puVar31 = puVar30;" (assignment_expression "puVar31 = puVar30" identifier = identifier) ;) (if_statement "if (puVar22[1] != 0xffffffff) {\n            if (local_68 + (long)this_03 <= puVar12) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }\n            if (strtab_size <= *(uint *)(puVar29 + -0x18)) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/object.cc",0xafa,"write_local_symbols");\n            }\n            sVar15 = Stringpool_template<char>::get_offset\n                               (dynpool,(char *)(local_b0 + *(uint *)(puVar29 + -0x18)));\n            *(int *)puVar12 = (int)sVar15;\n            if ((char)*(byte *)((long)puVar22 + 0xb) < '\0') {\n              p_Var16 = *(_Hash_node_base **)(puVar22 + 4);\n            }\n            else {\n              if ((*(byte *)((long)puVar22 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n              }\n              pMVar4 = *(Merged_symbol_value<64> **)(puVar22 + 4);\n              p_Var16 = (_Hash_node_base *)pMVar4->input_value_;\n              uVar20 = (pMVar4->output_addresses_)._M_h._M_bucket_count;\n              uVar18 = (ulong)p_Var16 % uVar20;\n              p_Var28 = (pMVar4->output_addresses_)._M_h._M_buckets[uVar18];\n              if (p_Var28 != (__bucket_type)0x0) {\n                p_Var23 = p_Var28->_M_nxt[1]._M_nxt;\n                p_Var5 = p_Var28->_M_nxt;\n                while (p_Var27 = p_Var5, p_Var23 != p_Var16) {\n                  p_Var5 = p_Var27->_M_nxt;\n                  if ((p_Var5 == (_Hash_node_base *)0x0) ||\n                     (p_Var23 = p_Var5[1]._M_nxt, p_Var28 = p_Var27,\n                     uVar18 != (ulong)p_Var23 % uVar20)) goto LAB_001a3608;\n                }\n                if (p_Var28->_M_nxt != (_Hash_node_base *)0x0) {\n                  p_Var16 = p_Var28->_M_nxt[2]._M_nxt;\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              p_Var16 = (_Hash_node_base *)\n                        Merged_symbol_value<64>::value_from_output_section\n                                  (pMVar4,(Relobj *)this,puVar22[2] & 0x7ffffff,(Elf_Addr)p_Var16);\n            }\nLAB_001a349c:\n            *(_Hash_node_base **)(puVar12 + 8) = p_Var16;\n            *(undefined8 *)(puVar12 + 0x10) = *(undefined8 *)(puVar29 + -8);\n            puVar12[4] = puVar29[-0x14];\n            uVar1 = puVar29[-0x13];\n            *(ushort *)(puVar12 + 6) = uVar19;\n            puVar12[5] = uVar1;\n            puVar12 = puVar12 + 0x18;\n          }" if (parenthesized_expression "(puVar22[1] != 0xffffffff)" ( (binary_expression "puVar22[1] != 0xffffffff" (subscript_expression "puVar22[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n            if (local_68 + (long)this_03 <= puVar12) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }\n            if (strtab_size <= *(uint *)(puVar29 + -0x18)) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/object.cc",0xafa,"write_local_symbols");\n            }\n            sVar15 = Stringpool_template<char>::get_offset\n                               (dynpool,(char *)(local_b0 + *(uint *)(puVar29 + -0x18)));\n            *(int *)puVar12 = (int)sVar15;\n            if ((char)*(byte *)((long)puVar22 + 0xb) < '\0') {\n              p_Var16 = *(_Hash_node_base **)(puVar22 + 4);\n            }\n            else {\n              if ((*(byte *)((long)puVar22 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n              }\n              pMVar4 = *(Merged_symbol_value<64> **)(puVar22 + 4);\n              p_Var16 = (_Hash_node_base *)pMVar4->input_value_;\n              uVar20 = (pMVar4->output_addresses_)._M_h._M_bucket_count;\n              uVar18 = (ulong)p_Var16 % uVar20;\n              p_Var28 = (pMVar4->output_addresses_)._M_h._M_buckets[uVar18];\n              if (p_Var28 != (__bucket_type)0x0) {\n                p_Var23 = p_Var28->_M_nxt[1]._M_nxt;\n                p_Var5 = p_Var28->_M_nxt;\n                while (p_Var27 = p_Var5, p_Var23 != p_Var16) {\n                  p_Var5 = p_Var27->_M_nxt;\n                  if ((p_Var5 == (_Hash_node_base *)0x0) ||\n                     (p_Var23 = p_Var5[1]._M_nxt, p_Var28 = p_Var27,\n                     uVar18 != (ulong)p_Var23 % uVar20)) goto LAB_001a3608;\n                }\n                if (p_Var28->_M_nxt != (_Hash_node_base *)0x0) {\n                  p_Var16 = p_Var28->_M_nxt[2]._M_nxt;\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              p_Var16 = (_Hash_node_base *)\n                        Merged_symbol_value<64>::value_from_output_section\n                                  (pMVar4,(Relobj *)this,puVar22[2] & 0x7ffffff,(Elf_Addr)p_Var16);\n            }\nLAB_001a349c:\n            *(_Hash_node_base **)(puVar12 + 8) = p_Var16;\n            *(undefined8 *)(puVar12 + 0x10) = *(undefined8 *)(puVar29 + -8);\n            puVar12[4] = puVar29[-0x14];\n            uVar1 = puVar29[-0x13];\n            *(ushort *)(puVar12 + 6) = uVar19;\n            puVar12[5] = uVar1;\n            puVar12 = puVar12 + 0x18;\n          }" { (if_statement "if (local_68 + (long)this_03 <= puVar12) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }" if (parenthesized_expression "(local_68 + (long)this_03 <= puVar12)" ( (binary_expression "local_68 + (long)this_03 <= puVar12" (binary_expression "local_68 + (long)this_03" identifier + (cast_expression "(long)this_03" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) <= identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }" { comment (expression_statement "do_gold_unreachable("../../gold/object.cc",0xaf7,"write_local_symbols");" (call_expression "do_gold_unreachable("../../gold/object.cc",0xaf7,"write_local_symbols")" identifier (argument_list "("../../gold/object.cc",0xaf7,"write_local_symbols")" ( (string_literal ""../../gold/object.cc"" " string_content ") , number_literal , (string_literal ""write_local_symbols"" " string_content ") ))) ;) })) (if_statement "if (strtab_size <= *(uint *)(puVar29 + -0x18)) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/object.cc",0xafa,"write_local_symbols");\n            }" if (parenthesized_expression "(strtab_size <= *(uint *)(puVar29 + -0x18))" ( (binary_expression "strtab_size <= *(uint *)(puVar29 + -0x18)" identifier <= (pointer_expression "*(uint *)(puVar29 + -0x18)" * (cast_expression "(uint *)(puVar29 + -0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x18)" ( (binary_expression "puVar29 + -0x18" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/object.cc",0xafa,"write_local_symbols");\n            }" { comment (expression_statement "do_gold_unreachable("../../gold/object.cc",0xafa,"write_local_symbols");" (call_expression "do_gold_unreachable("../../gold/object.cc",0xafa,"write_local_symbols")" identifier (argument_list "("../../gold/object.cc",0xafa,"write_local_symbols")" ( (string_literal ""../../gold/object.cc"" " string_content ") , number_literal , (string_literal ""write_local_symbols"" " string_content ") ))) ;) })) (expression_statement "sVar15 = Stringpool_template<char>::get_offset\n                               (dynpool,(char *)(local_b0 + *(uint *)(puVar29 + -0x18)));" (assignment_expression "sVar15 = Stringpool_template<char>::get_offset\n                               (dynpool,(char *)(local_b0 + *(uint *)(puVar29 + -0x18)))" identifier = (binary_expression "Stringpool_template<char>::get_offset\n                               (dynpool,(char *)(local_b0 + *(uint *)(puVar29 + -0x18)))" (binary_expression "Stringpool_template<char" identifier < identifier) > (ERROR "::" : :) (call_expression "get_offset\n                               (dynpool,(char *)(local_b0 + *(uint *)(puVar29 + -0x18)))" identifier (argument_list "(dynpool,(char *)(local_b0 + *(uint *)(puVar29 + -0x18)))" ( identifier , (cast_expression "(char *)(local_b0 + *(uint *)(puVar29 + -0x18))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_b0 + *(uint *)(puVar29 + -0x18))" ( (binary_expression "local_b0 + *(uint *)(puVar29 + -0x18)" identifier + (pointer_expression "*(uint *)(puVar29 + -0x18)" * (cast_expression "(uint *)(puVar29 + -0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -0x18)" ( (binary_expression "puVar29 + -0x18" identifier + number_literal) ))))) ))) ))))) ;) (expression_statement "*(int *)puVar12 = (int)sVar15;" (assignment_expression "*(int *)puVar12 = (int)sVar15" (pointer_expression "*(int *)puVar12" * (cast_expression "(int *)puVar12" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(int)sVar15" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if ((char)*(byte *)((long)puVar22 + 0xb) < '\0') {\n              p_Var16 = *(_Hash_node_base **)(puVar22 + 4);\n            }\n            else {\n              if ((*(byte *)((long)puVar22 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n              }\n              pMVar4 = *(Merged_symbol_value<64> **)(puVar22 + 4);\n              p_Var16 = (_Hash_node_base *)pMVar4->input_value_;\n              uVar20 = (pMVar4->output_addresses_)._M_h._M_bucket_count;\n              uVar18 = (ulong)p_Var16 % uVar20;\n              p_Var28 = (pMVar4->output_addresses_)._M_h._M_buckets[uVar18];\n              if (p_Var28 != (__bucket_type)0x0) {\n                p_Var23 = p_Var28->_M_nxt[1]._M_nxt;\n                p_Var5 = p_Var28->_M_nxt;\n                while (p_Var27 = p_Var5, p_Var23 != p_Var16) {\n                  p_Var5 = p_Var27->_M_nxt;\n                  if ((p_Var5 == (_Hash_node_base *)0x0) ||\n                     (p_Var23 = p_Var5[1]._M_nxt, p_Var28 = p_Var27,\n                     uVar18 != (ulong)p_Var23 % uVar20)) goto LAB_001a3608;\n                }\n                if (p_Var28->_M_nxt != (_Hash_node_base *)0x0) {\n                  p_Var16 = p_Var28->_M_nxt[2]._M_nxt;\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              p_Var16 = (_Hash_node_base *)\n                        Merged_symbol_value<64>::value_from_output_section\n                                  (pMVar4,(Relobj *)this,puVar22[2] & 0x7ffffff,(Elf_Addr)p_Var16);\n            }" if (parenthesized_expression "((char)*(byte *)((long)puVar22 + 0xb) < '\0')" ( (binary_expression "(char)*(byte *)((long)puVar22 + 0xb) < '\0'" (cast_expression "(char)*(byte *)((long)puVar22 + 0xb)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)((long)puVar22 + 0xb)" * (cast_expression "(byte *)((long)puVar22 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar22 + 0xb)" ( (binary_expression "(long)puVar22 + 0xb" (cast_expression "(long)puVar22" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              p_Var16 = *(_Hash_node_base **)(puVar22 + 4);\n            }" { (expression_statement "p_Var16 = *(_Hash_node_base **)(puVar22 + 4);" (assignment_expression "p_Var16 = *(_Hash_node_base **)(puVar22 + 4)" identifier = (pointer_expression "*(_Hash_node_base **)(puVar22 + 4)" * (cast_expression "(_Hash_node_base **)(puVar22 + 4)" ( (type_descriptor "_Hash_node_base **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + 4)" ( (binary_expression "puVar22 + 4" identifier + number_literal) ))))) ;) }) (else_clause "else {\n              if ((*(byte *)((long)puVar22 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n              }\n              pMVar4 = *(Merged_symbol_value<64> **)(puVar22 + 4);\n              p_Var16 = (_Hash_node_base *)pMVar4->input_value_;\n              uVar20 = (pMVar4->output_addresses_)._M_h._M_bucket_count;\n              uVar18 = (ulong)p_Var16 % uVar20;\n              p_Var28 = (pMVar4->output_addresses_)._M_h._M_buckets[uVar18];\n              if (p_Var28 != (__bucket_type)0x0) {\n                p_Var23 = p_Var28->_M_nxt[1]._M_nxt;\n                p_Var5 = p_Var28->_M_nxt;\n                while (p_Var27 = p_Var5, p_Var23 != p_Var16) {\n                  p_Var5 = p_Var27->_M_nxt;\n                  if ((p_Var5 == (_Hash_node_base *)0x0) ||\n                     (p_Var23 = p_Var5[1]._M_nxt, p_Var28 = p_Var27,\n                     uVar18 != (ulong)p_Var23 % uVar20)) goto LAB_001a3608;\n                }\n                if (p_Var28->_M_nxt != (_Hash_node_base *)0x0) {\n                  p_Var16 = p_Var28->_M_nxt[2]._M_nxt;\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              p_Var16 = (_Hash_node_base *)\n                        Merged_symbol_value<64>::value_from_output_section\n                                  (pMVar4,(Relobj *)this,puVar22[2] & 0x7ffffff,(Elf_Addr)p_Var16);\n            }" else (compound_statement "{\n              if ((*(byte *)((long)puVar22 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n              }\n              pMVar4 = *(Merged_symbol_value<64> **)(puVar22 + 4);\n              p_Var16 = (_Hash_node_base *)pMVar4->input_value_;\n              uVar20 = (pMVar4->output_addresses_)._M_h._M_bucket_count;\n              uVar18 = (ulong)p_Var16 % uVar20;\n              p_Var28 = (pMVar4->output_addresses_)._M_h._M_buckets[uVar18];\n              if (p_Var28 != (__bucket_type)0x0) {\n                p_Var23 = p_Var28->_M_nxt[1]._M_nxt;\n                p_Var5 = p_Var28->_M_nxt;\n                while (p_Var27 = p_Var5, p_Var23 != p_Var16) {\n                  p_Var5 = p_Var27->_M_nxt;\n                  if ((p_Var5 == (_Hash_node_base *)0x0) ||\n                     (p_Var23 = p_Var5[1]._M_nxt, p_Var28 = p_Var27,\n                     uVar18 != (ulong)p_Var23 % uVar20)) goto LAB_001a3608;\n                }\n                if (p_Var28->_M_nxt != (_Hash_node_base *)0x0) {\n                  p_Var16 = p_Var28->_M_nxt[2]._M_nxt;\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              p_Var16 = (_Hash_node_base *)\n                        Merged_symbol_value<64>::value_from_output_section\n                                  (pMVar4,(Relobj *)this,puVar22[2] & 0x7ffffff,(Elf_Addr)p_Var16);\n            }" { (if_statement "if ((*(byte *)((long)puVar22 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n              }" if (parenthesized_expression "((*(byte *)((long)puVar22 + 0xb) & 8) == 0)" ( (binary_expression "(*(byte *)((long)puVar22 + 0xb) & 8) == 0" (parenthesized_expression "(*(byte *)((long)puVar22 + 0xb) & 8)" ( (binary_expression "*(byte *)((long)puVar22 + 0xb) & 8" (pointer_expression "*(byte *)((long)puVar22 + 0xb)" * (cast_expression "(byte *)((long)puVar22 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar22 + 0xb)" ( (binary_expression "(long)puVar22 + 0xb" (cast_expression "(long)puVar22" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_001a377c:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n              }" { (labeled_statement "LAB_001a377c:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/object.h",0x6ab,"value");" statement_identifier : comment (expression_statement "do_gold_unreachable("../../gold/object.h",0x6ab,"value");" (call_expression "do_gold_unreachable("../../gold/object.h",0x6ab,"value")" identifier (argument_list "("../../gold/object.h",0x6ab,"value")" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""value"" " string_content ") ))) ;)) })) (expression_statement "pMVar4 = *(Merged_symbol_value<64> **)(puVar22 + 4);" (assignment_expression "pMVar4 = *(Merged_symbol_value<64> **)(puVar22 + 4)" identifier = (pointer_expression "*(Merged_symbol_value<64> **)(puVar22 + 4)" * (call_expression "(Merged_symbol_value<64> **)(puVar22 + 4)" (parenthesized_expression "(Merged_symbol_value<64> **)" ( (binary_expression "Merged_symbol_value<64> **" (binary_expression "Merged_symbol_value<64" identifier < number_literal) > (pointer_expression "**" * (pointer_expression "*" * identifier))) )) (argument_list "(puVar22 + 4)" ( (binary_expression "puVar22 + 4" identifier + number_literal) ))))) ;) (expression_statement "p_Var16 = (_Hash_node_base *)pMVar4->input_value_;" (assignment_expression "p_Var16 = (_Hash_node_base *)pMVar4->input_value_" identifier = (cast_expression "(_Hash_node_base *)pMVar4->input_value_" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pMVar4->input_value_" identifier -> field_identifier))) ;) (expression_statement "uVar20 = (pMVar4->output_addresses_)._M_h._M_bucket_count;" (assignment_expression "uVar20 = (pMVar4->output_addresses_)._M_h._M_bucket_count" identifier = (field_expression "(pMVar4->output_addresses_)._M_h._M_bucket_count" (field_expression "(pMVar4->output_addresses_)._M_h" (parenthesized_expression "(pMVar4->output_addresses_)" ( (field_expression "pMVar4->output_addresses_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "uVar18 = (ulong)p_Var16 % uVar20;" (assignment_expression "uVar18 = (ulong)p_Var16 % uVar20" identifier = (binary_expression "(ulong)p_Var16 % uVar20" (cast_expression "(ulong)p_Var16" ( (type_descriptor "ulong" type_identifier) ) identifier) % identifier)) ;) (expression_statement "p_Var28 = (pMVar4->output_addresses_)._M_h._M_buckets[uVar18];" (assignment_expression "p_Var28 = (pMVar4->output_addresses_)._M_h._M_buckets[uVar18]" identifier = (subscript_expression "(pMVar4->output_addresses_)._M_h._M_buckets[uVar18]" (field_expression "(pMVar4->output_addresses_)._M_h._M_buckets" (field_expression "(pMVar4->output_addresses_)._M_h" (parenthesized_expression "(pMVar4->output_addresses_)" ( (field_expression "pMVar4->output_addresses_" identifier -> field_identifier) )) . field_identifier) . field_identifier) [ identifier ])) ;) (if_statement "if (p_Var28 != (__bucket_type)0x0) {\n                p_Var23 = p_Var28->_M_nxt[1]._M_nxt;\n                p_Var5 = p_Var28->_M_nxt;\n                while (p_Var27 = p_Var5, p_Var23 != p_Var16) {\n                  p_Var5 = p_Var27->_M_nxt;\n                  if ((p_Var5 == (_Hash_node_base *)0x0) ||\n                     (p_Var23 = p_Var5[1]._M_nxt, p_Var28 = p_Var27,\n                     uVar18 != (ulong)p_Var23 % uVar20)) goto LAB_001a3608;\n                }\n                if (p_Var28->_M_nxt != (_Hash_node_base *)0x0) {\n                  p_Var16 = p_Var28->_M_nxt[2]._M_nxt;\n                  goto LAB_001a349c;\n                }\n              }" if (parenthesized_expression "(p_Var28 != (__bucket_type)0x0)" ( (binary_expression "p_Var28 != (__bucket_type)0x0" identifier != (cast_expression "(__bucket_type)0x0" ( (type_descriptor "__bucket_type" type_identifier) ) number_literal)) )) (compound_statement "{\n                p_Var23 = p_Var28->_M_nxt[1]._M_nxt;\n                p_Var5 = p_Var28->_M_nxt;\n                while (p_Var27 = p_Var5, p_Var23 != p_Var16) {\n                  p_Var5 = p_Var27->_M_nxt;\n                  if ((p_Var5 == (_Hash_node_base *)0x0) ||\n                     (p_Var23 = p_Var5[1]._M_nxt, p_Var28 = p_Var27,\n                     uVar18 != (ulong)p_Var23 % uVar20)) goto LAB_001a3608;\n                }\n                if (p_Var28->_M_nxt != (_Hash_node_base *)0x0) {\n                  p_Var16 = p_Var28->_M_nxt[2]._M_nxt;\n                  goto LAB_001a349c;\n                }\n              }" { (expression_statement "p_Var23 = p_Var28->_M_nxt[1]._M_nxt;" (assignment_expression "p_Var23 = p_Var28->_M_nxt[1]._M_nxt" identifier = (field_expression "p_Var28->_M_nxt[1]._M_nxt" (subscript_expression "p_Var28->_M_nxt[1]" (field_expression "p_Var28->_M_nxt" identifier -> field_identifier) [ number_literal ]) . field_identifier)) ;) (expression_statement "p_Var5 = p_Var28->_M_nxt;" (assignment_expression "p_Var5 = p_Var28->_M_nxt" identifier = (field_expression "p_Var28->_M_nxt" identifier -> field_identifier)) ;) (while_statement "while (p_Var27 = p_Var5, p_Var23 != p_Var16) {\n                  p_Var5 = p_Var27->_M_nxt;\n                  if ((p_Var5 == (_Hash_node_base *)0x0) ||\n                     (p_Var23 = p_Var5[1]._M_nxt, p_Var28 = p_Var27,\n                     uVar18 != (ulong)p_Var23 % uVar20)) goto LAB_001a3608;\n                }" while (parenthesized_expression "(p_Var27 = p_Var5, p_Var23 != p_Var16)" ( (comma_expression "p_Var27 = p_Var5, p_Var23 != p_Var16" (assignment_expression "p_Var27 = p_Var5" identifier = identifier) , (binary_expression "p_Var23 != p_Var16" identifier != identifier)) )) (compound_statement "{\n                  p_Var5 = p_Var27->_M_nxt;\n                  if ((p_Var5 == (_Hash_node_base *)0x0) ||\n                     (p_Var23 = p_Var5[1]._M_nxt, p_Var28 = p_Var27,\n                     uVar18 != (ulong)p_Var23 % uVar20)) goto LAB_001a3608;\n                }" { (expression_statement "p_Var5 = p_Var27->_M_nxt;" (assignment_expression "p_Var5 = p_Var27->_M_nxt" identifier = (field_expression "p_Var27->_M_nxt" identifier -> field_identifier)) ;) (if_statement "if ((p_Var5 == (_Hash_node_base *)0x0) ||\n                     (p_Var23 = p_Var5[1]._M_nxt, p_Var28 = p_Var27,\n                     uVar18 != (ulong)p_Var23 % uVar20)) goto LAB_001a3608;" if (parenthesized_expression "((p_Var5 == (_Hash_node_base *)0x0) ||\n                     (p_Var23 = p_Var5[1]._M_nxt, p_Var28 = p_Var27,\n                     uVar18 != (ulong)p_Var23 % uVar20))" ( (binary_expression "(p_Var5 == (_Hash_node_base *)0x0) ||\n                     (p_Var23 = p_Var5[1]._M_nxt, p_Var28 = p_Var27,\n                     uVar18 != (ulong)p_Var23 % uVar20)" (parenthesized_expression "(p_Var5 == (_Hash_node_base *)0x0)" ( (binary_expression "p_Var5 == (_Hash_node_base *)0x0" identifier == (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(p_Var23 = p_Var5[1]._M_nxt, p_Var28 = p_Var27,\n                     uVar18 != (ulong)p_Var23 % uVar20)" ( (comma_expression "p_Var23 = p_Var5[1]._M_nxt, p_Var28 = p_Var27,\n                     uVar18 != (ulong)p_Var23 % uVar20" (assignment_expression "p_Var23 = p_Var5[1]._M_nxt" identifier = (field_expression "p_Var5[1]._M_nxt" (subscript_expression "p_Var5[1]" identifier [ number_literal ]) . field_identifier)) , (comma_expression "p_Var28 = p_Var27,\n                     uVar18 != (ulong)p_Var23 % uVar20" (assignment_expression "p_Var28 = p_Var27" identifier = identifier) , (binary_expression "uVar18 != (ulong)p_Var23 % uVar20" identifier != (binary_expression "(ulong)p_Var23 % uVar20" (cast_expression "(ulong)p_Var23" ( (type_descriptor "ulong" type_identifier) ) identifier) % identifier)))) ))) )) (goto_statement "goto LAB_001a3608;" goto statement_identifier ;)) })) (if_statement "if (p_Var28->_M_nxt != (_Hash_node_base *)0x0) {\n                  p_Var16 = p_Var28->_M_nxt[2]._M_nxt;\n                  goto LAB_001a349c;\n                }" if (parenthesized_expression "(p_Var28->_M_nxt != (_Hash_node_base *)0x0)" ( (binary_expression "p_Var28->_M_nxt != (_Hash_node_base *)0x0" (field_expression "p_Var28->_M_nxt" identifier -> field_identifier) != (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  p_Var16 = p_Var28->_M_nxt[2]._M_nxt;\n                  goto LAB_001a349c;\n                }" { (expression_statement "p_Var16 = p_Var28->_M_nxt[2]._M_nxt;" (assignment_expression "p_Var16 = p_Var28->_M_nxt[2]._M_nxt" identifier = (field_expression "p_Var28->_M_nxt[2]._M_nxt" (subscript_expression "p_Var28->_M_nxt[2]" (field_expression "p_Var28->_M_nxt" identifier -> field_identifier) [ number_literal ]) . field_identifier)) ;) (goto_statement "goto LAB_001a349c;" goto statement_identifier ;) })) })) (labeled_statement "LAB_001a3608:\n              p_Var16 = (_Hash_node_base *)\n                        Merged_symbol_value<64>::value_from_output_section\n                                  (pMVar4,(Relobj *)this,puVar22[2] & 0x7ffffff,(Elf_Addr)p_Var16);" statement_identifier : (expression_statement "p_Var16 = (_Hash_node_base *)\n                        Merged_symbol_value<64>::value_from_output_section\n                                  (pMVar4,(Relobj *)this,puVar22[2] & 0x7ffffff,(Elf_Addr)p_Var16);" (assignment_expression "p_Var16 = (_Hash_node_base *)\n                        Merged_symbol_value<64>::value_from_output_section\n                                  (pMVar4,(Relobj *)this,puVar22[2] & 0x7ffffff,(Elf_Addr)p_Var16)" identifier = (binary_expression "(_Hash_node_base *)\n                        Merged_symbol_value<64>::value_from_output_section\n                                  (pMVar4,(Relobj *)this,puVar22[2] & 0x7ffffff,(Elf_Addr)p_Var16)" (binary_expression "(_Hash_node_base *)\n                        Merged_symbol_value<64" (cast_expression "(_Hash_node_base *)\n                        Merged_symbol_value" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) < number_literal) > (ERROR "::" : :) (call_expression "value_from_output_section\n                                  (pMVar4,(Relobj *)this,puVar22[2] & 0x7ffffff,(Elf_Addr)p_Var16)" identifier (argument_list "(pMVar4,(Relobj *)this,puVar22[2] & 0x7ffffff,(Elf_Addr)p_Var16)" ( identifier , (cast_expression "(Relobj *)this" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (binary_expression "puVar22[2] & 0x7ffffff" (subscript_expression "puVar22[2]" identifier [ number_literal ]) & number_literal) , (cast_expression "(Elf_Addr)p_Var16" ( (type_descriptor "Elf_Addr" type_identifier) ) identifier) ))))) ;)) }))) (labeled_statement "LAB_001a349c:\n            *(_Hash_node_base **)(puVar12 + 8) = p_Var16;" statement_identifier : (expression_statement "*(_Hash_node_base **)(puVar12 + 8) = p_Var16;" (assignment_expression "*(_Hash_node_base **)(puVar12 + 8) = p_Var16" (pointer_expression "*(_Hash_node_base **)(puVar12 + 8)" * (cast_expression "(_Hash_node_base **)(puVar12 + 8)" ( (type_descriptor "_Hash_node_base **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 8)" ( (binary_expression "puVar12 + 8" identifier + number_literal) )))) = identifier) ;)) (expression_statement "*(undefined8 *)(puVar12 + 0x10) = *(undefined8 *)(puVar29 + -8);" (assignment_expression "*(undefined8 *)(puVar12 + 0x10) = *(undefined8 *)(puVar29 + -8)" (pointer_expression "*(undefined8 *)(puVar12 + 0x10)" * (cast_expression "(undefined8 *)(puVar12 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x10)" ( (binary_expression "puVar12 + 0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined8 *)(puVar29 + -8)" * (cast_expression "(undefined8 *)(puVar29 + -8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + -8)" ( (binary_expression "puVar29 + -8" identifier + number_literal) ))))) ;) (expression_statement "puVar12[4] = puVar29[-0x14];" (assignment_expression "puVar12[4] = puVar29[-0x14]" (subscript_expression "puVar12[4]" identifier [ number_literal ]) = (subscript_expression "puVar29[-0x14]" identifier [ number_literal ])) ;) (expression_statement "uVar1 = puVar29[-0x13];" (assignment_expression "uVar1 = puVar29[-0x13]" identifier = (subscript_expression "puVar29[-0x13]" identifier [ number_literal ])) ;) (expression_statement "*(ushort *)(puVar12 + 6) = uVar19;" (assignment_expression "*(ushort *)(puVar12 + 6) = uVar19" (pointer_expression "*(ushort *)(puVar12 + 6)" * (cast_expression "(ushort *)(puVar12 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 6)" ( (binary_expression "puVar12 + 6" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar12[5] = uVar1;" (assignment_expression "puVar12[5] = uVar1" (subscript_expression "puVar12[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12 = puVar12 + 0x18;" (assignment_expression "puVar12 = puVar12 + 0x18" identifier = (binary_expression "puVar12 + 0x18" identifier + number_literal)) ;) })) }))) (expression_statement "local_b8 = local_b8 + 1;" (assignment_expression "local_b8 = local_b8 + 1" identifier = (binary_expression "local_b8 + 1" identifier + number_literal)) ;) (expression_statement "puVar29 = puVar29 + 0x18;" (assignment_expression "puVar29 = puVar29 + 0x18" identifier = (binary_expression "puVar29 + 0x18" identifier + number_literal)) ;) (if_statement "if (uVar2 == local_b8) goto LAB_001a3680;" if (parenthesized_expression "(uVar2 == local_b8)" ( (binary_expression "uVar2 == local_b8" identifier == identifier) )) (goto_statement "goto LAB_001a3680;" goto statement_identifier ;)) (expression_statement "pSVar21 = (this->local_values_).\n                  super__Vector_base<gold::Symbol_value<64>,_std::allocator<gold::Symbol_value<64>_>_>\n                  ._M_impl._M_start;" (field_expression "pSVar21 = (this->local_values_).\n                  super__Vector_base<gold::Symbol_value<64>,_std::allocator<gold::Symbol_value<64>_>_>\n                  ._M_impl._M_start" (field_expression "pSVar21 = (this->local_values_).\n                  super__Vector_base<gold::Symbol_value<64>,_std::allocator<gold::Symbol_value<64>_>_>\n                  ._M_impl" (binary_expression "pSVar21 = (this->local_values_).\n                  super__Vector_base<gold::Symbol_value<64>,_std::allocator<gold::Symbol_value<64>_>_" (binary_expression "pSVar21 = (this->local_values_).\n                  super__Vector_base<gold::Symbol_value<64>,_std::allocator<gold::Symbol_value<64>_" (binary_expression "pSVar21 = (this->local_values_).\n                  super__Vector_base<gold::Symbol_value<64>,_std::allocator<gold::Symbol_value<64" (binary_expression "pSVar21 = (this->local_values_).\n                  super__Vector_base<gold::Symbol_value<64>,_std::allocator<gold" (binary_expression "pSVar21 = (this->local_values_).\n                  super__Vector_base<gold::Symbol_value<64>,_std" (binary_expression "pSVar21 = (this->local_values_).\n                  super__Vector_base<gold::Symbol_value<64" (assignment_expression "pSVar21 = (this->local_values_).\n                  super__Vector_base<gold" identifier = (binary_expression "(this->local_values_).\n                  super__Vector_base<gold" (field_expression "(this->local_values_).\n                  super__Vector_base" (parenthesized_expression "(this->local_values_)" ( (field_expression "this->local_values_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Symbol_value" : : identifier) < number_literal) > (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol_value" : : identifier) < number_literal) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) }) (else_clause "else {\n    lVar14 = symtab_off + this->local_symbol_offset_;\n    this_03 = pOVar26;\n    if ((-1 < lVar14) &&\n       (size = (Output_file *)((long)&pOVar26->name_ + lVar14), (long)size <= of->file_size_)) {\n      local_70 = of->base_ + lVar14;\n      goto LAB_001a31f6;\n    }\nLAB_001a3859:\n    Output_file::get_output_view(this_03,uVar20,(size_t)size,this_1);\n  }" else (compound_statement "{\n    lVar14 = symtab_off + this->local_symbol_offset_;\n    this_03 = pOVar26;\n    if ((-1 < lVar14) &&\n       (size = (Output_file *)((long)&pOVar26->name_ + lVar14), (long)size <= of->file_size_)) {\n      local_70 = of->base_ + lVar14;\n      goto LAB_001a31f6;\n    }\nLAB_001a3859:\n    Output_file::get_output_view(this_03,uVar20,(size_t)size,this_1);\n  }" { (expression_statement "lVar14 = symtab_off + this->local_symbol_offset_;" (assignment_expression "lVar14 = symtab_off + this->local_symbol_offset_" identifier = (binary_expression "symtab_off + this->local_symbol_offset_" identifier + (field_expression "this->local_symbol_offset_" identifier -> field_identifier))) ;) (expression_statement "this_03 = pOVar26;" (assignment_expression "this_03 = pOVar26" identifier = identifier) ;) (if_statement "if ((-1 < lVar14) &&\n       (size = (Output_file *)((long)&pOVar26->name_ + lVar14), (long)size <= of->file_size_)) {\n      local_70 = of->base_ + lVar14;\n      goto LAB_001a31f6;\n    }" if (parenthesized_expression "((-1 < lVar14) &&\n       (size = (Output_file *)((long)&pOVar26->name_ + lVar14), (long)size <= of->file_size_))" ( (binary_expression "(-1 < lVar14) &&\n       (size = (Output_file *)((long)&pOVar26->name_ + lVar14), (long)size <= of->file_size_)" (parenthesized_expression "(-1 < lVar14)" ( (binary_expression "-1 < lVar14" number_literal < identifier) )) && (parenthesized_expression "(size = (Output_file *)((long)&pOVar26->name_ + lVar14), (long)size <= of->file_size_)" ( (comma_expression "size = (Output_file *)((long)&pOVar26->name_ + lVar14), (long)size <= of->file_size_" (assignment_expression "size = (Output_file *)((long)&pOVar26->name_ + lVar14)" identifier = (cast_expression "(Output_file *)((long)&pOVar26->name_ + lVar14)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&pOVar26->name_ + lVar14)" ( (binary_expression "(long)&pOVar26->name_ + lVar14" (cast_expression "(long)&pOVar26->name_" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&pOVar26->name_" & (field_expression "pOVar26->name_" identifier -> field_identifier))) + identifier) )))) , (binary_expression "(long)size <= of->file_size_" (cast_expression "(long)size" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) <= (field_expression "of->file_size_" identifier -> field_identifier))) ))) )) (compound_statement "{\n      local_70 = of->base_ + lVar14;\n      goto LAB_001a31f6;\n    }" { (expression_statement "local_70 = of->base_ + lVar14;" (assignment_expression "local_70 = of->base_ + lVar14" identifier = (binary_expression "of->base_ + lVar14" (field_expression "of->base_" identifier -> field_identifier) + identifier)) ;) (goto_statement "goto LAB_001a31f6;" goto statement_identifier ;) })) (labeled_statement "LAB_001a3859:\n    Output_file::get_output_view(this_03,uVar20,(size_t)size,this_1);" statement_identifier : (labeled_statement "Output_file::get_output_view(this_03,uVar20,(size_t)size,this_1);" statement_identifier : (ERROR ":" :) (expression_statement "get_output_view(this_03,uVar20,(size_t)size,this_1);" (call_expression "get_output_view(this_03,uVar20,(size_t)size,this_1)" identifier (argument_list "(this_03,uVar20,(size_t)size,this_1)" ( identifier , identifier , (cast_expression "(size_t)size" ( (type_descriptor "size_t" primitive_type) ) identifier) , identifier ))) ;))) }))) comment (expression_statement "do_gold_unreachable("../../gold/object.cc",0xac5,"write_local_symbols");" (call_expression "do_gold_unreachable("../../gold/object.cc",0xac5,"write_local_symbols")" identifier (argument_list "("../../gold/object.cc",0xac5,"write_local_symbols")" ( (string_literal ""../../gold/object.cc"" " string_content ") , number_literal , (string_literal ""write_local_symbols"" " string_content ") ))) ;) (ERROR "}" }))
(translation_unit "void FUN_001a3040(long *param_1,long param_2,undefined8 param_3,undefined8 param_4,long param_5,\n                 long param_6,long param_7)\n\n{\n  undefined1 uVar1;\n  uint uVar2;\n  ulong *puVar3;\n  long *plVar4;\n  int iVar5;\n  undefined4 uVar6;\n  uint uVar7;\n  undefined8 uVar8;\n  long lVar9;\n  long lVar10;\n  bool bVar11;\n  ulong uVar12;\n  ushort uVar13;\n  int *piVar14;\n  ulong uVar15;\n  uint uVar16;\n  uint uVar17;\n  long *plVar19;\n  long *plVar20;\n  long lVar21;\n  undefined4 *puVar22;\n  undefined4 *puVar23;\n  undefined4 *puVar24;\n  undefined1 auVar25 [16];\n  uint local_b8;\n  undefined *local_b0;\n  undefined4 *local_70;\n  undefined4 *local_68;\n  ulong local_48;\n  int local_40;\n  uint local_3c;\n  ulong uVar18;\n  \n  if (*(long *)(PTR_DAT_003be6b0 + 0x10) == 0) {\n                    \n    FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x54f9) != '\0') {\n    if ((int)param_1[0x25] == 0) {\n      return;\n    }\n    *(undefined4 *)((long)param_1 + 0x124) = 0;\n  }\n  if (*(int *)((long)param_1 + 0x11c) == -1) {\n                    \n    FUN_0016cdf0("../../gold/object.cc",0xa97,"write_local_symbols");\n  }\n  if (*(int *)((long)param_1 + 0x11c) == 0) {\n    return;\n  }\n  plVar20 = param_1 + 0x1f;\n  uVar8 = FUN_0015e080(plVar20);\n  if (param_1[5] == 0) {\nLAB_001a3824:\n                    \n    FUN_0019a570();\n  }\n  lVar9 = FUN_0016b970(param_1[5] + 0x28,param_1[6],uVar8,0x40,1,1);\n  if (*(int *)(lVar9 + 4) != 2) {\n                    \n    FUN_0016cdf0("../../gold/object.cc",0xaa2,"write_local_symbols");\n  }\n  uVar2 = *(uint *)(param_1 + 0x24);\n  if (uVar2 != *(uint *)(lVar9 + 0x2c)) {\n                    \n    FUN_0016cdf0("../../gold/object.cc",0xaa4,"write_local_symbols");\n  }\n  if (param_1[5] == 0) goto LAB_001a3824;\n  lVar10 = FUN_0016b970(param_1[5] + 0x28,param_1[6],*(undefined8 *)(lVar9 + 0x18),uVar2 * 0x18,1,0)\n  ;\n  uVar16 = *(uint *)(lVar9 + 0x28);\n  if (0xfeff < uVar16) {\n    FUN_0015d960(plVar20);\n    uVar16 = uVar16 + (int)param_1[0x22];\n  }\n  if (*(code **)(*param_1 + 0x70) == FUN_001a2100) {\n    auVar25 = FUN_001a2060(plVar20,uVar16);\n    local_48 = auVar25._8_8_;\n    local_b0 = &DAT_00313646;\n    if (local_48 != 0) {\n      if (param_1[5] == 0) goto LAB_001a3824;\n      local_b0 = (undefined *)FUN_0016b970(param_1[5] + 0x28,param_1[6],auVar25._0_8_,local_48,1,0);\n    }\n  }\n  else {\n    local_b0 = (undefined *)(**(code **)(*param_1 + 0x70))(param_1,uVar16,&local_48,0);\n  }\n  uVar16 = *(int *)((long)param_1 + 0x124) * 0x18;\n  if (uVar16 == 0) {\n    local_70 = (undefined4 *)0x0;\nLAB_001a31f6:\n    uVar17 = (int)param_1[0x25] * 0x18;\n    uVar18 = (ulong)uVar17;\n    if (uVar17 == 0) {\n      local_68 = (undefined4 *)0x0;\n    }\n    else {\n      lVar9 = param_1[0x2b];\n      if ((lVar9 < 0) || (*(long *)(param_2 + 0x10) < (long)(lVar9 + uVar18))) goto LAB_001a3859;\n      local_68 = (undefined4 *)(lVar9 + *(long *)(param_2 + 0x18));\n    }\n    lVar9 = param_1[0x2c];\n    if ((ulong)uVar2 == (param_1[0x2d] - lVar9 >> 3) * -0x5555555555555555) {\n      puVar22 = local_68;\n      puVar24 = local_70;\n      if (uVar2 < 2) {\nLAB_001a3680:\n        if ((uVar16 != 0) && ((long)puVar24 - (long)local_70 != (ulong)uVar16)) {\n                    \n          FUN_0016cdf0("../../gold/object.cc",0xb0a,"write_local_symbols");\n        }\n        if ((uVar17 != 0) && ((long)puVar22 - (long)local_68 != uVar18)) {\n                    \n          FUN_0016cdf0("../../gold/object.cc",0xb11,"write_local_symbols");\n        }\n        return;\n      }\n      lVar21 = lVar10 + 0x30;\n      local_b8 = 1;\n      do {\n        uVar13 = *(ushort *)(lVar21 + -0x12);\n        uVar12 = (ulong)uVar13;\n        piVar14 = (int *)(lVar9 + (-0x18 - lVar10) + lVar21);\n        if (uVar13 < 0xff00) {\nLAB_001a350a:\n          if ((ulong)(param_1[0xb] - param_1[10] >> 3) <= uVar12) {\n                    \n            FUN_0016cdf0("../../gold/object.cc",0xad5,"write_local_symbols");\n          }\n          plVar20 = *(long **)(param_1[10] + uVar12 * 8);\n          if (plVar20 != (long *)0x0) {\n            if (*(code **)(*plVar20 + 0x58) == FUN_00175f90) {\n              uVar7 = *(uint *)((long)plVar20 + 0x7c);\n              if (uVar7 == 0xffffffff) {\n                    \n                FUN_0016cdf0("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar7 = (**(code **)(*plVar20 + 0x58))();\n            }\n            uVar13 = (ushort)uVar7;\n            iVar5 = *piVar14;\n            bVar11 = iVar5 != 0 && iVar5 != -2;\n            if (0xfeff < uVar7) {\n              if (iVar5 == 0 || iVar5 == -2) goto LAB_001a374c;\n              if (iVar5 != -1) {\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_5 + 0x38,&local_40);\n              }\n              iVar5 = piVar14[1];\n              if (iVar5 == 0) goto LAB_001a3764;\n              if (iVar5 == -1) {\n                iVar5 = *piVar14;\n                uVar13 = 0xffff;\n                bVar11 = iVar5 != 0 && iVar5 != -2;\n              }\n              else {\n                uVar13 = 0xffff;\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_6 + 0x38,&local_40);\n                iVar5 = *piVar14;\n                bVar11 = iVar5 != -2 && iVar5 != 0;\n              }\n            }\n            goto LAB_001a32f9;\n          }\n        }\n        else {\n          if (uVar13 == 0xffff) {\n            lVar9 = param_1[8];\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*param_1 + 0xd8))(param_1);\n              param_1[8] = lVar9;\n            }\n            uVar7 = FUN_0019a820(lVar9,param_1,local_b8);\n            uVar12 = (ulong)uVar7;\n            goto LAB_001a350a;\n          }\n          iVar5 = *piVar14;\n          bVar11 = iVar5 != 0 && iVar5 != -2;\nLAB_001a32f9:\n          if (!bVar11) {\nLAB_001a374c:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }\n          puVar23 = puVar24;\n          if (iVar5 != -1) {\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xae8,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_3,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar24 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) goto LAB_001a377c;\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a33ac:\n            *(undefined8 *)(puVar24 + 2) = uVar8;\n            puVar23 = puVar24 + 6;\n            *(undefined8 *)(puVar24 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar24 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar24 + 6) = uVar13;\n            *(undefined1 *)((long)puVar24 + 5) = uVar1;\n          }\n          if (piVar14[1] == 0) {\nLAB_001a3764:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x738,"has_output_dynsym_entry");\n          }\n          puVar24 = puVar23;\n          if (piVar14[1] != -1) {\n            if ((undefined4 *)((long)local_68 + uVar18) <= puVar22) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xafa,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_4,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar22 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    \n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");\n              }\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a349c:\n            *(undefined8 *)(puVar22 + 2) = uVar8;\n            *(undefined8 *)(puVar22 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar22 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar22 + 6) = uVar13;\n            *(undefined1 *)((long)puVar22 + 5) = uVar1;\n            puVar22 = puVar22 + 6;\n          }\n        }\n        local_b8 = local_b8 + 1;\n        lVar21 = lVar21 + 0x18;\n        if (uVar2 == local_b8) goto LAB_001a3680;\n        lVar9 = param_1[0x2c];\n      } while( true );\n    }\n  }\n  else {\n    param_7 = param_7 + param_1[0x2a];\n    if ((-1 < param_7) && ((long)(param_7 + (ulong)uVar16) <= *(long *)(param_2 + 0x10))) {\n      local_70 = (undefined4 *)(param_7 + *(long *)(param_2 + 0x18));\n      goto LAB_001a31f6;\n    }\nLAB_001a3859:\n    FUN_0019a5b0();\n  }\n                    \n  FUN_0016cdf0("../../gold/object.cc",0xac5,"write_local_symbols");\n}\n\n" (function_definition "void FUN_001a3040(long *param_1,long param_2,undefined8 param_3,undefined8 param_4,long param_5,\n                 long param_6,long param_7)\n\n{\n  undefined1 uVar1;\n  uint uVar2;\n  ulong *puVar3;\n  long *plVar4;\n  int iVar5;\n  undefined4 uVar6;\n  uint uVar7;\n  undefined8 uVar8;\n  long lVar9;\n  long lVar10;\n  bool bVar11;\n  ulong uVar12;\n  ushort uVar13;\n  int *piVar14;\n  ulong uVar15;\n  uint uVar16;\n  uint uVar17;\n  long *plVar19;\n  long *plVar20;\n  long lVar21;\n  undefined4 *puVar22;\n  undefined4 *puVar23;\n  undefined4 *puVar24;\n  undefined1 auVar25 [16];\n  uint local_b8;\n  undefined *local_b0;\n  undefined4 *local_70;\n  undefined4 *local_68;\n  ulong local_48;\n  int local_40;\n  uint local_3c;\n  ulong uVar18;\n  \n  if (*(long *)(PTR_DAT_003be6b0 + 0x10) == 0) {\n                    \n    FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x54f9) != '\0') {\n    if ((int)param_1[0x25] == 0) {\n      return;\n    }\n    *(undefined4 *)((long)param_1 + 0x124) = 0;\n  }\n  if (*(int *)((long)param_1 + 0x11c) == -1) {\n                    \n    FUN_0016cdf0("../../gold/object.cc",0xa97,"write_local_symbols");\n  }\n  if (*(int *)((long)param_1 + 0x11c) == 0) {\n    return;\n  }\n  plVar20 = param_1 + 0x1f;\n  uVar8 = FUN_0015e080(plVar20);\n  if (param_1[5] == 0) {\nLAB_001a3824:\n                    \n    FUN_0019a570();\n  }\n  lVar9 = FUN_0016b970(param_1[5] + 0x28,param_1[6],uVar8,0x40,1,1);\n  if (*(int *)(lVar9 + 4) != 2) {\n                    \n    FUN_0016cdf0("../../gold/object.cc",0xaa2,"write_local_symbols");\n  }\n  uVar2 = *(uint *)(param_1 + 0x24);\n  if (uVar2 != *(uint *)(lVar9 + 0x2c)) {\n                    \n    FUN_0016cdf0("../../gold/object.cc",0xaa4,"write_local_symbols");\n  }\n  if (param_1[5] == 0) goto LAB_001a3824;\n  lVar10 = FUN_0016b970(param_1[5] + 0x28,param_1[6],*(undefined8 *)(lVar9 + 0x18),uVar2 * 0x18,1,0)\n  ;\n  uVar16 = *(uint *)(lVar9 + 0x28);\n  if (0xfeff < uVar16) {\n    FUN_0015d960(plVar20);\n    uVar16 = uVar16 + (int)param_1[0x22];\n  }\n  if (*(code **)(*param_1 + 0x70) == FUN_001a2100) {\n    auVar25 = FUN_001a2060(plVar20,uVar16);\n    local_48 = auVar25._8_8_;\n    local_b0 = &DAT_00313646;\n    if (local_48 != 0) {\n      if (param_1[5] == 0) goto LAB_001a3824;\n      local_b0 = (undefined *)FUN_0016b970(param_1[5] + 0x28,param_1[6],auVar25._0_8_,local_48,1,0);\n    }\n  }\n  else {\n    local_b0 = (undefined *)(**(code **)(*param_1 + 0x70))(param_1,uVar16,&local_48,0);\n  }\n  uVar16 = *(int *)((long)param_1 + 0x124) * 0x18;\n  if (uVar16 == 0) {\n    local_70 = (undefined4 *)0x0;\nLAB_001a31f6:\n    uVar17 = (int)param_1[0x25] * 0x18;\n    uVar18 = (ulong)uVar17;\n    if (uVar17 == 0) {\n      local_68 = (undefined4 *)0x0;\n    }\n    else {\n      lVar9 = param_1[0x2b];\n      if ((lVar9 < 0) || (*(long *)(param_2 + 0x10) < (long)(lVar9 + uVar18))) goto LAB_001a3859;\n      local_68 = (undefined4 *)(lVar9 + *(long *)(param_2 + 0x18));\n    }\n    lVar9 = param_1[0x2c];\n    if ((ulong)uVar2 == (param_1[0x2d] - lVar9 >> 3) * -0x5555555555555555) {\n      puVar22 = local_68;\n      puVar24 = local_70;\n      if (uVar2 < 2) {\nLAB_001a3680:\n        if ((uVar16 != 0) && ((long)puVar24 - (long)local_70 != (ulong)uVar16)) {\n                    \n          FUN_0016cdf0("../../gold/object.cc",0xb0a,"write_local_symbols");\n        }\n        if ((uVar17 != 0) && ((long)puVar22 - (long)local_68 != uVar18)) {\n                    \n          FUN_0016cdf0("../../gold/object.cc",0xb11,"write_local_symbols");\n        }\n        return;\n      }\n      lVar21 = lVar10 + 0x30;\n      local_b8 = 1;\n      do {\n        uVar13 = *(ushort *)(lVar21 + -0x12);\n        uVar12 = (ulong)uVar13;\n        piVar14 = (int *)(lVar9 + (-0x18 - lVar10) + lVar21);\n        if (uVar13 < 0xff00) {\nLAB_001a350a:\n          if ((ulong)(param_1[0xb] - param_1[10] >> 3) <= uVar12) {\n                    \n            FUN_0016cdf0("../../gold/object.cc",0xad5,"write_local_symbols");\n          }\n          plVar20 = *(long **)(param_1[10] + uVar12 * 8);\n          if (plVar20 != (long *)0x0) {\n            if (*(code **)(*plVar20 + 0x58) == FUN_00175f90) {\n              uVar7 = *(uint *)((long)plVar20 + 0x7c);\n              if (uVar7 == 0xffffffff) {\n                    \n                FUN_0016cdf0("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar7 = (**(code **)(*plVar20 + 0x58))();\n            }\n            uVar13 = (ushort)uVar7;\n            iVar5 = *piVar14;\n            bVar11 = iVar5 != 0 && iVar5 != -2;\n            if (0xfeff < uVar7) {\n              if (iVar5 == 0 || iVar5 == -2) goto LAB_001a374c;\n              if (iVar5 != -1) {\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_5 + 0x38,&local_40);\n              }\n              iVar5 = piVar14[1];\n              if (iVar5 == 0) goto LAB_001a3764;\n              if (iVar5 == -1) {\n                iVar5 = *piVar14;\n                uVar13 = 0xffff;\n                bVar11 = iVar5 != 0 && iVar5 != -2;\n              }\n              else {\n                uVar13 = 0xffff;\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_6 + 0x38,&local_40);\n                iVar5 = *piVar14;\n                bVar11 = iVar5 != -2 && iVar5 != 0;\n              }\n            }\n            goto LAB_001a32f9;\n          }\n        }\n        else {\n          if (uVar13 == 0xffff) {\n            lVar9 = param_1[8];\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*param_1 + 0xd8))(param_1);\n              param_1[8] = lVar9;\n            }\n            uVar7 = FUN_0019a820(lVar9,param_1,local_b8);\n            uVar12 = (ulong)uVar7;\n            goto LAB_001a350a;\n          }\n          iVar5 = *piVar14;\n          bVar11 = iVar5 != 0 && iVar5 != -2;\nLAB_001a32f9:\n          if (!bVar11) {\nLAB_001a374c:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }\n          puVar23 = puVar24;\n          if (iVar5 != -1) {\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xae8,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_3,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar24 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) goto LAB_001a377c;\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a33ac:\n            *(undefined8 *)(puVar24 + 2) = uVar8;\n            puVar23 = puVar24 + 6;\n            *(undefined8 *)(puVar24 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar24 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar24 + 6) = uVar13;\n            *(undefined1 *)((long)puVar24 + 5) = uVar1;\n          }\n          if (piVar14[1] == 0) {\nLAB_001a3764:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x738,"has_output_dynsym_entry");\n          }\n          puVar24 = puVar23;\n          if (piVar14[1] != -1) {\n            if ((undefined4 *)((long)local_68 + uVar18) <= puVar22) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xafa,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_4,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar22 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    \n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");\n              }\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a349c:\n            *(undefined8 *)(puVar22 + 2) = uVar8;\n            *(undefined8 *)(puVar22 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar22 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar22 + 6) = uVar13;\n            *(undefined1 *)((long)puVar22 + 5) = uVar1;\n            puVar22 = puVar22 + 6;\n          }\n        }\n        local_b8 = local_b8 + 1;\n        lVar21 = lVar21 + 0x18;\n        if (uVar2 == local_b8) goto LAB_001a3680;\n        lVar9 = param_1[0x2c];\n      } while( true );\n    }\n  }\n  else {\n    param_7 = param_7 + param_1[0x2a];\n    if ((-1 < param_7) && ((long)(param_7 + (ulong)uVar16) <= *(long *)(param_2 + 0x10))) {\n      local_70 = (undefined4 *)(param_7 + *(long *)(param_2 + 0x18));\n      goto LAB_001a31f6;\n    }\nLAB_001a3859:\n    FUN_0019a5b0();\n  }\n                    \n  FUN_0016cdf0("../../gold/object.cc",0xac5,"write_local_symbols");\n}" primitive_type (function_declarator "FUN_001a3040(long *param_1,long param_2,undefined8 param_3,undefined8 param_4,long param_5,\n                 long param_6,long param_7)" identifier (parameter_list "(long *param_1,long param_2,undefined8 param_3,undefined8 param_4,long param_5,\n                 long param_6,long param_7)" ( (parameter_declaration "long *param_1" (sized_type_specifier "long" long) (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_3" type_identifier identifier) , (parameter_declaration "undefined8 param_4" type_identifier identifier) , (parameter_declaration "long param_5" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_6" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_7" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  undefined1 uVar1;\n  uint uVar2;\n  ulong *puVar3;\n  long *plVar4;\n  int iVar5;\n  undefined4 uVar6;\n  uint uVar7;\n  undefined8 uVar8;\n  long lVar9;\n  long lVar10;\n  bool bVar11;\n  ulong uVar12;\n  ushort uVar13;\n  int *piVar14;\n  ulong uVar15;\n  uint uVar16;\n  uint uVar17;\n  long *plVar19;\n  long *plVar20;\n  long lVar21;\n  undefined4 *puVar22;\n  undefined4 *puVar23;\n  undefined4 *puVar24;\n  undefined1 auVar25 [16];\n  uint local_b8;\n  undefined *local_b0;\n  undefined4 *local_70;\n  undefined4 *local_68;\n  ulong local_48;\n  int local_40;\n  uint local_3c;\n  ulong uVar18;\n  \n  if (*(long *)(PTR_DAT_003be6b0 + 0x10) == 0) {\n                    \n    FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x54f9) != '\0') {\n    if ((int)param_1[0x25] == 0) {\n      return;\n    }\n    *(undefined4 *)((long)param_1 + 0x124) = 0;\n  }\n  if (*(int *)((long)param_1 + 0x11c) == -1) {\n                    \n    FUN_0016cdf0("../../gold/object.cc",0xa97,"write_local_symbols");\n  }\n  if (*(int *)((long)param_1 + 0x11c) == 0) {\n    return;\n  }\n  plVar20 = param_1 + 0x1f;\n  uVar8 = FUN_0015e080(plVar20);\n  if (param_1[5] == 0) {\nLAB_001a3824:\n                    \n    FUN_0019a570();\n  }\n  lVar9 = FUN_0016b970(param_1[5] + 0x28,param_1[6],uVar8,0x40,1,1);\n  if (*(int *)(lVar9 + 4) != 2) {\n                    \n    FUN_0016cdf0("../../gold/object.cc",0xaa2,"write_local_symbols");\n  }\n  uVar2 = *(uint *)(param_1 + 0x24);\n  if (uVar2 != *(uint *)(lVar9 + 0x2c)) {\n                    \n    FUN_0016cdf0("../../gold/object.cc",0xaa4,"write_local_symbols");\n  }\n  if (param_1[5] == 0) goto LAB_001a3824;\n  lVar10 = FUN_0016b970(param_1[5] + 0x28,param_1[6],*(undefined8 *)(lVar9 + 0x18),uVar2 * 0x18,1,0)\n  ;\n  uVar16 = *(uint *)(lVar9 + 0x28);\n  if (0xfeff < uVar16) {\n    FUN_0015d960(plVar20);\n    uVar16 = uVar16 + (int)param_1[0x22];\n  }\n  if (*(code **)(*param_1 + 0x70) == FUN_001a2100) {\n    auVar25 = FUN_001a2060(plVar20,uVar16);\n    local_48 = auVar25._8_8_;\n    local_b0 = &DAT_00313646;\n    if (local_48 != 0) {\n      if (param_1[5] == 0) goto LAB_001a3824;\n      local_b0 = (undefined *)FUN_0016b970(param_1[5] + 0x28,param_1[6],auVar25._0_8_,local_48,1,0);\n    }\n  }\n  else {\n    local_b0 = (undefined *)(**(code **)(*param_1 + 0x70))(param_1,uVar16,&local_48,0);\n  }\n  uVar16 = *(int *)((long)param_1 + 0x124) * 0x18;\n  if (uVar16 == 0) {\n    local_70 = (undefined4 *)0x0;\nLAB_001a31f6:\n    uVar17 = (int)param_1[0x25] * 0x18;\n    uVar18 = (ulong)uVar17;\n    if (uVar17 == 0) {\n      local_68 = (undefined4 *)0x0;\n    }\n    else {\n      lVar9 = param_1[0x2b];\n      if ((lVar9 < 0) || (*(long *)(param_2 + 0x10) < (long)(lVar9 + uVar18))) goto LAB_001a3859;\n      local_68 = (undefined4 *)(lVar9 + *(long *)(param_2 + 0x18));\n    }\n    lVar9 = param_1[0x2c];\n    if ((ulong)uVar2 == (param_1[0x2d] - lVar9 >> 3) * -0x5555555555555555) {\n      puVar22 = local_68;\n      puVar24 = local_70;\n      if (uVar2 < 2) {\nLAB_001a3680:\n        if ((uVar16 != 0) && ((long)puVar24 - (long)local_70 != (ulong)uVar16)) {\n                    \n          FUN_0016cdf0("../../gold/object.cc",0xb0a,"write_local_symbols");\n        }\n        if ((uVar17 != 0) && ((long)puVar22 - (long)local_68 != uVar18)) {\n                    \n          FUN_0016cdf0("../../gold/object.cc",0xb11,"write_local_symbols");\n        }\n        return;\n      }\n      lVar21 = lVar10 + 0x30;\n      local_b8 = 1;\n      do {\n        uVar13 = *(ushort *)(lVar21 + -0x12);\n        uVar12 = (ulong)uVar13;\n        piVar14 = (int *)(lVar9 + (-0x18 - lVar10) + lVar21);\n        if (uVar13 < 0xff00) {\nLAB_001a350a:\n          if ((ulong)(param_1[0xb] - param_1[10] >> 3) <= uVar12) {\n                    \n            FUN_0016cdf0("../../gold/object.cc",0xad5,"write_local_symbols");\n          }\n          plVar20 = *(long **)(param_1[10] + uVar12 * 8);\n          if (plVar20 != (long *)0x0) {\n            if (*(code **)(*plVar20 + 0x58) == FUN_00175f90) {\n              uVar7 = *(uint *)((long)plVar20 + 0x7c);\n              if (uVar7 == 0xffffffff) {\n                    \n                FUN_0016cdf0("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar7 = (**(code **)(*plVar20 + 0x58))();\n            }\n            uVar13 = (ushort)uVar7;\n            iVar5 = *piVar14;\n            bVar11 = iVar5 != 0 && iVar5 != -2;\n            if (0xfeff < uVar7) {\n              if (iVar5 == 0 || iVar5 == -2) goto LAB_001a374c;\n              if (iVar5 != -1) {\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_5 + 0x38,&local_40);\n              }\n              iVar5 = piVar14[1];\n              if (iVar5 == 0) goto LAB_001a3764;\n              if (iVar5 == -1) {\n                iVar5 = *piVar14;\n                uVar13 = 0xffff;\n                bVar11 = iVar5 != 0 && iVar5 != -2;\n              }\n              else {\n                uVar13 = 0xffff;\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_6 + 0x38,&local_40);\n                iVar5 = *piVar14;\n                bVar11 = iVar5 != -2 && iVar5 != 0;\n              }\n            }\n            goto LAB_001a32f9;\n          }\n        }\n        else {\n          if (uVar13 == 0xffff) {\n            lVar9 = param_1[8];\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*param_1 + 0xd8))(param_1);\n              param_1[8] = lVar9;\n            }\n            uVar7 = FUN_0019a820(lVar9,param_1,local_b8);\n            uVar12 = (ulong)uVar7;\n            goto LAB_001a350a;\n          }\n          iVar5 = *piVar14;\n          bVar11 = iVar5 != 0 && iVar5 != -2;\nLAB_001a32f9:\n          if (!bVar11) {\nLAB_001a374c:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }\n          puVar23 = puVar24;\n          if (iVar5 != -1) {\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xae8,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_3,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar24 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) goto LAB_001a377c;\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a33ac:\n            *(undefined8 *)(puVar24 + 2) = uVar8;\n            puVar23 = puVar24 + 6;\n            *(undefined8 *)(puVar24 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar24 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar24 + 6) = uVar13;\n            *(undefined1 *)((long)puVar24 + 5) = uVar1;\n          }\n          if (piVar14[1] == 0) {\nLAB_001a3764:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x738,"has_output_dynsym_entry");\n          }\n          puVar24 = puVar23;\n          if (piVar14[1] != -1) {\n            if ((undefined4 *)((long)local_68 + uVar18) <= puVar22) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xafa,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_4,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar22 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    \n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");\n              }\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a349c:\n            *(undefined8 *)(puVar22 + 2) = uVar8;\n            *(undefined8 *)(puVar22 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar22 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar22 + 6) = uVar13;\n            *(undefined1 *)((long)puVar22 + 5) = uVar1;\n            puVar22 = puVar22 + 6;\n          }\n        }\n        local_b8 = local_b8 + 1;\n        lVar21 = lVar21 + 0x18;\n        if (uVar2 == local_b8) goto LAB_001a3680;\n        lVar9 = param_1[0x2c];\n      } while( true );\n    }\n  }\n  else {\n    param_7 = param_7 + param_1[0x2a];\n    if ((-1 < param_7) && ((long)(param_7 + (ulong)uVar16) <= *(long *)(param_2 + 0x10))) {\n      local_70 = (undefined4 *)(param_7 + *(long *)(param_2 + 0x18));\n      goto LAB_001a31f6;\n    }\nLAB_001a3859:\n    FUN_0019a5b0();\n  }\n                    \n  FUN_0016cdf0("../../gold/object.cc",0xac5,"write_local_symbols");\n}" { (declaration "undefined1 uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "ulong *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "long *plVar4;" (sized_type_specifier "long" long) (pointer_declarator "*plVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "undefined8 uVar8;" type_identifier identifier ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (declaration "bool bVar11;" primitive_type identifier ;) (declaration "ulong uVar12;" type_identifier identifier ;) (declaration "ushort uVar13;" type_identifier identifier ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (declaration "ulong uVar15;" type_identifier identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "long *plVar19;" (sized_type_specifier "long" long) (pointer_declarator "*plVar19" * identifier) ;) (declaration "long *plVar20;" (sized_type_specifier "long" long) (pointer_declarator "*plVar20" * identifier) ;) (declaration "long lVar21;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined4 *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "undefined4 *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "undefined4 *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "undefined1 auVar25 [16];" type_identifier (array_declarator "auVar25 [16]" identifier [ number_literal ]) ;) (declaration "uint local_b8;" type_identifier identifier ;) (declaration "undefined *local_b0;" type_identifier (pointer_declarator "*local_b0" * identifier) ;) (declaration "undefined4 *local_70;" type_identifier (pointer_declarator "*local_70" * identifier) ;) (declaration "undefined4 *local_68;" type_identifier (pointer_declarator "*local_68" * identifier) ;) (declaration "ulong local_48;" type_identifier identifier ;) (declaration "int local_40;" primitive_type identifier ;) (declaration "uint local_3c;" type_identifier identifier ;) (declaration "ulong uVar18;" type_identifier identifier ;) (if_statement "if (*(long *)(PTR_DAT_003be6b0 + 0x10) == 0) {\n                    \n    FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");\n  }" if (parenthesized_expression "(*(long *)(PTR_DAT_003be6b0 + 0x10) == 0)" ( (binary_expression "*(long *)(PTR_DAT_003be6b0 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_003be6b0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_003be6b0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003be6b0 + 0x10)" ( (binary_expression "PTR_DAT_003be6b0 + 0x10" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    \n    FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");\n  }" { (expression_statement "FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_0016cdf0("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })) (if_statement "if (*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x54f9) != '\0') {\n    if ((int)param_1[0x25] == 0) {\n      return;\n    }\n    *(undefined4 *)((long)param_1 + 0x124) = 0;\n  }" if (parenthesized_expression "(*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x54f9) != '\0')" ( (binary_expression "*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x54f9) != '\0'" (pointer_expression "*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x54f9)" * (cast_expression "(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x54f9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x54f9)" ( (binary_expression "*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x54f9" (pointer_expression "*(long *)(PTR_DAT_003be6b0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_003be6b0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003be6b0 + 0x10)" ( (binary_expression "PTR_DAT_003be6b0 + 0x10" identifier + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    if ((int)param_1[0x25] == 0) {\n      return;\n    }\n    *(undefined4 *)((long)param_1 + 0x124) = 0;\n  }" { (if_statement "if ((int)param_1[0x25] == 0) {\n      return;\n    }" if (parenthesized_expression "((int)param_1[0x25] == 0)" ( (binary_expression "(int)param_1[0x25] == 0" (cast_expression "(int)param_1[0x25]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[0x25]" identifier [ number_literal ])) == number_literal) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "*(undefined4 *)((long)param_1 + 0x124) = 0;" (assignment_expression "*(undefined4 *)((long)param_1 + 0x124) = 0" (pointer_expression "*(undefined4 *)((long)param_1 + 0x124)" * (cast_expression "(undefined4 *)((long)param_1 + 0x124)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x124)" ( (binary_expression "(long)param_1 + 0x124" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) })) (if_statement "if (*(int *)((long)param_1 + 0x11c) == -1) {\n                    \n    FUN_0016cdf0("../../gold/object.cc",0xa97,"write_local_symbols");\n  }" if (parenthesized_expression "(*(int *)((long)param_1 + 0x11c) == -1)" ( (binary_expression "*(int *)((long)param_1 + 0x11c) == -1" (pointer_expression "*(int *)((long)param_1 + 0x11c)" * (cast_expression "(int *)((long)param_1 + 0x11c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x11c)" ( (binary_expression "(long)param_1 + 0x11c" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n                    \n    FUN_0016cdf0("../../gold/object.cc",0xa97,"write_local_symbols");\n  }" { (expression_statement "FUN_0016cdf0("../../gold/object.cc",0xa97,"write_local_symbols");" (call_expression "FUN_0016cdf0("../../gold/object.cc",0xa97,"write_local_symbols")" identifier (argument_list "("../../gold/object.cc",0xa97,"write_local_symbols")" ( (string_literal ""../../gold/object.cc"" " string_content ") , number_literal , (string_literal ""write_local_symbols"" " string_content ") ))) ;) })) (if_statement "if (*(int *)((long)param_1 + 0x11c) == 0) {\n    return;\n  }" if (parenthesized_expression "(*(int *)((long)param_1 + 0x11c) == 0)" ( (binary_expression "*(int *)((long)param_1 + 0x11c) == 0" (pointer_expression "*(int *)((long)param_1 + 0x11c)" * (cast_expression "(int *)((long)param_1 + 0x11c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x11c)" ( (binary_expression "(long)param_1 + 0x11c" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "plVar20 = param_1 + 0x1f;" (assignment_expression "plVar20 = param_1 + 0x1f" identifier = (binary_expression "param_1 + 0x1f" identifier + number_literal)) ;) (expression_statement "uVar8 = FUN_0015e080(plVar20);" (assignment_expression "uVar8 = FUN_0015e080(plVar20)" identifier = (call_expression "FUN_0015e080(plVar20)" identifier (argument_list "(plVar20)" ( identifier )))) ;) (if_statement "if (param_1[5] == 0) {\nLAB_001a3824:\n                    \n    FUN_0019a570();\n  }" if (parenthesized_expression "(param_1[5] == 0)" ( (binary_expression "param_1[5] == 0" (subscript_expression "param_1[5]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\nLAB_001a3824:\n                    \n    FUN_0019a570();\n  }" { (labeled_statement "LAB_001a3824:\n                    \n    FUN_0019a570();" statement_identifier : (expression_statement "FUN_0019a570();" (call_expression "FUN_0019a570()" identifier (argument_list "()" ( ))) ;)) })) (expression_statement "lVar9 = FUN_0016b970(param_1[5] + 0x28,param_1[6],uVar8,0x40,1,1);" (assignment_expression "lVar9 = FUN_0016b970(param_1[5] + 0x28,param_1[6],uVar8,0x40,1,1)" identifier = (call_expression "FUN_0016b970(param_1[5] + 0x28,param_1[6],uVar8,0x40,1,1)" identifier (argument_list "(param_1[5] + 0x28,param_1[6],uVar8,0x40,1,1)" ( (binary_expression "param_1[5] + 0x28" (subscript_expression "param_1[5]" identifier [ number_literal ]) + number_literal) , (subscript_expression "param_1[6]" identifier [ number_literal ]) , identifier , number_literal , number_literal , number_literal )))) ;) (if_statement "if (*(int *)(lVar9 + 4) != 2) {\n                    \n    FUN_0016cdf0("../../gold/object.cc",0xaa2,"write_local_symbols");\n  }" if (parenthesized_expression "(*(int *)(lVar9 + 4) != 2)" ( (binary_expression "*(int *)(lVar9 + 4) != 2" (pointer_expression "*(int *)(lVar9 + 4)" * (cast_expression "(int *)(lVar9 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 4)" ( (binary_expression "lVar9 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    \n    FUN_0016cdf0("../../gold/object.cc",0xaa2,"write_local_symbols");\n  }" { (expression_statement "FUN_0016cdf0("../../gold/object.cc",0xaa2,"write_local_symbols");" (call_expression "FUN_0016cdf0("../../gold/object.cc",0xaa2,"write_local_symbols")" identifier (argument_list "("../../gold/object.cc",0xaa2,"write_local_symbols")" ( (string_literal ""../../gold/object.cc"" " string_content ") , number_literal , (string_literal ""write_local_symbols"" " string_content ") ))) ;) })) (expression_statement "uVar2 = *(uint *)(param_1 + 0x24);" (assignment_expression "uVar2 = *(uint *)(param_1 + 0x24)" identifier = (pointer_expression "*(uint *)(param_1 + 0x24)" * (cast_expression "(uint *)(param_1 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) ))))) ;) (if_statement "if (uVar2 != *(uint *)(lVar9 + 0x2c)) {\n                    \n    FUN_0016cdf0("../../gold/object.cc",0xaa4,"write_local_symbols");\n  }" if (parenthesized_expression "(uVar2 != *(uint *)(lVar9 + 0x2c))" ( (binary_expression "uVar2 != *(uint *)(lVar9 + 0x2c)" identifier != (pointer_expression "*(uint *)(lVar9 + 0x2c)" * (cast_expression "(uint *)(lVar9 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x2c)" ( (binary_expression "lVar9 + 0x2c" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n    FUN_0016cdf0("../../gold/object.cc",0xaa4,"write_local_symbols");\n  }" { (expression_statement "FUN_0016cdf0("../../gold/object.cc",0xaa4,"write_local_symbols");" (call_expression "FUN_0016cdf0("../../gold/object.cc",0xaa4,"write_local_symbols")" identifier (argument_list "("../../gold/object.cc",0xaa4,"write_local_symbols")" ( (string_literal ""../../gold/object.cc"" " string_content ") , number_literal , (string_literal ""write_local_symbols"" " string_content ") ))) ;) })) (if_statement "if (param_1[5] == 0) goto LAB_001a3824;" if (parenthesized_expression "(param_1[5] == 0)" ( (binary_expression "param_1[5] == 0" (subscript_expression "param_1[5]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_001a3824;" goto statement_identifier ;)) (expression_statement "lVar10 = FUN_0016b970(param_1[5] + 0x28,param_1[6],*(undefined8 *)(lVar9 + 0x18),uVar2 * 0x18,1,0)\n  ;" (assignment_expression "lVar10 = FUN_0016b970(param_1[5] + 0x28,param_1[6],*(undefined8 *)(lVar9 + 0x18),uVar2 * 0x18,1,0)" identifier = (call_expression "FUN_0016b970(param_1[5] + 0x28,param_1[6],*(undefined8 *)(lVar9 + 0x18),uVar2 * 0x18,1,0)" identifier (argument_list "(param_1[5] + 0x28,param_1[6],*(undefined8 *)(lVar9 + 0x18),uVar2 * 0x18,1,0)" ( (binary_expression "param_1[5] + 0x28" (subscript_expression "param_1[5]" identifier [ number_literal ]) + number_literal) , (subscript_expression "param_1[6]" identifier [ number_literal ]) , (pointer_expression "*(undefined8 *)(lVar9 + 0x18)" * (cast_expression "(undefined8 *)(lVar9 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x18)" ( (binary_expression "lVar9 + 0x18" identifier + number_literal) )))) , (binary_expression "uVar2 * 0x18" identifier * number_literal) , number_literal , number_literal )))) ;) (expression_statement "uVar16 = *(uint *)(lVar9 + 0x28);" (assignment_expression "uVar16 = *(uint *)(lVar9 + 0x28)" identifier = (pointer_expression "*(uint *)(lVar9 + 0x28)" * (cast_expression "(uint *)(lVar9 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x28)" ( (binary_expression "lVar9 + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (0xfeff < uVar16) {\n    FUN_0015d960(plVar20);\n    uVar16 = uVar16 + (int)param_1[0x22];\n  }" if (parenthesized_expression "(0xfeff < uVar16)" ( (binary_expression "0xfeff < uVar16" number_literal < identifier) )) (compound_statement "{\n    FUN_0015d960(plVar20);\n    uVar16 = uVar16 + (int)param_1[0x22];\n  }" { (expression_statement "FUN_0015d960(plVar20);" (call_expression "FUN_0015d960(plVar20)" identifier (argument_list "(plVar20)" ( identifier ))) ;) (expression_statement "uVar16 = uVar16 + (int)param_1[0x22];" (assignment_expression "uVar16 = uVar16 + (int)param_1[0x22]" identifier = (binary_expression "uVar16 + (int)param_1[0x22]" identifier + (cast_expression "(int)param_1[0x22]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[0x22]" identifier [ number_literal ])))) ;) })) (if_statement "if (*(code **)(*param_1 + 0x70) == FUN_001a2100) {\n    auVar25 = FUN_001a2060(plVar20,uVar16);\n    local_48 = auVar25._8_8_;\n    local_b0 = &DAT_00313646;\n    if (local_48 != 0) {\n      if (param_1[5] == 0) goto LAB_001a3824;\n      local_b0 = (undefined *)FUN_0016b970(param_1[5] + 0x28,param_1[6],auVar25._0_8_,local_48,1,0);\n    }\n  }\n  else {\n    local_b0 = (undefined *)(**(code **)(*param_1 + 0x70))(param_1,uVar16,&local_48,0);\n  }" if (parenthesized_expression "(*(code **)(*param_1 + 0x70) == FUN_001a2100)" ( (binary_expression "*(code **)(*param_1 + 0x70) == FUN_001a2100" (pointer_expression "*(code **)(*param_1 + 0x70)" * (cast_expression "(code **)(*param_1 + 0x70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x70)" ( (binary_expression "*param_1 + 0x70" (pointer_expression "*param_1" * identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n    auVar25 = FUN_001a2060(plVar20,uVar16);\n    local_48 = auVar25._8_8_;\n    local_b0 = &DAT_00313646;\n    if (local_48 != 0) {\n      if (param_1[5] == 0) goto LAB_001a3824;\n      local_b0 = (undefined *)FUN_0016b970(param_1[5] + 0x28,param_1[6],auVar25._0_8_,local_48,1,0);\n    }\n  }" { (expression_statement "auVar25 = FUN_001a2060(plVar20,uVar16);" (assignment_expression "auVar25 = FUN_001a2060(plVar20,uVar16)" identifier = (call_expression "FUN_001a2060(plVar20,uVar16)" identifier (argument_list "(plVar20,uVar16)" ( identifier , identifier )))) ;) (expression_statement "local_48 = auVar25._8_8_;" (assignment_expression "local_48 = auVar25._8_8_" identifier = (field_expression "auVar25._8_8_" identifier . field_identifier)) ;) (expression_statement "local_b0 = &DAT_00313646;" (assignment_expression "local_b0 = &DAT_00313646" identifier = (pointer_expression "&DAT_00313646" & identifier)) ;) (if_statement "if (local_48 != 0) {\n      if (param_1[5] == 0) goto LAB_001a3824;\n      local_b0 = (undefined *)FUN_0016b970(param_1[5] + 0x28,param_1[6],auVar25._0_8_,local_48,1,0);\n    }" if (parenthesized_expression "(local_48 != 0)" ( (binary_expression "local_48 != 0" identifier != number_literal) )) (compound_statement "{\n      if (param_1[5] == 0) goto LAB_001a3824;\n      local_b0 = (undefined *)FUN_0016b970(param_1[5] + 0x28,param_1[6],auVar25._0_8_,local_48,1,0);\n    }" { (if_statement "if (param_1[5] == 0) goto LAB_001a3824;" if (parenthesized_expression "(param_1[5] == 0)" ( (binary_expression "param_1[5] == 0" (subscript_expression "param_1[5]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_001a3824;" goto statement_identifier ;)) (expression_statement "local_b0 = (undefined *)FUN_0016b970(param_1[5] + 0x28,param_1[6],auVar25._0_8_,local_48,1,0);" (assignment_expression "local_b0 = (undefined *)FUN_0016b970(param_1[5] + 0x28,param_1[6],auVar25._0_8_,local_48,1,0)" identifier = (cast_expression "(undefined *)FUN_0016b970(param_1[5] + 0x28,param_1[6],auVar25._0_8_,local_48,1,0)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0016b970(param_1[5] + 0x28,param_1[6],auVar25._0_8_,local_48,1,0)" identifier (argument_list "(param_1[5] + 0x28,param_1[6],auVar25._0_8_,local_48,1,0)" ( (binary_expression "param_1[5] + 0x28" (subscript_expression "param_1[5]" identifier [ number_literal ]) + number_literal) , (subscript_expression "param_1[6]" identifier [ number_literal ]) , (field_expression "auVar25._0_8_" identifier . field_identifier) , identifier , number_literal , number_literal ))))) ;) })) }) (else_clause "else {\n    local_b0 = (undefined *)(**(code **)(*param_1 + 0x70))(param_1,uVar16,&local_48,0);\n  }" else (compound_statement "{\n    local_b0 = (undefined *)(**(code **)(*param_1 + 0x70))(param_1,uVar16,&local_48,0);\n  }" { (expression_statement "local_b0 = (undefined *)(**(code **)(*param_1 + 0x70))(param_1,uVar16,&local_48,0);" (assignment_expression "local_b0 = (undefined *)(**(code **)(*param_1 + 0x70))(param_1,uVar16,&local_48,0)" identifier = (cast_expression "(undefined *)(**(code **)(*param_1 + 0x70))(param_1,uVar16,&local_48,0)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*param_1 + 0x70))(param_1,uVar16,&local_48,0)" (parenthesized_expression "(**(code **)(*param_1 + 0x70))" ( (pointer_expression "**(code **)(*param_1 + 0x70)" * (pointer_expression "*(code **)(*param_1 + 0x70)" * (cast_expression "(code **)(*param_1 + 0x70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x70)" ( (binary_expression "*param_1 + 0x70" (pointer_expression "*param_1" * identifier) + number_literal) ))))) )) (argument_list "(param_1,uVar16,&local_48,0)" ( identifier , identifier , (pointer_expression "&local_48" & identifier) , number_literal ))))) ;) }))) (expression_statement "uVar16 = *(int *)((long)param_1 + 0x124) * 0x18;" (assignment_expression "uVar16 = *(int *)((long)param_1 + 0x124) * 0x18" identifier = (binary_expression "*(int *)((long)param_1 + 0x124) * 0x18" (pointer_expression "*(int *)((long)param_1 + 0x124)" * (cast_expression "(int *)((long)param_1 + 0x124)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x124)" ( (binary_expression "(long)param_1 + 0x124" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) * number_literal)) ;) (if_statement "if (uVar16 == 0) {\n    local_70 = (undefined4 *)0x0;\nLAB_001a31f6:\n    uVar17 = (int)param_1[0x25] * 0x18;\n    uVar18 = (ulong)uVar17;\n    if (uVar17 == 0) {\n      local_68 = (undefined4 *)0x0;\n    }\n    else {\n      lVar9 = param_1[0x2b];\n      if ((lVar9 < 0) || (*(long *)(param_2 + 0x10) < (long)(lVar9 + uVar18))) goto LAB_001a3859;\n      local_68 = (undefined4 *)(lVar9 + *(long *)(param_2 + 0x18));\n    }\n    lVar9 = param_1[0x2c];\n    if ((ulong)uVar2 == (param_1[0x2d] - lVar9 >> 3) * -0x5555555555555555) {\n      puVar22 = local_68;\n      puVar24 = local_70;\n      if (uVar2 < 2) {\nLAB_001a3680:\n        if ((uVar16 != 0) && ((long)puVar24 - (long)local_70 != (ulong)uVar16)) {\n                    \n          FUN_0016cdf0("../../gold/object.cc",0xb0a,"write_local_symbols");\n        }\n        if ((uVar17 != 0) && ((long)puVar22 - (long)local_68 != uVar18)) {\n                    \n          FUN_0016cdf0("../../gold/object.cc",0xb11,"write_local_symbols");\n        }\n        return;\n      }\n      lVar21 = lVar10 + 0x30;\n      local_b8 = 1;\n      do {\n        uVar13 = *(ushort *)(lVar21 + -0x12);\n        uVar12 = (ulong)uVar13;\n        piVar14 = (int *)(lVar9 + (-0x18 - lVar10) + lVar21);\n        if (uVar13 < 0xff00) {\nLAB_001a350a:\n          if ((ulong)(param_1[0xb] - param_1[10] >> 3) <= uVar12) {\n                    \n            FUN_0016cdf0("../../gold/object.cc",0xad5,"write_local_symbols");\n          }\n          plVar20 = *(long **)(param_1[10] + uVar12 * 8);\n          if (plVar20 != (long *)0x0) {\n            if (*(code **)(*plVar20 + 0x58) == FUN_00175f90) {\n              uVar7 = *(uint *)((long)plVar20 + 0x7c);\n              if (uVar7 == 0xffffffff) {\n                    \n                FUN_0016cdf0("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar7 = (**(code **)(*plVar20 + 0x58))();\n            }\n            uVar13 = (ushort)uVar7;\n            iVar5 = *piVar14;\n            bVar11 = iVar5 != 0 && iVar5 != -2;\n            if (0xfeff < uVar7) {\n              if (iVar5 == 0 || iVar5 == -2) goto LAB_001a374c;\n              if (iVar5 != -1) {\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_5 + 0x38,&local_40);\n              }\n              iVar5 = piVar14[1];\n              if (iVar5 == 0) goto LAB_001a3764;\n              if (iVar5 == -1) {\n                iVar5 = *piVar14;\n                uVar13 = 0xffff;\n                bVar11 = iVar5 != 0 && iVar5 != -2;\n              }\n              else {\n                uVar13 = 0xffff;\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_6 + 0x38,&local_40);\n                iVar5 = *piVar14;\n                bVar11 = iVar5 != -2 && iVar5 != 0;\n              }\n            }\n            goto LAB_001a32f9;\n          }\n        }\n        else {\n          if (uVar13 == 0xffff) {\n            lVar9 = param_1[8];\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*param_1 + 0xd8))(param_1);\n              param_1[8] = lVar9;\n            }\n            uVar7 = FUN_0019a820(lVar9,param_1,local_b8);\n            uVar12 = (ulong)uVar7;\n            goto LAB_001a350a;\n          }\n          iVar5 = *piVar14;\n          bVar11 = iVar5 != 0 && iVar5 != -2;\nLAB_001a32f9:\n          if (!bVar11) {\nLAB_001a374c:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }\n          puVar23 = puVar24;\n          if (iVar5 != -1) {\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xae8,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_3,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar24 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) goto LAB_001a377c;\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a33ac:\n            *(undefined8 *)(puVar24 + 2) = uVar8;\n            puVar23 = puVar24 + 6;\n            *(undefined8 *)(puVar24 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar24 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar24 + 6) = uVar13;\n            *(undefined1 *)((long)puVar24 + 5) = uVar1;\n          }\n          if (piVar14[1] == 0) {\nLAB_001a3764:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x738,"has_output_dynsym_entry");\n          }\n          puVar24 = puVar23;\n          if (piVar14[1] != -1) {\n            if ((undefined4 *)((long)local_68 + uVar18) <= puVar22) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xafa,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_4,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar22 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    \n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");\n              }\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a349c:\n            *(undefined8 *)(puVar22 + 2) = uVar8;\n            *(undefined8 *)(puVar22 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar22 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar22 + 6) = uVar13;\n            *(undefined1 *)((long)puVar22 + 5) = uVar1;\n            puVar22 = puVar22 + 6;\n          }\n        }\n        local_b8 = local_b8 + 1;\n        lVar21 = lVar21 + 0x18;\n        if (uVar2 == local_b8) goto LAB_001a3680;\n        lVar9 = param_1[0x2c];\n      } while( true );\n    }\n  }\n  else {\n    param_7 = param_7 + param_1[0x2a];\n    if ((-1 < param_7) && ((long)(param_7 + (ulong)uVar16) <= *(long *)(param_2 + 0x10))) {\n      local_70 = (undefined4 *)(param_7 + *(long *)(param_2 + 0x18));\n      goto LAB_001a31f6;\n    }\nLAB_001a3859:\n    FUN_0019a5b0();\n  }" if (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) (compound_statement "{\n    local_70 = (undefined4 *)0x0;\nLAB_001a31f6:\n    uVar17 = (int)param_1[0x25] * 0x18;\n    uVar18 = (ulong)uVar17;\n    if (uVar17 == 0) {\n      local_68 = (undefined4 *)0x0;\n    }\n    else {\n      lVar9 = param_1[0x2b];\n      if ((lVar9 < 0) || (*(long *)(param_2 + 0x10) < (long)(lVar9 + uVar18))) goto LAB_001a3859;\n      local_68 = (undefined4 *)(lVar9 + *(long *)(param_2 + 0x18));\n    }\n    lVar9 = param_1[0x2c];\n    if ((ulong)uVar2 == (param_1[0x2d] - lVar9 >> 3) * -0x5555555555555555) {\n      puVar22 = local_68;\n      puVar24 = local_70;\n      if (uVar2 < 2) {\nLAB_001a3680:\n        if ((uVar16 != 0) && ((long)puVar24 - (long)local_70 != (ulong)uVar16)) {\n                    \n          FUN_0016cdf0("../../gold/object.cc",0xb0a,"write_local_symbols");\n        }\n        if ((uVar17 != 0) && ((long)puVar22 - (long)local_68 != uVar18)) {\n                    \n          FUN_0016cdf0("../../gold/object.cc",0xb11,"write_local_symbols");\n        }\n        return;\n      }\n      lVar21 = lVar10 + 0x30;\n      local_b8 = 1;\n      do {\n        uVar13 = *(ushort *)(lVar21 + -0x12);\n        uVar12 = (ulong)uVar13;\n        piVar14 = (int *)(lVar9 + (-0x18 - lVar10) + lVar21);\n        if (uVar13 < 0xff00) {\nLAB_001a350a:\n          if ((ulong)(param_1[0xb] - param_1[10] >> 3) <= uVar12) {\n                    \n            FUN_0016cdf0("../../gold/object.cc",0xad5,"write_local_symbols");\n          }\n          plVar20 = *(long **)(param_1[10] + uVar12 * 8);\n          if (plVar20 != (long *)0x0) {\n            if (*(code **)(*plVar20 + 0x58) == FUN_00175f90) {\n              uVar7 = *(uint *)((long)plVar20 + 0x7c);\n              if (uVar7 == 0xffffffff) {\n                    \n                FUN_0016cdf0("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar7 = (**(code **)(*plVar20 + 0x58))();\n            }\n            uVar13 = (ushort)uVar7;\n            iVar5 = *piVar14;\n            bVar11 = iVar5 != 0 && iVar5 != -2;\n            if (0xfeff < uVar7) {\n              if (iVar5 == 0 || iVar5 == -2) goto LAB_001a374c;\n              if (iVar5 != -1) {\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_5 + 0x38,&local_40);\n              }\n              iVar5 = piVar14[1];\n              if (iVar5 == 0) goto LAB_001a3764;\n              if (iVar5 == -1) {\n                iVar5 = *piVar14;\n                uVar13 = 0xffff;\n                bVar11 = iVar5 != 0 && iVar5 != -2;\n              }\n              else {\n                uVar13 = 0xffff;\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_6 + 0x38,&local_40);\n                iVar5 = *piVar14;\n                bVar11 = iVar5 != -2 && iVar5 != 0;\n              }\n            }\n            goto LAB_001a32f9;\n          }\n        }\n        else {\n          if (uVar13 == 0xffff) {\n            lVar9 = param_1[8];\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*param_1 + 0xd8))(param_1);\n              param_1[8] = lVar9;\n            }\n            uVar7 = FUN_0019a820(lVar9,param_1,local_b8);\n            uVar12 = (ulong)uVar7;\n            goto LAB_001a350a;\n          }\n          iVar5 = *piVar14;\n          bVar11 = iVar5 != 0 && iVar5 != -2;\nLAB_001a32f9:\n          if (!bVar11) {\nLAB_001a374c:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }\n          puVar23 = puVar24;\n          if (iVar5 != -1) {\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xae8,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_3,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar24 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) goto LAB_001a377c;\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a33ac:\n            *(undefined8 *)(puVar24 + 2) = uVar8;\n            puVar23 = puVar24 + 6;\n            *(undefined8 *)(puVar24 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar24 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar24 + 6) = uVar13;\n            *(undefined1 *)((long)puVar24 + 5) = uVar1;\n          }\n          if (piVar14[1] == 0) {\nLAB_001a3764:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x738,"has_output_dynsym_entry");\n          }\n          puVar24 = puVar23;\n          if (piVar14[1] != -1) {\n            if ((undefined4 *)((long)local_68 + uVar18) <= puVar22) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xafa,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_4,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar22 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    \n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");\n              }\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a349c:\n            *(undefined8 *)(puVar22 + 2) = uVar8;\n            *(undefined8 *)(puVar22 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar22 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar22 + 6) = uVar13;\n            *(undefined1 *)((long)puVar22 + 5) = uVar1;\n            puVar22 = puVar22 + 6;\n          }\n        }\n        local_b8 = local_b8 + 1;\n        lVar21 = lVar21 + 0x18;\n        if (uVar2 == local_b8) goto LAB_001a3680;\n        lVar9 = param_1[0x2c];\n      } while( true );\n    }\n  }" { (expression_statement "local_70 = (undefined4 *)0x0;" (assignment_expression "local_70 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_001a31f6:\n    uVar17 = (int)param_1[0x25] * 0x18;" statement_identifier : (expression_statement "uVar17 = (int)param_1[0x25] * 0x18;" (assignment_expression "uVar17 = (int)param_1[0x25] * 0x18" identifier = (binary_expression "(int)param_1[0x25] * 0x18" (cast_expression "(int)param_1[0x25]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[0x25]" identifier [ number_literal ])) * number_literal)) ;)) (expression_statement "uVar18 = (ulong)uVar17;" (assignment_expression "uVar18 = (ulong)uVar17" identifier = (cast_expression "(ulong)uVar17" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (uVar17 == 0) {\n      local_68 = (undefined4 *)0x0;\n    }\n    else {\n      lVar9 = param_1[0x2b];\n      if ((lVar9 < 0) || (*(long *)(param_2 + 0x10) < (long)(lVar9 + uVar18))) goto LAB_001a3859;\n      local_68 = (undefined4 *)(lVar9 + *(long *)(param_2 + 0x18));\n    }" if (parenthesized_expression "(uVar17 == 0)" ( (binary_expression "uVar17 == 0" identifier == number_literal) )) (compound_statement "{\n      local_68 = (undefined4 *)0x0;\n    }" { (expression_statement "local_68 = (undefined4 *)0x0;" (assignment_expression "local_68 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      lVar9 = param_1[0x2b];\n      if ((lVar9 < 0) || (*(long *)(param_2 + 0x10) < (long)(lVar9 + uVar18))) goto LAB_001a3859;\n      local_68 = (undefined4 *)(lVar9 + *(long *)(param_2 + 0x18));\n    }" else (compound_statement "{\n      lVar9 = param_1[0x2b];\n      if ((lVar9 < 0) || (*(long *)(param_2 + 0x10) < (long)(lVar9 + uVar18))) goto LAB_001a3859;\n      local_68 = (undefined4 *)(lVar9 + *(long *)(param_2 + 0x18));\n    }" { (expression_statement "lVar9 = param_1[0x2b];" (assignment_expression "lVar9 = param_1[0x2b]" identifier = (subscript_expression "param_1[0x2b]" identifier [ number_literal ])) ;) (if_statement "if ((lVar9 < 0) || (*(long *)(param_2 + 0x10) < (long)(lVar9 + uVar18))) goto LAB_001a3859;" if (parenthesized_expression "((lVar9 < 0) || (*(long *)(param_2 + 0x10) < (long)(lVar9 + uVar18)))" ( (binary_expression "(lVar9 < 0) || (*(long *)(param_2 + 0x10) < (long)(lVar9 + uVar18))" (parenthesized_expression "(lVar9 < 0)" ( (binary_expression "lVar9 < 0" identifier < number_literal) )) || (parenthesized_expression "(*(long *)(param_2 + 0x10) < (long)(lVar9 + uVar18))" ( (binary_expression "*(long *)(param_2 + 0x10) < (long)(lVar9 + uVar18)" (pointer_expression "*(long *)(param_2 + 0x10)" * (cast_expression "(long *)(param_2 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))) < (cast_expression "(long)(lVar9 + uVar18)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(lVar9 + uVar18)" ( (binary_expression "lVar9 + uVar18" identifier + identifier) )))) ))) )) (goto_statement "goto LAB_001a3859;" goto statement_identifier ;)) (expression_statement "local_68 = (undefined4 *)(lVar9 + *(long *)(param_2 + 0x18));" (assignment_expression "local_68 = (undefined4 *)(lVar9 + *(long *)(param_2 + 0x18))" identifier = (cast_expression "(undefined4 *)(lVar9 + *(long *)(param_2 + 0x18))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + *(long *)(param_2 + 0x18))" ( (binary_expression "lVar9 + *(long *)(param_2 + 0x18)" identifier + (pointer_expression "*(long *)(param_2 + 0x18)" * (cast_expression "(long *)(param_2 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) ))))) )))) ;) }))) (expression_statement "lVar9 = param_1[0x2c];" (assignment_expression "lVar9 = param_1[0x2c]" identifier = (subscript_expression "param_1[0x2c]" identifier [ number_literal ])) ;) (if_statement "if ((ulong)uVar2 == (param_1[0x2d] - lVar9 >> 3) * -0x5555555555555555) {\n      puVar22 = local_68;\n      puVar24 = local_70;\n      if (uVar2 < 2) {\nLAB_001a3680:\n        if ((uVar16 != 0) && ((long)puVar24 - (long)local_70 != (ulong)uVar16)) {\n                    \n          FUN_0016cdf0("../../gold/object.cc",0xb0a,"write_local_symbols");\n        }\n        if ((uVar17 != 0) && ((long)puVar22 - (long)local_68 != uVar18)) {\n                    \n          FUN_0016cdf0("../../gold/object.cc",0xb11,"write_local_symbols");\n        }\n        return;\n      }\n      lVar21 = lVar10 + 0x30;\n      local_b8 = 1;\n      do {\n        uVar13 = *(ushort *)(lVar21 + -0x12);\n        uVar12 = (ulong)uVar13;\n        piVar14 = (int *)(lVar9 + (-0x18 - lVar10) + lVar21);\n        if (uVar13 < 0xff00) {\nLAB_001a350a:\n          if ((ulong)(param_1[0xb] - param_1[10] >> 3) <= uVar12) {\n                    \n            FUN_0016cdf0("../../gold/object.cc",0xad5,"write_local_symbols");\n          }\n          plVar20 = *(long **)(param_1[10] + uVar12 * 8);\n          if (plVar20 != (long *)0x0) {\n            if (*(code **)(*plVar20 + 0x58) == FUN_00175f90) {\n              uVar7 = *(uint *)((long)plVar20 + 0x7c);\n              if (uVar7 == 0xffffffff) {\n                    \n                FUN_0016cdf0("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar7 = (**(code **)(*plVar20 + 0x58))();\n            }\n            uVar13 = (ushort)uVar7;\n            iVar5 = *piVar14;\n            bVar11 = iVar5 != 0 && iVar5 != -2;\n            if (0xfeff < uVar7) {\n              if (iVar5 == 0 || iVar5 == -2) goto LAB_001a374c;\n              if (iVar5 != -1) {\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_5 + 0x38,&local_40);\n              }\n              iVar5 = piVar14[1];\n              if (iVar5 == 0) goto LAB_001a3764;\n              if (iVar5 == -1) {\n                iVar5 = *piVar14;\n                uVar13 = 0xffff;\n                bVar11 = iVar5 != 0 && iVar5 != -2;\n              }\n              else {\n                uVar13 = 0xffff;\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_6 + 0x38,&local_40);\n                iVar5 = *piVar14;\n                bVar11 = iVar5 != -2 && iVar5 != 0;\n              }\n            }\n            goto LAB_001a32f9;\n          }\n        }\n        else {\n          if (uVar13 == 0xffff) {\n            lVar9 = param_1[8];\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*param_1 + 0xd8))(param_1);\n              param_1[8] = lVar9;\n            }\n            uVar7 = FUN_0019a820(lVar9,param_1,local_b8);\n            uVar12 = (ulong)uVar7;\n            goto LAB_001a350a;\n          }\n          iVar5 = *piVar14;\n          bVar11 = iVar5 != 0 && iVar5 != -2;\nLAB_001a32f9:\n          if (!bVar11) {\nLAB_001a374c:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }\n          puVar23 = puVar24;\n          if (iVar5 != -1) {\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xae8,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_3,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar24 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) goto LAB_001a377c;\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a33ac:\n            *(undefined8 *)(puVar24 + 2) = uVar8;\n            puVar23 = puVar24 + 6;\n            *(undefined8 *)(puVar24 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar24 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar24 + 6) = uVar13;\n            *(undefined1 *)((long)puVar24 + 5) = uVar1;\n          }\n          if (piVar14[1] == 0) {\nLAB_001a3764:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x738,"has_output_dynsym_entry");\n          }\n          puVar24 = puVar23;\n          if (piVar14[1] != -1) {\n            if ((undefined4 *)((long)local_68 + uVar18) <= puVar22) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xafa,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_4,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar22 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    \n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");\n              }\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a349c:\n            *(undefined8 *)(puVar22 + 2) = uVar8;\n            *(undefined8 *)(puVar22 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar22 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar22 + 6) = uVar13;\n            *(undefined1 *)((long)puVar22 + 5) = uVar1;\n            puVar22 = puVar22 + 6;\n          }\n        }\n        local_b8 = local_b8 + 1;\n        lVar21 = lVar21 + 0x18;\n        if (uVar2 == local_b8) goto LAB_001a3680;\n        lVar9 = param_1[0x2c];\n      } while( true );\n    }" if (parenthesized_expression "((ulong)uVar2 == (param_1[0x2d] - lVar9 >> 3) * -0x5555555555555555)" ( (binary_expression "(ulong)uVar2 == (param_1[0x2d] - lVar9 >> 3) * -0x5555555555555555" (cast_expression "(ulong)uVar2" ( (type_descriptor "ulong" type_identifier) ) identifier) == (binary_expression "(param_1[0x2d] - lVar9 >> 3) * -0x5555555555555555" (parenthesized_expression "(param_1[0x2d] - lVar9 >> 3)" ( (binary_expression "param_1[0x2d] - lVar9 >> 3" (binary_expression "param_1[0x2d] - lVar9" (subscript_expression "param_1[0x2d]" identifier [ number_literal ]) - identifier) >> number_literal) )) * number_literal)) )) (compound_statement "{\n      puVar22 = local_68;\n      puVar24 = local_70;\n      if (uVar2 < 2) {\nLAB_001a3680:\n        if ((uVar16 != 0) && ((long)puVar24 - (long)local_70 != (ulong)uVar16)) {\n                    \n          FUN_0016cdf0("../../gold/object.cc",0xb0a,"write_local_symbols");\n        }\n        if ((uVar17 != 0) && ((long)puVar22 - (long)local_68 != uVar18)) {\n                    \n          FUN_0016cdf0("../../gold/object.cc",0xb11,"write_local_symbols");\n        }\n        return;\n      }\n      lVar21 = lVar10 + 0x30;\n      local_b8 = 1;\n      do {\n        uVar13 = *(ushort *)(lVar21 + -0x12);\n        uVar12 = (ulong)uVar13;\n        piVar14 = (int *)(lVar9 + (-0x18 - lVar10) + lVar21);\n        if (uVar13 < 0xff00) {\nLAB_001a350a:\n          if ((ulong)(param_1[0xb] - param_1[10] >> 3) <= uVar12) {\n                    \n            FUN_0016cdf0("../../gold/object.cc",0xad5,"write_local_symbols");\n          }\n          plVar20 = *(long **)(param_1[10] + uVar12 * 8);\n          if (plVar20 != (long *)0x0) {\n            if (*(code **)(*plVar20 + 0x58) == FUN_00175f90) {\n              uVar7 = *(uint *)((long)plVar20 + 0x7c);\n              if (uVar7 == 0xffffffff) {\n                    \n                FUN_0016cdf0("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar7 = (**(code **)(*plVar20 + 0x58))();\n            }\n            uVar13 = (ushort)uVar7;\n            iVar5 = *piVar14;\n            bVar11 = iVar5 != 0 && iVar5 != -2;\n            if (0xfeff < uVar7) {\n              if (iVar5 == 0 || iVar5 == -2) goto LAB_001a374c;\n              if (iVar5 != -1) {\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_5 + 0x38,&local_40);\n              }\n              iVar5 = piVar14[1];\n              if (iVar5 == 0) goto LAB_001a3764;\n              if (iVar5 == -1) {\n                iVar5 = *piVar14;\n                uVar13 = 0xffff;\n                bVar11 = iVar5 != 0 && iVar5 != -2;\n              }\n              else {\n                uVar13 = 0xffff;\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_6 + 0x38,&local_40);\n                iVar5 = *piVar14;\n                bVar11 = iVar5 != -2 && iVar5 != 0;\n              }\n            }\n            goto LAB_001a32f9;\n          }\n        }\n        else {\n          if (uVar13 == 0xffff) {\n            lVar9 = param_1[8];\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*param_1 + 0xd8))(param_1);\n              param_1[8] = lVar9;\n            }\n            uVar7 = FUN_0019a820(lVar9,param_1,local_b8);\n            uVar12 = (ulong)uVar7;\n            goto LAB_001a350a;\n          }\n          iVar5 = *piVar14;\n          bVar11 = iVar5 != 0 && iVar5 != -2;\nLAB_001a32f9:\n          if (!bVar11) {\nLAB_001a374c:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }\n          puVar23 = puVar24;\n          if (iVar5 != -1) {\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xae8,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_3,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar24 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) goto LAB_001a377c;\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a33ac:\n            *(undefined8 *)(puVar24 + 2) = uVar8;\n            puVar23 = puVar24 + 6;\n            *(undefined8 *)(puVar24 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar24 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar24 + 6) = uVar13;\n            *(undefined1 *)((long)puVar24 + 5) = uVar1;\n          }\n          if (piVar14[1] == 0) {\nLAB_001a3764:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x738,"has_output_dynsym_entry");\n          }\n          puVar24 = puVar23;\n          if (piVar14[1] != -1) {\n            if ((undefined4 *)((long)local_68 + uVar18) <= puVar22) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xafa,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_4,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar22 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    \n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");\n              }\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a349c:\n            *(undefined8 *)(puVar22 + 2) = uVar8;\n            *(undefined8 *)(puVar22 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar22 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar22 + 6) = uVar13;\n            *(undefined1 *)((long)puVar22 + 5) = uVar1;\n            puVar22 = puVar22 + 6;\n          }\n        }\n        local_b8 = local_b8 + 1;\n        lVar21 = lVar21 + 0x18;\n        if (uVar2 == local_b8) goto LAB_001a3680;\n        lVar9 = param_1[0x2c];\n      } while( true );\n    }" { (expression_statement "puVar22 = local_68;" (assignment_expression "puVar22 = local_68" identifier = identifier) ;) (expression_statement "puVar24 = local_70;" (assignment_expression "puVar24 = local_70" identifier = identifier) ;) (if_statement "if (uVar2 < 2) {\nLAB_001a3680:\n        if ((uVar16 != 0) && ((long)puVar24 - (long)local_70 != (ulong)uVar16)) {\n                    \n          FUN_0016cdf0("../../gold/object.cc",0xb0a,"write_local_symbols");\n        }\n        if ((uVar17 != 0) && ((long)puVar22 - (long)local_68 != uVar18)) {\n                    \n          FUN_0016cdf0("../../gold/object.cc",0xb11,"write_local_symbols");\n        }\n        return;\n      }" if (parenthesized_expression "(uVar2 < 2)" ( (binary_expression "uVar2 < 2" identifier < number_literal) )) (compound_statement "{\nLAB_001a3680:\n        if ((uVar16 != 0) && ((long)puVar24 - (long)local_70 != (ulong)uVar16)) {\n                    \n          FUN_0016cdf0("../../gold/object.cc",0xb0a,"write_local_symbols");\n        }\n        if ((uVar17 != 0) && ((long)puVar22 - (long)local_68 != uVar18)) {\n                    \n          FUN_0016cdf0("../../gold/object.cc",0xb11,"write_local_symbols");\n        }\n        return;\n      }" { (labeled_statement "LAB_001a3680:\n        if ((uVar16 != 0) && ((long)puVar24 - (long)local_70 != (ulong)uVar16)) {\n                    \n          FUN_0016cdf0("../../gold/object.cc",0xb0a,"write_local_symbols");\n        }" statement_identifier : (if_statement "if ((uVar16 != 0) && ((long)puVar24 - (long)local_70 != (ulong)uVar16)) {\n                    \n          FUN_0016cdf0("../../gold/object.cc",0xb0a,"write_local_symbols");\n        }" if (parenthesized_expression "((uVar16 != 0) && ((long)puVar24 - (long)local_70 != (ulong)uVar16))" ( (binary_expression "(uVar16 != 0) && ((long)puVar24 - (long)local_70 != (ulong)uVar16)" (parenthesized_expression "(uVar16 != 0)" ( (binary_expression "uVar16 != 0" identifier != number_literal) )) && (parenthesized_expression "((long)puVar24 - (long)local_70 != (ulong)uVar16)" ( (binary_expression "(long)puVar24 - (long)local_70 != (ulong)uVar16" (binary_expression "(long)puVar24 - (long)local_70" (cast_expression "(long)puVar24" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) != (cast_expression "(ulong)uVar16" ( (type_descriptor "ulong" type_identifier) ) identifier)) ))) )) (compound_statement "{\n                    \n          FUN_0016cdf0("../../gold/object.cc",0xb0a,"write_local_symbols");\n        }" { (expression_statement "FUN_0016cdf0("../../gold/object.cc",0xb0a,"write_local_symbols");" (call_expression "FUN_0016cdf0("../../gold/object.cc",0xb0a,"write_local_symbols")" identifier (argument_list "("../../gold/object.cc",0xb0a,"write_local_symbols")" ( (string_literal ""../../gold/object.cc"" " string_content ") , number_literal , (string_literal ""write_local_symbols"" " string_content ") ))) ;) }))) (if_statement "if ((uVar17 != 0) && ((long)puVar22 - (long)local_68 != uVar18)) {\n                    \n          FUN_0016cdf0("../../gold/object.cc",0xb11,"write_local_symbols");\n        }" if (parenthesized_expression "((uVar17 != 0) && ((long)puVar22 - (long)local_68 != uVar18))" ( (binary_expression "(uVar17 != 0) && ((long)puVar22 - (long)local_68 != uVar18)" (parenthesized_expression "(uVar17 != 0)" ( (binary_expression "uVar17 != 0" identifier != number_literal) )) && (parenthesized_expression "((long)puVar22 - (long)local_68 != uVar18)" ( (binary_expression "(long)puVar22 - (long)local_68 != uVar18" (binary_expression "(long)puVar22 - (long)local_68" (cast_expression "(long)puVar22" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)local_68" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) != identifier) ))) )) (compound_statement "{\n                    \n          FUN_0016cdf0("../../gold/object.cc",0xb11,"write_local_symbols");\n        }" { (expression_statement "FUN_0016cdf0("../../gold/object.cc",0xb11,"write_local_symbols");" (call_expression "FUN_0016cdf0("../../gold/object.cc",0xb11,"write_local_symbols")" identifier (argument_list "("../../gold/object.cc",0xb11,"write_local_symbols")" ( (string_literal ""../../gold/object.cc"" " string_content ") , number_literal , (string_literal ""write_local_symbols"" " string_content ") ))) ;) })) (return_statement "return;" return ;) })) (expression_statement "lVar21 = lVar10 + 0x30;" (assignment_expression "lVar21 = lVar10 + 0x30" identifier = (binary_expression "lVar10 + 0x30" identifier + number_literal)) ;) (expression_statement "local_b8 = 1;" (assignment_expression "local_b8 = 1" identifier = number_literal) ;) (do_statement "do {\n        uVar13 = *(ushort *)(lVar21 + -0x12);\n        uVar12 = (ulong)uVar13;\n        piVar14 = (int *)(lVar9 + (-0x18 - lVar10) + lVar21);\n        if (uVar13 < 0xff00) {\nLAB_001a350a:\n          if ((ulong)(param_1[0xb] - param_1[10] >> 3) <= uVar12) {\n                    \n            FUN_0016cdf0("../../gold/object.cc",0xad5,"write_local_symbols");\n          }\n          plVar20 = *(long **)(param_1[10] + uVar12 * 8);\n          if (plVar20 != (long *)0x0) {\n            if (*(code **)(*plVar20 + 0x58) == FUN_00175f90) {\n              uVar7 = *(uint *)((long)plVar20 + 0x7c);\n              if (uVar7 == 0xffffffff) {\n                    \n                FUN_0016cdf0("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar7 = (**(code **)(*plVar20 + 0x58))();\n            }\n            uVar13 = (ushort)uVar7;\n            iVar5 = *piVar14;\n            bVar11 = iVar5 != 0 && iVar5 != -2;\n            if (0xfeff < uVar7) {\n              if (iVar5 == 0 || iVar5 == -2) goto LAB_001a374c;\n              if (iVar5 != -1) {\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_5 + 0x38,&local_40);\n              }\n              iVar5 = piVar14[1];\n              if (iVar5 == 0) goto LAB_001a3764;\n              if (iVar5 == -1) {\n                iVar5 = *piVar14;\n                uVar13 = 0xffff;\n                bVar11 = iVar5 != 0 && iVar5 != -2;\n              }\n              else {\n                uVar13 = 0xffff;\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_6 + 0x38,&local_40);\n                iVar5 = *piVar14;\n                bVar11 = iVar5 != -2 && iVar5 != 0;\n              }\n            }\n            goto LAB_001a32f9;\n          }\n        }\n        else {\n          if (uVar13 == 0xffff) {\n            lVar9 = param_1[8];\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*param_1 + 0xd8))(param_1);\n              param_1[8] = lVar9;\n            }\n            uVar7 = FUN_0019a820(lVar9,param_1,local_b8);\n            uVar12 = (ulong)uVar7;\n            goto LAB_001a350a;\n          }\n          iVar5 = *piVar14;\n          bVar11 = iVar5 != 0 && iVar5 != -2;\nLAB_001a32f9:\n          if (!bVar11) {\nLAB_001a374c:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }\n          puVar23 = puVar24;\n          if (iVar5 != -1) {\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xae8,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_3,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar24 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) goto LAB_001a377c;\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a33ac:\n            *(undefined8 *)(puVar24 + 2) = uVar8;\n            puVar23 = puVar24 + 6;\n            *(undefined8 *)(puVar24 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar24 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar24 + 6) = uVar13;\n            *(undefined1 *)((long)puVar24 + 5) = uVar1;\n          }\n          if (piVar14[1] == 0) {\nLAB_001a3764:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x738,"has_output_dynsym_entry");\n          }\n          puVar24 = puVar23;\n          if (piVar14[1] != -1) {\n            if ((undefined4 *)((long)local_68 + uVar18) <= puVar22) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xafa,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_4,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar22 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    \n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");\n              }\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a349c:\n            *(undefined8 *)(puVar22 + 2) = uVar8;\n            *(undefined8 *)(puVar22 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar22 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar22 + 6) = uVar13;\n            *(undefined1 *)((long)puVar22 + 5) = uVar1;\n            puVar22 = puVar22 + 6;\n          }\n        }\n        local_b8 = local_b8 + 1;\n        lVar21 = lVar21 + 0x18;\n        if (uVar2 == local_b8) goto LAB_001a3680;\n        lVar9 = param_1[0x2c];\n      } while( true );" do (compound_statement "{\n        uVar13 = *(ushort *)(lVar21 + -0x12);\n        uVar12 = (ulong)uVar13;\n        piVar14 = (int *)(lVar9 + (-0x18 - lVar10) + lVar21);\n        if (uVar13 < 0xff00) {\nLAB_001a350a:\n          if ((ulong)(param_1[0xb] - param_1[10] >> 3) <= uVar12) {\n                    \n            FUN_0016cdf0("../../gold/object.cc",0xad5,"write_local_symbols");\n          }\n          plVar20 = *(long **)(param_1[10] + uVar12 * 8);\n          if (plVar20 != (long *)0x0) {\n            if (*(code **)(*plVar20 + 0x58) == FUN_00175f90) {\n              uVar7 = *(uint *)((long)plVar20 + 0x7c);\n              if (uVar7 == 0xffffffff) {\n                    \n                FUN_0016cdf0("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar7 = (**(code **)(*plVar20 + 0x58))();\n            }\n            uVar13 = (ushort)uVar7;\n            iVar5 = *piVar14;\n            bVar11 = iVar5 != 0 && iVar5 != -2;\n            if (0xfeff < uVar7) {\n              if (iVar5 == 0 || iVar5 == -2) goto LAB_001a374c;\n              if (iVar5 != -1) {\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_5 + 0x38,&local_40);\n              }\n              iVar5 = piVar14[1];\n              if (iVar5 == 0) goto LAB_001a3764;\n              if (iVar5 == -1) {\n                iVar5 = *piVar14;\n                uVar13 = 0xffff;\n                bVar11 = iVar5 != 0 && iVar5 != -2;\n              }\n              else {\n                uVar13 = 0xffff;\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_6 + 0x38,&local_40);\n                iVar5 = *piVar14;\n                bVar11 = iVar5 != -2 && iVar5 != 0;\n              }\n            }\n            goto LAB_001a32f9;\n          }\n        }\n        else {\n          if (uVar13 == 0xffff) {\n            lVar9 = param_1[8];\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*param_1 + 0xd8))(param_1);\n              param_1[8] = lVar9;\n            }\n            uVar7 = FUN_0019a820(lVar9,param_1,local_b8);\n            uVar12 = (ulong)uVar7;\n            goto LAB_001a350a;\n          }\n          iVar5 = *piVar14;\n          bVar11 = iVar5 != 0 && iVar5 != -2;\nLAB_001a32f9:\n          if (!bVar11) {\nLAB_001a374c:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }\n          puVar23 = puVar24;\n          if (iVar5 != -1) {\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xae8,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_3,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar24 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) goto LAB_001a377c;\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a33ac:\n            *(undefined8 *)(puVar24 + 2) = uVar8;\n            puVar23 = puVar24 + 6;\n            *(undefined8 *)(puVar24 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar24 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar24 + 6) = uVar13;\n            *(undefined1 *)((long)puVar24 + 5) = uVar1;\n          }\n          if (piVar14[1] == 0) {\nLAB_001a3764:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x738,"has_output_dynsym_entry");\n          }\n          puVar24 = puVar23;\n          if (piVar14[1] != -1) {\n            if ((undefined4 *)((long)local_68 + uVar18) <= puVar22) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xafa,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_4,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar22 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    \n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");\n              }\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a349c:\n            *(undefined8 *)(puVar22 + 2) = uVar8;\n            *(undefined8 *)(puVar22 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar22 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar22 + 6) = uVar13;\n            *(undefined1 *)((long)puVar22 + 5) = uVar1;\n            puVar22 = puVar22 + 6;\n          }\n        }\n        local_b8 = local_b8 + 1;\n        lVar21 = lVar21 + 0x18;\n        if (uVar2 == local_b8) goto LAB_001a3680;\n        lVar9 = param_1[0x2c];\n      }" { (expression_statement "uVar13 = *(ushort *)(lVar21 + -0x12);" (assignment_expression "uVar13 = *(ushort *)(lVar21 + -0x12)" identifier = (pointer_expression "*(ushort *)(lVar21 + -0x12)" * (cast_expression "(ushort *)(lVar21 + -0x12)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar21 + -0x12)" ( (binary_expression "lVar21 + -0x12" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = (ulong)uVar13;" (assignment_expression "uVar12 = (ulong)uVar13" identifier = (cast_expression "(ulong)uVar13" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "piVar14 = (int *)(lVar9 + (-0x18 - lVar10) + lVar21);" (assignment_expression "piVar14 = (int *)(lVar9 + (-0x18 - lVar10) + lVar21)" identifier = (cast_expression "(int *)(lVar9 + (-0x18 - lVar10) + lVar21)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + (-0x18 - lVar10) + lVar21)" ( (binary_expression "lVar9 + (-0x18 - lVar10) + lVar21" (binary_expression "lVar9 + (-0x18 - lVar10)" identifier + (parenthesized_expression "(-0x18 - lVar10)" ( (binary_expression "-0x18 - lVar10" number_literal - identifier) ))) + identifier) )))) ;) (if_statement "if (uVar13 < 0xff00) {\nLAB_001a350a:\n          if ((ulong)(param_1[0xb] - param_1[10] >> 3) <= uVar12) {\n                    \n            FUN_0016cdf0("../../gold/object.cc",0xad5,"write_local_symbols");\n          }\n          plVar20 = *(long **)(param_1[10] + uVar12 * 8);\n          if (plVar20 != (long *)0x0) {\n            if (*(code **)(*plVar20 + 0x58) == FUN_00175f90) {\n              uVar7 = *(uint *)((long)plVar20 + 0x7c);\n              if (uVar7 == 0xffffffff) {\n                    \n                FUN_0016cdf0("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar7 = (**(code **)(*plVar20 + 0x58))();\n            }\n            uVar13 = (ushort)uVar7;\n            iVar5 = *piVar14;\n            bVar11 = iVar5 != 0 && iVar5 != -2;\n            if (0xfeff < uVar7) {\n              if (iVar5 == 0 || iVar5 == -2) goto LAB_001a374c;\n              if (iVar5 != -1) {\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_5 + 0x38,&local_40);\n              }\n              iVar5 = piVar14[1];\n              if (iVar5 == 0) goto LAB_001a3764;\n              if (iVar5 == -1) {\n                iVar5 = *piVar14;\n                uVar13 = 0xffff;\n                bVar11 = iVar5 != 0 && iVar5 != -2;\n              }\n              else {\n                uVar13 = 0xffff;\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_6 + 0x38,&local_40);\n                iVar5 = *piVar14;\n                bVar11 = iVar5 != -2 && iVar5 != 0;\n              }\n            }\n            goto LAB_001a32f9;\n          }\n        }\n        else {\n          if (uVar13 == 0xffff) {\n            lVar9 = param_1[8];\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*param_1 + 0xd8))(param_1);\n              param_1[8] = lVar9;\n            }\n            uVar7 = FUN_0019a820(lVar9,param_1,local_b8);\n            uVar12 = (ulong)uVar7;\n            goto LAB_001a350a;\n          }\n          iVar5 = *piVar14;\n          bVar11 = iVar5 != 0 && iVar5 != -2;\nLAB_001a32f9:\n          if (!bVar11) {\nLAB_001a374c:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }\n          puVar23 = puVar24;\n          if (iVar5 != -1) {\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xae8,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_3,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar24 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) goto LAB_001a377c;\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a33ac:\n            *(undefined8 *)(puVar24 + 2) = uVar8;\n            puVar23 = puVar24 + 6;\n            *(undefined8 *)(puVar24 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar24 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar24 + 6) = uVar13;\n            *(undefined1 *)((long)puVar24 + 5) = uVar1;\n          }\n          if (piVar14[1] == 0) {\nLAB_001a3764:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x738,"has_output_dynsym_entry");\n          }\n          puVar24 = puVar23;\n          if (piVar14[1] != -1) {\n            if ((undefined4 *)((long)local_68 + uVar18) <= puVar22) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xafa,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_4,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar22 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    \n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");\n              }\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a349c:\n            *(undefined8 *)(puVar22 + 2) = uVar8;\n            *(undefined8 *)(puVar22 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar22 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar22 + 6) = uVar13;\n            *(undefined1 *)((long)puVar22 + 5) = uVar1;\n            puVar22 = puVar22 + 6;\n          }\n        }" if (parenthesized_expression "(uVar13 < 0xff00)" ( (binary_expression "uVar13 < 0xff00" identifier < number_literal) )) (compound_statement "{\nLAB_001a350a:\n          if ((ulong)(param_1[0xb] - param_1[10] >> 3) <= uVar12) {\n                    \n            FUN_0016cdf0("../../gold/object.cc",0xad5,"write_local_symbols");\n          }\n          plVar20 = *(long **)(param_1[10] + uVar12 * 8);\n          if (plVar20 != (long *)0x0) {\n            if (*(code **)(*plVar20 + 0x58) == FUN_00175f90) {\n              uVar7 = *(uint *)((long)plVar20 + 0x7c);\n              if (uVar7 == 0xffffffff) {\n                    \n                FUN_0016cdf0("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar7 = (**(code **)(*plVar20 + 0x58))();\n            }\n            uVar13 = (ushort)uVar7;\n            iVar5 = *piVar14;\n            bVar11 = iVar5 != 0 && iVar5 != -2;\n            if (0xfeff < uVar7) {\n              if (iVar5 == 0 || iVar5 == -2) goto LAB_001a374c;\n              if (iVar5 != -1) {\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_5 + 0x38,&local_40);\n              }\n              iVar5 = piVar14[1];\n              if (iVar5 == 0) goto LAB_001a3764;\n              if (iVar5 == -1) {\n                iVar5 = *piVar14;\n                uVar13 = 0xffff;\n                bVar11 = iVar5 != 0 && iVar5 != -2;\n              }\n              else {\n                uVar13 = 0xffff;\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_6 + 0x38,&local_40);\n                iVar5 = *piVar14;\n                bVar11 = iVar5 != -2 && iVar5 != 0;\n              }\n            }\n            goto LAB_001a32f9;\n          }\n        }" { (labeled_statement "LAB_001a350a:\n          if ((ulong)(param_1[0xb] - param_1[10] >> 3) <= uVar12) {\n                    \n            FUN_0016cdf0("../../gold/object.cc",0xad5,"write_local_symbols");\n          }" statement_identifier : (if_statement "if ((ulong)(param_1[0xb] - param_1[10] >> 3) <= uVar12) {\n                    \n            FUN_0016cdf0("../../gold/object.cc",0xad5,"write_local_symbols");\n          }" if (parenthesized_expression "((ulong)(param_1[0xb] - param_1[10] >> 3) <= uVar12)" ( (binary_expression "(ulong)(param_1[0xb] - param_1[10] >> 3) <= uVar12" (call_expression "(ulong)(param_1[0xb] - param_1[10] >> 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(param_1[0xb] - param_1[10] >> 3)" ( (binary_expression "param_1[0xb] - param_1[10] >> 3" (binary_expression "param_1[0xb] - param_1[10]" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) - (subscript_expression "param_1[10]" identifier [ number_literal ])) >> number_literal) ))) <= identifier) )) (compound_statement "{\n                    \n            FUN_0016cdf0("../../gold/object.cc",0xad5,"write_local_symbols");\n          }" { (expression_statement "FUN_0016cdf0("../../gold/object.cc",0xad5,"write_local_symbols");" (call_expression "FUN_0016cdf0("../../gold/object.cc",0xad5,"write_local_symbols")" identifier (argument_list "("../../gold/object.cc",0xad5,"write_local_symbols")" ( (string_literal ""../../gold/object.cc"" " string_content ") , number_literal , (string_literal ""write_local_symbols"" " string_content ") ))) ;) }))) (expression_statement "plVar20 = *(long **)(param_1[10] + uVar12 * 8);" (assignment_expression "plVar20 = *(long **)(param_1[10] + uVar12 * 8)" identifier = (pointer_expression "*(long **)(param_1[10] + uVar12 * 8)" * (cast_expression "(long **)(param_1[10] + uVar12 * 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1[10] + uVar12 * 8)" ( (binary_expression "param_1[10] + uVar12 * 8" (subscript_expression "param_1[10]" identifier [ number_literal ]) + (binary_expression "uVar12 * 8" identifier * number_literal)) ))))) ;) (if_statement "if (plVar20 != (long *)0x0) {\n            if (*(code **)(*plVar20 + 0x58) == FUN_00175f90) {\n              uVar7 = *(uint *)((long)plVar20 + 0x7c);\n              if (uVar7 == 0xffffffff) {\n                    \n                FUN_0016cdf0("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar7 = (**(code **)(*plVar20 + 0x58))();\n            }\n            uVar13 = (ushort)uVar7;\n            iVar5 = *piVar14;\n            bVar11 = iVar5 != 0 && iVar5 != -2;\n            if (0xfeff < uVar7) {\n              if (iVar5 == 0 || iVar5 == -2) goto LAB_001a374c;\n              if (iVar5 != -1) {\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_5 + 0x38,&local_40);\n              }\n              iVar5 = piVar14[1];\n              if (iVar5 == 0) goto LAB_001a3764;\n              if (iVar5 == -1) {\n                iVar5 = *piVar14;\n                uVar13 = 0xffff;\n                bVar11 = iVar5 != 0 && iVar5 != -2;\n              }\n              else {\n                uVar13 = 0xffff;\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_6 + 0x38,&local_40);\n                iVar5 = *piVar14;\n                bVar11 = iVar5 != -2 && iVar5 != 0;\n              }\n            }\n            goto LAB_001a32f9;\n          }" if (parenthesized_expression "(plVar20 != (long *)0x0)" ( (binary_expression "plVar20 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if (*(code **)(*plVar20 + 0x58) == FUN_00175f90) {\n              uVar7 = *(uint *)((long)plVar20 + 0x7c);\n              if (uVar7 == 0xffffffff) {\n                    \n                FUN_0016cdf0("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar7 = (**(code **)(*plVar20 + 0x58))();\n            }\n            uVar13 = (ushort)uVar7;\n            iVar5 = *piVar14;\n            bVar11 = iVar5 != 0 && iVar5 != -2;\n            if (0xfeff < uVar7) {\n              if (iVar5 == 0 || iVar5 == -2) goto LAB_001a374c;\n              if (iVar5 != -1) {\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_5 + 0x38,&local_40);\n              }\n              iVar5 = piVar14[1];\n              if (iVar5 == 0) goto LAB_001a3764;\n              if (iVar5 == -1) {\n                iVar5 = *piVar14;\n                uVar13 = 0xffff;\n                bVar11 = iVar5 != 0 && iVar5 != -2;\n              }\n              else {\n                uVar13 = 0xffff;\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_6 + 0x38,&local_40);\n                iVar5 = *piVar14;\n                bVar11 = iVar5 != -2 && iVar5 != 0;\n              }\n            }\n            goto LAB_001a32f9;\n          }" { (if_statement "if (*(code **)(*plVar20 + 0x58) == FUN_00175f90) {\n              uVar7 = *(uint *)((long)plVar20 + 0x7c);\n              if (uVar7 == 0xffffffff) {\n                    \n                FUN_0016cdf0("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar7 = (**(code **)(*plVar20 + 0x58))();\n            }" if (parenthesized_expression "(*(code **)(*plVar20 + 0x58) == FUN_00175f90)" ( (binary_expression "*(code **)(*plVar20 + 0x58) == FUN_00175f90" (pointer_expression "*(code **)(*plVar20 + 0x58)" * (cast_expression "(code **)(*plVar20 + 0x58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar20 + 0x58)" ( (binary_expression "*plVar20 + 0x58" (pointer_expression "*plVar20" * identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n              uVar7 = *(uint *)((long)plVar20 + 0x7c);\n              if (uVar7 == 0xffffffff) {\n                    \n                FUN_0016cdf0("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }" { (expression_statement "uVar7 = *(uint *)((long)plVar20 + 0x7c);" (assignment_expression "uVar7 = *(uint *)((long)plVar20 + 0x7c)" identifier = (pointer_expression "*(uint *)((long)plVar20 + 0x7c)" * (cast_expression "(uint *)((long)plVar20 + 0x7c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar20 + 0x7c)" ( (binary_expression "(long)plVar20 + 0x7c" (cast_expression "(long)plVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (if_statement "if (uVar7 == 0xffffffff) {\n                    \n                FUN_0016cdf0("../../gold/output.h",0x1043,"do_out_shndx");\n              }" if (parenthesized_expression "(uVar7 == 0xffffffff)" ( (binary_expression "uVar7 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n                    \n                FUN_0016cdf0("../../gold/output.h",0x1043,"do_out_shndx");\n              }" { (expression_statement "FUN_0016cdf0("../../gold/output.h",0x1043,"do_out_shndx");" (call_expression "FUN_0016cdf0("../../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              uVar7 = (**(code **)(*plVar20 + 0x58))();\n            }" else (compound_statement "{\n              uVar7 = (**(code **)(*plVar20 + 0x58))();\n            }" { (expression_statement "uVar7 = (**(code **)(*plVar20 + 0x58))();" (assignment_expression "uVar7 = (**(code **)(*plVar20 + 0x58))()" identifier = (call_expression "(**(code **)(*plVar20 + 0x58))()" (parenthesized_expression "(**(code **)(*plVar20 + 0x58))" ( (pointer_expression "**(code **)(*plVar20 + 0x58)" * (pointer_expression "*(code **)(*plVar20 + 0x58)" * (cast_expression "(code **)(*plVar20 + 0x58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar20 + 0x58)" ( (binary_expression "*plVar20 + 0x58" (pointer_expression "*plVar20" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }))) (expression_statement "uVar13 = (ushort)uVar7;" (assignment_expression "uVar13 = (ushort)uVar7" identifier = (cast_expression "(ushort)uVar7" ( (type_descriptor "ushort" type_identifier) ) identifier)) ;) (expression_statement "iVar5 = *piVar14;" (assignment_expression "iVar5 = *piVar14" identifier = (pointer_expression "*piVar14" * identifier)) ;) (expression_statement "bVar11 = iVar5 != 0 && iVar5 != -2;" (assignment_expression "bVar11 = iVar5 != 0 && iVar5 != -2" identifier = (binary_expression "iVar5 != 0 && iVar5 != -2" (binary_expression "iVar5 != 0" identifier != number_literal) && (binary_expression "iVar5 != -2" identifier != number_literal))) ;) (if_statement "if (0xfeff < uVar7) {\n              if (iVar5 == 0 || iVar5 == -2) goto LAB_001a374c;\n              if (iVar5 != -1) {\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_5 + 0x38,&local_40);\n              }\n              iVar5 = piVar14[1];\n              if (iVar5 == 0) goto LAB_001a3764;\n              if (iVar5 == -1) {\n                iVar5 = *piVar14;\n                uVar13 = 0xffff;\n                bVar11 = iVar5 != 0 && iVar5 != -2;\n              }\n              else {\n                uVar13 = 0xffff;\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_6 + 0x38,&local_40);\n                iVar5 = *piVar14;\n                bVar11 = iVar5 != -2 && iVar5 != 0;\n              }\n            }" if (parenthesized_expression "(0xfeff < uVar7)" ( (binary_expression "0xfeff < uVar7" number_literal < identifier) )) (compound_statement "{\n              if (iVar5 == 0 || iVar5 == -2) goto LAB_001a374c;\n              if (iVar5 != -1) {\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_5 + 0x38,&local_40);\n              }\n              iVar5 = piVar14[1];\n              if (iVar5 == 0) goto LAB_001a3764;\n              if (iVar5 == -1) {\n                iVar5 = *piVar14;\n                uVar13 = 0xffff;\n                bVar11 = iVar5 != 0 && iVar5 != -2;\n              }\n              else {\n                uVar13 = 0xffff;\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_6 + 0x38,&local_40);\n                iVar5 = *piVar14;\n                bVar11 = iVar5 != -2 && iVar5 != 0;\n              }\n            }" { (if_statement "if (iVar5 == 0 || iVar5 == -2) goto LAB_001a374c;" if (parenthesized_expression "(iVar5 == 0 || iVar5 == -2)" ( (binary_expression "iVar5 == 0 || iVar5 == -2" (binary_expression "iVar5 == 0" identifier == number_literal) || (binary_expression "iVar5 == -2" identifier == number_literal)) )) (goto_statement "goto LAB_001a374c;" goto statement_identifier ;)) (if_statement "if (iVar5 != -1) {\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_5 + 0x38,&local_40);\n              }" if (parenthesized_expression "(iVar5 != -1)" ( (binary_expression "iVar5 != -1" identifier != number_literal) )) (compound_statement "{\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_5 + 0x38,&local_40);\n              }" { (expression_statement "local_40 = iVar5;" (assignment_expression "local_40 = iVar5" identifier = identifier) ;) (expression_statement "local_3c = uVar7;" (assignment_expression "local_3c = uVar7" identifier = identifier) ;) (expression_statement "FUN_0017ab80(param_5 + 0x38,&local_40);" (call_expression "FUN_0017ab80(param_5 + 0x38,&local_40)" identifier (argument_list "(param_5 + 0x38,&local_40)" ( (binary_expression "param_5 + 0x38" identifier + number_literal) , (pointer_expression "&local_40" & identifier) ))) ;) })) (expression_statement "iVar5 = piVar14[1];" (assignment_expression "iVar5 = piVar14[1]" identifier = (subscript_expression "piVar14[1]" identifier [ number_literal ])) ;) (if_statement "if (iVar5 == 0) goto LAB_001a3764;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001a3764;" goto statement_identifier ;)) (if_statement "if (iVar5 == -1) {\n                iVar5 = *piVar14;\n                uVar13 = 0xffff;\n                bVar11 = iVar5 != 0 && iVar5 != -2;\n              }\n              else {\n                uVar13 = 0xffff;\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_6 + 0x38,&local_40);\n                iVar5 = *piVar14;\n                bVar11 = iVar5 != -2 && iVar5 != 0;\n              }" if (parenthesized_expression "(iVar5 == -1)" ( (binary_expression "iVar5 == -1" identifier == number_literal) )) (compound_statement "{\n                iVar5 = *piVar14;\n                uVar13 = 0xffff;\n                bVar11 = iVar5 != 0 && iVar5 != -2;\n              }" { (expression_statement "iVar5 = *piVar14;" (assignment_expression "iVar5 = *piVar14" identifier = (pointer_expression "*piVar14" * identifier)) ;) (expression_statement "uVar13 = 0xffff;" (assignment_expression "uVar13 = 0xffff" identifier = number_literal) ;) (expression_statement "bVar11 = iVar5 != 0 && iVar5 != -2;" (assignment_expression "bVar11 = iVar5 != 0 && iVar5 != -2" identifier = (binary_expression "iVar5 != 0 && iVar5 != -2" (binary_expression "iVar5 != 0" identifier != number_literal) && (binary_expression "iVar5 != -2" identifier != number_literal))) ;) }) (else_clause "else {\n                uVar13 = 0xffff;\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_6 + 0x38,&local_40);\n                iVar5 = *piVar14;\n                bVar11 = iVar5 != -2 && iVar5 != 0;\n              }" else (compound_statement "{\n                uVar13 = 0xffff;\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_6 + 0x38,&local_40);\n                iVar5 = *piVar14;\n                bVar11 = iVar5 != -2 && iVar5 != 0;\n              }" { (expression_statement "uVar13 = 0xffff;" (assignment_expression "uVar13 = 0xffff" identifier = number_literal) ;) (expression_statement "local_40 = iVar5;" (assignment_expression "local_40 = iVar5" identifier = identifier) ;) (expression_statement "local_3c = uVar7;" (assignment_expression "local_3c = uVar7" identifier = identifier) ;) (expression_statement "FUN_0017ab80(param_6 + 0x38,&local_40);" (call_expression "FUN_0017ab80(param_6 + 0x38,&local_40)" identifier (argument_list "(param_6 + 0x38,&local_40)" ( (binary_expression "param_6 + 0x38" identifier + number_literal) , (pointer_expression "&local_40" & identifier) ))) ;) (expression_statement "iVar5 = *piVar14;" (assignment_expression "iVar5 = *piVar14" identifier = (pointer_expression "*piVar14" * identifier)) ;) (expression_statement "bVar11 = iVar5 != -2 && iVar5 != 0;" (assignment_expression "bVar11 = iVar5 != -2 && iVar5 != 0" identifier = (binary_expression "iVar5 != -2 && iVar5 != 0" (binary_expression "iVar5 != -2" identifier != number_literal) && (binary_expression "iVar5 != 0" identifier != number_literal))) ;) }))) })) (goto_statement "goto LAB_001a32f9;" goto statement_identifier ;) })) }) (else_clause "else {\n          if (uVar13 == 0xffff) {\n            lVar9 = param_1[8];\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*param_1 + 0xd8))(param_1);\n              param_1[8] = lVar9;\n            }\n            uVar7 = FUN_0019a820(lVar9,param_1,local_b8);\n            uVar12 = (ulong)uVar7;\n            goto LAB_001a350a;\n          }\n          iVar5 = *piVar14;\n          bVar11 = iVar5 != 0 && iVar5 != -2;\nLAB_001a32f9:\n          if (!bVar11) {\nLAB_001a374c:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }\n          puVar23 = puVar24;\n          if (iVar5 != -1) {\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xae8,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_3,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar24 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) goto LAB_001a377c;\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a33ac:\n            *(undefined8 *)(puVar24 + 2) = uVar8;\n            puVar23 = puVar24 + 6;\n            *(undefined8 *)(puVar24 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar24 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar24 + 6) = uVar13;\n            *(undefined1 *)((long)puVar24 + 5) = uVar1;\n          }\n          if (piVar14[1] == 0) {\nLAB_001a3764:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x738,"has_output_dynsym_entry");\n          }\n          puVar24 = puVar23;\n          if (piVar14[1] != -1) {\n            if ((undefined4 *)((long)local_68 + uVar18) <= puVar22) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xafa,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_4,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar22 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    \n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");\n              }\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a349c:\n            *(undefined8 *)(puVar22 + 2) = uVar8;\n            *(undefined8 *)(puVar22 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar22 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar22 + 6) = uVar13;\n            *(undefined1 *)((long)puVar22 + 5) = uVar1;\n            puVar22 = puVar22 + 6;\n          }\n        }" else (compound_statement "{\n          if (uVar13 == 0xffff) {\n            lVar9 = param_1[8];\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*param_1 + 0xd8))(param_1);\n              param_1[8] = lVar9;\n            }\n            uVar7 = FUN_0019a820(lVar9,param_1,local_b8);\n            uVar12 = (ulong)uVar7;\n            goto LAB_001a350a;\n          }\n          iVar5 = *piVar14;\n          bVar11 = iVar5 != 0 && iVar5 != -2;\nLAB_001a32f9:\n          if (!bVar11) {\nLAB_001a374c:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }\n          puVar23 = puVar24;\n          if (iVar5 != -1) {\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xae8,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_3,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar24 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) goto LAB_001a377c;\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a33ac:\n            *(undefined8 *)(puVar24 + 2) = uVar8;\n            puVar23 = puVar24 + 6;\n            *(undefined8 *)(puVar24 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar24 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar24 + 6) = uVar13;\n            *(undefined1 *)((long)puVar24 + 5) = uVar1;\n          }\n          if (piVar14[1] == 0) {\nLAB_001a3764:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x738,"has_output_dynsym_entry");\n          }\n          puVar24 = puVar23;\n          if (piVar14[1] != -1) {\n            if ((undefined4 *)((long)local_68 + uVar18) <= puVar22) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xafa,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_4,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar22 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    \n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");\n              }\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a349c:\n            *(undefined8 *)(puVar22 + 2) = uVar8;\n            *(undefined8 *)(puVar22 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar22 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar22 + 6) = uVar13;\n            *(undefined1 *)((long)puVar22 + 5) = uVar1;\n            puVar22 = puVar22 + 6;\n          }\n        }" { (if_statement "if (uVar13 == 0xffff) {\n            lVar9 = param_1[8];\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*param_1 + 0xd8))(param_1);\n              param_1[8] = lVar9;\n            }\n            uVar7 = FUN_0019a820(lVar9,param_1,local_b8);\n            uVar12 = (ulong)uVar7;\n            goto LAB_001a350a;\n          }" if (parenthesized_expression "(uVar13 == 0xffff)" ( (binary_expression "uVar13 == 0xffff" identifier == number_literal) )) (compound_statement "{\n            lVar9 = param_1[8];\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*param_1 + 0xd8))(param_1);\n              param_1[8] = lVar9;\n            }\n            uVar7 = FUN_0019a820(lVar9,param_1,local_b8);\n            uVar12 = (ulong)uVar7;\n            goto LAB_001a350a;\n          }" { (expression_statement "lVar9 = param_1[8];" (assignment_expression "lVar9 = param_1[8]" identifier = (subscript_expression "param_1[8]" identifier [ number_literal ])) ;) (if_statement "if (lVar9 == 0) {\n              lVar9 = (**(code **)(*param_1 + 0xd8))(param_1);\n              param_1[8] = lVar9;\n            }" if (parenthesized_expression "(lVar9 == 0)" ( (binary_expression "lVar9 == 0" identifier == number_literal) )) (compound_statement "{\n              lVar9 = (**(code **)(*param_1 + 0xd8))(param_1);\n              param_1[8] = lVar9;\n            }" { (expression_statement "lVar9 = (**(code **)(*param_1 + 0xd8))(param_1);" (assignment_expression "lVar9 = (**(code **)(*param_1 + 0xd8))(param_1)" identifier = (call_expression "(**(code **)(*param_1 + 0xd8))(param_1)" (parenthesized_expression "(**(code **)(*param_1 + 0xd8))" ( (pointer_expression "**(code **)(*param_1 + 0xd8)" * (pointer_expression "*(code **)(*param_1 + 0xd8)" * (cast_expression "(code **)(*param_1 + 0xd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0xd8)" ( (binary_expression "*param_1 + 0xd8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) )) (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "param_1[8] = lVar9;" (assignment_expression "param_1[8] = lVar9" (subscript_expression "param_1[8]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "uVar7 = FUN_0019a820(lVar9,param_1,local_b8);" (assignment_expression "uVar7 = FUN_0019a820(lVar9,param_1,local_b8)" identifier = (call_expression "FUN_0019a820(lVar9,param_1,local_b8)" identifier (argument_list "(lVar9,param_1,local_b8)" ( identifier , identifier , identifier )))) ;) (expression_statement "uVar12 = (ulong)uVar7;" (assignment_expression "uVar12 = (ulong)uVar7" identifier = (cast_expression "(ulong)uVar7" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (goto_statement "goto LAB_001a350a;" goto statement_identifier ;) })) (expression_statement "iVar5 = *piVar14;" (assignment_expression "iVar5 = *piVar14" identifier = (pointer_expression "*piVar14" * identifier)) ;) (expression_statement "bVar11 = iVar5 != 0 && iVar5 != -2;" (assignment_expression "bVar11 = iVar5 != 0 && iVar5 != -2" identifier = (binary_expression "iVar5 != 0 && iVar5 != -2" (binary_expression "iVar5 != 0" identifier != number_literal) && (binary_expression "iVar5 != -2" identifier != number_literal))) ;) (labeled_statement "LAB_001a32f9:\n          if (!bVar11) {\nLAB_001a374c:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }" statement_identifier : (if_statement "if (!bVar11) {\nLAB_001a374c:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }" if (parenthesized_expression "(!bVar11)" ( (unary_expression "!bVar11" ! identifier) )) (compound_statement "{\nLAB_001a374c:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }" { (labeled_statement "LAB_001a374c:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x6fb,"has_output_symtab_entry");" statement_identifier : (expression_statement "FUN_0016cdf0("../../gold/object.h",0x6fb,"has_output_symtab_entry");" (call_expression "FUN_0016cdf0("../../gold/object.h",0x6fb,"has_output_symtab_entry")" identifier (argument_list "("../../gold/object.h",0x6fb,"has_output_symtab_entry")" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""has_output_symtab_entry"" " string_content ") ))) ;)) }))) (expression_statement "puVar23 = puVar24;" (assignment_expression "puVar23 = puVar24" identifier = identifier) ;) (if_statement "if (iVar5 != -1) {\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xae8,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_3,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar24 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) goto LAB_001a377c;\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a33ac:\n            *(undefined8 *)(puVar24 + 2) = uVar8;\n            puVar23 = puVar24 + 6;\n            *(undefined8 *)(puVar24 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar24 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar24 + 6) = uVar13;\n            *(undefined1 *)((long)puVar24 + 5) = uVar1;\n          }" if (parenthesized_expression "(iVar5 != -1)" ( (binary_expression "iVar5 != -1" identifier != number_literal) )) (compound_statement "{\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xae8,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_3,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar24 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) goto LAB_001a377c;\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a33ac:\n            *(undefined8 *)(puVar24 + 2) = uVar8;\n            puVar23 = puVar24 + 6;\n            *(undefined8 *)(puVar24 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar24 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar24 + 6) = uVar13;\n            *(undefined1 *)((long)puVar24 + 5) = uVar1;\n          }" { (if_statement "if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xae8,"write_local_symbols");\n            }" if (parenthesized_expression "(local_48 <= *(uint *)(lVar21 + -0x18))" ( (binary_expression "local_48 <= *(uint *)(lVar21 + -0x18)" identifier <= (pointer_expression "*(uint *)(lVar21 + -0x18)" * (cast_expression "(uint *)(lVar21 + -0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar21 + -0x18)" ( (binary_expression "lVar21 + -0x18" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xae8,"write_local_symbols");\n            }" { (expression_statement "FUN_0016cdf0("../../gold/object.cc",0xae8,"write_local_symbols");" (call_expression "FUN_0016cdf0("../../gold/object.cc",0xae8,"write_local_symbols")" identifier (argument_list "("../../gold/object.cc",0xae8,"write_local_symbols")" ( (string_literal ""../../gold/object.cc"" " string_content ") , number_literal , (string_literal ""write_local_symbols"" " string_content ") ))) ;) })) (expression_statement "uVar6 = FUN_0021b7b0(param_3,local_b0 + *(uint *)(lVar21 + -0x18));" (assignment_expression "uVar6 = FUN_0021b7b0(param_3,local_b0 + *(uint *)(lVar21 + -0x18))" identifier = (call_expression "FUN_0021b7b0(param_3,local_b0 + *(uint *)(lVar21 + -0x18))" identifier (argument_list "(param_3,local_b0 + *(uint *)(lVar21 + -0x18))" ( identifier , (binary_expression "local_b0 + *(uint *)(lVar21 + -0x18)" identifier + (pointer_expression "*(uint *)(lVar21 + -0x18)" * (cast_expression "(uint *)(lVar21 + -0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar21 + -0x18)" ( (binary_expression "lVar21 + -0x18" identifier + number_literal) ))))) )))) ;) (expression_statement "*puVar24 = uVar6;" (assignment_expression "*puVar24 = uVar6" (pointer_expression "*puVar24" * identifier) = identifier) ;) (if_statement "if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) goto LAB_001a377c;\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }" if (parenthesized_expression "((char)*(byte *)((long)piVar14 + 0xb) < '\0')" ( (binary_expression "(char)*(byte *)((long)piVar14 + 0xb) < '\0'" (cast_expression "(char)*(byte *)((long)piVar14 + 0xb)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)((long)piVar14 + 0xb)" * (cast_expression "(byte *)((long)piVar14 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)piVar14 + 0xb)" ( (binary_expression "(long)piVar14 + 0xb" (cast_expression "(long)piVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }" { (expression_statement "uVar8 = *(undefined8 *)(piVar14 + 4);" (assignment_expression "uVar8 = *(undefined8 *)(piVar14 + 4)" identifier = (pointer_expression "*(undefined8 *)(piVar14 + 4)" * (cast_expression "(undefined8 *)(piVar14 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar14 + 4)" ( (binary_expression "piVar14 + 4" identifier + number_literal) ))))) ;) }) (else_clause "else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) goto LAB_001a377c;\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }" else (compound_statement "{\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) goto LAB_001a377c;\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }" { (if_statement "if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) goto LAB_001a377c;" if (parenthesized_expression "((*(byte *)((long)piVar14 + 0xb) & 8) == 0)" ( (binary_expression "(*(byte *)((long)piVar14 + 0xb) & 8) == 0" (parenthesized_expression "(*(byte *)((long)piVar14 + 0xb) & 8)" ( (binary_expression "*(byte *)((long)piVar14 + 0xb) & 8" (pointer_expression "*(byte *)((long)piVar14 + 0xb)" * (cast_expression "(byte *)((long)piVar14 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)piVar14 + 0xb)" ( (binary_expression "(long)piVar14 + 0xb" (cast_expression "(long)piVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_001a377c;" goto statement_identifier ;)) (expression_statement "puVar3 = *(ulong **)(piVar14 + 4);" (assignment_expression "puVar3 = *(ulong **)(piVar14 + 4)" identifier = (pointer_expression "*(ulong **)(piVar14 + 4)" * (cast_expression "(ulong **)(piVar14 + 4)" ( (type_descriptor "ulong **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar14 + 4)" ( (binary_expression "piVar14 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = *puVar3 % puVar3[3];" (assignment_expression "uVar12 = *puVar3 % puVar3[3]" identifier = (binary_expression "*puVar3 % puVar3[3]" (pointer_expression "*puVar3" * identifier) % (subscript_expression "puVar3[3]" identifier [ number_literal ]))) ;) (expression_statement "plVar20 = *(long **)(puVar3[2] + uVar12 * 8);" (assignment_expression "plVar20 = *(long **)(puVar3[2] + uVar12 * 8)" identifier = (pointer_expression "*(long **)(puVar3[2] + uVar12 * 8)" * (cast_expression "(long **)(puVar3[2] + uVar12 * 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3[2] + uVar12 * 8)" ( (binary_expression "puVar3[2] + uVar12 * 8" (subscript_expression "puVar3[2]" identifier [ number_literal ]) + (binary_expression "uVar12 * 8" identifier * number_literal)) ))))) ;) (if_statement "if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }\n              }" if (parenthesized_expression "(plVar20 != (long *)0x0)" ( (binary_expression "plVar20 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }\n              }" { (expression_statement "uVar15 = ((long *)*plVar20)[1];" (assignment_expression "uVar15 = ((long *)*plVar20)[1]" identifier = (subscript_expression "((long *)*plVar20)[1]" (parenthesized_expression "((long *)*plVar20)" ( (cast_expression "(long *)*plVar20" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar20" * identifier)) )) [ number_literal ])) ;) (expression_statement "plVar4 = (long *)*plVar20;" (assignment_expression "plVar4 = (long *)*plVar20" identifier = (cast_expression "(long *)*plVar20" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar20" * identifier))) ;) (while_statement "while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }" while (parenthesized_expression "(plVar19 = plVar4, *puVar3 != uVar15)" ( (comma_expression "plVar19 = plVar4, *puVar3 != uVar15" (assignment_expression "plVar19 = plVar4" identifier = identifier) , (binary_expression "*puVar3 != uVar15" (pointer_expression "*puVar3" * identifier) != identifier)) )) (compound_statement "{\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }" { (expression_statement "plVar4 = (long *)*plVar19;" (assignment_expression "plVar4 = (long *)*plVar19" identifier = (cast_expression "(long *)*plVar19" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar19" * identifier))) ;) (if_statement "if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;" if (parenthesized_expression "((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))" ( (binary_expression "(plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3])" (parenthesized_expression "(plVar4 == (long *)0x0)" ( (binary_expression "plVar4 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3])" ( (comma_expression "uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]" (assignment_expression "uVar15 = plVar4[1]" identifier = (subscript_expression "plVar4[1]" identifier [ number_literal ])) , (comma_expression "plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]" (assignment_expression "plVar20 = plVar19" identifier = identifier) , (binary_expression "uVar12 != uVar15 % puVar3[3]" identifier != (binary_expression "uVar15 % puVar3[3]" identifier % (subscript_expression "puVar3[3]" identifier [ number_literal ]))))) ))) )) (goto_statement "goto LAB_001a3660;" goto statement_identifier ;)) })) (if_statement "if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }" if (parenthesized_expression "(*plVar20 != 0)" ( (binary_expression "*plVar20 != 0" (pointer_expression "*plVar20" * identifier) != number_literal) )) (compound_statement "{\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }" { (expression_statement "uVar8 = *(undefined8 *)(*plVar20 + 0x10);" (assignment_expression "uVar8 = *(undefined8 *)(*plVar20 + 0x10)" identifier = (pointer_expression "*(undefined8 *)(*plVar20 + 0x10)" * (cast_expression "(undefined8 *)(*plVar20 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*plVar20 + 0x10)" ( (binary_expression "*plVar20 + 0x10" (pointer_expression "*plVar20" * identifier) + number_literal) ))))) ;) (goto_statement "goto LAB_001a33ac;" goto statement_identifier ;) })) })) (labeled_statement "LAB_001a3660:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);" statement_identifier : (expression_statement "uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);" (assignment_expression "uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff)" identifier = (call_expression "FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff)" identifier (argument_list "(puVar3,param_1,piVar14[2] & 0x7ffffff)" ( identifier , identifier , (binary_expression "piVar14[2] & 0x7ffffff" (subscript_expression "piVar14[2]" identifier [ number_literal ]) & number_literal) )))) ;)) }))) (labeled_statement "LAB_001a33ac:\n            *(undefined8 *)(puVar24 + 2) = uVar8;" statement_identifier : (expression_statement "*(undefined8 *)(puVar24 + 2) = uVar8;" (assignment_expression "*(undefined8 *)(puVar24 + 2) = uVar8" (pointer_expression "*(undefined8 *)(puVar24 + 2)" * (cast_expression "(undefined8 *)(puVar24 + 2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 2)" ( (binary_expression "puVar24 + 2" identifier + number_literal) )))) = identifier) ;)) (expression_statement "puVar23 = puVar24 + 6;" (assignment_expression "puVar23 = puVar24 + 6" identifier = (binary_expression "puVar24 + 6" identifier + number_literal)) ;) (expression_statement "*(undefined8 *)(puVar24 + 4) = *(undefined8 *)(lVar21 + -8);" (assignment_expression "*(undefined8 *)(puVar24 + 4) = *(undefined8 *)(lVar21 + -8)" (pointer_expression "*(undefined8 *)(puVar24 + 4)" * (cast_expression "(undefined8 *)(puVar24 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 4)" ( (binary_expression "puVar24 + 4" identifier + number_literal) )))) = (pointer_expression "*(undefined8 *)(lVar21 + -8)" * (cast_expression "(undefined8 *)(lVar21 + -8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar21 + -8)" ( (binary_expression "lVar21 + -8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)(puVar24 + 1) = *(undefined1 *)(lVar21 + -0x14);" (assignment_expression "*(undefined1 *)(puVar24 + 1) = *(undefined1 *)(lVar21 + -0x14)" (pointer_expression "*(undefined1 *)(puVar24 + 1)" * (cast_expression "(undefined1 *)(puVar24 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 1)" ( (binary_expression "puVar24 + 1" identifier + number_literal) )))) = (pointer_expression "*(undefined1 *)(lVar21 + -0x14)" * (cast_expression "(undefined1 *)(lVar21 + -0x14)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar21 + -0x14)" ( (binary_expression "lVar21 + -0x14" identifier + number_literal) ))))) ;) (expression_statement "uVar1 = *(undefined1 *)(lVar21 + -0x13);" (assignment_expression "uVar1 = *(undefined1 *)(lVar21 + -0x13)" identifier = (pointer_expression "*(undefined1 *)(lVar21 + -0x13)" * (cast_expression "(undefined1 *)(lVar21 + -0x13)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar21 + -0x13)" ( (binary_expression "lVar21 + -0x13" identifier + number_literal) ))))) ;) (expression_statement "*(ushort *)((long)puVar24 + 6) = uVar13;" (assignment_expression "*(ushort *)((long)puVar24 + 6) = uVar13" (pointer_expression "*(ushort *)((long)puVar24 + 6)" * (cast_expression "(ushort *)((long)puVar24 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar24 + 6)" ( (binary_expression "(long)puVar24 + 6" (cast_expression "(long)puVar24" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)((long)puVar24 + 5) = uVar1;" (assignment_expression "*(undefined1 *)((long)puVar24 + 5) = uVar1" (pointer_expression "*(undefined1 *)((long)puVar24 + 5)" * (cast_expression "(undefined1 *)((long)puVar24 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar24 + 5)" ( (binary_expression "(long)puVar24 + 5" (cast_expression "(long)puVar24" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) })) (if_statement "if (piVar14[1] == 0) {\nLAB_001a3764:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x738,"has_output_dynsym_entry");\n          }" if (parenthesized_expression "(piVar14[1] == 0)" ( (binary_expression "piVar14[1] == 0" (subscript_expression "piVar14[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\nLAB_001a3764:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x738,"has_output_dynsym_entry");\n          }" { (labeled_statement "LAB_001a3764:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x738,"has_output_dynsym_entry");" statement_identifier : (expression_statement "FUN_0016cdf0("../../gold/object.h",0x738,"has_output_dynsym_entry");" (call_expression "FUN_0016cdf0("../../gold/object.h",0x738,"has_output_dynsym_entry")" identifier (argument_list "("../../gold/object.h",0x738,"has_output_dynsym_entry")" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""has_output_dynsym_entry"" " string_content ") ))) ;)) })) (expression_statement "puVar24 = puVar23;" (assignment_expression "puVar24 = puVar23" identifier = identifier) ;) (if_statement "if (piVar14[1] != -1) {\n            if ((undefined4 *)((long)local_68 + uVar18) <= puVar22) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xafa,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_4,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar22 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    \n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");\n              }\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a349c:\n            *(undefined8 *)(puVar22 + 2) = uVar8;\n            *(undefined8 *)(puVar22 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar22 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar22 + 6) = uVar13;\n            *(undefined1 *)((long)puVar22 + 5) = uVar1;\n            puVar22 = puVar22 + 6;\n          }" if (parenthesized_expression "(piVar14[1] != -1)" ( (binary_expression "piVar14[1] != -1" (subscript_expression "piVar14[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n            if ((undefined4 *)((long)local_68 + uVar18) <= puVar22) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xafa,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_4,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar22 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    \n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");\n              }\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a349c:\n            *(undefined8 *)(puVar22 + 2) = uVar8;\n            *(undefined8 *)(puVar22 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar22 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar22 + 6) = uVar13;\n            *(undefined1 *)((long)puVar22 + 5) = uVar1;\n            puVar22 = puVar22 + 6;\n          }" { (if_statement "if ((undefined4 *)((long)local_68 + uVar18) <= puVar22) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }" if (parenthesized_expression "((undefined4 *)((long)local_68 + uVar18) <= puVar22)" ( (binary_expression "(undefined4 *)((long)local_68 + uVar18) <= puVar22" (cast_expression "(undefined4 *)((long)local_68 + uVar18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_68 + uVar18)" ( (binary_expression "(long)local_68 + uVar18" (cast_expression "(long)local_68" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) <= identifier) )) (compound_statement "{\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }" { (expression_statement "FUN_0016cdf0("../../gold/object.cc",0xaf7,"write_local_symbols");" (call_expression "FUN_0016cdf0("../../gold/object.cc",0xaf7,"write_local_symbols")" identifier (argument_list "("../../gold/object.cc",0xaf7,"write_local_symbols")" ( (string_literal ""../../gold/object.cc"" " string_content ") , number_literal , (string_literal ""write_local_symbols"" " string_content ") ))) ;) })) (if_statement "if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xafa,"write_local_symbols");\n            }" if (parenthesized_expression "(local_48 <= *(uint *)(lVar21 + -0x18))" ( (binary_expression "local_48 <= *(uint *)(lVar21 + -0x18)" identifier <= (pointer_expression "*(uint *)(lVar21 + -0x18)" * (cast_expression "(uint *)(lVar21 + -0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar21 + -0x18)" ( (binary_expression "lVar21 + -0x18" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xafa,"write_local_symbols");\n            }" { (expression_statement "FUN_0016cdf0("../../gold/object.cc",0xafa,"write_local_symbols");" (call_expression "FUN_0016cdf0("../../gold/object.cc",0xafa,"write_local_symbols")" identifier (argument_list "("../../gold/object.cc",0xafa,"write_local_symbols")" ( (string_literal ""../../gold/object.cc"" " string_content ") , number_literal , (string_literal ""write_local_symbols"" " string_content ") ))) ;) })) (expression_statement "uVar6 = FUN_0021b7b0(param_4,local_b0 + *(uint *)(lVar21 + -0x18));" (assignment_expression "uVar6 = FUN_0021b7b0(param_4,local_b0 + *(uint *)(lVar21 + -0x18))" identifier = (call_expression "FUN_0021b7b0(param_4,local_b0 + *(uint *)(lVar21 + -0x18))" identifier (argument_list "(param_4,local_b0 + *(uint *)(lVar21 + -0x18))" ( identifier , (binary_expression "local_b0 + *(uint *)(lVar21 + -0x18)" identifier + (pointer_expression "*(uint *)(lVar21 + -0x18)" * (cast_expression "(uint *)(lVar21 + -0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar21 + -0x18)" ( (binary_expression "lVar21 + -0x18" identifier + number_literal) ))))) )))) ;) (expression_statement "*puVar22 = uVar6;" (assignment_expression "*puVar22 = uVar6" (pointer_expression "*puVar22" * identifier) = identifier) ;) (if_statement "if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    \n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");\n              }\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }" if (parenthesized_expression "((char)*(byte *)((long)piVar14 + 0xb) < '\0')" ( (binary_expression "(char)*(byte *)((long)piVar14 + 0xb) < '\0'" (cast_expression "(char)*(byte *)((long)piVar14 + 0xb)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)((long)piVar14 + 0xb)" * (cast_expression "(byte *)((long)piVar14 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)piVar14 + 0xb)" ( (binary_expression "(long)piVar14 + 0xb" (cast_expression "(long)piVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }" { (expression_statement "uVar8 = *(undefined8 *)(piVar14 + 4);" (assignment_expression "uVar8 = *(undefined8 *)(piVar14 + 4)" identifier = (pointer_expression "*(undefined8 *)(piVar14 + 4)" * (cast_expression "(undefined8 *)(piVar14 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar14 + 4)" ( (binary_expression "piVar14 + 4" identifier + number_literal) ))))) ;) }) (else_clause "else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    \n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");\n              }\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }" else (compound_statement "{\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    \n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");\n              }\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }" { (if_statement "if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    \n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");\n              }" if (parenthesized_expression "((*(byte *)((long)piVar14 + 0xb) & 8) == 0)" ( (binary_expression "(*(byte *)((long)piVar14 + 0xb) & 8) == 0" (parenthesized_expression "(*(byte *)((long)piVar14 + 0xb) & 8)" ( (binary_expression "*(byte *)((long)piVar14 + 0xb) & 8" (pointer_expression "*(byte *)((long)piVar14 + 0xb)" * (cast_expression "(byte *)((long)piVar14 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)piVar14 + 0xb)" ( (binary_expression "(long)piVar14 + 0xb" (cast_expression "(long)piVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_001a377c:\n                    \n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");\n              }" { (labeled_statement "LAB_001a377c:\n                    \n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");" statement_identifier : (expression_statement "FUN_0016cdf0("../../gold/object.h",0x6ab,"value");" (call_expression "FUN_0016cdf0("../../gold/object.h",0x6ab,"value")" identifier (argument_list "("../../gold/object.h",0x6ab,"value")" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""value"" " string_content ") ))) ;)) })) (expression_statement "puVar3 = *(ulong **)(piVar14 + 4);" (assignment_expression "puVar3 = *(ulong **)(piVar14 + 4)" identifier = (pointer_expression "*(ulong **)(piVar14 + 4)" * (cast_expression "(ulong **)(piVar14 + 4)" ( (type_descriptor "ulong **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar14 + 4)" ( (binary_expression "piVar14 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = *puVar3 % puVar3[3];" (assignment_expression "uVar12 = *puVar3 % puVar3[3]" identifier = (binary_expression "*puVar3 % puVar3[3]" (pointer_expression "*puVar3" * identifier) % (subscript_expression "puVar3[3]" identifier [ number_literal ]))) ;) (expression_statement "plVar20 = *(long **)(puVar3[2] + uVar12 * 8);" (assignment_expression "plVar20 = *(long **)(puVar3[2] + uVar12 * 8)" identifier = (pointer_expression "*(long **)(puVar3[2] + uVar12 * 8)" * (cast_expression "(long **)(puVar3[2] + uVar12 * 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3[2] + uVar12 * 8)" ( (binary_expression "puVar3[2] + uVar12 * 8" (subscript_expression "puVar3[2]" identifier [ number_literal ]) + (binary_expression "uVar12 * 8" identifier * number_literal)) ))))) ;) (if_statement "if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }\n              }" if (parenthesized_expression "(plVar20 != (long *)0x0)" ( (binary_expression "plVar20 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }\n              }" { (expression_statement "uVar15 = ((long *)*plVar20)[1];" (assignment_expression "uVar15 = ((long *)*plVar20)[1]" identifier = (subscript_expression "((long *)*plVar20)[1]" (parenthesized_expression "((long *)*plVar20)" ( (cast_expression "(long *)*plVar20" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar20" * identifier)) )) [ number_literal ])) ;) (expression_statement "plVar4 = (long *)*plVar20;" (assignment_expression "plVar4 = (long *)*plVar20" identifier = (cast_expression "(long *)*plVar20" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar20" * identifier))) ;) (while_statement "while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }" while (parenthesized_expression "(plVar19 = plVar4, uVar15 != *puVar3)" ( (comma_expression "plVar19 = plVar4, uVar15 != *puVar3" (assignment_expression "plVar19 = plVar4" identifier = identifier) , (binary_expression "uVar15 != *puVar3" identifier != (pointer_expression "*puVar3" * identifier))) )) (compound_statement "{\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }" { (expression_statement "plVar4 = (long *)*plVar19;" (assignment_expression "plVar4 = (long *)*plVar19" identifier = (cast_expression "(long *)*plVar19" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar19" * identifier))) ;) (if_statement "if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;" if (parenthesized_expression "((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))" ( (binary_expression "(plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3])" (parenthesized_expression "(plVar4 == (long *)0x0)" ( (binary_expression "plVar4 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3])" ( (comma_expression "uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]" (assignment_expression "uVar15 = plVar4[1]" identifier = (subscript_expression "plVar4[1]" identifier [ number_literal ])) , (comma_expression "plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]" (assignment_expression "plVar20 = plVar19" identifier = identifier) , (binary_expression "uVar12 != uVar15 % puVar3[3]" identifier != (binary_expression "uVar15 % puVar3[3]" identifier % (subscript_expression "puVar3[3]" identifier [ number_literal ]))))) ))) )) (goto_statement "goto LAB_001a3608;" goto statement_identifier ;)) })) (if_statement "if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }" if (parenthesized_expression "(*plVar20 != 0)" ( (binary_expression "*plVar20 != 0" (pointer_expression "*plVar20" * identifier) != number_literal) )) (compound_statement "{\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }" { (expression_statement "uVar8 = *(undefined8 *)(*plVar20 + 0x10);" (assignment_expression "uVar8 = *(undefined8 *)(*plVar20 + 0x10)" identifier = (pointer_expression "*(undefined8 *)(*plVar20 + 0x10)" * (cast_expression "(undefined8 *)(*plVar20 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*plVar20 + 0x10)" ( (binary_expression "*plVar20 + 0x10" (pointer_expression "*plVar20" * identifier) + number_literal) ))))) ;) (goto_statement "goto LAB_001a349c;" goto statement_identifier ;) })) })) (labeled_statement "LAB_001a3608:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);" statement_identifier : (expression_statement "uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);" (assignment_expression "uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff)" identifier = (call_expression "FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff)" identifier (argument_list "(puVar3,param_1,piVar14[2] & 0x7ffffff)" ( identifier , identifier , (binary_expression "piVar14[2] & 0x7ffffff" (subscript_expression "piVar14[2]" identifier [ number_literal ]) & number_literal) )))) ;)) }))) (labeled_statement "LAB_001a349c:\n            *(undefined8 *)(puVar22 + 2) = uVar8;" statement_identifier : (expression_statement "*(undefined8 *)(puVar22 + 2) = uVar8;" (assignment_expression "*(undefined8 *)(puVar22 + 2) = uVar8" (pointer_expression "*(undefined8 *)(puVar22 + 2)" * (cast_expression "(undefined8 *)(puVar22 + 2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 2)" ( (binary_expression "puVar22 + 2" identifier + number_literal) )))) = identifier) ;)) (expression_statement "*(undefined8 *)(puVar22 + 4) = *(undefined8 *)(lVar21 + -8);" (assignment_expression "*(undefined8 *)(puVar22 + 4) = *(undefined8 *)(lVar21 + -8)" (pointer_expression "*(undefined8 *)(puVar22 + 4)" * (cast_expression "(undefined8 *)(puVar22 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 4)" ( (binary_expression "puVar22 + 4" identifier + number_literal) )))) = (pointer_expression "*(undefined8 *)(lVar21 + -8)" * (cast_expression "(undefined8 *)(lVar21 + -8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar21 + -8)" ( (binary_expression "lVar21 + -8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)(puVar22 + 1) = *(undefined1 *)(lVar21 + -0x14);" (assignment_expression "*(undefined1 *)(puVar22 + 1) = *(undefined1 *)(lVar21 + -0x14)" (pointer_expression "*(undefined1 *)(puVar22 + 1)" * (cast_expression "(undefined1 *)(puVar22 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 1)" ( (binary_expression "puVar22 + 1" identifier + number_literal) )))) = (pointer_expression "*(undefined1 *)(lVar21 + -0x14)" * (cast_expression "(undefined1 *)(lVar21 + -0x14)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar21 + -0x14)" ( (binary_expression "lVar21 + -0x14" identifier + number_literal) ))))) ;) (expression_statement "uVar1 = *(undefined1 *)(lVar21 + -0x13);" (assignment_expression "uVar1 = *(undefined1 *)(lVar21 + -0x13)" identifier = (pointer_expression "*(undefined1 *)(lVar21 + -0x13)" * (cast_expression "(undefined1 *)(lVar21 + -0x13)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar21 + -0x13)" ( (binary_expression "lVar21 + -0x13" identifier + number_literal) ))))) ;) (expression_statement "*(ushort *)((long)puVar22 + 6) = uVar13;" (assignment_expression "*(ushort *)((long)puVar22 + 6) = uVar13" (pointer_expression "*(ushort *)((long)puVar22 + 6)" * (cast_expression "(ushort *)((long)puVar22 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar22 + 6)" ( (binary_expression "(long)puVar22 + 6" (cast_expression "(long)puVar22" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)((long)puVar22 + 5) = uVar1;" (assignment_expression "*(undefined1 *)((long)puVar22 + 5) = uVar1" (pointer_expression "*(undefined1 *)((long)puVar22 + 5)" * (cast_expression "(undefined1 *)((long)puVar22 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar22 + 5)" ( (binary_expression "(long)puVar22 + 5" (cast_expression "(long)puVar22" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "puVar22 = puVar22 + 6;" (assignment_expression "puVar22 = puVar22 + 6" identifier = (binary_expression "puVar22 + 6" identifier + number_literal)) ;) })) }))) (expression_statement "local_b8 = local_b8 + 1;" (assignment_expression "local_b8 = local_b8 + 1" identifier = (binary_expression "local_b8 + 1" identifier + number_literal)) ;) (expression_statement "lVar21 = lVar21 + 0x18;" (assignment_expression "lVar21 = lVar21 + 0x18" identifier = (binary_expression "lVar21 + 0x18" identifier + number_literal)) ;) (if_statement "if (uVar2 == local_b8) goto LAB_001a3680;" if (parenthesized_expression "(uVar2 == local_b8)" ( (binary_expression "uVar2 == local_b8" identifier == identifier) )) (goto_statement "goto LAB_001a3680;" goto statement_identifier ;)) (expression_statement "lVar9 = param_1[0x2c];" (assignment_expression "lVar9 = param_1[0x2c]" identifier = (subscript_expression "param_1[0x2c]" identifier [ number_literal ])) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) }) (else_clause "else {\n    param_7 = param_7 + param_1[0x2a];\n    if ((-1 < param_7) && ((long)(param_7 + (ulong)uVar16) <= *(long *)(param_2 + 0x10))) {\n      local_70 = (undefined4 *)(param_7 + *(long *)(param_2 + 0x18));\n      goto LAB_001a31f6;\n    }\nLAB_001a3859:\n    FUN_0019a5b0();\n  }" else (compound_statement "{\n    param_7 = param_7 + param_1[0x2a];\n    if ((-1 < param_7) && ((long)(param_7 + (ulong)uVar16) <= *(long *)(param_2 + 0x10))) {\n      local_70 = (undefined4 *)(param_7 + *(long *)(param_2 + 0x18));\n      goto LAB_001a31f6;\n    }\nLAB_001a3859:\n    FUN_0019a5b0();\n  }" { (expression_statement "param_7 = param_7 + param_1[0x2a];" (assignment_expression "param_7 = param_7 + param_1[0x2a]" identifier = (binary_expression "param_7 + param_1[0x2a]" identifier + (subscript_expression "param_1[0x2a]" identifier [ number_literal ]))) ;) (if_statement "if ((-1 < param_7) && ((long)(param_7 + (ulong)uVar16) <= *(long *)(param_2 + 0x10))) {\n      local_70 = (undefined4 *)(param_7 + *(long *)(param_2 + 0x18));\n      goto LAB_001a31f6;\n    }" if (parenthesized_expression "((-1 < param_7) && ((long)(param_7 + (ulong)uVar16) <= *(long *)(param_2 + 0x10)))" ( (binary_expression "(-1 < param_7) && ((long)(param_7 + (ulong)uVar16) <= *(long *)(param_2 + 0x10))" (parenthesized_expression "(-1 < param_7)" ( (binary_expression "-1 < param_7" number_literal < identifier) )) && (parenthesized_expression "((long)(param_7 + (ulong)uVar16) <= *(long *)(param_2 + 0x10))" ( (binary_expression "(long)(param_7 + (ulong)uVar16) <= *(long *)(param_2 + 0x10)" (cast_expression "(long)(param_7 + (ulong)uVar16)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(param_7 + (ulong)uVar16)" ( (binary_expression "param_7 + (ulong)uVar16" identifier + (cast_expression "(ulong)uVar16" ( (type_descriptor "ulong" type_identifier) ) identifier)) ))) <= (pointer_expression "*(long *)(param_2 + 0x10)" * (cast_expression "(long *)(param_2 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) ))))) ))) )) (compound_statement "{\n      local_70 = (undefined4 *)(param_7 + *(long *)(param_2 + 0x18));\n      goto LAB_001a31f6;\n    }" { (expression_statement "local_70 = (undefined4 *)(param_7 + *(long *)(param_2 + 0x18));" (assignment_expression "local_70 = (undefined4 *)(param_7 + *(long *)(param_2 + 0x18))" identifier = (cast_expression "(undefined4 *)(param_7 + *(long *)(param_2 + 0x18))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_7 + *(long *)(param_2 + 0x18))" ( (binary_expression "param_7 + *(long *)(param_2 + 0x18)" identifier + (pointer_expression "*(long *)(param_2 + 0x18)" * (cast_expression "(long *)(param_2 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) ))))) )))) ;) (goto_statement "goto LAB_001a31f6;" goto statement_identifier ;) })) (labeled_statement "LAB_001a3859:\n    FUN_0019a5b0();" statement_identifier : (expression_statement "FUN_0019a5b0();" (call_expression "FUN_0019a5b0()" identifier (argument_list "()" ( ))) ;)) }))) (expression_statement "FUN_0016cdf0("../../gold/object.cc",0xac5,"write_local_symbols");" (call_expression "FUN_0016cdf0("../../gold/object.cc",0xac5,"write_local_symbols")" identifier (argument_list "("../../gold/object.cc",0xac5,"write_local_symbols")" ( (string_literal ""../../gold/object.cc"" " string_content ") , number_literal , (string_literal ""write_local_symbols"" " string_content ") ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (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 (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) 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 (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == LIT) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = LIT) ;) })) (if_statement if (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) )) (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 (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) == LIT) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) , (subscript_expression IDENT [ LIT ]) , IDENT , LIT , LIT , LIT )))) ;) (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 ") ))) ;) })) (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 != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 (subscript_expression IDENT [ LIT ]) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) , (subscript_expression IDENT [ LIT ]) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression IDENT * LIT) , LIT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) ;) })) (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 IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (field_expression IDENT . field_identifier)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) , (subscript_expression IDENT [ LIT ]) , (field_expression IDENT . field_identifier) , IDENT , LIT , LIT ))))) ;) })) }) (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 * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT , (pointer_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 IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) * LIT)) ;)) (expression_statement (assignment_expression IDENT = (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 *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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 IDENT + IDENT) )))) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (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 = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - IDENT) >> LIT) )) * LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) != (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )) (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 IDENT != LIT) )) && (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) != IDENT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (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) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (parenthesized_expression ( (binary_expression LIT - IDENT) ))) + IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (labeled_statement statement_identifier : (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 { (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)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (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) )) (compound_statement { (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 = (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 ( )))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT != LIT) && (binary_expression IDENT != LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) || (binary_expression IDENT == LIT)) )) (goto_statement goto statement_identifier ;)) (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) ))) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT != LIT) && (binary_expression IDENT != LIT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (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 = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT != LIT) && (binary_expression IDENT != LIT))) ;) }))) })) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT != LIT) && (binary_expression IDENT != LIT))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (unary_expression ! 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 = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ))))) < (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (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) )) (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 IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) % (subscript_expression 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 (subscript_expression IDENT [ LIT ]) + (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 = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) )) [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (pointer_expression * IDENT) != IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != (binary_expression IDENT % (subscript_expression IDENT [ LIT ]))))) ))) )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )))) ;)) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ 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 = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) ))) <= IDENT) )) (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 IDENT <= (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ))))) < (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (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 { (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 (pointer_expression * IDENT) % (subscript_expression 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 (subscript_expression IDENT [ LIT ]) + (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 = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) )) [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != (pointer_expression * IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != (binary_expression IDENT % (subscript_expression IDENT [ LIT ]))))) ))) )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )))) ;)) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) while (parenthesized_expression ( BOOL )) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) && (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) <= (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) }))) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })))
(function_definition "void FUN_001a3040(long *param_1,long param_2,undefined8 param_3,undefined8 param_4,long param_5,\n                 long param_6,long param_7)\n\n{\n  undefined1 uVar1;\n  uint uVar2;\n  ulong *puVar3;\n  long *plVar4;\n  int iVar5;\n  undefined4 uVar6;\n  uint uVar7;\n  undefined8 uVar8;\n  long lVar9;\n  long lVar10;\n  bool bVar11;\n  ulong uVar12;\n  ushort uVar13;\n  int *piVar14;\n  ulong uVar15;\n  uint uVar16;\n  uint uVar17;\n  long *plVar19;\n  long *plVar20;\n  long lVar21;\n  undefined4 *puVar22;\n  undefined4 *puVar23;\n  undefined4 *puVar24;\n  undefined1 auVar25 [16];\n  uint local_b8;\n  undefined *local_b0;\n  undefined4 *local_70;\n  undefined4 *local_68;\n  ulong local_48;\n  int local_40;\n  uint local_3c;\n  ulong uVar18;\n  \n  if (*(long *)(PTR_DAT_003be6b0 + 0x10) == 0) {\n                    \n    FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x54f9) != '\0') {\n    if ((int)param_1[0x25] == 0) {\n      return;\n    }\n    *(undefined4 *)((long)param_1 + 0x124) = 0;\n  }\n  if (*(int *)((long)param_1 + 0x11c) == -1) {\n                    \n    FUN_0016cdf0("../../gold/object.cc",0xa97,"write_local_symbols");\n  }\n  if (*(int *)((long)param_1 + 0x11c) == 0) {\n    return;\n  }\n  plVar20 = param_1 + 0x1f;\n  uVar8 = FUN_0015e080(plVar20);\n  if (param_1[5] == 0) {\nLAB_001a3824:\n                    \n    FUN_0019a570();\n  }\n  lVar9 = FUN_0016b970(param_1[5] + 0x28,param_1[6],uVar8,0x40,1,1);\n  if (*(int *)(lVar9 + 4) != 2) {\n                    \n    FUN_0016cdf0("../../gold/object.cc",0xaa2,"write_local_symbols");\n  }\n  uVar2 = *(uint *)(param_1 + 0x24);\n  if (uVar2 != *(uint *)(lVar9 + 0x2c)) {\n                    \n    FUN_0016cdf0("../../gold/object.cc",0xaa4,"write_local_symbols");\n  }\n  if (param_1[5] == 0) goto LAB_001a3824;\n  lVar10 = FUN_0016b970(param_1[5] + 0x28,param_1[6],*(undefined8 *)(lVar9 + 0x18),uVar2 * 0x18,1,0)\n  ;\n  uVar16 = *(uint *)(lVar9 + 0x28);\n  if (0xfeff < uVar16) {\n    FUN_0015d960(plVar20);\n    uVar16 = uVar16 + (int)param_1[0x22];\n  }\n  if (*(code **)(*param_1 + 0x70) == FUN_001a2100) {\n    auVar25 = FUN_001a2060(plVar20,uVar16);\n    local_48 = auVar25._8_8_;\n    local_b0 = &DAT_00313646;\n    if (local_48 != 0) {\n      if (param_1[5] == 0) goto LAB_001a3824;\n      local_b0 = (undefined *)FUN_0016b970(param_1[5] + 0x28,param_1[6],auVar25._0_8_,local_48,1,0);\n    }\n  }\n  else {\n    local_b0 = (undefined *)(**(code **)(*param_1 + 0x70))(param_1,uVar16,&local_48,0);\n  }\n  uVar16 = *(int *)((long)param_1 + 0x124) * 0x18;\n  if (uVar16 == 0) {\n    local_70 = (undefined4 *)0x0;\nLAB_001a31f6:\n    uVar17 = (int)param_1[0x25] * 0x18;\n    uVar18 = (ulong)uVar17;\n    if (uVar17 == 0) {\n      local_68 = (undefined4 *)0x0;\n    }\n    else {\n      lVar9 = param_1[0x2b];\n      if ((lVar9 < 0) || (*(long *)(param_2 + 0x10) < (long)(lVar9 + uVar18))) goto LAB_001a3859;\n      local_68 = (undefined4 *)(lVar9 + *(long *)(param_2 + 0x18));\n    }\n    lVar9 = param_1[0x2c];\n    if ((ulong)uVar2 == (param_1[0x2d] - lVar9 >> 3) * -0x5555555555555555) {\n      puVar22 = local_68;\n      puVar24 = local_70;\n      if (uVar2 < 2) {\nLAB_001a3680:\n        if ((uVar16 != 0) && ((long)puVar24 - (long)local_70 != (ulong)uVar16)) {\n                    \n          FUN_0016cdf0("../../gold/object.cc",0xb0a,"write_local_symbols");\n        }\n        if ((uVar17 != 0) && ((long)puVar22 - (long)local_68 != uVar18)) {\n                    \n          FUN_0016cdf0("../../gold/object.cc",0xb11,"write_local_symbols");\n        }\n        return;\n      }\n      lVar21 = lVar10 + 0x30;\n      local_b8 = 1;\n      do {\n        uVar13 = *(ushort *)(lVar21 + -0x12);\n        uVar12 = (ulong)uVar13;\n        piVar14 = (int *)(lVar9 + (-0x18 - lVar10) + lVar21);\n        if (uVar13 < 0xff00) {\nLAB_001a350a:\n          if ((ulong)(param_1[0xb] - param_1[10] >> 3) <= uVar12) {\n                    \n            FUN_0016cdf0("../../gold/object.cc",0xad5,"write_local_symbols");\n          }\n          plVar20 = *(long **)(param_1[10] + uVar12 * 8);\n          if (plVar20 != (long *)0x0) {\n            if (*(code **)(*plVar20 + 0x58) == FUN_00175f90) {\n              uVar7 = *(uint *)((long)plVar20 + 0x7c);\n              if (uVar7 == 0xffffffff) {\n                    \n                FUN_0016cdf0("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar7 = (**(code **)(*plVar20 + 0x58))();\n            }\n            uVar13 = (ushort)uVar7;\n            iVar5 = *piVar14;\n            bVar11 = iVar5 != 0 && iVar5 != -2;\n            if (0xfeff < uVar7) {\n              if (iVar5 == 0 || iVar5 == -2) goto LAB_001a374c;\n              if (iVar5 != -1) {\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_5 + 0x38,&local_40);\n              }\n              iVar5 = piVar14[1];\n              if (iVar5 == 0) goto LAB_001a3764;\n              if (iVar5 == -1) {\n                iVar5 = *piVar14;\n                uVar13 = 0xffff;\n                bVar11 = iVar5 != 0 && iVar5 != -2;\n              }\n              else {\n                uVar13 = 0xffff;\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_6 + 0x38,&local_40);\n                iVar5 = *piVar14;\n                bVar11 = iVar5 != -2 && iVar5 != 0;\n              }\n            }\n            goto LAB_001a32f9;\n          }\n        }\n        else {\n          if (uVar13 == 0xffff) {\n            lVar9 = param_1[8];\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*param_1 + 0xd8))(param_1);\n              param_1[8] = lVar9;\n            }\n            uVar7 = FUN_0019a820(lVar9,param_1,local_b8);\n            uVar12 = (ulong)uVar7;\n            goto LAB_001a350a;\n          }\n          iVar5 = *piVar14;\n          bVar11 = iVar5 != 0 && iVar5 != -2;\nLAB_001a32f9:\n          if (!bVar11) {\nLAB_001a374c:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }\n          puVar23 = puVar24;\n          if (iVar5 != -1) {\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xae8,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_3,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar24 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) goto LAB_001a377c;\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a33ac:\n            *(undefined8 *)(puVar24 + 2) = uVar8;\n            puVar23 = puVar24 + 6;\n            *(undefined8 *)(puVar24 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar24 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar24 + 6) = uVar13;\n            *(undefined1 *)((long)puVar24 + 5) = uVar1;\n          }\n          if (piVar14[1] == 0) {\nLAB_001a3764:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x738,"has_output_dynsym_entry");\n          }\n          puVar24 = puVar23;\n          if (piVar14[1] != -1) {\n            if ((undefined4 *)((long)local_68 + uVar18) <= puVar22) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xafa,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_4,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar22 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    \n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");\n              }\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a349c:\n            *(undefined8 *)(puVar22 + 2) = uVar8;\n            *(undefined8 *)(puVar22 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar22 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar22 + 6) = uVar13;\n            *(undefined1 *)((long)puVar22 + 5) = uVar1;\n            puVar22 = puVar22 + 6;\n          }\n        }\n        local_b8 = local_b8 + 1;\n        lVar21 = lVar21 + 0x18;\n        if (uVar2 == local_b8) goto LAB_001a3680;\n        lVar9 = param_1[0x2c];\n      } while( true );\n    }\n  }\n  else {\n    param_7 = param_7 + param_1[0x2a];\n    if ((-1 < param_7) && ((long)(param_7 + (ulong)uVar16) <= *(long *)(param_2 + 0x10))) {\n      local_70 = (undefined4 *)(param_7 + *(long *)(param_2 + 0x18));\n      goto LAB_001a31f6;\n    }\nLAB_001a3859:\n    FUN_0019a5b0();\n  }\n                    \n  FUN_0016cdf0("../../gold/object.cc",0xac5,"write_local_symbols");\n}" (primitive_type "void") (function_declarator "FUN_001a3040(long *param_1,long param_2,undefined8 param_3,undefined8 param_4,long param_5,\n                 long param_6,long param_7)" (identifier "FUN_001a3040") (parameter_list "(long *param_1,long param_2,undefined8 param_3,undefined8 param_4,long param_5,\n                 long param_6,long param_7)" (( "(") (parameter_declaration "long *param_1" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "long param_2" (sized_type_specifier "long" (long "long")) (identifier "param_2")) (, ",") (parameter_declaration "undefined8 param_3" (type_identifier "undefined8") (identifier "param_3")) (, ",") (parameter_declaration "undefined8 param_4" (type_identifier "undefined8") (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")) (, ",") (parameter_declaration "long param_7" (sized_type_specifier "long" (long "long")) (identifier "param_7")) () ")"))) (compound_statement "{\n  undefined1 uVar1;\n  uint uVar2;\n  ulong *puVar3;\n  long *plVar4;\n  int iVar5;\n  undefined4 uVar6;\n  uint uVar7;\n  undefined8 uVar8;\n  long lVar9;\n  long lVar10;\n  bool bVar11;\n  ulong uVar12;\n  ushort uVar13;\n  int *piVar14;\n  ulong uVar15;\n  uint uVar16;\n  uint uVar17;\n  long *plVar19;\n  long *plVar20;\n  long lVar21;\n  undefined4 *puVar22;\n  undefined4 *puVar23;\n  undefined4 *puVar24;\n  undefined1 auVar25 [16];\n  uint local_b8;\n  undefined *local_b0;\n  undefined4 *local_70;\n  undefined4 *local_68;\n  ulong local_48;\n  int local_40;\n  uint local_3c;\n  ulong uVar18;\n  \n  if (*(long *)(PTR_DAT_003be6b0 + 0x10) == 0) {\n                    \n    FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x54f9) != '\0') {\n    if ((int)param_1[0x25] == 0) {\n      return;\n    }\n    *(undefined4 *)((long)param_1 + 0x124) = 0;\n  }\n  if (*(int *)((long)param_1 + 0x11c) == -1) {\n                    \n    FUN_0016cdf0("../../gold/object.cc",0xa97,"write_local_symbols");\n  }\n  if (*(int *)((long)param_1 + 0x11c) == 0) {\n    return;\n  }\n  plVar20 = param_1 + 0x1f;\n  uVar8 = FUN_0015e080(plVar20);\n  if (param_1[5] == 0) {\nLAB_001a3824:\n                    \n    FUN_0019a570();\n  }\n  lVar9 = FUN_0016b970(param_1[5] + 0x28,param_1[6],uVar8,0x40,1,1);\n  if (*(int *)(lVar9 + 4) != 2) {\n                    \n    FUN_0016cdf0("../../gold/object.cc",0xaa2,"write_local_symbols");\n  }\n  uVar2 = *(uint *)(param_1 + 0x24);\n  if (uVar2 != *(uint *)(lVar9 + 0x2c)) {\n                    \n    FUN_0016cdf0("../../gold/object.cc",0xaa4,"write_local_symbols");\n  }\n  if (param_1[5] == 0) goto LAB_001a3824;\n  lVar10 = FUN_0016b970(param_1[5] + 0x28,param_1[6],*(undefined8 *)(lVar9 + 0x18),uVar2 * 0x18,1,0)\n  ;\n  uVar16 = *(uint *)(lVar9 + 0x28);\n  if (0xfeff < uVar16) {\n    FUN_0015d960(plVar20);\n    uVar16 = uVar16 + (int)param_1[0x22];\n  }\n  if (*(code **)(*param_1 + 0x70) == FUN_001a2100) {\n    auVar25 = FUN_001a2060(plVar20,uVar16);\n    local_48 = auVar25._8_8_;\n    local_b0 = &DAT_00313646;\n    if (local_48 != 0) {\n      if (param_1[5] == 0) goto LAB_001a3824;\n      local_b0 = (undefined *)FUN_0016b970(param_1[5] + 0x28,param_1[6],auVar25._0_8_,local_48,1,0);\n    }\n  }\n  else {\n    local_b0 = (undefined *)(**(code **)(*param_1 + 0x70))(param_1,uVar16,&local_48,0);\n  }\n  uVar16 = *(int *)((long)param_1 + 0x124) * 0x18;\n  if (uVar16 == 0) {\n    local_70 = (undefined4 *)0x0;\nLAB_001a31f6:\n    uVar17 = (int)param_1[0x25] * 0x18;\n    uVar18 = (ulong)uVar17;\n    if (uVar17 == 0) {\n      local_68 = (undefined4 *)0x0;\n    }\n    else {\n      lVar9 = param_1[0x2b];\n      if ((lVar9 < 0) || (*(long *)(param_2 + 0x10) < (long)(lVar9 + uVar18))) goto LAB_001a3859;\n      local_68 = (undefined4 *)(lVar9 + *(long *)(param_2 + 0x18));\n    }\n    lVar9 = param_1[0x2c];\n    if ((ulong)uVar2 == (param_1[0x2d] - lVar9 >> 3) * -0x5555555555555555) {\n      puVar22 = local_68;\n      puVar24 = local_70;\n      if (uVar2 < 2) {\nLAB_001a3680:\n        if ((uVar16 != 0) && ((long)puVar24 - (long)local_70 != (ulong)uVar16)) {\n                    \n          FUN_0016cdf0("../../gold/object.cc",0xb0a,"write_local_symbols");\n        }\n        if ((uVar17 != 0) && ((long)puVar22 - (long)local_68 != uVar18)) {\n                    \n          FUN_0016cdf0("../../gold/object.cc",0xb11,"write_local_symbols");\n        }\n        return;\n      }\n      lVar21 = lVar10 + 0x30;\n      local_b8 = 1;\n      do {\n        uVar13 = *(ushort *)(lVar21 + -0x12);\n        uVar12 = (ulong)uVar13;\n        piVar14 = (int *)(lVar9 + (-0x18 - lVar10) + lVar21);\n        if (uVar13 < 0xff00) {\nLAB_001a350a:\n          if ((ulong)(param_1[0xb] - param_1[10] >> 3) <= uVar12) {\n                    \n            FUN_0016cdf0("../../gold/object.cc",0xad5,"write_local_symbols");\n          }\n          plVar20 = *(long **)(param_1[10] + uVar12 * 8);\n          if (plVar20 != (long *)0x0) {\n            if (*(code **)(*plVar20 + 0x58) == FUN_00175f90) {\n              uVar7 = *(uint *)((long)plVar20 + 0x7c);\n              if (uVar7 == 0xffffffff) {\n                    \n                FUN_0016cdf0("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar7 = (**(code **)(*plVar20 + 0x58))();\n            }\n            uVar13 = (ushort)uVar7;\n            iVar5 = *piVar14;\n            bVar11 = iVar5 != 0 && iVar5 != -2;\n            if (0xfeff < uVar7) {\n              if (iVar5 == 0 || iVar5 == -2) goto LAB_001a374c;\n              if (iVar5 != -1) {\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_5 + 0x38,&local_40);\n              }\n              iVar5 = piVar14[1];\n              if (iVar5 == 0) goto LAB_001a3764;\n              if (iVar5 == -1) {\n                iVar5 = *piVar14;\n                uVar13 = 0xffff;\n                bVar11 = iVar5 != 0 && iVar5 != -2;\n              }\n              else {\n                uVar13 = 0xffff;\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_6 + 0x38,&local_40);\n                iVar5 = *piVar14;\n                bVar11 = iVar5 != -2 && iVar5 != 0;\n              }\n            }\n            goto LAB_001a32f9;\n          }\n        }\n        else {\n          if (uVar13 == 0xffff) {\n            lVar9 = param_1[8];\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*param_1 + 0xd8))(param_1);\n              param_1[8] = lVar9;\n            }\n            uVar7 = FUN_0019a820(lVar9,param_1,local_b8);\n            uVar12 = (ulong)uVar7;\n            goto LAB_001a350a;\n          }\n          iVar5 = *piVar14;\n          bVar11 = iVar5 != 0 && iVar5 != -2;\nLAB_001a32f9:\n          if (!bVar11) {\nLAB_001a374c:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }\n          puVar23 = puVar24;\n          if (iVar5 != -1) {\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xae8,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_3,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar24 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) goto LAB_001a377c;\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a33ac:\n            *(undefined8 *)(puVar24 + 2) = uVar8;\n            puVar23 = puVar24 + 6;\n            *(undefined8 *)(puVar24 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar24 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar24 + 6) = uVar13;\n            *(undefined1 *)((long)puVar24 + 5) = uVar1;\n          }\n          if (piVar14[1] == 0) {\nLAB_001a3764:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x738,"has_output_dynsym_entry");\n          }\n          puVar24 = puVar23;\n          if (piVar14[1] != -1) {\n            if ((undefined4 *)((long)local_68 + uVar18) <= puVar22) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xafa,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_4,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar22 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    \n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");\n              }\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a349c:\n            *(undefined8 *)(puVar22 + 2) = uVar8;\n            *(undefined8 *)(puVar22 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar22 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar22 + 6) = uVar13;\n            *(undefined1 *)((long)puVar22 + 5) = uVar1;\n            puVar22 = puVar22 + 6;\n          }\n        }\n        local_b8 = local_b8 + 1;\n        lVar21 = lVar21 + 0x18;\n        if (uVar2 == local_b8) goto LAB_001a3680;\n        lVar9 = param_1[0x2c];\n      } while( true );\n    }\n  }\n  else {\n    param_7 = param_7 + param_1[0x2a];\n    if ((-1 < param_7) && ((long)(param_7 + (ulong)uVar16) <= *(long *)(param_2 + 0x10))) {\n      local_70 = (undefined4 *)(param_7 + *(long *)(param_2 + 0x18));\n      goto LAB_001a31f6;\n    }\nLAB_001a3859:\n    FUN_0019a5b0();\n  }\n                    \n  FUN_0016cdf0("../../gold/object.cc",0xac5,"write_local_symbols");\n}" ({ "{") (declaration "undefined1 uVar1;" (type_identifier "undefined1") (identifier "uVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "ulong *puVar3;" (type_identifier "ulong") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "long *plVar4;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar4" (* "*") (identifier "plVar4")) (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "undefined8 uVar8;" (type_identifier "undefined8") (identifier "uVar8") (; ";")) (declaration "long lVar9;" (sized_type_specifier "long" (long "long")) (identifier "lVar9") (; ";")) (declaration "long lVar10;" (sized_type_specifier "long" (long "long")) (identifier "lVar10") (; ";")) (declaration "bool bVar11;" (primitive_type "bool") (identifier "bVar11") (; ";")) (declaration "ulong uVar12;" (type_identifier "ulong") (identifier "uVar12") (; ";")) (declaration "ushort uVar13;" (type_identifier "ushort") (identifier "uVar13") (; ";")) (declaration "int *piVar14;" (primitive_type "int") (pointer_declarator "*piVar14" (* "*") (identifier "piVar14")) (; ";")) (declaration "ulong uVar15;" (type_identifier "ulong") (identifier "uVar15") (; ";")) (declaration "uint uVar16;" (type_identifier "uint") (identifier "uVar16") (; ";")) (declaration "uint uVar17;" (type_identifier "uint") (identifier "uVar17") (; ";")) (declaration "long *plVar19;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar19" (* "*") (identifier "plVar19")) (; ";")) (declaration "long *plVar20;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar20" (* "*") (identifier "plVar20")) (; ";")) (declaration "long lVar21;" (sized_type_specifier "long" (long "long")) (identifier "lVar21") (; ";")) (declaration "undefined4 *puVar22;" (type_identifier "undefined4") (pointer_declarator "*puVar22" (* "*") (identifier "puVar22")) (; ";")) (declaration "undefined4 *puVar23;" (type_identifier "undefined4") (pointer_declarator "*puVar23" (* "*") (identifier "puVar23")) (; ";")) (declaration "undefined4 *puVar24;" (type_identifier "undefined4") (pointer_declarator "*puVar24" (* "*") (identifier "puVar24")) (; ";")) (declaration "undefined1 auVar25 [16];" (type_identifier "undefined1") (array_declarator "auVar25 [16]" (identifier "auVar25") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "uint local_b8;" (type_identifier "uint") (identifier "local_b8") (; ";")) (declaration "undefined *local_b0;" (type_identifier "undefined") (pointer_declarator "*local_b0" (* "*") (identifier "local_b0")) (; ";")) (declaration "undefined4 *local_70;" (type_identifier "undefined4") (pointer_declarator "*local_70" (* "*") (identifier "local_70")) (; ";")) (declaration "undefined4 *local_68;" (type_identifier "undefined4") (pointer_declarator "*local_68" (* "*") (identifier "local_68")) (; ";")) (declaration "ulong local_48;" (type_identifier "ulong") (identifier "local_48") (; ";")) (declaration "int local_40;" (primitive_type "int") (identifier "local_40") (; ";")) (declaration "uint local_3c;" (type_identifier "uint") (identifier "local_3c") (; ";")) (declaration "ulong uVar18;" (type_identifier "ulong") (identifier "uVar18") (; ";")) (if_statement "if (*(long *)(PTR_DAT_003be6b0 + 0x10) == 0) {\n                    \n    FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");\n  }" (if "if") (parenthesized_expression "(*(long *)(PTR_DAT_003be6b0 + 0x10) == 0)" (( "(") (binary_expression "*(long *)(PTR_DAT_003be6b0 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_003be6b0 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_003be6b0 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_003be6b0 + 0x10)" (( "(") (binary_expression "PTR_DAT_003be6b0 + 0x10" (identifier "PTR_DAT_003be6b0") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");\n  }" ({ "{") (expression_statement "FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_0016cdf0("../../gold/parameters.h",0x5c,"options")" (identifier "FUN_0016cdf0") (argument_list "("../../gold/parameters.h",0x5c,"options")" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x5c") (, ",") (string_literal ""options"" (" """) (string_content "options") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x54f9) != '\0') {\n    if ((int)param_1[0x25] == 0) {\n      return;\n    }\n    *(undefined4 *)((long)param_1 + 0x124) = 0;\n  }" (if "if") (parenthesized_expression "(*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x54f9) != '\0')" (( "(") (binary_expression "*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x54f9) != '\0'" (pointer_expression "*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x54f9)" (* "*") (cast_expression "(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x54f9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x54f9)" (( "(") (binary_expression "*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x54f9" (pointer_expression "*(long *)(PTR_DAT_003be6b0 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_003be6b0 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_003be6b0 + 0x10)" (( "(") (binary_expression "PTR_DAT_003be6b0 + 0x10" (identifier "PTR_DAT_003be6b0") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x54f9")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    if ((int)param_1[0x25] == 0) {\n      return;\n    }\n    *(undefined4 *)((long)param_1 + 0x124) = 0;\n  }" ({ "{") (if_statement "if ((int)param_1[0x25] == 0) {\n      return;\n    }" (if "if") (parenthesized_expression "((int)param_1[0x25] == 0)" (( "(") (binary_expression "(int)param_1[0x25] == 0" (cast_expression "(int)param_1[0x25]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_1[0x25]" (identifier "param_1") ([ "[") (number_literal "0x25") (] "]"))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "*(undefined4 *)((long)param_1 + 0x124) = 0;" (assignment_expression "*(undefined4 *)((long)param_1 + 0x124) = 0" (pointer_expression "*(undefined4 *)((long)param_1 + 0x124)" (* "*") (cast_expression "(undefined4 *)((long)param_1 + 0x124)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x124)" (( "(") (binary_expression "(long)param_1 + 0x124" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x124")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (if_statement "if (*(int *)((long)param_1 + 0x11c) == -1) {\n                    \n    FUN_0016cdf0("../../gold/object.cc",0xa97,"write_local_symbols");\n  }" (if "if") (parenthesized_expression "(*(int *)((long)param_1 + 0x11c) == -1)" (( "(") (binary_expression "*(int *)((long)param_1 + 0x11c) == -1" (pointer_expression "*(int *)((long)param_1 + 0x11c)" (* "*") (cast_expression "(int *)((long)param_1 + 0x11c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x11c)" (( "(") (binary_expression "(long)param_1 + 0x11c" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x11c")) () ")")))) (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n                    \n    FUN_0016cdf0("../../gold/object.cc",0xa97,"write_local_symbols");\n  }" ({ "{") (expression_statement "FUN_0016cdf0("../../gold/object.cc",0xa97,"write_local_symbols");" (call_expression "FUN_0016cdf0("../../gold/object.cc",0xa97,"write_local_symbols")" (identifier "FUN_0016cdf0") (argument_list "("../../gold/object.cc",0xa97,"write_local_symbols")" (( "(") (string_literal ""../../gold/object.cc"" (" """) (string_content "../../gold/object.cc") (" """)) (, ",") (number_literal "0xa97") (, ",") (string_literal ""write_local_symbols"" (" """) (string_content "write_local_symbols") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)((long)param_1 + 0x11c) == 0) {\n    return;\n  }" (if "if") (parenthesized_expression "(*(int *)((long)param_1 + 0x11c) == 0)" (( "(") (binary_expression "*(int *)((long)param_1 + 0x11c) == 0" (pointer_expression "*(int *)((long)param_1 + 0x11c)" (* "*") (cast_expression "(int *)((long)param_1 + 0x11c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x11c)" (( "(") (binary_expression "(long)param_1 + 0x11c" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x11c")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "plVar20 = param_1 + 0x1f;" (assignment_expression "plVar20 = param_1 + 0x1f" (identifier "plVar20") (= "=") (binary_expression "param_1 + 0x1f" (identifier "param_1") (+ "+") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar8 = FUN_0015e080(plVar20);" (assignment_expression "uVar8 = FUN_0015e080(plVar20)" (identifier "uVar8") (= "=") (call_expression "FUN_0015e080(plVar20)" (identifier "FUN_0015e080") (argument_list "(plVar20)" (( "(") (identifier "plVar20") () ")")))) (; ";")) (if_statement "if (param_1[5] == 0) {\nLAB_001a3824:\n                    \n    FUN_0019a570();\n  }" (if "if") (parenthesized_expression "(param_1[5] == 0)" (( "(") (binary_expression "param_1[5] == 0" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_001a3824:\n                    \n    FUN_0019a570();\n  }" ({ "{") (labeled_statement "LAB_001a3824:\n                    \n    FUN_0019a570();" (statement_identifier "LAB_001a3824") (: ":") (expression_statement "FUN_0019a570();" (call_expression "FUN_0019a570()" (identifier "FUN_0019a570") (argument_list "()" (( "(") () ")"))) (; ";"))) (} "}"))) (expression_statement "lVar9 = FUN_0016b970(param_1[5] + 0x28,param_1[6],uVar8,0x40,1,1);" (assignment_expression "lVar9 = FUN_0016b970(param_1[5] + 0x28,param_1[6],uVar8,0x40,1,1)" (identifier "lVar9") (= "=") (call_expression "FUN_0016b970(param_1[5] + 0x28,param_1[6],uVar8,0x40,1,1)" (identifier "FUN_0016b970") (argument_list "(param_1[5] + 0x28,param_1[6],uVar8,0x40,1,1)" (( "(") (binary_expression "param_1[5] + 0x28" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (+ "+") (number_literal "0x28")) (, ",") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (, ",") (identifier "uVar8") (, ",") (number_literal "0x40") (, ",") (number_literal "1") (, ",") (number_literal "1") () ")")))) (; ";")) (if_statement "if (*(int *)(lVar9 + 4) != 2) {\n                    \n    FUN_0016cdf0("../../gold/object.cc",0xaa2,"write_local_symbols");\n  }" (if "if") (parenthesized_expression "(*(int *)(lVar9 + 4) != 2)" (( "(") (binary_expression "*(int *)(lVar9 + 4) != 2" (pointer_expression "*(int *)(lVar9 + 4)" (* "*") (cast_expression "(int *)(lVar9 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + 4)" (( "(") (binary_expression "lVar9 + 4" (identifier "lVar9") (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n                    \n    FUN_0016cdf0("../../gold/object.cc",0xaa2,"write_local_symbols");\n  }" ({ "{") (expression_statement "FUN_0016cdf0("../../gold/object.cc",0xaa2,"write_local_symbols");" (call_expression "FUN_0016cdf0("../../gold/object.cc",0xaa2,"write_local_symbols")" (identifier "FUN_0016cdf0") (argument_list "("../../gold/object.cc",0xaa2,"write_local_symbols")" (( "(") (string_literal ""../../gold/object.cc"" (" """) (string_content "../../gold/object.cc") (" """)) (, ",") (number_literal "0xaa2") (, ",") (string_literal ""write_local_symbols"" (" """) (string_content "write_local_symbols") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar2 = *(uint *)(param_1 + 0x24);" (assignment_expression "uVar2 = *(uint *)(param_1 + 0x24)" (identifier "uVar2") (= "=") (pointer_expression "*(uint *)(param_1 + 0x24)" (* "*") (cast_expression "(uint *)(param_1 + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x24)" (( "(") (binary_expression "param_1 + 0x24" (identifier "param_1") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (if_statement "if (uVar2 != *(uint *)(lVar9 + 0x2c)) {\n                    \n    FUN_0016cdf0("../../gold/object.cc",0xaa4,"write_local_symbols");\n  }" (if "if") (parenthesized_expression "(uVar2 != *(uint *)(lVar9 + 0x2c))" (( "(") (binary_expression "uVar2 != *(uint *)(lVar9 + 0x2c)" (identifier "uVar2") (!= "!=") (pointer_expression "*(uint *)(lVar9 + 0x2c)" (* "*") (cast_expression "(uint *)(lVar9 + 0x2c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + 0x2c)" (( "(") (binary_expression "lVar9 + 0x2c" (identifier "lVar9") (+ "+") (number_literal "0x2c")) () ")"))))) () ")")) (compound_statement "{\n                    \n    FUN_0016cdf0("../../gold/object.cc",0xaa4,"write_local_symbols");\n  }" ({ "{") (expression_statement "FUN_0016cdf0("../../gold/object.cc",0xaa4,"write_local_symbols");" (call_expression "FUN_0016cdf0("../../gold/object.cc",0xaa4,"write_local_symbols")" (identifier "FUN_0016cdf0") (argument_list "("../../gold/object.cc",0xaa4,"write_local_symbols")" (( "(") (string_literal ""../../gold/object.cc"" (" """) (string_content "../../gold/object.cc") (" """)) (, ",") (number_literal "0xaa4") (, ",") (string_literal ""write_local_symbols"" (" """) (string_content "write_local_symbols") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (param_1[5] == 0) goto LAB_001a3824;" (if "if") (parenthesized_expression "(param_1[5] == 0)" (( "(") (binary_expression "param_1[5] == 0" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001a3824;" (goto "goto") (statement_identifier "LAB_001a3824") (; ";"))) (expression_statement "lVar10 = FUN_0016b970(param_1[5] + 0x28,param_1[6],*(undefined8 *)(lVar9 + 0x18),uVar2 * 0x18,1,0)\n  ;" (assignment_expression "lVar10 = FUN_0016b970(param_1[5] + 0x28,param_1[6],*(undefined8 *)(lVar9 + 0x18),uVar2 * 0x18,1,0)" (identifier "lVar10") (= "=") (call_expression "FUN_0016b970(param_1[5] + 0x28,param_1[6],*(undefined8 *)(lVar9 + 0x18),uVar2 * 0x18,1,0)" (identifier "FUN_0016b970") (argument_list "(param_1[5] + 0x28,param_1[6],*(undefined8 *)(lVar9 + 0x18),uVar2 * 0x18,1,0)" (( "(") (binary_expression "param_1[5] + 0x28" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (+ "+") (number_literal "0x28")) (, ",") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (, ",") (pointer_expression "*(undefined8 *)(lVar9 + 0x18)" (* "*") (cast_expression "(undefined8 *)(lVar9 + 0x18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + 0x18)" (( "(") (binary_expression "lVar9 + 0x18" (identifier "lVar9") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (binary_expression "uVar2 * 0x18" (identifier "uVar2") (* "*") (number_literal "0x18")) (, ",") (number_literal "1") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "uVar16 = *(uint *)(lVar9 + 0x28);" (assignment_expression "uVar16 = *(uint *)(lVar9 + 0x28)" (identifier "uVar16") (= "=") (pointer_expression "*(uint *)(lVar9 + 0x28)" (* "*") (cast_expression "(uint *)(lVar9 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + 0x28)" (( "(") (binary_expression "lVar9 + 0x28" (identifier "lVar9") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (if_statement "if (0xfeff < uVar16) {\n    FUN_0015d960(plVar20);\n    uVar16 = uVar16 + (int)param_1[0x22];\n  }" (if "if") (parenthesized_expression "(0xfeff < uVar16)" (( "(") (binary_expression "0xfeff < uVar16" (number_literal "0xfeff") (< "<") (identifier "uVar16")) () ")")) (compound_statement "{\n    FUN_0015d960(plVar20);\n    uVar16 = uVar16 + (int)param_1[0x22];\n  }" ({ "{") (expression_statement "FUN_0015d960(plVar20);" (call_expression "FUN_0015d960(plVar20)" (identifier "FUN_0015d960") (argument_list "(plVar20)" (( "(") (identifier "plVar20") () ")"))) (; ";")) (expression_statement "uVar16 = uVar16 + (int)param_1[0x22];" (assignment_expression "uVar16 = uVar16 + (int)param_1[0x22]" (identifier "uVar16") (= "=") (binary_expression "uVar16 + (int)param_1[0x22]" (identifier "uVar16") (+ "+") (cast_expression "(int)param_1[0x22]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_1[0x22]" (identifier "param_1") ([ "[") (number_literal "0x22") (] "]"))))) (; ";")) (} "}"))) (if_statement "if (*(code **)(*param_1 + 0x70) == FUN_001a2100) {\n    auVar25 = FUN_001a2060(plVar20,uVar16);\n    local_48 = auVar25._8_8_;\n    local_b0 = &DAT_00313646;\n    if (local_48 != 0) {\n      if (param_1[5] == 0) goto LAB_001a3824;\n      local_b0 = (undefined *)FUN_0016b970(param_1[5] + 0x28,param_1[6],auVar25._0_8_,local_48,1,0);\n    }\n  }\n  else {\n    local_b0 = (undefined *)(**(code **)(*param_1 + 0x70))(param_1,uVar16,&local_48,0);\n  }" (if "if") (parenthesized_expression "(*(code **)(*param_1 + 0x70) == FUN_001a2100)" (( "(") (binary_expression "*(code **)(*param_1 + 0x70) == FUN_001a2100" (pointer_expression "*(code **)(*param_1 + 0x70)" (* "*") (cast_expression "(code **)(*param_1 + 0x70)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 0x70)" (( "(") (binary_expression "*param_1 + 0x70" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x70")) () ")")))) (== "==") (identifier "FUN_001a2100")) () ")")) (compound_statement "{\n    auVar25 = FUN_001a2060(plVar20,uVar16);\n    local_48 = auVar25._8_8_;\n    local_b0 = &DAT_00313646;\n    if (local_48 != 0) {\n      if (param_1[5] == 0) goto LAB_001a3824;\n      local_b0 = (undefined *)FUN_0016b970(param_1[5] + 0x28,param_1[6],auVar25._0_8_,local_48,1,0);\n    }\n  }" ({ "{") (expression_statement "auVar25 = FUN_001a2060(plVar20,uVar16);" (assignment_expression "auVar25 = FUN_001a2060(plVar20,uVar16)" (identifier "auVar25") (= "=") (call_expression "FUN_001a2060(plVar20,uVar16)" (identifier "FUN_001a2060") (argument_list "(plVar20,uVar16)" (( "(") (identifier "plVar20") (, ",") (identifier "uVar16") () ")")))) (; ";")) (expression_statement "local_48 = auVar25._8_8_;" (assignment_expression "local_48 = auVar25._8_8_" (identifier "local_48") (= "=") (field_expression "auVar25._8_8_" (identifier "auVar25") (. ".") (field_identifier "_8_8_"))) (; ";")) (expression_statement "local_b0 = &DAT_00313646;" (assignment_expression "local_b0 = &DAT_00313646" (identifier "local_b0") (= "=") (pointer_expression "&DAT_00313646" (& "&") (identifier "DAT_00313646"))) (; ";")) (if_statement "if (local_48 != 0) {\n      if (param_1[5] == 0) goto LAB_001a3824;\n      local_b0 = (undefined *)FUN_0016b970(param_1[5] + 0x28,param_1[6],auVar25._0_8_,local_48,1,0);\n    }" (if "if") (parenthesized_expression "(local_48 != 0)" (( "(") (binary_expression "local_48 != 0" (identifier "local_48") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if (param_1[5] == 0) goto LAB_001a3824;\n      local_b0 = (undefined *)FUN_0016b970(param_1[5] + 0x28,param_1[6],auVar25._0_8_,local_48,1,0);\n    }" ({ "{") (if_statement "if (param_1[5] == 0) goto LAB_001a3824;" (if "if") (parenthesized_expression "(param_1[5] == 0)" (( "(") (binary_expression "param_1[5] == 0" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001a3824;" (goto "goto") (statement_identifier "LAB_001a3824") (; ";"))) (expression_statement "local_b0 = (undefined *)FUN_0016b970(param_1[5] + 0x28,param_1[6],auVar25._0_8_,local_48,1,0);" (assignment_expression "local_b0 = (undefined *)FUN_0016b970(param_1[5] + 0x28,param_1[6],auVar25._0_8_,local_48,1,0)" (identifier "local_b0") (= "=") (cast_expression "(undefined *)FUN_0016b970(param_1[5] + 0x28,param_1[6],auVar25._0_8_,local_48,1,0)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0016b970(param_1[5] + 0x28,param_1[6],auVar25._0_8_,local_48,1,0)" (identifier "FUN_0016b970") (argument_list "(param_1[5] + 0x28,param_1[6],auVar25._0_8_,local_48,1,0)" (( "(") (binary_expression "param_1[5] + 0x28" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (+ "+") (number_literal "0x28")) (, ",") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (, ",") (field_expression "auVar25._0_8_" (identifier "auVar25") (. ".") (field_identifier "_0_8_")) (, ",") (identifier "local_48") (, ",") (number_literal "1") (, ",") (number_literal "0") () ")"))))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    local_b0 = (undefined *)(**(code **)(*param_1 + 0x70))(param_1,uVar16,&local_48,0);\n  }" (else "else") (compound_statement "{\n    local_b0 = (undefined *)(**(code **)(*param_1 + 0x70))(param_1,uVar16,&local_48,0);\n  }" ({ "{") (expression_statement "local_b0 = (undefined *)(**(code **)(*param_1 + 0x70))(param_1,uVar16,&local_48,0);" (assignment_expression "local_b0 = (undefined *)(**(code **)(*param_1 + 0x70))(param_1,uVar16,&local_48,0)" (identifier "local_b0") (= "=") (cast_expression "(undefined *)(**(code **)(*param_1 + 0x70))(param_1,uVar16,&local_48,0)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(*param_1 + 0x70))(param_1,uVar16,&local_48,0)" (parenthesized_expression "(**(code **)(*param_1 + 0x70))" (( "(") (pointer_expression "**(code **)(*param_1 + 0x70)" (* "*") (pointer_expression "*(code **)(*param_1 + 0x70)" (* "*") (cast_expression "(code **)(*param_1 + 0x70)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 0x70)" (( "(") (binary_expression "*param_1 + 0x70" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x70")) () ")"))))) () ")")) (argument_list "(param_1,uVar16,&local_48,0)" (( "(") (identifier "param_1") (, ",") (identifier "uVar16") (, ",") (pointer_expression "&local_48" (& "&") (identifier "local_48")) (, ",") (number_literal "0") () ")"))))) (; ";")) (} "}")))) (expression_statement "uVar16 = *(int *)((long)param_1 + 0x124) * 0x18;" (assignment_expression "uVar16 = *(int *)((long)param_1 + 0x124) * 0x18" (identifier "uVar16") (= "=") (binary_expression "*(int *)((long)param_1 + 0x124) * 0x18" (pointer_expression "*(int *)((long)param_1 + 0x124)" (* "*") (cast_expression "(int *)((long)param_1 + 0x124)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x124)" (( "(") (binary_expression "(long)param_1 + 0x124" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x124")) () ")")))) (* "*") (number_literal "0x18"))) (; ";")) (if_statement "if (uVar16 == 0) {\n    local_70 = (undefined4 *)0x0;\nLAB_001a31f6:\n    uVar17 = (int)param_1[0x25] * 0x18;\n    uVar18 = (ulong)uVar17;\n    if (uVar17 == 0) {\n      local_68 = (undefined4 *)0x0;\n    }\n    else {\n      lVar9 = param_1[0x2b];\n      if ((lVar9 < 0) || (*(long *)(param_2 + 0x10) < (long)(lVar9 + uVar18))) goto LAB_001a3859;\n      local_68 = (undefined4 *)(lVar9 + *(long *)(param_2 + 0x18));\n    }\n    lVar9 = param_1[0x2c];\n    if ((ulong)uVar2 == (param_1[0x2d] - lVar9 >> 3) * -0x5555555555555555) {\n      puVar22 = local_68;\n      puVar24 = local_70;\n      if (uVar2 < 2) {\nLAB_001a3680:\n        if ((uVar16 != 0) && ((long)puVar24 - (long)local_70 != (ulong)uVar16)) {\n                    \n          FUN_0016cdf0("../../gold/object.cc",0xb0a,"write_local_symbols");\n        }\n        if ((uVar17 != 0) && ((long)puVar22 - (long)local_68 != uVar18)) {\n                    \n          FUN_0016cdf0("../../gold/object.cc",0xb11,"write_local_symbols");\n        }\n        return;\n      }\n      lVar21 = lVar10 + 0x30;\n      local_b8 = 1;\n      do {\n        uVar13 = *(ushort *)(lVar21 + -0x12);\n        uVar12 = (ulong)uVar13;\n        piVar14 = (int *)(lVar9 + (-0x18 - lVar10) + lVar21);\n        if (uVar13 < 0xff00) {\nLAB_001a350a:\n          if ((ulong)(param_1[0xb] - param_1[10] >> 3) <= uVar12) {\n                    \n            FUN_0016cdf0("../../gold/object.cc",0xad5,"write_local_symbols");\n          }\n          plVar20 = *(long **)(param_1[10] + uVar12 * 8);\n          if (plVar20 != (long *)0x0) {\n            if (*(code **)(*plVar20 + 0x58) == FUN_00175f90) {\n              uVar7 = *(uint *)((long)plVar20 + 0x7c);\n              if (uVar7 == 0xffffffff) {\n                    \n                FUN_0016cdf0("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar7 = (**(code **)(*plVar20 + 0x58))();\n            }\n            uVar13 = (ushort)uVar7;\n            iVar5 = *piVar14;\n            bVar11 = iVar5 != 0 && iVar5 != -2;\n            if (0xfeff < uVar7) {\n              if (iVar5 == 0 || iVar5 == -2) goto LAB_001a374c;\n              if (iVar5 != -1) {\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_5 + 0x38,&local_40);\n              }\n              iVar5 = piVar14[1];\n              if (iVar5 == 0) goto LAB_001a3764;\n              if (iVar5 == -1) {\n                iVar5 = *piVar14;\n                uVar13 = 0xffff;\n                bVar11 = iVar5 != 0 && iVar5 != -2;\n              }\n              else {\n                uVar13 = 0xffff;\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_6 + 0x38,&local_40);\n                iVar5 = *piVar14;\n                bVar11 = iVar5 != -2 && iVar5 != 0;\n              }\n            }\n            goto LAB_001a32f9;\n          }\n        }\n        else {\n          if (uVar13 == 0xffff) {\n            lVar9 = param_1[8];\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*param_1 + 0xd8))(param_1);\n              param_1[8] = lVar9;\n            }\n            uVar7 = FUN_0019a820(lVar9,param_1,local_b8);\n            uVar12 = (ulong)uVar7;\n            goto LAB_001a350a;\n          }\n          iVar5 = *piVar14;\n          bVar11 = iVar5 != 0 && iVar5 != -2;\nLAB_001a32f9:\n          if (!bVar11) {\nLAB_001a374c:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }\n          puVar23 = puVar24;\n          if (iVar5 != -1) {\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xae8,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_3,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar24 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) goto LAB_001a377c;\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a33ac:\n            *(undefined8 *)(puVar24 + 2) = uVar8;\n            puVar23 = puVar24 + 6;\n            *(undefined8 *)(puVar24 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar24 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar24 + 6) = uVar13;\n            *(undefined1 *)((long)puVar24 + 5) = uVar1;\n          }\n          if (piVar14[1] == 0) {\nLAB_001a3764:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x738,"has_output_dynsym_entry");\n          }\n          puVar24 = puVar23;\n          if (piVar14[1] != -1) {\n            if ((undefined4 *)((long)local_68 + uVar18) <= puVar22) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xafa,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_4,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar22 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    \n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");\n              }\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a349c:\n            *(undefined8 *)(puVar22 + 2) = uVar8;\n            *(undefined8 *)(puVar22 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar22 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar22 + 6) = uVar13;\n            *(undefined1 *)((long)puVar22 + 5) = uVar1;\n            puVar22 = puVar22 + 6;\n          }\n        }\n        local_b8 = local_b8 + 1;\n        lVar21 = lVar21 + 0x18;\n        if (uVar2 == local_b8) goto LAB_001a3680;\n        lVar9 = param_1[0x2c];\n      } while( true );\n    }\n  }\n  else {\n    param_7 = param_7 + param_1[0x2a];\n    if ((-1 < param_7) && ((long)(param_7 + (ulong)uVar16) <= *(long *)(param_2 + 0x10))) {\n      local_70 = (undefined4 *)(param_7 + *(long *)(param_2 + 0x18));\n      goto LAB_001a31f6;\n    }\nLAB_001a3859:\n    FUN_0019a5b0();\n  }" (if "if") (parenthesized_expression "(uVar16 == 0)" (( "(") (binary_expression "uVar16 == 0" (identifier "uVar16") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    local_70 = (undefined4 *)0x0;\nLAB_001a31f6:\n    uVar17 = (int)param_1[0x25] * 0x18;\n    uVar18 = (ulong)uVar17;\n    if (uVar17 == 0) {\n      local_68 = (undefined4 *)0x0;\n    }\n    else {\n      lVar9 = param_1[0x2b];\n      if ((lVar9 < 0) || (*(long *)(param_2 + 0x10) < (long)(lVar9 + uVar18))) goto LAB_001a3859;\n      local_68 = (undefined4 *)(lVar9 + *(long *)(param_2 + 0x18));\n    }\n    lVar9 = param_1[0x2c];\n    if ((ulong)uVar2 == (param_1[0x2d] - lVar9 >> 3) * -0x5555555555555555) {\n      puVar22 = local_68;\n      puVar24 = local_70;\n      if (uVar2 < 2) {\nLAB_001a3680:\n        if ((uVar16 != 0) && ((long)puVar24 - (long)local_70 != (ulong)uVar16)) {\n                    \n          FUN_0016cdf0("../../gold/object.cc",0xb0a,"write_local_symbols");\n        }\n        if ((uVar17 != 0) && ((long)puVar22 - (long)local_68 != uVar18)) {\n                    \n          FUN_0016cdf0("../../gold/object.cc",0xb11,"write_local_symbols");\n        }\n        return;\n      }\n      lVar21 = lVar10 + 0x30;\n      local_b8 = 1;\n      do {\n        uVar13 = *(ushort *)(lVar21 + -0x12);\n        uVar12 = (ulong)uVar13;\n        piVar14 = (int *)(lVar9 + (-0x18 - lVar10) + lVar21);\n        if (uVar13 < 0xff00) {\nLAB_001a350a:\n          if ((ulong)(param_1[0xb] - param_1[10] >> 3) <= uVar12) {\n                    \n            FUN_0016cdf0("../../gold/object.cc",0xad5,"write_local_symbols");\n          }\n          plVar20 = *(long **)(param_1[10] + uVar12 * 8);\n          if (plVar20 != (long *)0x0) {\n            if (*(code **)(*plVar20 + 0x58) == FUN_00175f90) {\n              uVar7 = *(uint *)((long)plVar20 + 0x7c);\n              if (uVar7 == 0xffffffff) {\n                    \n                FUN_0016cdf0("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar7 = (**(code **)(*plVar20 + 0x58))();\n            }\n            uVar13 = (ushort)uVar7;\n            iVar5 = *piVar14;\n            bVar11 = iVar5 != 0 && iVar5 != -2;\n            if (0xfeff < uVar7) {\n              if (iVar5 == 0 || iVar5 == -2) goto LAB_001a374c;\n              if (iVar5 != -1) {\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_5 + 0x38,&local_40);\n              }\n              iVar5 = piVar14[1];\n              if (iVar5 == 0) goto LAB_001a3764;\n              if (iVar5 == -1) {\n                iVar5 = *piVar14;\n                uVar13 = 0xffff;\n                bVar11 = iVar5 != 0 && iVar5 != -2;\n              }\n              else {\n                uVar13 = 0xffff;\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_6 + 0x38,&local_40);\n                iVar5 = *piVar14;\n                bVar11 = iVar5 != -2 && iVar5 != 0;\n              }\n            }\n            goto LAB_001a32f9;\n          }\n        }\n        else {\n          if (uVar13 == 0xffff) {\n            lVar9 = param_1[8];\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*param_1 + 0xd8))(param_1);\n              param_1[8] = lVar9;\n            }\n            uVar7 = FUN_0019a820(lVar9,param_1,local_b8);\n            uVar12 = (ulong)uVar7;\n            goto LAB_001a350a;\n          }\n          iVar5 = *piVar14;\n          bVar11 = iVar5 != 0 && iVar5 != -2;\nLAB_001a32f9:\n          if (!bVar11) {\nLAB_001a374c:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }\n          puVar23 = puVar24;\n          if (iVar5 != -1) {\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xae8,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_3,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar24 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) goto LAB_001a377c;\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a33ac:\n            *(undefined8 *)(puVar24 + 2) = uVar8;\n            puVar23 = puVar24 + 6;\n            *(undefined8 *)(puVar24 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar24 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar24 + 6) = uVar13;\n            *(undefined1 *)((long)puVar24 + 5) = uVar1;\n          }\n          if (piVar14[1] == 0) {\nLAB_001a3764:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x738,"has_output_dynsym_entry");\n          }\n          puVar24 = puVar23;\n          if (piVar14[1] != -1) {\n            if ((undefined4 *)((long)local_68 + uVar18) <= puVar22) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xafa,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_4,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar22 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    \n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");\n              }\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a349c:\n            *(undefined8 *)(puVar22 + 2) = uVar8;\n            *(undefined8 *)(puVar22 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar22 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar22 + 6) = uVar13;\n            *(undefined1 *)((long)puVar22 + 5) = uVar1;\n            puVar22 = puVar22 + 6;\n          }\n        }\n        local_b8 = local_b8 + 1;\n        lVar21 = lVar21 + 0x18;\n        if (uVar2 == local_b8) goto LAB_001a3680;\n        lVar9 = param_1[0x2c];\n      } while( true );\n    }\n  }" ({ "{") (expression_statement "local_70 = (undefined4 *)0x0;" (assignment_expression "local_70 = (undefined4 *)0x0" (identifier "local_70") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "LAB_001a31f6:\n    uVar17 = (int)param_1[0x25] * 0x18;" (statement_identifier "LAB_001a31f6") (: ":") (expression_statement "uVar17 = (int)param_1[0x25] * 0x18;" (assignment_expression "uVar17 = (int)param_1[0x25] * 0x18" (identifier "uVar17") (= "=") (binary_expression "(int)param_1[0x25] * 0x18" (cast_expression "(int)param_1[0x25]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_1[0x25]" (identifier "param_1") ([ "[") (number_literal "0x25") (] "]"))) (* "*") (number_literal "0x18"))) (; ";"))) (expression_statement "uVar18 = (ulong)uVar17;" (assignment_expression "uVar18 = (ulong)uVar17" (identifier "uVar18") (= "=") (cast_expression "(ulong)uVar17" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar17"))) (; ";")) (if_statement "if (uVar17 == 0) {\n      local_68 = (undefined4 *)0x0;\n    }\n    else {\n      lVar9 = param_1[0x2b];\n      if ((lVar9 < 0) || (*(long *)(param_2 + 0x10) < (long)(lVar9 + uVar18))) goto LAB_001a3859;\n      local_68 = (undefined4 *)(lVar9 + *(long *)(param_2 + 0x18));\n    }" (if "if") (parenthesized_expression "(uVar17 == 0)" (( "(") (binary_expression "uVar17 == 0" (identifier "uVar17") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      local_68 = (undefined4 *)0x0;\n    }" ({ "{") (expression_statement "local_68 = (undefined4 *)0x0;" (assignment_expression "local_68 = (undefined4 *)0x0" (identifier "local_68") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n      lVar9 = param_1[0x2b];\n      if ((lVar9 < 0) || (*(long *)(param_2 + 0x10) < (long)(lVar9 + uVar18))) goto LAB_001a3859;\n      local_68 = (undefined4 *)(lVar9 + *(long *)(param_2 + 0x18));\n    }" (else "else") (compound_statement "{\n      lVar9 = param_1[0x2b];\n      if ((lVar9 < 0) || (*(long *)(param_2 + 0x10) < (long)(lVar9 + uVar18))) goto LAB_001a3859;\n      local_68 = (undefined4 *)(lVar9 + *(long *)(param_2 + 0x18));\n    }" ({ "{") (expression_statement "lVar9 = param_1[0x2b];" (assignment_expression "lVar9 = param_1[0x2b]" (identifier "lVar9") (= "=") (subscript_expression "param_1[0x2b]" (identifier "param_1") ([ "[") (number_literal "0x2b") (] "]"))) (; ";")) (if_statement "if ((lVar9 < 0) || (*(long *)(param_2 + 0x10) < (long)(lVar9 + uVar18))) goto LAB_001a3859;" (if "if") (parenthesized_expression "((lVar9 < 0) || (*(long *)(param_2 + 0x10) < (long)(lVar9 + uVar18)))" (( "(") (binary_expression "(lVar9 < 0) || (*(long *)(param_2 + 0x10) < (long)(lVar9 + uVar18))" (parenthesized_expression "(lVar9 < 0)" (( "(") (binary_expression "lVar9 < 0" (identifier "lVar9") (< "<") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*(long *)(param_2 + 0x10) < (long)(lVar9 + uVar18))" (( "(") (binary_expression "*(long *)(param_2 + 0x10) < (long)(lVar9 + uVar18)" (pointer_expression "*(long *)(param_2 + 0x10)" (* "*") (cast_expression "(long *)(param_2 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x10)" (( "(") (binary_expression "param_2 + 0x10" (identifier "param_2") (+ "+") (number_literal "0x10")) () ")")))) (< "<") (cast_expression "(long)(lVar9 + uVar18)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(lVar9 + uVar18)" (( "(") (binary_expression "lVar9 + uVar18" (identifier "lVar9") (+ "+") (identifier "uVar18")) () ")")))) () ")"))) () ")")) (goto_statement "goto LAB_001a3859;" (goto "goto") (statement_identifier "LAB_001a3859") (; ";"))) (expression_statement "local_68 = (undefined4 *)(lVar9 + *(long *)(param_2 + 0x18));" (assignment_expression "local_68 = (undefined4 *)(lVar9 + *(long *)(param_2 + 0x18))" (identifier "local_68") (= "=") (cast_expression "(undefined4 *)(lVar9 + *(long *)(param_2 + 0x18))" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + *(long *)(param_2 + 0x18))" (( "(") (binary_expression "lVar9 + *(long *)(param_2 + 0x18)" (identifier "lVar9") (+ "+") (pointer_expression "*(long *)(param_2 + 0x18)" (* "*") (cast_expression "(long *)(param_2 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x18)" (( "(") (binary_expression "param_2 + 0x18" (identifier "param_2") (+ "+") (number_literal "0x18")) () ")"))))) () ")")))) (; ";")) (} "}")))) (expression_statement "lVar9 = param_1[0x2c];" (assignment_expression "lVar9 = param_1[0x2c]" (identifier "lVar9") (= "=") (subscript_expression "param_1[0x2c]" (identifier "param_1") ([ "[") (number_literal "0x2c") (] "]"))) (; ";")) (if_statement "if ((ulong)uVar2 == (param_1[0x2d] - lVar9 >> 3) * -0x5555555555555555) {\n      puVar22 = local_68;\n      puVar24 = local_70;\n      if (uVar2 < 2) {\nLAB_001a3680:\n        if ((uVar16 != 0) && ((long)puVar24 - (long)local_70 != (ulong)uVar16)) {\n                    \n          FUN_0016cdf0("../../gold/object.cc",0xb0a,"write_local_symbols");\n        }\n        if ((uVar17 != 0) && ((long)puVar22 - (long)local_68 != uVar18)) {\n                    \n          FUN_0016cdf0("../../gold/object.cc",0xb11,"write_local_symbols");\n        }\n        return;\n      }\n      lVar21 = lVar10 + 0x30;\n      local_b8 = 1;\n      do {\n        uVar13 = *(ushort *)(lVar21 + -0x12);\n        uVar12 = (ulong)uVar13;\n        piVar14 = (int *)(lVar9 + (-0x18 - lVar10) + lVar21);\n        if (uVar13 < 0xff00) {\nLAB_001a350a:\n          if ((ulong)(param_1[0xb] - param_1[10] >> 3) <= uVar12) {\n                    \n            FUN_0016cdf0("../../gold/object.cc",0xad5,"write_local_symbols");\n          }\n          plVar20 = *(long **)(param_1[10] + uVar12 * 8);\n          if (plVar20 != (long *)0x0) {\n            if (*(code **)(*plVar20 + 0x58) == FUN_00175f90) {\n              uVar7 = *(uint *)((long)plVar20 + 0x7c);\n              if (uVar7 == 0xffffffff) {\n                    \n                FUN_0016cdf0("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar7 = (**(code **)(*plVar20 + 0x58))();\n            }\n            uVar13 = (ushort)uVar7;\n            iVar5 = *piVar14;\n            bVar11 = iVar5 != 0 && iVar5 != -2;\n            if (0xfeff < uVar7) {\n              if (iVar5 == 0 || iVar5 == -2) goto LAB_001a374c;\n              if (iVar5 != -1) {\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_5 + 0x38,&local_40);\n              }\n              iVar5 = piVar14[1];\n              if (iVar5 == 0) goto LAB_001a3764;\n              if (iVar5 == -1) {\n                iVar5 = *piVar14;\n                uVar13 = 0xffff;\n                bVar11 = iVar5 != 0 && iVar5 != -2;\n              }\n              else {\n                uVar13 = 0xffff;\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_6 + 0x38,&local_40);\n                iVar5 = *piVar14;\n                bVar11 = iVar5 != -2 && iVar5 != 0;\n              }\n            }\n            goto LAB_001a32f9;\n          }\n        }\n        else {\n          if (uVar13 == 0xffff) {\n            lVar9 = param_1[8];\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*param_1 + 0xd8))(param_1);\n              param_1[8] = lVar9;\n            }\n            uVar7 = FUN_0019a820(lVar9,param_1,local_b8);\n            uVar12 = (ulong)uVar7;\n            goto LAB_001a350a;\n          }\n          iVar5 = *piVar14;\n          bVar11 = iVar5 != 0 && iVar5 != -2;\nLAB_001a32f9:\n          if (!bVar11) {\nLAB_001a374c:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }\n          puVar23 = puVar24;\n          if (iVar5 != -1) {\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xae8,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_3,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar24 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) goto LAB_001a377c;\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a33ac:\n            *(undefined8 *)(puVar24 + 2) = uVar8;\n            puVar23 = puVar24 + 6;\n            *(undefined8 *)(puVar24 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar24 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar24 + 6) = uVar13;\n            *(undefined1 *)((long)puVar24 + 5) = uVar1;\n          }\n          if (piVar14[1] == 0) {\nLAB_001a3764:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x738,"has_output_dynsym_entry");\n          }\n          puVar24 = puVar23;\n          if (piVar14[1] != -1) {\n            if ((undefined4 *)((long)local_68 + uVar18) <= puVar22) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xafa,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_4,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar22 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    \n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");\n              }\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a349c:\n            *(undefined8 *)(puVar22 + 2) = uVar8;\n            *(undefined8 *)(puVar22 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar22 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar22 + 6) = uVar13;\n            *(undefined1 *)((long)puVar22 + 5) = uVar1;\n            puVar22 = puVar22 + 6;\n          }\n        }\n        local_b8 = local_b8 + 1;\n        lVar21 = lVar21 + 0x18;\n        if (uVar2 == local_b8) goto LAB_001a3680;\n        lVar9 = param_1[0x2c];\n      } while( true );\n    }" (if "if") (parenthesized_expression "((ulong)uVar2 == (param_1[0x2d] - lVar9 >> 3) * -0x5555555555555555)" (( "(") (binary_expression "(ulong)uVar2 == (param_1[0x2d] - lVar9 >> 3) * -0x5555555555555555" (cast_expression "(ulong)uVar2" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar2")) (== "==") (binary_expression "(param_1[0x2d] - lVar9 >> 3) * -0x5555555555555555" (parenthesized_expression "(param_1[0x2d] - lVar9 >> 3)" (( "(") (binary_expression "param_1[0x2d] - lVar9 >> 3" (binary_expression "param_1[0x2d] - lVar9" (subscript_expression "param_1[0x2d]" (identifier "param_1") ([ "[") (number_literal "0x2d") (] "]")) (- "-") (identifier "lVar9")) (>> ">>") (number_literal "3")) () ")")) (* "*") (number_literal "-0x5555555555555555"))) () ")")) (compound_statement "{\n      puVar22 = local_68;\n      puVar24 = local_70;\n      if (uVar2 < 2) {\nLAB_001a3680:\n        if ((uVar16 != 0) && ((long)puVar24 - (long)local_70 != (ulong)uVar16)) {\n                    \n          FUN_0016cdf0("../../gold/object.cc",0xb0a,"write_local_symbols");\n        }\n        if ((uVar17 != 0) && ((long)puVar22 - (long)local_68 != uVar18)) {\n                    \n          FUN_0016cdf0("../../gold/object.cc",0xb11,"write_local_symbols");\n        }\n        return;\n      }\n      lVar21 = lVar10 + 0x30;\n      local_b8 = 1;\n      do {\n        uVar13 = *(ushort *)(lVar21 + -0x12);\n        uVar12 = (ulong)uVar13;\n        piVar14 = (int *)(lVar9 + (-0x18 - lVar10) + lVar21);\n        if (uVar13 < 0xff00) {\nLAB_001a350a:\n          if ((ulong)(param_1[0xb] - param_1[10] >> 3) <= uVar12) {\n                    \n            FUN_0016cdf0("../../gold/object.cc",0xad5,"write_local_symbols");\n          }\n          plVar20 = *(long **)(param_1[10] + uVar12 * 8);\n          if (plVar20 != (long *)0x0) {\n            if (*(code **)(*plVar20 + 0x58) == FUN_00175f90) {\n              uVar7 = *(uint *)((long)plVar20 + 0x7c);\n              if (uVar7 == 0xffffffff) {\n                    \n                FUN_0016cdf0("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar7 = (**(code **)(*plVar20 + 0x58))();\n            }\n            uVar13 = (ushort)uVar7;\n            iVar5 = *piVar14;\n            bVar11 = iVar5 != 0 && iVar5 != -2;\n            if (0xfeff < uVar7) {\n              if (iVar5 == 0 || iVar5 == -2) goto LAB_001a374c;\n              if (iVar5 != -1) {\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_5 + 0x38,&local_40);\n              }\n              iVar5 = piVar14[1];\n              if (iVar5 == 0) goto LAB_001a3764;\n              if (iVar5 == -1) {\n                iVar5 = *piVar14;\n                uVar13 = 0xffff;\n                bVar11 = iVar5 != 0 && iVar5 != -2;\n              }\n              else {\n                uVar13 = 0xffff;\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_6 + 0x38,&local_40);\n                iVar5 = *piVar14;\n                bVar11 = iVar5 != -2 && iVar5 != 0;\n              }\n            }\n            goto LAB_001a32f9;\n          }\n        }\n        else {\n          if (uVar13 == 0xffff) {\n            lVar9 = param_1[8];\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*param_1 + 0xd8))(param_1);\n              param_1[8] = lVar9;\n            }\n            uVar7 = FUN_0019a820(lVar9,param_1,local_b8);\n            uVar12 = (ulong)uVar7;\n            goto LAB_001a350a;\n          }\n          iVar5 = *piVar14;\n          bVar11 = iVar5 != 0 && iVar5 != -2;\nLAB_001a32f9:\n          if (!bVar11) {\nLAB_001a374c:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }\n          puVar23 = puVar24;\n          if (iVar5 != -1) {\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xae8,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_3,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar24 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) goto LAB_001a377c;\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a33ac:\n            *(undefined8 *)(puVar24 + 2) = uVar8;\n            puVar23 = puVar24 + 6;\n            *(undefined8 *)(puVar24 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar24 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar24 + 6) = uVar13;\n            *(undefined1 *)((long)puVar24 + 5) = uVar1;\n          }\n          if (piVar14[1] == 0) {\nLAB_001a3764:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x738,"has_output_dynsym_entry");\n          }\n          puVar24 = puVar23;\n          if (piVar14[1] != -1) {\n            if ((undefined4 *)((long)local_68 + uVar18) <= puVar22) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xafa,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_4,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar22 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    \n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");\n              }\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a349c:\n            *(undefined8 *)(puVar22 + 2) = uVar8;\n            *(undefined8 *)(puVar22 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar22 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar22 + 6) = uVar13;\n            *(undefined1 *)((long)puVar22 + 5) = uVar1;\n            puVar22 = puVar22 + 6;\n          }\n        }\n        local_b8 = local_b8 + 1;\n        lVar21 = lVar21 + 0x18;\n        if (uVar2 == local_b8) goto LAB_001a3680;\n        lVar9 = param_1[0x2c];\n      } while( true );\n    }" ({ "{") (expression_statement "puVar22 = local_68;" (assignment_expression "puVar22 = local_68" (identifier "puVar22") (= "=") (identifier "local_68")) (; ";")) (expression_statement "puVar24 = local_70;" (assignment_expression "puVar24 = local_70" (identifier "puVar24") (= "=") (identifier "local_70")) (; ";")) (if_statement "if (uVar2 < 2) {\nLAB_001a3680:\n        if ((uVar16 != 0) && ((long)puVar24 - (long)local_70 != (ulong)uVar16)) {\n                    \n          FUN_0016cdf0("../../gold/object.cc",0xb0a,"write_local_symbols");\n        }\n        if ((uVar17 != 0) && ((long)puVar22 - (long)local_68 != uVar18)) {\n                    \n          FUN_0016cdf0("../../gold/object.cc",0xb11,"write_local_symbols");\n        }\n        return;\n      }" (if "if") (parenthesized_expression "(uVar2 < 2)" (( "(") (binary_expression "uVar2 < 2" (identifier "uVar2") (< "<") (number_literal "2")) () ")")) (compound_statement "{\nLAB_001a3680:\n        if ((uVar16 != 0) && ((long)puVar24 - (long)local_70 != (ulong)uVar16)) {\n                    \n          FUN_0016cdf0("../../gold/object.cc",0xb0a,"write_local_symbols");\n        }\n        if ((uVar17 != 0) && ((long)puVar22 - (long)local_68 != uVar18)) {\n                    \n          FUN_0016cdf0("../../gold/object.cc",0xb11,"write_local_symbols");\n        }\n        return;\n      }" ({ "{") (labeled_statement "LAB_001a3680:\n        if ((uVar16 != 0) && ((long)puVar24 - (long)local_70 != (ulong)uVar16)) {\n                    \n          FUN_0016cdf0("../../gold/object.cc",0xb0a,"write_local_symbols");\n        }" (statement_identifier "LAB_001a3680") (: ":") (if_statement "if ((uVar16 != 0) && ((long)puVar24 - (long)local_70 != (ulong)uVar16)) {\n                    \n          FUN_0016cdf0("../../gold/object.cc",0xb0a,"write_local_symbols");\n        }" (if "if") (parenthesized_expression "((uVar16 != 0) && ((long)puVar24 - (long)local_70 != (ulong)uVar16))" (( "(") (binary_expression "(uVar16 != 0) && ((long)puVar24 - (long)local_70 != (ulong)uVar16)" (parenthesized_expression "(uVar16 != 0)" (( "(") (binary_expression "uVar16 != 0" (identifier "uVar16") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((long)puVar24 - (long)local_70 != (ulong)uVar16)" (( "(") (binary_expression "(long)puVar24 - (long)local_70 != (ulong)uVar16" (binary_expression "(long)puVar24 - (long)local_70" (cast_expression "(long)puVar24" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar24")) (- "-") (cast_expression "(long)local_70" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_70"))) (!= "!=") (cast_expression "(ulong)uVar16" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar16"))) () ")"))) () ")")) (compound_statement "{\n                    \n          FUN_0016cdf0("../../gold/object.cc",0xb0a,"write_local_symbols");\n        }" ({ "{") (expression_statement "FUN_0016cdf0("../../gold/object.cc",0xb0a,"write_local_symbols");" (call_expression "FUN_0016cdf0("../../gold/object.cc",0xb0a,"write_local_symbols")" (identifier "FUN_0016cdf0") (argument_list "("../../gold/object.cc",0xb0a,"write_local_symbols")" (( "(") (string_literal ""../../gold/object.cc"" (" """) (string_content "../../gold/object.cc") (" """)) (, ",") (number_literal "0xb0a") (, ",") (string_literal ""write_local_symbols"" (" """) (string_content "write_local_symbols") (" """)) () ")"))) (; ";")) (} "}")))) (if_statement "if ((uVar17 != 0) && ((long)puVar22 - (long)local_68 != uVar18)) {\n                    \n          FUN_0016cdf0("../../gold/object.cc",0xb11,"write_local_symbols");\n        }" (if "if") (parenthesized_expression "((uVar17 != 0) && ((long)puVar22 - (long)local_68 != uVar18))" (( "(") (binary_expression "(uVar17 != 0) && ((long)puVar22 - (long)local_68 != uVar18)" (parenthesized_expression "(uVar17 != 0)" (( "(") (binary_expression "uVar17 != 0" (identifier "uVar17") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((long)puVar22 - (long)local_68 != uVar18)" (( "(") (binary_expression "(long)puVar22 - (long)local_68 != uVar18" (binary_expression "(long)puVar22 - (long)local_68" (cast_expression "(long)puVar22" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar22")) (- "-") (cast_expression "(long)local_68" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_68"))) (!= "!=") (identifier "uVar18")) () ")"))) () ")")) (compound_statement "{\n                    \n          FUN_0016cdf0("../../gold/object.cc",0xb11,"write_local_symbols");\n        }" ({ "{") (expression_statement "FUN_0016cdf0("../../gold/object.cc",0xb11,"write_local_symbols");" (call_expression "FUN_0016cdf0("../../gold/object.cc",0xb11,"write_local_symbols")" (identifier "FUN_0016cdf0") (argument_list "("../../gold/object.cc",0xb11,"write_local_symbols")" (( "(") (string_literal ""../../gold/object.cc"" (" """) (string_content "../../gold/object.cc") (" """)) (, ",") (number_literal "0xb11") (, ",") (string_literal ""write_local_symbols"" (" """) (string_content "write_local_symbols") (" """)) () ")"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "lVar21 = lVar10 + 0x30;" (assignment_expression "lVar21 = lVar10 + 0x30" (identifier "lVar21") (= "=") (binary_expression "lVar10 + 0x30" (identifier "lVar10") (+ "+") (number_literal "0x30"))) (; ";")) (expression_statement "local_b8 = 1;" (assignment_expression "local_b8 = 1" (identifier "local_b8") (= "=") (number_literal "1")) (; ";")) (do_statement "do {\n        uVar13 = *(ushort *)(lVar21 + -0x12);\n        uVar12 = (ulong)uVar13;\n        piVar14 = (int *)(lVar9 + (-0x18 - lVar10) + lVar21);\n        if (uVar13 < 0xff00) {\nLAB_001a350a:\n          if ((ulong)(param_1[0xb] - param_1[10] >> 3) <= uVar12) {\n                    \n            FUN_0016cdf0("../../gold/object.cc",0xad5,"write_local_symbols");\n          }\n          plVar20 = *(long **)(param_1[10] + uVar12 * 8);\n          if (plVar20 != (long *)0x0) {\n            if (*(code **)(*plVar20 + 0x58) == FUN_00175f90) {\n              uVar7 = *(uint *)((long)plVar20 + 0x7c);\n              if (uVar7 == 0xffffffff) {\n                    \n                FUN_0016cdf0("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar7 = (**(code **)(*plVar20 + 0x58))();\n            }\n            uVar13 = (ushort)uVar7;\n            iVar5 = *piVar14;\n            bVar11 = iVar5 != 0 && iVar5 != -2;\n            if (0xfeff < uVar7) {\n              if (iVar5 == 0 || iVar5 == -2) goto LAB_001a374c;\n              if (iVar5 != -1) {\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_5 + 0x38,&local_40);\n              }\n              iVar5 = piVar14[1];\n              if (iVar5 == 0) goto LAB_001a3764;\n              if (iVar5 == -1) {\n                iVar5 = *piVar14;\n                uVar13 = 0xffff;\n                bVar11 = iVar5 != 0 && iVar5 != -2;\n              }\n              else {\n                uVar13 = 0xffff;\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_6 + 0x38,&local_40);\n                iVar5 = *piVar14;\n                bVar11 = iVar5 != -2 && iVar5 != 0;\n              }\n            }\n            goto LAB_001a32f9;\n          }\n        }\n        else {\n          if (uVar13 == 0xffff) {\n            lVar9 = param_1[8];\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*param_1 + 0xd8))(param_1);\n              param_1[8] = lVar9;\n            }\n            uVar7 = FUN_0019a820(lVar9,param_1,local_b8);\n            uVar12 = (ulong)uVar7;\n            goto LAB_001a350a;\n          }\n          iVar5 = *piVar14;\n          bVar11 = iVar5 != 0 && iVar5 != -2;\nLAB_001a32f9:\n          if (!bVar11) {\nLAB_001a374c:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }\n          puVar23 = puVar24;\n          if (iVar5 != -1) {\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xae8,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_3,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar24 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) goto LAB_001a377c;\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a33ac:\n            *(undefined8 *)(puVar24 + 2) = uVar8;\n            puVar23 = puVar24 + 6;\n            *(undefined8 *)(puVar24 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar24 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar24 + 6) = uVar13;\n            *(undefined1 *)((long)puVar24 + 5) = uVar1;\n          }\n          if (piVar14[1] == 0) {\nLAB_001a3764:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x738,"has_output_dynsym_entry");\n          }\n          puVar24 = puVar23;\n          if (piVar14[1] != -1) {\n            if ((undefined4 *)((long)local_68 + uVar18) <= puVar22) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xafa,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_4,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar22 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    \n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");\n              }\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a349c:\n            *(undefined8 *)(puVar22 + 2) = uVar8;\n            *(undefined8 *)(puVar22 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar22 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar22 + 6) = uVar13;\n            *(undefined1 *)((long)puVar22 + 5) = uVar1;\n            puVar22 = puVar22 + 6;\n          }\n        }\n        local_b8 = local_b8 + 1;\n        lVar21 = lVar21 + 0x18;\n        if (uVar2 == local_b8) goto LAB_001a3680;\n        lVar9 = param_1[0x2c];\n      } while( true );" (do "do") (compound_statement "{\n        uVar13 = *(ushort *)(lVar21 + -0x12);\n        uVar12 = (ulong)uVar13;\n        piVar14 = (int *)(lVar9 + (-0x18 - lVar10) + lVar21);\n        if (uVar13 < 0xff00) {\nLAB_001a350a:\n          if ((ulong)(param_1[0xb] - param_1[10] >> 3) <= uVar12) {\n                    \n            FUN_0016cdf0("../../gold/object.cc",0xad5,"write_local_symbols");\n          }\n          plVar20 = *(long **)(param_1[10] + uVar12 * 8);\n          if (plVar20 != (long *)0x0) {\n            if (*(code **)(*plVar20 + 0x58) == FUN_00175f90) {\n              uVar7 = *(uint *)((long)plVar20 + 0x7c);\n              if (uVar7 == 0xffffffff) {\n                    \n                FUN_0016cdf0("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar7 = (**(code **)(*plVar20 + 0x58))();\n            }\n            uVar13 = (ushort)uVar7;\n            iVar5 = *piVar14;\n            bVar11 = iVar5 != 0 && iVar5 != -2;\n            if (0xfeff < uVar7) {\n              if (iVar5 == 0 || iVar5 == -2) goto LAB_001a374c;\n              if (iVar5 != -1) {\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_5 + 0x38,&local_40);\n              }\n              iVar5 = piVar14[1];\n              if (iVar5 == 0) goto LAB_001a3764;\n              if (iVar5 == -1) {\n                iVar5 = *piVar14;\n                uVar13 = 0xffff;\n                bVar11 = iVar5 != 0 && iVar5 != -2;\n              }\n              else {\n                uVar13 = 0xffff;\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_6 + 0x38,&local_40);\n                iVar5 = *piVar14;\n                bVar11 = iVar5 != -2 && iVar5 != 0;\n              }\n            }\n            goto LAB_001a32f9;\n          }\n        }\n        else {\n          if (uVar13 == 0xffff) {\n            lVar9 = param_1[8];\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*param_1 + 0xd8))(param_1);\n              param_1[8] = lVar9;\n            }\n            uVar7 = FUN_0019a820(lVar9,param_1,local_b8);\n            uVar12 = (ulong)uVar7;\n            goto LAB_001a350a;\n          }\n          iVar5 = *piVar14;\n          bVar11 = iVar5 != 0 && iVar5 != -2;\nLAB_001a32f9:\n          if (!bVar11) {\nLAB_001a374c:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }\n          puVar23 = puVar24;\n          if (iVar5 != -1) {\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xae8,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_3,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar24 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) goto LAB_001a377c;\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a33ac:\n            *(undefined8 *)(puVar24 + 2) = uVar8;\n            puVar23 = puVar24 + 6;\n            *(undefined8 *)(puVar24 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar24 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar24 + 6) = uVar13;\n            *(undefined1 *)((long)puVar24 + 5) = uVar1;\n          }\n          if (piVar14[1] == 0) {\nLAB_001a3764:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x738,"has_output_dynsym_entry");\n          }\n          puVar24 = puVar23;\n          if (piVar14[1] != -1) {\n            if ((undefined4 *)((long)local_68 + uVar18) <= puVar22) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xafa,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_4,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar22 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    \n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");\n              }\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a349c:\n            *(undefined8 *)(puVar22 + 2) = uVar8;\n            *(undefined8 *)(puVar22 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar22 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar22 + 6) = uVar13;\n            *(undefined1 *)((long)puVar22 + 5) = uVar1;\n            puVar22 = puVar22 + 6;\n          }\n        }\n        local_b8 = local_b8 + 1;\n        lVar21 = lVar21 + 0x18;\n        if (uVar2 == local_b8) goto LAB_001a3680;\n        lVar9 = param_1[0x2c];\n      }" ({ "{") (expression_statement "uVar13 = *(ushort *)(lVar21 + -0x12);" (assignment_expression "uVar13 = *(ushort *)(lVar21 + -0x12)" (identifier "uVar13") (= "=") (pointer_expression "*(ushort *)(lVar21 + -0x12)" (* "*") (cast_expression "(ushort *)(lVar21 + -0x12)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar21 + -0x12)" (( "(") (binary_expression "lVar21 + -0x12" (identifier "lVar21") (+ "+") (number_literal "-0x12")) () ")"))))) (; ";")) (expression_statement "uVar12 = (ulong)uVar13;" (assignment_expression "uVar12 = (ulong)uVar13" (identifier "uVar12") (= "=") (cast_expression "(ulong)uVar13" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar13"))) (; ";")) (expression_statement "piVar14 = (int *)(lVar9 + (-0x18 - lVar10) + lVar21);" (assignment_expression "piVar14 = (int *)(lVar9 + (-0x18 - lVar10) + lVar21)" (identifier "piVar14") (= "=") (cast_expression "(int *)(lVar9 + (-0x18 - lVar10) + lVar21)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + (-0x18 - lVar10) + lVar21)" (( "(") (binary_expression "lVar9 + (-0x18 - lVar10) + lVar21" (binary_expression "lVar9 + (-0x18 - lVar10)" (identifier "lVar9") (+ "+") (parenthesized_expression "(-0x18 - lVar10)" (( "(") (binary_expression "-0x18 - lVar10" (number_literal "-0x18") (- "-") (identifier "lVar10")) () ")"))) (+ "+") (identifier "lVar21")) () ")")))) (; ";")) (if_statement "if (uVar13 < 0xff00) {\nLAB_001a350a:\n          if ((ulong)(param_1[0xb] - param_1[10] >> 3) <= uVar12) {\n                    \n            FUN_0016cdf0("../../gold/object.cc",0xad5,"write_local_symbols");\n          }\n          plVar20 = *(long **)(param_1[10] + uVar12 * 8);\n          if (plVar20 != (long *)0x0) {\n            if (*(code **)(*plVar20 + 0x58) == FUN_00175f90) {\n              uVar7 = *(uint *)((long)plVar20 + 0x7c);\n              if (uVar7 == 0xffffffff) {\n                    \n                FUN_0016cdf0("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar7 = (**(code **)(*plVar20 + 0x58))();\n            }\n            uVar13 = (ushort)uVar7;\n            iVar5 = *piVar14;\n            bVar11 = iVar5 != 0 && iVar5 != -2;\n            if (0xfeff < uVar7) {\n              if (iVar5 == 0 || iVar5 == -2) goto LAB_001a374c;\n              if (iVar5 != -1) {\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_5 + 0x38,&local_40);\n              }\n              iVar5 = piVar14[1];\n              if (iVar5 == 0) goto LAB_001a3764;\n              if (iVar5 == -1) {\n                iVar5 = *piVar14;\n                uVar13 = 0xffff;\n                bVar11 = iVar5 != 0 && iVar5 != -2;\n              }\n              else {\n                uVar13 = 0xffff;\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_6 + 0x38,&local_40);\n                iVar5 = *piVar14;\n                bVar11 = iVar5 != -2 && iVar5 != 0;\n              }\n            }\n            goto LAB_001a32f9;\n          }\n        }\n        else {\n          if (uVar13 == 0xffff) {\n            lVar9 = param_1[8];\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*param_1 + 0xd8))(param_1);\n              param_1[8] = lVar9;\n            }\n            uVar7 = FUN_0019a820(lVar9,param_1,local_b8);\n            uVar12 = (ulong)uVar7;\n            goto LAB_001a350a;\n          }\n          iVar5 = *piVar14;\n          bVar11 = iVar5 != 0 && iVar5 != -2;\nLAB_001a32f9:\n          if (!bVar11) {\nLAB_001a374c:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }\n          puVar23 = puVar24;\n          if (iVar5 != -1) {\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xae8,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_3,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar24 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) goto LAB_001a377c;\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a33ac:\n            *(undefined8 *)(puVar24 + 2) = uVar8;\n            puVar23 = puVar24 + 6;\n            *(undefined8 *)(puVar24 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar24 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar24 + 6) = uVar13;\n            *(undefined1 *)((long)puVar24 + 5) = uVar1;\n          }\n          if (piVar14[1] == 0) {\nLAB_001a3764:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x738,"has_output_dynsym_entry");\n          }\n          puVar24 = puVar23;\n          if (piVar14[1] != -1) {\n            if ((undefined4 *)((long)local_68 + uVar18) <= puVar22) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xafa,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_4,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar22 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    \n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");\n              }\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a349c:\n            *(undefined8 *)(puVar22 + 2) = uVar8;\n            *(undefined8 *)(puVar22 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar22 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar22 + 6) = uVar13;\n            *(undefined1 *)((long)puVar22 + 5) = uVar1;\n            puVar22 = puVar22 + 6;\n          }\n        }" (if "if") (parenthesized_expression "(uVar13 < 0xff00)" (( "(") (binary_expression "uVar13 < 0xff00" (identifier "uVar13") (< "<") (number_literal "0xff00")) () ")")) (compound_statement "{\nLAB_001a350a:\n          if ((ulong)(param_1[0xb] - param_1[10] >> 3) <= uVar12) {\n                    \n            FUN_0016cdf0("../../gold/object.cc",0xad5,"write_local_symbols");\n          }\n          plVar20 = *(long **)(param_1[10] + uVar12 * 8);\n          if (plVar20 != (long *)0x0) {\n            if (*(code **)(*plVar20 + 0x58) == FUN_00175f90) {\n              uVar7 = *(uint *)((long)plVar20 + 0x7c);\n              if (uVar7 == 0xffffffff) {\n                    \n                FUN_0016cdf0("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar7 = (**(code **)(*plVar20 + 0x58))();\n            }\n            uVar13 = (ushort)uVar7;\n            iVar5 = *piVar14;\n            bVar11 = iVar5 != 0 && iVar5 != -2;\n            if (0xfeff < uVar7) {\n              if (iVar5 == 0 || iVar5 == -2) goto LAB_001a374c;\n              if (iVar5 != -1) {\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_5 + 0x38,&local_40);\n              }\n              iVar5 = piVar14[1];\n              if (iVar5 == 0) goto LAB_001a3764;\n              if (iVar5 == -1) {\n                iVar5 = *piVar14;\n                uVar13 = 0xffff;\n                bVar11 = iVar5 != 0 && iVar5 != -2;\n              }\n              else {\n                uVar13 = 0xffff;\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_6 + 0x38,&local_40);\n                iVar5 = *piVar14;\n                bVar11 = iVar5 != -2 && iVar5 != 0;\n              }\n            }\n            goto LAB_001a32f9;\n          }\n        }" ({ "{") (labeled_statement "LAB_001a350a:\n          if ((ulong)(param_1[0xb] - param_1[10] >> 3) <= uVar12) {\n                    \n            FUN_0016cdf0("../../gold/object.cc",0xad5,"write_local_symbols");\n          }" (statement_identifier "LAB_001a350a") (: ":") (if_statement "if ((ulong)(param_1[0xb] - param_1[10] >> 3) <= uVar12) {\n                    \n            FUN_0016cdf0("../../gold/object.cc",0xad5,"write_local_symbols");\n          }" (if "if") (parenthesized_expression "((ulong)(param_1[0xb] - param_1[10] >> 3) <= uVar12)" (( "(") (binary_expression "(ulong)(param_1[0xb] - param_1[10] >> 3) <= uVar12" (call_expression "(ulong)(param_1[0xb] - param_1[10] >> 3)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(param_1[0xb] - param_1[10] >> 3)" (( "(") (binary_expression "param_1[0xb] - param_1[10] >> 3" (binary_expression "param_1[0xb] - param_1[10]" (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]")) (- "-") (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]"))) (>> ">>") (number_literal "3")) () ")"))) (<= "<=") (identifier "uVar12")) () ")")) (compound_statement "{\n                    \n            FUN_0016cdf0("../../gold/object.cc",0xad5,"write_local_symbols");\n          }" ({ "{") (expression_statement "FUN_0016cdf0("../../gold/object.cc",0xad5,"write_local_symbols");" (call_expression "FUN_0016cdf0("../../gold/object.cc",0xad5,"write_local_symbols")" (identifier "FUN_0016cdf0") (argument_list "("../../gold/object.cc",0xad5,"write_local_symbols")" (( "(") (string_literal ""../../gold/object.cc"" (" """) (string_content "../../gold/object.cc") (" """)) (, ",") (number_literal "0xad5") (, ",") (string_literal ""write_local_symbols"" (" """) (string_content "write_local_symbols") (" """)) () ")"))) (; ";")) (} "}")))) (expression_statement "plVar20 = *(long **)(param_1[10] + uVar12 * 8);" (assignment_expression "plVar20 = *(long **)(param_1[10] + uVar12 * 8)" (identifier "plVar20") (= "=") (pointer_expression "*(long **)(param_1[10] + uVar12 * 8)" (* "*") (cast_expression "(long **)(param_1[10] + uVar12 * 8)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1[10] + uVar12 * 8)" (( "(") (binary_expression "param_1[10] + uVar12 * 8" (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")) (+ "+") (binary_expression "uVar12 * 8" (identifier "uVar12") (* "*") (number_literal "8"))) () ")"))))) (; ";")) (if_statement "if (plVar20 != (long *)0x0) {\n            if (*(code **)(*plVar20 + 0x58) == FUN_00175f90) {\n              uVar7 = *(uint *)((long)plVar20 + 0x7c);\n              if (uVar7 == 0xffffffff) {\n                    \n                FUN_0016cdf0("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar7 = (**(code **)(*plVar20 + 0x58))();\n            }\n            uVar13 = (ushort)uVar7;\n            iVar5 = *piVar14;\n            bVar11 = iVar5 != 0 && iVar5 != -2;\n            if (0xfeff < uVar7) {\n              if (iVar5 == 0 || iVar5 == -2) goto LAB_001a374c;\n              if (iVar5 != -1) {\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_5 + 0x38,&local_40);\n              }\n              iVar5 = piVar14[1];\n              if (iVar5 == 0) goto LAB_001a3764;\n              if (iVar5 == -1) {\n                iVar5 = *piVar14;\n                uVar13 = 0xffff;\n                bVar11 = iVar5 != 0 && iVar5 != -2;\n              }\n              else {\n                uVar13 = 0xffff;\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_6 + 0x38,&local_40);\n                iVar5 = *piVar14;\n                bVar11 = iVar5 != -2 && iVar5 != 0;\n              }\n            }\n            goto LAB_001a32f9;\n          }" (if "if") (parenthesized_expression "(plVar20 != (long *)0x0)" (( "(") (binary_expression "plVar20 != (long *)0x0" (identifier "plVar20") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            if (*(code **)(*plVar20 + 0x58) == FUN_00175f90) {\n              uVar7 = *(uint *)((long)plVar20 + 0x7c);\n              if (uVar7 == 0xffffffff) {\n                    \n                FUN_0016cdf0("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar7 = (**(code **)(*plVar20 + 0x58))();\n            }\n            uVar13 = (ushort)uVar7;\n            iVar5 = *piVar14;\n            bVar11 = iVar5 != 0 && iVar5 != -2;\n            if (0xfeff < uVar7) {\n              if (iVar5 == 0 || iVar5 == -2) goto LAB_001a374c;\n              if (iVar5 != -1) {\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_5 + 0x38,&local_40);\n              }\n              iVar5 = piVar14[1];\n              if (iVar5 == 0) goto LAB_001a3764;\n              if (iVar5 == -1) {\n                iVar5 = *piVar14;\n                uVar13 = 0xffff;\n                bVar11 = iVar5 != 0 && iVar5 != -2;\n              }\n              else {\n                uVar13 = 0xffff;\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_6 + 0x38,&local_40);\n                iVar5 = *piVar14;\n                bVar11 = iVar5 != -2 && iVar5 != 0;\n              }\n            }\n            goto LAB_001a32f9;\n          }" ({ "{") (if_statement "if (*(code **)(*plVar20 + 0x58) == FUN_00175f90) {\n              uVar7 = *(uint *)((long)plVar20 + 0x7c);\n              if (uVar7 == 0xffffffff) {\n                    \n                FUN_0016cdf0("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }\n            else {\n              uVar7 = (**(code **)(*plVar20 + 0x58))();\n            }" (if "if") (parenthesized_expression "(*(code **)(*plVar20 + 0x58) == FUN_00175f90)" (( "(") (binary_expression "*(code **)(*plVar20 + 0x58) == FUN_00175f90" (pointer_expression "*(code **)(*plVar20 + 0x58)" (* "*") (cast_expression "(code **)(*plVar20 + 0x58)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar20 + 0x58)" (( "(") (binary_expression "*plVar20 + 0x58" (pointer_expression "*plVar20" (* "*") (identifier "plVar20")) (+ "+") (number_literal "0x58")) () ")")))) (== "==") (identifier "FUN_00175f90")) () ")")) (compound_statement "{\n              uVar7 = *(uint *)((long)plVar20 + 0x7c);\n              if (uVar7 == 0xffffffff) {\n                    \n                FUN_0016cdf0("../../gold/output.h",0x1043,"do_out_shndx");\n              }\n            }" ({ "{") (expression_statement "uVar7 = *(uint *)((long)plVar20 + 0x7c);" (assignment_expression "uVar7 = *(uint *)((long)plVar20 + 0x7c)" (identifier "uVar7") (= "=") (pointer_expression "*(uint *)((long)plVar20 + 0x7c)" (* "*") (cast_expression "(uint *)((long)plVar20 + 0x7c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar20 + 0x7c)" (( "(") (binary_expression "(long)plVar20 + 0x7c" (cast_expression "(long)plVar20" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar20")) (+ "+") (number_literal "0x7c")) () ")"))))) (; ";")) (if_statement "if (uVar7 == 0xffffffff) {\n                    \n                FUN_0016cdf0("../../gold/output.h",0x1043,"do_out_shndx");\n              }" (if "if") (parenthesized_expression "(uVar7 == 0xffffffff)" (( "(") (binary_expression "uVar7 == 0xffffffff" (identifier "uVar7") (== "==") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n                    \n                FUN_0016cdf0("../../gold/output.h",0x1043,"do_out_shndx");\n              }" ({ "{") (expression_statement "FUN_0016cdf0("../../gold/output.h",0x1043,"do_out_shndx");" (call_expression "FUN_0016cdf0("../../gold/output.h",0x1043,"do_out_shndx")" (identifier "FUN_0016cdf0") (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              uVar7 = (**(code **)(*plVar20 + 0x58))();\n            }" (else "else") (compound_statement "{\n              uVar7 = (**(code **)(*plVar20 + 0x58))();\n            }" ({ "{") (expression_statement "uVar7 = (**(code **)(*plVar20 + 0x58))();" (assignment_expression "uVar7 = (**(code **)(*plVar20 + 0x58))()" (identifier "uVar7") (= "=") (call_expression "(**(code **)(*plVar20 + 0x58))()" (parenthesized_expression "(**(code **)(*plVar20 + 0x58))" (( "(") (pointer_expression "**(code **)(*plVar20 + 0x58)" (* "*") (pointer_expression "*(code **)(*plVar20 + 0x58)" (* "*") (cast_expression "(code **)(*plVar20 + 0x58)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar20 + 0x58)" (( "(") (binary_expression "*plVar20 + 0x58" (pointer_expression "*plVar20" (* "*") (identifier "plVar20")) (+ "+") (number_literal "0x58")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (expression_statement "uVar13 = (ushort)uVar7;" (assignment_expression "uVar13 = (ushort)uVar7" (identifier "uVar13") (= "=") (cast_expression "(ushort)uVar7" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "uVar7"))) (; ";")) (expression_statement "iVar5 = *piVar14;" (assignment_expression "iVar5 = *piVar14" (identifier "iVar5") (= "=") (pointer_expression "*piVar14" (* "*") (identifier "piVar14"))) (; ";")) (expression_statement "bVar11 = iVar5 != 0 && iVar5 != -2;" (assignment_expression "bVar11 = iVar5 != 0 && iVar5 != -2" (identifier "bVar11") (= "=") (binary_expression "iVar5 != 0 && iVar5 != -2" (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) (&& "&&") (binary_expression "iVar5 != -2" (identifier "iVar5") (!= "!=") (number_literal "-2")))) (; ";")) (if_statement "if (0xfeff < uVar7) {\n              if (iVar5 == 0 || iVar5 == -2) goto LAB_001a374c;\n              if (iVar5 != -1) {\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_5 + 0x38,&local_40);\n              }\n              iVar5 = piVar14[1];\n              if (iVar5 == 0) goto LAB_001a3764;\n              if (iVar5 == -1) {\n                iVar5 = *piVar14;\n                uVar13 = 0xffff;\n                bVar11 = iVar5 != 0 && iVar5 != -2;\n              }\n              else {\n                uVar13 = 0xffff;\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_6 + 0x38,&local_40);\n                iVar5 = *piVar14;\n                bVar11 = iVar5 != -2 && iVar5 != 0;\n              }\n            }" (if "if") (parenthesized_expression "(0xfeff < uVar7)" (( "(") (binary_expression "0xfeff < uVar7" (number_literal "0xfeff") (< "<") (identifier "uVar7")) () ")")) (compound_statement "{\n              if (iVar5 == 0 || iVar5 == -2) goto LAB_001a374c;\n              if (iVar5 != -1) {\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_5 + 0x38,&local_40);\n              }\n              iVar5 = piVar14[1];\n              if (iVar5 == 0) goto LAB_001a3764;\n              if (iVar5 == -1) {\n                iVar5 = *piVar14;\n                uVar13 = 0xffff;\n                bVar11 = iVar5 != 0 && iVar5 != -2;\n              }\n              else {\n                uVar13 = 0xffff;\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_6 + 0x38,&local_40);\n                iVar5 = *piVar14;\n                bVar11 = iVar5 != -2 && iVar5 != 0;\n              }\n            }" ({ "{") (if_statement "if (iVar5 == 0 || iVar5 == -2) goto LAB_001a374c;" (if "if") (parenthesized_expression "(iVar5 == 0 || iVar5 == -2)" (( "(") (binary_expression "iVar5 == 0 || iVar5 == -2" (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) (|| "||") (binary_expression "iVar5 == -2" (identifier "iVar5") (== "==") (number_literal "-2"))) () ")")) (goto_statement "goto LAB_001a374c;" (goto "goto") (statement_identifier "LAB_001a374c") (; ";"))) (if_statement "if (iVar5 != -1) {\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_5 + 0x38,&local_40);\n              }" (if "if") (parenthesized_expression "(iVar5 != -1)" (( "(") (binary_expression "iVar5 != -1" (identifier "iVar5") (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_5 + 0x38,&local_40);\n              }" ({ "{") (expression_statement "local_40 = iVar5;" (assignment_expression "local_40 = iVar5" (identifier "local_40") (= "=") (identifier "iVar5")) (; ";")) (expression_statement "local_3c = uVar7;" (assignment_expression "local_3c = uVar7" (identifier "local_3c") (= "=") (identifier "uVar7")) (; ";")) (expression_statement "FUN_0017ab80(param_5 + 0x38,&local_40);" (call_expression "FUN_0017ab80(param_5 + 0x38,&local_40)" (identifier "FUN_0017ab80") (argument_list "(param_5 + 0x38,&local_40)" (( "(") (binary_expression "param_5 + 0x38" (identifier "param_5") (+ "+") (number_literal "0x38")) (, ",") (pointer_expression "&local_40" (& "&") (identifier "local_40")) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar5 = piVar14[1];" (assignment_expression "iVar5 = piVar14[1]" (identifier "iVar5") (= "=") (subscript_expression "piVar14[1]" (identifier "piVar14") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (iVar5 == 0) goto LAB_001a3764;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001a3764;" (goto "goto") (statement_identifier "LAB_001a3764") (; ";"))) (if_statement "if (iVar5 == -1) {\n                iVar5 = *piVar14;\n                uVar13 = 0xffff;\n                bVar11 = iVar5 != 0 && iVar5 != -2;\n              }\n              else {\n                uVar13 = 0xffff;\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_6 + 0x38,&local_40);\n                iVar5 = *piVar14;\n                bVar11 = iVar5 != -2 && iVar5 != 0;\n              }" (if "if") (parenthesized_expression "(iVar5 == -1)" (( "(") (binary_expression "iVar5 == -1" (identifier "iVar5") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n                iVar5 = *piVar14;\n                uVar13 = 0xffff;\n                bVar11 = iVar5 != 0 && iVar5 != -2;\n              }" ({ "{") (expression_statement "iVar5 = *piVar14;" (assignment_expression "iVar5 = *piVar14" (identifier "iVar5") (= "=") (pointer_expression "*piVar14" (* "*") (identifier "piVar14"))) (; ";")) (expression_statement "uVar13 = 0xffff;" (assignment_expression "uVar13 = 0xffff" (identifier "uVar13") (= "=") (number_literal "0xffff")) (; ";")) (expression_statement "bVar11 = iVar5 != 0 && iVar5 != -2;" (assignment_expression "bVar11 = iVar5 != 0 && iVar5 != -2" (identifier "bVar11") (= "=") (binary_expression "iVar5 != 0 && iVar5 != -2" (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) (&& "&&") (binary_expression "iVar5 != -2" (identifier "iVar5") (!= "!=") (number_literal "-2")))) (; ";")) (} "}")) (else_clause "else {\n                uVar13 = 0xffff;\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_6 + 0x38,&local_40);\n                iVar5 = *piVar14;\n                bVar11 = iVar5 != -2 && iVar5 != 0;\n              }" (else "else") (compound_statement "{\n                uVar13 = 0xffff;\n                local_40 = iVar5;\n                local_3c = uVar7;\n                FUN_0017ab80(param_6 + 0x38,&local_40);\n                iVar5 = *piVar14;\n                bVar11 = iVar5 != -2 && iVar5 != 0;\n              }" ({ "{") (expression_statement "uVar13 = 0xffff;" (assignment_expression "uVar13 = 0xffff" (identifier "uVar13") (= "=") (number_literal "0xffff")) (; ";")) (expression_statement "local_40 = iVar5;" (assignment_expression "local_40 = iVar5" (identifier "local_40") (= "=") (identifier "iVar5")) (; ";")) (expression_statement "local_3c = uVar7;" (assignment_expression "local_3c = uVar7" (identifier "local_3c") (= "=") (identifier "uVar7")) (; ";")) (expression_statement "FUN_0017ab80(param_6 + 0x38,&local_40);" (call_expression "FUN_0017ab80(param_6 + 0x38,&local_40)" (identifier "FUN_0017ab80") (argument_list "(param_6 + 0x38,&local_40)" (( "(") (binary_expression "param_6 + 0x38" (identifier "param_6") (+ "+") (number_literal "0x38")) (, ",") (pointer_expression "&local_40" (& "&") (identifier "local_40")) () ")"))) (; ";")) (expression_statement "iVar5 = *piVar14;" (assignment_expression "iVar5 = *piVar14" (identifier "iVar5") (= "=") (pointer_expression "*piVar14" (* "*") (identifier "piVar14"))) (; ";")) (expression_statement "bVar11 = iVar5 != -2 && iVar5 != 0;" (assignment_expression "bVar11 = iVar5 != -2 && iVar5 != 0" (identifier "bVar11") (= "=") (binary_expression "iVar5 != -2 && iVar5 != 0" (binary_expression "iVar5 != -2" (identifier "iVar5") (!= "!=") (number_literal "-2")) (&& "&&") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")))) (; ";")) (} "}")))) (} "}"))) (goto_statement "goto LAB_001a32f9;" (goto "goto") (statement_identifier "LAB_001a32f9") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          if (uVar13 == 0xffff) {\n            lVar9 = param_1[8];\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*param_1 + 0xd8))(param_1);\n              param_1[8] = lVar9;\n            }\n            uVar7 = FUN_0019a820(lVar9,param_1,local_b8);\n            uVar12 = (ulong)uVar7;\n            goto LAB_001a350a;\n          }\n          iVar5 = *piVar14;\n          bVar11 = iVar5 != 0 && iVar5 != -2;\nLAB_001a32f9:\n          if (!bVar11) {\nLAB_001a374c:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }\n          puVar23 = puVar24;\n          if (iVar5 != -1) {\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xae8,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_3,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar24 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) goto LAB_001a377c;\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a33ac:\n            *(undefined8 *)(puVar24 + 2) = uVar8;\n            puVar23 = puVar24 + 6;\n            *(undefined8 *)(puVar24 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar24 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar24 + 6) = uVar13;\n            *(undefined1 *)((long)puVar24 + 5) = uVar1;\n          }\n          if (piVar14[1] == 0) {\nLAB_001a3764:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x738,"has_output_dynsym_entry");\n          }\n          puVar24 = puVar23;\n          if (piVar14[1] != -1) {\n            if ((undefined4 *)((long)local_68 + uVar18) <= puVar22) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xafa,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_4,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar22 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    \n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");\n              }\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a349c:\n            *(undefined8 *)(puVar22 + 2) = uVar8;\n            *(undefined8 *)(puVar22 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar22 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar22 + 6) = uVar13;\n            *(undefined1 *)((long)puVar22 + 5) = uVar1;\n            puVar22 = puVar22 + 6;\n          }\n        }" (else "else") (compound_statement "{\n          if (uVar13 == 0xffff) {\n            lVar9 = param_1[8];\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*param_1 + 0xd8))(param_1);\n              param_1[8] = lVar9;\n            }\n            uVar7 = FUN_0019a820(lVar9,param_1,local_b8);\n            uVar12 = (ulong)uVar7;\n            goto LAB_001a350a;\n          }\n          iVar5 = *piVar14;\n          bVar11 = iVar5 != 0 && iVar5 != -2;\nLAB_001a32f9:\n          if (!bVar11) {\nLAB_001a374c:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }\n          puVar23 = puVar24;\n          if (iVar5 != -1) {\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xae8,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_3,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar24 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) goto LAB_001a377c;\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a33ac:\n            *(undefined8 *)(puVar24 + 2) = uVar8;\n            puVar23 = puVar24 + 6;\n            *(undefined8 *)(puVar24 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar24 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar24 + 6) = uVar13;\n            *(undefined1 *)((long)puVar24 + 5) = uVar1;\n          }\n          if (piVar14[1] == 0) {\nLAB_001a3764:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x738,"has_output_dynsym_entry");\n          }\n          puVar24 = puVar23;\n          if (piVar14[1] != -1) {\n            if ((undefined4 *)((long)local_68 + uVar18) <= puVar22) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xafa,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_4,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar22 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    \n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");\n              }\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a349c:\n            *(undefined8 *)(puVar22 + 2) = uVar8;\n            *(undefined8 *)(puVar22 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar22 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar22 + 6) = uVar13;\n            *(undefined1 *)((long)puVar22 + 5) = uVar1;\n            puVar22 = puVar22 + 6;\n          }\n        }" ({ "{") (if_statement "if (uVar13 == 0xffff) {\n            lVar9 = param_1[8];\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*param_1 + 0xd8))(param_1);\n              param_1[8] = lVar9;\n            }\n            uVar7 = FUN_0019a820(lVar9,param_1,local_b8);\n            uVar12 = (ulong)uVar7;\n            goto LAB_001a350a;\n          }" (if "if") (parenthesized_expression "(uVar13 == 0xffff)" (( "(") (binary_expression "uVar13 == 0xffff" (identifier "uVar13") (== "==") (number_literal "0xffff")) () ")")) (compound_statement "{\n            lVar9 = param_1[8];\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*param_1 + 0xd8))(param_1);\n              param_1[8] = lVar9;\n            }\n            uVar7 = FUN_0019a820(lVar9,param_1,local_b8);\n            uVar12 = (ulong)uVar7;\n            goto LAB_001a350a;\n          }" ({ "{") (expression_statement "lVar9 = param_1[8];" (assignment_expression "lVar9 = param_1[8]" (identifier "lVar9") (= "=") (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]"))) (; ";")) (if_statement "if (lVar9 == 0) {\n              lVar9 = (**(code **)(*param_1 + 0xd8))(param_1);\n              param_1[8] = lVar9;\n            }" (if "if") (parenthesized_expression "(lVar9 == 0)" (( "(") (binary_expression "lVar9 == 0" (identifier "lVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              lVar9 = (**(code **)(*param_1 + 0xd8))(param_1);\n              param_1[8] = lVar9;\n            }" ({ "{") (expression_statement "lVar9 = (**(code **)(*param_1 + 0xd8))(param_1);" (assignment_expression "lVar9 = (**(code **)(*param_1 + 0xd8))(param_1)" (identifier "lVar9") (= "=") (call_expression "(**(code **)(*param_1 + 0xd8))(param_1)" (parenthesized_expression "(**(code **)(*param_1 + 0xd8))" (( "(") (pointer_expression "**(code **)(*param_1 + 0xd8)" (* "*") (pointer_expression "*(code **)(*param_1 + 0xd8)" (* "*") (cast_expression "(code **)(*param_1 + 0xd8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 0xd8)" (( "(") (binary_expression "*param_1 + 0xd8" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0xd8")) () ")"))))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "param_1[8] = lVar9;" (assignment_expression "param_1[8] = lVar9" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "lVar9")) (; ";")) (} "}"))) (expression_statement "uVar7 = FUN_0019a820(lVar9,param_1,local_b8);" (assignment_expression "uVar7 = FUN_0019a820(lVar9,param_1,local_b8)" (identifier "uVar7") (= "=") (call_expression "FUN_0019a820(lVar9,param_1,local_b8)" (identifier "FUN_0019a820") (argument_list "(lVar9,param_1,local_b8)" (( "(") (identifier "lVar9") (, ",") (identifier "param_1") (, ",") (identifier "local_b8") () ")")))) (; ";")) (expression_statement "uVar12 = (ulong)uVar7;" (assignment_expression "uVar12 = (ulong)uVar7" (identifier "uVar12") (= "=") (cast_expression "(ulong)uVar7" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar7"))) (; ";")) (goto_statement "goto LAB_001a350a;" (goto "goto") (statement_identifier "LAB_001a350a") (; ";")) (} "}"))) (expression_statement "iVar5 = *piVar14;" (assignment_expression "iVar5 = *piVar14" (identifier "iVar5") (= "=") (pointer_expression "*piVar14" (* "*") (identifier "piVar14"))) (; ";")) (expression_statement "bVar11 = iVar5 != 0 && iVar5 != -2;" (assignment_expression "bVar11 = iVar5 != 0 && iVar5 != -2" (identifier "bVar11") (= "=") (binary_expression "iVar5 != 0 && iVar5 != -2" (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) (&& "&&") (binary_expression "iVar5 != -2" (identifier "iVar5") (!= "!=") (number_literal "-2")))) (; ";")) (labeled_statement "LAB_001a32f9:\n          if (!bVar11) {\nLAB_001a374c:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }" (statement_identifier "LAB_001a32f9") (: ":") (if_statement "if (!bVar11) {\nLAB_001a374c:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }" (if "if") (parenthesized_expression "(!bVar11)" (( "(") (unary_expression "!bVar11" (! "!") (identifier "bVar11")) () ")")) (compound_statement "{\nLAB_001a374c:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x6fb,"has_output_symtab_entry");\n          }" ({ "{") (labeled_statement "LAB_001a374c:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x6fb,"has_output_symtab_entry");" (statement_identifier "LAB_001a374c") (: ":") (expression_statement "FUN_0016cdf0("../../gold/object.h",0x6fb,"has_output_symtab_entry");" (call_expression "FUN_0016cdf0("../../gold/object.h",0x6fb,"has_output_symtab_entry")" (identifier "FUN_0016cdf0") (argument_list "("../../gold/object.h",0x6fb,"has_output_symtab_entry")" (( "(") (string_literal ""../../gold/object.h"" (" """) (string_content "../../gold/object.h") (" """)) (, ",") (number_literal "0x6fb") (, ",") (string_literal ""has_output_symtab_entry"" (" """) (string_content "has_output_symtab_entry") (" """)) () ")"))) (; ";"))) (} "}")))) (expression_statement "puVar23 = puVar24;" (assignment_expression "puVar23 = puVar24" (identifier "puVar23") (= "=") (identifier "puVar24")) (; ";")) (if_statement "if (iVar5 != -1) {\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xae8,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_3,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar24 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) goto LAB_001a377c;\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a33ac:\n            *(undefined8 *)(puVar24 + 2) = uVar8;\n            puVar23 = puVar24 + 6;\n            *(undefined8 *)(puVar24 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar24 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar24 + 6) = uVar13;\n            *(undefined1 *)((long)puVar24 + 5) = uVar1;\n          }" (if "if") (parenthesized_expression "(iVar5 != -1)" (( "(") (binary_expression "iVar5 != -1" (identifier "iVar5") (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xae8,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_3,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar24 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) goto LAB_001a377c;\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a33ac:\n            *(undefined8 *)(puVar24 + 2) = uVar8;\n            puVar23 = puVar24 + 6;\n            *(undefined8 *)(puVar24 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar24 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar24 + 6) = uVar13;\n            *(undefined1 *)((long)puVar24 + 5) = uVar1;\n          }" ({ "{") (if_statement "if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xae8,"write_local_symbols");\n            }" (if "if") (parenthesized_expression "(local_48 <= *(uint *)(lVar21 + -0x18))" (( "(") (binary_expression "local_48 <= *(uint *)(lVar21 + -0x18)" (identifier "local_48") (<= "<=") (pointer_expression "*(uint *)(lVar21 + -0x18)" (* "*") (cast_expression "(uint *)(lVar21 + -0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar21 + -0x18)" (( "(") (binary_expression "lVar21 + -0x18" (identifier "lVar21") (+ "+") (number_literal "-0x18")) () ")"))))) () ")")) (compound_statement "{\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xae8,"write_local_symbols");\n            }" ({ "{") (expression_statement "FUN_0016cdf0("../../gold/object.cc",0xae8,"write_local_symbols");" (call_expression "FUN_0016cdf0("../../gold/object.cc",0xae8,"write_local_symbols")" (identifier "FUN_0016cdf0") (argument_list "("../../gold/object.cc",0xae8,"write_local_symbols")" (( "(") (string_literal ""../../gold/object.cc"" (" """) (string_content "../../gold/object.cc") (" """)) (, ",") (number_literal "0xae8") (, ",") (string_literal ""write_local_symbols"" (" """) (string_content "write_local_symbols") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar6 = FUN_0021b7b0(param_3,local_b0 + *(uint *)(lVar21 + -0x18));" (assignment_expression "uVar6 = FUN_0021b7b0(param_3,local_b0 + *(uint *)(lVar21 + -0x18))" (identifier "uVar6") (= "=") (call_expression "FUN_0021b7b0(param_3,local_b0 + *(uint *)(lVar21 + -0x18))" (identifier "FUN_0021b7b0") (argument_list "(param_3,local_b0 + *(uint *)(lVar21 + -0x18))" (( "(") (identifier "param_3") (, ",") (binary_expression "local_b0 + *(uint *)(lVar21 + -0x18)" (identifier "local_b0") (+ "+") (pointer_expression "*(uint *)(lVar21 + -0x18)" (* "*") (cast_expression "(uint *)(lVar21 + -0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar21 + -0x18)" (( "(") (binary_expression "lVar21 + -0x18" (identifier "lVar21") (+ "+") (number_literal "-0x18")) () ")"))))) () ")")))) (; ";")) (expression_statement "*puVar24 = uVar6;" (assignment_expression "*puVar24 = uVar6" (pointer_expression "*puVar24" (* "*") (identifier "puVar24")) (= "=") (identifier "uVar6")) (; ";")) (if_statement "if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) goto LAB_001a377c;\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }" (if "if") (parenthesized_expression "((char)*(byte *)((long)piVar14 + 0xb) < '\0')" (( "(") (binary_expression "(char)*(byte *)((long)piVar14 + 0xb) < '\0'" (cast_expression "(char)*(byte *)((long)piVar14 + 0xb)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(byte *)((long)piVar14 + 0xb)" (* "*") (cast_expression "(byte *)((long)piVar14 + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)piVar14 + 0xb)" (( "(") (binary_expression "(long)piVar14 + 0xb" (cast_expression "(long)piVar14" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "piVar14")) (+ "+") (number_literal "0xb")) () ")"))))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }" ({ "{") (expression_statement "uVar8 = *(undefined8 *)(piVar14 + 4);" (assignment_expression "uVar8 = *(undefined8 *)(piVar14 + 4)" (identifier "uVar8") (= "=") (pointer_expression "*(undefined8 *)(piVar14 + 4)" (* "*") (cast_expression "(undefined8 *)(piVar14 + 4)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar14 + 4)" (( "(") (binary_expression "piVar14 + 4" (identifier "piVar14") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) goto LAB_001a377c;\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }" (else "else") (compound_statement "{\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) goto LAB_001a377c;\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }\n              }\nLAB_001a3660:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }" ({ "{") (if_statement "if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) goto LAB_001a377c;" (if "if") (parenthesized_expression "((*(byte *)((long)piVar14 + 0xb) & 8) == 0)" (( "(") (binary_expression "(*(byte *)((long)piVar14 + 0xb) & 8) == 0" (parenthesized_expression "(*(byte *)((long)piVar14 + 0xb) & 8)" (( "(") (binary_expression "*(byte *)((long)piVar14 + 0xb) & 8" (pointer_expression "*(byte *)((long)piVar14 + 0xb)" (* "*") (cast_expression "(byte *)((long)piVar14 + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)piVar14 + 0xb)" (( "(") (binary_expression "(long)piVar14 + 0xb" (cast_expression "(long)piVar14" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "piVar14")) (+ "+") (number_literal "0xb")) () ")")))) (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001a377c;" (goto "goto") (statement_identifier "LAB_001a377c") (; ";"))) (expression_statement "puVar3 = *(ulong **)(piVar14 + 4);" (assignment_expression "puVar3 = *(ulong **)(piVar14 + 4)" (identifier "puVar3") (= "=") (pointer_expression "*(ulong **)(piVar14 + 4)" (* "*") (cast_expression "(ulong **)(piVar14 + 4)" (( "(") (type_descriptor "ulong **" (type_identifier "ulong") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(piVar14 + 4)" (( "(") (binary_expression "piVar14 + 4" (identifier "piVar14") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar12 = *puVar3 % puVar3[3];" (assignment_expression "uVar12 = *puVar3 % puVar3[3]" (identifier "uVar12") (= "=") (binary_expression "*puVar3 % puVar3[3]" (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) (% "%") (subscript_expression "puVar3[3]" (identifier "puVar3") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "plVar20 = *(long **)(puVar3[2] + uVar12 * 8);" (assignment_expression "plVar20 = *(long **)(puVar3[2] + uVar12 * 8)" (identifier "plVar20") (= "=") (pointer_expression "*(long **)(puVar3[2] + uVar12 * 8)" (* "*") (cast_expression "(long **)(puVar3[2] + uVar12 * 8)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar3[2] + uVar12 * 8)" (( "(") (binary_expression "puVar3[2] + uVar12 * 8" (subscript_expression "puVar3[2]" (identifier "puVar3") ([ "[") (number_literal "2") (] "]")) (+ "+") (binary_expression "uVar12 * 8" (identifier "uVar12") (* "*") (number_literal "8"))) () ")"))))) (; ";")) (if_statement "if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }\n              }" (if "if") (parenthesized_expression "(plVar20 != (long *)0x0)" (( "(") (binary_expression "plVar20 != (long *)0x0" (identifier "plVar20") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }\n              }" ({ "{") (expression_statement "uVar15 = ((long *)*plVar20)[1];" (assignment_expression "uVar15 = ((long *)*plVar20)[1]" (identifier "uVar15") (= "=") (subscript_expression "((long *)*plVar20)[1]" (parenthesized_expression "((long *)*plVar20)" (( "(") (cast_expression "(long *)*plVar20" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar20" (* "*") (identifier "plVar20"))) () ")")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "plVar4 = (long *)*plVar20;" (assignment_expression "plVar4 = (long *)*plVar20" (identifier "plVar4") (= "=") (cast_expression "(long *)*plVar20" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar20" (* "*") (identifier "plVar20")))) (; ";")) (while_statement "while (plVar19 = plVar4, *puVar3 != uVar15) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }" (while "while") (parenthesized_expression "(plVar19 = plVar4, *puVar3 != uVar15)" (( "(") (comma_expression "plVar19 = plVar4, *puVar3 != uVar15" (assignment_expression "plVar19 = plVar4" (identifier "plVar19") (= "=") (identifier "plVar4")) (, ",") (binary_expression "*puVar3 != uVar15" (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) (!= "!=") (identifier "uVar15"))) () ")")) (compound_statement "{\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;\n                }" ({ "{") (expression_statement "plVar4 = (long *)*plVar19;" (assignment_expression "plVar4 = (long *)*plVar19" (identifier "plVar4") (= "=") (cast_expression "(long *)*plVar19" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar19" (* "*") (identifier "plVar19")))) (; ";")) (if_statement "if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3660;" (if "if") (parenthesized_expression "((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))" (( "(") (binary_expression "(plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3])" (parenthesized_expression "(plVar4 == (long *)0x0)" (( "(") (binary_expression "plVar4 == (long *)0x0" (identifier "plVar4") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3])" (( "(") (comma_expression "uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]" (assignment_expression "uVar15 = plVar4[1]" (identifier "uVar15") (= "=") (subscript_expression "plVar4[1]" (identifier "plVar4") ([ "[") (number_literal "1") (] "]"))) (, ",") (comma_expression "plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]" (assignment_expression "plVar20 = plVar19" (identifier "plVar20") (= "=") (identifier "plVar19")) (, ",") (binary_expression "uVar12 != uVar15 % puVar3[3]" (identifier "uVar12") (!= "!=") (binary_expression "uVar15 % puVar3[3]" (identifier "uVar15") (% "%") (subscript_expression "puVar3[3]" (identifier "puVar3") ([ "[") (number_literal "3") (] "]")))))) () ")"))) () ")")) (goto_statement "goto LAB_001a3660;" (goto "goto") (statement_identifier "LAB_001a3660") (; ";"))) (} "}"))) (if_statement "if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }" (if "if") (parenthesized_expression "(*plVar20 != 0)" (( "(") (binary_expression "*plVar20 != 0" (pointer_expression "*plVar20" (* "*") (identifier "plVar20")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a33ac;\n                }" ({ "{") (expression_statement "uVar8 = *(undefined8 *)(*plVar20 + 0x10);" (assignment_expression "uVar8 = *(undefined8 *)(*plVar20 + 0x10)" (identifier "uVar8") (= "=") (pointer_expression "*(undefined8 *)(*plVar20 + 0x10)" (* "*") (cast_expression "(undefined8 *)(*plVar20 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*plVar20 + 0x10)" (( "(") (binary_expression "*plVar20 + 0x10" (pointer_expression "*plVar20" (* "*") (identifier "plVar20")) (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (goto_statement "goto LAB_001a33ac;" (goto "goto") (statement_identifier "LAB_001a33ac") (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_001a3660:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);" (statement_identifier "LAB_001a3660") (: ":") (expression_statement "uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);" (assignment_expression "uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff)" (identifier "uVar8") (= "=") (call_expression "FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff)" (identifier "FUN_001f9e60") (argument_list "(puVar3,param_1,piVar14[2] & 0x7ffffff)" (( "(") (identifier "puVar3") (, ",") (identifier "param_1") (, ",") (binary_expression "piVar14[2] & 0x7ffffff" (subscript_expression "piVar14[2]" (identifier "piVar14") ([ "[") (number_literal "2") (] "]")) (& "&") (number_literal "0x7ffffff")) () ")")))) (; ";"))) (} "}")))) (labeled_statement "LAB_001a33ac:\n            *(undefined8 *)(puVar24 + 2) = uVar8;" (statement_identifier "LAB_001a33ac") (: ":") (expression_statement "*(undefined8 *)(puVar24 + 2) = uVar8;" (assignment_expression "*(undefined8 *)(puVar24 + 2) = uVar8" (pointer_expression "*(undefined8 *)(puVar24 + 2)" (* "*") (cast_expression "(undefined8 *)(puVar24 + 2)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 2)" (( "(") (binary_expression "puVar24 + 2" (identifier "puVar24") (+ "+") (number_literal "2")) () ")")))) (= "=") (identifier "uVar8")) (; ";"))) (expression_statement "puVar23 = puVar24 + 6;" (assignment_expression "puVar23 = puVar24 + 6" (identifier "puVar23") (= "=") (binary_expression "puVar24 + 6" (identifier "puVar24") (+ "+") (number_literal "6"))) (; ";")) (expression_statement "*(undefined8 *)(puVar24 + 4) = *(undefined8 *)(lVar21 + -8);" (assignment_expression "*(undefined8 *)(puVar24 + 4) = *(undefined8 *)(lVar21 + -8)" (pointer_expression "*(undefined8 *)(puVar24 + 4)" (* "*") (cast_expression "(undefined8 *)(puVar24 + 4)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 4)" (( "(") (binary_expression "puVar24 + 4" (identifier "puVar24") (+ "+") (number_literal "4")) () ")")))) (= "=") (pointer_expression "*(undefined8 *)(lVar21 + -8)" (* "*") (cast_expression "(undefined8 *)(lVar21 + -8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar21 + -8)" (( "(") (binary_expression "lVar21 + -8" (identifier "lVar21") (+ "+") (number_literal "-8")) () ")"))))) (; ";")) (expression_statement "*(undefined1 *)(puVar24 + 1) = *(undefined1 *)(lVar21 + -0x14);" (assignment_expression "*(undefined1 *)(puVar24 + 1) = *(undefined1 *)(lVar21 + -0x14)" (pointer_expression "*(undefined1 *)(puVar24 + 1)" (* "*") (cast_expression "(undefined1 *)(puVar24 + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 1)" (( "(") (binary_expression "puVar24 + 1" (identifier "puVar24") (+ "+") (number_literal "1")) () ")")))) (= "=") (pointer_expression "*(undefined1 *)(lVar21 + -0x14)" (* "*") (cast_expression "(undefined1 *)(lVar21 + -0x14)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar21 + -0x14)" (( "(") (binary_expression "lVar21 + -0x14" (identifier "lVar21") (+ "+") (number_literal "-0x14")) () ")"))))) (; ";")) (expression_statement "uVar1 = *(undefined1 *)(lVar21 + -0x13);" (assignment_expression "uVar1 = *(undefined1 *)(lVar21 + -0x13)" (identifier "uVar1") (= "=") (pointer_expression "*(undefined1 *)(lVar21 + -0x13)" (* "*") (cast_expression "(undefined1 *)(lVar21 + -0x13)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar21 + -0x13)" (( "(") (binary_expression "lVar21 + -0x13" (identifier "lVar21") (+ "+") (number_literal "-0x13")) () ")"))))) (; ";")) (expression_statement "*(ushort *)((long)puVar24 + 6) = uVar13;" (assignment_expression "*(ushort *)((long)puVar24 + 6) = uVar13" (pointer_expression "*(ushort *)((long)puVar24 + 6)" (* "*") (cast_expression "(ushort *)((long)puVar24 + 6)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar24 + 6)" (( "(") (binary_expression "(long)puVar24 + 6" (cast_expression "(long)puVar24" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar24")) (+ "+") (number_literal "6")) () ")")))) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "*(undefined1 *)((long)puVar24 + 5) = uVar1;" (assignment_expression "*(undefined1 *)((long)puVar24 + 5) = uVar1" (pointer_expression "*(undefined1 *)((long)puVar24 + 5)" (* "*") (cast_expression "(undefined1 *)((long)puVar24 + 5)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar24 + 5)" (( "(") (binary_expression "(long)puVar24 + 5" (cast_expression "(long)puVar24" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar24")) (+ "+") (number_literal "5")) () ")")))) (= "=") (identifier "uVar1")) (; ";")) (} "}"))) (if_statement "if (piVar14[1] == 0) {\nLAB_001a3764:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x738,"has_output_dynsym_entry");\n          }" (if "if") (parenthesized_expression "(piVar14[1] == 0)" (( "(") (binary_expression "piVar14[1] == 0" (subscript_expression "piVar14[1]" (identifier "piVar14") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_001a3764:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x738,"has_output_dynsym_entry");\n          }" ({ "{") (labeled_statement "LAB_001a3764:\n                    \n            FUN_0016cdf0("../../gold/object.h",0x738,"has_output_dynsym_entry");" (statement_identifier "LAB_001a3764") (: ":") (expression_statement "FUN_0016cdf0("../../gold/object.h",0x738,"has_output_dynsym_entry");" (call_expression "FUN_0016cdf0("../../gold/object.h",0x738,"has_output_dynsym_entry")" (identifier "FUN_0016cdf0") (argument_list "("../../gold/object.h",0x738,"has_output_dynsym_entry")" (( "(") (string_literal ""../../gold/object.h"" (" """) (string_content "../../gold/object.h") (" """)) (, ",") (number_literal "0x738") (, ",") (string_literal ""has_output_dynsym_entry"" (" """) (string_content "has_output_dynsym_entry") (" """)) () ")"))) (; ";"))) (} "}"))) (expression_statement "puVar24 = puVar23;" (assignment_expression "puVar24 = puVar23" (identifier "puVar24") (= "=") (identifier "puVar23")) (; ";")) (if_statement "if (piVar14[1] != -1) {\n            if ((undefined4 *)((long)local_68 + uVar18) <= puVar22) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xafa,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_4,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar22 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    \n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");\n              }\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a349c:\n            *(undefined8 *)(puVar22 + 2) = uVar8;\n            *(undefined8 *)(puVar22 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar22 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar22 + 6) = uVar13;\n            *(undefined1 *)((long)puVar22 + 5) = uVar1;\n            puVar22 = puVar22 + 6;\n          }" (if "if") (parenthesized_expression "(piVar14[1] != -1)" (( "(") (binary_expression "piVar14[1] != -1" (subscript_expression "piVar14[1]" (identifier "piVar14") ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n            if ((undefined4 *)((long)local_68 + uVar18) <= puVar22) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }\n            if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xafa,"write_local_symbols");\n            }\n            uVar6 = FUN_0021b7b0(param_4,local_b0 + *(uint *)(lVar21 + -0x18));\n            *puVar22 = uVar6;\n            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    \n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");\n              }\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }\nLAB_001a349c:\n            *(undefined8 *)(puVar22 + 2) = uVar8;\n            *(undefined8 *)(puVar22 + 4) = *(undefined8 *)(lVar21 + -8);\n            *(undefined1 *)(puVar22 + 1) = *(undefined1 *)(lVar21 + -0x14);\n            uVar1 = *(undefined1 *)(lVar21 + -0x13);\n            *(ushort *)((long)puVar22 + 6) = uVar13;\n            *(undefined1 *)((long)puVar22 + 5) = uVar1;\n            puVar22 = puVar22 + 6;\n          }" ({ "{") (if_statement "if ((undefined4 *)((long)local_68 + uVar18) <= puVar22) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }" (if "if") (parenthesized_expression "((undefined4 *)((long)local_68 + uVar18) <= puVar22)" (( "(") (binary_expression "(undefined4 *)((long)local_68 + uVar18) <= puVar22" (cast_expression "(undefined4 *)((long)local_68 + uVar18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)local_68 + uVar18)" (( "(") (binary_expression "(long)local_68 + uVar18" (cast_expression "(long)local_68" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_68")) (+ "+") (identifier "uVar18")) () ")"))) (<= "<=") (identifier "puVar22")) () ")")) (compound_statement "{\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xaf7,"write_local_symbols");\n            }" ({ "{") (expression_statement "FUN_0016cdf0("../../gold/object.cc",0xaf7,"write_local_symbols");" (call_expression "FUN_0016cdf0("../../gold/object.cc",0xaf7,"write_local_symbols")" (identifier "FUN_0016cdf0") (argument_list "("../../gold/object.cc",0xaf7,"write_local_symbols")" (( "(") (string_literal ""../../gold/object.cc"" (" """) (string_content "../../gold/object.cc") (" """)) (, ",") (number_literal "0xaf7") (, ",") (string_literal ""write_local_symbols"" (" """) (string_content "write_local_symbols") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (local_48 <= *(uint *)(lVar21 + -0x18)) {\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xafa,"write_local_symbols");\n            }" (if "if") (parenthesized_expression "(local_48 <= *(uint *)(lVar21 + -0x18))" (( "(") (binary_expression "local_48 <= *(uint *)(lVar21 + -0x18)" (identifier "local_48") (<= "<=") (pointer_expression "*(uint *)(lVar21 + -0x18)" (* "*") (cast_expression "(uint *)(lVar21 + -0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar21 + -0x18)" (( "(") (binary_expression "lVar21 + -0x18" (identifier "lVar21") (+ "+") (number_literal "-0x18")) () ")"))))) () ")")) (compound_statement "{\n                    \n              FUN_0016cdf0("../../gold/object.cc",0xafa,"write_local_symbols");\n            }" ({ "{") (expression_statement "FUN_0016cdf0("../../gold/object.cc",0xafa,"write_local_symbols");" (call_expression "FUN_0016cdf0("../../gold/object.cc",0xafa,"write_local_symbols")" (identifier "FUN_0016cdf0") (argument_list "("../../gold/object.cc",0xafa,"write_local_symbols")" (( "(") (string_literal ""../../gold/object.cc"" (" """) (string_content "../../gold/object.cc") (" """)) (, ",") (number_literal "0xafa") (, ",") (string_literal ""write_local_symbols"" (" """) (string_content "write_local_symbols") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar6 = FUN_0021b7b0(param_4,local_b0 + *(uint *)(lVar21 + -0x18));" (assignment_expression "uVar6 = FUN_0021b7b0(param_4,local_b0 + *(uint *)(lVar21 + -0x18))" (identifier "uVar6") (= "=") (call_expression "FUN_0021b7b0(param_4,local_b0 + *(uint *)(lVar21 + -0x18))" (identifier "FUN_0021b7b0") (argument_list "(param_4,local_b0 + *(uint *)(lVar21 + -0x18))" (( "(") (identifier "param_4") (, ",") (binary_expression "local_b0 + *(uint *)(lVar21 + -0x18)" (identifier "local_b0") (+ "+") (pointer_expression "*(uint *)(lVar21 + -0x18)" (* "*") (cast_expression "(uint *)(lVar21 + -0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar21 + -0x18)" (( "(") (binary_expression "lVar21 + -0x18" (identifier "lVar21") (+ "+") (number_literal "-0x18")) () ")"))))) () ")")))) (; ";")) (expression_statement "*puVar22 = uVar6;" (assignment_expression "*puVar22 = uVar6" (pointer_expression "*puVar22" (* "*") (identifier "puVar22")) (= "=") (identifier "uVar6")) (; ";")) (if_statement "if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }\n            else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    \n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");\n              }\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }" (if "if") (parenthesized_expression "((char)*(byte *)((long)piVar14 + 0xb) < '\0')" (( "(") (binary_expression "(char)*(byte *)((long)piVar14 + 0xb) < '\0'" (cast_expression "(char)*(byte *)((long)piVar14 + 0xb)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(byte *)((long)piVar14 + 0xb)" (* "*") (cast_expression "(byte *)((long)piVar14 + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)piVar14 + 0xb)" (( "(") (binary_expression "(long)piVar14 + 0xb" (cast_expression "(long)piVar14" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "piVar14")) (+ "+") (number_literal "0xb")) () ")"))))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n              uVar8 = *(undefined8 *)(piVar14 + 4);\n            }" ({ "{") (expression_statement "uVar8 = *(undefined8 *)(piVar14 + 4);" (assignment_expression "uVar8 = *(undefined8 *)(piVar14 + 4)" (identifier "uVar8") (= "=") (pointer_expression "*(undefined8 *)(piVar14 + 4)" (* "*") (cast_expression "(undefined8 *)(piVar14 + 4)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar14 + 4)" (( "(") (binary_expression "piVar14 + 4" (identifier "piVar14") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    \n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");\n              }\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }" (else "else") (compound_statement "{\n              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    \n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");\n              }\n              puVar3 = *(ulong **)(piVar14 + 4);\n              uVar12 = *puVar3 % puVar3[3];\n              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);\n              if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }\n              }\nLAB_001a3608:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);\n            }" ({ "{") (if_statement "if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) {\nLAB_001a377c:\n                    \n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");\n              }" (if "if") (parenthesized_expression "((*(byte *)((long)piVar14 + 0xb) & 8) == 0)" (( "(") (binary_expression "(*(byte *)((long)piVar14 + 0xb) & 8) == 0" (parenthesized_expression "(*(byte *)((long)piVar14 + 0xb) & 8)" (( "(") (binary_expression "*(byte *)((long)piVar14 + 0xb) & 8" (pointer_expression "*(byte *)((long)piVar14 + 0xb)" (* "*") (cast_expression "(byte *)((long)piVar14 + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)piVar14 + 0xb)" (( "(") (binary_expression "(long)piVar14 + 0xb" (cast_expression "(long)piVar14" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "piVar14")) (+ "+") (number_literal "0xb")) () ")")))) (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_001a377c:\n                    \n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");\n              }" ({ "{") (labeled_statement "LAB_001a377c:\n                    \n                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");" (statement_identifier "LAB_001a377c") (: ":") (expression_statement "FUN_0016cdf0("../../gold/object.h",0x6ab,"value");" (call_expression "FUN_0016cdf0("../../gold/object.h",0x6ab,"value")" (identifier "FUN_0016cdf0") (argument_list "("../../gold/object.h",0x6ab,"value")" (( "(") (string_literal ""../../gold/object.h"" (" """) (string_content "../../gold/object.h") (" """)) (, ",") (number_literal "0x6ab") (, ",") (string_literal ""value"" (" """) (string_content "value") (" """)) () ")"))) (; ";"))) (} "}"))) (expression_statement "puVar3 = *(ulong **)(piVar14 + 4);" (assignment_expression "puVar3 = *(ulong **)(piVar14 + 4)" (identifier "puVar3") (= "=") (pointer_expression "*(ulong **)(piVar14 + 4)" (* "*") (cast_expression "(ulong **)(piVar14 + 4)" (( "(") (type_descriptor "ulong **" (type_identifier "ulong") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(piVar14 + 4)" (( "(") (binary_expression "piVar14 + 4" (identifier "piVar14") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar12 = *puVar3 % puVar3[3];" (assignment_expression "uVar12 = *puVar3 % puVar3[3]" (identifier "uVar12") (= "=") (binary_expression "*puVar3 % puVar3[3]" (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) (% "%") (subscript_expression "puVar3[3]" (identifier "puVar3") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "plVar20 = *(long **)(puVar3[2] + uVar12 * 8);" (assignment_expression "plVar20 = *(long **)(puVar3[2] + uVar12 * 8)" (identifier "plVar20") (= "=") (pointer_expression "*(long **)(puVar3[2] + uVar12 * 8)" (* "*") (cast_expression "(long **)(puVar3[2] + uVar12 * 8)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar3[2] + uVar12 * 8)" (( "(") (binary_expression "puVar3[2] + uVar12 * 8" (subscript_expression "puVar3[2]" (identifier "puVar3") ([ "[") (number_literal "2") (] "]")) (+ "+") (binary_expression "uVar12 * 8" (identifier "uVar12") (* "*") (number_literal "8"))) () ")"))))) (; ";")) (if_statement "if (plVar20 != (long *)0x0) {\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }\n              }" (if "if") (parenthesized_expression "(plVar20 != (long *)0x0)" (( "(") (binary_expression "plVar20 != (long *)0x0" (identifier "plVar20") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                uVar15 = ((long *)*plVar20)[1];\n                plVar4 = (long *)*plVar20;\n                while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }\n                if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }\n              }" ({ "{") (expression_statement "uVar15 = ((long *)*plVar20)[1];" (assignment_expression "uVar15 = ((long *)*plVar20)[1]" (identifier "uVar15") (= "=") (subscript_expression "((long *)*plVar20)[1]" (parenthesized_expression "((long *)*plVar20)" (( "(") (cast_expression "(long *)*plVar20" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar20" (* "*") (identifier "plVar20"))) () ")")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "plVar4 = (long *)*plVar20;" (assignment_expression "plVar4 = (long *)*plVar20" (identifier "plVar4") (= "=") (cast_expression "(long *)*plVar20" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar20" (* "*") (identifier "plVar20")))) (; ";")) (while_statement "while (plVar19 = plVar4, uVar15 != *puVar3) {\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }" (while "while") (parenthesized_expression "(plVar19 = plVar4, uVar15 != *puVar3)" (( "(") (comma_expression "plVar19 = plVar4, uVar15 != *puVar3" (assignment_expression "plVar19 = plVar4" (identifier "plVar19") (= "=") (identifier "plVar4")) (, ",") (binary_expression "uVar15 != *puVar3" (identifier "uVar15") (!= "!=") (pointer_expression "*puVar3" (* "*") (identifier "puVar3")))) () ")")) (compound_statement "{\n                  plVar4 = (long *)*plVar19;\n                  if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;\n                }" ({ "{") (expression_statement "plVar4 = (long *)*plVar19;" (assignment_expression "plVar4 = (long *)*plVar19" (identifier "plVar4") (= "=") (cast_expression "(long *)*plVar19" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar19" (* "*") (identifier "plVar19")))) (; ";")) (if_statement "if ((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))\n                  goto LAB_001a3608;" (if "if") (parenthesized_expression "((plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))" (( "(") (binary_expression "(plVar4 == (long *)0x0) ||\n                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3])" (parenthesized_expression "(plVar4 == (long *)0x0)" (( "(") (binary_expression "plVar4 == (long *)0x0" (identifier "plVar4") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3])" (( "(") (comma_expression "uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]" (assignment_expression "uVar15 = plVar4[1]" (identifier "uVar15") (= "=") (subscript_expression "plVar4[1]" (identifier "plVar4") ([ "[") (number_literal "1") (] "]"))) (, ",") (comma_expression "plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]" (assignment_expression "plVar20 = plVar19" (identifier "plVar20") (= "=") (identifier "plVar19")) (, ",") (binary_expression "uVar12 != uVar15 % puVar3[3]" (identifier "uVar12") (!= "!=") (binary_expression "uVar15 % puVar3[3]" (identifier "uVar15") (% "%") (subscript_expression "puVar3[3]" (identifier "puVar3") ([ "[") (number_literal "3") (] "]")))))) () ")"))) () ")")) (goto_statement "goto LAB_001a3608;" (goto "goto") (statement_identifier "LAB_001a3608") (; ";"))) (} "}"))) (if_statement "if (*plVar20 != 0) {\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }" (if "if") (parenthesized_expression "(*plVar20 != 0)" (( "(") (binary_expression "*plVar20 != 0" (pointer_expression "*plVar20" (* "*") (identifier "plVar20")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);\n                  goto LAB_001a349c;\n                }" ({ "{") (expression_statement "uVar8 = *(undefined8 *)(*plVar20 + 0x10);" (assignment_expression "uVar8 = *(undefined8 *)(*plVar20 + 0x10)" (identifier "uVar8") (= "=") (pointer_expression "*(undefined8 *)(*plVar20 + 0x10)" (* "*") (cast_expression "(undefined8 *)(*plVar20 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*plVar20 + 0x10)" (( "(") (binary_expression "*plVar20 + 0x10" (pointer_expression "*plVar20" (* "*") (identifier "plVar20")) (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (goto_statement "goto LAB_001a349c;" (goto "goto") (statement_identifier "LAB_001a349c") (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_001a3608:\n              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);" (statement_identifier "LAB_001a3608") (: ":") (expression_statement "uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);" (assignment_expression "uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff)" (identifier "uVar8") (= "=") (call_expression "FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff)" (identifier "FUN_001f9e60") (argument_list "(puVar3,param_1,piVar14[2] & 0x7ffffff)" (( "(") (identifier "puVar3") (, ",") (identifier "param_1") (, ",") (binary_expression "piVar14[2] & 0x7ffffff" (subscript_expression "piVar14[2]" (identifier "piVar14") ([ "[") (number_literal "2") (] "]")) (& "&") (number_literal "0x7ffffff")) () ")")))) (; ";"))) (} "}")))) (labeled_statement "LAB_001a349c:\n            *(undefined8 *)(puVar22 + 2) = uVar8;" (statement_identifier "LAB_001a349c") (: ":") (expression_statement "*(undefined8 *)(puVar22 + 2) = uVar8;" (assignment_expression "*(undefined8 *)(puVar22 + 2) = uVar8" (pointer_expression "*(undefined8 *)(puVar22 + 2)" (* "*") (cast_expression "(undefined8 *)(puVar22 + 2)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + 2)" (( "(") (binary_expression "puVar22 + 2" (identifier "puVar22") (+ "+") (number_literal "2")) () ")")))) (= "=") (identifier "uVar8")) (; ";"))) (expression_statement "*(undefined8 *)(puVar22 + 4) = *(undefined8 *)(lVar21 + -8);" (assignment_expression "*(undefined8 *)(puVar22 + 4) = *(undefined8 *)(lVar21 + -8)" (pointer_expression "*(undefined8 *)(puVar22 + 4)" (* "*") (cast_expression "(undefined8 *)(puVar22 + 4)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + 4)" (( "(") (binary_expression "puVar22 + 4" (identifier "puVar22") (+ "+") (number_literal "4")) () ")")))) (= "=") (pointer_expression "*(undefined8 *)(lVar21 + -8)" (* "*") (cast_expression "(undefined8 *)(lVar21 + -8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar21 + -8)" (( "(") (binary_expression "lVar21 + -8" (identifier "lVar21") (+ "+") (number_literal "-8")) () ")"))))) (; ";")) (expression_statement "*(undefined1 *)(puVar22 + 1) = *(undefined1 *)(lVar21 + -0x14);" (assignment_expression "*(undefined1 *)(puVar22 + 1) = *(undefined1 *)(lVar21 + -0x14)" (pointer_expression "*(undefined1 *)(puVar22 + 1)" (* "*") (cast_expression "(undefined1 *)(puVar22 + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + 1)" (( "(") (binary_expression "puVar22 + 1" (identifier "puVar22") (+ "+") (number_literal "1")) () ")")))) (= "=") (pointer_expression "*(undefined1 *)(lVar21 + -0x14)" (* "*") (cast_expression "(undefined1 *)(lVar21 + -0x14)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar21 + -0x14)" (( "(") (binary_expression "lVar21 + -0x14" (identifier "lVar21") (+ "+") (number_literal "-0x14")) () ")"))))) (; ";")) (expression_statement "uVar1 = *(undefined1 *)(lVar21 + -0x13);" (assignment_expression "uVar1 = *(undefined1 *)(lVar21 + -0x13)" (identifier "uVar1") (= "=") (pointer_expression "*(undefined1 *)(lVar21 + -0x13)" (* "*") (cast_expression "(undefined1 *)(lVar21 + -0x13)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar21 + -0x13)" (( "(") (binary_expression "lVar21 + -0x13" (identifier "lVar21") (+ "+") (number_literal "-0x13")) () ")"))))) (; ";")) (expression_statement "*(ushort *)((long)puVar22 + 6) = uVar13;" (assignment_expression "*(ushort *)((long)puVar22 + 6) = uVar13" (pointer_expression "*(ushort *)((long)puVar22 + 6)" (* "*") (cast_expression "(ushort *)((long)puVar22 + 6)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar22 + 6)" (( "(") (binary_expression "(long)puVar22 + 6" (cast_expression "(long)puVar22" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar22")) (+ "+") (number_literal "6")) () ")")))) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "*(undefined1 *)((long)puVar22 + 5) = uVar1;" (assignment_expression "*(undefined1 *)((long)puVar22 + 5) = uVar1" (pointer_expression "*(undefined1 *)((long)puVar22 + 5)" (* "*") (cast_expression "(undefined1 *)((long)puVar22 + 5)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar22 + 5)" (( "(") (binary_expression "(long)puVar22 + 5" (cast_expression "(long)puVar22" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar22")) (+ "+") (number_literal "5")) () ")")))) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "puVar22 = puVar22 + 6;" (assignment_expression "puVar22 = puVar22 + 6" (identifier "puVar22") (= "=") (binary_expression "puVar22 + 6" (identifier "puVar22") (+ "+") (number_literal "6"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "local_b8 = local_b8 + 1;" (assignment_expression "local_b8 = local_b8 + 1" (identifier "local_b8") (= "=") (binary_expression "local_b8 + 1" (identifier "local_b8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "lVar21 = lVar21 + 0x18;" (assignment_expression "lVar21 = lVar21 + 0x18" (identifier "lVar21") (= "=") (binary_expression "lVar21 + 0x18" (identifier "lVar21") (+ "+") (number_literal "0x18"))) (; ";")) (if_statement "if (uVar2 == local_b8) goto LAB_001a3680;" (if "if") (parenthesized_expression "(uVar2 == local_b8)" (( "(") (binary_expression "uVar2 == local_b8" (identifier "uVar2") (== "==") (identifier "local_b8")) () ")")) (goto_statement "goto LAB_001a3680;" (goto "goto") (statement_identifier "LAB_001a3680") (; ";"))) (expression_statement "lVar9 = param_1[0x2c];" (assignment_expression "lVar9 = param_1[0x2c]" (identifier "lVar9") (= "=") (subscript_expression "param_1[0x2c]" (identifier "param_1") ([ "[") (number_literal "0x2c") (] "]"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    param_7 = param_7 + param_1[0x2a];\n    if ((-1 < param_7) && ((long)(param_7 + (ulong)uVar16) <= *(long *)(param_2 + 0x10))) {\n      local_70 = (undefined4 *)(param_7 + *(long *)(param_2 + 0x18));\n      goto LAB_001a31f6;\n    }\nLAB_001a3859:\n    FUN_0019a5b0();\n  }" (else "else") (compound_statement "{\n    param_7 = param_7 + param_1[0x2a];\n    if ((-1 < param_7) && ((long)(param_7 + (ulong)uVar16) <= *(long *)(param_2 + 0x10))) {\n      local_70 = (undefined4 *)(param_7 + *(long *)(param_2 + 0x18));\n      goto LAB_001a31f6;\n    }\nLAB_001a3859:\n    FUN_0019a5b0();\n  }" ({ "{") (expression_statement "param_7 = param_7 + param_1[0x2a];" (assignment_expression "param_7 = param_7 + param_1[0x2a]" (identifier "param_7") (= "=") (binary_expression "param_7 + param_1[0x2a]" (identifier "param_7") (+ "+") (subscript_expression "param_1[0x2a]" (identifier "param_1") ([ "[") (number_literal "0x2a") (] "]")))) (; ";")) (if_statement "if ((-1 < param_7) && ((long)(param_7 + (ulong)uVar16) <= *(long *)(param_2 + 0x10))) {\n      local_70 = (undefined4 *)(param_7 + *(long *)(param_2 + 0x18));\n      goto LAB_001a31f6;\n    }" (if "if") (parenthesized_expression "((-1 < param_7) && ((long)(param_7 + (ulong)uVar16) <= *(long *)(param_2 + 0x10)))" (( "(") (binary_expression "(-1 < param_7) && ((long)(param_7 + (ulong)uVar16) <= *(long *)(param_2 + 0x10))" (parenthesized_expression "(-1 < param_7)" (( "(") (binary_expression "-1 < param_7" (number_literal "-1") (< "<") (identifier "param_7")) () ")")) (&& "&&") (parenthesized_expression "((long)(param_7 + (ulong)uVar16) <= *(long *)(param_2 + 0x10))" (( "(") (binary_expression "(long)(param_7 + (ulong)uVar16) <= *(long *)(param_2 + 0x10)" (cast_expression "(long)(param_7 + (ulong)uVar16)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(param_7 + (ulong)uVar16)" (( "(") (binary_expression "param_7 + (ulong)uVar16" (identifier "param_7") (+ "+") (cast_expression "(ulong)uVar16" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar16"))) () ")"))) (<= "<=") (pointer_expression "*(long *)(param_2 + 0x10)" (* "*") (cast_expression "(long *)(param_2 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x10)" (( "(") (binary_expression "param_2 + 0x10" (identifier "param_2") (+ "+") (number_literal "0x10")) () ")"))))) () ")"))) () ")")) (compound_statement "{\n      local_70 = (undefined4 *)(param_7 + *(long *)(param_2 + 0x18));\n      goto LAB_001a31f6;\n    }" ({ "{") (expression_statement "local_70 = (undefined4 *)(param_7 + *(long *)(param_2 + 0x18));" (assignment_expression "local_70 = (undefined4 *)(param_7 + *(long *)(param_2 + 0x18))" (identifier "local_70") (= "=") (cast_expression "(undefined4 *)(param_7 + *(long *)(param_2 + 0x18))" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_7 + *(long *)(param_2 + 0x18))" (( "(") (binary_expression "param_7 + *(long *)(param_2 + 0x18)" (identifier "param_7") (+ "+") (pointer_expression "*(long *)(param_2 + 0x18)" (* "*") (cast_expression "(long *)(param_2 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x18)" (( "(") (binary_expression "param_2 + 0x18" (identifier "param_2") (+ "+") (number_literal "0x18")) () ")"))))) () ")")))) (; ";")) (goto_statement "goto LAB_001a31f6;" (goto "goto") (statement_identifier "LAB_001a31f6") (; ";")) (} "}"))) (labeled_statement "LAB_001a3859:\n    FUN_0019a5b0();" (statement_identifier "LAB_001a3859") (: ":") (expression_statement "FUN_0019a5b0();" (call_expression "FUN_0019a5b0()" (identifier "FUN_0019a5b0") (argument_list "()" (( "(") () ")"))) (; ";"))) (} "}")))) (expression_statement "FUN_0016cdf0("../../gold/object.cc",0xac5,"write_local_symbols");" (call_expression "FUN_0016cdf0("../../gold/object.cc",0xac5,"write_local_symbols")" (identifier "FUN_0016cdf0") (argument_list "("../../gold/object.cc",0xac5,"write_local_symbols")" (( "(") (string_literal ""../../gold/object.cc"" (" """) (string_content "../../gold/object.cc") (" """)) (, ",") (number_literal "0xac5") (, ",") (string_literal ""write_local_symbols"" (" """) (string_content "write_local_symbols") (" """)) () ")"))) (; ";")) (} "}")))

/* WARNING: Type propagation algorithm not settling */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void write_local_symbols(Sized_relobj_file<64,_false> * this,
   Output_file * of, Stringpool * sympool, Stringpool * dynpool, Output_symtab_xindex *
   symtab_xindex, Output_symtab_xindex * dynsym_xindex, off_t symtab_off) */

void __thiscall
var_21::Sized_relobj_file<64,_false>::write_local_symbols
          (Sized_relobj_file<64,_false> *this,type_11 *of,Stringpool *sympool,
          Stringpool *dynpool,Output_symtab_xindex *symtab_xindex,
          Output_symtab_xindex *dynsym_xindex,type_8 var_51)

{
  Elf_file<64,_false,_gold::type_19> *this_00;
  type_1 uVar1;
  type_2 var_5;
  type_3 *var_13;
  var_1<64> *pMVar4;
  type_4 *var_46;
  type_5 ppOVar6;
  type_6 *var_31;
  type_7 *var_17;
  type_2 var_33;
  type_2 var_32;
  int iVar11;
  type_8 start;
  type_1 *var_10;
  type_1 *var_27;
  long var_20;
  type_9 sVar15;
  type_4 *var_44;
  type_10 extraout_var;
  type_10 extraout_var_00;
  type_11 *this_1;
  bool bVar17;
  type_11 *var_16;
  type_12 var_47;
  type_11 *extraout_RDX;
  type_11 *extraout_RDX_00;
  type_13 var_29;
  type_12 var_30;
  type_5 pSVar21;
  type_2 *var_42;
  type_4 *var_45;
  type_2 var_11;
  type_2 var_19;
  type_7 *var_7;
  type_14 p_Var27;
  type_14 var_43;
  type_1 *var_28;
  type_1 *puVar30;
  type_1 *var_24;
  type_15 LVar32;
  type_2 var_50;
  type_1 *var_41;
  type_1 *local_70;
  type_1 *var_49;
  type_16 var_37;
  var_2<var_3,var_34> local_40 [2];
  type_17 *var_35;
  type_11 *var_25;
  type_11 *var_26;
  
  if (parameters->options_ == (type_18 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_4("../../gold/parameters.h",0x5c,"options");
  }
  if ((parameters->options_->strip_all_).value != false) {
    if (this->output_local_dynsym_count_ == 0) {
      return;
    }
    this->output_local_symbol_count_ = 0;
  }
  var_5 = this->symtab_shndx_;
  if (var_5 == 0xffffffff) {
                    /* WARNING: Subroutine does not return */
    var_4("../../gold/object.cc",0xa97,"write_local_symbols");
  }
  if (var_5 == 0) {
    return;
  }
  this_00 = &this->elf_file_;
  start = elfcpp::Elf_file<64,_false,_gold::type_19>::var_6(this_00,var_5);
  var_7 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.input_file_;
  if (var_7 == (type_7 *)0x0) {
LAB_001a3824:
                    /* WARNING: Subroutine does not return */
    Object::var_8((type_19 *)var_7);
  }
  var_10 = File_read::var_9(&var_7->file_,
                                (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.
                                offset_,start,0x40,true,true);
  if (*(int *)(var_10 + 4) != 2) {
                    /* WARNING: Subroutine does not return */
    var_4("../../gold/object.cc",0xaa2,"write_local_symbols");
  }
  var_5 = this->local_symbol_count_;
  if (var_5 != *(type_2 *)(var_10 + 0x2c)) {
                    /* WARNING: Subroutine does not return */
    var_4("../../gold/object.cc",0xaa4,"write_local_symbols");
  }
  var_7 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.input_file_;
  this_1 = (type_11 *)(type_12)(var_5 * 0x18);
  if (var_7 == (type_7 *)0x0) goto LAB_001a3824;
  var_27 = File_read::var_9(&var_7->file_,
                                (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.
                                offset_,*(type_8 *)(var_10 + 0x18),(type_16)this_1,true,
                                false);
  var_11 = *(type_2 *)(var_10 + 0x28);
  if (0xfeff < var_11) {
    elfcpp::Elf_file<64,_false,_gold::type_19>::var_12(this_00);
    var_11 = var_11 + (this->elf_file_).large_shndx_offset_;
  }
  var_13 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object[0xe];
  if (var_13 == var_14) {
    var_30 = (type_12)var_11;
    LVar32 = elfcpp::Elf_file<64,_false,_gold::type_19>::var_15(this_00,var_11);
    var_16 = (type_11 *)LVar32.data_size;
    var_7 = (type_7 *)
              &Sized_relobj_file<64,false>::var_14(var_3,unsigned_long*,bool)::
               empty;
    var_41 = "";
    var_37 = (type_16)var_16;
    if (var_16 != (type_11 *)0x0) {
      var_17 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.input_file_;
      if (var_17 == (type_7 *)0x0) goto LAB_001a3824;
      var_30 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.offset_;
      var_41 = File_read::var_9(&var_17->file_,var_30,LVar32.file_offset,
                                     (type_16)var_16,true,false);
      this_1 = var_16;
      var_16 = extraout_RDX;
    }
  }
  else {
    this_1 = (type_11 *)0x0;
    var_30 = (type_12)var_11;
    iVar11 = (*var_13)(this,var_30,&var_37);
    var_41 = (type_1 *)var_18(extraout_var_00,iVar11);
    var_16 = extraout_RDX_00;
  }
  var_11 = this->output_local_symbol_count_ * 0x18;
  var_25 = (type_11 *)(type_12)var_11;
  if (var_11 == 0) {
    local_70 = (type_1 *)0x0;
LAB_001a31f6:
    var_19 = this->output_local_dynsym_count_ * 0x18;
    var_26 = (type_11 *)(type_12)var_19;
    if (var_19 == 0) {
      var_49 = (type_1 *)0x0;
    }
    else {
      var_20 = this->local_dynsym_offset_;
      if ((var_20 < 0) ||
         (var_16 = (type_11 *)((long)&var_26->name_ + var_20), of->file_size_ < (long)var_16))
      goto LAB_001a3859;
      var_49 = of->base_ + var_20;
    }
    pSVar21 = (this->local_values_).
              super__Vector_base<var_21::Symbol_value<64>,var_22::allocator<var_21::Symbol_value<64>var_23>var_23>.
              _M_impl._M_start;
    if ((type_12)var_5 ==
        ((long)(this->local_values_).
               super__Vector_base<var_21::Symbol_value<64>,var_22::allocator<var_21::Symbol_value<64>var_23>var_23>.
               _M_impl._M_finish - (long)pSVar21 >> 3) * -0x5555555555555555) {
      var_10 = var_49;
      var_24 = local_70;
      if (var_5 < 2) {
LAB_001a3680:
        if ((var_11 != 0) && ((type_11 *)(var_24 + -(long)local_70) != var_25)) {
                    /* WARNING: Subroutine does not return */
          var_4("../../gold/object.cc",0xb0a,"write_local_symbols");
        }
        if ((var_19 != 0) && ((type_11 *)(var_10 + -(long)var_49) != var_26)) {
                    /* WARNING: Subroutine does not return */
          var_4("../../gold/object.cc",0xb11,"write_local_symbols");
        }
        return;
      }
      var_28 = var_27 + 0x30;
      var_50 = 1;
      do {
        var_29 = *(type_13 *)(var_28 + -0x12);
        var_30 = (type_12)var_29;
        var_42 = (type_2 *)(var_28 + (long)pSVar21 + (-0x18 - (long)var_27));
        if (var_29 < 0xff00) {
LAB_001a350a:
          ppOVar6 = (this->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.
                    super__Vector_base<var_21::type_6*,var_22::allocator<var_21::type_6*>var_23>
                    ._M_impl._M_start;
          if ((type_12)((long)(this->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.
                            super__Vector_base<var_21::type_6*,var_22::allocator<var_21::type_6*>var_23>
                            ._M_impl._M_finish - (long)ppOVar6 >> 3) <= var_30) {
                    /* WARNING: Subroutine does not return */
            var_4("../../gold/object.cc",0xad5,"write_local_symbols");
          }
          var_31 = ppOVar6[var_30];
          if (var_31 != (type_6 *)0x0) {
            var_13 = (var_31->super_Output_data)._vptr_Output_data[0xb];
            if (var_13 == type_6::do_out_shndx) {
              var_32 = var_31->out_shndx_;
              if (var_32 == 0xffffffff) {
                    /* WARNING: Subroutine does not return */
                var_4("../../gold/output.h",0x1043,"do_out_shndx");
              }
            }
            else {
              var_32 = (*var_13)();
            }
            var_29 = (type_13)var_32;
            var_33 = *var_42;
            bVar17 = var_33 != 0 && var_33 != 0xfffffffe;
            if (0xfeff < var_32) {
              if (var_33 == 0 || var_33 == 0xfffffffe) goto LAB_001a374c;
              if (var_33 != 0xffffffff) {
                local_40[0].first = var_33;
                local_40[0].second = var_32;
                std::
                vector<std::var_2<var_3,var_34>,var_22::allocator<std::var_2<var_3,var_34>var_23>var_23>
                ::emplace_back<std::var_2<var_3,var_34>var_23>
                          (&symtab_xindex->entries_,local_40);
              }
              var_33 = var_42[1];
              if (var_33 == 0) goto LAB_001a3764;
              if (var_33 == 0xffffffff) {
                var_33 = *var_42;
                var_29 = 0xffff;
                bVar17 = var_33 != 0 && var_33 != 0xfffffffe;
              }
              else {
                var_29 = 0xffff;
                local_40[0].first = var_33;
                local_40[0].second = var_32;
                std::
                vector<std::var_2<var_3,var_34>,var_22::allocator<std::var_2<var_3,var_34>var_23>var_23>
                ::emplace_back<std::var_2<var_3,var_34>var_23>
                          (&dynsym_xindex->entries_,local_40);
                var_33 = *var_42;
                bVar17 = var_33 != 0xfffffffe && var_33 != 0;
              }
            }
            goto LAB_001a32f9;
          }
        }
        else {
          if (var_29 == 0xffff) {
            var_35 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_;
            if (var_35 == (type_17 *)0x0) {
              iVar11 = (*(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.
                         _vptr_Object[0x1b])(this);
              var_35 = (type_17 *)var_18(extraout_var,iVar11);
              (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = var_35;
            }
            var_32 = type_17::var_36(var_35,(type_19 *)this,var_50);
            var_30 = (type_12)var_32;
            goto LAB_001a350a;
          }
          var_33 = *var_42;
          bVar17 = var_33 != 0 && var_33 != 0xfffffffe;
LAB_001a32f9:
          if (!bVar17) {
LAB_001a374c:
                    /* WARNING: Subroutine does not return */
            var_4("../../gold/object.h",0x6fb,"has_output_symtab_entry");
          }
          puVar30 = var_24;
          if (var_33 != 0xffffffff) {
            if (var_37 <= *(type_2 *)(var_28 + -0x18)) {
                    /* WARNING: Subroutine does not return */
              var_4("../../gold/object.cc",0xae8,"write_local_symbols");
            }
            sVar15 = var_38<var_39>::var_40
                               (sympool,(char *)(var_41 + *(type_2 *)(var_28 + -0x18)));
            *(int *)var_24 = (int)sVar15;
            if ((char)*(type_20 *)((long)var_42 + 0xb) < '\0') {
              var_44 = *(type_4 **)(var_42 + 4);
            }
            else {
              if ((*(type_20 *)((long)var_42 + 0xb) & 8) == 0) goto LAB_001a377c;
              pMVar4 = *(var_1<64> **)(var_42 + 4);
              var_44 = (type_4 *)pMVar4->input_value_;
              var_30 = (pMVar4->output_addresses_)._M_h._M_bucket_count;
              var_47 = (type_12)var_44 % var_30;
              var_43 = (pMVar4->output_addresses_)._M_h._M_buckets[var_47];
              if (var_43 != (type_14)0x0) {
                var_45 = var_43->_M_nxt[1]._M_nxt;
                var_46 = var_43->_M_nxt;
                while (p_Var27 = var_46, var_44 != var_45) {
                  var_46 = p_Var27->_M_nxt;
                  if ((var_46 == (type_4 *)0x0) ||
                     (var_45 = var_46[1]._M_nxt, var_43 = p_Var27,
                     var_47 != (type_12)var_45 % var_30)) goto LAB_001a3660;
                }
                if (var_43->_M_nxt != (type_4 *)0x0) {
                  var_44 = var_43->_M_nxt[2]._M_nxt;
                  goto LAB_001a33ac;
                }
              }
LAB_001a3660:
              var_44 = (type_4 *)
                        var_1<64>::var_48
                                  (pMVar4,(type_21 *)this,var_42[2] & 0x7ffffff,(type_22)var_44);
            }
LAB_001a33ac:
            *(type_4 **)(var_24 + 8) = var_44;
            puVar30 = var_24 + 0x18;
            *(type_23 *)(var_24 + 0x10) = *(type_23 *)(var_28 + -8);
            var_24[4] = var_28[-0x14];
            uVar1 = var_28[-0x13];
            *(type_13 *)(var_24 + 6) = var_29;
            var_24[5] = uVar1;
          }
          if (var_42[1] == 0) {
LAB_001a3764:
                    /* WARNING: Subroutine does not return */
            var_4("../../gold/object.h",0x738,"has_output_dynsym_entry");
          }
          var_24 = puVar30;
          if (var_42[1] != 0xffffffff) {
            if (var_49 + (long)var_26 <= var_10) {
                    /* WARNING: Subroutine does not return */
              var_4("../../gold/object.cc",0xaf7,"write_local_symbols");
            }
            if (var_37 <= *(type_2 *)(var_28 + -0x18)) {
                    /* WARNING: Subroutine does not return */
              var_4("../../gold/object.cc",0xafa,"write_local_symbols");
            }
            sVar15 = var_38<var_39>::var_40
                               (dynpool,(char *)(var_41 + *(type_2 *)(var_28 + -0x18)));
            *(int *)var_10 = (int)sVar15;
            if ((char)*(type_20 *)((long)var_42 + 0xb) < '\0') {
              var_44 = *(type_4 **)(var_42 + 4);
            }
            else {
              if ((*(type_20 *)((long)var_42 + 0xb) & 8) == 0) {
LAB_001a377c:
                    /* WARNING: Subroutine does not return */
                var_4("../../gold/object.h",0x6ab,"value");
              }
              pMVar4 = *(var_1<64> **)(var_42 + 4);
              var_44 = (type_4 *)pMVar4->input_value_;
              var_30 = (pMVar4->output_addresses_)._M_h._M_bucket_count;
              var_47 = (type_12)var_44 % var_30;
              var_43 = (pMVar4->output_addresses_)._M_h._M_buckets[var_47];
              if (var_43 != (type_14)0x0) {
                var_45 = var_43->_M_nxt[1]._M_nxt;
                var_46 = var_43->_M_nxt;
                while (p_Var27 = var_46, var_45 != var_44) {
                  var_46 = p_Var27->_M_nxt;
                  if ((var_46 == (type_4 *)0x0) ||
                     (var_45 = var_46[1]._M_nxt, var_43 = p_Var27,
                     var_47 != (type_12)var_45 % var_30)) goto LAB_001a3608;
                }
                if (var_43->_M_nxt != (type_4 *)0x0) {
                  var_44 = var_43->_M_nxt[2]._M_nxt;
                  goto LAB_001a349c;
                }
              }
LAB_001a3608:
              var_44 = (type_4 *)
                        var_1<64>::var_48
                                  (pMVar4,(type_21 *)this,var_42[2] & 0x7ffffff,(type_22)var_44);
            }
LAB_001a349c:
            *(type_4 **)(var_10 + 8) = var_44;
            *(type_23 *)(var_10 + 0x10) = *(type_23 *)(var_28 + -8);
            var_10[4] = var_28[-0x14];
            uVar1 = var_28[-0x13];
            *(type_13 *)(var_10 + 6) = var_29;
            var_10[5] = uVar1;
            var_10 = var_10 + 0x18;
          }
        }
        var_50 = var_50 + 1;
        var_28 = var_28 + 0x18;
        if (var_5 == var_50) goto LAB_001a3680;
        pSVar21 = (this->local_values_).
                  super__Vector_base<var_21::Symbol_value<64>,var_22::allocator<var_21::Symbol_value<64>var_23>var_23>
                  ._M_impl._M_start;
      } while( true );
    }
  }
  else {
    var_20 = var_51 + this->local_symbol_offset_;
    var_26 = var_25;
    if ((-1 < var_20) &&
       (var_16 = (type_11 *)((long)&var_25->name_ + var_20), (long)var_16 <= of->file_size_)) {
      local_70 = of->base_ + var_20;
      goto LAB_001a31f6;
    }
LAB_001a3859:
    Output_file::var_52(var_26,var_30,(size_t)var_16,this_1);
  }
                    /* WARNING: Subroutine does not return */
  var_4("../../gold/object.cc",0xac5,"write_local_symbols");
}


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

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

{
  undefined1 uVar1;
  uint uVar2;
  ulong *puVar3;
  long *plVar4;
  int iVar5;
  undefined4 uVar6;
  uint uVar7;
  undefined8 uVar8;
  long lVar9;
  long lVar10;
  bool bVar11;
  ulong uVar12;
  ushort uVar13;
  int *piVar14;
  ulong uVar15;
  uint uVar16;
  uint uVar17;
  long *plVar19;
  long *plVar20;
  long lVar21;
  undefined4 *puVar22;
  undefined4 *puVar23;
  undefined4 *puVar24;
  undefined1 auVar25 [16];
  uint local_b8;
  undefined *local_b0;
  undefined4 *local_70;
  undefined4 *local_68;
  ulong local_48;
  int local_40;
  uint local_3c;
  ulong uVar18;
  
  if (*(long *)(PTR_DAT_003be6b0 + 0x10) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");
  }
  if (*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x54f9) != '\0') {
    if ((int)param_1[0x25] == 0) {
      return;
    }
    *(undefined4 *)((long)param_1 + 0x124) = 0;
  }
  if (*(int *)((long)param_1 + 0x11c) == -1) {
                    /* WARNING: Subroutine does not return */
    FUN_0016cdf0("../../gold/object.cc",0xa97,"write_local_symbols");
  }
  if (*(int *)((long)param_1 + 0x11c) == 0) {
    return;
  }
  plVar20 = param_1 + 0x1f;
  uVar8 = FUN_0015e080(plVar20);
  if (param_1[5] == 0) {
LAB_001a3824:
                    /* WARNING: Subroutine does not return */
    FUN_0019a570();
  }
  lVar9 = FUN_0016b970(param_1[5] + 0x28,param_1[6],uVar8,0x40,1,1);
  if (*(int *)(lVar9 + 4) != 2) {
                    /* WARNING: Subroutine does not return */
    FUN_0016cdf0("../../gold/object.cc",0xaa2,"write_local_symbols");
  }
  uVar2 = *(uint *)(param_1 + 0x24);
  if (uVar2 != *(uint *)(lVar9 + 0x2c)) {
                    /* WARNING: Subroutine does not return */
    FUN_0016cdf0("../../gold/object.cc",0xaa4,"write_local_symbols");
  }
  if (param_1[5] == 0) goto LAB_001a3824;
  lVar10 = FUN_0016b970(param_1[5] + 0x28,param_1[6],*(undefined8 *)(lVar9 + 0x18),uVar2 * 0x18,1,0)
  ;
  uVar16 = *(uint *)(lVar9 + 0x28);
  if (0xfeff < uVar16) {
    FUN_0015d960(plVar20);
    uVar16 = uVar16 + (int)param_1[0x22];
  }
  if (*(code **)(*param_1 + 0x70) == FUN_001a2100) {
    auVar25 = FUN_001a2060(plVar20,uVar16);
    local_48 = auVar25._8_8_;
    local_b0 = &DAT_00313646;
    if (local_48 != 0) {
      if (param_1[5] == 0) goto LAB_001a3824;
      local_b0 = (undefined *)FUN_0016b970(param_1[5] + 0x28,param_1[6],auVar25._0_8_,local_48,1,0);
    }
  }
  else {
    local_b0 = (undefined *)(**(code **)(*param_1 + 0x70))(param_1,uVar16,&local_48,0);
  }
  uVar16 = *(int *)((long)param_1 + 0x124) * 0x18;
  if (uVar16 == 0) {
    local_70 = (undefined4 *)0x0;
LAB_001a31f6:
    uVar17 = (int)param_1[0x25] * 0x18;
    uVar18 = (ulong)uVar17;
    if (uVar17 == 0) {
      local_68 = (undefined4 *)0x0;
    }
    else {
      lVar9 = param_1[0x2b];
      if ((lVar9 < 0) || (*(long *)(param_2 + 0x10) < (long)(lVar9 + uVar18))) goto LAB_001a3859;
      local_68 = (undefined4 *)(lVar9 + *(long *)(param_2 + 0x18));
    }
    lVar9 = param_1[0x2c];
    if ((ulong)uVar2 == (param_1[0x2d] - lVar9 >> 3) * -0x5555555555555555) {
      puVar22 = local_68;
      puVar24 = local_70;
      if (uVar2 < 2) {
LAB_001a3680:
        if ((uVar16 != 0) && ((long)puVar24 - (long)local_70 != (ulong)uVar16)) {
                    /* WARNING: Subroutine does not return */
          FUN_0016cdf0("../../gold/object.cc",0xb0a,"write_local_symbols");
        }
        if ((uVar17 != 0) && ((long)puVar22 - (long)local_68 != uVar18)) {
                    /* WARNING: Subroutine does not return */
          FUN_0016cdf0("../../gold/object.cc",0xb11,"write_local_symbols");
        }
        return;
      }
      lVar21 = lVar10 + 0x30;
      local_b8 = 1;
      do {
        uVar13 = *(ushort *)(lVar21 + -0x12);
        uVar12 = (ulong)uVar13;
        piVar14 = (int *)(lVar9 + (-0x18 - lVar10) + lVar21);
        if (uVar13 < 0xff00) {
LAB_001a350a:
          if ((ulong)(param_1[0xb] - param_1[10] >> 3) <= uVar12) {
                    /* WARNING: Subroutine does not return */
            FUN_0016cdf0("../../gold/object.cc",0xad5,"write_local_symbols");
          }
          plVar20 = *(long **)(param_1[10] + uVar12 * 8);
          if (plVar20 != (long *)0x0) {
            if (*(code **)(*plVar20 + 0x58) == FUN_00175f90) {
              uVar7 = *(uint *)((long)plVar20 + 0x7c);
              if (uVar7 == 0xffffffff) {
                    /* WARNING: Subroutine does not return */
                FUN_0016cdf0("../../gold/output.h",0x1043,"do_out_shndx");
              }
            }
            else {
              uVar7 = (**(code **)(*plVar20 + 0x58))();
            }
            uVar13 = (ushort)uVar7;
            iVar5 = *piVar14;
            bVar11 = iVar5 != 0 && iVar5 != -2;
            if (0xfeff < uVar7) {
              if (iVar5 == 0 || iVar5 == -2) goto LAB_001a374c;
              if (iVar5 != -1) {
                local_40 = iVar5;
                local_3c = uVar7;
                FUN_0017ab80(param_5 + 0x38,&local_40);
              }
              iVar5 = piVar14[1];
              if (iVar5 == 0) goto LAB_001a3764;
              if (iVar5 == -1) {
                iVar5 = *piVar14;
                uVar13 = 0xffff;
                bVar11 = iVar5 != 0 && iVar5 != -2;
              }
              else {
                uVar13 = 0xffff;
                local_40 = iVar5;
                local_3c = uVar7;
                FUN_0017ab80(param_6 + 0x38,&local_40);
                iVar5 = *piVar14;
                bVar11 = iVar5 != -2 && iVar5 != 0;
              }
            }
            goto LAB_001a32f9;
          }
        }
        else {
          if (uVar13 == 0xffff) {
            lVar9 = param_1[8];
            if (lVar9 == 0) {
              lVar9 = (**(code **)(*param_1 + 0xd8))(param_1);
              param_1[8] = lVar9;
            }
            uVar7 = FUN_0019a820(lVar9,param_1,local_b8);
            uVar12 = (ulong)uVar7;
            goto LAB_001a350a;
          }
          iVar5 = *piVar14;
          bVar11 = iVar5 != 0 && iVar5 != -2;
LAB_001a32f9:
          if (!bVar11) {
LAB_001a374c:
                    /* WARNING: Subroutine does not return */
            FUN_0016cdf0("../../gold/object.h",0x6fb,"has_output_symtab_entry");
          }
          puVar23 = puVar24;
          if (iVar5 != -1) {
            if (local_48 <= *(uint *)(lVar21 + -0x18)) {
                    /* WARNING: Subroutine does not return */
              FUN_0016cdf0("../../gold/object.cc",0xae8,"write_local_symbols");
            }
            uVar6 = FUN_0021b7b0(param_3,local_b0 + *(uint *)(lVar21 + -0x18));
            *puVar24 = uVar6;
            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {
              uVar8 = *(undefined8 *)(piVar14 + 4);
            }
            else {
              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) goto LAB_001a377c;
              puVar3 = *(ulong **)(piVar14 + 4);
              uVar12 = *puVar3 % puVar3[3];
              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);
              if (plVar20 != (long *)0x0) {
                uVar15 = ((long *)*plVar20)[1];
                plVar4 = (long *)*plVar20;
                while (plVar19 = plVar4, *puVar3 != uVar15) {
                  plVar4 = (long *)*plVar19;
                  if ((plVar4 == (long *)0x0) ||
                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))
                  goto LAB_001a3660;
                }
                if (*plVar20 != 0) {
                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);
                  goto LAB_001a33ac;
                }
              }
LAB_001a3660:
              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);
            }
LAB_001a33ac:
            *(undefined8 *)(puVar24 + 2) = uVar8;
            puVar23 = puVar24 + 6;
            *(undefined8 *)(puVar24 + 4) = *(undefined8 *)(lVar21 + -8);
            *(undefined1 *)(puVar24 + 1) = *(undefined1 *)(lVar21 + -0x14);
            uVar1 = *(undefined1 *)(lVar21 + -0x13);
            *(ushort *)((long)puVar24 + 6) = uVar13;
            *(undefined1 *)((long)puVar24 + 5) = uVar1;
          }
          if (piVar14[1] == 0) {
LAB_001a3764:
                    /* WARNING: Subroutine does not return */
            FUN_0016cdf0("../../gold/object.h",0x738,"has_output_dynsym_entry");
          }
          puVar24 = puVar23;
          if (piVar14[1] != -1) {
            if ((undefined4 *)((long)local_68 + uVar18) <= puVar22) {
                    /* WARNING: Subroutine does not return */
              FUN_0016cdf0("../../gold/object.cc",0xaf7,"write_local_symbols");
            }
            if (local_48 <= *(uint *)(lVar21 + -0x18)) {
                    /* WARNING: Subroutine does not return */
              FUN_0016cdf0("../../gold/object.cc",0xafa,"write_local_symbols");
            }
            uVar6 = FUN_0021b7b0(param_4,local_b0 + *(uint *)(lVar21 + -0x18));
            *puVar22 = uVar6;
            if ((char)*(byte *)((long)piVar14 + 0xb) < '\0') {
              uVar8 = *(undefined8 *)(piVar14 + 4);
            }
            else {
              if ((*(byte *)((long)piVar14 + 0xb) & 8) == 0) {
LAB_001a377c:
                    /* WARNING: Subroutine does not return */
                FUN_0016cdf0("../../gold/object.h",0x6ab,"value");
              }
              puVar3 = *(ulong **)(piVar14 + 4);
              uVar12 = *puVar3 % puVar3[3];
              plVar20 = *(long **)(puVar3[2] + uVar12 * 8);
              if (plVar20 != (long *)0x0) {
                uVar15 = ((long *)*plVar20)[1];
                plVar4 = (long *)*plVar20;
                while (plVar19 = plVar4, uVar15 != *puVar3) {
                  plVar4 = (long *)*plVar19;
                  if ((plVar4 == (long *)0x0) ||
                     (uVar15 = plVar4[1], plVar20 = plVar19, uVar12 != uVar15 % puVar3[3]))
                  goto LAB_001a3608;
                }
                if (*plVar20 != 0) {
                  uVar8 = *(undefined8 *)(*plVar20 + 0x10);
                  goto LAB_001a349c;
                }
              }
LAB_001a3608:
              uVar8 = FUN_001f9e60(puVar3,param_1,piVar14[2] & 0x7ffffff);
            }
LAB_001a349c:
            *(undefined8 *)(puVar22 + 2) = uVar8;
            *(undefined8 *)(puVar22 + 4) = *(undefined8 *)(lVar21 + -8);
            *(undefined1 *)(puVar22 + 1) = *(undefined1 *)(lVar21 + -0x14);
            uVar1 = *(undefined1 *)(lVar21 + -0x13);
            *(ushort *)((long)puVar22 + 6) = uVar13;
            *(undefined1 *)((long)puVar22 + 5) = uVar1;
            puVar22 = puVar22 + 6;
          }
        }
        local_b8 = local_b8 + 1;
        lVar21 = lVar21 + 0x18;
        if (uVar2 == local_b8) goto LAB_001a3680;
        lVar9 = param_1[0x2c];
      } while( true );
    }
  }
  else {
    param_7 = param_7 + param_1[0x2a];
    if ((-1 < param_7) && ((long)(param_7 + (ulong)uVar16) <= *(long *)(param_2 + 0x10))) {
      local_70 = (undefined4 *)(param_7 + *(long *)(param_2 + 0x18));
      goto LAB_001a31f6;
    }
LAB_001a3859:
    FUN_0019a5b0();
  }
                    /* WARNING: Subroutine does not return */
  FUN_0016cdf0("../../gold/object.cc",0xac5,"write_local_symbols");
}

